@wrongstack/tools 1.0.1 → 1.0.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 (98) hide show
  1. package/dist/_win32-resolve.d.ts +1 -6
  2. package/dist/audit.js +5 -5
  3. package/dist/bash.js +2 -2
  4. package/dist/builtin.js +30 -30
  5. package/dist/{chunk-7LQCT3LT.js → chunk-32XPUSY3.js} +3 -3
  6. package/dist/{chunk-N3K2SFEI.js → chunk-3JVSOBHU.js} +1408 -200
  7. package/dist/{chunk-7N5U2RAU.js → chunk-3LS3FYEF.js} +2 -2
  8. package/dist/{chunk-FBUP524S.js → chunk-4YKVHCQC.js} +13 -2
  9. package/dist/{chunk-KE7A76VC.js → chunk-5U5ULQX2.js} +4 -14
  10. package/dist/{chunk-NU2IZ72J.js → chunk-6LCKF5KH.js} +8 -6
  11. package/dist/{chunk-GDDXX27P.js → chunk-6ZLRRC74.js} +2 -2
  12. package/dist/{chunk-IYH4OHBP.js → chunk-77MBK46T.js} +3 -3
  13. package/dist/{chunk-DK4J2WMH.js → chunk-AMURQAJX.js} +2 -2
  14. package/dist/{chunk-ZTCJCYLN.js → chunk-CVNCSMVU.js} +49 -6
  15. package/dist/{chunk-MJSJWXBF.js → chunk-DX5KZEMK.js} +14 -2
  16. package/dist/{chunk-CGXTR34H.js → chunk-E2ZD4ERD.js} +2 -2
  17. package/dist/{chunk-DRRY6SCM.js → chunk-EMA2XENR.js} +2 -2
  18. package/dist/{chunk-3D5DJWOE.js → chunk-FC3X7GGJ.js} +11 -3
  19. package/dist/{chunk-T3SMFF5Q.js → chunk-GU7QJ37F.js} +2 -2
  20. package/dist/{chunk-4WPBS45A.js → chunk-IRUEHGCR.js} +3 -3
  21. package/dist/{chunk-WEEVSWQB.js → chunk-KIQTABBJ.js} +3 -3
  22. package/dist/{chunk-6H4ERJP7.js → chunk-KYVOTHG7.js} +2 -2
  23. package/dist/{chunk-O6BY43ZB.js → chunk-MIV2RU5B.js} +3 -3
  24. package/dist/{chunk-5KS24LTS.js → chunk-NOCU555K.js} +2 -2
  25. package/dist/{chunk-6GOZTS6F.js → chunk-OUEH4I4X.js} +3 -3
  26. package/dist/{chunk-YEISRT4S.js → chunk-PNLDTRC5.js} +1429 -242
  27. package/dist/{chunk-GKSG5CPH.js → chunk-QU2VRCMM.js} +2 -2
  28. package/dist/{chunk-VVZPQPTY.js → chunk-REWOZIA4.js} +5 -3
  29. package/dist/{chunk-MGPR7VG3.js → chunk-T7YVY2BV.js} +2 -2
  30. package/dist/{chunk-IAYMTTR2.js → chunk-TYRVYBHW.js} +27 -23
  31. package/dist/{chunk-LQSOU63Z.js → chunk-VKAJMHVG.js} +2 -2
  32. package/dist/{chunk-E7JE3UEX.js → chunk-VO6M2FVG.js} +2 -2
  33. package/dist/{chunk-NJX2RXKJ.js → chunk-YDTRKEYY.js} +11 -3
  34. package/dist/{chunk-MK2JK35J.js → chunk-YECHJJJF.js} +3 -3
  35. package/dist/{chunk-QA6IASYX.js → chunk-Z34CUZCZ.js} +3 -3
  36. package/dist/{chunk-UCYQTZ7F.js → chunk-ZKC5UNGD.js} +56 -2
  37. package/dist/codebase-index/atlas-brief.d.ts +90 -0
  38. package/dist/codebase-index/atlas-export.d.ts +38 -0
  39. package/dist/codebase-index/atlas-projection.d.ts +114 -0
  40. package/dist/codebase-index/atlas-types.d.ts +90 -0
  41. package/dist/codebase-index/background-indexer.d.ts +15 -4
  42. package/dist/codebase-index/codebase-context-tool.d.ts +54 -0
  43. package/dist/codebase-index/concept-enrichment.d.ts +154 -0
  44. package/dist/codebase-index/context-retrieval.d.ts +91 -0
  45. package/dist/codebase-index/embedding-pass.d.ts +95 -0
  46. package/dist/codebase-index/graph-adjacency-cache.d.ts +36 -0
  47. package/dist/codebase-index/graph-rank-pass.d.ts +46 -0
  48. package/dist/codebase-index/graph-rank.d.ts +198 -0
  49. package/dist/codebase-index/index-service.d.ts +15 -1
  50. package/dist/codebase-index/index.d.ts +34 -19
  51. package/dist/codebase-index/index.js +128 -11
  52. package/dist/codebase-index/parser-worker-script.js +4 -4
  53. package/dist/codebase-index/perf-metrics.d.ts +19 -0
  54. package/dist/codebase-index/project-server-protocol.d.ts +2 -0
  55. package/dist/codebase-index/project-server-query-cache.d.ts +4 -0
  56. package/dist/codebase-index/project-server.js +55 -8
  57. package/dist/codebase-index/repo-map-fallback.d.ts +18 -0
  58. package/dist/codebase-index/repo-map-render.d.ts +42 -0
  59. package/dist/codebase-index/repo-map-types.d.ts +21 -0
  60. package/dist/codebase-index/repo-map.d.ts +28 -16
  61. package/dist/codebase-index/schema.d.ts +20 -0
  62. package/dist/codebase-index/worker-protocol.d.ts +47 -1
  63. package/dist/codebase-index/worker.js +12 -6
  64. package/dist/codebase-index/writer-concepts.d.ts +84 -0
  65. package/dist/codebase-index/writer-graph-decorate.d.ts +30 -0
  66. package/dist/codebase-index/writer-graph-reader.d.ts +22 -0
  67. package/dist/codebase-index/writer-rank.d.ts +78 -0
  68. package/dist/codebase-index/writer-schema.d.ts +51 -0
  69. package/dist/codebase-index/writer-vectors.d.ts +53 -0
  70. package/dist/codebase-index/writer.d.ts +59 -0
  71. package/dist/edit.js +8 -8
  72. package/dist/exec.js +2 -2
  73. package/dist/fetch.js +1 -1
  74. package/dist/format.js +5 -5
  75. package/dist/{go-parser-D7ELWQ7F.js → go-parser-EMKTAAD3.js} +5 -3
  76. package/dist/index.d.ts +48 -48
  77. package/dist/index.js +57 -33
  78. package/dist/install.js +5 -5
  79. package/dist/languages/index.js +3 -3
  80. package/dist/{legacy-bridge-YXANP5QB.js → legacy-bridge-WVQ4BHDI.js} +5 -5
  81. package/dist/lint.js +5 -5
  82. package/dist/outdated.js +2 -2
  83. package/dist/pack.js +31 -31
  84. package/dist/parser-dispatch-UQAB4E6V.js +14 -0
  85. package/dist/patch.js +8 -8
  86. package/dist/plan.js +2 -2
  87. package/dist/{py-parser-QC6MR4GB.js → py-parser-DDG53RXI.js} +4 -4
  88. package/dist/read.js +8 -8
  89. package/dist/replace.js +8 -8
  90. package/dist/task.js +2 -2
  91. package/dist/test.js +5 -5
  92. package/dist/todo.js +1 -1
  93. package/dist/tool-tier.js +32 -32
  94. package/dist/typecheck.js +5 -5
  95. package/dist/win32.js +1 -1
  96. package/dist/write.js +8 -8
  97. package/package.json +5 -5
  98. package/dist/parser-dispatch-BDVCJXTV.js +0 -14
