@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.
Files changed (127) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +54 -352
  3. package/dist/cli.d.ts +14 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +156 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/index.d.ts +8 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +8 -2509
  10. package/dist/index.js.map +1 -0
  11. package/dist/lib/ast/index.d.ts +11 -0
  12. package/dist/lib/ast/index.d.ts.map +1 -0
  13. package/dist/lib/ast/index.js +15 -0
  14. package/dist/lib/ast/index.js.map +1 -0
  15. package/dist/lib/ast/languages.d.ts +55 -0
  16. package/dist/lib/ast/languages.d.ts.map +1 -0
  17. package/dist/lib/ast/languages.js +146 -0
  18. package/dist/lib/ast/languages.js.map +1 -0
  19. package/dist/lib/ast/pattern.d.ts +84 -0
  20. package/dist/lib/ast/pattern.d.ts.map +1 -0
  21. package/dist/lib/ast/pattern.js +268 -0
  22. package/dist/lib/ast/pattern.js.map +1 -0
  23. package/dist/lib/ast/searcher.d.ts +89 -0
  24. package/dist/lib/ast/searcher.d.ts.map +1 -0
  25. package/dist/lib/ast/searcher.js +316 -0
  26. package/dist/lib/ast/searcher.js.map +1 -0
  27. package/dist/lib/ast/types.d.ts +93 -0
  28. package/dist/lib/ast/types.d.ts.map +1 -0
  29. package/dist/lib/ast/types.js +23 -0
  30. package/dist/lib/ast/types.js.map +1 -0
  31. package/dist/lib/commands/callers.d.ts +20 -0
  32. package/dist/lib/commands/callers.d.ts.map +1 -0
  33. package/dist/lib/commands/callers.js +162 -0
  34. package/dist/lib/commands/callers.js.map +1 -0
  35. package/dist/lib/commands/find.d.ts +15 -0
  36. package/dist/lib/commands/find.d.ts.map +1 -0
  37. package/dist/lib/commands/find.js +113 -0
  38. package/dist/lib/commands/find.js.map +1 -0
  39. package/dist/lib/commands/overview.d.ts +6 -0
  40. package/dist/lib/commands/overview.d.ts.map +1 -0
  41. package/dist/lib/commands/overview.js +52 -0
  42. package/dist/lib/commands/overview.js.map +1 -0
  43. package/dist/lib/commands/prime.d.ts +16 -0
  44. package/dist/lib/commands/prime.d.ts.map +1 -0
  45. package/dist/lib/commands/prime.js +168 -0
  46. package/dist/lib/commands/prime.js.map +1 -0
  47. package/dist/lib/commands/search.d.ts +20 -0
  48. package/dist/lib/commands/search.d.ts.map +1 -0
  49. package/dist/lib/commands/search.js +111 -0
  50. package/dist/lib/commands/search.js.map +1 -0
  51. package/dist/lib/errors.d.ts +80 -0
  52. package/dist/lib/errors.d.ts.map +1 -0
  53. package/dist/lib/errors.js +189 -0
  54. package/dist/lib/errors.js.map +1 -0
  55. package/dist/lib/formatters/output.d.ts +5 -0
  56. package/dist/lib/formatters/output.d.ts.map +1 -0
  57. package/dist/lib/formatters/output.js +5 -0
  58. package/dist/lib/formatters/output.js.map +1 -0
  59. package/dist/lib/formatters.d.ts +29 -0
  60. package/dist/lib/formatters.d.ts.map +1 -0
  61. package/dist/lib/formatters.js +141 -0
  62. package/dist/lib/formatters.js.map +1 -0
  63. package/dist/lib/index-tools.d.ts +108 -0
  64. package/dist/lib/index-tools.d.ts.map +1 -0
  65. package/dist/lib/index-tools.js +311 -0
  66. package/dist/lib/index-tools.js.map +1 -0
  67. package/dist/lib/index.d.ts +21 -0
  68. package/dist/lib/index.d.ts.map +1 -0
  69. package/dist/lib/index.js +42 -0
  70. package/dist/lib/index.js.map +1 -0
  71. package/dist/lib/kit-wrapper.d.ts +70 -0
  72. package/dist/lib/kit-wrapper.d.ts.map +1 -0
  73. package/dist/lib/kit-wrapper.js +462 -0
  74. package/dist/lib/kit-wrapper.js.map +1 -0
  75. package/dist/lib/logger.d.ts +28 -0
  76. package/dist/lib/logger.d.ts.map +1 -0
  77. package/dist/lib/logger.js +39 -0
  78. package/dist/lib/logger.js.map +1 -0
  79. package/dist/lib/types.d.ts +179 -0
  80. package/dist/lib/types.d.ts.map +1 -0
  81. package/dist/lib/types.js +48 -0
  82. package/dist/lib/types.js.map +1 -0
  83. package/dist/lib/utils/args.d.ts +40 -0
  84. package/dist/lib/utils/args.d.ts.map +1 -0
  85. package/dist/lib/utils/args.js +58 -0
  86. package/dist/lib/utils/args.js.map +1 -0
  87. package/dist/lib/utils/git.d.ts +23 -0
  88. package/dist/lib/utils/git.d.ts.map +1 -0
  89. package/dist/lib/utils/git.js +50 -0
  90. package/dist/lib/utils/git.js.map +1 -0
  91. package/dist/lib/utils/index-parser.d.ts +155 -0
  92. package/dist/lib/utils/index-parser.d.ts.map +1 -0
  93. package/dist/lib/utils/index-parser.js +252 -0
  94. package/dist/lib/utils/index-parser.js.map +1 -0
  95. package/dist/lib/validators.d.ts +138 -0
  96. package/dist/lib/validators.d.ts.map +1 -0
  97. package/dist/lib/validators.js +302 -0
  98. package/dist/lib/validators.js.map +1 -0
  99. package/dist/mcp/index.d.ts +19 -0
  100. package/dist/mcp/index.d.ts.map +1 -0
  101. package/dist/mcp/index.js +769 -0
  102. package/dist/mcp/index.js.map +1 -0
  103. package/package.json +5 -2
  104. package/src/cli.ts +170 -0
  105. package/src/lib/ast/index.ts +32 -0
  106. package/src/lib/ast/languages.ts +172 -0
  107. package/src/lib/ast/pattern.ts +299 -0
  108. package/src/lib/ast/searcher.ts +381 -0
  109. package/src/lib/ast/types.ts +99 -0
  110. package/src/lib/commands/callers.ts +226 -0
  111. package/src/lib/commands/find.ts +159 -0
  112. package/src/lib/commands/overview.ts +73 -0
  113. package/src/lib/commands/prime.ts +271 -0
  114. package/src/lib/commands/search.ts +146 -0
  115. package/src/lib/errors.ts +221 -0
  116. package/src/lib/formatters/output.ts +9 -0
  117. package/src/lib/formatters.ts +189 -0
  118. package/src/lib/index-tools.ts +471 -0
  119. package/src/lib/index.ts +122 -0
  120. package/src/lib/kit-wrapper.ts +675 -0
  121. package/src/lib/logger.ts +57 -0
  122. package/src/lib/types.ts +228 -0
  123. package/src/lib/utils/args.ts +72 -0
  124. package/src/lib/utils/git.ts +65 -0
  125. package/src/lib/utils/index-parser.ts +350 -0
  126. package/src/lib/validators.ts +437 -0
  127. 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.0.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 }