logicstamp-mcp 0.1.6 → 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 +55 -0
- package/README.md +51 -31
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +9 -3
- 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 +10 -2
- 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 +16 -5
- package/dist/mcp/tools/read-bundle.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 +27 -21
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,55 @@ 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
|
+
### Roadmap
|
|
13
|
+
|
|
14
|
+
For a comprehensive roadmap with detailed status, priorities, and implementation plans, see [ROADMAP.md](ROADMAP.md).
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## [0.2.0] - 2026-03-03
|
|
19
|
+
|
|
20
|
+
### ⚠️ Breaking Changes
|
|
21
|
+
|
|
22
|
+
- **Minimum Node.js version is now >= 20.**
|
|
23
|
+
- logicstamp-mcp now requires Node.js 20 or higher.
|
|
24
|
+
- This aligns MCP with the `logicstamp-context` CLI runtime requirements.
|
|
25
|
+
- Users on Node.js 18 must upgrade to continue using MCP.
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- **Enhanced Watch Mode Functionality and Documentation** ([#26](https://github.com/LogicStamp/logicstamp-mcp/pull/26)) - Improved watch mode detection and documentation clarity
|
|
30
|
+
- Improved descriptions in server tools to clarify the distinction between ROOT components and DEPENDENCIES
|
|
31
|
+
- Added cleanup of stale watch status files when the process is no longer running across multiple tools
|
|
32
|
+
- Updated watch status handling to include strict watch mode detection, enhancing user awareness of breaking change detection
|
|
33
|
+
- Enhanced tests to verify strict watch mode functionality and its reporting in various scenarios
|
|
34
|
+
- Updated schemas to reflect the new strict watch mode field in watch status outputs
|
|
35
|
+
|
|
36
|
+
- **Documentation Updates and Node.js Requirement** ([#27](https://github.com/LogicStamp/logicstamp-mcp/pull/27)) - Updated Node.js requirement and enhanced documentation clarity
|
|
37
|
+
- Updated Node.js version requirement to >= 20 across various documentation files for consistency
|
|
38
|
+
- Improved clarity in documentation regarding the distinction between ROOT components and DEPENDENCIES
|
|
39
|
+
- Enhanced descriptions in multiple guides to reflect the latest tool capabilities and usage patterns
|
|
40
|
+
- Adjusted default behavior notes for `skipIfWatchActive` in the `refresh_snapshot` command
|
|
41
|
+
|
|
42
|
+
- **Documentation Improvements** ([#28](https://github.com/LogicStamp/logicstamp-mcp/pull/28)) - Updated README and roadmap for clarity and consistency
|
|
43
|
+
- Revised Node.js version requirement to >= 20 across documentation
|
|
44
|
+
- Enhanced README with a new Table of Contents and improved descriptions for better navigation and understanding
|
|
45
|
+
- Updated roadmap with the correct last updated date format
|
|
46
|
+
- Adjusted various sections for clarity, including prerequisites and features, to reflect the latest tool capabilities
|
|
47
|
+
|
|
48
|
+
- **Test Coverage Improvements** ([#29](https://github.com/LogicStamp/logicstamp-mcp/pull/29)) - Enhanced test coverage for better code quality assurance
|
|
49
|
+
- Added comprehensive tests for watch mode detection and direct projectPath access in `list-bundles.ts` and `read-bundle.ts`
|
|
50
|
+
- Added tests for TypeScript file validation and LogicStampIndex type validation in `read-bundle.ts`
|
|
51
|
+
- Added tests for error paths in `read-logicstamp-docs.ts` including package root detection and fallback strategies
|
|
52
|
+
- Added tests for server parameter validation edge cases
|
|
53
|
+
- Improved branch coverage for error handling paths and edge cases
|
|
54
|
+
- All new tests passing with improved confidence in error handling and watch mode functionality
|
|
55
|
+
|
|
56
|
+
|
|
8
57
|
## [0.1.6] - 2026-02-09
|
|
9
58
|
|
|
10
59
|
### Changed
|
|
@@ -285,6 +334,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
285
334
|
- Requires `logicstamp-context` CLI to be installed globally (`npm install -g logicstamp-context`)
|
|
286
335
|
- All tools are read-only - they analyze but never modify your codebase
|
|
287
336
|
|
|
337
|
+
[Unreleased]: https://github.com/LogicStamp/logicstamp-mcp/compare/v0.2.0...HEAD
|
|
338
|
+
|
|
339
|
+
[0.2.0]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.2.0
|
|
340
|
+
|
|
341
|
+
[0.1.6]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.1.6
|
|
342
|
+
|
|
288
343
|
[0.1.5]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.1.5
|
|
289
344
|
|
|
290
345
|
[0.1.4]: https://github.com/LogicStamp/logicstamp-mcp/releases/tag/v0.1.4
|
package/README.md
CHANGED
|
@@ -14,15 +14,15 @@
|
|
|
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
|
|
|
@@ -34,6 +34,25 @@
|
|
|
34
34
|
|
|
35
35
|
---
|
|
36
36
|
|
|
37
|
+
<details>
|
|
38
|
+
<summary><strong>📑 Table of Contents</strong></summary>
|
|
39
|
+
|
|
40
|
+
- [Overview](#overview)
|
|
41
|
+
- [Features](#-features)
|
|
42
|
+
- [Prerequisites](#prerequisites)
|
|
43
|
+
- [Quick Start](#quick-start)
|
|
44
|
+
- [Usage Example](#usage-example)
|
|
45
|
+
- [Tool Reference](#tool-reference)
|
|
46
|
+
- [Startup Ritual](#startup-ritual)
|
|
47
|
+
- [Documentation](#documentation)
|
|
48
|
+
- [Troubleshooting](#troubleshooting)
|
|
49
|
+
- [Development](#development)
|
|
50
|
+
- [Architecture](#architecture)
|
|
51
|
+
- [Requirements](#requirements)
|
|
52
|
+
- [Need Help?](#need-help)
|
|
53
|
+
- [License](#license)
|
|
54
|
+
</details>
|
|
55
|
+
|
|
37
56
|
## Overview
|
|
38
57
|
|
|
39
58
|
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 +64,7 @@ This MCP server provides AI assistants with structured access to your codebase t
|
|
|
45
64
|
- **Drift detection** - Verify changes after modifications
|
|
46
65
|
- **Token optimization** - Control context size with configurable code inclusion modes
|
|
47
66
|
|
|
48
|
-
## Features
|
|
67
|
+
## ⚡ Features
|
|
49
68
|
|
|
50
69
|
### 7 Tools
|
|
51
70
|
|
|
@@ -67,7 +86,7 @@ This MCP server provides AI assistants with structured access to your codebase t
|
|
|
67
86
|
|
|
68
87
|
## Prerequisites
|
|
69
88
|
|
|
70
|
-
1. **Node.js** >=
|
|
89
|
+
1. **Node.js** >= 20
|
|
71
90
|
2. **LogicStamp Context CLI** - The `stamp` command must be installed and available in PATH
|
|
72
91
|
```bash
|
|
73
92
|
npm install -g logicstamp-context
|
|
@@ -138,7 +157,8 @@ For more examples and workflows, see [Usage Examples](docs/mcp_integration.md#ll
|
|
|
138
157
|
|
|
139
158
|
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
159
|
|
|
141
|
-
|
|
160
|
+
<details>
|
|
161
|
+
<summary><strong>📋 Quick Reference</strong></summary>
|
|
142
162
|
|
|
143
163
|
**logicstamp_refresh_snapshot** - Create a snapshot of the current codebase state (STEP 1)
|
|
144
164
|
- Parameters: `profile` (optional), `mode` (optional), `includeStyle` (optional), `depth` (optional), `projectPath` (required), `cleanCache` (optional), `skipIfWatchActive` (optional)
|
|
@@ -188,6 +208,8 @@ The MCP server provides 7 tools. For complete API documentation with input/outpu
|
|
|
188
208
|
- **Use this** to check if `stamp context --watch` is running before calling refresh_snapshot
|
|
189
209
|
- **When watch mode is active:** Context is being kept fresh automatically via incremental rebuilds - you can skip regeneration and just read existing bundles
|
|
190
210
|
|
|
211
|
+
</details>
|
|
212
|
+
|
|
191
213
|
## Startup Ritual
|
|
192
214
|
|
|
193
215
|
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 +309,7 @@ When running manually, the server will wait for stdin input. Press `Ctrl+C` to e
|
|
|
287
309
|
npm run dev
|
|
288
310
|
```
|
|
289
311
|
|
|
290
|
-
For development details, see [MCP Integration Guide](docs/mcp_integration.md)
|
|
312
|
+
For development details, see [MCP Integration Guide](docs/mcp_integration.md).
|
|
291
313
|
|
|
292
314
|
## Architecture
|
|
293
315
|
|
|
@@ -302,39 +324,37 @@ For detailed architecture documentation, see [MCP Integration Guide](docs/mcp_in
|
|
|
302
324
|
|
|
303
325
|
## Requirements
|
|
304
326
|
|
|
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
|
|
309
|
-
|
|
310
|
-
## License
|
|
311
|
-
|
|
312
|
-
[MIT](LICENSE)
|
|
313
|
-
|
|
314
|
-
## Branding & Attribution
|
|
327
|
+
The LogicStamp MCP server requires:
|
|
315
328
|
|
|
316
|
-
|
|
329
|
+
- Node.js >= 20
|
|
330
|
+
- TypeScript codebase (React, Next.js, Vue (TS/TSX), Express, or NestJS)
|
|
331
|
+
- **`stamp context` command** - Must be installed and available in PATH:
|
|
332
|
+
- The CLI generates `context_main.json` files
|
|
333
|
+
- The MCP server reads these JSON files directly (no special flags required)
|
|
317
334
|
|
|
318
|
-
|
|
335
|
+
## Need Help?
|
|
319
336
|
|
|
320
|
-
|
|
337
|
+
- **Issues** - [github.com/LogicStamp/logicstamp-mcp/issues](https://github.com/LogicStamp/logicstamp-mcp/issues)
|
|
338
|
+
- **Roadmap** - [logicstamp.dev/roadmap](https://logicstamp.dev/roadmap)
|
|
321
339
|
|
|
322
|
-
|
|
340
|
+
## License
|
|
323
341
|
|
|
324
|
-
|
|
342
|
+
[MIT](LICENSE)
|
|
325
343
|
|
|
326
|
-
|
|
344
|
+
---
|
|
327
345
|
|
|
328
|
-
|
|
346
|
+
<details>
|
|
347
|
+
<summary>Branding & Attribution</summary>
|
|
329
348
|
|
|
330
|
-
|
|
349
|
+
The LogicStamp Fox mascot and related brand assets are © 2025 Amit Levi. These assets may not be used for third-party branding without permission.
|
|
350
|
+
</details>
|
|
331
351
|
|
|
332
|
-
|
|
352
|
+
<details>
|
|
353
|
+
<summary>Contributing</summary>
|
|
333
354
|
|
|
334
|
-
See [
|
|
355
|
+
Issues and PRs welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
335
356
|
|
|
336
|
-
|
|
357
|
+
This project follows a [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
358
|
+
</details>
|
|
337
359
|
|
|
338
|
-
|
|
339
|
-
- [LogicStamp Context](https://github.com/LogicStamp/logicstamp-context) - CLI repository
|
|
340
|
-
- [Model Context Protocol](https://modelcontextprotocol.io/) - MCP specification
|
|
360
|
+
**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,CA8YrC;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CASjD"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -87,7 +87,9 @@ export function createServer() {
|
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
name: 'logicstamp_list_bundles',
|
|
90
|
-
description: 'Lists all bundles from context_main.json. Returns bundle catalog (component names, file paths, bundle paths, token estimates). ' +
|
|
90
|
+
description: 'Lists all ROOT bundles from context_main.json. Returns bundle catalog (component names, file paths, bundle paths, token estimates). ' +
|
|
91
|
+
'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). ' +
|
|
92
|
+
'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
93
|
'Use bundle paths in read_bundle to get component contracts. ' +
|
|
92
94
|
'Watch mode: Use projectPath directly (no snapshotId needed). Filter: folderPrefix="src/components" to filter by directory. ' +
|
|
93
95
|
'Next: read_bundle(snapshotId|projectPath, bundlePath).',
|
|
@@ -113,7 +115,9 @@ export function createServer() {
|
|
|
113
115
|
name: 'logicstamp_read_bundle',
|
|
114
116
|
description: 'Reads bundle/index file to get component contracts and dependency graphs. Reads context_main.json (project overview) or folder context.json (component contracts). ' +
|
|
115
117
|
'These are pre-parsed summaries optimized for AI - PREFER over raw .ts/.tsx files. ' +
|
|
116
|
-
'
|
|
118
|
+
'ROOT vs DEPENDENCY: Root components have their own bundles (use rootComponent param). Dependencies appear in bundle.graph.nodes[] of the root that imports them. ' +
|
|
119
|
+
'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. ' +
|
|
120
|
+
'Bundle contains: entryId, graph.nodes[] (UIFContract for root + dependencies), graph.edges[] (dependencies), meta.missing[] (unresolved). ' +
|
|
117
121
|
'UIFContract: kind, description, props, emits, state, exports, semanticHash, optional style metadata. ' +
|
|
118
122
|
'Watch mode: Use projectPath directly (no snapshotId needed). Use bundlePath="context_main.json" for overview, or folder paths from list_bundles for details.',
|
|
119
123
|
inputSchema: {
|
|
@@ -133,7 +137,7 @@ export function createServer() {
|
|
|
133
137
|
},
|
|
134
138
|
rootComponent: {
|
|
135
139
|
type: 'string',
|
|
136
|
-
description: 'Specific
|
|
140
|
+
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
141
|
},
|
|
138
142
|
},
|
|
139
143
|
required: ['bundlePath'],
|
|
@@ -236,6 +240,8 @@ export function createServer() {
|
|
|
236
240
|
'If INACTIVE: Call refresh_snapshot first. Enables zero-cost instant context access when watch mode running. ' +
|
|
237
241
|
'Reads .logicstamp/context_watch-status.json and verifies process is running. ' +
|
|
238
242
|
'Watch features: Incremental rebuilds (affected bundles only), change detection (props/hooks/state/components), debouncing (500ms), optional log file. ' +
|
|
243
|
+
'Strict watch mode (`stamp context --watch --strict-watch`): Also detects breaking changes. Returns strictWatch=true when enabled. ' +
|
|
244
|
+
'Detection: Reads strictWatch field from .logicstamp/context_watch-status.json file (when LogicStamp CLI includes it). ' +
|
|
239
245
|
'Set includeRecentLogs=true to see recent regeneration events.',
|
|
240
246
|
inputSchema: {
|
|
241
247
|
type: 'object',
|
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;AAgDhC,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA+HrF"}
|
|
@@ -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,7 +20,8 @@ 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.
|
|
24
25
|
*/
|
|
25
26
|
async function checkWatchMode(projectPath) {
|
|
26
27
|
const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
|
|
@@ -32,6 +33,13 @@ async function checkWatchMode(projectPath) {
|
|
|
32
33
|
const status = JSON.parse(content);
|
|
33
34
|
// Verify the process is still running
|
|
34
35
|
if (status.pid && !isProcessRunning(status.pid)) {
|
|
36
|
+
// Clean up stale file
|
|
37
|
+
try {
|
|
38
|
+
await unlink(statusPath);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Ignore cleanup errors
|
|
42
|
+
}
|
|
35
43
|
return false;
|
|
36
44
|
}
|
|
37
45
|
return status.active === true;
|
|
@@ -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":"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"}
|
|
@@ -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;AAgDhC,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwKlF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tool 3: logicstamp_read_bundle
|
|
3
3
|
* Return the full bundle (contract + graph) for a specific component
|
|
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,7 +20,8 @@ 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.
|
|
24
25
|
*/
|
|
25
26
|
async function checkWatchMode(projectPath) {
|
|
26
27
|
const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
|
|
@@ -32,6 +33,13 @@ async function checkWatchMode(projectPath) {
|
|
|
32
33
|
const status = JSON.parse(content);
|
|
33
34
|
// Verify the process is still running
|
|
34
35
|
if (status.pid && !isProcessRunning(status.pid)) {
|
|
36
|
+
// Clean up stale file
|
|
37
|
+
try {
|
|
38
|
+
await unlink(statusPath);
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
// Ignore cleanup errors
|
|
42
|
+
}
|
|
35
43
|
return false;
|
|
36
44
|
}
|
|
37
45
|
return status.active === true;
|
|
@@ -132,9 +140,12 @@ export async function readBundle(input) {
|
|
|
132
140
|
});
|
|
133
141
|
if (!found) {
|
|
134
142
|
throw new Error(`Bundle not found for component "${input.rootComponent}" in ${input.bundlePath}. ` +
|
|
135
|
-
`
|
|
136
|
-
`
|
|
137
|
-
`
|
|
143
|
+
`IMPORTANT: LogicStamp organizes components into ROOT components (have their own bundles) and DEPENDENCIES (included in importing root's bundle). ` +
|
|
144
|
+
`If "${input.rootComponent}" is not listed in logicstamp_list_bundles output, it's likely a DEPENDENCY, not a root component. ` +
|
|
145
|
+
`To find a dependency: (1) Use logicstamp_list_bundles to see all root components, ` +
|
|
146
|
+
`(2) Read bundles that might import "${input.rootComponent}" (check bundle.graph.nodes[] for dependency contracts), ` +
|
|
147
|
+
`or (3) Search source code to find which root component imports "${input.rootComponent}". ` +
|
|
148
|
+
`Dependencies appear in bundle.graph.nodes[] of the root component that imports them, not as separate root bundles.`);
|
|
138
149
|
}
|
|
139
150
|
targetBundle = found;
|
|
140
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-bundle.js","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"read-bundle.js","sourceRoot":"","sources":["../../../src/mcp/tools/read-bundle.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-snapshot.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/refresh-snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAmB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"refresh-snapshot.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/refresh-snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,qBAAqB,EAAmB,MAAM,wBAAwB,CAAC;AAkI3G,wBAAsB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+PjG"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tool 1: logicstamp_refresh_snapshot
|
|
3
3
|
* Run `stamp context` and create a snapshot before edits
|
|
4
4
|
*/
|
|
5
|
-
import { readFile, rm, access } from 'fs/promises';
|
|
5
|
+
import { readFile, rm, 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';
|
|
@@ -21,8 +21,9 @@ async function exists(path) {
|
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
|
-
* Check if watch mode is active for the project
|
|
25
|
-
* Returns watch status info if active, null otherwise
|
|
24
|
+
* Check if watch mode is active for the project.
|
|
25
|
+
* Returns watch status info if active, null otherwise.
|
|
26
|
+
* Cleans up stale status files when the process is no longer running.
|
|
26
27
|
*/
|
|
27
28
|
async function checkWatchMode(projectPath) {
|
|
28
29
|
const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
|
|
@@ -34,13 +35,20 @@ async function checkWatchMode(projectPath) {
|
|
|
34
35
|
const status = JSON.parse(content);
|
|
35
36
|
// Verify the process is still running
|
|
36
37
|
if (status.pid && !isProcessRunning(status.pid)) {
|
|
37
|
-
// Status file exists but process is dead - stale
|
|
38
|
+
// Status file exists but process is dead - clean up stale file
|
|
39
|
+
try {
|
|
40
|
+
await unlink(statusPath);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
// Ignore cleanup errors
|
|
44
|
+
}
|
|
38
45
|
return null;
|
|
39
46
|
}
|
|
40
47
|
return {
|
|
41
48
|
active: status.active === true,
|
|
42
49
|
pid: status.pid,
|
|
43
50
|
startedAt: status.startedAt,
|
|
51
|
+
strictWatch: status.strictWatch === true, // Read from status file, undefined if not present
|
|
44
52
|
};
|
|
45
53
|
}
|
|
46
54
|
catch {
|
|
@@ -192,9 +200,12 @@ export async function refreshSnapshot(input) {
|
|
|
192
200
|
folders: contextMain.folders,
|
|
193
201
|
watchMode: {
|
|
194
202
|
active: true,
|
|
195
|
-
message:
|
|
203
|
+
message: watchStatus.strictWatch
|
|
204
|
+
? 'Watch mode is ACTIVE with STRICT WATCH enabled - skipped regeneration. Context files are being kept fresh automatically via incremental rebuilds with breaking change detection. Using existing context_main.json.'
|
|
205
|
+
: 'Watch mode is ACTIVE - skipped regeneration. Context files are being kept fresh automatically via incremental rebuilds. Using existing context_main.json.',
|
|
196
206
|
pid: watchStatus.pid,
|
|
197
207
|
startedAt: watchStatus.startedAt,
|
|
208
|
+
strictWatch: watchStatus.strictWatch,
|
|
198
209
|
},
|
|
199
210
|
};
|
|
200
211
|
return output;
|
|
@@ -306,9 +317,12 @@ export async function refreshSnapshot(input) {
|
|
|
306
317
|
if (watchStatus?.active) {
|
|
307
318
|
output.watchMode = {
|
|
308
319
|
active: true,
|
|
309
|
-
message:
|
|
320
|
+
message: watchStatus.strictWatch
|
|
321
|
+
? 'Watch mode is ACTIVE with STRICT WATCH enabled. Context bundles are being kept fresh automatically via incremental rebuilds with breaking change detection. Future refresh_snapshot calls may be unnecessary - the context files are already up-to-date.'
|
|
322
|
+
: 'Watch mode is ACTIVE. Context bundles are being kept fresh automatically via incremental rebuilds. Future refresh_snapshot calls may be unnecessary - the context files are already up-to-date.',
|
|
310
323
|
pid: watchStatus.pid,
|
|
311
324
|
startedAt: watchStatus.startedAt,
|
|
325
|
+
strictWatch: watchStatus.strictWatch,
|
|
312
326
|
};
|
|
313
327
|
}
|
|
314
328
|
return output;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refresh-snapshot.js","sourceRoot":"","sources":["../../../src/mcp/tools/refresh-snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"refresh-snapshot.js","sourceRoot":"","sources":["../../../src/mcp/tools/refresh-snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-status.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/watch-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-status.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/watch-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAA8B,MAAM,wBAAwB,CAAC;AAiF9G,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6CrF"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Tool: logicstamp_watch_status
|
|
3
3
|
* Check if watch mode is active and get status information
|
|
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 { isProcessRunning } from '../utils/process-utils.js';
|
|
@@ -19,7 +19,8 @@ async function exists(path) {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
* Read and parse the watch status file
|
|
22
|
+
* Read and parse the watch status file.
|
|
23
|
+
* Validates that the PID is still running and cleans up stale files.
|
|
23
24
|
*/
|
|
24
25
|
async function readWatchStatus(projectPath) {
|
|
25
26
|
const statusPath = join(projectPath, '.logicstamp', 'context_watch-status.json');
|
|
@@ -31,7 +32,13 @@ async function readWatchStatus(projectPath) {
|
|
|
31
32
|
const status = JSON.parse(content);
|
|
32
33
|
// Verify the process is still running
|
|
33
34
|
if (status.pid && !isProcessRunning(status.pid)) {
|
|
34
|
-
// Status file exists but process is dead - stale
|
|
35
|
+
// Status file exists but process is dead - clean up stale file
|
|
36
|
+
try {
|
|
37
|
+
await unlink(statusPath);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// Ignore cleanup errors
|
|
41
|
+
}
|
|
35
42
|
return null;
|
|
36
43
|
}
|
|
37
44
|
return status;
|
|
@@ -82,16 +89,23 @@ export async function watchStatus(input) {
|
|
|
82
89
|
// Read watch status
|
|
83
90
|
const status = await readWatchStatus(projectPath);
|
|
84
91
|
const watchModeActive = status !== null && status.active === true;
|
|
92
|
+
// strictWatch is read from the watch status file (.logicstamp/context_watch-status.json)
|
|
93
|
+
const strictWatch = watchModeActive && status?.strictWatch === true;
|
|
85
94
|
// Build output
|
|
86
95
|
const output = {
|
|
87
96
|
projectPath,
|
|
88
97
|
watchModeActive,
|
|
89
98
|
message: watchModeActive
|
|
90
|
-
?
|
|
91
|
-
|
|
99
|
+
? strictWatch
|
|
100
|
+
? `Watch mode is ACTIVE with STRICT WATCH enabled (PID: ${status.pid}, started: ${status.startedAt}). Context bundles are being kept fresh automatically with breaking change detection. You can skip calling refresh_snapshot - just use list_bundles and read_bundle with the existing context files.`
|
|
101
|
+
: `Watch mode is ACTIVE (PID: ${status.pid}, started: ${status.startedAt}). Context bundles are being kept fresh automatically. You can skip calling refresh_snapshot - just use list_bundles and read_bundle with the existing context files.`
|
|
102
|
+
: 'Watch mode is NOT active. Context files may be stale. Consider running refresh_snapshot or starting watch mode with `stamp context --watch` (or `stamp context --watch --strict-watch` for breaking change detection).',
|
|
92
103
|
};
|
|
93
104
|
if (watchModeActive && status) {
|
|
94
105
|
output.status = status;
|
|
106
|
+
if (strictWatch) {
|
|
107
|
+
output.strictWatch = true;
|
|
108
|
+
}
|
|
95
109
|
}
|
|
96
110
|
// Include recent logs if requested
|
|
97
111
|
if (includeRecentLogs) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/watch-status.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-status.js","sourceRoot":"","sources":["../../../src/mcp/tools/watch-status.ts"],"names":[],"mappings":"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"}
|
package/dist/types/schemas.d.ts
CHANGED
|
@@ -90,6 +90,7 @@ export interface RefreshSnapshotOutput {
|
|
|
90
90
|
message: string;
|
|
91
91
|
pid?: number;
|
|
92
92
|
startedAt?: string;
|
|
93
|
+
strictWatch?: boolean;
|
|
93
94
|
};
|
|
94
95
|
}
|
|
95
96
|
export interface FolderMetadata {
|
|
@@ -262,6 +263,7 @@ export interface WatchStatus {
|
|
|
262
263
|
pid: number;
|
|
263
264
|
startedAt: string;
|
|
264
265
|
outputDir: string;
|
|
266
|
+
strictWatch?: boolean;
|
|
265
267
|
}
|
|
266
268
|
/**
|
|
267
269
|
* Watch mode log entry structure (.logicstamp/context_watch-mode-logs.json)
|
|
@@ -295,6 +297,7 @@ export interface WatchStatusInput {
|
|
|
295
297
|
export interface WatchStatusOutput {
|
|
296
298
|
projectPath: string;
|
|
297
299
|
watchModeActive: boolean;
|
|
300
|
+
strictWatch?: boolean;
|
|
298
301
|
status?: WatchStatus;
|
|
299
302
|
recentLogs?: WatchLogEntry[];
|
|
300
303
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/types/schemas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/types/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
> - **MCP Tool (`logicstamp_read_logicstamp_docs`)**: Reads from the installed package and is the authoritative source for current capabilities
|
|
10
10
|
> - **This Repo File**: May be outdated or out of sync with the published package
|
|
11
11
|
>
|
|
12
|
-
> The MCP tool embeds this documentation in the published package (v0.1.
|
|
12
|
+
> The MCP tool embeds this documentation in the published package (v0.1.6+), ensuring it matches the tool's actual capabilities. If you notice discrepancies between this file and the MCP tool output, the MCP tool is correct.
|
|
13
13
|
>
|
|
14
14
|
> **Best Practice**: Always use `logicstamp_read_logicstamp_docs` when you need accurate, up-to-date documentation about LogicStamp capabilities.
|
|
15
15
|
|
|
@@ -133,18 +133,21 @@ refresh_snapshot({ projectPath: "...", skipIfWatchActive: true })
|
|
|
133
133
|
- This scans the project and generates all context files
|
|
134
134
|
- Creates `context_main.json` (the main index) and `context/*.context.json` files (per-folder bundles)
|
|
135
135
|
- Returns a `snapshotId` you'll use for subsequent calls
|
|
136
|
-
- **Default:** The default depth=2 includes nested components (e.g., App → Hero → Button), ensuring you see the full component tree with contracts and styles for all nested components. This is recommended for most
|
|
136
|
+
- **Default:** The default depth=2 includes nested components (e.g., App → Hero → Button), ensuring you see the full component tree with contracts and styles for all nested components. This is recommended for most TypeScript projects with component hierarchies.
|
|
137
137
|
- **Example:** `{ "projectPath": "...", "skipIfWatchActive": true }` - Uses default depth=2, skips regeneration if watch mode is active. Set `depth: 1` if you only need direct dependencies (e.g., App → Hero but not Hero → Button).
|
|
138
138
|
|
|
139
139
|
2. **Discover bundles with `logicstamp_list_bundles`**
|
|
140
|
-
- Lists all
|
|
140
|
+
- Lists all ROOT bundles with their locations
|
|
141
141
|
- Shows component names, file paths, bundle paths, token estimates
|
|
142
|
+
- ⚠️ **IMPORTANT**: Only lists ROOT components (components with their own bundles)
|
|
143
|
+
- Dependencies are NOT listed here - they appear in `bundle.graph.nodes[]` of the root that imports them
|
|
142
144
|
- Use `folderPrefix` to filter by directory if needed
|
|
143
145
|
|
|
144
146
|
3. **Read bundles with `logicstamp_read_bundle`**
|
|
145
147
|
- This is where the valuable data is
|
|
146
148
|
- Pass the `bundlePath` from `list_bundles` output
|
|
147
149
|
- Returns complete component contracts with dependency graphs
|
|
150
|
+
- **Finding dependencies**: If a component isn't in `list_bundles`, it's a dependency. Read bundles that might import it and check `bundle.graph.nodes[]` for the dependency contract
|
|
148
151
|
|
|
149
152
|
4. **Only then read raw files** (if needed)
|
|
150
153
|
- Use bundles first to understand structure
|
|
@@ -288,37 +291,40 @@ refresh_snapshot({ projectPath: "...", depth: 1 })
|
|
|
288
291
|
4. Analyze contract.props, contract.logicSignature, contract.graph
|
|
289
292
|
```
|
|
290
293
|
|
|
291
|
-
### Finding Components: Root vs Dependencies
|
|
294
|
+
### ⚠️ Finding Components: Root vs Dependencies (CRITICAL CONCEPT)
|
|
292
295
|
|
|
293
|
-
LogicStamp organizes components into two categories
|
|
296
|
+
**LogicStamp organizes components into two categories:**
|
|
294
297
|
|
|
295
|
-
- **Root components** - Components that have their own bundles (listed in `context_main.json` under each folder's `components` array). These are entry points that other components import.
|
|
296
|
-
- **Dependencies** - Components that are imported by root components. They appear in the importing component's bundle as nodes in `graph.nodes[]`,
|
|
298
|
+
- **Root components** - Components that have their own bundles (listed in `logicstamp_list_bundles` output and in `context_main.json` under each folder's `components` array). These are entry points that other components import.
|
|
299
|
+
- **Dependencies** - Components that are imported by root components. They appear in the importing component's bundle as nodes in `bundle.graph.nodes[]`, **NOT** as separate root bundles and **NOT** listed in `list_bundles`.
|
|
297
300
|
|
|
298
|
-
|
|
301
|
+
**🔍 Workflow for finding a component:**
|
|
299
302
|
|
|
300
|
-
1. **
|
|
301
|
-
2. **If
|
|
302
|
-
-
|
|
303
|
-
-
|
|
304
|
-
|
|
303
|
+
1. **First, call `logicstamp_list_bundles`** - Check if the component is listed. If found, it's a root component with its own bundle.
|
|
304
|
+
2. **If NOT found in `list_bundles`** - The component is a dependency. To find it:
|
|
305
|
+
- **Option A**: Read bundles that might import it (check `bundle.graph.nodes[]` for the dependency contract)
|
|
306
|
+
- **Option B**: Search source code to find which root component imports it, then read that root's bundle
|
|
307
|
+
- **Option C**: Check bundles in the same folder (dependencies are typically in the same folder as their importing component)
|
|
308
|
+
3. **Read the importing root's bundle** - The dependency's contract will be in `bundle.graph.nodes[]` of that bundle (not as the root node).
|
|
305
309
|
|
|
306
|
-
|
|
310
|
+
**📝 Example:**
|
|
307
311
|
|
|
308
312
|
```
|
|
309
|
-
|
|
310
|
-
→
|
|
311
|
-
|
|
312
|
-
|
|
313
|
+
Looking for CopyButton component:
|
|
314
|
+
1. Call logicstamp_list_bundles → CopyButton NOT in the list
|
|
315
|
+
2. CopyButton is a dependency, not a root
|
|
316
|
+
3. Find which root imports it: TabbedInstallation imports CopyButton
|
|
317
|
+
4. Read TabbedInstallation's bundle: read_bundle(bundlePath, rootComponent: "TabbedInstallation")
|
|
318
|
+
5. Check bundle.graph.nodes[] → CopyButton contract is there as a dependency node
|
|
313
319
|
```
|
|
314
320
|
|
|
315
321
|
**Why this matters:**
|
|
316
322
|
|
|
317
|
-
- Root components = own bundles (e.g., `Features.tsx`, `Stats.tsx
|
|
318
|
-
- Dependencies =
|
|
323
|
+
- **Root components** = Have their own bundles, listed in `list_bundles` (e.g., `Features.tsx`, `Stats.tsx`, `TabbedInstallation.tsx`)
|
|
324
|
+
- **Dependencies** = Included in importing root component's bundle graph (e.g., `CopyButton.tsx` appears in `TabbedInstallation.tsx` bundle's `graph.nodes[]`)
|
|
319
325
|
- This structure matches how developers think: pages/features are entry points, their dependencies are included automatically
|
|
320
326
|
|
|
321
|
-
|
|
327
|
+
**🚨 Common mistake:** Looking for a component as a root when it's actually a dependency. Always check `logicstamp_list_bundles` first - if it's not there, it's a dependency and you need to find which root imports it.
|
|
322
328
|
|
|
323
329
|
### Finding Dependencies
|
|
324
330
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "logicstamp-mcp",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "MCP server for LogicStamp
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "MCP server for LogicStamp - exposes deterministic architectural context for AI workflows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"typescript": "^5.7.2"
|
|
70
70
|
},
|
|
71
71
|
"engines": {
|
|
72
|
-
"node": ">=
|
|
72
|
+
"node": ">=20"
|
|
73
73
|
},
|
|
74
74
|
"publishConfig": {
|
|
75
75
|
"access": "public"
|