@@ -16,6 +16,57 @@ export declare const LANG_FAMILY_TABLE_SQL = "\n CREATE TABLE IF NOT EXISTS lan
16
16
  /** Family value that matches every symbol family, used by language-less refs. */
17
17
  export declare const LANG_FAMILY_WILDCARD = "*";
18
18
  export declare const SYMBOLS_FTS_SQL = "CREATE VIRTUAL TABLE IF NOT EXISTS symbols_fts USING fts5(text, tokenize = 'trigram')";
19
+ /**
20
+ * Graph centrality, computed at index time by `graph-rank.ts` once every ref
21
+ * has its final `to_id` / `to_file`. Two tables rather than columns on
22
+ * `symbols` / `files` so the whole layer is additive: an index written by an
23
+ * older build simply has empty rank tables, and `SCHEMA_VERSION` stays put
24
+ * (a bump drops and rebuilds the entire index — see `initIndexSchema`).
25
+ *
26
+ * `rank` is max-normalised to 1.0 across the run, so scores are comparable
27
+ * within one index but never across two.
28
+ */
29
+ export declare const RANK_TABLES_SQL = "\n CREATE TABLE IF NOT EXISTS symbol_rank (\n symbol_id INTEGER PRIMARY KEY,\n rank REAL NOT NULL,\n in_deg INTEGER NOT NULL DEFAULT 0,\n out_deg INTEGER NOT NULL DEFAULT 0\n );\n CREATE TABLE IF NOT EXISTS file_rank (\n file TEXT PRIMARY KEY,\n rank REAL NOT NULL,\n in_deg INTEGER NOT NULL DEFAULT 0,\n out_deg INTEGER NOT NULL DEFAULT 0\n );\n";
30
+ export declare const RANK_INDEX_SQL: readonly ['CREATE INDEX IF NOT EXISTS idx_sr_rank ON symbol_rank(rank DESC)', 'CREATE INDEX IF NOT EXISTS idx_fr_rank ON file_rank(rank DESC)'];
31
+ /**
32
+ * Concept layer — plain-English descriptions of what code is *for*, which the
33
+ * structural index cannot express. Symbol names and signatures answer "what is
34
+ * declared"; they cannot answer "where do we back off after a 429".
35
+ *
36
+ * Populated by an optional, explicitly enabled LLM pass. Additive like the rank
37
+ * tables: an index without the pass simply has empty concept tables, and every
38
+ * consumer treats a missing summary as "not described yet" rather than an error.
39
+ *
40
+ * `content_hash` mirrors `files.content_hash`, and is the cache key that keeps
41
+ * the pass affordable — a file whose bytes have not changed is never re-sent to
42
+ * a model. `state` distinguishes a summary that matches the current bytes
43
+ * (`ready`) from one describing an older version (`stale`, still useful as a
44
+ * hint) and one not yet produced (`pending`).
45
+ *
46
+ * `crux_start`/`crux_end` point at the few lines that actually carry the file's
47
+ * meaning. A summary can drift from the truth; a pointer into the source cannot.
48
+ */
49
+ export declare const CONCEPT_TABLES_SQL = "\n CREATE TABLE IF NOT EXISTS file_concepts (\n file TEXT PRIMARY KEY,\n content_hash TEXT NOT NULL DEFAULT '',\n summary TEXT NOT NULL DEFAULT '',\n crux_start INTEGER,\n crux_end INTEGER,\n state TEXT NOT NULL DEFAULT 'pending',\n model TEXT NOT NULL DEFAULT '',\n updated_at INTEGER NOT NULL DEFAULT 0\n );\n CREATE TABLE IF NOT EXISTS subsystems (\n id TEXT PRIMARY KEY,\n name TEXT NOT NULL,\n summary TEXT NOT NULL DEFAULT '',\n member_files TEXT NOT NULL DEFAULT '[]',\n model TEXT NOT NULL DEFAULT '',\n updated_at INTEGER NOT NULL DEFAULT 0\n );\n CREATE TABLE IF NOT EXISTS concept_edges (\n from_id TEXT NOT NULL,\n to_id TEXT NOT NULL,\n relation TEXT NOT NULL,\n PRIMARY KEY (from_id, to_id, relation)\n );\n";
50
+ /**
51
+ * Semantic embeddings, one per file.
52
+ *
53
+ * **Per file, not per symbol.** Embedding a bare signature — `function
54
+ * resolve(id: string): Widget` — captures almost nothing a lexical index does
55
+ * not already have. What carries meaning is the concept layer's description of
56
+ * what the file is *for*, so that is what gets embedded. It is also eight
57
+ * times cheaper on this repository: 8k files against 66k symbols.
58
+ *
59
+ * `source_hash` is a hash of the exact text that was embedded, so a changed
60
+ * summary re-embeds and an unchanged one never does. `provider` records which
61
+ * model produced the vector; vectors from a different model are not comparable,
62
+ * so a provider change invalidates the whole table rather than silently mixing
63
+ * two vector spaces.
64
+ *
65
+ * Separate from `symbol_vectors`, which stores the older synchronous
66
+ * char-trigram vectors and stays behind its own gate.
67
+ */
68
+ export declare const FILE_VECTORS_TABLE_SQL = "\n CREATE TABLE IF NOT EXISTS file_vectors (\n file TEXT PRIMARY KEY,\n vector BLOB NOT NULL,\n source_hash TEXT NOT NULL DEFAULT '',\n provider TEXT NOT NULL DEFAULT ''\n );\n";
69
+ export declare const CONCEPT_INDEX_SQL: readonly ['CREATE INDEX IF NOT EXISTS idx_fc_state ON file_concepts(state)', 'CREATE INDEX IF NOT EXISTS idx_ce_from ON concept_edges(from_id)'];
19
70
  /**
20
71
  * Phase 3: stores 384-dimensional float32 embedding vectors for each symbol.
21
72
  * Vectors are computed from the symbol's indexable text (name + signature +
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Persistence for file-level semantic embeddings (`file_vectors`).
3
+ *
4
+ * Vectors from two different models are not comparable — the spaces have
5
+ * nothing to do with each other — so the provider id is stored alongside every
6
+ * row and a provider change wipes the table rather than silently mixing them.
7
+ */
8
+ import type { DatabaseSync } from 'node:sqlite';
9
+ type Statement = ReturnType<DatabaseSync['prepare']>;
10
+ type PrepareStatement = (sql: string) => Statement;
11
+ /** Metadata key recording which provider produced the stored vectors. */
12
+ export declare const FILE_VECTOR_PROVIDER_KEY = "file_vector_provider";
13
+ export interface FileVectorRow {
14
+ file: string;
15
+ vector: Float32Array;
16
+ /** Hash of the exact text that was embedded. */
17
+ sourceHash: string;
18
+ provider: string;
19
+ }
20
+ /** What is already embedded, so a pass can skip unchanged text. */
21
+ export interface FileVectorState {
22
+ file: string;
23
+ sourceHash: string;
24
+ }
25
+ export declare function getFileVectorStatesWithStatement(stmt: PrepareStatement, provider: string): Map<string, string>;
26
+ export declare function upsertFileVectorsWithStatement(stmt: PrepareStatement, maxSqlVars: number, rows: readonly FileVectorRow[]): void;
27
+ /**
28
+ * Drop every stored vector when the provider changes.
29
+ *
30
+ * Returns true when a wipe happened, so the caller can report that the next
31
+ * pass is a full re-embed rather than an incremental one.
32
+ */
33
+ export declare function reconcileVectorProviderWithStatement(stmt: PrepareStatement, getMetadata: (key: string) => string | undefined, setMetadata: (key: string, value: string) => void, provider: string): boolean;
34
+ /** Vectors dropped for files no longer indexed. */
35
+ export declare function pruneOrphanFileVectorsWithStatement(stmt: PrepareStatement): number;
36
+ export declare function countFileVectorsWithStatement(stmt: PrepareStatement): number;
37
+ export interface VectorHit {
38
+ file: string;
39
+ /** Cosine similarity in [-1, 1]. */
40
+ score: number;
41
+ }
42
+ /**
43
+ * Rank every stored vector against `query` and return the closest files.
44
+ *
45
+ * A brute-force scan, deliberately: at file granularity this repository has
46
+ * roughly eight thousand vectors of 384 floats, which is about twelve
47
+ * megabytes and a few milliseconds to sweep. An approximate-nearest-neighbour
48
+ * index would add a dependency and an accuracy cliff to save time nobody is
49
+ * waiting on.
50
+ */
51
+ export declare function searchFileVectorsWithStatement(stmt: PrepareStatement, query: Float32Array, limit: number, minScore: number): VectorHit[];
52
+ export {};
53
+ //# sourceMappingURL=writer-vectors.d.ts.map
@@ -1,7 +1,11 @@
1
+ import type { FileRankRow, SymbolRankRow } from './graph-rank.js';
1
2
  import type { CallSite, CodeMapGraph, FileMeta, IndexStats, Symbol as IndexSymbol, Ref, SearchResult, SymbolKind, SymbolLang } from './schema.js';
