prelude-context 1.4.3 → 1.6.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/README.md CHANGED
@@ -171,6 +171,80 @@ prelude watch
171
171
  # Press Ctrl+C when done to save the session
172
172
  ```
173
173
 
174
+ ### `prelude serve`
175
+ Starts Prelude as an MCP server over stdio transport:
176
+ ```bash
177
+ prelude serve # Serve context for current directory
178
+ prelude serve --root ~/my-project # Serve context for a specific project
179
+ ```
180
+
181
+ AI tools connect to this server to query your project context programmatically — no clipboard needed.
182
+
183
+ ### `prelude mcp-config`
184
+ Prints the configuration snippet to connect Prelude to your AI tool:
185
+ ```bash
186
+ prelude mcp-config --client claude-code # Default
187
+ prelude mcp-config --client claude-desktop
188
+ prelude mcp-config --client cursor
189
+ ```
190
+
191
+ ---
192
+
193
+ ## MCP Server Integration
194
+
195
+ Prelude can run as an [MCP](https://modelcontextprotocol.io/) (Model Context Protocol) server, making your project context directly available to AI tools like Claude Code, Claude Desktop, and Cursor — no copy-paste required.
196
+
197
+ ### Quick Setup (Claude Code)
198
+
199
+ ```bash
200
+ # From your project directory (must have .context/ — run prelude init first)
201
+ prelude mcp-config --client claude-code
202
+ ```
203
+
204
+ This prints the command to register Prelude as an MCP server. Once connected, your AI tools have access to three tools:
205
+
206
+ | Tool | Description |
207
+ |------|-------------|
208
+ | `prelude_query` | Full-power context queries with topic, scope, and type filtering |
209
+ | `prelude_compact` | Token-efficient context for prompt injection (~800 tokens) |
210
+ | `prelude_status` | Check which context files are available |
211
+
212
+ And three resources for passive context discovery:
213
+
214
+ | Resource URI | Description |
215
+ |-------------|-------------|
216
+ | `prelude://context/full` | Complete project context as markdown |
217
+ | `prelude://context/compact` | Token-efficient summary |
218
+ | `prelude://context/{type}` | Individual context files (project, stack, architecture, constraints, decisions) |
219
+
220
+ ### Other Clients
221
+
222
+ ```bash
223
+ prelude mcp-config --client claude-desktop
224
+ prelude mcp-config --client cursor
225
+ ```
226
+
227
+ ### Manual Setup
228
+
229
+ Start the server directly:
230
+
231
+ ```bash
232
+ prelude serve --root /path/to/your/project
233
+ ```
234
+
235
+ The server uses stdio transport. Configure your MCP client to run this command.
236
+
237
+ ### `prelude mcp-config [options]`
238
+
239
+ Prints the configuration snippet for connecting Prelude to your AI tool:
240
+
241
+ ```bash
242
+ prelude mcp-config # Claude Code (default)
243
+ prelude mcp-config --client claude-desktop # Claude Desktop
244
+ prelude mcp-config --client cursor # Cursor
245
+ prelude mcp-config --root /path/to/project # Specify project root
246
+ ```
247
+
174
248
  ---
175
249
 
176
250
  ## Use Cases
@@ -363,12 +437,14 @@ Yes! While the CLI is built with Node.js, the Prelude format works with any lang
363
437
 
364
438
  - [x] Smart context updates with manual edit preservation
365
439
  - [x] Scoped context query engine (`prelude query`)
440
+ - [x] MCP server for AI tool integration (`prelude serve`)
366
441
  - [ ] Improved inference for Python, Rust, Go
367
442
  - [ ] VS Code extension for inline context
368
443
  - [ ] GitHub Action for automated updates
369
444
  - [ ] Plugin system for custom inference
370
445
  - [ ] CLI validation command
371
446
  - [ ] Context diff tool
447
+ - [ ] Temporal brain layer (learned heuristics from AI tool usage)
372
448
 
373
449
  ---
374
450
 
@@ -26,6 +26,8 @@ import { registerDecisionCommand } from '../src/commands/decision.js';
26
26
  import { registerWatchCommand } from '../src/commands/watch.js';
27
27
  import { registerQueryCommand } from '../src/commands/query.js';
28
28
  import { registerCompactCommand } from '../src/commands/compact.js';
29
+ import { registerServeCommand } from '../src/commands/serve.js';
30
+ import { registerMcpConfigCommand } from '../src/commands/mcp-config.js';
29
31
  import { update } from '../src/commands/update.js';
30
32
  // Register all commands
31
33
  registerInitCommand(cli);
@@ -35,6 +37,8 @@ registerDecisionCommand(cli);
35
37
  registerWatchCommand(cli);
36
38
  registerQueryCommand(cli);
37
39
  registerCompactCommand(cli);
40
+ registerServeCommand(cli);
41
+ registerMcpConfigCommand(cli);
38
42
  // Register update command
39
43
  cli
40
44
  .command('update', 'Update context by re-analyzing the codebase')
