@layoutdesign/context 0.6.0 → 0.10.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/README.md +71 -0
- package/dist/bin/cli.js +8 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/cli/install.d.ts +1 -0
- package/dist/src/cli/install.d.ts.map +1 -1
- package/dist/src/cli/install.js +25 -0
- package/dist/src/cli/install.js.map +1 -1
- package/dist/src/cli/live-notify.d.ts +2 -0
- package/dist/src/cli/live-notify.d.ts.map +1 -0
- package/dist/src/cli/live-notify.js +29 -0
- package/dist/src/cli/live-notify.js.map +1 -0
- package/dist/src/install/live.d.ts +5 -0
- package/dist/src/install/live.d.ts.map +1 -0
- package/dist/src/install/live.js +285 -0
- package/dist/src/install/live.js.map +1 -0
- package/dist/src/mcp/live-lock-store.d.ts +40 -0
- package/dist/src/mcp/live-lock-store.d.ts.map +1 -0
- package/dist/src/mcp/live-lock-store.js +134 -0
- package/dist/src/mcp/live-lock-store.js.map +1 -0
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +11 -0
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/_live-socket.d.ts +23 -0
- package/dist/src/mcp/tools/_live-socket.d.ts.map +1 -0
- package/dist/src/mcp/tools/_live-socket.js +135 -0
- package/dist/src/mcp/tools/_live-socket.js.map +1 -0
- package/dist/src/mcp/tools/check-setup.d.ts +14 -1
- package/dist/src/mcp/tools/check-setup.d.ts.map +1 -1
- package/dist/src/mcp/tools/check-setup.js +75 -1
- package/dist/src/mcp/tools/check-setup.js.map +1 -1
- package/dist/src/mcp/tools/get-recent-visual-edits.d.ts +40 -0
- package/dist/src/mcp/tools/get-recent-visual-edits.d.ts.map +1 -0
- package/dist/src/mcp/tools/get-recent-visual-edits.js +106 -0
- package/dist/src/mcp/tools/get-recent-visual-edits.js.map +1 -0
- package/dist/src/mcp/tools/get-selected-element.d.ts +10 -0
- package/dist/src/mcp/tools/get-selected-element.d.ts.map +1 -0
- package/dist/src/mcp/tools/get-selected-element.js +46 -0
- package/dist/src/mcp/tools/get-selected-element.js.map +1 -0
- package/dist/src/mcp/tools/lock-file.d.ts +28 -0
- package/dist/src/mcp/tools/lock-file.d.ts.map +1 -0
- package/dist/src/mcp/tools/lock-file.js +42 -0
- package/dist/src/mcp/tools/lock-file.js.map +1 -0
- package/dist/src/mcp/tools/unlock-file.d.ts +23 -0
- package/dist/src/mcp/tools/unlock-file.d.ts.map +1 -0
- package/dist/src/mcp/tools/unlock-file.js +23 -0
- package/dist/src/mcp/tools/unlock-file.js.map +1 -0
- package/dist/src/plugins/next/babel-loader.d.ts +8 -0
- package/dist/src/plugins/next/babel-loader.d.ts.map +1 -0
- package/dist/src/plugins/next/babel-loader.js +26 -0
- package/dist/src/plugins/next/babel-loader.js.map +1 -0
- package/dist/src/plugins/next/index.d.ts +23 -0
- package/dist/src/plugins/next/index.d.ts.map +1 -0
- package/dist/src/plugins/next/index.js +58 -0
- package/dist/src/plugins/next/index.js.map +1 -0
- package/dist/src/plugins/transform.d.ts +19 -0
- package/dist/src/plugins/transform.d.ts.map +1 -0
- package/dist/src/plugins/transform.js +177 -0
- package/dist/src/plugins/transform.js.map +1 -0
- package/dist/src/plugins/vite/index.d.ts +24 -0
- package/dist/src/plugins/vite/index.d.ts.map +1 -0
- package/dist/src/plugins/vite/index.js +56 -0
- package/dist/src/plugins/vite/index.js.map +1 -0
- package/package.json +31 -9
package/README.md
CHANGED
|
@@ -55,6 +55,77 @@ Eleven tools are registered with the MCP server automatically.
|
|
|
55
55
|
|
|
56
56
|
---
|
|
57
57
|
|
|
58
|
+
## Live integration (preview)
|
|
59
|
+
|
|
60
|
+
> Added in v0.7.0. Pairs with the **layout Live** desktop app.
|
|
61
|
+
|
|
62
|
+
When the [layout Live](https://layout.design) desktop app is running, four
|
|
63
|
+
extra MCP tools give your AI coding agent context on what you're doing
|
|
64
|
+
visually:
|
|
65
|
+
|
|
66
|
+
| Tool | Description |
|
|
67
|
+
|------|-------------|
|
|
68
|
+
| `get-selected-element` | Returns the element currently selected in Live. Use when the user says "this" or "that one". Returns `{ running: false }` if Live isn't running. |
|
|
69
|
+
| `get-recent-visual-edits` | Recent class/token/inline-style edits. Reads Live's socket when running; falls back to the on-disk `.layout/live/recent-edits.json` log otherwise — so it's useful even when Live is closed. |
|
|
70
|
+
| `lock-file` | Reserves exclusive write access to a file before editing, so Claude and Live don't clobber each other. |
|
|
71
|
+
| `unlock-file` | Releases a previously-acquired lock. |
|
|
72
|
+
|
|
73
|
+
These tools register unconditionally and degrade gracefully: if Live isn't
|
|
74
|
+
running they return cleanly-typed "not running" responses rather than errors.
|
|
75
|
+
File locks are coordinated atomically via `.layout/live/locks.json`
|
|
76
|
+
(gitignore it in your project). `check-setup` also reports Live's status under
|
|
77
|
+
a new `live` field. Live communicates over a local Unix socket — nothing is
|
|
78
|
+
sent over the network.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Build plugins (preview)
|
|
83
|
+
|
|
84
|
+
> Added in v0.8.0. Power layout Live's click-to-source resolution.
|
|
85
|
+
|
|
86
|
+
Two zero-config build plugins inject `data-layout-source-*` attributes into
|
|
87
|
+
your JSX **in dev only** (no-ops in production), so layout Live can map any
|
|
88
|
+
clicked DOM element straight back to its source file, line, and component.
|
|
89
|
+
They ship as sub-exports — no extra `npm install`.
|
|
90
|
+
|
|
91
|
+
**Vite:**
|
|
92
|
+
|
|
93
|
+
```ts
|
|
94
|
+
// vite.config.ts
|
|
95
|
+
import { defineConfig } from "vite";
|
|
96
|
+
import react from "@vitejs/plugin-react";
|
|
97
|
+
import layout from "@layoutdesign/context/vite-plugin";
|
|
98
|
+
|
|
99
|
+
export default defineConfig({
|
|
100
|
+
plugins: [layout(), react()], // layout() must come before react()
|
|
101
|
+
});
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Next.js:**
|
|
105
|
+
|
|
106
|
+
```ts
|
|
107
|
+
// next.config.ts
|
|
108
|
+
import withLayout from "@layoutdesign/context/next-plugin";
|
|
109
|
+
|
|
110
|
+
export default withLayout({
|
|
111
|
+
// ...your next config (an existing webpack() override is preserved)
|
|
112
|
+
});
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Or let the CLI wire it up for you (detects the framework, edits the config
|
|
116
|
+
with `recast` so formatting and comments survive, backs the original up first,
|
|
117
|
+
scaffolds `.layout/live/`, and augments `CLAUDE.md`):
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npx @layoutdesign/context install --live
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Re-running `install --live` is idempotent. Both plugins skip Fragments,
|
|
124
|
+
capitalised components, and pre-attributed elements, and preserve source maps
|
|
125
|
+
so stack traces still point at your real line numbers.
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
58
129
|
## CLI Commands
|
|
59
130
|
|
|
60
131
|
| Command | Description |
|
package/dist/bin/cli.js
CHANGED
|
@@ -13,6 +13,7 @@ import { scanCommand } from "../src/cli/scan.js";
|
|
|
13
13
|
import { lintCommand } from "../src/cli/lint.js";
|
|
14
14
|
import { diffCommand } from "../src/cli/diff.js";
|
|
15
15
|
import { importTokensJsonCommand } from "../src/cli/import-tokens-json.js";
|
|
16
|
+
import { liveNotifyCommand } from "../src/cli/live-notify.js";
|
|
16
17
|
const require = createRequire(import.meta.url);
|
|
17
18
|
const pkg = require("../../package.json");
|
|
18
19
|
const program = new Command();
|
|
@@ -57,6 +58,7 @@ program
|
|
|
57
58
|
.option("--target <tool>", "Specific tool: claude, cursor, windsurf, vscode, codex, or gemini")
|
|
58
59
|
.option("--global", "Install globally (available in all projects, Claude Code only)")
|
|
59
60
|
.option("--skip-figma", "Skip Figma and Playwright MCP setup")
|
|
61
|
+
.option("--live", "Also set up layout Live: build plugin (Vite/Next), .layout/live/, CLAUDE.md block")
|
|
60
62
|
.action(async (options) => {
|
|
61
63
|
await installCommand(options);
|
|
62
64
|
});
|
|
@@ -112,5 +114,11 @@ program
|
|
|
112
114
|
.action(async (tokensJson, options) => {
|
|
113
115
|
await importTokensJsonCommand(tokensJson, options);
|
|
114
116
|
});
|
|
117
|
+
program
|
|
118
|
+
.command("live-notify [file]")
|
|
119
|
+
.description("Notify a running layout Live that a file changed (optional Claude Code hook; silent no-op if Live isn't running)")
|
|
120
|
+
.action(async (file) => {
|
|
121
|
+
await liveNotifyCommand(file);
|
|
122
|
+
});
|
|
115
123
|
program.parse();
|
|
116
124
|
//# sourceMappingURL=cli.js.map
|
package/dist/bin/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"AA4UA,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwGhB"}
|
package/dist/src/cli/install.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
|
+
import readline from "node:readline";
|
|
4
5
|
import { execFileSync } from "node:child_process";
|
|
5
6
|
import chalk from "chalk";
|
|
6
7
|
import { addFigmaMcpServer as sharedAddFigma, addPlaywrightMcpServer as sharedAddPlaywright, } from "./setup-utils.js";
|
|
8
|
+
import { installLive } from "../install/live.js";
|
|
7
9
|
const MCP_CONFIG = {
|
|
8
10
|
command: "npx",
|
|
9
11
|
args: ["-y", "@layoutdesign/context", "serve"],
|
|
@@ -239,6 +241,21 @@ function addPlaywrightMcpServer() {
|
|
|
239
241
|
}
|
|
240
242
|
return result.success;
|
|
241
243
|
}
|
|
244
|
+
/** Ask a yes/no question on a TTY. Resolves false when non-interactive. */
|
|
245
|
+
function confirm(question) {
|
|
246
|
+
if (!process.stdin.isTTY)
|
|
247
|
+
return Promise.resolve(false);
|
|
248
|
+
const rl = readline.createInterface({
|
|
249
|
+
input: process.stdin,
|
|
250
|
+
output: process.stdout,
|
|
251
|
+
});
|
|
252
|
+
return new Promise((resolve) => {
|
|
253
|
+
rl.question(`${question} ${chalk.dim("(y/N)")} `, (answer) => {
|
|
254
|
+
rl.close();
|
|
255
|
+
resolve(/^y(es)?$/i.test(answer.trim()));
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
}
|
|
242
259
|
export async function installCommand(options) {
|
|
243
260
|
console.log();
|
|
244
261
|
console.log(chalk.bold("Layout — Installing MCP servers"));
|
|
@@ -305,6 +322,14 @@ export async function installCommand(options) {
|
|
|
305
322
|
addFigmaMcpServer();
|
|
306
323
|
addPlaywrightMcpServer();
|
|
307
324
|
}
|
|
325
|
+
// --- 2b. layout Live (opt-in) ---
|
|
326
|
+
let wantLive = options.live ?? false;
|
|
327
|
+
if (options.live === undefined) {
|
|
328
|
+
wantLive = await confirm(" Set up layout Live? (build plugin + .layout/live/ + CLAUDE.md block)");
|
|
329
|
+
}
|
|
330
|
+
if (wantLive) {
|
|
331
|
+
await installLive(process.cwd());
|
|
332
|
+
}
|
|
308
333
|
// --- 3. Summary ---
|
|
309
334
|
console.log();
|
|
310
335
|
console.log(chalk.green("Done!"), "Your AI agent now has access to your design system.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-notify.d.ts","sourceRoot":"","sources":["../../../src/cli/live-notify.ts"],"names":[],"mappings":"AAUA,wBAAsB,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAepE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `layout-context live-notify [file]`
|
|
3
|
+
*
|
|
4
|
+
* The optional Claude Code hook (PRD 08) runs this after Claude edits a file.
|
|
5
|
+
* It best-effort pings a running layout Live over its Unix socket so Live can
|
|
6
|
+
* refresh / show a diff banner. Completely silent and a no-op when Live isn't
|
|
7
|
+
* running — it must never disrupt Claude Code's hook output.
|
|
8
|
+
*/
|
|
9
|
+
import { connectToLive } from "../mcp/tools/_live-socket.js";
|
|
10
|
+
export async function liveNotifyCommand(file) {
|
|
11
|
+
let conn = null;
|
|
12
|
+
try {
|
|
13
|
+
conn = await connectToLive(process.cwd());
|
|
14
|
+
if (!conn)
|
|
15
|
+
return; // Live not running — silent no-op
|
|
16
|
+
await conn.send({
|
|
17
|
+
method: "notify",
|
|
18
|
+
params: { event: "claude-edited", file: file ?? null },
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Live may not implement `notify` yet, or the socket hiccuped — the
|
|
23
|
+
// connection attempt is itself the useful signal; stay silent.
|
|
24
|
+
}
|
|
25
|
+
finally {
|
|
26
|
+
conn?.close();
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=live-notify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-notify.js","sourceRoot":"","sources":["../../../src/cli/live-notify.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAa;IACnD,IAAI,IAAI,GAA8C,IAAI,CAAC;IAC3D,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,kCAAkC;QACrD,MAAM,IAAI,CAAC,IAAI,CAAC;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE;SACvD,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,+DAA+D;IACjE,CAAC;YAAS,CAAC;QACT,IAAI,EAAE,KAAK,EAAE,CAAC;IAChB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type Framework = "vite" | "next" | "unknown";
|
|
2
|
+
/** Read package.json deps to decide which build plugin applies. */
|
|
3
|
+
export declare function detectFramework(projectRoot: string): Framework;
|
|
4
|
+
export declare function installLive(projectRoot: string): Promise<void>;
|
|
5
|
+
//# sourceMappingURL=live.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/install/live.ts"],"names":[],"mappings":"AAuBA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AA2CpD,mEAAmE;AACnE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAe9D;AA2QD,wBAAsB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBpE"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `npx @layoutdesign/context install --live`
|
|
3
|
+
*
|
|
4
|
+
* Wires a project up for layout Live:
|
|
5
|
+
* 1. Detect framework (vite | next) from package.json
|
|
6
|
+
* 2. Add the matching build plugin to vite.config / next.config (recast —
|
|
7
|
+
* formatting + comments preserved; original backed up first)
|
|
8
|
+
* 3. Create .layout/live/ with config.json + a local .gitignore
|
|
9
|
+
* 4. Append the layout-live managed block to CLAUDE.md
|
|
10
|
+
*
|
|
11
|
+
* Every step is idempotent: re-running --live when everything is already set
|
|
12
|
+
* up makes no changes and reports "already configured".
|
|
13
|
+
*/
|
|
14
|
+
import fs from "node:fs";
|
|
15
|
+
import path from "node:path";
|
|
16
|
+
import { createRequire } from "node:module";
|
|
17
|
+
import chalk from "chalk";
|
|
18
|
+
const require = createRequire(import.meta.url);
|
|
19
|
+
// recast + its TS/JSX parser are CJS — load via createRequire under ESM.
|
|
20
|
+
const recast = require("recast");
|
|
21
|
+
const babelTsParser = require("recast/parsers/babel-ts");
|
|
22
|
+
const VITE_IMPORT = `import layout from "@layoutdesign/context/vite-plugin";`;
|
|
23
|
+
const NEXT_IMPORT = `import withLayout from "@layoutdesign/context/next-plugin";`;
|
|
24
|
+
const CLAUDE_BEGIN = "<!-- BEGIN layout-live (managed) -->";
|
|
25
|
+
const CLAUDE_END = "<!-- END layout-live (managed) -->";
|
|
26
|
+
const CLAUDE_BLOCK = `${CLAUDE_BEGIN}
|
|
27
|
+
## Recent visual edits (layout Live)
|
|
28
|
+
|
|
29
|
+
The user has layout Live installed (desktop app). They may make visual edits — colour, spacing, typography tweaks — directly in their running app. These edits land in source files instantly.
|
|
30
|
+
|
|
31
|
+
When relevant, use these MCP tools:
|
|
32
|
+
- \`get-recent-visual-edits\` — recent class/token changes
|
|
33
|
+
- \`get-selected-element\` — element currently selected in Live (use when the user says "this" or "that one")
|
|
34
|
+
- \`lock-file\` / \`unlock-file\` — coordinate file access before editing
|
|
35
|
+
|
|
36
|
+
If you are about to edit a file the user is also editing visually:
|
|
37
|
+
1. Call \`lock-file\` with the file path and a short TTL (default 60s).
|
|
38
|
+
2. If the lock is held by Live, wait briefly and retry, or surface to the user.
|
|
39
|
+
3. Make your edit, then call \`unlock-file\`.
|
|
40
|
+
|
|
41
|
+
The user holds priority on visual edits. Don't undo visual tweaks unless they explicitly ask.
|
|
42
|
+
${CLAUDE_END}`;
|
|
43
|
+
const LIVE_CONFIG = {
|
|
44
|
+
$schema: "https://layout.design/schema/live-config/v1.json",
|
|
45
|
+
version: 1,
|
|
46
|
+
snapToScale: true,
|
|
47
|
+
complianceScoring: {
|
|
48
|
+
enabled: true,
|
|
49
|
+
debounceMs: 2000,
|
|
50
|
+
minEditsBetweenChecks: 5,
|
|
51
|
+
},
|
|
52
|
+
exclude: [],
|
|
53
|
+
};
|
|
54
|
+
const LIVE_GITIGNORE = "recent-edits.*\nlocks.json\nconflicts.json\n";
|
|
55
|
+
/** Read package.json deps to decide which build plugin applies. */
|
|
56
|
+
export function detectFramework(projectRoot) {
|
|
57
|
+
const pkgPath = path.join(projectRoot, "package.json");
|
|
58
|
+
if (!fs.existsSync(pkgPath))
|
|
59
|
+
return "unknown";
|
|
60
|
+
try {
|
|
61
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
|
|
62
|
+
const deps = { ...pkg.dependencies, ...pkg.devDependencies };
|
|
63
|
+
if (deps["next"])
|
|
64
|
+
return "next";
|
|
65
|
+
if (deps["vite"])
|
|
66
|
+
return "vite";
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
/* fall through */
|
|
70
|
+
}
|
|
71
|
+
return "unknown";
|
|
72
|
+
}
|
|
73
|
+
function findConfig(projectRoot, base) {
|
|
74
|
+
for (const ext of ["ts", "mts", "js", "mjs"]) {
|
|
75
|
+
const p = path.join(projectRoot, `${base}.config.${ext}`);
|
|
76
|
+
if (fs.existsSync(p))
|
|
77
|
+
return p;
|
|
78
|
+
}
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
function backup(configPath) {
|
|
82
|
+
const backupPath = `${configPath}.layout-backup`;
|
|
83
|
+
if (!fs.existsSync(backupPath)) {
|
|
84
|
+
fs.copyFileSync(configPath, backupPath);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
function parse(src) {
|
|
88
|
+
return recast.parse(src, { parser: babelTsParser });
|
|
89
|
+
}
|
|
90
|
+
/** Insert an import line at the top if its specifier isn't already present. */
|
|
91
|
+
function ensureImport(src, importLine, specifier) {
|
|
92
|
+
if (src.includes(specifier))
|
|
93
|
+
return src;
|
|
94
|
+
return `${importLine}\n${src}`;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Add `layout()` as the first entry of the Vite `plugins` array. Returns the
|
|
98
|
+
* new source, or null if the config shape is too unusual to edit safely.
|
|
99
|
+
*/
|
|
100
|
+
function patchViteConfig(src) {
|
|
101
|
+
if (src.includes("@layoutdesign/context/vite-plugin"))
|
|
102
|
+
return src; // idempotent
|
|
103
|
+
let ast;
|
|
104
|
+
try {
|
|
105
|
+
ast = parse(src);
|
|
106
|
+
}
|
|
107
|
+
catch {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
let patched = false;
|
|
111
|
+
// babel-ts produces ObjectProperty nodes (not ESTree Property).
|
|
112
|
+
recast.types.visit(ast, {
|
|
113
|
+
visitObjectProperty(p) {
|
|
114
|
+
const key = p.node.key;
|
|
115
|
+
const keyName = key?.name ?? key?.value;
|
|
116
|
+
if (keyName === "plugins" && p.node.value?.type === "ArrayExpression") {
|
|
117
|
+
const callExpr = recast.types.builders.callExpression(recast.types.builders.identifier("layout"), []);
|
|
118
|
+
p.node.value.elements.unshift(callExpr);
|
|
119
|
+
patched = true;
|
|
120
|
+
return false;
|
|
121
|
+
}
|
|
122
|
+
this.traverse(p);
|
|
123
|
+
},
|
|
124
|
+
});
|
|
125
|
+
if (!patched)
|
|
126
|
+
return null;
|
|
127
|
+
const printed = recast.print(ast).code;
|
|
128
|
+
return ensureImport(printed, VITE_IMPORT, "@layoutdesign/context/vite-plugin");
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Wrap the default export with `withLayout(...)`. Handles
|
|
132
|
+
* `export default <expr>` (incl. an identifier referencing the config object).
|
|
133
|
+
*/
|
|
134
|
+
function patchNextConfig(src) {
|
|
135
|
+
if (src.includes("@layoutdesign/context/next-plugin"))
|
|
136
|
+
return src; // idempotent
|
|
137
|
+
let ast;
|
|
138
|
+
try {
|
|
139
|
+
ast = parse(src);
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
const b = recast.types.builders;
|
|
145
|
+
let patched = false;
|
|
146
|
+
recast.types.visit(ast, {
|
|
147
|
+
visitExportDefaultDeclaration(p) {
|
|
148
|
+
const decl = p.node.declaration;
|
|
149
|
+
if (decl) {
|
|
150
|
+
p.node.declaration = b.callExpression(b.identifier("withLayout"), [
|
|
151
|
+
decl,
|
|
152
|
+
]);
|
|
153
|
+
patched = true;
|
|
154
|
+
}
|
|
155
|
+
return false;
|
|
156
|
+
},
|
|
157
|
+
visitAssignmentExpression(p) {
|
|
158
|
+
// CommonJS: module.exports = <expr>
|
|
159
|
+
const left = p.node.left;
|
|
160
|
+
if (left?.type === "MemberExpression" &&
|
|
161
|
+
left.object?.name === "module" &&
|
|
162
|
+
left.property?.name === "exports") {
|
|
163
|
+
p.node.right = b.callExpression(b.identifier("withLayout"), [
|
|
164
|
+
p.node.right,
|
|
165
|
+
]);
|
|
166
|
+
patched = true;
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
this.traverse(p);
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
if (!patched)
|
|
173
|
+
return null;
|
|
174
|
+
const printed = recast.print(ast).code;
|
|
175
|
+
const importLine = src.includes("module.exports")
|
|
176
|
+
? `const withLayout = require("@layoutdesign/context/next-plugin").default;`
|
|
177
|
+
: NEXT_IMPORT;
|
|
178
|
+
return ensureImport(printed, importLine, "@layoutdesign/context/next-plugin");
|
|
179
|
+
}
|
|
180
|
+
function installPlugin(projectRoot, framework) {
|
|
181
|
+
const base = framework === "next" ? "next" : "vite";
|
|
182
|
+
const configPath = findConfig(projectRoot, base);
|
|
183
|
+
if (!configPath) {
|
|
184
|
+
console.log(chalk.yellow(" ⚠"), `No ${base}.config.* found. Add the plugin manually:`);
|
|
185
|
+
console.log(chalk.dim(framework === "next"
|
|
186
|
+
? ` ${NEXT_IMPORT}\n export default withLayout({ /* ...config */ });`
|
|
187
|
+
: ` ${VITE_IMPORT}\n plugins: [layout(), react()]`));
|
|
188
|
+
return { changed: false };
|
|
189
|
+
}
|
|
190
|
+
const original = fs.readFileSync(configPath, "utf8");
|
|
191
|
+
const patched = framework === "next"
|
|
192
|
+
? patchNextConfig(original)
|
|
193
|
+
: patchViteConfig(original);
|
|
194
|
+
if (patched === null) {
|
|
195
|
+
console.log(chalk.yellow(" ⚠"), `${path.basename(configPath)} has an unusual shape — not modified. Add manually:`);
|
|
196
|
+
console.log(chalk.dim(framework === "next"
|
|
197
|
+
? ` Wrap your config export with withLayout() from @layoutdesign/context/next-plugin`
|
|
198
|
+
: ` Add layout() (before react()) to plugins, import from @layoutdesign/context/vite-plugin`));
|
|
199
|
+
return { changed: false };
|
|
200
|
+
}
|
|
201
|
+
if (patched === original) {
|
|
202
|
+
console.log(chalk.dim(" ↳"), `${path.basename(configPath)}: plugin already configured`);
|
|
203
|
+
return { changed: false };
|
|
204
|
+
}
|
|
205
|
+
backup(configPath);
|
|
206
|
+
fs.writeFileSync(configPath, patched);
|
|
207
|
+
console.log(chalk.green(" ✓"), `${path.basename(configPath)}: added layout build plugin ${chalk.dim("(backup: " + path.basename(configPath) + ".layout-backup)")}`);
|
|
208
|
+
return { changed: true };
|
|
209
|
+
}
|
|
210
|
+
function ensureLayoutLiveDir(projectRoot) {
|
|
211
|
+
const liveDir = path.join(projectRoot, ".layout", "live");
|
|
212
|
+
let changed = false;
|
|
213
|
+
fs.mkdirSync(liveDir, { recursive: true });
|
|
214
|
+
const configFile = path.join(liveDir, "config.json");
|
|
215
|
+
if (!fs.existsSync(configFile)) {
|
|
216
|
+
fs.writeFileSync(configFile, JSON.stringify(LIVE_CONFIG, null, 2) + "\n");
|
|
217
|
+
changed = true;
|
|
218
|
+
}
|
|
219
|
+
const gitignoreFile = path.join(liveDir, ".gitignore");
|
|
220
|
+
if (!fs.existsSync(gitignoreFile)) {
|
|
221
|
+
fs.writeFileSync(gitignoreFile, LIVE_GITIGNORE);
|
|
222
|
+
changed = true;
|
|
223
|
+
}
|
|
224
|
+
console.log(changed ? chalk.green(" ✓") : chalk.dim(" ↳"), changed
|
|
225
|
+
? ".layout/live/ created (config.json + .gitignore)"
|
|
226
|
+
: ".layout/live/ already present");
|
|
227
|
+
return { changed };
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Apply the delimited managed block to one agent file, idempotently.
|
|
231
|
+
* `createIfMissing` distinguishes CLAUDE.md (always created) from
|
|
232
|
+
* AGENTS.md / .cursorrules (only augmented if the project already has them).
|
|
233
|
+
*/
|
|
234
|
+
function applyManagedBlock(file, label, createIfMissing) {
|
|
235
|
+
const exists = fs.existsSync(file);
|
|
236
|
+
if (!exists && !createIfMissing)
|
|
237
|
+
return { changed: false };
|
|
238
|
+
const existing = exists ? fs.readFileSync(file, "utf8") : "";
|
|
239
|
+
if (existing.includes(CLAUDE_BEGIN)) {
|
|
240
|
+
const before = existing.slice(0, existing.indexOf(CLAUDE_BEGIN));
|
|
241
|
+
const afterIdx = existing.indexOf(CLAUDE_END);
|
|
242
|
+
const after = afterIdx === -1 ? "" : existing.slice(afterIdx + CLAUDE_END.length);
|
|
243
|
+
const next = `${before}${CLAUDE_BLOCK}${after}`;
|
|
244
|
+
if (next === existing) {
|
|
245
|
+
console.log(chalk.dim(" ↳"), `${label}: managed block already current`);
|
|
246
|
+
return { changed: false };
|
|
247
|
+
}
|
|
248
|
+
fs.writeFileSync(file, next);
|
|
249
|
+
console.log(chalk.green(" ✓"), `${label}: refreshed layout-live block`);
|
|
250
|
+
return { changed: true };
|
|
251
|
+
}
|
|
252
|
+
const sep = existing.length === 0 ? "" : existing.endsWith("\n") ? "\n" : "\n\n";
|
|
253
|
+
fs.writeFileSync(file, `${existing}${sep}${CLAUDE_BLOCK}\n`);
|
|
254
|
+
console.log(chalk.green(" ✓"), existing.length === 0
|
|
255
|
+
? `${label}: created with layout-live block`
|
|
256
|
+
: `${label}: appended layout-live block`);
|
|
257
|
+
return { changed: true };
|
|
258
|
+
}
|
|
259
|
+
function appendClaudeMdSection(projectRoot) {
|
|
260
|
+
// CLAUDE.md is created if absent; AGENTS.md / .cursorrules are only
|
|
261
|
+
// augmented when the project already exports them.
|
|
262
|
+
const claude = applyManagedBlock(path.join(projectRoot, "CLAUDE.md"), "CLAUDE.md", true);
|
|
263
|
+
const agents = applyManagedBlock(path.join(projectRoot, "AGENTS.md"), "AGENTS.md", false);
|
|
264
|
+
const cursor = applyManagedBlock(path.join(projectRoot, ".cursorrules"), ".cursorrules", false);
|
|
265
|
+
return {
|
|
266
|
+
changed: claude.changed || agents.changed || cursor.changed,
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
export async function installLive(projectRoot) {
|
|
270
|
+
console.log();
|
|
271
|
+
console.log(chalk.bold(" layout Live"));
|
|
272
|
+
const framework = detectFramework(projectRoot);
|
|
273
|
+
if (framework === "unknown") {
|
|
274
|
+
console.log(chalk.yellow(" ⚠"), "Could not detect Vite or Next.js in package.json — skipping plugin step.");
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
console.log(chalk.dim(` ↳ Framework detected: ${framework}`));
|
|
278
|
+
installPlugin(projectRoot, framework);
|
|
279
|
+
}
|
|
280
|
+
ensureLayoutLiveDir(projectRoot);
|
|
281
|
+
appendClaudeMdSection(projectRoot);
|
|
282
|
+
console.log();
|
|
283
|
+
console.log(chalk.dim(" layout Live tools are exposed by the MCP server automatically."));
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=live.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/install/live.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export type LockHolder = "live" | "claude" | string;
|
|
2
|
+
export interface LockEntry {
|
|
3
|
+
holder: LockHolder;
|
|
4
|
+
lock_id: string;
|
|
5
|
+
acquired_at: string;
|
|
6
|
+
expires_at: string;
|
|
7
|
+
reason?: string;
|
|
8
|
+
}
|
|
9
|
+
export type LocksFile = Record<string, LockEntry>;
|
|
10
|
+
export type AcquireResult = {
|
|
11
|
+
acquired: true;
|
|
12
|
+
lock_id: string;
|
|
13
|
+
expires_at: string;
|
|
14
|
+
} | {
|
|
15
|
+
acquired: false;
|
|
16
|
+
current_holder: LockHolder;
|
|
17
|
+
expires_at: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Acquire (or take over an expired) write lock for `relPath`.
|
|
21
|
+
*
|
|
22
|
+
* Returns `{ acquired: false, current_holder, expires_at }` when a live,
|
|
23
|
+
* unexpired lock is already held by someone else.
|
|
24
|
+
*/
|
|
25
|
+
export declare function acquireLock(projectRoot: string, opts: {
|
|
26
|
+
path: string;
|
|
27
|
+
ttlSeconds: number;
|
|
28
|
+
reason?: string;
|
|
29
|
+
holder?: LockHolder;
|
|
30
|
+
}): Promise<AcquireResult>;
|
|
31
|
+
/**
|
|
32
|
+
* Release a lock by its `lock_id`. Only the matching entry is removed, so a
|
|
33
|
+
* stale `lock_id` from a since-taken-over lock cannot evict the new holder.
|
|
34
|
+
*/
|
|
35
|
+
export declare function releaseLock(projectRoot: string, lockId: string): Promise<{
|
|
36
|
+
released: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
/** Read the current locks map (best-effort; empty if file absent/corrupt). */
|
|
39
|
+
export declare function readLocks(projectRoot: string): Promise<LocksFile>;
|
|
40
|
+
//# sourceMappingURL=live-lock-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live-lock-store.d.ts","sourceRoot":"","sources":["../../../src/mcp/live-lock-store.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAElD,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,cAAc,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AA+DxE;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE;IACJ,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB,GACA,OAAO,CAAC,aAAa,CAAC,CAwCxB;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAYhC;AAED,8EAA8E;AAC9E,wBAAsB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAGvE"}
|