2
3
  import { type IndexSummary } from './writer-admin.js';
4
+ import type { ConceptCoverage, ConceptEdge, FileConcept, Subsystem } from './writer-concepts.js';
5
+ import type { RankedFileRow } from './writer-rank.js';
3
6
  import type { WriterSearchFilter } from './writer-search-helpers.js';
4
7
  import { StorePool } from './writer-store-pool.js';
8
+ import type { FileVectorRow, VectorHit } from './writer-vectors.js';
5
9
  export { codebaseIndexDirOverride, resolveIndexDir } from './writer-helpers.js';
6
10
  export { StorePool } from './writer-store-pool.js';
7
11
  export declare class IndexStore {
@@ -171,11 +175,66 @@ export declare class IndexStore {
171
175
  kind: SymbolKind;
172
176
  line: number;
173
177
  }>;
178
+ /** Declarations in one file, in source order. */
179
+ getFileSymbols(file: string, limit: number): Array<{
180
+ id: number;
181
+ name: string;
182
+ kind: string;
183
+ line: number;
184
+ signature: string;
185
+ }>;
186
+ /** Declarations behind an arbitrary id list, for the retrieval walk. */
187
+ getSymbolsByIds(ids: readonly number[]): Array<{
188
+ id: number;
189
+ name: string;
190
+ kind: string;
191
+ lang: string;
192
+ file: string;
193
+ line: number;
194
+ signature: string;
195
+ scope: string;
196
+ }>;
174
197
  getAllResolvedRefs(): Array<{
175
198
  fromId: number;
176
199
  toId: number;
177
200
  callType: string;
178
201
  }>;
202
+ /**
203
+ * Replace both rank tables in one write. Called once per index run, after
204
+ * ref resolution has settled — a rank computed against half-resolved refs
205
+ * would describe a graph that never existed.
206
+ */
207
+ replaceRanks(symbols: readonly SymbolRankRow[], files: readonly FileRankRow[]): void;
208
+ /** Wipe stored vectors when the embedding model changed. */
209
+ reconcileVectorProvider(provider: string): boolean;
210
+ getFileVectorStates(provider: string): Map<string, string>;
211
+ upsertFileVectors(rows: readonly FileVectorRow[]): void;
212
+ pruneOrphanFileVectors(): number;
213
+ countFileVectors(): number;
214
+ searchFileVectors(query: Float32Array, limit: number, minScore: number): VectorHit[];
215
+ upsertFileConcept(concept: FileConcept): void;
216
+ getFileConcept(file: string): FileConcept | undefined;
217
+ getAllFileConcepts(): FileConcept[];
218
+ getReadyConceptSummaries(): Map<string, string>;
219
+ getConceptCoverage(): ConceptCoverage;
220
+ /** Flag summaries whose file has changed since they were written. */
221
+ markStaleConcepts(): number;
222
+ /** Drop summaries for files that are no longer indexed. */
223
+ pruneOrphanConcepts(): number;
224
+ replaceSubsystems(subsystems: readonly Subsystem[], edges: readonly ConceptEdge[]): void;
225
+ getSubsystems(): Subsystem[];
226
+ getConceptEdges(): ConceptEdge[];
227
+ getPackageFileCounts(): Map<string, number>;
228
+ getRankedFiles(limit: number): RankedFileRow[];
229
+ getTopFileRanks(limit: number): FileRankRow[];
230
+ getTopSymbolRanks(limit: number): SymbolRankRow[];
231
+ getFileRankMap(): Map<string, number>;
232
+ getRankCounts(): {
233
+ symbols: number;
234
+ files: number;
235
+ };
236
+ getSymbolNameCandidates(): Map<number, number>;
237
+ getImportVisibility(): Map<string, Set<string>>;
179
238
  getAllImportRefs(): Array<{
180
239
  sourceFile: string | null;
181
240
  toName: string;
package/dist/edit.js CHANGED
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  editTool
3
- } from "./chunk-DK4J2WMH.js";
3
+ } from "./chunk-AMURQAJX.js";
4
4
  import "./chunk-MSOAX3GC.js";
