sigmap 8.32.1 → 8.34.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/AGENTS.md +317 -293
- package/CHANGELOG.md +25 -0
- package/README.md +5 -5
- package/gen-context.js +414 -69
- package/llms-full.txt +5 -5
- package/llms.txt +3 -3
- package/package.json +1 -1
- package/packages/cli/package.json +1 -1
- package/packages/core/index.js +1 -0
- package/packages/core/package.json +1 -1
- package/src/config/loader.js +1 -1
- package/src/config/tune.js +1 -1
- package/src/discovery/language-detector.js +1 -0
- package/src/discovery/source-root-registry.js +10 -1
- package/src/discovery/source-root-scorer.js +1 -1
- package/src/eval/analyzer.js +5 -39
- package/src/extractors/deps.js +23 -1
- package/src/extractors/dispatch.js +18 -1
- package/src/extractors/lua.js +152 -0
- package/src/graph/call-graph.js +81 -1
- package/src/map/route-table.js +46 -9
- package/src/mcp/server.js +1 -1
package/AGENTS.md
CHANGED
|
@@ -30,19 +30,38 @@ Always run `sigmap ask` (or `sigmap --query`) before searching for files relevan
|
|
|
30
30
|
|
|
31
31
|
## todos
|
|
32
32
|
```
|
|
33
|
-
gen-context.js:
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## changes (last 5 commits —
|
|
37
|
-
```
|
|
38
|
-
src/
|
|
39
|
-
src/
|
|
40
|
-
gen-context.js +
|
|
41
|
-
src/
|
|
42
|
-
src/extractors/
|
|
43
|
-
src/extractors/
|
|
44
|
-
src/
|
|
45
|
-
src/
|
|
33
|
+
gen-context.js:22788 # TODO: s');
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## changes (last 5 commits — 6 hours ago)
|
|
37
|
+
```
|
|
38
|
+
src/eval/analyzer.js ~isDockerfile ~getExtractorName
|
|
39
|
+
src/extractors/dispatch.js ~extractFile
|
|
40
|
+
gen-context.js +_isJvmLayout +_applyJvmDepth +that +body
|
|
41
|
+
src/config/loader.js +_isJvmLayout +_applyJvmDepth ~_legacyDetectAutoSrcDirs ~loadConfig
|
|
42
|
+
src/extractors/cpp.js +that ~extract ~extractMembers ~extractBlock
|
|
43
|
+
src/extractors/csharp.js +that +body ~extract ~extractMembers
|
|
44
|
+
src/extractors/css.js ~extract
|
|
45
|
+
src/extractors/dart.js +that +body ~extract ~extractMembers
|
|
46
|
+
src/extractors/dockerfile.js ~extract
|
|
47
|
+
src/extractors/gdscript.js ~extract ~extractInnerMembers ~normalizeParams
|
|
48
|
+
src/extractors/go.js ~extract ~extractBlock
|
|
49
|
+
src/extractors/html.js ~extract
|
|
50
|
+
src/extractors/kotlin.js +that +body ~extract ~extractMembers
|
|
51
|
+
src/extractors/markdown.js ~extract
|
|
52
|
+
src/extractors/php.js +that +body ~extract ~extractMembers
|
|
53
|
+
src/extractors/properties.js ~extract
|
|
54
|
+
src/extractors/python.js ~extract ~extractClassMethods
|
|
55
|
+
src/extractors/r.js ~extract
|
|
56
|
+
src/extractors/ruby.js ~extract ~normalizeParams
|
|
57
|
+
src/extractors/rust.js ~extract ~extractBlock
|
|
58
|
+
src/extractors/scala.js +that +body ~extract ~extractMembers
|
|
59
|
+
src/extractors/shell.js ~extract
|
|
60
|
+
src/extractors/svelte.js ~extract ~normalizeParams
|
|
61
|
+
src/extractors/swift.js +that +body ~extract ~extractMembers
|
|
62
|
+
src/extractors/toml.js ~extract
|
|
63
|
+
src/extractors/typescript_react.js ~extract
|
|
64
|
+
src/extractors/yaml.js ~extract
|
|
46
65
|
```
|
|
47
66
|
|
|
48
67
|
## .
|
|
@@ -50,30 +69,30 @@ src/verify/hallucination-guard.js +whose ~buildSymbolSet ~verify
|
|
|
50
69
|
### gen-context.js
|
|
51
70
|
```
|
|
52
71
|
function __require(key) :9-20
|
|
53
|
-
function __git(args, opts = {}) :
|
|
54
|
-
function __tryGit(args, opts = {}) :
|
|
55
|
-
function requireSourceOrBundled(key) :
|
|
56
|
-
function isDockerfile(filename) :
|
|
57
|
-
function loadIgnorePatterns(cwd) :
|
|
58
|
-
function matchesIgnore(relPath, patterns) :
|
|
59
|
-
function walkDir(dir, exclude, maxDepth, depth = 0) :
|
|
60
|
-
function buildFileList(cwd, config) :
|
|
61
|
-
function collectTestEntries(cwd, config, existing) :
|
|
62
|
-
function declaredEntrypoints(cwd, config, existing) :
|
|
63
|
-
function getExtractor(name) :
|
|
64
|
-
function detectAndExtract(filePath, content, maxSigsPerFile) :
|
|
65
|
-
function extractFileDeps(filePath, content, config) → string[] :
|
|
66
|
-
function extractSignatureName(sig) :
|
|
67
|
-
function annotateCoverage(sigs, testIndex, enabled) :
|
|
68
|
-
function nextRecentMtime() :
|
|
69
|
-
function estimateTokens(str) → number :
|
|
70
|
-
function isTestFile(filePath) :
|
|
71
|
-
function isConfigFile(filePath) :
|
|
72
|
-
function isGeneratedFile(filePath) :
|
|
73
|
-
function isMockFile(filePath) :
|
|
74
|
-
function computeEffectiveMaxTokens(fileEntries, config) → number :
|
|
75
|
-
function applyTokenBudget(fileEntries, maxTokens) :
|
|
76
|
-
function getRecentlyCommittedFiles(cwd, count) :
|
|
72
|
+
function __git(args, opts = {}) :22057-22060
|
|
73
|
+
function __tryGit(args, opts = {}) :22061-22064
|
|
74
|
+
function requireSourceOrBundled(key) :22069-22076
|
|
75
|
+
function isDockerfile(filename) :22122-22124
|
|
76
|
+
function loadIgnorePatterns(cwd) :22129-22142
|
|
77
|
+
function matchesIgnore(relPath, patterns) :22144-22165
|
|
78
|
+
function walkDir(dir, exclude, maxDepth, depth = 0) :22170-22193
|
|
79
|
+
function buildFileList(cwd, config) :22195-22206
|
|
80
|
+
function collectTestEntries(cwd, config, existing) :22217-22243 # Source files a project declares as its own entrypoints in pa
|
|
81
|
+
function declaredEntrypoints(cwd, config, existing) :22245-22265
|
|
82
|
+
function getExtractor(name) :22271-22281
|
|
83
|
+
function detectAndExtract(filePath, content, maxSigsPerFile) :22283-22301
|
|
84
|
+
function extractFileDeps(filePath, content, config) → string[] :22303-22313 # Extract absolute dependency paths from a single file
|
|
85
|
+
function extractSignatureName(sig) :22315-22319
|
|
86
|
+
function annotateCoverage(sigs, testIndex, enabled) :22321-22331
|
|
87
|
+
function nextRecentMtime() :22352-22354
|
|
88
|
+
function estimateTokens(str) → number :22356-22358 # Estimate token count from character count (chars/4, ±5%)
|
|
89
|
+
function isTestFile(filePath) :22360-22362
|
|
90
|
+
function isConfigFile(filePath) :22364-22367
|
|
91
|
+
function isGeneratedFile(filePath) :22369-22371
|
|
92
|
+
function isMockFile(filePath) :22373-22378
|
|
93
|
+
function computeEffectiveMaxTokens(fileEntries, config) → number :22395-22433 # Compute the effective token budget based on repo size and co
|
|
94
|
+
function applyTokenBudget(fileEntries, maxTokens) :22435-22503
|
|
95
|
+
function getRecentlyCommittedFiles(cwd, count) :22545-22553
|
|
77
96
|
… +45 more signatures
|
|
78
97
|
```
|
|
79
98
|
|
|
@@ -89,65 +108,6 @@ function main() :156-191
|
|
|
89
108
|
|
|
90
109
|
## packages
|
|
91
110
|
|
|
92
|
-
### packages/adapters/claude.js
|
|
93
|
-
```
|
|
94
|
-
module.exports = { name, format, outputPath, write } :124-124
|
|
95
|
-
function format(context, opts = {}) → string :58-69 # Format context suited for CLAUDE
|
|
96
|
-
function _confidenceMeta(opts) :71-78
|
|
97
|
-
function outputPath(cwd) → string :85-87 # Return the output file path for this adapter
|
|
98
|
-
function write(context, cwd, opts = {}) :96-122 # Write signatures into CLAUDE
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
### packages/adapters/codex.js
|
|
102
|
-
```
|
|
103
|
-
module.exports = { name, format, outputPath, write } :74-74
|
|
104
|
-
function format(context, opts = {}) → string :27-30 # Format context for AGENTS
|
|
105
|
-
function outputPath(cwd) → string :37-39 # Return the output file path for this adapter
|
|
106
|
-
function write(context, cwd, opts = {}) :49-72 # Write signatures into AGENTS
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
### packages/adapters/copilot.js
|
|
110
|
-
```
|
|
111
|
-
module.exports = { name, format, outputPath, write } :93-93
|
|
112
|
-
function format(context, opts = {}) → string :25-40 # Format context for GitHub Copilot instructions
|
|
113
|
-
function _confidenceMeta(opts) :42-49
|
|
114
|
-
function outputPath(cwd) → string :56-58 # Return the output file path for this adapter
|
|
115
|
-
function write(context, cwd, opts = {}) :68-91 # Write signatures into copilot-instructions
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
### packages/adapters/cursor.js
|
|
119
|
-
```
|
|
120
|
-
module.exports = { name, format, outputPath } :56-56
|
|
121
|
-
function format(context, opts = {}) → string :23-36 # Format context for Cursor rules file
|
|
122
|
-
function _confidenceMeta(opts) :38-45
|
|
123
|
-
function outputPath(cwd) → string :52-54 # Return the output file path for this adapter
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
### packages/adapters/gemini.js
|
|
127
|
-
```
|
|
128
|
-
module.exports = { name, format, outputPath, write } :104-104
|
|
129
|
-
function format(context, opts = {}) → string :31-51 # Format context as a Gemini system instruction
|
|
130
|
-
function outputPath(cwd) → string :58-60 # Return the output file path for this adapter
|
|
131
|
-
function write(context, cwd, opts = {}) :70-93 # Write signatures into gemini-context
|
|
132
|
-
function _confidenceMeta(opts) :95-102
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### packages/adapters/openai.js
|
|
136
|
-
```
|
|
137
|
-
module.exports = { name, format, outputPath } :70-70
|
|
138
|
-
function format(context, opts = {}) → string :29-49 # Format context as an OpenAI system prompt
|
|
139
|
-
function outputPath(cwd) → string :57-59 # Return the output file path for this adapter
|
|
140
|
-
function _confidenceMeta(opts) :61-68
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### packages/adapters/windsurf.js
|
|
144
|
-
```
|
|
145
|
-
module.exports = { name, format, outputPath } :56-56
|
|
146
|
-
function format(context, opts = {}) → string :23-36 # Format context for Windsurf rules file
|
|
147
|
-
function _confidenceMeta(opts) :38-45
|
|
148
|
-
function outputPath(cwd) → string :52-54 # Return the output file path for this adapter
|
|
149
|
-
```
|
|
150
|
-
|
|
151
111
|
### packages/core/README.md
|
|
152
112
|
```
|
|
153
113
|
h1 sigmap-core
|
|
@@ -170,20 +130,23 @@ code-fence ---
|
|
|
170
130
|
|
|
171
131
|
## src
|
|
172
132
|
|
|
173
|
-
### src/
|
|
133
|
+
### src/eval/analyzer.js
|
|
174
134
|
```
|
|
175
|
-
module.exports = {
|
|
176
|
-
function
|
|
177
|
-
function
|
|
178
|
-
function
|
|
179
|
-
function
|
|
180
|
-
function
|
|
181
|
-
function
|
|
182
|
-
function
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
135
|
+
module.exports = { analyzeFiles, formatAnalysisTable, formatAnalysisJSON } :200-200
|
|
136
|
+
function getExtractorName(filePath) :22-24
|
|
137
|
+
function tokenCount(sigs) :27-29 # Rough token estimate: chars / 4
|
|
138
|
+
function hasCoverage(filePath, cwd) :35-50 # Check whether a test file exists for this source file by loo
|
|
139
|
+
function loadExtractor(name, cwd) :56-65 # Load an extractor module from src/extractors/ relative to cw
|
|
140
|
+
function analyzeFiles(files, cwd, opts) → object[] :78-135 # Analyze a list of absolute file paths
|
|
141
|
+
function formatAnalysisTable(stats, showSlow) → string :144-178 # Format stats as a markdown table
|
|
142
|
+
function formatAnalysisJSON(stats) → object :186-198 # Format stats as a plain-object suitable for JSON
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### src/extractors/dispatch.js
|
|
146
|
+
```
|
|
147
|
+
module.exports = { extractFile, langFor, EXT_MAP } :126-126
|
|
148
|
+
function langFor(filePathOrName) :100-105 # Resolve a language key from a file path/name
|
|
149
|
+
function extractFile(filePathOrName, src) → string[] :113-124 # Extract signatures from a file's content using the right ext
|
|
187
150
|
```
|
|
188
151
|
|
|
189
152
|
### src/mcp/server.js
|
|
@@ -195,29 +158,6 @@ function dispatch(msg, cwd) :41-109
|
|
|
195
158
|
function start(cwd) :114-140
|
|
196
159
|
```
|
|
197
160
|
|
|
198
|
-
### src/retrieval/ranker.js
|
|
199
|
-
```
|
|
200
|
-
module.exports = { rank, buildSigIndex, scoreFile, _queryWants, detectIntents, formatRankTable, formatRankJSON, DEFAULT_WEIGHTS, GRAPH_BOOST_AMOUNTS, CENTRALITY_BLEND_WEIGHT, detectIntent } :760-760
|
|
201
|
-
function _queryWants(queryTokens) :85-92 # Which penalised categories the query is explicitly asking fo
|
|
202
|
-
function _computePenalty(filePath, wants) :94-108
|
|
203
|
-
function _computeHubs(graph) :111-122
|
|
204
|
-
function _graphKeys(p) :129-133
|
|
205
|
-
function _graphGet(map, absPath) :134-140
|
|
206
|
-
function _registerKeys(map, absPath, value) :141-143
|
|
207
|
-
function _isHub(filePath) :145-149
|
|
208
|
-
function scoreFile(filePath, sigs, queryTokens, weights, wants) → { score: number, signals: :160-221 # Score a single file against a query, returning detailed sign
|
|
209
|
-
function rank(query, sigIndex, opts) → { file: string, score: nu :241-331 # Rank all files in a signature index against a query
|
|
210
|
-
function _parseContextFile(contextPath) → Map<string, string[]> :478-510 # Parse a single context file into a Map<filePath, string[]>
|
|
211
|
-
function _mergeSigIndex(target, source) :513-521 # Merge source index into target; prefer non-empty sig lists
|
|
212
|
-
function _buildSigIndexFromCache(cwd) → Map<string, string[]> :528-548 # Load signatures from
|
|
213
|
-
function _enrichSigIndexFromStrategy(cwd, index) → Map<string, string[]> :556-587 # Hot-cold and per-module strategies store most signatures out
|
|
214
|
-
function buildSigIndex(cwd, opts) → Map<string, string[]> :604-637 # Build a signature index from the generated context file
|
|
215
|
-
function formatRankTable(results, query) → string :646-682 # Format ranked results as a markdown table string
|
|
216
|
-
function formatRankJSON(results, query) → object :691-706 # Format ranked results as a structured JSON-serialisable obje
|
|
217
|
-
function detectIntents(query) → string[] :739-753 # Every intent whose pattern matches, strongest first
|
|
218
|
-
function detectIntent(query) :756-758 # Primary intent
|
|
219
|
-
```
|
|
220
|
-
|
|
221
161
|
### src/cache/freshen.js
|
|
222
162
|
```
|
|
223
163
|
module.exports = { freshen } :123-123
|
|
@@ -235,12 +175,14 @@ module.exports = { DEFAULTS } :175-175
|
|
|
235
175
|
|
|
236
176
|
### src/config/loader.js
|
|
237
177
|
```
|
|
238
|
-
module.exports = { loadConfig, loadBaseConfig } :
|
|
178
|
+
module.exports = { loadConfig, loadBaseConfig } :363-363
|
|
239
179
|
function loadBaseConfig(extendsVal, cwd) :9-64
|
|
240
180
|
function detectAutoSrcDirs(cwd, excludeList) → string[] :99-114 # Detect source directories for the given project root
|
|
241
181
|
function _legacyDetectAutoSrcDirs(cwd, excludeList) → string[] :123-218 # Legacy source directory detection (fallback)
|
|
242
|
-
function
|
|
243
|
-
function
|
|
182
|
+
function _isJvmLayout(cwd) → boolean :250-259 # Directory depth needed to reach source under a JVM package l
|
|
183
|
+
function _applyJvmDepth(cfg, cwd, userSetDepth) → object :272-277 # Raise `maxDepth` to the JVM depth when the layout needs it (
|
|
184
|
+
function loadConfig(cwd) → object :285-357 # Load and merge configuration for a given working directory
|
|
185
|
+
function deepClone(obj) :359-361
|
|
244
186
|
```
|
|
245
187
|
|
|
246
188
|
### src/config/tune.js
|
|
@@ -413,62 +355,82 @@ function formatJSON(pack) :289-291 # Pretty-printed canonical JSON rendering o
|
|
|
413
355
|
function formatMarkdown(pack) :294-315 # Markdown handoff rendering of a pack
|
|
414
356
|
```
|
|
415
357
|
|
|
358
|
+
### src/extractors/cpp.js
|
|
359
|
+
```
|
|
360
|
+
module.exports = { extract } :77-77
|
|
361
|
+
function extract(src) → string[] :16-77 # Extract signatures from C/C++ source code
|
|
362
|
+
function extractBlock(src, startIndex) :44-53
|
|
363
|
+
function extractMembers(block) :55-65
|
|
364
|
+
function normalizeParams(params) :67-70
|
|
365
|
+
function normalizeType(type) :72-75
|
|
366
|
+
```
|
|
367
|
+
|
|
416
368
|
### src/extractors/csharp.js
|
|
417
369
|
```
|
|
418
|
-
module.exports = { extract } :
|
|
419
|
-
function extract(src) → string[] :
|
|
420
|
-
function extractBlock(src, startIndex) :
|
|
421
|
-
function extractMembers(block) :
|
|
422
|
-
function normalizeParams(params) :
|
|
423
|
-
function normalizeType(type) :
|
|
370
|
+
module.exports = { extract } :79-79
|
|
371
|
+
function extract(src) → string[] :19-79 # Extract signatures from C# source code
|
|
372
|
+
function extractBlock(src, startIndex) :43-52
|
|
373
|
+
function extractMembers(block) :54-67
|
|
374
|
+
function normalizeParams(params) :69-72
|
|
375
|
+
function normalizeType(type) :74-77
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
### src/extractors/css.js
|
|
379
|
+
```
|
|
380
|
+
module.exports = { extract } :75-75
|
|
381
|
+
function extract(src) → string[] :14-23 # Extract signatures from CSS/SCSS/SASS/Less source code
|
|
424
382
|
```
|
|
425
383
|
|
|
426
384
|
### src/extractors/dart.js
|
|
427
385
|
```
|
|
428
|
-
module.exports = { extract } :
|
|
429
|
-
function extract(src) → string[] :
|
|
430
|
-
function extractBlock(src, startIndex) :
|
|
431
|
-
function extractMembers(block) :
|
|
432
|
-
function normalizeParams(params) :
|
|
386
|
+
module.exports = { extract } :92-92
|
|
387
|
+
function extract(src) → string[] :19-92 # Extract signatures from Dart source code
|
|
388
|
+
function extractBlock(src, startIndex) :62-71
|
|
389
|
+
function extractMembers(block) :73-85
|
|
390
|
+
function normalizeParams(params) :87-89
|
|
433
391
|
```
|
|
434
392
|
|
|
435
|
-
### src/extractors/
|
|
393
|
+
### src/extractors/dockerfile.js
|
|
436
394
|
```
|
|
437
|
-
module.exports :
|
|
438
|
-
function
|
|
439
|
-
function extractTSDeps :48-59
|
|
440
|
-
function extractRDeps :76-82
|
|
441
|
-
function buildReverseDepMap :97-108
|
|
395
|
+
module.exports = { extract } :55-55
|
|
396
|
+
function extract(src) → string[] :14-53 # Extract signatures from Dockerfiles
|
|
442
397
|
```
|
|
443
398
|
|
|
444
|
-
### src/extractors/
|
|
399
|
+
### src/extractors/gdscript.js
|
|
445
400
|
```
|
|
446
|
-
module.exports = {
|
|
447
|
-
function
|
|
448
|
-
function
|
|
401
|
+
module.exports = { extract } :141-141
|
|
402
|
+
function extract(src) → string[] :19-52 # Extract signatures from Godot GDScript source code
|
|
403
|
+
function extractInnerMembers(stripped, startIndex) :108-124
|
|
404
|
+
function normalizeParams(params) :126-139
|
|
449
405
|
```
|
|
450
406
|
|
|
451
407
|
### src/extractors/go.js
|
|
452
408
|
```
|
|
453
|
-
module.exports = { extract } :
|
|
454
|
-
function extract(src) → string[] :
|
|
455
|
-
function extractBlock(src, startIndex) :
|
|
456
|
-
function extractInterfaceMethods(block) :
|
|
457
|
-
function normalizeParams(params) :
|
|
458
|
-
function buildDocHints(src) :
|
|
459
|
-
function firstDocSentence(block) :
|
|
409
|
+
module.exports = { extract } :114-114
|
|
410
|
+
function extract(src) → string[] :17-114 # Extract signatures from Go source code
|
|
411
|
+
function extractBlock(src, startIndex) :60-69
|
|
412
|
+
function extractInterfaceMethods(block) :71-83
|
|
413
|
+
function normalizeParams(params) :85-88
|
|
414
|
+
function buildDocHints(src) :94-103
|
|
415
|
+
function firstDocSentence(block) :106-112
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
### src/extractors/html.js
|
|
419
|
+
```
|
|
420
|
+
module.exports = { extract } :45-45
|
|
421
|
+
function extract(src) → string[] :15-35 # Extract signatures from HTML files
|
|
460
422
|
```
|
|
461
423
|
|
|
462
424
|
### src/extractors/java.js
|
|
463
425
|
```
|
|
464
|
-
module.exports = { extract } :
|
|
465
|
-
function extract(src) → string[] :
|
|
466
|
-
function extractBlock(src, startIndex) :
|
|
467
|
-
function extractMembers(block) :
|
|
468
|
-
function normalizeParams(params) :
|
|
469
|
-
function normalizeType(type) :
|
|
470
|
-
function buildDocHints(src) :
|
|
471
|
-
function firstDocSentence(body) :
|
|
426
|
+
module.exports = { extract } :122-122
|
|
427
|
+
function extract(src) → string[] :25-122 # Extract signatures from Java source code
|
|
428
|
+
function extractBlock(src, startIndex) :54-64
|
|
429
|
+
function extractMembers(block) :66-80
|
|
430
|
+
function normalizeParams(params) :82-85
|
|
431
|
+
function normalizeType(type) :87-90
|
|
432
|
+
function buildDocHints(src) :98-111
|
|
433
|
+
function firstDocSentence(body) :114-120
|
|
472
434
|
```
|
|
473
435
|
|
|
474
436
|
### src/extractors/javascript.js
|
|
@@ -487,58 +449,92 @@ function normalizeParams(params) :213-216
|
|
|
487
449
|
|
|
488
450
|
### src/extractors/kotlin.js
|
|
489
451
|
```
|
|
490
|
-
module.exports = { extract } :
|
|
491
|
-
function extract(src) → string[] :
|
|
492
|
-
function extractBlock(src, startIndex) :
|
|
493
|
-
function extractMembers(block) :
|
|
494
|
-
function normalizeParams(params) :
|
|
452
|
+
module.exports = { extract } :98-98
|
|
453
|
+
function extract(src) → string[] :19-98 # Extract signatures from Kotlin source code
|
|
454
|
+
function extractBlock(src, startIndex) :62-71
|
|
455
|
+
function extractMembers(block) :73-98
|
|
456
|
+
function normalizeParams(params) :89-96
|
|
495
457
|
```
|
|
496
458
|
|
|
497
|
-
### src/extractors/
|
|
459
|
+
### src/extractors/markdown.js
|
|
498
460
|
```
|
|
499
|
-
module.exports :
|
|
500
|
-
function
|
|
501
|
-
function anchor :37-39
|
|
502
|
-
function withAnchor :48-50
|
|
461
|
+
module.exports = { extract } :35-35
|
|
462
|
+
function extract(src) → string[] :15-35 # Lightweight markdown technical indexer
|
|
503
463
|
```
|
|
504
464
|
|
|
505
465
|
### src/extractors/php.js
|
|
506
466
|
```
|
|
507
|
-
module.exports = { extract } :
|
|
508
|
-
function extract(src) → string[] :
|
|
509
|
-
function extractBlock(src, startIndex) :
|
|
510
|
-
function extractMembers(block) :
|
|
511
|
-
function normalizeParams(params) :
|
|
512
|
-
function normalizeType(type) :
|
|
467
|
+
module.exports = { extract } :104-104
|
|
468
|
+
function extract(src) → string[] :19-104 # Extract signatures from PHP source code
|
|
469
|
+
function extractBlock(src, startIndex) :66-75
|
|
470
|
+
function extractMembers(block) :77-104
|
|
471
|
+
function normalizeParams(params) :94-97
|
|
472
|
+
function normalizeType(type) :99-102
|
|
473
|
+
```
|
|
474
|
+
|
|
475
|
+
### src/extractors/properties.js
|
|
476
|
+
```
|
|
477
|
+
module.exports = { extract } :42-42
|
|
478
|
+
function extract(src) → string[] :15-40 # Extract signatures from
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
### src/extractors/python.js
|
|
482
|
+
```
|
|
483
|
+
module.exports = { extract, tryNativeExtract } :267-267
|
|
484
|
+
function pyBlockEnd(srcLines, startLine) → number :19-29 # 1-based line of the last source line belonging to a top-leve
|
|
485
|
+
function tryNativeExtract(filePath) → string[]|null :37-49 # Try to extract signatures using the native Python AST extrac
|
|
486
|
+
function extract(src, filePath) → string[] :60-145 # Extract signatures from Python source code
|
|
487
|
+
function extractClassMethods(stripped, startIndex) :147-166
|
|
488
|
+
function tryExtractDataclassFields(stripped, classIndex) :168-182
|
|
489
|
+
function tryExtractBaseModelFields(stripped, bodyStart) :184-199
|
|
490
|
+
function extractClassConstants(stripped, startIndex) :201-215
|
|
491
|
+
function extractReturnType(sigLine) :217-223
|
|
492
|
+
function normalizeParams(params) :225-243
|
|
493
|
+
function extractDocHint(src, fnName, fnSigLine) :245-265
|
|
513
494
|
```
|
|
514
495
|
|
|
515
|
-
### src/extractors/
|
|
496
|
+
### src/extractors/r.js
|
|
516
497
|
```
|
|
517
|
-
module.exports = {
|
|
518
|
-
function
|
|
519
|
-
function
|
|
498
|
+
module.exports = { extract } :275-275
|
|
499
|
+
function extract(src) → string[] :26-110 # Extract signatures from R source code
|
|
500
|
+
function collectRoxygenHints(src) :127-153 # Collect roxygen2 docstring hints from the original (uncommen
|
|
501
|
+
function pickRoxygenLine(block, tag) :157-171
|
|
502
|
+
function applyHint(hints, name) :173-176
|
|
503
|
+
function extractListMethods(body, cap) :182-195 # Extract method-like entries from the body of an R6/S7 list(
|
|
504
|
+
function inAnyRange(pos, ranges) :197-202
|
|
505
|
+
function readFirstStringArg(body) :205-208 # Extract the first quoted string from a comma-separated argum
|
|
506
|
+
function readBalancedParens(src, openIdx, cap = 16384) :216-239 # Read a parenthesis-balanced substring starting at the positi
|
|
507
|
+
function normalizeParams(raw) :246-273 # Compress whitespace inside a parameter list, collapse multi-
|
|
508
|
+
```
|
|
509
|
+
|
|
510
|
+
### src/extractors/ruby.js
|
|
511
|
+
```
|
|
512
|
+
module.exports = { extract } :60-60
|
|
513
|
+
function extract(src) → string[] :14-44 # Extract signatures from Ruby source code
|
|
514
|
+
function normalizeParams(params) :46-49
|
|
515
|
+
function extractReturnHint(stripped, index) :51-58
|
|
520
516
|
```
|
|
521
517
|
|
|
522
518
|
### src/extractors/rust.js
|
|
523
519
|
```
|
|
524
|
-
module.exports = { extract } :
|
|
525
|
-
function extract(src) → string[] :
|
|
526
|
-
function extractBlock(src, startIndex) :
|
|
527
|
-
function extractMethods(block) :
|
|
528
|
-
function normalizeParams(params) :
|
|
529
|
-
function extractReturnType(afterParen) :
|
|
530
|
-
function buildDocHints(src) :
|
|
531
|
-
function firstDocSentence(block) :
|
|
520
|
+
module.exports = { extract } :143-143
|
|
521
|
+
function extract(src) → string[] :17-121 # Extract signatures from Rust source code
|
|
522
|
+
function extractBlock(src, startIndex) :81-90
|
|
523
|
+
function extractMethods(block) :92-143
|
|
524
|
+
function normalizeParams(params) :107-110
|
|
525
|
+
function extractReturnType(afterParen) :112-143
|
|
526
|
+
function buildDocHints(src) :124-132
|
|
527
|
+
function firstDocSentence(block) :135-141
|
|
532
528
|
```
|
|
533
529
|
|
|
534
530
|
### src/extractors/scala.js
|
|
535
531
|
```
|
|
536
|
-
module.exports = { extract } :
|
|
537
|
-
function extract(src) → string[] :
|
|
538
|
-
function extractBlock(src, startIndex) :
|
|
539
|
-
function extractMembers(block) :
|
|
540
|
-
function normalizeParams(params) :
|
|
541
|
-
function normalizeType(type) :
|
|
532
|
+
module.exports = { extract } :96-96
|
|
533
|
+
function extract(src) → string[] :19-96 # Extract signatures from Scala source code
|
|
534
|
+
function extractBlock(src, startIndex) :55-64
|
|
535
|
+
function extractMembers(block) :66-96
|
|
536
|
+
function normalizeParams(params) :82-89
|
|
537
|
+
function normalizeType(type) :91-94
|
|
542
538
|
```
|
|
543
539
|
|
|
544
540
|
### src/extractors/scan.js
|
|
@@ -549,14 +545,40 @@ function maskCode(src) → string :47-63 # Blank comments AND string/template
|
|
|
549
545
|
function readBalanced(masked, openIdx, open = '(', close = ')', cap = 4000) → number :76-89 # Index of the delimiter that closes the one open at `openIdx`
|
|
550
546
|
```
|
|
551
547
|
|
|
548
|
+
### src/extractors/shell.js
|
|
549
|
+
```
|
|
550
|
+
module.exports = { extract } :49-49
|
|
551
|
+
function extract(src) → string[] :14-47 # Extract signatures from shell scripts (bash, zsh, fish)
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
### src/extractors/svelte.js
|
|
555
|
+
```
|
|
556
|
+
module.exports = { extract } :64-64
|
|
557
|
+
function extract(src) → string[] :14-64 # Extract signatures from Svelte components
|
|
558
|
+
function normalizeParams(params) :54-57
|
|
559
|
+
function normalizeType(type) :59-62
|
|
560
|
+
```
|
|
561
|
+
|
|
552
562
|
### src/extractors/swift.js
|
|
553
563
|
```
|
|
554
|
-
module.exports = { extract } :
|
|
555
|
-
function extract(src) → string[] :
|
|
556
|
-
function extractBlock(src, startIndex) :
|
|
557
|
-
function extractMembers(block) :
|
|
558
|
-
function normalizeParams(params) :
|
|
559
|
-
function extractArrowType(str) :
|
|
564
|
+
module.exports = { extract } :105-105
|
|
565
|
+
function extract(src) → string[] :19-105 # Extract signatures from Swift source code
|
|
566
|
+
function extractBlock(src, startIndex) :62-71
|
|
567
|
+
function extractMembers(block) :73-105
|
|
568
|
+
function normalizeParams(params) :88-95
|
|
569
|
+
function extractArrowType(str) :97-105
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
### src/extractors/toml.js
|
|
573
|
+
```
|
|
574
|
+
module.exports = { extract } :47-47
|
|
575
|
+
function extract(src) → string[] :15-42 # Extract signatures from TOML configuration files
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
### src/extractors/typescript_react.js
|
|
579
|
+
```
|
|
580
|
+
module.exports = { extract } :65-65
|
|
581
|
+
function extract(src) → string[] :15-25 # Extract React component signatures from
|
|
560
582
|
```
|
|
561
583
|
|
|
562
584
|
### src/extractors/typescript.js
|
|
@@ -571,27 +593,10 @@ function buildDocHints(src) :299-315
|
|
|
571
593
|
function firstDocSentence(body) :318-324
|
|
572
594
|
```
|
|
573
595
|
|
|
574
|
-
### src/
|
|
575
|
-
```
|
|
576
|
-
module.exports = {
|
|
577
|
-
function
|
|
578
|
-
function percentile(values, p) :18-30
|
|
579
|
-
function overBudgetStreak(entries) :32-40
|
|
580
|
-
function loadConfig(cwd) :42-50
|
|
581
|
-
function shouldExclude(rel, excludeSet) :52-59
|
|
582
|
-
function detectLanguage(filePath) :61-86
|
|
583
|
-
function walkFiles(dir, maxDepth, depth, out, excludeSet) :88-106
|
|
584
|
-
function computeExtractorCoverage(cwd) :108-140
|
|
585
|
-
function readBenchmarkTrend(cwd) :142-204
|
|
586
|
-
function lineChartSvg(values, title, ySuffix) :206-255
|
|
587
|
-
function barChartSvg(perLanguage) :257-292
|
|
588
|
-
function sparkline(values) :294-305
|
|
589
|
-
function escapeAttr(s) :307-311
|
|
590
|
-
function readTokenReduction(cwd) :316-350
|
|
591
|
-
function tokenReductionPanelHtml(tr) :352-405
|
|
592
|
-
function buildDashboardData(cwd, health) :407-444
|
|
593
|
-
function generateDashboardHtml(cwd, health) :446-496
|
|
594
|
-
function renderHistoryCharts(cwd, health) :498-523
|
|
596
|
+
### src/extractors/yaml.js
|
|
597
|
+
```
|
|
598
|
+
module.exports = { extract } :65-65
|
|
599
|
+
function extract(src) → string[] :14-63 # Extract signatures from YAML configuration files
|
|
595
600
|
```
|
|
596
601
|
|
|
597
602
|
### src/format/gain-terminal.js
|
|
@@ -629,22 +634,6 @@ function _tokens(sigs) :62-64 # Estimated tokens of joined signature lines (sa
|
|
|
629
634
|
function measureTerse(sigsList) → { beforeTokens: number, a :72-84 # Measure the real reduction terse encoding buys over a set of
|
|
630
635
|
```
|
|
631
636
|
|
|
632
|
-
### src/format/usage-guidance.js
|
|
633
|
-
```
|
|
634
|
-
module.exports = { usageBlock } :28-28
|
|
635
|
-
function usageBlock() :12-26 # Canonical "how to use SigMap" guidance block (v6
|
|
636
|
-
```
|
|
637
|
-
|
|
638
|
-
### src/format/verify-report.js
|
|
639
|
-
```
|
|
640
|
-
module.exports = { renderReportHtml, renderReportMarkdown, escapeHtml } :164-164
|
|
641
|
-
function escapeHtml(value) :23-29
|
|
642
|
-
function toneFor(issue) :31-35
|
|
643
|
-
function labelFor(issue) :37-39
|
|
644
|
-
function renderReportHtml(result, opts = {}) → string :48-115 # Render the verify result to a full HTML document
|
|
645
|
-
function renderReportMarkdown(result) :144-162 # Compact Markdown rendering of the same result (CI / PR comme
|
|
646
|
-
```
|
|
647
|
-
|
|
648
637
|
### src/graph/blast-radius.js
|
|
649
638
|
```
|
|
650
639
|
module.exports = { methodBlastRadius, tierFor, DIRECT_WEIGHT, TRANSITIVE_WEIGHT } :132-132
|
|
@@ -654,9 +643,26 @@ function _bfs(seedIds, reverse, maxDepth) :38-60
|
|
|
654
643
|
function methodBlastRadius(changedFiles, cwd, opts = {}) → { * available: boolean, * :78-130 # Score the method-level blast radius of a changed-file list
|
|
655
644
|
```
|
|
656
645
|
|
|
646
|
+
### src/graph/builder.js
|
|
647
|
+
```
|
|
648
|
+
module.exports = { build, buildFromCwd, extractFileDeps, normalizePath, loadAliasMap, resolveAlias, _configuredSrcDirs, DEFAULT_SRC_DIRS, DEFAULT_WALK_DEPTH } :539-539
|
|
649
|
+
function normalizePath(p) :18-20
|
|
650
|
+
function probeJs(base, fileSet) → string|null :41-54 # Probe an absolute base path for a JS/TS module file in fileS
|
|
651
|
+
function resolveJsPath(dir, importStr, fileSet) → string|null :63-65 # Resolve a JS/TS relative import string to an absolute path i
|
|
652
|
+
function stripJsonc(src) :71-85 # Strip comments and trailing commas so a tsconfig/jsconfig (J
|
|
653
|
+
function loadAliasMap(cwd) → { baseUrl: string|null, e :97-118 # Load the JS/TS path-alias map from tsconfig
|
|
654
|
+
function resolveAlias(spec, aliasMap, fileSet) → string|null :127-151 # Resolve a non-relative JS/TS import specifier through the al
|
|
655
|
+
function escapeRegex(s) :158-160 # Resolve an R `source(
|
|
656
|
+
function resolveRPath(dir, importStr, fileSet, cwd) :162-177
|
|
657
|
+
function extractFileDeps(filePath, content, fileSet, cwd, ctx) → string[] :191-287 # Extract absolute dependency paths from a single file
|
|
658
|
+
function build(files, cwd, ctx) → { forward: Map<string,str :396-435 # Build a forward and reverse dependency graph for all given f
|
|
659
|
+
function _configuredSrcDirs(cwd) :455-462 # Source directories declared in the project's own config, or
|
|
660
|
+
function buildFromCwd(cwd, opts) → { forward: Map<string,str :479-537 # Build a dependency graph scoped to a single cwd by walking a
|
|
661
|
+
```
|
|
662
|
+
|
|
657
663
|
### src/graph/call-graph.js
|
|
658
664
|
```
|
|
659
|
-
module.exports = { buildCallGraph, buildCallFileGraph, methodImpact, methodCallees, formatCallGraph, formatCallGraphJSON, extractDefs, maskJs, maskPy, maskRust } :
|
|
665
|
+
module.exports = { buildCallGraph, buildTypeMap, receiverCallsInRange, javaTypeDecl, DEFAULT_WALK_DEPTH, buildCallFileGraph, methodImpact, methodCallees, formatCallGraph, formatCallGraphJSON, extractDefs, maskJs, maskPy, maskRust } :770-774
|
|
660
666
|
function normalizePath(p) :42-42
|
|
661
667
|
function toRel(cwd, f) :43-43
|
|
662
668
|
function symId(cwd, absFile, name) :44-44
|
|
@@ -668,20 +674,20 @@ function lineAt(src, idx) :123-128
|
|
|
668
674
|
function jsDefs(masked) :133-199
|
|
669
675
|
function pyDefs(masked) :201-221
|
|
670
676
|
function goDefs(masked) :225-246
|
|
671
|
-
function
|
|
672
|
-
function
|
|
673
|
-
function
|
|
674
|
-
function
|
|
675
|
-
function
|
|
676
|
-
function
|
|
677
|
-
function
|
|
678
|
-
function
|
|
679
|
-
function
|
|
680
|
-
function
|
|
681
|
-
function
|
|
682
|
-
function
|
|
683
|
-
function
|
|
684
|
-
… +
|
|
677
|
+
function javaTypeDecl(masked) :262-344
|
|
678
|
+
function javaDefs(masked) :289-325
|
|
679
|
+
function rustDefs(masked) :330-348
|
|
680
|
+
function maskFor(filePath, src) :352-357
|
|
681
|
+
function extractDefs(filePath, src) :359-367
|
|
682
|
+
function callsInRange(masked, start, end) :370-382
|
|
683
|
+
function receiverCallsInRange(masked, start, end) :387-399
|
|
684
|
+
function buildTypeMap(masked) :406-416
|
|
685
|
+
function _configuredSrcDirs(cwd) :437-443 # Source directories declared in the project's own config, or
|
|
686
|
+
function _walk(dir, excludeSet, out, depth, maxDepth) :445-458
|
|
687
|
+
function buildCallGraph(cwd, opts = {}) → { * forward: Map<string,s :474-567 # Build the method-level call-graph for a project
|
|
688
|
+
function buildCallFileGraph(cwd, opts = {}) → { forward: Map<string,str :663-689 # Collapse the symbol-level call-graph to FILE-level bidirecti
|
|
689
|
+
function _resolveSymbol(symbol, defs) :692-697
|
|
690
|
+
… +5 more signatures
|
|
685
691
|
```
|
|
686
692
|
|
|
687
693
|
### src/graph/centrality.js
|
|
@@ -809,14 +815,15 @@ function squeezeOutput(args, cwd) :982-1015 # squeeze_output({ content }) →
|
|
|
809
815
|
|
|
810
816
|
### src/mcp/install.js
|
|
811
817
|
```
|
|
812
|
-
module.exports = { CLIENTS, listClients, installClient, resolveTarget } :
|
|
813
|
-
function resolveTarget(spec, cwd, home, useGlobal) :
|
|
814
|
-
function listClients(opts = {}) :
|
|
815
|
-
function serverArgs(scriptPath) :
|
|
816
|
-
function _installJson(filePath, scriptPath) :
|
|
817
|
-
function
|
|
818
|
-
function
|
|
819
|
-
function
|
|
818
|
+
module.exports = { CLIENTS, listClients, installClient, resolveTarget } :169-169
|
|
819
|
+
function resolveTarget(spec, cwd, home, useGlobal) :40-46 # Resolve the absolute config path for a client, honoring `glo
|
|
820
|
+
function listClients(opts = {}) :49-63 # List supported clients with their resolved target paths
|
|
821
|
+
function serverArgs(scriptPath) :65-67
|
|
822
|
+
function _installJson(filePath, scriptPath) :70-82 # Install into a JSON `mcpServers` config (create file/dir if
|
|
823
|
+
function _installVscode(filePath, scriptPath) :90-107 # Install into VS Code's `
|
|
824
|
+
function _installZed(filePath, scriptPath) :110-122 # Install into Zed's `context_servers` config (create file/dir
|
|
825
|
+
function _installYaml(filePath, scriptPath) :125-143 # Install into Codex CLI YAML (append block; create file if ab
|
|
826
|
+
function installClient(client, opts = {}) → client, label, path, stat :150-167 # Install the sigmap MCP server for a single client
|
|
820
827
|
```
|
|
821
828
|
|
|
822
829
|
### src/mcp/tools.js
|
|
@@ -873,6 +880,30 @@ function extractModuleDoc(src, filePath) → string :55-117 # Extract a module
|
|
|
873
880
|
function moduleDocSig(src, filePath) :115-117 # Render as an index-only pseudo-signature, or '' when there i
|
|
874
881
|
```
|
|
875
882
|
|
|
883
|
+
### src/retrieval/ranker.js
|
|
884
|
+
```
|
|
885
|
+
module.exports = { rank, buildSigIndex, scoreFile, _queryWants, _isDataHolder, detectIntents, formatRankTable, formatRankJSON, DEFAULT_WEIGHTS, GRAPH_BOOST_AMOUNTS, CENTRALITY_BLEND_WEIGHT, detectIntent } :791-791
|
|
886
|
+
function _queryWants(queryTokens) :97-105 # Which penalised categories the query is explicitly asking fo
|
|
887
|
+
function _isDataHolder(sigs) :112-118 # True when a file's members are overwhelmingly trivial access
|
|
888
|
+
function _computePenalty(filePath, wants, sigs) :120-139
|
|
889
|
+
function _computeHubs(graph) :142-153
|
|
890
|
+
function _graphKeys(p) :160-164
|
|
891
|
+
function _graphGet(map, absPath) :165-171
|
|
892
|
+
function _registerKeys(map, absPath, value) :172-174
|
|
893
|
+
function _isHub(filePath) :176-180
|
|
894
|
+
function scoreFile(filePath, sigs, queryTokens, weights, wants) → { score: number, signals: :191-252 # Score a single file against a query, returning detailed sign
|
|
895
|
+
function rank(query, sigIndex, opts) → { file: string, score: nu :272-362 # Rank all files in a signature index against a query
|
|
896
|
+
function _parseContextFile(contextPath) → Map<string, string[]> :509-541 # Parse a single context file into a Map<filePath, string[]>
|
|
897
|
+
function _mergeSigIndex(target, source) :544-552 # Merge source index into target; prefer non-empty sig lists
|
|
898
|
+
function _buildSigIndexFromCache(cwd) → Map<string, string[]> :559-579 # Load signatures from
|
|
899
|
+
function _enrichSigIndexFromStrategy(cwd, index) → Map<string, string[]> :587-618 # Hot-cold and per-module strategies store most signatures out
|
|
900
|
+
function buildSigIndex(cwd, opts) → Map<string, string[]> :635-668 # Build a signature index from the generated context file
|
|
901
|
+
function formatRankTable(results, query) → string :677-713 # Format ranked results as a markdown table string
|
|
902
|
+
function formatRankJSON(results, query) → object :722-737 # Format ranked results as a structured JSON-serialisable obje
|
|
903
|
+
function detectIntents(query) → string[] :770-784 # Every intent whose pattern matches, strongest first
|
|
904
|
+
function detectIntent(query) :787-789 # Primary intent
|
|
905
|
+
```
|
|
906
|
+
|
|
876
907
|
### src/retrieval/sig-index-store.js
|
|
877
908
|
```
|
|
878
909
|
module.exports = { writeFullIndex, readFullIndex, indexPath, SCHEMA, INDEX_FILE } :95-95
|
|
@@ -940,22 +971,22 @@ function clearNotes(cwd) :88-91 # Delete the notes log
|
|
|
940
971
|
|
|
941
972
|
### src/skills/skills.js
|
|
942
973
|
```
|
|
943
|
-
module.exports = { SKILLS, SKILL_CLIENTS, renderSkill, renderAgentsBlock, injectSkillsBlock, installSkills, listSkillClients, clientPresent, START, END } :
|
|
944
|
-
function _footer(version) :
|
|
945
|
-
function renderSkill(client, skillName, version) :
|
|
946
|
-
function renderAgentsBlock(version) :
|
|
947
|
-
function injectSkillsBlock(existing, block) :
|
|
948
|
-
function _writeIfChanged(filePath, content) :
|
|
949
|
-
function installSkills(client, opts = {}) → { client, label, results: :
|
|
950
|
-
function clientPresent(client, cwd) :
|
|
951
|
-
function listSkillClients(opts = {}) :
|
|
974
|
+
module.exports = { SKILLS, SKILL_CLIENTS, renderSkill, renderAgentsBlock, injectSkillsBlock, installSkills, listSkillClients, clientPresent, START, END } :206-206
|
|
975
|
+
function _footer(version) :86-89
|
|
976
|
+
function renderSkill(client, skillName, version) :92-109 # Render one skill's client-specific file content
|
|
977
|
+
function renderAgentsBlock(version) :112-119 # Render the combined AGENTS
|
|
978
|
+
function injectSkillsBlock(existing, block) :127-142 # Inject (or replace) the skills block in AGENTS
|
|
979
|
+
function _writeIfChanged(filePath, content) :144-154
|
|
980
|
+
function installSkills(client, opts = {}) → { client, label, results: :161-183 # Install both skills for one client
|
|
981
|
+
function clientPresent(client, cwd) :186-189 # True when the client's parent artifact exists (plain-install
|
|
982
|
+
function listSkillClients(opts = {}) :192-204 # List clients with target paths, presence, and installed stat
|
|
952
983
|
```
|
|
953
984
|
|
|
954
985
|
### src/squeeze/cilog.js
|
|
955
986
|
```
|
|
956
|
-
module.exports
|
|
957
|
-
function stripTimestamp
|
|
958
|
-
function squeezeCiLog
|
|
987
|
+
module.exports :71-71
|
|
988
|
+
function stripTimestamp :17-19
|
|
989
|
+
function squeezeCiLog :27-69
|
|
959
990
|
```
|
|
960
991
|
|
|
961
992
|
### src/squeeze/classify.js
|
|
@@ -1057,16 +1088,6 @@ function extractCallArgCounts(code) → { name: string, args: num :132-166 # E
|
|
|
1057
1088
|
function checkArity(name, argCount, arityIndex) → null | { min, max, variad :172-178 # Check one call against the arity index
|
|
1058
1089
|
```
|
|
1059
1090
|
|
|
1060
|
-
### src/verify/closest-match.js
|
|
1061
|
-
```
|
|
1062
|
-
module.exports = { levenshtein, closestMatch, buildSymbolCandidates, suggestionConfidence, formatSuggestion } :139-145
|
|
1063
|
-
function levenshtein(a, b, max = Infinity) :20-47 # Levenshtein edit distance with an early-exit ceiling
|
|
1064
|
-
function suggestionConfidence(distance, targetLen) :50-55 # Bucket a normalized edit distance into a confidence label (p
|
|
1065
|
-
function closestMatch(target, candidates, opts = {}) → { name, file, line, dista :67-98 # Find the nearest candidate name to `target`
|
|
1066
|
-
function buildSymbolCandidates(sigIndex) :104-126 # Build `[{ name, file, line }]` symbol candidates from a SigM
|
|
1067
|
-
function formatSuggestion(match, asCall) :129-137 # Format a suggestion object into a human one-liner for report
|
|
1068
|
-
```
|
|
1069
|
-
|
|
1070
1091
|
### src/verify/hallucination-guard.js
|
|
1071
1092
|
```
|
|
1072
1093
|
module.exports = { verify, buildSymbolSet, loadDeps, loadScripts, isTestPath } :378-378
|
|
@@ -1119,3 +1140,6 @@ function _health(cwd) :119-127
|
|
|
1119
1140
|
function buildWiki(cwd, opts = {}) → { data: object, markdown: :137-162 # Build the wiki
|
|
1120
1141
|
function renderWikiMarkdown(data, sigmapVersion) → string :171-248 # Render the narrative markdown
|
|
1121
1142
|
```
|
|
1143
|
+
|
|
1144
|
+
|
|
1145
|
+
> **Not everything is here.** 54 file(s) omitted, 1 collapsed to anchors to stay under the 16000-token budget (tests and configs go first). The retrieval index still has them all — run `sigmap ask "<question>"` to pull in anything missing.
|