@@ -1 +1 @@
1
- {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../bin/prelude.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+DAA+D;AAC/D,IAAI,WAAgB,CAAC;AACrB,IAAI,CAAC;IACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAE3B,GAAG;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,IAAI,EAAE,CAAC;AAEV,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,wBAAwB;AACxB,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzB,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC3B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC7B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAE5B,0BAA0B;AAC1B,GAAG;KACA,OAAO,CAAC,QAAQ,EAAE,6CAA6C,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACpC,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,gBAAgB;AAChB,GAAG,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../bin/prelude.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+DAA+D;AAC/D,IAAI,WAAgB,CAAC;AACrB,IAAI,CAAC;IACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAE3B,GAAG;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,IAAI,EAAE,CAAC;AAEV,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,wBAAwB;AACxB,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzB,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC3B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC7B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC5B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAE9B,0BAA0B;AAC1B,GAAG;KACA,OAAO,CAAC,QAAQ,EAAE,6CAA6C,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACpC,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,gBAAgB;AAChB,GAAG,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CAC } from 'cac';
2
+ export declare function registerMcpConfigCommand(cli: CAC): void;
3
+ //# sourceMappingURL=mcp-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.d.ts","sourceRoot":"","sources":["../../../src/commands/mcp-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAI/B,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,QAsEhD"}
@@ -0,0 +1,72 @@
1
+ import { resolve } from 'path';
2
+ import { execSync } from 'child_process';
3
+ export function registerMcpConfigCommand(cli) {
4
+ cli
5
+ .command('mcp-config', 'Print MCP server configuration for AI tool integration')
6
+ .option('--root <path>', 'Project root directory (default: cwd)')
7
+ .option('--client <name>', 'Target client: claude-desktop, claude-code, cursor', { default: 'claude-code' })
8
+ .action(async (options) => {
9
+ const rootDir = resolve(options.root || process.cwd());
10
+ // Find the prelude binary path
11
+ let preludePath;
12
+ try {
13
+ preludePath = execSync('which prelude', { encoding: 'utf-8' }).trim();
14
+ }
15
+ catch {
16
+ // Fallback: assume npx
17
+ preludePath = 'npx';
18
+ }
19
+ const isNpx = preludePath === 'npx';
20
+ const command = isNpx ? 'npx' : preludePath;
21
+ const args = isNpx
22
+ ? ['prelude-context', 'serve', '--root', rootDir]
23
+ : ['serve', '--root', rootDir];
24
+ const serverConfig = {
25
+ command,
26
+ args,
27
+ };
28
+ const client = options.client || 'claude-code';
29
+ if (client === 'claude-code') {
30
+ // Claude Code uses: claude mcp add <name> -- <command> <args...>
31
+ const addCommand = isNpx
32
+ ? `claude mcp add prelude-context -- npx prelude-context serve --root ${rootDir}`
33
+ : `claude mcp add prelude-context -- ${preludePath} serve --root ${rootDir}`;
34
+ console.log('# Claude Code\n');
35
+ console.log('Run this command:\n');
36
+ console.log(` ${addCommand}\n`);
37
+ console.log('Or add to .mcp.json in your project root:\n');
38
+ console.log(JSON.stringify({
39
+ mcpServers: {
40
+ 'prelude-context': serverConfig
41
+ }
42
+ }, null, 2));
43
+ }
44
+ else if (client === 'claude-desktop') {
45
+ // Claude Desktop uses claude_desktop_config.json
46
+ console.log('# Claude Desktop\n');
47
+ console.log('Add to ~/Library/Application Support/Claude/claude_desktop_config.json:\n');
48
+ console.log(JSON.stringify({
49
+ mcpServers: {
50
+ 'prelude-context': serverConfig
51
+ }
52
+ }, null, 2));
53
+ }
54
+ else if (client === 'cursor') {
55
+ console.log('# Cursor\n');
56
+ console.log('Add to .cursor/mcp.json in your project root:\n');
57
+ console.log(JSON.stringify({
58
+ mcpServers: {
59
+ 'prelude-context': serverConfig
60
+ }
61
+ }, null, 2));
62
+ }
63
+ else {
64
+ // Generic MCP config
65
+ console.log('# MCP Server Configuration\n');
66
+ console.log(JSON.stringify({
67
+ 'prelude-context': serverConfig
68
+ }, null, 2));
69
+ }
70
+ });
71
+ }
72
+ //# sourceMappingURL=mcp-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.js","sourceRoot":"","sources":["../../../src/commands/mcp-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CAC } from 'cac';
2
+ export declare function registerServeCommand(cli: CAC): void;
3
+ //# sourceMappingURL=serve.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../src/commands/serve.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAO/B,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,QA4B5C"}
@@ -0,0 +1,29 @@
1
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
2
+ import { createPreludeServer } from '../mcp/server.js';
3
+ import { CONTEXT_DIR } from '../constants.js';
4
+ import { fileExists } from '../utils/fs.js';
5
+ import { join } from 'path';
6
+ export function registerServeCommand(cli) {
7
+ cli
8
+ .command('serve', 'Start Prelude as an MCP server (stdio transport)')
9
+ .option('--root <path>', 'Root directory of the project (default: cwd)')
10
+ .action(async (options) => {
11
+ const rootDir = options.root || process.cwd();
12
+ // Validate .context/ exists
13
+ const externalRoot = process.env.PRELUDE_ROOT;
14
+ const contextDir = externalRoot
15
+ ? join(externalRoot, rootDir.split('/').pop())
16
+ : join(rootDir, CONTEXT_DIR);
17
+ if (!(await fileExists(contextDir))) {
18
+ // Write to stderr since stdout is the MCP transport
19
+ process.stderr.write('Error: .context/ directory not found. Run `prelude init` first.\n');
20
+ process.exit(1);
21
+ }
22
+ const server = createPreludeServer(rootDir);
23
+ const transport = new StdioServerTransport();
24
+ await server.connect(transport);
25
+ // Log to stderr (stdout is MCP transport)
26
+ process.stderr.write(`Prelude MCP server started for: ${rootDir}\n`);
27
+ });
28
+ }
29
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/commands/serve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,MAAM,UAAU,oBAAoB,CAAC,GAAQ;IAC3C,GAAG;SACA,OAAO,CAAC,OAAO,EAAE,kDAAkD,CAAC;SACpE,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAA0B,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAE9C,4BAA4B;QAC5B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAC9C,MAAM,UAAU,GAAG,YAAY;YAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,CAAC;YACxD,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAE/B,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACpC,oDAAoD;YACpD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mEAAmE,CACpE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,0CAA0C;QAC1C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,OAAO,IAAI,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -12,5 +12,5 @@ export declare const CONTEXT_FILES: {
12
12
  readonly WATCHLOG: ".watchlog.json";
13
13
  };