5
- import "./chunk-ZTCJCYLN.js";
6
- import "./chunk-GDDXX27P.js";
7
- import "./chunk-N3K2SFEI.js";
8
- import "./chunk-NU2IZ72J.js";
9
- import "./chunk-VVZPQPTY.js";
5
+ import "./chunk-CVNCSMVU.js";
6
+ import "./chunk-6ZLRRC74.js";
7
+ import "./chunk-3JVSOBHU.js";
8
+ import "./chunk-6LCKF5KH.js";
9
+ import "./chunk-REWOZIA4.js";
10
10
  import "./chunk-6IEBD27U.js";
11
- import "./chunk-UCYQTZ7F.js";
11
+ import "./chunk-ZKC5UNGD.js";
12
12
  import "./chunk-YOHO4DVT.js";
13
13
  import "./chunk-2CTZW6JQ.js";
14
- import "./chunk-KE7A76VC.js";
14
+ import "./chunk-5U5ULQX2.js";
15
15
  import "./chunk-ZUFHAHTE.js";
16
16
  export {
17
17
  editTool
package/dist/exec.js CHANGED
@@ -7,13 +7,13 @@ import {
7
7
  isExecCommandAllowed,
8
8
  resetDangerBypass,
9
9
  resetExecPolicy
10
- } from "./chunk-MGPR7VG3.js";
10
+ } from "./chunk-T7YVY2BV.js";
11
11
  import "./chunk-BTSFTGIL.js";
12
12
  import "./chunk-PVCB7RUZ.js";
13
13
  import "./chunk-SCMRM6NL.js";
14
14
  import "./chunk-HDYUBRMF.js";
15
15
  import "./chunk-7JJFC6CT.js";
16
- import "./chunk-KE7A76VC.js";
16
+ import "./chunk-5U5ULQX2.js";
17
17
  import "./chunk-ZUFHAHTE.js";
18
18
  export {
19
19
  configureDangerBypass,
package/dist/fetch.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  fetchTool
3
- } from "./chunk-MJSJWXBF.js";
3
+ } from "./chunk-DX5KZEMK.js";
4
4
  import {
5
5
  guardedFetch,
6
6
  guardedLookup
package/dist/format.js CHANGED
@@ -2,14 +2,14 @@ import {
2
2
  detectFixer,
3
3
  formatTool,
4
4
  parseFormatterCounts
5
- } from "./chunk-NJX2RXKJ.js";
6
- import "./chunk-T3SMFF5Q.js";
7
- import "./chunk-7N5U2RAU.js";
8
- import "./chunk-DRRY6SCM.js";
5
+ } from "./chunk-YDTRKEYY.js";
6
+ import "./chunk-GU7QJ37F.js";
7
+ import "./chunk-3LS3FYEF.js";
8
+ import "./chunk-EMA2XENR.js";
9
9
  import "./chunk-SCMRM6NL.js";
10
10
  import "./chunk-HDYUBRMF.js";
