logicstamp-mcp 0.1.6 → 0.2.1
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 +96 -0
- package/README.md +53 -34
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +22 -9
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tools/list-bundles.d.ts.map +1 -1
- package/dist/mcp/tools/list-bundles.js +74 -11
- package/dist/mcp/tools/list-bundles.js.map +1 -1
- package/dist/mcp/tools/read-bundle.d.ts.map +1 -1
- package/dist/mcp/tools/read-bundle.js +88 -12
- package/dist/mcp/tools/read-bundle.js.map +1 -1
- package/dist/mcp/tools/read-logicstamp-docs.d.ts +2 -0
- package/dist/mcp/tools/read-logicstamp-docs.d.ts.map +1 -1
- package/dist/mcp/tools/read-logicstamp-docs.js +3 -0
- package/dist/mcp/tools/read-logicstamp-docs.js.map +1 -1
- package/dist/mcp/tools/refresh-snapshot.d.ts.map +1 -1
- package/dist/mcp/tools/refresh-snapshot.js +20 -6
- package/dist/mcp/tools/refresh-snapshot.js.map +1 -1
- package/dist/mcp/tools/watch-status.d.ts.map +1 -1
- package/dist/mcp/tools/watch-status.js +19 -5
- package/dist/mcp/tools/watch-status.js.map +1 -1
- package/dist/types/schemas.d.ts +3 -0
- package/dist/types/schemas.d.ts.map +1 -1
- package/docs/logicstamp-for-llms.md +69 -21
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,94 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
## [0.2.1] - 2026-03-06
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
|
|
16
|
+
- **Watch Mode Retry Logic** ([#35](https://github.com/LogicStamp/logicstamp-mcp/pull/35)) - Added automatic retry mechanism with exponential backoff for reading files when watch mode is active
|
|
17
|
+
- Initial delay before reading files: 200ms for regular watch mode, 500ms for strict watch mode
|
|
18
|
+
- Automatic retry up to 3 times with exponential backoff (100ms, 200ms, 400ms) if JSON parsing fails
|
|
19
|
+
- Prevents race conditions when watch mode is actively writing context files
|
|
20
|
+
- Worst case total wait: ~900ms for regular watch, ~1.1s for strict watch
|
|
21
|
+
- Only applies when watch mode is active - no performance impact otherwise
|
|
22
|
+
- Updated `logicstamp_read_bundle` and `logicstamp_list_bundles` to use retry logic
|
|
23
|
+
- **Documentation Warnings Against External `sleep()`** - Added explicit, prominent warnings in tool descriptions and outputs to prevent AI assistants from using unnecessary `sleep()` calls
|
|
24
|
+
- **Tool Descriptions** - Added "⚠️ CRITICAL: Do NOT use sleep() delays" as the FIRST line in all relevant tool descriptions (`logicstamp_watch_status`, `logicstamp_list_bundles`, `logicstamp_read_bundle`, `logicstamp_refresh_snapshot`) to ensure AI assistants see the warning immediately
|
|
25
|
+
- **Tool Output Warnings** - Added `warning` field to `logicstamp_read_bundle` and `logicstamp_list_bundles` outputs when watch mode is active, ensuring warnings appear in every response
|
|
26
|
+
- **Watch Status Messages** - Enhanced `logicstamp_watch_status` messages to explicitly state "DO NOT use sleep() delays" when watch mode is active
|
|
27
|
+
- **Documentation** - Added comprehensive section in `docs/logicstamp-for-llms.md` explaining why `sleep()` is unnecessary
|
|
28
|
+
- **Command Documentation** - Updated command documentation (`docs/commands/read-bundle.md`, `docs/commands/list-bundles.md`) with warnings that delays are internal
|
|
29
|
+
- Emphasizes that watch mode keeps bundles fresh automatically - AI assistants should read bundles directly without waiting
|
|
30
|
+
- Explains that internal retry logic handles all race conditions (200-500ms delays + exponential backoff built-in)
|
|
31
|
+
- Multiple warning touchpoints (descriptions, outputs, messages) ensure AI assistants cannot miss the guidance
|
|
32
|
+
- Prevents unnecessary delays that slow down AI assistant workflows when watch mode is active
|
|
33
|
+
- **Branch Testing Improvements** ([#36](https://github.com/LogicStamp/logicstamp-mcp/pull/36)) - Added comprehensive branch coverage tests for `read-logicstamp-docs.ts` and `compare-snapshot.ts`
|
|
34
|
+
- Added tests for filesystem root check in `findPackageRoot` function
|
|
35
|
+
- Added test for invalid docPath validation branch by exporting `readDocFile` for testing purposes
|
|
36
|
+
- Added depth validation tests (invalid, negative, non-integer values)
|
|
37
|
+
- Added baseline path resolution tests (snapshot, disk, custom path baselines)
|
|
38
|
+
- Added profile-specific command building tests for different profiles and depth combinations
|
|
39
|
+
- Added bundle hash comparison tests (hash changes, bundle addition/removal scenarios)
|
|
40
|
+
- Added tests for missing contracts, loadBundles error handling, and token delta fallback calculation
|
|
41
|
+
- Added cache cleanup tests for corruption detection scenarios
|
|
42
|
+
- Improves branch coverage for error handling paths and edge cases
|
|
43
|
+
- Exported `readDocFile` function for testing to enable coverage of defensive validation branch (line 93)
|
|
44
|
+
|
|
45
|
+
### Fixed
|
|
46
|
+
|
|
47
|
+
- **TypeScript File Validation** ([#35](https://github.com/LogicStamp/logicstamp-mcp/pull/35)) - Fixed issue where TypeScript file validation errors were masked by JSON parse errors in retry logic
|
|
48
|
+
- Retry logic now checks for TypeScript files (starting with `import` or `export`) before attempting JSON parsing
|
|
49
|
+
- Ensures proper error messages when users accidentally point to TypeScript source files instead of JSON bundle files
|
|
50
|
+
|
|
51
|
+
### Roadmap
|
|
52
|
+
|
|
53
|
+
For a comprehensive roadmap with detailed status, priorities, and implementation plans, see [ROADMAP.md](ROADMAP.md).
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## [0.2.0] - 2026-03-03
|
|
58
|
+
|
|
59
|
+
### ⚠️ Breaking Changes
|
|
60
|
+
|
|
61
|
+
- **Minimum Node.js version is now >= 20.**
|
|
62
|
+
- logicstamp-mcp now requires Node.js 20 or higher.
|
|
63
|
+
- This aligns MCP with the `logicstamp-context` CLI runtime requirements.
|
|
64
|
+
- Users on Node.js 18 must upgrade to continue using MCP.
|
|
65
|
+
|
|
66
|
+
### Changed
|
|
67
|
+
|
|
68
|
+
- **Enhanced Watch Mode Functionality and Documentation** ([#26](https://github.com/LogicStamp/logicstamp-mcp/pull/26)) - Improved watch mode detection and documentation clarity
|
|
69
|
+
- Improved descriptions in server tools to clarify the distinction between ROOT components and DEPENDENCIES
|
|
70
|
+
- Added cleanup of stale watch status files when the process is no longer running across multiple tools
|
|
71
|
+
- Updated watch status handling to include strict watch mode detection, enhancing user awareness of breaking change detection
|
|
72
|
+
- Enhanced tests to verify strict watch mode functionality and its reporting in various scenarios
|
|
73
|
+
- Updated schemas to reflect the new strict watch mode field in watch status outputs
|
|
74
|
+
|
|
75
|
+
- **Documentation Updates and Node.js Requirement** ([#27](https://github.com/LogicStamp/logicstamp-mcp/pull/27)) - Updated Node.js requirement and enhanced documentation clarity
|
|
76
|
+
- Updated Node.js version requirement to >= 20 across various documentation files for consistency
|
|
77
|
+
- Improved clarity in documentation regarding the distinction between ROOT components and DEPENDENCIES
|
|
78
|
+
- Enhanced descriptions in multiple guides to reflect the latest tool capabilities and usage patterns
|
|
79
|
+
- Adjusted default behavior notes for `skipIfWatchActive` in the `refresh_snapshot` command
|
|
80
|
+
|
|
81
|
+
- **Documentation Improvements** ([#28](https://github.com/LogicStamp/logicstamp-mcp/pull/28)) - Updated README and roadmap for clarity and consistency
|
|
82
|
+
- Revised Node.js version requirement to >= 20 across documentation
|
|
83
|
+
- Enhanced README with a new Table of Contents and improved descriptions for better navigation and understanding
|
|
84
|
+
- Updated roadmap with the correct last updated date format
|
|
85
|
+
- Adjusted various sections for clarity, including prerequisites and features, to reflect the latest tool capabilities
|
|
86
|
+
|
|
87
|
+
- **Test Coverage Improvements** ([#29](https://github.com/LogicStamp/logicstamp-mcp/pull/29)) - Enhanced test coverage for better code quality assurance
|
|
88
|
+
- Added comprehensive tests for watch mode detection and direct projectPath access in `list-bundles.ts` and `read-bundle.ts`
|
|
89
|
+
- Added tests for TypeScript file validation and LogicStampIndex type validation in `read-bundle.ts`
|
|
90
|
+
- Added tests for error paths in `read-logicstamp-docs.ts` including package root detection and fallback strategies
|
|
91
|
+
- Added tests for server parameter validation edge cases
|
|
92
|
+
- Improved branch coverage for error handling paths and edge cases
|
|
93
|
+
- All new tests passing with improved confidence in error handling and watch mode functionality
|
|
94
|
+
|
|
95
|
+
|
|
8
96
|
## [0.1.6] - 2026-02-09
|
|
9
97
|
|
|
10
98
|
### Changed
|
|
@@ -285,6 +373,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
285
373
|
- Requires `logicstamp-context` CLI to be installed globally (`npm install -g logicstamp-context`)
|
|
286
374
|
- All tools are read-only - they analyze but never modify your codebase
|
|
287
375
|
|
|
376
|
+
[Unreleased]: https://github.com/LogicStamp/logicstamp-mcp/compare/v0.2.1...HEAD
|
|
377
|
+
|
|
378
|
+
[0.2.1]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.2.1
|
|
379
|
+
|
|
380
|
+
[0.2.0]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.2.0
|
|
381
|
+
|
|
382
|
+
[0.1.6]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.1.6
|
|
383
|
+
|
|
288
384
|
[0.1.5]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.1.5
|
|
289
385
|
|
|
290
386
|
[0.1.4]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.1.4
|
package/README.md
CHANGED
|
@@ -14,26 +14,44 @@
|
|
|
14
14
|
<img src="./assets/logicstamp-fox.svg" alt="LogicStamp Fox Mascot" width="100" style="min-width: 80px;">
|
|
15
15
|
</a>
|
|
16
16
|
|
|
17
|
-
[](https://www.npmjs.com/package/logicstamp-mcp)
|
|
18
18
|

|
|
19
19
|
[](LICENSE)
|
|
20
|
-

|
|
21
21
|
[](https://github.com/LogicStamp/logicstamp-mcp/actions)
|
|
22
22
|
|
|
23
23
|
<br/>
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
**Model Context Protocol (MCP) server for [LogicStamp Context](https://github.com/LogicStamp/logicstamp-context), the Context Compiler for TypeScript - exposing deterministic architectural contracts to AI agents via secure, structured context delivery.**
|
|
26
26
|
|
|
27
27
|
</div>
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
|
-

|
|
32
|
+
*Example workflow: `stamp context --strict-watch` generates context bundles that MCP-powered assistants use to explain component architecture (ThemeContext shown here).*
|
|
34
33
|
|
|
35
34
|
---
|
|
36
35
|
|
|
36
|
+
<details>
|
|
37
|
+
<summary><strong>📑 Table of Contents</strong></summary>
|
|
38
|
+
|
|
39
|
+
- [Overview](#overview)
|
|
40
|
+
- [Features](#-features)
|
|
41
|
+
- [Prerequisites](#prerequisites)
|
|
42
|
+
- [Quick Start](#quick-start)
|
|
43
|
+
- [Usage Example](#usage-example)
|
|
44
|
+
- [Tool Reference](#tool-reference)
|
|
45
|
+
- [Startup Ritual](#startup-ritual)
|
|
46
|
+
- [Documentation](#documentation)
|
|
47
|
+
- [Troubleshooting](#troubleshooting)
|
|
48
|
+
- [Development](#development)
|
|
49
|
+
- [Architecture](#architecture)
|
|
50
|
+
- [Requirements](#requirements)
|
|
51
|
+
- [Need Help?](#need-help)
|
|
52
|
+
- [License](#license)
|
|
53
|
+
</details>
|
|
54
|
+
|
|
37
55
|
## Overview
|
|
38
56
|
|
|
39
57
|
This MCP server provides AI assistants with structured access to your codebase through LogicStamp Context's analysis engine. It acts as a thin wrapper around the `stamp` CLI, offering:
|
|
@@ -45,7 +63,7 @@ This MCP server provides AI assistants with structured access to your codebase t
|
|
|
45
63
|
- **Drift detection** - Verify changes after modifications
|
|
46
64
|
- **Token optimization** - Control context size with configurable code inclusion modes
|
|
47
65
|
|
|
48
|
-
## Features
|
|
66
|
+
## ⚡ Features
|
|
49
67
|
|
|
50
68
|
### 7 Tools
|
|
51
69
|
|
|
@@ -67,7 +85,7 @@ This MCP server provides AI assistants with structured access to your codebase t
|
|
|
67
85
|
|
|
68
86
|
## Prerequisites
|
|
69
87
|
|
|
70
|
-
1. **Node.js** >=
|
|
88
|
+
1. **Node.js** >= 20
|
|
71
89
|
2. **LogicStamp Context CLI** - The `stamp` command must be installed and available in PATH
|
|
72
90
|
```bash
|
|
73
91
|
npm install -g logicstamp-context
|
|
@@ -138,7 +156,8 @@ For more examples and workflows, see [Usage Examples](docs/mcp_integration.md#ll
|
|
|
138
156
|
|
|
139
157
|
The MCP server provides 7 tools. For complete API documentation with input/output examples, see the [MCP Integration Guide](docs/mcp_integration.md#mcp-tools-mvp).
|
|
140
158
|
|
|
141
|
-
|
|
159
|
+
<details>
|
|
160
|
+
<summary><strong>📋 Quick Reference</strong></summary>
|
|
142
161
|
|
|
143
162
|
**logicstamp_refresh_snapshot** - Create a snapshot of the current codebase state (STEP 1)
|
|
144
163
|
- Parameters: `profile` (optional), `mode` (optional), `includeStyle` (optional), `depth` (optional), `projectPath` (required), `cleanCache` (optional), `skipIfWatchActive` (optional)
|
|
@@ -188,6 +207,8 @@ The MCP server provides 7 tools. For complete API documentation with input/outpu
|
|
|
188
207
|
- **Use this** to check if `stamp context --watch` is running before calling refresh_snapshot
|
|
189
208
|
- **When watch mode is active:** Context is being kept fresh automatically via incremental rebuilds - you can skip regeneration and just read existing bundles
|
|
190
209
|
|
|
210
|
+
</details>
|
|
211
|
+
|
|
191
212
|
## Startup Ritual
|
|
192
213
|
|
|
193
214
|
When starting work with a new project, use the [Startup Ritual](docs/startup-ritual.md) to guide the AI through the recommended workflow. This ensures the AI:
|
|
@@ -287,7 +308,7 @@ When running manually, the server will wait for stdin input. Press `Ctrl+C` to e
|
|
|
287
308
|
npm run dev
|
|
288
309
|
```
|
|
289
310
|
|
|
290
|
-
For development details, see [MCP Integration Guide](docs/mcp_integration.md)
|
|
311
|
+
For development details, see [MCP Integration Guide](docs/mcp_integration.md).
|
|
291
312
|
|
|
292
313
|
## Architecture
|
|
293
314
|
|
|
@@ -302,39 +323,37 @@ For detailed architecture documentation, see [MCP Integration Guide](docs/mcp_in
|
|
|
302
323
|
|
|
303
324
|
## Requirements
|
|
304
325
|
|
|
305
|
-
|
|
306
|
-
- **`stamp context` command** - Must be installed and available in PATH
|
|
307
|
-
- The CLI generates `context_main.json` files (already JSON format)
|
|
308
|
-
- The MCP reads these JSON files directly - no special JSON output flags needed
|
|
326
|
+
The LogicStamp MCP server requires:
|
|
309
327
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
328
|
+
- Node.js >= 20
|
|
329
|
+
- TypeScript codebase (React, Next.js, Vue (TS/TSX), Express, or NestJS)
|
|
330
|
+
- **`stamp context` command** - Must be installed and available in PATH:
|
|
331
|
+
- The CLI generates `context_main.json` files
|
|
332
|
+
- The MCP server reads these JSON files directly (no special flags required)
|
|
313
333
|
|
|
314
|
-
##
|
|
334
|
+
## Need Help?
|
|
315
335
|
|
|
316
|
-
|
|
336
|
+
- **Issues** - [github.com/LogicStamp/logicstamp-mcp/issues](https://github.com/LogicStamp/logicstamp-mcp/issues)
|
|
337
|
+
- **Roadmap** - [logicstamp.dev/roadmap](https://logicstamp.dev/roadmap)
|
|
317
338
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
## Contributing
|
|
321
|
-
|
|
322
|
-
Contributions welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
339
|
+
## License
|
|
323
340
|
|
|
324
|
-
|
|
341
|
+
[MIT](LICENSE)
|
|
325
342
|
|
|
326
|
-
|
|
343
|
+
---
|
|
327
344
|
|
|
328
|
-
|
|
345
|
+
<details>
|
|
346
|
+
<summary>Branding & Attribution</summary>
|
|
329
347
|
|
|
330
|
-
|
|
348
|
+
The LogicStamp Fox mascot and related brand assets are © 2025 Amit Levi. These assets may not be used for third-party branding without permission.
|
|
349
|
+
</details>
|
|
331
350
|
|
|
332
|
-
|
|
351
|
+
<details>
|
|
352
|
+
<summary>Contributing</summary>
|
|
333
353
|
|
|
334
|
-
See [
|
|
354
|
+
Issues and PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
335
355
|
|
|
336
|
-
|
|
356
|
+
This project follows a [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
357
|
+
</details>
|
|
337
358
|
|
|
338
|
-
|
|
339
|
-
- [LogicStamp Context](https://github.com/LogicStamp/logicstamp-context) - CLI repository
|
|
340
|
-
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification
|
|
359
|
+
**Links:** [Website](https://logicstamp.dev) · [GitHub](https://github.com/LogicStamp/logicstamp-mcp) · [CLI](https://github.com/LogicStamp/logicstamp-context) · [Changelog](https://github.com/LogicStamp/logicstamp-mcp/blob/main/CHANGELOG.md)
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAkBnE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAkBnE;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAqZrC;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CASjD"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -32,7 +32,8 @@ export function createServer() {
|
|
|
32
32
|
tools: [
|
|
33
33
|
{
|
|
34
34
|
name: 'logicstamp_refresh_snapshot',
|
|
35
|
-
description: '⚠️
|
|
35
|
+
description: '⚠️ CRITICAL: Do NOT use sleep() delays. After calling this tool, bundles are immediately available. When watch mode is active, skip this tool entirely and read bundles directly - they\'re already fresh. ' +
|
|
36
|
+
'⚠️ FIRST: Call logicstamp_watch_status! If watch mode is ACTIVE → SKIP this tool, go to list_bundles → read_bundle (context is fresh). ' +
|
|
36
37
|
'Use when: watch mode INACTIVE, first-time analysis, or after large changes. Default skipIfWatchActive=true (auto-skips regeneration if watch mode active). ' +
|
|
37
38
|
'WHAT IT DOES: Runs `stamp context` to analyze React/TypeScript/Node.js codebases (Next.js, Express.js, NestJS) and generate structured context files (context_main.json + per-folder context.json bundles). These are STRUCTURED DATA, not raw source. SLOW compared to reading existing context. ' +
|
|
38
39
|
'WHAT YOU GET: Summary statistics (component counts, token estimates, folder structure) and a snapshotId. If watch mode is active, also includes watchMode status. ' +
|
|
@@ -87,10 +88,14 @@ export function createServer() {
|
|
|
87
88
|
},
|
|
88
89
|
{
|
|
89
90
|
name: 'logicstamp_list_bundles',
|
|
90
|
-
description: '
|
|
91
|
+
description: '⚠️ CRITICAL: Do NOT use sleep() delays before calling this tool. When watch mode is active, bundles are already fresh - call this tool directly without any waiting. ' +
|
|
92
|
+
'Lists all ROOT bundles from context_main.json. Returns bundle catalog (component names, file paths, bundle paths, token estimates). ' +
|
|
93
|
+
'IMPORTANT: LogicStamp organizes components into ROOT components (have their own bundles, listed here) and DEPENDENCIES (included in importing root\'s bundle.graph.nodes[], not listed here). ' +
|
|
94
|
+
'If a component isn\'t in this list, it\'s a dependency - find which root imports it, then read that root\'s bundle to see the dependency contract in bundle.graph.nodes[]. ' +
|
|
91
95
|
'Use bundle paths in read_bundle to get component contracts. ' +
|
|
92
96
|
'Watch mode: Use projectPath directly (no snapshotId needed). Filter: folderPrefix="src/components" to filter by directory. ' +
|
|
93
|
-
'Next: read_bundle(snapshotId|projectPath, bundlePath).'
|
|
97
|
+
'Next: read_bundle(snapshotId|projectPath, bundlePath). ' +
|
|
98
|
+
'The tool handles race conditions internally - no external sleep() delays needed.',
|
|
94
99
|
inputSchema: {
|
|
95
100
|
type: 'object',
|
|
96
101
|
properties: {
|
|
@@ -111,11 +116,15 @@ export function createServer() {
|
|
|
111
116
|
},
|
|
112
117
|
{
|
|
113
118
|
name: 'logicstamp_read_bundle',
|
|
114
|
-
description: '
|
|
119
|
+
description: '⚠️ CRITICAL: Do NOT use sleep() delays before calling this tool. When watch mode is active, bundles are already fresh - call this tool directly without any waiting. ' +
|
|
120
|
+
'Reads bundle/index file to get component contracts and dependency graphs. Reads context_main.json (project overview) or folder context.json (component contracts). ' +
|
|
115
121
|
'These are pre-parsed summaries optimized for AI - PREFER over raw .ts/.tsx files. ' +
|
|
116
|
-
'
|
|
122
|
+
'ROOT vs DEPENDENCY: Root components have their own bundles (use rootComponent param). Dependencies appear in bundle.graph.nodes[] of the root that imports them. ' +
|
|
123
|
+
'If a component isn\'t found as root, it\'s a dependency - read bundles that might import it and check bundle.graph.nodes[] for the dependency contract. ' +
|
|
124
|
+
'Bundle contains: entryId, graph.nodes[] (UIFContract for root + dependencies), graph.edges[] (dependencies), meta.missing[] (unresolved). ' +
|
|
117
125
|
'UIFContract: kind, description, props, emits, state, exports, semanticHash, optional style metadata. ' +
|
|
118
|
-
'Watch mode: Use projectPath directly (no snapshotId needed). Use bundlePath="context_main.json" for overview, or folder paths from list_bundles for details.'
|
|
126
|
+
'Watch mode: Use projectPath directly (no snapshotId needed). Use bundlePath="context_main.json" for overview, or folder paths from list_bundles for details. ' +
|
|
127
|
+
'The tool handles race conditions internally with retry logic (200-500ms delays + exponential backoff built-in). No external sleep() delays needed.',
|
|
119
128
|
inputSchema: {
|
|
120
129
|
type: 'object',
|
|
121
130
|
properties: {
|
|
@@ -133,7 +142,7 @@ export function createServer() {
|
|
|
133
142
|
},
|
|
134
143
|
rootComponent: {
|
|
135
144
|
type: 'string',
|
|
136
|
-
description: 'Specific
|
|
145
|
+
description: 'Specific ROOT component name to filter within the bundle file (optional). Only works for root components (listed in list_bundles). If omitted, returns the first bundle. Note: Dependencies appear in bundle.graph.nodes[] of the root that imports them, not as separate root bundles.',
|
|
137
146
|
},
|
|
138
147
|
},
|
|
139
148
|
required: ['bundlePath'],
|
|
@@ -231,12 +240,16 @@ export function createServer() {
|
|
|
231
240
|
},
|
|
232
241
|
{
|
|
233
242
|
name: 'logicstamp_watch_status',
|
|
234
|
-
description: '⚠️
|
|
243
|
+
description: '⚠️ CRITICAL: Do NOT use sleep() delays before calling LogicStamp tools when watch mode is active. Watch mode keeps bundles fresh automatically - just read them directly. ' +
|
|
244
|
+
'⚠️ CALL THIS FIRST before any other LogicStamp tool! Checks if watch mode (`stamp context --watch`) is active. ' +
|
|
235
245
|
'If ACTIVE: SKIP refresh_snapshot, go to list_bundles → read_bundle (context fresh via incremental rebuilds). ' +
|
|
236
246
|
'If INACTIVE: Call refresh_snapshot first. Enables zero-cost instant context access when watch mode running. ' +
|
|
237
247
|
'Reads .logicstamp/context_watch-status.json and verifies process is running. ' +
|
|
238
248
|
'Watch features: Incremental rebuilds (affected bundles only), change detection (props/hooks/state/components), debouncing (500ms), optional log file. ' +
|
|
239
|
-
'
|
|
249
|
+
'Strict watch mode (`stamp context --watch --strict-watch`): Also detects breaking changes. Returns strictWatch=true when enabled. ' +
|
|
250
|
+
'Detection: Reads strictWatch field from .logicstamp/context_watch-status.json file (when LogicStamp CLI includes it). ' +
|
|
251
|
+
'Set includeRecentLogs=true to see recent regeneration events. ' +
|
|
252
|
+
'When watch mode is active, bundles are already fresh - read them directly without any sleep() delays. The tools handle race conditions internally.',
|
|
240
253
|
inputSchema: {
|
|
241
254
|
type: 'object',
|
|
242
255
|
properties: {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,6BAA6B;oBACnC,WAAW,EACT,yIAAyI;wBACzI,6JAA6J;wBAC7J,oSAAoS;wBACpS,oKAAoK;wBACpK,sGAAsG;wBACtG,6KAA6K;wBAC7K,oPAAoP;wBACpP,sKAAsK;wBACtK,wJAAwJ;wBACxJ,qFAAqF;oBACvF,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,OAAO,EAAE;gCACP,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC;gCAC3C,WAAW,EAAE,4HAA4H;gCACzI,OAAO,EAAE,UAAU;6BACpB;4BACD,IAAI,EAAE;gCACJ,IAAI,EAAE,QAAQ;gCACd,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gCAChC,WAAW,EAAE,mKAAmK;gCAChL,OAAO,EAAE,QAAQ;6BAClB;4BACD,YAAY,EAAE;gCACZ,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,gPAAgP;gCAC7P,OAAO,EAAE,KAAK;6BACf;4BACD,KAAK,EAAE;gCACL,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,iOAAiO;gCAC9O,OAAO,EAAE,CAAC;6BACX;4BACD,WAAW,EAAE;gCACX,IAAI,EAAE,QAAQ;gCACd,WAAW,EAAE,iNAAiN;6BAC/N;4BACD,UAAU,EAAE;gCACV,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,2LAA2L;gCACxM,OAAO,EAAE,KAAK;6BACf;4BACD,iBAAiB,EAAE;gCACjB,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,8PAA8P;gCAC3Q,OAAO,EAAE,IAAI;6BACd;yBACF;wBACD,QAAQ,EAAE,CAAC,aAAa,CAAC;qBAC1B;iBACF;gBACD;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-bundles.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"list-bundles.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,gBAAgB,EAChB,iBAAiB,EAGlB,MAAM,wBAAwB,CAAC;AA8GhC,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAuIrF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tool 2: logicstamp_list_bundles
|
|
3
3
|
* List available bundles in a snapshot for selective loading
|
|
4
4
|
*/
|
|
5
|
-
import { readFile, access } from 'fs/promises';
|
|
5
|
+
import { readFile, access, unlink } from 'fs/promises';
|
|
6
6
|
import { join, resolve } from 'path';
|
|
7
7
|
import { constants } from 'fs';
|
|
8
8
|
import { stateManager } from '../state.js';
|
|
@@ -20,31 +20,87 @@ async function exists(path) {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Check if watch mode is active for the project
|
|
23
|
+
* Check if watch mode is active for the project.
|
|
24
|
+
* Cleans up stale status files when the process is no longer running.
|
|
25
|
+
* Returns watch mode status including strictWatch flag.
|
|
24
26
|
*/
|
|
25
27
|
async function checkWatchMode(projectPath) {
|
|
26
28
|
const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
|
|
27
29
|
if (!(await exists(statusPath))) {
|
|
28
|
-
return false;
|
|
30
|
+
return { active: false };
|
|
29
31
|
}
|
|
30
32
|
try {
|
|
31
33
|
const content = await readFile(statusPath, 'utf-8');
|
|
32
34
|
const status = JSON.parse(content);
|
|
33
35
|
// Verify the process is still running
|
|
34
36
|
if (status.pid && !isProcessRunning(status.pid)) {
|
|
35
|
-
|
|
37
|
+
// Clean up stale file
|
|
38
|
+
try {
|
|
39
|
+
await unlink(statusPath);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Ignore cleanup errors
|
|
43
|
+
}
|
|
44
|
+
return { active: false };
|
|
36
45
|
}
|
|
37
|
-
return
|
|
46
|
+
return {
|
|
47
|
+
active: status.active === true,
|
|
48
|
+
strictWatch: status.strictWatch === true,
|
|
49
|
+
};
|
|
38
50
|
}
|
|
39
51
|
catch {
|
|
40
|
-
return false;
|
|
52
|
+
return { active: false };
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Sleep utility for delays
|
|
57
|
+
*/
|
|
58
|
+
function sleep(ms) {
|
|
59
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Read file with retry logic for watch mode.
|
|
63
|
+
* When watch mode is active, files may be in the process of being written,
|
|
64
|
+
* so we retry with exponential backoff if JSON parsing fails.
|
|
65
|
+
*/
|
|
66
|
+
async function readFileWithRetry(filePath, watchMode, maxRetries = 3) {
|
|
67
|
+
// If watch mode is active, add a small initial delay to let files stabilize
|
|
68
|
+
// Strict watch mode does breaking change detection which may take longer
|
|
69
|
+
// The retry logic below handles edge cases, so shorter delays are sufficient
|
|
70
|
+
if (watchMode.active) {
|
|
71
|
+
const delay = watchMode.strictWatch ? 500 : 200; // 500ms for strict watch, 200ms for regular watch
|
|
72
|
+
await sleep(delay);
|
|
73
|
+
}
|
|
74
|
+
let lastError = null;
|
|
75
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
76
|
+
try {
|
|
77
|
+
const content = await readFile(filePath, 'utf-8');
|
|
78
|
+
// Try to parse as JSON to validate it's complete
|
|
79
|
+
// This catches cases where the file is partially written
|
|
80
|
+
JSON.parse(content);
|
|
81
|
+
return content;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
lastError = error instanceof Error ? error : new Error(String(error));
|
|
85
|
+
// If watch mode is active and this might be a race condition, retry
|
|
86
|
+
if (watchMode.active && attempt < maxRetries) {
|
|
87
|
+
// Exponential backoff: 100ms, 200ms, 400ms
|
|
88
|
+
const backoffDelay = 100 * Math.pow(2, attempt);
|
|
89
|
+
await sleep(backoffDelay);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
// If not watch mode or out of retries, throw immediately
|
|
93
|
+
throw lastError;
|
|
94
|
+
}
|
|
41
95
|
}
|
|
96
|
+
throw lastError || new Error('Failed to read file after retries');
|
|
42
97
|
}
|
|
43
98
|
export async function listBundles(input) {
|
|
44
99
|
let contextDir;
|
|
45
100
|
let snapshotId;
|
|
46
101
|
let projectPath;
|
|
47
102
|
let isWatchMode = false;
|
|
103
|
+
let watchStatus = { active: false };
|
|
48
104
|
// Determine context directory: either from snapshot or direct disk access
|
|
49
105
|
if (input.snapshotId) {
|
|
50
106
|
// Use snapshot-based access
|
|
@@ -58,11 +114,14 @@ export async function listBundles(input) {
|
|
|
58
114
|
contextDir = snapshot.contextDir;
|
|
59
115
|
snapshotId = input.snapshotId;
|
|
60
116
|
projectPath = snapshot.projectPath;
|
|
117
|
+
// Check watch mode even for snapshots (in case watch mode started after snapshot)
|
|
118
|
+
watchStatus = await checkWatchMode(projectPath);
|
|
119
|
+
isWatchMode = watchStatus.active;
|
|
61
120
|
}
|
|
62
121
|
else if (input.projectPath) {
|
|
63
122
|
// Direct disk access - check if watch mode is active or context files exist
|
|
64
123
|
projectPath = resolve(input.projectPath);
|
|
65
|
-
|
|
124
|
+
watchStatus = await checkWatchMode(projectPath);
|
|
66
125
|
const contextMainPath = join(projectPath, 'context_main.json');
|
|
67
126
|
const contextExists = await exists(contextMainPath);
|
|
68
127
|
if (!contextExists) {
|
|
@@ -71,12 +130,12 @@ export async function listBundles(input) {
|
|
|
71
130
|
`Either: (1) Start watch mode with 'stamp context --watch', or ` +
|
|
72
131
|
`(2) Call logicstamp_refresh_snapshot to generate context files first.`);
|
|
73
132
|
}
|
|
74
|
-
if (!
|
|
133
|
+
if (!watchStatus.active) {
|
|
75
134
|
// Context exists but watch mode is not active - warn but allow
|
|
76
135
|
// The context might be stale, but we'll allow access
|
|
77
136
|
}
|
|
78
137
|
contextDir = projectPath;
|
|
79
|
-
isWatchMode =
|
|
138
|
+
isWatchMode = watchStatus.active;
|
|
80
139
|
}
|
|
81
140
|
else {
|
|
82
141
|
throw new Error('Either snapshotId or projectPath is required. ' +
|
|
@@ -86,7 +145,8 @@ export async function listBundles(input) {
|
|
|
86
145
|
try {
|
|
87
146
|
// Read context_main.json to get folder information
|
|
88
147
|
const contextMainPath = join(contextDir, 'context_main.json');
|
|
89
|
-
|
|
148
|
+
// Use retry logic when watch mode is active to handle race conditions
|
|
149
|
+
const contextMainContent = await readFileWithRetry(contextMainPath, watchStatus);
|
|
90
150
|
const contextMain = JSON.parse(contextMainContent);
|
|
91
151
|
// Filter folders by prefix if specified
|
|
92
152
|
let folders = contextMain.folders;
|
|
@@ -98,7 +158,8 @@ export async function listBundles(input) {
|
|
|
98
158
|
for (const folder of folders) {
|
|
99
159
|
const contextPath = join(contextDir, folder.path, 'context.json');
|
|
100
160
|
try {
|
|
101
|
-
|
|
161
|
+
// Use retry logic when watch mode is active to handle race conditions
|
|
162
|
+
const contextContent = await readFileWithRetry(contextPath, watchStatus);
|
|
102
163
|
const bundleArray = JSON.parse(contextContent);
|
|
103
164
|
// Process each bundle in the folder
|
|
104
165
|
for (const bundle of bundleArray) {
|
|
@@ -133,6 +194,8 @@ export async function listBundles(input) {
|
|
|
133
194
|
}
|
|
134
195
|
if (isWatchMode) {
|
|
135
196
|
output.watchMode = true;
|
|
197
|
+
// Add warning to help AI assistants avoid unnecessary sleep() calls
|
|
198
|
+
output.warning = 'Watch mode is active - bundles are already fresh. Do not use sleep() delays before reading bundles.';
|
|
136
199
|
}
|
|
137
200
|
return output;
|
|
138
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-bundles.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"list-bundles.js","sourceRoot":"","sources":["../../../src/mcp/tools/list-bundles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAO/B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D;;GAEG;AACH,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,cAAc,CAAC,WAAmB;IAI/C,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,2BAA2B,CAAC,CAAC;IAEjF,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEnC,sCAAsC;QACtC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAChD,sBAAsB;YACtB,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YACD,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,IAAI;YAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,KAAK,IAAI;SACzC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAC9B,QAAgB,EAChB,SAAqD,EACrD,UAAU,GAAG,CAAC;IAEd,4EAA4E;IAC5E,yEAAyE;IACzE,6EAA6E;IAC7E,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,kDAAkD;QACnG,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,SAAS,GAAiB,IAAI,CAAC;IAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAElD,iDAAiD;YACjD,yDAAyD;YACzD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEpB,OAAO,OAAO,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAEtE,oEAAoE;YACpE,IAAI,SAAS,CAAC,MAAM,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBAC7C,2CAA2C;gBAC3C,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC1B,SAAS;YACX,CAAC;YAED,yDAAyD;YACzD,MAAM,SAAS,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,SAAS,IAAI,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB;IACvD,IAAI,UAAkB,CAAC;IACvB,IAAI,UAA8B,CAAC;IACnC,IAAI,WAAmB,CAAC;IACxB,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,IAAI,WAAW,GAA+C,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEhF,0EAA0E;IAC1E,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,4BAA4B;QAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE5D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CACb,uBAAuB,KAAK,CAAC,UAAU,IAAI;gBAC3C,sFAAsF;gBACtF,oGAAoG;gBACpG,kGAAkG,CACnG,CAAC;QACJ,CAAC;QAED,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACjC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QAC9B,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACnC,kFAAkF;QAClF,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;QAChD,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC;SAAM,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QAC7B,4EAA4E;QAC5E,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACzC,WAAW,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,EAAE,mBAAmB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAEpD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,kCAAkC,WAAW,IAAI;gBACjD,iDAAiD;gBACjD,gEAAgE;gBAChE,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;YACxB,+DAA+D;YAC/D,qDAAqD;QACvD,CAAC;QAED,UAAU,GAAG,WAAW,CAAC;QACzB,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC;IACnC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,gDAAgD;YAChD,mFAAmF;YACnF,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,mDAAmD;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;QAC9D,sEAAsE;QACtE,MAAM,kBAAkB,GAAG,MAAM,iBAAiB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAEnD,wCAAwC;QACxC,IAAI,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;QAClC,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAClC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAa,CAAC,CACvC,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAElE,IAAI,CAAC;gBACH,sEAAsE;gBACtE,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACzE,MAAM,WAAW,GAAuB,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAEnE,oCAAoC;gBACpC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;oBACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvC,IAAI,CAAC,QAAQ;wBAAE,SAAS;oBAExB,MAAM,aAAa,GAAG,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAE7D,OAAO,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,UAAU,aAAa,EAAE;wBAC7B,aAAa,EAAE,aAAa;wBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY;wBACxC,MAAM,EAAE,MAAM,CAAC,IAAI;wBACnB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;wBACjE,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,YAAY,EAAE,oBAAoB,CAAC,MAAM,CAAC;qBAC3C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,8CAA8C;gBAC9C,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAsB;YAChC,WAAW;YACX,YAAY,EAAE,OAAO,CAAC,MAAM;YAC5B,OAAO;SACR,CAAC;QAEF,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;QACjC,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;YACxB,oEAAoE;YACnE,MAAc,CAAC,OAAO,GAAG,qGAAqG,CAAC;QAClI,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,IAAI,KAAK,CACb,0BAA0B;YAC1B,UAAU,YAAY,IAAI;YAC1B,2CAA2C,UAAU,IAAI;YACzD,yFAAyF;YACzF,iEAAiE,CAClE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,MAAwB;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC1C,0CAA0C;IAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-bundle.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAGjB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"read-bundle.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAGjB,MAAM,wBAAwB,CAAC;AA0HhC,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+KlF"}
|