@spikedpunch/mast 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/MAST_SPEC.md +2926 -0
- package/README.md +842 -0
- package/assets/skill.md +45 -0
- package/dist/ast/extract.d.ts +65 -0
- package/dist/ast/extract.d.ts.map +1 -0
- package/dist/ast/extract.js +147 -0
- package/dist/ast/extract.js.map +1 -0
- package/dist/ast/extractor.d.ts +85 -0
- package/dist/ast/extractor.d.ts.map +1 -0
- package/dist/ast/extractor.js +2 -0
- package/dist/ast/extractor.js.map +1 -0
- package/dist/ast/extractors/markdown.d.ts +40 -0
- package/dist/ast/extractors/markdown.d.ts.map +1 -0
- package/dist/ast/extractors/markdown.js +175 -0
- package/dist/ast/extractors/markdown.js.map +1 -0
- package/dist/ast/extractors/typescript.d.ts +179 -0
- package/dist/ast/extractors/typescript.d.ts.map +1 -0
- package/dist/ast/extractors/typescript.js +1439 -0
- package/dist/ast/extractors/typescript.js.map +1 -0
- package/dist/ast/parser.d.ts +5 -0
- package/dist/ast/parser.d.ts.map +1 -0
- package/dist/ast/parser.js +21 -0
- package/dist/ast/parser.js.map +1 -0
- package/dist/ast/types.d.ts +586 -0
- package/dist/ast/types.d.ts.map +1 -0
- package/dist/ast/types.js +3 -0
- package/dist/ast/types.js.map +1 -0
- package/dist/cli/docs-cmd.d.ts +22 -0
- package/dist/cli/docs-cmd.d.ts.map +1 -0
- package/dist/cli/docs-cmd.js +100 -0
- package/dist/cli/docs-cmd.js.map +1 -0
- package/dist/cli/index-cmd.d.ts +72 -0
- package/dist/cli/index-cmd.d.ts.map +1 -0
- package/dist/cli/index-cmd.js +263 -0
- package/dist/cli/index-cmd.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +14 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +64 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/install-hooks.d.ts +3 -0
- package/dist/cli/install-hooks.d.ts.map +1 -0
- package/dist/cli/install-hooks.js +34 -0
- package/dist/cli/install-hooks.js.map +1 -0
- package/dist/cli/metrics-cmd.d.ts +3 -0
- package/dist/cli/metrics-cmd.d.ts.map +1 -0
- package/dist/cli/metrics-cmd.js +164 -0
- package/dist/cli/metrics-cmd.js.map +1 -0
- package/dist/cli/program.d.ts +14 -0
- package/dist/cli/program.d.ts.map +1 -0
- package/dist/cli/program.js +44 -0
- package/dist/cli/program.js.map +1 -0
- package/dist/cli/query.d.ts +46 -0
- package/dist/cli/query.d.ts.map +1 -0
- package/dist/cli/query.js +153 -0
- package/dist/cli/query.js.map +1 -0
- package/dist/cli/search-cmd.d.ts +33 -0
- package/dist/cli/search-cmd.d.ts.map +1 -0
- package/dist/cli/search-cmd.js +114 -0
- package/dist/cli/search-cmd.js.map +1 -0
- package/dist/cli/serve.d.ts +3 -0
- package/dist/cli/serve.d.ts.map +1 -0
- package/dist/cli/serve.js +19 -0
- package/dist/cli/serve.js.map +1 -0
- package/dist/cli/skill-install.d.ts +39 -0
- package/dist/cli/skill-install.d.ts.map +1 -0
- package/dist/cli/skill-install.js +57 -0
- package/dist/cli/skill-install.js.map +1 -0
- package/dist/cli/status.d.ts +35 -0
- package/dist/cli/status.d.ts.map +1 -0
- package/dist/cli/status.js +117 -0
- package/dist/cli/status.js.map +1 -0
- package/dist/cli/upgrade-cmd.d.ts +48 -0
- package/dist/cli/upgrade-cmd.d.ts.map +1 -0
- package/dist/cli/upgrade-cmd.js +129 -0
- package/dist/cli/upgrade-cmd.js.map +1 -0
- package/dist/cli/version.d.ts +3 -0
- package/dist/cli/version.d.ts.map +1 -0
- package/dist/cli/version.js +19 -0
- package/dist/cli/version.js.map +1 -0
- package/dist/env.d.ts +17 -0
- package/dist/env.d.ts.map +1 -0
- package/dist/env.js +17 -0
- package/dist/env.js.map +1 -0
- package/dist/graph/checker-resolver.d.ts +156 -0
- package/dist/graph/checker-resolver.d.ts.map +1 -0
- package/dist/graph/checker-resolver.js +458 -0
- package/dist/graph/checker-resolver.js.map +1 -0
- package/dist/graph/db.d.ts +318 -0
- package/dist/graph/db.d.ts.map +1 -0
- package/dist/graph/db.js +266 -0
- package/dist/graph/db.js.map +1 -0
- package/dist/graph/index.d.ts +4 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +5 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/graph/local-type-env.d.ts +45 -0
- package/dist/graph/local-type-env.d.ts.map +1 -0
- package/dist/graph/local-type-env.js +59 -0
- package/dist/graph/local-type-env.js.map +1 -0
- package/dist/graph/path-range.d.ts +40 -0
- package/dist/graph/path-range.d.ts.map +1 -0
- package/dist/graph/path-range.js +42 -0
- package/dist/graph/path-range.js.map +1 -0
- package/dist/graph/populate.d.ts +263 -0
- package/dist/graph/populate.d.ts.map +1 -0
- package/dist/graph/populate.js +984 -0
- package/dist/graph/populate.js.map +1 -0
- package/dist/graph/queries.d.ts +114 -0
- package/dist/graph/queries.d.ts.map +1 -0
- package/dist/graph/queries.js +415 -0
- package/dist/graph/queries.js.map +1 -0
- package/dist/graph/sqliteBatch.d.ts +48 -0
- package/dist/graph/sqliteBatch.d.ts.map +1 -0
- package/dist/graph/sqliteBatch.js +93 -0
- package/dist/graph/sqliteBatch.js.map +1 -0
- package/dist/indexer/freshness.d.ts +48 -0
- package/dist/indexer/freshness.d.ts.map +1 -0
- package/dist/indexer/freshness.js +72 -0
- package/dist/indexer/freshness.js.map +1 -0
- package/dist/indexer/import-resolver.d.ts +50 -0
- package/dist/indexer/import-resolver.d.ts.map +1 -0
- package/dist/indexer/import-resolver.js +318 -0
- package/dist/indexer/import-resolver.js.map +1 -0
- package/dist/indexer/index.d.ts +249 -0
- package/dist/indexer/index.d.ts.map +1 -0
- package/dist/indexer/index.js +560 -0
- package/dist/indexer/index.js.map +1 -0
- package/dist/indexer/walker.d.ts +60 -0
- package/dist/indexer/walker.d.ts.map +1 -0
- package/dist/indexer/walker.js +128 -0
- package/dist/indexer/walker.js.map +1 -0
- package/dist/indexer/watcher.d.ts +80 -0
- package/dist/indexer/watcher.d.ts.map +1 -0
- package/dist/indexer/watcher.js +151 -0
- package/dist/indexer/watcher.js.map +1 -0
- package/dist/mcp/context.d.ts +23 -0
- package/dist/mcp/context.d.ts.map +1 -0
- package/dist/mcp/context.js +2 -0
- package/dist/mcp/context.js.map +1 -0
- package/dist/mcp/register-tools.d.ts +21 -0
- package/dist/mcp/register-tools.d.ts.map +1 -0
- package/dist/mcp/register-tools.js +42 -0
- package/dist/mcp/register-tools.js.map +1 -0
- package/dist/mcp/server.d.ts +58 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +177 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/staleness.d.ts +72 -0
- package/dist/mcp/staleness.d.ts.map +1 -0
- package/dist/mcp/staleness.js +213 -0
- package/dist/mcp/staleness.js.map +1 -0
- package/dist/mcp/startup.d.ts +40 -0
- package/dist/mcp/startup.d.ts.map +1 -0
- package/dist/mcp/startup.js +114 -0
- package/dist/mcp/startup.js.map +1 -0
- package/dist/mcp/tools/_helpers.d.ts +26 -0
- package/dist/mcp/tools/_helpers.d.ts.map +1 -0
- package/dist/mcp/tools/_helpers.js +54 -0
- package/dist/mcp/tools/_helpers.js.map +1 -0
- package/dist/mcp/tools/callers.d.ts +4 -0
- package/dist/mcp/tools/callers.d.ts.map +1 -0
- package/dist/mcp/tools/callers.js +112 -0
- package/dist/mcp/tools/callers.js.map +1 -0
- package/dist/mcp/tools/dependencies.d.ts +4 -0
- package/dist/mcp/tools/dependencies.d.ts.map +1 -0
- package/dist/mcp/tools/dependencies.js +36 -0
- package/dist/mcp/tools/dependencies.js.map +1 -0
- package/dist/mcp/tools/efficiency.d.ts +4 -0
- package/dist/mcp/tools/efficiency.d.ts.map +1 -0
- package/dist/mcp/tools/efficiency.js +39 -0
- package/dist/mcp/tools/efficiency.js.map +1 -0
- package/dist/mcp/tools/exports.d.ts +4 -0
- package/dist/mcp/tools/exports.d.ts.map +1 -0
- package/dist/mcp/tools/exports.js +56 -0
- package/dist/mcp/tools/exports.js.map +1 -0
- package/dist/mcp/tools/implementors.d.ts +4 -0
- package/dist/mcp/tools/implementors.d.ts.map +1 -0
- package/dist/mcp/tools/implementors.js +47 -0
- package/dist/mcp/tools/implementors.js.map +1 -0
- package/dist/mcp/tools/project-skeleton.d.ts +4 -0
- package/dist/mcp/tools/project-skeleton.d.ts.map +1 -0
- package/dist/mcp/tools/project-skeleton.js +61 -0
- package/dist/mcp/tools/project-skeleton.js.map +1 -0
- package/dist/mcp/tools/reindex.d.ts +14 -0
- package/dist/mcp/tools/reindex.d.ts.map +1 -0
- package/dist/mcp/tools/reindex.js +32 -0
- package/dist/mcp/tools/reindex.js.map +1 -0
- package/dist/mcp/tools/rename-impact.d.ts +4 -0
- package/dist/mcp/tools/rename-impact.d.ts.map +1 -0
- package/dist/mcp/tools/rename-impact.js +124 -0
- package/dist/mcp/tools/rename-impact.js.map +1 -0
- package/dist/mcp/tools/search.d.ts +4 -0
- package/dist/mcp/tools/search.d.ts.map +1 -0
- package/dist/mcp/tools/search.js +69 -0
- package/dist/mcp/tools/search.js.map +1 -0
- package/dist/mcp/tools/signature.d.ts +4 -0
- package/dist/mcp/tools/signature.d.ts.map +1 -0
- package/dist/mcp/tools/signature.js +127 -0
- package/dist/mcp/tools/signature.js.map +1 -0
- package/dist/mcp/tools/status.d.ts +4 -0
- package/dist/mcp/tools/status.d.ts.map +1 -0
- package/dist/mcp/tools/status.js +30 -0
- package/dist/mcp/tools/status.js.map +1 -0
- package/dist/search/declex.d.ts +109 -0
- package/dist/search/declex.d.ts.map +1 -0
- package/dist/search/declex.js +242 -0
- package/dist/search/declex.js.map +1 -0
- package/dist/search/fts.d.ts +77 -0
- package/dist/search/fts.d.ts.map +1 -0
- package/dist/search/fts.js +223 -0
- package/dist/search/fts.js.map +1 -0
- package/dist/search/fused.d.ts +110 -0
- package/dist/search/fused.d.ts.map +1 -0
- package/dist/search/fused.js +323 -0
- package/dist/search/fused.js.map +1 -0
- package/dist/search/potential-matches.d.ts +88 -0
- package/dist/search/potential-matches.d.ts.map +1 -0
- package/dist/search/potential-matches.js +83 -0
- package/dist/search/potential-matches.js.map +1 -0
- package/dist/search/scope.d.ts +66 -0
- package/dist/search/scope.d.ts.map +1 -0
- package/dist/search/scope.js +71 -0
- package/dist/search/scope.js.map +1 -0
- package/dist/store/config.d.ts +57 -0
- package/dist/store/config.d.ts.map +1 -0
- package/dist/store/config.js +208 -0
- package/dist/store/config.js.map +1 -0
- package/dist/store/lock.d.ts +101 -0
- package/dist/store/lock.d.ts.map +1 -0
- package/dist/store/lock.js +182 -0
- package/dist/store/lock.js.map +1 -0
- package/dist/store/lockMetrics.d.ts +52 -0
- package/dist/store/lockMetrics.d.ts.map +1 -0
- package/dist/store/lockMetrics.js +29 -0
- package/dist/store/lockMetrics.js.map +1 -0
- package/dist/store/sqliteChunkStore.d.ts +44 -0
- package/dist/store/sqliteChunkStore.d.ts.map +1 -0
- package/dist/store/sqliteChunkStore.js +135 -0
- package/dist/store/sqliteChunkStore.js.map +1 -0
- package/dist/telemetry/lockMetricsSummary.d.ts +42 -0
- package/dist/telemetry/lockMetricsSummary.d.ts.map +1 -0
- package/dist/telemetry/lockMetricsSummary.js +139 -0
- package/dist/telemetry/lockMetricsSummary.js.map +1 -0
- package/dist/telemetry/metrics.d.ts +140 -0
- package/dist/telemetry/metrics.d.ts.map +1 -0
- package/dist/telemetry/metrics.js +312 -0
- package/dist/telemetry/metrics.js.map +1 -0
- package/dist/telemetry/tokenizer.d.ts +125 -0
- package/dist/telemetry/tokenizer.d.ts.map +1 -0
- package/dist/telemetry/tokenizer.js +174 -0
- package/dist/telemetry/tokenizer.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,586 @@
|
|
|
1
|
+
/** All domain types shared across MAST subsystems. */
|
|
2
|
+
export type ChunkType = 'function' | 'method' | 'class_shell' | 'interface' | 'type' | 'export' | 'block'
|
|
3
|
+
/** Markdown document section (heading-based chunking, §10.1). */
|
|
4
|
+
| 'doc';
|
|
5
|
+
export type Language = 'typescript' | 'javascript' | 'markdown';
|
|
6
|
+
/**
|
|
7
|
+
* A single indexed code chunk — maps to one AST declaration (or a sub-chunk
|
|
8
|
+
* when the declaration exceeds `chunk_split_threshold` lines).
|
|
9
|
+
*
|
|
10
|
+
* `start_line` / `end_line` always reflect AST declaration boundaries.
|
|
11
|
+
* `content` may extend `context_lines` beyond those boundaries for display.
|
|
12
|
+
*/
|
|
13
|
+
export interface Chunk {
|
|
14
|
+
readonly chunk_id: string;
|
|
15
|
+
readonly file_path: string;
|
|
16
|
+
readonly start_line: number;
|
|
17
|
+
readonly end_line: number;
|
|
18
|
+
readonly content: string;
|
|
19
|
+
readonly chunk_type: ChunkType;
|
|
20
|
+
readonly symbol_name: string | null;
|
|
21
|
+
/** Enclosing class name for `method` chunks; null for all others. */
|
|
22
|
+
readonly parent_symbol: string | null;
|
|
23
|
+
readonly is_exported: boolean;
|
|
24
|
+
readonly language: Language;
|
|
25
|
+
readonly file_mtime: number;
|
|
26
|
+
/**
|
|
27
|
+
* sha256 of the symbol's signature (declaration up to, not including, the
|
|
28
|
+
* body). Transient: computed from the AST during extraction and consumed by
|
|
29
|
+
* `symbolsFromChunks`; NOT persisted to chunks.lance. Undefined on
|
|
30
|
+
* `block` chunks and on chunks reconstructed from the store.
|
|
31
|
+
*/
|
|
32
|
+
readonly declaration_hash?: string;
|
|
33
|
+
/**
|
|
34
|
+
* sha256 of the symbol's body. For `class_shell`, the sorted member
|
|
35
|
+
* signatures (no method bodies), per §10.1. Transient — see `declaration_hash`.
|
|
36
|
+
*/
|
|
37
|
+
readonly body_hash?: string;
|
|
38
|
+
}
|
|
39
|
+
/** Stability hashes stored per chunk for incremental reindex optimisation. */
|
|
40
|
+
export interface ChunkHashes {
|
|
41
|
+
readonly chunk_id: string;
|
|
42
|
+
/** sha256 of signature text only (excludes body). */
|
|
43
|
+
readonly declaration_hash: string;
|
|
44
|
+
/** sha256 of body text; for class_shell, over sorted member signatures. */
|
|
45
|
+
readonly body_hash: string;
|
|
46
|
+
}
|
|
47
|
+
export interface SymbolRecord {
|
|
48
|
+
readonly name: string;
|
|
49
|
+
/** `function | class | interface | type | const | method` */
|
|
50
|
+
readonly kind: string;
|
|
51
|
+
readonly line: number;
|
|
52
|
+
readonly isExported: boolean;
|
|
53
|
+
/** sha256 of signature text only (excludes body). */
|
|
54
|
+
readonly declarationHash: string | null;
|
|
55
|
+
/** sha256 of body text; for class_shell, over sorted member signatures. */
|
|
56
|
+
readonly bodyHash: string | null;
|
|
57
|
+
}
|
|
58
|
+
export interface ImportRecord {
|
|
59
|
+
readonly module: string;
|
|
60
|
+
readonly symbols: readonly string[];
|
|
61
|
+
readonly isExternal: boolean;
|
|
62
|
+
/** Resolved relative path for intra-monorepo imports; null for external. */
|
|
63
|
+
readonly resolvedPath: string | null;
|
|
64
|
+
}
|
|
65
|
+
export interface EdgeRecord {
|
|
66
|
+
readonly fromName: string;
|
|
67
|
+
readonly toName: string;
|
|
68
|
+
readonly edgeType: string;
|
|
69
|
+
/** How a POTENTIAL_CALL receiver was statically linked (§10.3.1). */
|
|
70
|
+
readonly resolution?: CallerResolution;
|
|
71
|
+
/** 1-indexed source line of the call site (POTENTIAL_CALL only). */
|
|
72
|
+
readonly callLine?: number;
|
|
73
|
+
/** Trimmed source text of the call-site line (POTENTIAL_CALL only). */
|
|
74
|
+
readonly context?: string;
|
|
75
|
+
/**
|
|
76
|
+
* RE_EXPORTS only: the re-export's own module specifier resolved to a real
|
|
77
|
+
* indexed file (null for an external/unresolvable module). This is the file
|
|
78
|
+
* evidence `insertEdges` must use to pick the target when two files export a
|
|
79
|
+
* same-named symbol — without it, resolution falls back to a bare-name match
|
|
80
|
+
* across the whole graph, which races on insertion order (the RE_EXPORTS
|
|
81
|
+
* sibling of the POTENTIAL_CALL false-green fixed in `populate.ts`;
|
|
82
|
+
* IMPLEMENTATION_PLAN_VEXP.md §P, "Sibling false-green"). Undefined for
|
|
83
|
+
* every other edge type.
|
|
84
|
+
*/
|
|
85
|
+
readonly toResolvedPath?: string | null;
|
|
86
|
+
}
|
|
87
|
+
export interface MastConfig {
|
|
88
|
+
readonly state_dir: string;
|
|
89
|
+
readonly project_root: string;
|
|
90
|
+
readonly file_extensions: readonly string[];
|
|
91
|
+
readonly exclude_patterns: readonly string[];
|
|
92
|
+
/** Reciprocal Rank Fusion constant k (default 60). */
|
|
93
|
+
readonly rrf_k: number;
|
|
94
|
+
/**
|
|
95
|
+
* F18 kill-switch (M2 decision memo condition 3): fuses the declaration-exact
|
|
96
|
+
* ranker (ranker D, `src/search/declex.ts`) into `mast_search` ranking as a
|
|
97
|
+
* third RRF input. Default true. Set false to restore pre-F18 ranking
|
|
98
|
+
* without a code change.
|
|
99
|
+
*/
|
|
100
|
+
readonly declaration_exact_ranker: boolean;
|
|
101
|
+
/** Lines above which a declaration is split into overlapping sub-chunks. */
|
|
102
|
+
readonly chunk_split_threshold: number;
|
|
103
|
+
/** Source lines before/after AST boundaries included in stored content. */
|
|
104
|
+
readonly context_lines: number;
|
|
105
|
+
/**
|
|
106
|
+
* Maximum ATX heading level that starts a new markdown doc chunk (§10.1).
|
|
107
|
+
* Headings deeper than this fold into their enclosing section. Default 2 —
|
|
108
|
+
* "one chunk per `##` section".
|
|
109
|
+
*/
|
|
110
|
+
readonly markdown_heading_depth: number;
|
|
111
|
+
}
|
|
112
|
+
export interface IndexMeta {
|
|
113
|
+
schema_version: string;
|
|
114
|
+
last_indexed: string | null;
|
|
115
|
+
file_count: number;
|
|
116
|
+
chunk_count: number;
|
|
117
|
+
parse_errors?: number;
|
|
118
|
+
write_errors?: number;
|
|
119
|
+
seed_commit?: string;
|
|
120
|
+
}
|
|
121
|
+
/** Attached to every read-tool response to track token savings. */
|
|
122
|
+
export interface ToolStats {
|
|
123
|
+
readonly tool: string;
|
|
124
|
+
readonly tokens_returned: number;
|
|
125
|
+
readonly tokens_full_file_upper_bound: number;
|
|
126
|
+
readonly files_referenced: readonly string[];
|
|
127
|
+
/** 1 - (tokens_returned / tokens_full_file_upper_bound) */
|
|
128
|
+
readonly efficiency_ratio: number;
|
|
129
|
+
readonly duration_ms: number;
|
|
130
|
+
}
|
|
131
|
+
export interface SearchInput {
|
|
132
|
+
readonly query: string;
|
|
133
|
+
readonly limit?: number;
|
|
134
|
+
readonly language?: Language | null;
|
|
135
|
+
readonly file_pattern?: string | null;
|
|
136
|
+
readonly chunk_type?: ChunkType | null;
|
|
137
|
+
readonly only_exported?: boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Presentation hint attached by the post-RRF shell/method dedup pass
|
|
141
|
+
* (§9 mast_search). Exactly one shape:
|
|
142
|
+
* - a surviving `method` whose class shell was suppressed carries
|
|
143
|
+
* `{ parent_symbol }` — "the class outline also matched";
|
|
144
|
+
* - a surviving `class_shell` whose methods were suppressed carries
|
|
145
|
+
* `{ methods_matched }` — the qualified method names that also matched.
|
|
146
|
+
*/
|
|
147
|
+
export type RelatedHint = {
|
|
148
|
+
readonly parent_symbol: string;
|
|
149
|
+
} | {
|
|
150
|
+
readonly methods_matched: readonly string[];
|
|
151
|
+
};
|
|
152
|
+
export interface SearchResult {
|
|
153
|
+
readonly file_path: string;
|
|
154
|
+
readonly start_line: number;
|
|
155
|
+
readonly end_line: number;
|
|
156
|
+
readonly content: string;
|
|
157
|
+
readonly chunk_type: ChunkType;
|
|
158
|
+
readonly symbol_name: string | null;
|
|
159
|
+
readonly parent_symbol: string | null;
|
|
160
|
+
readonly is_exported: boolean;
|
|
161
|
+
readonly match_score: number | null;
|
|
162
|
+
readonly rank: number;
|
|
163
|
+
readonly match_snippet: string | null;
|
|
164
|
+
/** Present only when the shell/method dedup pass suppressed a counterpart. */
|
|
165
|
+
readonly related?: RelatedHint;
|
|
166
|
+
/**
|
|
167
|
+
* Stat-and-flag staleness (F7, split into its own field by C1). Set when
|
|
168
|
+
* this result's `file_path` stat'd newer-on-disk than its indexed mtime,
|
|
169
|
+
* or the stat failed (file deleted/renamed) — `mast_search` can return
|
|
170
|
+
* results spanning dozens of files, so unlike the single-file JIT-refresh
|
|
171
|
+
* tools (whose `file_busy_returning_stale_cache` field means a refresh was
|
|
172
|
+
* ATTEMPTED and lost to contention) no refresh is ever attempted here: no
|
|
173
|
+
* lock is taken, no re-parse happens, only a `statSync`. Treat this
|
|
174
|
+
* result's line coordinates as untrustworthy until a `mast_reindex` call,
|
|
175
|
+
* or any JIT-refreshing tool call against the file, heals it — staleness
|
|
176
|
+
* is NOT self-healing across repeated `mast_search` calls on its own.
|
|
177
|
+
* Omitted when false, never present-and-false. See MAST_SPEC.md §9.0's
|
|
178
|
+
* "Confidence signals (C1)" table for how this relates to the other
|
|
179
|
+
* confidence fields.
|
|
180
|
+
*/
|
|
181
|
+
readonly stale?: true;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* A "did you mean" candidate surfaced when a search returns no results.
|
|
185
|
+
* Advisory only — suggestions are never counted as results (§9 mast_search).
|
|
186
|
+
*/
|
|
187
|
+
export interface SearchSuggestion {
|
|
188
|
+
readonly symbol: string;
|
|
189
|
+
readonly file_path: string;
|
|
190
|
+
/**
|
|
191
|
+
* Why this symbol is a candidate — e.g. "similar symbol name",
|
|
192
|
+
* "matched split query terms", "identifier near-miss".
|
|
193
|
+
*/
|
|
194
|
+
readonly reason: string;
|
|
195
|
+
}
|
|
196
|
+
export interface SearchResponse {
|
|
197
|
+
readonly results: readonly SearchResult[];
|
|
198
|
+
/**
|
|
199
|
+
* Present (possibly empty) only when `results` is empty — the zero-result
|
|
200
|
+
* assist path ran. Omitted entirely when results were found.
|
|
201
|
+
*/
|
|
202
|
+
readonly suggestions?: readonly SearchSuggestion[];
|
|
203
|
+
/**
|
|
204
|
+
* M6 (`eval/GITNEXUS_COMPARISON.md` §13.8 item 4, MAST_SPEC.md §9.0 "Empty-index
|
|
205
|
+
* signal"). Present (`true`) only when the primary result set (`results`
|
|
206
|
+
* here) came back empty AND the `chunks` table has zero rows at that
|
|
207
|
+
* moment — i.e. this response's emptiness is explained (at least in part)
|
|
208
|
+
* by "nothing is indexed yet, or you pointed at the wrong state dir", not
|
|
209
|
+
* merely "no match". An ordinary zero-result query against a populated
|
|
210
|
+
* index never carries this flag. Independent of `suggestions` — a truly
|
|
211
|
+
* empty index yields no suggestions either, but the two fields are not
|
|
212
|
+
* coupled; either may be present without the other. Omitted entirely when
|
|
213
|
+
* false, never present-and-false (the `stale` field's omitted-when-false
|
|
214
|
+
* convention, §9.0). Computed by `mcp/tools/_helpers.ts`'s `isIndexEmpty`,
|
|
215
|
+
* called only on the empty-result path so a non-empty response pays
|
|
216
|
+
* nothing extra.
|
|
217
|
+
*/
|
|
218
|
+
readonly index_empty?: true;
|
|
219
|
+
readonly _stats: ToolStats;
|
|
220
|
+
}
|
|
221
|
+
export interface ProjectSkeletonInput {
|
|
222
|
+
readonly directory?: string | null;
|
|
223
|
+
readonly max_depth?: number;
|
|
224
|
+
readonly file_pattern?: string | null;
|
|
225
|
+
}
|
|
226
|
+
export interface FileSkeleton {
|
|
227
|
+
readonly file_path: string;
|
|
228
|
+
readonly exports: readonly string[];
|
|
229
|
+
}
|
|
230
|
+
export interface ProjectSkeletonResponse {
|
|
231
|
+
readonly files: readonly FileSkeleton[];
|
|
232
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal, keyed on `files`. */
|
|
233
|
+
readonly index_empty?: true;
|
|
234
|
+
readonly _stats: ToolStats;
|
|
235
|
+
}
|
|
236
|
+
export interface ExportsInput {
|
|
237
|
+
readonly file_path: string;
|
|
238
|
+
}
|
|
239
|
+
export interface ExportEntry {
|
|
240
|
+
readonly name: string;
|
|
241
|
+
readonly kind: string;
|
|
242
|
+
readonly signature: string;
|
|
243
|
+
readonly line: number;
|
|
244
|
+
readonly doc: string | null;
|
|
245
|
+
}
|
|
246
|
+
export interface ExportsResponse {
|
|
247
|
+
readonly file_path: string;
|
|
248
|
+
readonly exports: readonly ExportEntry[];
|
|
249
|
+
/**
|
|
250
|
+
* §9.0 TOCTOU policy. `mast_exports` describes exactly one file and JITs it
|
|
251
|
+
* with a single `checkAndRefreshIfStale` call, so staleness is a property
|
|
252
|
+
* of the whole response, not of any one `ExportEntry` — set here rather
|
|
253
|
+
* than per-entry. Present (`true`) only when the file was stale and the
|
|
254
|
+
* JIT re-parse could not acquire `structure.lock`; omitted otherwise.
|
|
255
|
+
*/
|
|
256
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
257
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal, keyed on `exports`. */
|
|
258
|
+
readonly index_empty?: true;
|
|
259
|
+
readonly _stats: ToolStats;
|
|
260
|
+
}
|
|
261
|
+
export interface SignatureInput {
|
|
262
|
+
readonly symbol: string;
|
|
263
|
+
readonly file_path?: string | null;
|
|
264
|
+
}
|
|
265
|
+
export interface ParamEntry {
|
|
266
|
+
readonly name: string;
|
|
267
|
+
readonly type: string;
|
|
268
|
+
}
|
|
269
|
+
export interface TypeContextEntry {
|
|
270
|
+
readonly name: string;
|
|
271
|
+
readonly signature: string;
|
|
272
|
+
readonly file_path: string;
|
|
273
|
+
readonly line: number;
|
|
274
|
+
readonly truncated: boolean;
|
|
275
|
+
}
|
|
276
|
+
export interface SignatureResult {
|
|
277
|
+
readonly symbol: string;
|
|
278
|
+
readonly file_path: string;
|
|
279
|
+
readonly line: number;
|
|
280
|
+
readonly signature: string;
|
|
281
|
+
readonly doc: string | null;
|
|
282
|
+
readonly params: readonly ParamEntry[];
|
|
283
|
+
readonly return_type: string | null;
|
|
284
|
+
readonly type_context: readonly TypeContextEntry[];
|
|
285
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
286
|
+
}
|
|
287
|
+
export interface SignatureResponse {
|
|
288
|
+
readonly results: readonly SignatureResult[];
|
|
289
|
+
/**
|
|
290
|
+
* §9.0 TOCTOU policy, empty-result case (F14). The busy signal normally
|
|
291
|
+
* rides on each {@link SignatureResult}; with zero results it has no
|
|
292
|
+
* carrier, and "no results" from a stale, un-refreshable file would read
|
|
293
|
+
* as "symbol doesn't exist". Present (`true`) only when a
|
|
294
|
+
* `file_path`-narrowed query returned no results AND that file's JIT
|
|
295
|
+
* re-parse could not acquire `structure.lock`; omitted otherwise —
|
|
296
|
+
* non-empty responses carry the flag per-result, never here.
|
|
297
|
+
*/
|
|
298
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
299
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal, keyed on `results`. Independent of the `file_busy_returning_stale_cache` envelope flag above; either, both, or neither may be present. */
|
|
300
|
+
readonly index_empty?: true;
|
|
301
|
+
readonly _stats: ToolStats;
|
|
302
|
+
}
|
|
303
|
+
export interface CallersInput {
|
|
304
|
+
readonly symbol: string;
|
|
305
|
+
readonly file_path?: string | null;
|
|
306
|
+
readonly transitive?: boolean;
|
|
307
|
+
readonly include_potential?: boolean;
|
|
308
|
+
}
|
|
309
|
+
export type CallerResolution = 'import' | 'field_type' | 'parameter_type' | 'new_expression' | 'same_file'
|
|
310
|
+
/**
|
|
311
|
+
* Additive (Stage 1.2, `mast index --checker`): the tree-sitter heuristic
|
|
312
|
+
* left this call site as a `potential_match` (no static resolution rule
|
|
313
|
+
* applied), and an opt-in TypeScript-checker pass resolved it to the
|
|
314
|
+
* queried declaration via `ts.TypeChecker.getSymbolAtLocation` (following
|
|
315
|
+
* alias chains). See MAST_SPEC §10.3.2.
|
|
316
|
+
*/
|
|
317
|
+
| 'checker'
|
|
318
|
+
/**
|
|
319
|
+
* Additive (F4, Stage 3): `this.foo()` inside a class method body,
|
|
320
|
+
* resolved to the enclosing class's qualified method via a receiver
|
|
321
|
+
* binding seeded per method (`emitClassEdges`), not inference. Excludes
|
|
322
|
+
* calls inside a nested non-arrow function/generator body — those have
|
|
323
|
+
* their own dynamic `this` and are never seeded (§10.3.1). See
|
|
324
|
+
* MAST_SPEC.md §10.3.1 "Method calls on super and this".
|
|
325
|
+
*/
|
|
326
|
+
| 'this_method'
|
|
327
|
+
/**
|
|
328
|
+
* Additive (F4, Stage 3): `super.foo()` inside a class method body,
|
|
329
|
+
* resolved to the parent class named in the `extends` clause. Only seeded
|
|
330
|
+
* when an `extends` clause exists; a class with no parent never produces
|
|
331
|
+
* this resolution (falls to the `identifier_fts` potential set instead).
|
|
332
|
+
* See MAST_SPEC.md §10.3.1 "Method calls on super and this".
|
|
333
|
+
*/
|
|
334
|
+
| 'super_method';
|
|
335
|
+
export interface VerifiedCaller {
|
|
336
|
+
readonly file_path: string;
|
|
337
|
+
readonly line: number;
|
|
338
|
+
readonly caller_symbol: string;
|
|
339
|
+
readonly context: string;
|
|
340
|
+
readonly resolution: CallerResolution;
|
|
341
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
342
|
+
}
|
|
343
|
+
export interface PotentialMatch {
|
|
344
|
+
readonly file_path: string;
|
|
345
|
+
readonly line: number;
|
|
346
|
+
readonly context: string;
|
|
347
|
+
readonly reason: 'identifier_match_no_resolved_edge';
|
|
348
|
+
}
|
|
349
|
+
export interface CallersResponse {
|
|
350
|
+
readonly verified_callers: readonly VerifiedCaller[];
|
|
351
|
+
readonly potential_matches: readonly PotentialMatch[];
|
|
352
|
+
/**
|
|
353
|
+
* §9.0 TOCTOU policy. `mast_callers` JITs only the FILE THAT DECLARES the
|
|
354
|
+
* queried symbol (when `file_path` disambiguates it) — not the files each
|
|
355
|
+
* caller lives in. Staleness there means the target-symbol resolution
|
|
356
|
+
* itself may be stale, which taints the whole response (which edges were
|
|
357
|
+
* even considered), not one caller's line number. That is a different
|
|
358
|
+
* file than `VerifiedCaller.file_path`, so `VerifiedCaller`'s own
|
|
359
|
+
* (currently unused) per-entry flag would misleadingly imply the CALLER's
|
|
360
|
+
* file is stale — set here at the envelope instead. Present (`true`) only
|
|
361
|
+
* when that JIT re-parse could not acquire `structure.lock`.
|
|
362
|
+
*/
|
|
363
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
364
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal; set only when BOTH `verified_callers` and `potential_matches` are empty. */
|
|
365
|
+
readonly index_empty?: true;
|
|
366
|
+
readonly summary: {
|
|
367
|
+
readonly verified_count: number;
|
|
368
|
+
readonly potential_count: number;
|
|
369
|
+
readonly transitive: boolean;
|
|
370
|
+
/**
|
|
371
|
+
* Candidates the checker pass classified as NOT a call site (comment,
|
|
372
|
+
* string, or type position) and dropped out of `potential_matches` —
|
|
373
|
+
* additive, always 0 when `mast index --checker` has never run.
|
|
374
|
+
*/
|
|
375
|
+
readonly checker_classified_non_call_site: number;
|
|
376
|
+
/**
|
|
377
|
+
* Candidates the checker pass resolved to a DIFFERENT declaration (a
|
|
378
|
+
* same-name collision) and dropped out of `potential_matches` — additive,
|
|
379
|
+
* always 0 when `mast index --checker` has never run.
|
|
380
|
+
*/
|
|
381
|
+
readonly checker_classified_different_declaration: number;
|
|
382
|
+
/**
|
|
383
|
+
* F10 (Stage 3): present ONLY when the raw `identifier_fts` match count
|
|
384
|
+
* for this symbol exceeded the capped fetch (50 entries) — carries the
|
|
385
|
+
* real, uncapped count. See MAST_SPEC.md §9.0's Confidence signals (C1)
|
|
386
|
+
* table.
|
|
387
|
+
*
|
|
388
|
+
* **Precision note**: this reports RAW FTS-match truncation only.
|
|
389
|
+
* `potential_matches` itself may still be smaller than the fetch cap even
|
|
390
|
+
* when this field is present — verified-overlap exclusion and
|
|
391
|
+
* checker-verdict filtering both run AFTER the capped fetch. Those are
|
|
392
|
+
* *filtering*, not truncation, and are already visible via
|
|
393
|
+
* `checker_classified_non_call_site` / `checker_classified_different_declaration`
|
|
394
|
+
* above. Omitted when the fetch came back under the cap (the fetch count
|
|
395
|
+
* already IS the real count) — same omitted-when-false convention as
|
|
396
|
+
* `file_busy_returning_stale_cache` / `index_empty` above.
|
|
397
|
+
*/
|
|
398
|
+
readonly potential_truncated?: number;
|
|
399
|
+
};
|
|
400
|
+
readonly _stats: ToolStats;
|
|
401
|
+
}
|
|
402
|
+
export interface RenameImpactInput {
|
|
403
|
+
readonly symbol: string;
|
|
404
|
+
readonly file_path?: string | null;
|
|
405
|
+
}
|
|
406
|
+
export interface DeclarationSite {
|
|
407
|
+
readonly file_path: string;
|
|
408
|
+
readonly line: number;
|
|
409
|
+
readonly kind: string;
|
|
410
|
+
readonly is_exported: boolean;
|
|
411
|
+
}
|
|
412
|
+
export interface BarrelExportSite {
|
|
413
|
+
readonly file_path: string;
|
|
414
|
+
/** Line of the re-export specifier; null for star barrels (file-level). */
|
|
415
|
+
readonly line: number | null;
|
|
416
|
+
/** Name the barrel exposes — differs from the symbol name when aliased. */
|
|
417
|
+
readonly exported_as: string;
|
|
418
|
+
readonly via: 'named' | 'star';
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Composed refactor checklist for renaming a symbol (§9 mast_rename_impact).
|
|
422
|
+
* Every section reuses an existing query capability — declarations from the
|
|
423
|
+
* symbols table, callers from POTENTIAL_CALL edges, review sites from
|
|
424
|
+
* identifier_fts, barrels from RE_EXPORTS + re_export_files.
|
|
425
|
+
*/
|
|
426
|
+
export interface RenameImpactResponse {
|
|
427
|
+
readonly symbol: string;
|
|
428
|
+
readonly declaration_sites: readonly DeclarationSite[];
|
|
429
|
+
readonly verified_callers: readonly VerifiedCaller[];
|
|
430
|
+
readonly potential_matches: readonly PotentialMatch[];
|
|
431
|
+
readonly barrel_exports: readonly BarrelExportSite[];
|
|
432
|
+
/** See {@link CallersResponse.file_busy_returning_stale_cache} — same envelope-vs-per-entry reasoning; `mast_rename_impact` shares `mast_callers`' JIT policy. */
|
|
433
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
434
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal; set only when ALL FOUR of `declaration_sites`, `verified_callers`, `potential_matches`, and `barrel_exports` are empty. */
|
|
435
|
+
readonly index_empty?: true;
|
|
436
|
+
readonly summary: {
|
|
437
|
+
readonly declaration_count: number;
|
|
438
|
+
readonly verified_count: number;
|
|
439
|
+
readonly potential_count: number;
|
|
440
|
+
readonly barrel_count: number;
|
|
441
|
+
/** Human-readable framing: "N verified…, M review-required…, K barrel…". */
|
|
442
|
+
readonly checklist: string;
|
|
443
|
+
/** See {@link CallersResponse.summary.checker_classified_non_call_site}. */
|
|
444
|
+
readonly checker_classified_non_call_site: number;
|
|
445
|
+
/** See {@link CallersResponse.summary.checker_classified_different_declaration}. */
|
|
446
|
+
readonly checker_classified_different_declaration: number;
|
|
447
|
+
/** See {@link CallersResponse.summary.potential_truncated} — same signal, same precision note. */
|
|
448
|
+
readonly potential_truncated?: number;
|
|
449
|
+
};
|
|
450
|
+
readonly _stats: ToolStats;
|
|
451
|
+
}
|
|
452
|
+
export interface DependenciesInput {
|
|
453
|
+
readonly file_path: string;
|
|
454
|
+
}
|
|
455
|
+
export interface DependencyEntry {
|
|
456
|
+
readonly module: string;
|
|
457
|
+
readonly symbols: readonly string[];
|
|
458
|
+
readonly is_external: boolean;
|
|
459
|
+
readonly resolved_path?: string;
|
|
460
|
+
}
|
|
461
|
+
export interface DependenciesResponse {
|
|
462
|
+
readonly file_path: string;
|
|
463
|
+
readonly imports: readonly DependencyEntry[];
|
|
464
|
+
/** See {@link ExportsResponse.file_busy_returning_stale_cache} — same single-file envelope reasoning. */
|
|
465
|
+
readonly file_busy_returning_stale_cache?: true;
|
|
466
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal, keyed on `imports`. */
|
|
467
|
+
readonly index_empty?: true;
|
|
468
|
+
readonly _stats: ToolStats;
|
|
469
|
+
}
|
|
470
|
+
export interface ImplementorsInput {
|
|
471
|
+
readonly interface_name: string;
|
|
472
|
+
}
|
|
473
|
+
export interface ImplementorResult {
|
|
474
|
+
readonly class_name: string;
|
|
475
|
+
readonly file_path: string;
|
|
476
|
+
readonly line: number;
|
|
477
|
+
readonly methods: readonly string[];
|
|
478
|
+
/**
|
|
479
|
+
* Stat-and-flag staleness (F7, split into its own field by C1). Set when
|
|
480
|
+
* this result's `file_path` stat'd newer-on-disk than its indexed mtime,
|
|
481
|
+
* or the stat failed (file deleted/renamed) — `mast_implementors` can
|
|
482
|
+
* return implementors spanning many files, so unlike the single-file
|
|
483
|
+
* JIT-refresh tools (whose `file_busy_returning_stale_cache` field means a
|
|
484
|
+
* refresh was ATTEMPTED and lost to contention) no refresh is ever
|
|
485
|
+
* attempted here: no lock is taken and the line coordinates are not
|
|
486
|
+
* re-parsed, only flagged via `statSync`. Refreshing here would mean up to
|
|
487
|
+
* ~50 `structure.lock` acquisitions per call and could invalidate the
|
|
488
|
+
* graph query that already selected these results (§9.0;
|
|
489
|
+
* `eval/GITNEXUS_COMPARISON.md` §13.7). Treat this result's coordinates as
|
|
490
|
+
* untrustworthy until a `mast_reindex` call, or any JIT-refreshing tool
|
|
491
|
+
* call against the file, heals it. Omitted when false, never
|
|
492
|
+
* present-and-false. See MAST_SPEC.md §9.0's "Confidence signals (C1)"
|
|
493
|
+
* table.
|
|
494
|
+
*/
|
|
495
|
+
readonly stale?: true;
|
|
496
|
+
}
|
|
497
|
+
export interface ImplementorsResponse {
|
|
498
|
+
readonly results: readonly ImplementorResult[];
|
|
499
|
+
/** @see {@link SearchResponse.index_empty} — same empty-index signal, keyed on `results`. */
|
|
500
|
+
readonly index_empty?: true;
|
|
501
|
+
readonly _stats: ToolStats;
|
|
502
|
+
}
|
|
503
|
+
export interface ReindexInput {
|
|
504
|
+
readonly full?: boolean;
|
|
505
|
+
}
|
|
506
|
+
export interface ReindexResult {
|
|
507
|
+
readonly files_indexed: number;
|
|
508
|
+
readonly files_skipped: number;
|
|
509
|
+
readonly chunks_added: number;
|
|
510
|
+
readonly chunks_removed: number;
|
|
511
|
+
readonly parse_errors: number;
|
|
512
|
+
readonly write_errors: number;
|
|
513
|
+
/**
|
|
514
|
+
* Files whose write was refused by the monotonic write-guard because the
|
|
515
|
+
* stored row already carried a newer mtime. NOT a failure — the index is
|
|
516
|
+
* correct — but the file was not written by THIS run, so it is excluded
|
|
517
|
+
* from `files_indexed` and reported here instead of vanishing from the
|
|
518
|
+
* accounting entirely (D039).
|
|
519
|
+
*/
|
|
520
|
+
readonly stale_write_rejections: number;
|
|
521
|
+
/**
|
|
522
|
+
* Count of imports that resolved only because the filesystem ignored their
|
|
523
|
+
* casing — broken on a case-sensitive filesystem. The count alone travels on
|
|
524
|
+
* the wire; `mast index` prints the offending files.
|
|
525
|
+
*/
|
|
526
|
+
readonly miscased_imports: number;
|
|
527
|
+
readonly duration_ms: number;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Why the index is not fully fresh (null when it is). Stage 7.2
|
|
531
|
+
* (IMPLEMENTATION_PLAN.md "Stage 7: Vector-store deletion") removed
|
|
532
|
+
* `'embedding_backlog'`/`'both'` — the Phase 2 embedder that could produce a
|
|
533
|
+
* backlog distinct from Phase 1 (chunk line coordinates lagging disk,
|
|
534
|
+
* corrected by JIT on read) no longer exists, so a two-cause union asserted a
|
|
535
|
+
* distinction the code can no longer draw.
|
|
536
|
+
*/
|
|
537
|
+
export type FreshnessCause = 'phase1_stale' | null;
|
|
538
|
+
export interface StatusResult {
|
|
539
|
+
readonly state_dir: string;
|
|
540
|
+
/**
|
|
541
|
+
* `CURRENT_SCHEMA_VERSION` as compiled into the **running binary** — not the
|
|
542
|
+
* value stored in `index.json`.
|
|
543
|
+
*
|
|
544
|
+
* After a normal startup the two are equal, because §7.4 Step 2's guard wipes
|
|
545
|
+
* derived state on a mismatch. They diverge in exactly the case worth
|
|
546
|
+
* detecting (D8): a long-lived process still executing an older build while
|
|
547
|
+
* the state directory it holds open has since been migrated by a newer one.
|
|
548
|
+
* Sourcing this from disk would report the migrated value and hide that
|
|
549
|
+
* divergence, so it is deliberately read from the binary's own constant.
|
|
550
|
+
*/
|
|
551
|
+
readonly schema_version: string;
|
|
552
|
+
readonly last_indexed: string | null;
|
|
553
|
+
readonly indexed_files: number;
|
|
554
|
+
readonly chunk_count: number;
|
|
555
|
+
/**
|
|
556
|
+
* Files whose on-disk state the index does not reflect: content changed
|
|
557
|
+
* since it was indexed, plus files present on disk but absent from the index
|
|
558
|
+
* (never indexed, or lost to a failed run), plus files the index still knows
|
|
559
|
+
* about that are gone from disk. Produced by `indexer/freshness.ts`
|
|
560
|
+
* `measureFreshness`, which `mast status` shares — the two surfaces answer
|
|
561
|
+
* one question and computed it differently until 2026-08-20
|
|
562
|
+
* (`docs/defects/LEDGER.md` D035).
|
|
563
|
+
*/
|
|
564
|
+
readonly stale_files: number;
|
|
565
|
+
readonly parse_errors: number;
|
|
566
|
+
readonly write_errors: number;
|
|
567
|
+
readonly index_fresh: boolean;
|
|
568
|
+
readonly freshness_cause: FreshnessCause;
|
|
569
|
+
readonly seed_commit?: string;
|
|
570
|
+
}
|
|
571
|
+
export interface EfficiencyInput {
|
|
572
|
+
readonly scope: 'session' | 'global';
|
|
573
|
+
readonly since_minutes?: number;
|
|
574
|
+
}
|
|
575
|
+
export interface EfficiencyResult {
|
|
576
|
+
readonly scope: 'session' | 'global';
|
|
577
|
+
readonly window_started_at: string;
|
|
578
|
+
readonly tokens_returned: number;
|
|
579
|
+
readonly tokens_full_file_upper_bound: number;
|
|
580
|
+
readonly efficiency_ratio: number;
|
|
581
|
+
readonly calls_total: number;
|
|
582
|
+
readonly calls_by_tool: Readonly<Record<string, number>>;
|
|
583
|
+
readonly tokenizer: string;
|
|
584
|
+
readonly counterfactual: string;
|
|
585
|
+
}
|
|
586
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ast/types.ts"],"names":[],"mappings":"AAAA,sDAAsD"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* `mast docs` and `mast skill` — documentation that is version-matched by construction.
|
|
4
|
+
*
|
|
5
|
+
* Both read files shipped inside the installed package rather than pointing at a
|
|
6
|
+
* website, so what a user (or an agent) reads is what their binary does. Looking up
|
|
7
|
+
* "which release am I on, and which docs go with it" is exactly the step this removes,
|
|
8
|
+
* and it is the step where a reader silently ends up on docs for a different version.
|
|
9
|
+
*/
|
|
10
|
+
export declare class DocsError extends Error {
|
|
11
|
+
}
|
|
12
|
+
export interface DocTopic {
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly file: string;
|
|
15
|
+
readonly summary: string;
|
|
16
|
+
}
|
|
17
|
+
export declare const DOC_TOPICS: readonly DocTopic[];
|
|
18
|
+
export declare function readDoc(name: string): string;
|
|
19
|
+
export declare function listDocs(): string;
|
|
20
|
+
export declare function registerDocsCommand(program: Command): void;
|
|
21
|
+
export declare function registerSkillCommand(program: Command): void;
|
|
22
|
+
//# sourceMappingURL=docs-cmd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-cmd.d.ts","sourceRoot":"","sources":["../../src/cli/docs-cmd.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,KAAK;CAAG;AAMvC,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,QAAQ,EAIzC,CAAC;AAEF,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAc5C;AAED,wBAAgB,QAAQ,IAAI,MAAM,CASjC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAY1D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwC3D"}
|