@side-quest/kit 0.0.0 → 0.2.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/CHANGELOG.md +36 -0
- package/README.md +54 -352
- package/dist/cli.d.ts +14 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +156 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -2509
- package/dist/index.js.map +1 -0
- package/dist/lib/ast/index.d.ts +11 -0
- package/dist/lib/ast/index.d.ts.map +1 -0
- package/dist/lib/ast/index.js +15 -0
- package/dist/lib/ast/index.js.map +1 -0
- package/dist/lib/ast/languages.d.ts +55 -0
- package/dist/lib/ast/languages.d.ts.map +1 -0
- package/dist/lib/ast/languages.js +146 -0
- package/dist/lib/ast/languages.js.map +1 -0
- package/dist/lib/ast/pattern.d.ts +84 -0
- package/dist/lib/ast/pattern.d.ts.map +1 -0
- package/dist/lib/ast/pattern.js +268 -0
- package/dist/lib/ast/pattern.js.map +1 -0
- package/dist/lib/ast/searcher.d.ts +89 -0
- package/dist/lib/ast/searcher.d.ts.map +1 -0
- package/dist/lib/ast/searcher.js +316 -0
- package/dist/lib/ast/searcher.js.map +1 -0
- package/dist/lib/ast/types.d.ts +93 -0
- package/dist/lib/ast/types.d.ts.map +1 -0
- package/dist/lib/ast/types.js +23 -0
- package/dist/lib/ast/types.js.map +1 -0
- package/dist/lib/commands/callers.d.ts +20 -0
- package/dist/lib/commands/callers.d.ts.map +1 -0
- package/dist/lib/commands/callers.js +162 -0
- package/dist/lib/commands/callers.js.map +1 -0
- package/dist/lib/commands/find.d.ts +15 -0
- package/dist/lib/commands/find.d.ts.map +1 -0
- package/dist/lib/commands/find.js +113 -0
- package/dist/lib/commands/find.js.map +1 -0
- package/dist/lib/commands/overview.d.ts +6 -0
- package/dist/lib/commands/overview.d.ts.map +1 -0
- package/dist/lib/commands/overview.js +52 -0
- package/dist/lib/commands/overview.js.map +1 -0
- package/dist/lib/commands/prime.d.ts +16 -0
- package/dist/lib/commands/prime.d.ts.map +1 -0
- package/dist/lib/commands/prime.js +168 -0
- package/dist/lib/commands/prime.js.map +1 -0
- package/dist/lib/commands/search.d.ts +20 -0
- package/dist/lib/commands/search.d.ts.map +1 -0
- package/dist/lib/commands/search.js +111 -0
- package/dist/lib/commands/search.js.map +1 -0
- package/dist/lib/errors.d.ts +80 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +189 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/formatters/output.d.ts +5 -0
- package/dist/lib/formatters/output.d.ts.map +1 -0
- package/dist/lib/formatters/output.js +5 -0
- package/dist/lib/formatters/output.js.map +1 -0
- package/dist/lib/formatters.d.ts +29 -0
- package/dist/lib/formatters.d.ts.map +1 -0
- package/dist/lib/formatters.js +141 -0
- package/dist/lib/formatters.js.map +1 -0
- package/dist/lib/index-tools.d.ts +108 -0
- package/dist/lib/index-tools.d.ts.map +1 -0
- package/dist/lib/index-tools.js +311 -0
- package/dist/lib/index-tools.js.map +1 -0
- package/dist/lib/index.d.ts +21 -0
- package/dist/lib/index.d.ts.map +1 -0
- package/dist/lib/index.js +42 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/lib/kit-wrapper.d.ts +70 -0
- package/dist/lib/kit-wrapper.d.ts.map +1 -0
- package/dist/lib/kit-wrapper.js +462 -0
- package/dist/lib/kit-wrapper.js.map +1 -0
- package/dist/lib/logger.d.ts +28 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +39 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/types.d.ts +179 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +48 -0
- package/dist/lib/types.js.map +1 -0
- package/dist/lib/utils/args.d.ts +40 -0
- package/dist/lib/utils/args.d.ts.map +1 -0
- package/dist/lib/utils/args.js +58 -0
- package/dist/lib/utils/args.js.map +1 -0
- package/dist/lib/utils/git.d.ts +23 -0
- package/dist/lib/utils/git.d.ts.map +1 -0
- package/dist/lib/utils/git.js +50 -0
- package/dist/lib/utils/git.js.map +1 -0
- package/dist/lib/utils/index-parser.d.ts +155 -0
- package/dist/lib/utils/index-parser.d.ts.map +1 -0
- package/dist/lib/utils/index-parser.js +252 -0
- package/dist/lib/utils/index-parser.js.map +1 -0
- package/dist/lib/validators.d.ts +138 -0
- package/dist/lib/validators.d.ts.map +1 -0
- package/dist/lib/validators.js +302 -0
- package/dist/lib/validators.js.map +1 -0
- package/dist/mcp/index.d.ts +19 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +769 -0
- package/dist/mcp/index.js.map +1 -0
- package/package.json +5 -2
- package/src/cli.ts +170 -0
- package/src/lib/ast/index.ts +32 -0
- package/src/lib/ast/languages.ts +172 -0
- package/src/lib/ast/pattern.ts +299 -0
- package/src/lib/ast/searcher.ts +381 -0
- package/src/lib/ast/types.ts +99 -0
- package/src/lib/commands/callers.ts +226 -0
- package/src/lib/commands/find.ts +159 -0
- package/src/lib/commands/overview.ts +73 -0
- package/src/lib/commands/prime.ts +271 -0
- package/src/lib/commands/search.ts +146 -0
- package/src/lib/errors.ts +221 -0
- package/src/lib/formatters/output.ts +9 -0
- package/src/lib/formatters.ts +189 -0
- package/src/lib/index-tools.ts +471 -0
- package/src/lib/index.ts +122 -0
- package/src/lib/kit-wrapper.ts +675 -0
- package/src/lib/logger.ts +57 -0
- package/src/lib/types.ts +228 -0
- package/src/lib/utils/args.ts +72 -0
- package/src/lib/utils/git.ts +65 -0
- package/src/lib/utils/index-parser.ts +350 -0
- package/src/lib/validators.ts +437 -0
- package/src/mcp/index.ts +144 -79
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@side-quest/kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Kit CLI integration for intelligent code search - MCP server with 7 tools for token-efficient codebase navigation",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Nathan Vale",
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"main": "./src/mcp/index.ts",
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
14
15
|
"import": "./dist/index.js"
|
|
15
16
|
},
|
|
16
17
|
"./package.json": "./package.json"
|
|
@@ -18,6 +19,8 @@
|
|
|
18
19
|
"files": [
|
|
19
20
|
"dist/**",
|
|
20
21
|
"src/mcp/**",
|
|
22
|
+
"src/lib/**",
|
|
23
|
+
"src/cli.ts",
|
|
21
24
|
"README.md",
|
|
22
25
|
"LICENSE",
|
|
23
26
|
"CHANGELOG.md"
|
|
@@ -48,7 +51,7 @@
|
|
|
48
51
|
},
|
|
49
52
|
"sideEffects": false,
|
|
50
53
|
"scripts": {
|
|
51
|
-
"build": "bunx bunup",
|
|
54
|
+
"build": "bunx bunup --no-dts && bunx tsc -p tsconfig.json",
|
|
52
55
|
"check": "biome check --write .",
|
|
53
56
|
"check:publint": "publint",
|
|
54
57
|
"check:types": "attw --pack",
|
package/src/cli.ts
ADDED
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Kit Index CLI
|
|
5
|
+
*
|
|
6
|
+
* Command-line interface for PROJECT_INDEX.json management.
|
|
7
|
+
* Centralizes all index operations with dual output formats (markdown/JSON).
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* bun run src/cli.ts <command> [args] [--format md|json]
|
|
11
|
+
*
|
|
12
|
+
* Based on cinema-bandit CLI architecture pattern.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { parseOutputFormat } from './lib/formatters/output'
|
|
16
|
+
import { parseArgs } from './lib/utils/args'
|
|
17
|
+
|
|
18
|
+
function printUsage() {
|
|
19
|
+
console.log(`
|
|
20
|
+
Kit Index CLI - PROJECT_INDEX.json Management
|
|
21
|
+
|
|
22
|
+
Usage:
|
|
23
|
+
bun run src/cli.ts prime [path] [--force] [--format md|json]
|
|
24
|
+
bun run src/cli.ts find <symbol> [--format md|json]
|
|
25
|
+
bun run src/cli.ts overview <file> [--format md|json]
|
|
26
|
+
bun run src/cli.ts search <query> [--path <dir>] [--top-k N] [--chunk-by symbols|lines] [--build-index] [--format md|json]
|
|
27
|
+
bun run src/cli.ts callers <function> [--format md|json]
|
|
28
|
+
|
|
29
|
+
Commands:
|
|
30
|
+
prime Generate/refresh PROJECT_INDEX.json
|
|
31
|
+
Args: [path] - Optional directory to index (defaults to git root or CWD)
|
|
32
|
+
Options: --force (regenerate even if < 24h old)
|
|
33
|
+
|
|
34
|
+
find Find symbol definitions by name
|
|
35
|
+
Args: <symbol> - Symbol name to search for
|
|
36
|
+
|
|
37
|
+
overview List all symbols in a file
|
|
38
|
+
Args: <file> - File path (relative or absolute)
|
|
39
|
+
|
|
40
|
+
search Semantic search using natural language
|
|
41
|
+
Args: <query> - Natural language search query
|
|
42
|
+
Options:
|
|
43
|
+
--path <dir> - Directory to search (default: git root)
|
|
44
|
+
--top-k <N> - Number of results (default: 5)
|
|
45
|
+
--chunk-by <mode> - Chunking strategy: symbols|lines (default: symbols)
|
|
46
|
+
--build-index - Force rebuild vector index
|
|
47
|
+
|
|
48
|
+
callers Find who calls a function (call sites)
|
|
49
|
+
Args: <function> - Function name to analyze
|
|
50
|
+
|
|
51
|
+
Options:
|
|
52
|
+
--format <type> Output format: "md" (default) or "json"
|
|
53
|
+
Markdown is human-readable with colors
|
|
54
|
+
JSON is machine-readable for parsing
|
|
55
|
+
|
|
56
|
+
--force Force regenerate (prime command only)
|
|
57
|
+
--help Show this help message
|
|
58
|
+
|
|
59
|
+
Examples:
|
|
60
|
+
# Generate index at git root
|
|
61
|
+
bun run src/cli.ts prime
|
|
62
|
+
|
|
63
|
+
# Generate index for specific directory
|
|
64
|
+
bun run src/cli.ts prime /path/to/project
|
|
65
|
+
|
|
66
|
+
# Force regenerate
|
|
67
|
+
bun run src/cli.ts prime --force
|
|
68
|
+
|
|
69
|
+
# Find symbol
|
|
70
|
+
bun run src/cli.ts find MyFunction
|
|
71
|
+
|
|
72
|
+
# Get file overview
|
|
73
|
+
bun run src/cli.ts overview src/index.ts
|
|
74
|
+
|
|
75
|
+
# Find callers with JSON output
|
|
76
|
+
bun run src/cli.ts callers executeFind --format json
|
|
77
|
+
`)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
async function main(): Promise<void> {
|
|
81
|
+
const args = process.argv.slice(2)
|
|
82
|
+
|
|
83
|
+
// Show help if no args or --help flag
|
|
84
|
+
if (args.length === 0 || args.includes('--help')) {
|
|
85
|
+
printUsage()
|
|
86
|
+
process.exit(0)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const { command, positional, flags } = parseArgs(args)
|
|
90
|
+
const format = parseOutputFormat(flags.format)
|
|
91
|
+
|
|
92
|
+
try {
|
|
93
|
+
switch (command) {
|
|
94
|
+
case 'prime': {
|
|
95
|
+
const path = positional[0] // Optional path argument
|
|
96
|
+
const { executePrime } = await import('./lib/commands/prime')
|
|
97
|
+
await executePrime(flags.force === 'true', format, path)
|
|
98
|
+
break
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
case 'find': {
|
|
102
|
+
const symbol = positional[0]
|
|
103
|
+
if (!symbol) {
|
|
104
|
+
console.error('Error: <symbol> required for find command')
|
|
105
|
+
console.error('Usage: bun run src/cli.ts find <symbol>')
|
|
106
|
+
process.exit(1)
|
|
107
|
+
}
|
|
108
|
+
const { executeFind } = await import('./lib/commands/find')
|
|
109
|
+
await executeFind(symbol, format)
|
|
110
|
+
break
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
case 'overview': {
|
|
114
|
+
const file = positional[0]
|
|
115
|
+
if (!file) {
|
|
116
|
+
console.error('Error: <file> required for overview command')
|
|
117
|
+
console.error('Usage: bun run src/cli.ts overview <file>')
|
|
118
|
+
process.exit(1)
|
|
119
|
+
}
|
|
120
|
+
const { executeOverview } = await import('./lib/commands/overview')
|
|
121
|
+
await executeOverview(file, format)
|
|
122
|
+
break
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
case 'search': {
|
|
126
|
+
const query = positional[0]
|
|
127
|
+
if (!query) {
|
|
128
|
+
console.error('Error: <query> required for search command')
|
|
129
|
+
console.error('Usage: bun run src/cli.ts search <query> [options]')
|
|
130
|
+
process.exit(1)
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const { executeSearch } = await import('./lib/commands/search')
|
|
134
|
+
|
|
135
|
+
// Parse options
|
|
136
|
+
const options = {
|
|
137
|
+
path: flags.path,
|
|
138
|
+
topK: flags['top-k'] ? Number(flags['top-k']) : undefined,
|
|
139
|
+
chunkBy: flags['chunk-by'] as 'symbols' | 'lines' | undefined,
|
|
140
|
+
buildIndex: flags['build-index'] === 'true',
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
await executeSearch(query, options, format)
|
|
144
|
+
break
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
case 'callers': {
|
|
148
|
+
const functionName = positional[0]
|
|
149
|
+
if (!functionName) {
|
|
150
|
+
console.error('Error: <function> required for callers command')
|
|
151
|
+
console.error('Usage: bun run src/cli.ts callers <function>')
|
|
152
|
+
process.exit(1)
|
|
153
|
+
}
|
|
154
|
+
const { executeCallers } = await import('./lib/commands/callers')
|
|
155
|
+
await executeCallers(functionName, format)
|
|
156
|
+
break
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
default:
|
|
160
|
+
console.error(`Unknown command: ${command}`)
|
|
161
|
+
console.error("Run 'bun run src/cli.ts --help' for usage")
|
|
162
|
+
process.exit(1)
|
|
163
|
+
}
|
|
164
|
+
} catch (error) {
|
|
165
|
+
console.error('Error:', error instanceof Error ? error.message : error)
|
|
166
|
+
process.exit(1)
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
main()
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AST Module
|
|
3
|
+
*
|
|
4
|
+
* Tree-sitter powered AST search for code analysis.
|
|
5
|
+
* Provides pattern-based search across TypeScript, JavaScript, and Python files.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
// Language utilities
|
|
9
|
+
export {
|
|
10
|
+
detectLanguage,
|
|
11
|
+
getParser,
|
|
12
|
+
getSupportedGlob,
|
|
13
|
+
initParser,
|
|
14
|
+
isSupported,
|
|
15
|
+
LANGUAGES,
|
|
16
|
+
SUPPORTED_LANGUAGES,
|
|
17
|
+
type SupportedLanguage,
|
|
18
|
+
} from './languages.js'
|
|
19
|
+
// Pattern matching
|
|
20
|
+
export { ASTPattern } from './pattern.js'
|
|
21
|
+
// Search engine
|
|
22
|
+
export { ASTSearcher } from './searcher.js'
|
|
23
|
+
// Types
|
|
24
|
+
export {
|
|
25
|
+
AST_SEARCH_TIMEOUT,
|
|
26
|
+
type ASTMatch,
|
|
27
|
+
type ASTMatchContext,
|
|
28
|
+
type ASTSearchOptions,
|
|
29
|
+
type ASTSearchResult,
|
|
30
|
+
type PatternCriteria,
|
|
31
|
+
SearchMode,
|
|
32
|
+
} from './types.js'
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language Registry
|
|
3
|
+
*
|
|
4
|
+
* Maps file extensions to tree-sitter languages and provides
|
|
5
|
+
* lazy-loaded parser instances using WASM grammars.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { createRequire } from 'node:module'
|
|
9
|
+
import { ResourcePool } from '@side-quest/core/concurrency'
|
|
10
|
+
import { Language, type Node, Parser } from 'web-tree-sitter'
|
|
11
|
+
import { getAstLogger } from '../logger.js'
|
|
12
|
+
|
|
13
|
+
// Create require for resolving WASM paths
|
|
14
|
+
const require = createRequire(import.meta.url)
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* File extension to tree-sitter language mapping.
|
|
18
|
+
* Ported from Kit's LANGUAGES dict in tree_sitter_symbol_extractor.py
|
|
19
|
+
*/
|
|
20
|
+
export const LANGUAGES: Record<string, string> = {
|
|
21
|
+
'.ts': 'typescript',
|
|
22
|
+
'.tsx': 'tsx',
|
|
23
|
+
'.mts': 'typescript',
|
|
24
|
+
'.cts': 'typescript',
|
|
25
|
+
'.js': 'javascript',
|
|
26
|
+
'.jsx': 'javascript',
|
|
27
|
+
'.mjs': 'javascript',
|
|
28
|
+
'.cjs': 'javascript',
|
|
29
|
+
'.py': 'python',
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Languages we support for AST search.
|
|
34
|
+
*/
|
|
35
|
+
export const SUPPORTED_LANGUAGES = [
|
|
36
|
+
'typescript',
|
|
37
|
+
'tsx',
|
|
38
|
+
'javascript',
|
|
39
|
+
'python',
|
|
40
|
+
] as const
|
|
41
|
+
|
|
42
|
+
export type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]
|
|
43
|
+
|
|
44
|
+
// Resource pools for cached instances
|
|
45
|
+
const languagePool = new ResourcePool<SupportedLanguage, Language>()
|
|
46
|
+
const parserPool = new ResourcePool<SupportedLanguage, Parser>()
|
|
47
|
+
|
|
48
|
+
let initialized = false
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Initialize the tree-sitter parser.
|
|
52
|
+
* Must be called before any parsing operations.
|
|
53
|
+
*/
|
|
54
|
+
export async function initParser(): Promise<void> {
|
|
55
|
+
if (initialized) return
|
|
56
|
+
|
|
57
|
+
const logger = getAstLogger()
|
|
58
|
+
logger.debug('Initializing tree-sitter parser')
|
|
59
|
+
|
|
60
|
+
try {
|
|
61
|
+
await Parser.init()
|
|
62
|
+
initialized = true
|
|
63
|
+
logger.debug('Tree-sitter parser initialized successfully')
|
|
64
|
+
} catch (error) {
|
|
65
|
+
logger.error('Failed to initialize tree-sitter parser', {
|
|
66
|
+
error: error instanceof Error ? error.message : String(error),
|
|
67
|
+
})
|
|
68
|
+
throw error
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Get a parser configured for a specific language.
|
|
74
|
+
*
|
|
75
|
+
* Each language gets its own dedicated parser instance to avoid race conditions
|
|
76
|
+
* when concurrent requests for different languages would otherwise swap the
|
|
77
|
+
* language on a shared parser mid-parse.
|
|
78
|
+
*
|
|
79
|
+
* @param language - The language name (e.g., "typescript")
|
|
80
|
+
* @returns Configured parser instance for this language
|
|
81
|
+
*/
|
|
82
|
+
export async function getParser(language: SupportedLanguage): Promise<Parser> {
|
|
83
|
+
await initParser()
|
|
84
|
+
|
|
85
|
+
const logger = getAstLogger()
|
|
86
|
+
|
|
87
|
+
return parserPool.getOrCreate(language, async (lang) => {
|
|
88
|
+
logger.debug('Creating new parser for language', { language: lang })
|
|
89
|
+
|
|
90
|
+
const parser = new Parser()
|
|
91
|
+
const grammar = await loadLanguage(lang)
|
|
92
|
+
parser.setLanguage(grammar)
|
|
93
|
+
|
|
94
|
+
return parser
|
|
95
|
+
})
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Load a language grammar from WASM.
|
|
100
|
+
*
|
|
101
|
+
* @param language - The language name
|
|
102
|
+
* @returns Loaded language instance
|
|
103
|
+
*/
|
|
104
|
+
async function loadLanguage(language: SupportedLanguage): Promise<Language> {
|
|
105
|
+
const logger = getAstLogger()
|
|
106
|
+
|
|
107
|
+
return languagePool.getOrCreate(language, async (lang) => {
|
|
108
|
+
logger.debug('Loading language grammar from WASM', { language: lang })
|
|
109
|
+
|
|
110
|
+
try {
|
|
111
|
+
const wasmPath = require.resolve(
|
|
112
|
+
`tree-sitter-wasms/out/tree-sitter-${lang}.wasm`,
|
|
113
|
+
)
|
|
114
|
+
const grammar = await Language.load(wasmPath)
|
|
115
|
+
logger.debug('Language grammar loaded successfully', {
|
|
116
|
+
language: lang,
|
|
117
|
+
wasmPath,
|
|
118
|
+
})
|
|
119
|
+
return grammar
|
|
120
|
+
} catch (error) {
|
|
121
|
+
logger.error('Failed to load language grammar', {
|
|
122
|
+
language: lang,
|
|
123
|
+
error: error instanceof Error ? error.message : String(error),
|
|
124
|
+
})
|
|
125
|
+
throw error
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Detect language from file path by extension.
|
|
132
|
+
*
|
|
133
|
+
* @param filePath - Path to the file
|
|
134
|
+
* @returns Language name or null if unsupported
|
|
135
|
+
*/
|
|
136
|
+
export function detectLanguage(filePath: string): SupportedLanguage | null {
|
|
137
|
+
const lastDot = filePath.lastIndexOf('.')
|
|
138
|
+
if (lastDot === -1) return null
|
|
139
|
+
|
|
140
|
+
const ext = filePath.substring(lastDot).toLowerCase()
|
|
141
|
+
const language = LANGUAGES[ext]
|
|
142
|
+
|
|
143
|
+
if (language && SUPPORTED_LANGUAGES.includes(language as SupportedLanguage)) {
|
|
144
|
+
return language as SupportedLanguage
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return null
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Check if a file is supported for AST parsing.
|
|
152
|
+
*
|
|
153
|
+
* @param filePath - Path to the file
|
|
154
|
+
* @returns True if the file can be parsed
|
|
155
|
+
*/
|
|
156
|
+
export function isSupported(filePath: string): boolean {
|
|
157
|
+
return detectLanguage(filePath) !== null
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Get all supported file extensions as a glob pattern.
|
|
162
|
+
*
|
|
163
|
+
* @returns Glob pattern matching all supported files
|
|
164
|
+
*/
|
|
165
|
+
export function getSupportedGlob(): string {
|
|
166
|
+
const extensions = Object.keys(LANGUAGES).map((ext) => ext.slice(1))
|
|
167
|
+
return `**/*.{${extensions.join(',')}}`
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Re-export types from web-tree-sitter for convenience
|
|
171
|
+
// Note: web-tree-sitter exports 'Node' not 'SyntaxNode'
|
|
172
|
+
export type { Node as SyntaxNode }
|