11
11
  import "./chunk-7JJFC6CT.js";
12
- import "./chunk-KE7A76VC.js";
12
+ import "./chunk-5U5ULQX2.js";
13
13
  import "./chunk-ZUFHAHTE.js";
14
14
  export {
15
15
  detectFixer,
@@ -1,13 +1,14 @@
1
1
  import {
2
2
  parseParserOutput,
3
+ recordParserSubprocess,
3
4
  withSpawnGate
4
- } from "./chunk-UCYQTZ7F.js";
5
+ } from "./chunk-ZKC5UNGD.js";
5
6
  import {
6
7
  detectLang
7
8
  } from "./chunk-YOHO4DVT.js";
8
9
  import {
9
10
  resolveWin32Command
10
- } from "./chunk-KE7A76VC.js";
11
+ } from "./chunk-5U5ULQX2.js";
11
12
 
12
13
  // src/codebase-index/go-parser.ts
13
14
  import { spawn } from "node:child_process";
@@ -408,6 +409,7 @@ async function syncGoParse(filePath, content, lang) {
408
409
  const goResult = await new Promise(
409
410
  (resolve, reject) => {
410
411
  let settled = false;
412
+ recordParserSubprocess();
411
413
  const proc = spawn(goBinary, ["run", scriptPath], {
412
414
  stdio: ["pipe", "pipe", "pipe"],
413
415
  windowsHide: true
@@ -466,4 +468,4 @@ export {
466
468
  detectLang,
467
469
  parseSymbols
468
470
  };
469
- //# sourceMappingURL=go-parser-D7ELWQ7F.js.map
471
+ //# sourceMappingURL=go-parser-EMKTAAD3.js.map
package/dist/index.d.ts CHANGED
@@ -1,71 +1,71 @@
1
+ export { mapWithConcurrency } from './_concurrency.js';
1
2
  export { type DangerAssessment, type DangerLevel, type DangerRule, detectDanger, } from './_danger-detect.js';
3
+ export { type CompileFail, type CompileResult, capSubject, compileUserRegex, MAX_SUBJECT_LEN, } from './_regex.js';
2
4
  export { type EnsureSessionShellOptions, ensureSessionShell, normalizeShell, type ResolveSessionShellDeps, resolveSessionShell, } from './_session-shell.js';
3
5
  export type { BashShell } from './_shell-pick.js';
4
- export { auditTool, type AuditContext, type AuditInput, type AuditOutput, type AuditVulnerability, } from './audit.js';
6
+ export { checkSyntax, type SyntaxCheckResult, } from './_syntax-check.js';
7
+ export { type AuditContext, type AuditInput, type AuditOutput, type AuditVulnerability, auditTool, } from './audit.js';
5
8
  export { type AutoProceedLoopGuard, createAutoProceedLoopGuard, GROUNDED_NO_PROGRESS_STEER, type GroundedRepetitionAction, type GroundedRepetitionSignal, type LoopGuardOptions, normalizeForRepetition, type RepetitionSignal, } from './auto-proceed-loop-guard.js';
6
- export { bashTool, type BashInput, type BashOutput, } from './bash.js';
9
+ export { type BashInput, type BashOutput, bashTool, } from './bash.js';
7
10
  export { checkAndBlockKillCommand, type KillCheckResult, type KillCommand, } from './bash-kill-guard.js';
8
- export { batchToolUseTool, type BatchToolUseInput, type BatchToolUseOutput, } from './batch-tool-use.js';
11
+ export { type BatchToolUseInput, type BatchToolUseOutput, batchToolUseTool, } from './batch-tool-use.js';
9
12
  export * from './browser/index.js';
10
13
  export { builtinTools, OFF_ONLY_TOOLS, OPTIONAL_TOOLS, TIER1_TOOLS, TIER2_TOOLS, TIER3_TOOLS, } from './builtin.js';
11
14
  export { type BreakerState, CircuitBreaker, type CircuitBreakerConfig, type CircuitBreakerSnapshot, } from './circuit-breaker.js';
12
- export type { CircuitSnapshot, CircuitState, CodeMapGraph, CodebaseAstReplaceInput, CodebaseAstReplaceOutput, CodebaseImpactAnalysisInput, CodebaseImpactAnalysisOutput, CodebaseIncomingCallsInput, CodebaseIncomingCallsOutput, CodebaseIndexInput, CodebaseIndexOutput, CodebaseInvariantCheckInput, CodebaseInvariantCheckOutput, CodebaseOutgoingCallsInput, CodebaseOutgoingCallsOutput, CodebaseRepoMapInput, CodebaseRepoMapOutput, CodebaseSearchInput, CodebaseSearchOutput, CodebaseSkeletonInput, CodebaseSkeletonOutput, CodebaseStatsInput, CodebaseStatsOutput, CodebaseTargetedTestInput, CodebaseTargetedTestOutput, DeadCodeScanInput, DeadCodeScanOutput, DeadFile, DeadPackage, DeadSymbol, GraphEdge, GraphNode, ImpactAnalysisInput, ImpactAnalysisOutput, ImpactCallSite, IncomingCallsInput, IncomingCallsOutput, OutgoingCallsInput, OutgoingCallsOutput, ProjectIndexDaemonAvailability, ProjectIndexServerActivity, ProjectIndexServerClientHealth, ProjectIndexServerConnectionState, ProjectIndexServerConnectionStatus, ProjectIndexServerHealth, TargetedTestInput, TargetedTestOutput, } from './codebase-index/index.js';
13
- export { clarifyTool, type ClarifyInput, type ClarifyQuestionInput, type ClarifyOutput, } from './clarify.js';
14
- export { CircuitOpenError, cancelPendingReindexes, checkCodebaseIndexServerHealth, codebaseAstReplaceTool, codebaseImpactAnalysisTool, codebaseIncomingCallsTool, codebaseIndexStats, codebaseIndexTool, codebaseInvariantCheckTool, codebaseOutgoingCallsTool, codebaseRepoMapTool, codebaseSearchTool, codebaseSkeletonTool, codebaseStatsTool, codebaseTargetedTestTool, deadCodeScanTool, enqueueReindex, ensureCodebaseIndexServer, extractDirectorySkeleton, extractFileSkeleton, generateRepoMap, replaceSymbolInFile, type FileSkeletonResult, type MutateSymbolOptions, type MutateSymbolResult, type RepoMapOptions, type RepoMapResult, type SkeletonOptions, type SkeletonSymbolRange, fileGraphService, getIndexState, IndexCircuitBreaker, IndexTimeoutError, indexCircuitBreaker, isIndexableFile, isIndexing, isIndexReady, onIndexStateChange, packageGraphService, resetIndexCircuitBreaker, resolveProjectIndexDaemonAvailability, runDeadCodeScan, runStartupIndex, searchCodebaseIndex, shutdownCodebaseIndexHost, shutdownCodebaseIndexServer, symbolGraphService, } from './codebase-index/index.js';
15
- export { designTool, type DesignInput, type DesignOutput, } from './design.js';
16
- export { diffTool, type DiffInput, type DiffMode, type DiffOutput, } from './diff.js';
17
- export { documentTool, type DocumentInput, type DocumentOutput, type DocumentedItem, } from './document.js';
15
+ export { type ClarifyInput, type ClarifyOutput, type ClarifyQuestionInput, clarifyTool, } from './clarify.js';
16
+ export type { CircuitSnapshot, CircuitState, CodebaseAstReplaceInput, CodebaseAstReplaceOutput, CodebaseImpactAnalysisInput, CodebaseImpactAnalysisOutput, CodebaseIncomingCallsInput, CodebaseIncomingCallsOutput, CodebaseIndexInput, CodebaseIndexOutput, CodebaseInvariantCheckInput, CodebaseInvariantCheckOutput, CodebaseOutgoingCallsInput, CodebaseOutgoingCallsOutput, CodebaseRepoMapInput, CodebaseRepoMapOutput, CodebaseSearchInput, CodebaseSearchOutput, CodebaseSkeletonInput, CodebaseSkeletonOutput, CodebaseStatsInput, CodebaseStatsOutput, CodebaseTargetedTestInput, CodebaseTargetedTestOutput, CodeMapGraph, DeadCodeScanInput, DeadCodeScanOutput, DeadFile, DeadPackage, DeadSymbol, GraphEdge, GraphNode, ImpactAnalysisInput, ImpactAnalysisOutput, ImpactCallSite, IncomingCallsInput, IncomingCallsOutput, OutgoingCallsInput, OutgoingCallsOutput, ProjectIndexDaemonAvailability, ProjectIndexServerActivity, ProjectIndexServerClientHealth, ProjectIndexServerConnectionState, ProjectIndexServerConnectionStatus, ProjectIndexServerHealth, TargetedTestInput, TargetedTestOutput, } from './codebase-index/index.js';
17
+ export { ATLAS_DIR, type AtlasBrief, type AtlasBriefIndexMissing, type AtlasFreshness, type AtlasIndexMissing, buildProjectAtlasBrief, CircuitOpenError, CONCEPT_RELATIONS, type ConceptIndexMissing, type ContextResult, cancelPendingReindexes, checkCodebaseIndexServerHealth, checkProjectAtlasFreshness, codebaseAstReplaceTool, codebaseContextTool, codebaseImpactAnalysisTool, codebaseIncomingCallsTool, codebaseIndexStats, codebaseIndexTool, codebaseInvariantCheckTool, codebaseOutgoingCallsTool, codebaseRepoMapTool, codebaseSearchTool, codebaseSkeletonTool, codebaseStatsTool, codebaseTargetedTestTool, deadCodeScanTool, type EmbeddingPort, type EmbedIndexMissing, type EmbedResult, type EnrichResult, embedProjectFiles, enqueueReindex, enrichProjectConcepts, ensureCodebaseIndexServer, exportProjectAtlasHtml, extractDirectorySkeleton, extractFileSkeleton, type FileSkeletonResult, fileGraphService, generateRepoMap, getIndexState, IndexCircuitBreaker, IndexTimeoutError, indexCircuitBreaker, isIndexableFile, isIndexing, isIndexReady, MAX_CRUX_LINES, MAX_REPORTED_DRIFT, type MutateSymbolOptions, type MutateSymbolResult, onIndexStateChange, packageGraphService, type RepoMapOptions, type RepoMapResult, replaceSymbolInFile, resetIndexCircuitBreaker, resolveProjectIndexDaemonAvailability, runDeadCodeScan, runStartupIndex, type SkeletonOptions, type SkeletonSymbolRange, type SummarizeFileInput, type SummarizeFileResult, type SummarizerPort, type SummarizeSubsystemInput, type SummarizeSubsystemResult, searchCodebaseIndex, setContextQueryEmbedder, shutdownCodebaseIndexHost, shutdownCodebaseIndexServer, symbolGraphService, writeProjectAtlas, } from './codebase-index/index.js';
18
+ export { type DesignInput, type DesignOutput, designTool, } from './design.js';
19
+ export { type DiffInput, type DiffMode, type DiffOutput, diffTool, } from './diff.js';
20
+ export { type DocumentedItem, type DocumentInput, type DocumentOutput, documentTool, } from './document.js';
18
21
  export { discoverE2EProjects, type E2EExecutionPlan, type E2EFramework, type E2EPackageManager, type E2EPlanInput, type E2EPlanOutput, type E2EProjectPlan, type E2EServerHint, e2ePlanTool, } from './e2e.js';
19
- export { editTool, type EditInput, type EditOutput, type MatchTier, } from './edit.js';
20
- export { configureDangerBypass, configureExecPolicy, execTool, type ExecInput, type ExecOutput, getDangerBypass, getExecAllowlist, isExecCommandAllowed, resetDangerBypass, resetExecPolicy, } from './exec.js';
22
+ export { type EditInput, type EditOutput, editTool, type MatchTier, } from './edit.js';
23
+ export { configureDangerBypass, configureExecPolicy, type ExecInput, type ExecOutput, execTool, getDangerBypass, getExecAllowlist, isExecCommandAllowed, resetDangerBypass, resetExecPolicy, } from './exec.js';
21
24
  export { checkExecKillCommand, type ExecKillCheckResult, } from './exec-kill-guard.js';
22
- export { fetchTool, type FetchFormat, type FetchInput, type FetchOutput, } from './fetch.js';
23
- export { formatTool, type FormatContext, type FormatFixer, type FormatInput, type FormatOutput, } from './format.js';
24
- export { gitTool, type GitInput, type GitOutput, type GitSubcommand, } from './git.js';
25
- export { globTool, type GlobInput, type GlobOutput, } from './glob.js';
26
- export { grepTool, type GrepBackend, type GrepEngine, type GrepInput, type GrepOutput, type GrepOutputMode, } from './grep.js';
27
- export { installTool, type InstallContext, type InstallInput, type InstallOutput, type InstallSaveType, } from './install.js';
28
- export { jsonTool, type JsonAction, type JsonInput, type JsonOutput, } from './json.js';
29
- export { kanbanTool, type KanbanAction, type KanbanContext, type KanbanToolInput, type KanbanToolOutput, } from './kanban.js';
25
+ export { type FetchFormat, type FetchInput, type FetchOutput, fetchTool, } from './fetch.js';
26
+ export { type FormatContext, type FormatFixer, type FormatInput, type FormatOutput, formatTool, } from './format.js';
27
+ export { type GitInput, type GitOutput, type GitSubcommand, gitTool, } from './git.js';
28
+ export { type GlobInput, type GlobOutput, globTool, } from './glob.js';
29
+ export { type GrepBackend, type GrepEngine, type GrepInput, type GrepOutput, type GrepOutputMode, grepTool, } from './grep.js';
30
+ export { type InstallContext, type InstallInput, type InstallOutput, type InstallSaveType, installTool, } from './install.js';
31
+ export { type JsonAction, type JsonInput, type JsonOutput, jsonTool, } from './json.js';
32
+ export { type KanbanAction, type KanbanContext, type KanbanToolInput, type KanbanToolOutput, kanbanTool, } from './kanban.js';
30
33
  export { kanbanEvidenceKey, kanbanEvidencePointer, recordKanbanVerificationEvidence, } from './kanban-evidence-bridge.js';
31
34
  export * from './languages/index.js';
32
- export { lintTool, type LintContext, type LinterName, type LintInput, type LintOutput, } from './lint.js';
33
- export { logsTool, type LogEntry, type LogsInput, type LogsOutput, } from './logs.js';
34
- export { forgetTool, type ForgetInput, type ForgetOutput, relatedMemoryTool, type RelatedMemoryInput, rememberTool, type RememberInput, type RememberOutput, searchMemoryTool, type SearchMemoryInput, type SearchMemoryOutput, } from './memory.js';
35
+ export { type LintContext, type LinterName, type LintInput, type LintOutput, lintTool, } from './lint.js';
36
+ export { type LogEntry, type LogsInput, type LogsOutput, logsTool, } from './logs.js';
37
+ export { type ForgetInput, type ForgetOutput, forgetTool, type RelatedMemoryInput, type RememberInput, type RememberOutput, relatedMemoryTool, rememberTool, type SearchMemoryInput, type SearchMemoryOutput, searchMemoryTool, } from './memory.js';
35
38
  export { createModeTool, type ModeFamily, type ModeInput, type ModeOutput, } from './mode.js';
36
- export { nextStepsTool, type NextStepsInput, type NextStepsOutput, } from './next-steps-tool.js';
37
- export { type ParseNextStepsOptions, type ParseNextStepsResult, type ParsedNextStep, parseNextSteps, stripNextSteps, } from './next-steps.js';
38
- export { outdatedTool, type OutdatedContext, type OutdatedInput, type OutdatedOutput, type OutdatedPackage, } from './outdated.js';
39
+ export { type ParsedNextStep, type ParseNextStepsOptions, type ParseNextStepsResult, parseNextSteps, stripNextSteps, } from './next-steps.js';
40
+ export { type NextStepsInput, type NextStepsOutput, nextStepsTool, } from './next-steps-tool.js';
41
+ export { type OutdatedContext, type OutdatedInput, type OutdatedOutput, type OutdatedPackage, outdatedTool, } from './outdated.js';
39
42
  export { builtinToolsPack } from './pack.js';
40
- export { patchTool, type PatchInput, type PatchOutput, } from './patch.js';
41
- export { planTool, type PlanAction, type PlanInput, type PlanOutput, } from './plan.js';
43
+ export { type PatchInput, type PatchOutput, patchTool, } from './patch.js';
44
+ export { type PlanAction, type PlanInput, type PlanOutput, planTool, } from './plan.js';
42
45
  export { getProcessGuardian, type ProcessGuardianConfig, startProcessGuardian, stopProcessGuardian, } from './process-guardian.js';
43
46
  export { _resetProcessRegistry, type BreakerCountdown, getProcessRegistry, type KillOpts, type ProcessRegistryImpl, type RegistryStats, type TrackedProcess, } from './process-registry.js';
44
47
  export { getPersistentProcessRegistry, type PersistentProcessEntry, type PersistentRegistryData, resetPersistentProcessRegistry, } from './process-registry-persistent.js';
45
48
  export { createGlobalPsSlashCommand, formatGlobalStatus, formatInstanceList, formatInstanceSummary, type GlobalProcessStatus, getInstanceCount, type InstanceInfo, type InstanceListOptions, listInstances, } from './ps-slash.js';
46
- export { pwshTool, PWSH_TOOL_DESCRIPTION, PWSH_TOOL_USAGE_HINT, type PwshInput, type PwshOutput, } from './pwsh.js';
47
- export { readTool, type ReadInput, type ReadMode, type ReadOutput, type SymbolEntry, } from './read.js';
48
- export { replaceTool, type ReplaceInput, type ReplaceOutput, } from './replace.js';
49
- export { BUILT_IN_TEMPLATES, scaffoldTool, type ScaffoldInput, type ScaffoldOutput, type ScaffoldTemplate, } from './scaffold.js';
50
- export { searchTool, type CacheEntry as SearchCacheEntry, type SearchInput, type SearchOutput, type SearchResult, } from './search.js';
51
- export { analyzeSecurityAndPerformance, securityAstScanTool, type SecurityFinding, type SecurityScanInput, type SecurityScanOutput, } from './security-ast-scan-tool.js';
49
+ export { PWSH_TOOL_DESCRIPTION, PWSH_TOOL_USAGE_HINT, type PwshInput, type PwshOutput, pwshTool, } from './pwsh.js';
50
+ export { type ReadInput, type ReadMode, type ReadOutput, readTool, type SymbolEntry, } from './read.js';
51
+ export { type ReplaceInput, type ReplaceOutput, replaceTool, } from './replace.js';
52
+ export { BUILT_IN_TEMPLATES, type ScaffoldInput, type ScaffoldOutput, type ScaffoldTemplate, scaffoldTool, } from './scaffold.js';
53
+ export { type CacheEntry as SearchCacheEntry, type SearchInput, type SearchOutput, type SearchResult, searchTool, } from './search.js';
54
+ export { analyzeSecurityAndPerformance, type SecurityFinding, type SecurityScanInput, type SecurityScanOutput, securityAstScanTool, } from './security-ast-scan-tool.js';
52
55
  export { applySessionKanbanBoardToTodos, applySessionKanbanTaskToSource, attachSessionKanbanMirror, ensureSessionKanbanBoard, hydrateSessionKanban, mirrorSessionPlanToKanban, mirrorSessionTasksToKanban, mirrorSessionTodosToKanban, projectSessionPlanToKanban, projectSessionTasksToKanban, projectSessionTodosToKanban, rebindSessionKanbanTask, SESSION_KANBAN_COLUMNS, } from './session-kanban.js';
53
- export { makeSkillTool, type LoadedResource, type SkillResource, type SkillToolInput, type SkillToolOutput, } from './skill.js';
54
- export { setWorkingDirTool, type SetWorkingDirInput, type SetWorkingDirOutput, } from './set-working-dir.js';
55
- export { taskTool, type TaskAction, type TaskAdditionItem, type TaskInput, type TaskOutput, type TaskReplacementItem, } from './task.js';
56
- export { testTool, type TestContext, type TestInput, type TestOutput, type TestRunnerName, } from './test.js';
57
- export { todoTool, type TodoInput, type TodoKanbanBinding, type TodoOutput, } from './todo.js';
58
- export { toolHelpTool, type ToolHelpInput, type ToolHelpOutput, } from './tool-help.js';
56
+ export { type SetWorkingDirInput, type SetWorkingDirOutput, setWorkingDirTool, } from './set-working-dir.js';
57
+ export { type LoadedResource, makeSkillTool, type SkillResource, type SkillToolInput, type SkillToolOutput, } from './skill.js';
58
+ export { type TaskAction, type TaskAdditionItem, type TaskInput, type TaskOutput, type TaskReplacementItem, taskTool, } from './task.js';
59
+ export { type TestContext, type TestInput, type TestOutput, type TestRunnerName, testTool, } from './test.js';
60
+ export { type TodoInput, type TodoKanbanBinding, type TodoOutput, todoTool, } from './todo.js';
61
+ export { computeLineDiff, DIFF_MAX_LINES, type DiffRow, type DiffRowKind, diffFromToolInput, type ToolDiff, } from './tool-diff.js';
62
+ export { type ToolHelpInput, type ToolHelpOutput, toolHelpTool, } from './tool-help.js';
59
63
  export { FALLBACK_ICON, getToolIcon, TOOL_ICON_CONFIG, TOOL_ICON_MAP, type ToolIconConfig, type ToolIconId, } from './tool-icon-map.js';
60
- export { computeLineDiff, DIFF_MAX_LINES, diffFromToolInput, type DiffRow, type DiffRowKind, type ToolDiff, } from './tool-diff.js';
64
+ export { type ToolSearchInput, type ToolSearchOutput, toolSearchTool, } from './tool-search.js';
61
65
  export { FALLBACK_HEAD_FIELDS, SUMMARIZE_TOOL_INPUT_BROWSER_SRC, summarizeToolInput, } from './tool-summary.js';
62
- export { toolSearchTool, type ToolSearchInput, type ToolSearchOutput, } from './tool-search.js';
63
66
  export { type RegisterBuiltinToolTierOptions, registerBuiltinToolTier, selectBuiltinToolsForTier, } from './tool-tier.js';
64
- export { toolUseTool, type ToolUseInput, type ToolUseOutput, } from './tool-use.js';
65
- export { DEFAULT_MAX_TREE_ENTRIES, MAX_TREE_OUTPUT_BYTES, treeTool, type TreeContext, type TreeInput, type TreeOutput, } from './tree.js';
66
- export { typecheckTool, type TypecheckContext, type TypecheckInput, type TypecheckOutput, } from './typecheck.js';
67
- export { writeTool, type WriteInput, type WriteOutput, } from './write.js';
68
- export { checkSyntax, type SyntaxCheckResult, } from './_syntax-check.js';
69
- export { mapWithConcurrency, } from './_concurrency.js';
70
- export { capSubject, compileUserRegex, MAX_SUBJECT_LEN, type CompileFail, type CompileResult, } from './_regex.js';
67
+ export { type ToolUseInput, type ToolUseOutput, toolUseTool, } from './tool-use.js';
68
+ export { DEFAULT_MAX_TREE_ENTRIES, MAX_TREE_OUTPUT_BYTES, type TreeContext, type TreeInput, type TreeOutput, treeTool, } from './tree.js';
69
+ export { type TypecheckContext, type TypecheckInput, type TypecheckOutput, typecheckTool, } from './typecheck.js';
70
+ export { type WriteInput, type WriteOutput, writeTool, } from './write.js';
71
71
  //# sourceMappingURL=index.d.ts.map