14
14
  export declare const WATCH_PATTERNS: readonly ["package.json", "package-lock.json", "pnpm-lock.yaml", "yarn.lock", "bun.lockb", "tsconfig.json", "tailwind.config.js", "tailwind.config.ts", ".eslintrc.json", ".eslintrc.js", "eslint.config.js", ".prettierrc", ".prettierrc.json", "prettier.config.js", "src/**/*", "lib/**/*", "app/**/*", "pages/**/*", "components/**/*", "requirements.txt", "pyproject.toml", "Cargo.toml", "go.mod"];
15
- export declare const IGNORE_PATTERNS: readonly ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/build/**", "**/.next/**", "**/.context/**", "**/*.test.*", "**/*.spec.*"];
15
+ export declare const IGNORE_PATTERNS: readonly ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/build/**", "**/.next/**", "**/.context/**", "**/*.test.*", "**/*.spec.*", "**/__pycache__/**", "**/*.egg-info/**", "**/.venv/**", "**/venv/**", "**/.mypy_cache/**", "**/.ruff_cache/**", "**/.pytest_cache/**"];
16
16
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,eAAO,MAAM,cAAc,2YAwBjB,CAAC;AAEX,eAAO,MAAM,eAAe,2IASlB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,aAAa,CAAC;AAEtC,eAAO,MAAM,aAAa;;;;;;;;;;;CAWhB,CAAC;AAEX,eAAO,MAAM,cAAc,2YAwBjB,CAAC;AAEX,eAAO,MAAM,eAAe,kRAgBlB,CAAC"}
@@ -44,6 +44,13 @@ export const IGNORE_PATTERNS = [
44
44
  '**/.next/**',
45
45
  '**/.context/**',
46
46
  '**/*.test.*',
47
- '**/*.spec.*'
47
+ '**/*.spec.*',
48
+ '**/__pycache__/**',
49
+ '**/*.egg-info/**',
50
+ '**/.venv/**',
51
+ '**/venv/**',
52
+ '**/.mypy_cache/**',
53
+ '**/.ruff_cache/**',
54
+ '**/.pytest_cache/**'
48
55
  ];
49
56
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,mBAAmB;IACjC,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,gBAAgB;CAClB,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,eAAe;IACf,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,UAAU;IACV,UAAU;IACV,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,QAAQ;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,aAAa;CACL,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,UAAU,CAAC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,OAAO,EAAE,cAAc;IACvB,KAAK,EAAE,YAAY;IACnB,YAAY,EAAE,mBAAmB;IACjC,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,gBAAgB;IAC3B,OAAO,EAAE,cAAc;IACvB,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,aAAa;IAC1B,QAAQ,EAAE,gBAAgB;CAClB,CAAC;AAEX,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,WAAW;IACX,eAAe;IACf,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,cAAc;IACd,kBAAkB;IAClB,aAAa;IACb,kBAAkB;IAClB,oBAAoB;IACpB,UAAU;IACV,UAAU;IACV,UAAU;IACV,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,gBAAgB;IAChB,YAAY;IACZ,QAAQ;CACA,CAAC;AAEX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,oBAAoB;IACpB,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,aAAa;IACb,gBAAgB;IAChB,aAAa;IACb,aAAa;IACb,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,YAAY;IACZ,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;CACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../../src/core/infer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAoHpF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyD5E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAsShE;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAsO9E;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAkL5E"}
1
+ {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../../src/core/infer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAwPpF,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAiG5E;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAwchE;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAwS9E;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAyP5E"}