@layoutdesign/context 0.6.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +71 -0
- package/dist/bin/cli.js +13 -5
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/cli/fetch-kit.d.ts +16 -0
- package/dist/src/cli/fetch-kit.d.ts.map +1 -0
- package/dist/src/cli/fetch-kit.js +52 -0
- package/dist/src/cli/fetch-kit.js.map +1 -0
- package/dist/src/cli/import-zip.d.ts +13 -0
- package/dist/src/cli/import-zip.d.ts.map +1 -1
- package/dist/src/cli/import-zip.js +75 -56
- package/dist/src/cli/import-zip.js.map +1 -1
- package/dist/src/cli/install.d.ts +2 -1
- package/dist/src/cli/install.d.ts.map +1 -1
- package/dist/src/cli/install.js +46 -1
- 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/cli/use.d.ts.map +1 -1
- package/dist/src/cli/use.js +37 -18
- package/dist/src/cli/use.js.map +1 -1
- 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/kit/registry.d.ts.map +1 -1
- package/dist/src/kit/registry.js +4 -2
- package/dist/src/kit/registry.js.map +1 -1
- 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();
|
|
@@ -41,7 +42,7 @@ program
|
|
|
41
42
|
});
|
|
42
43
|
program
|
|
43
44
|
.command("use <kit-name>")
|
|
44
|
-
.description("Install a design kit from the
|
|
45
|
+
.description("Install a design kit — a bundled kit or any public kit from the gallery")
|
|
45
46
|
.action(async (kitName) => {
|
|
46
47
|
await useCommand(kitName);
|
|
47
48
|
});
|
|
@@ -52,13 +53,14 @@ program
|
|
|
52
53
|
await listCommand();
|
|
53
54
|
});
|
|
54
55
|
program
|
|
55
|
-
.command("install")
|
|
56
|
-
.description("Auto-configure MCP servers
|
|
56
|
+
.command("install [kit-slug]")
|
|
57
|
+
.description("Auto-configure MCP servers for Claude Code, Cursor, Windsurf, VS Code, Codex, or Gemini. Pass a gallery kit-slug to install that kit into .layout/ first.")
|
|
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")
|
|
60
|
-
.
|
|
61
|
-
|
|
61
|
+
.option("--live", "Also set up layout Live: build plugin (Vite/Next), .layout/live/, CLAUDE.md block")
|
|
62
|
+
.action(async (kitSlug, options) => {
|
|
63
|
+
await installCommand(options, kitSlug);
|
|
62
64
|
});
|
|
63
65
|
program
|
|
64
66
|
.command("serve-local <path>")
|
|
@@ -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":";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;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,gBAAgB,CAAC;KACtB,WAAW,CACV,+DAA+D,CAChE;KACA,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sDAAsD,CAAC;KACnE,MAAM,CAAC,cAAc,EAAE,kCAAkC,CAAC;KAC1D,MAAM,CAAC,KAAK,EAAE,OAAyB,EAAE,EAAE;IAC1C,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wCAAwC,CAAC;KACrD,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,YAAY,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,mBAAmB,CAAC;KAC5B,WAAW,CAAC,0CAA0C,CAAC;KACvD,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,yEAAyE,CAAC;KACtF,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,EAAE;IAChC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,2JAA2J,CAAC;KACxK,MAAM,CAAC,iBAAiB,EAAE,mEAAmE,CAAC;KAC9F,MAAM,CAAC,UAAU,EAAE,gEAAgE,CAAC;KACpF,MAAM,CAAC,cAAc,EAAE,qCAAqC,CAAC;KAC7D,MAAM,CAAC,QAAQ,EAAE,mFAAmF,CAAC;KACrG,MAAM,CACL,KAAK,EACH,OAA2B,EAC3B,OAAmF,EACnF,EAAE;IACF,MAAM,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC,CACF,CAAC;AAEJ,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,+GAA+G,CAAC;KAC5H,MAAM,CAAC,YAAY,EAAE,8CAA8C,CAAC;KACpE,MAAM,CAAC,SAAS,EAAE,2CAA2C,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAA2C,EAAE,EAAE;IAChF,MAAM,iBAAiB,CAAC,UAAU,EAAE;QAClC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;QAC3D,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2DAA2D,CAAC;KACxE,MAAM,CAAC,OAAO,EAAE,kCAAkC,CAAC;KACnD,MAAM,CAAC,WAAW,EAAE,+DAA+D,CAAC;KACpF,MAAM,CAAC,KAAK,EAAE,OAA6C,EAAE,EAAE;IAC9D,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,8DAA8D,CAAC;KAC3E,MAAM,CAAC,QAAQ,EAAE,uCAAuC,CAAC;KACzD,MAAM,CAAC,gBAAgB,EAAE,kEAAkE,CAAC;KAC5F,MAAM,CAAC,eAAe,EAAE,yDAAyD,CAAC;KAClF,MAAM,CAAC,KAAK,EAAE,UAAmB,EAAE,OAA6D,EAAE,EAAE;IACnG,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kFAAkF,CAAC;KAC/F,MAAM,CAAC,QAAQ,EAAE,mDAAmD,CAAC;KACrE,MAAM,CAAC,SAAS,EAAE,8BAA8B,CAAC;KACjD,MAAM,CAAC,cAAc,EAAE,8CAA8C,CAAC;KACtE,MAAM,CAAC,KAAK,EAAE,OAA2D,EAAE,EAAE;IAC5E,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CAAC,uGAAuG,CAAC;KACpH,MAAM,CAAC,QAAQ,EAAE,mDAAmD,CAAC;KACrE,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,IAAY,EAAE,OAA2B,EAAE,EAAE;IACxE,MAAM,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,6BAA6B,CAAC;KACtC,WAAW,CAAC,gEAAgE,CAAC;KAC7E,MAAM,CAAC,eAAe,EAAE,kDAAkD,EAAE,cAAc,CAAC;KAC3F,MAAM,CAAC,cAAc,EAAE,qDAAqD,CAAC;KAC7E,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,OAAyC,EAAE,EAAE;IAC9E,MAAM,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,oBAAoB,CAAC;KAC7B,WAAW,CACV,kHAAkH,CACnH;KACA,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;IAC9B,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export interface GalleryFetchResult {
|
|
2
|
+
/** "installed" — kit ingested into .layout/; "not-found" — no such public kit; "error" — network/extract failure */
|
|
3
|
+
status: "installed" | "not-found" | "error";
|
|
4
|
+
/** Files copied into .layout/ (when installed) */
|
|
5
|
+
imported?: string[];
|
|
6
|
+
/** Human-readable detail (when error) */
|
|
7
|
+
message?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Download a published gallery kit by slug from layout.design and ingest it
|
|
11
|
+
* into .layout/. Reuses the same ZIP ingest as the `import` command, so the
|
|
12
|
+
* result is identical to importing a Studio export. Never throws — returns a
|
|
13
|
+
* status the caller can turn into a message.
|
|
14
|
+
*/
|
|
15
|
+
export declare function fetchKitFromGallery(slug: string): Promise<GalleryFetchResult>;
|
|
16
|
+
//# sourceMappingURL=fetch-kit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-kit.d.ts","sourceRoot":"","sources":["../../../src/cli/fetch-kit.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,kBAAkB;IACjC,oHAAoH;IACpH,MAAM,EAAE,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;IAC5C,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoCnF"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import { ingestZip } from "./import-zip.js";
|
|
5
|
+
/** Resolve the Layout API base. Override with LAYOUT_API_URL for local/staging. */
|
|
6
|
+
function apiBase() {
|
|
7
|
+
return (process.env.LAYOUT_API_URL ?? "https://layout.design").replace(/\/$/, "");
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Download a published gallery kit by slug from layout.design and ingest it
|
|
11
|
+
* into .layout/. Reuses the same ZIP ingest as the `import` command, so the
|
|
12
|
+
* result is identical to importing a Studio export. Never throws — returns a
|
|
13
|
+
* status the caller can turn into a message.
|
|
14
|
+
*/
|
|
15
|
+
export async function fetchKitFromGallery(slug) {
|
|
16
|
+
const url = `${apiBase()}/api/public/kits/${encodeURIComponent(slug)}/download`;
|
|
17
|
+
let res;
|
|
18
|
+
try {
|
|
19
|
+
res = await fetch(url, { headers: { Accept: "application/zip" } });
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
return {
|
|
23
|
+
status: "error",
|
|
24
|
+
message: `Could not reach the gallery (${err.message}).`,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
if (res.status === 404) {
|
|
28
|
+
return { status: "not-found" };
|
|
29
|
+
}
|
|
30
|
+
if (!res.ok) {
|
|
31
|
+
return {
|
|
32
|
+
status: "error",
|
|
33
|
+
message: `Gallery returned ${res.status} ${res.statusText}.`,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Save the ZIP to a temp file, then reuse the shared ingest path.
|
|
37
|
+
const safeSlug = slug.replace(/[^a-z0-9-]/gi, "-");
|
|
38
|
+
const tmpZip = path.join(os.tmpdir(), `layout-kit-${safeSlug}-${process.pid}.zip`);
|
|
39
|
+
try {
|
|
40
|
+
const buf = Buffer.from(await res.arrayBuffer());
|
|
41
|
+
fs.writeFileSync(tmpZip, buf);
|
|
42
|
+
const { imported } = ingestZip(tmpZip);
|
|
43
|
+
return { status: "installed", imported };
|
|
44
|
+
}
|
|
45
|
+
catch (err) {
|
|
46
|
+
return { status: "error", message: err.message };
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
fs.rmSync(tmpZip, { force: true });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=fetch-kit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch-kit.js","sourceRoot":"","sources":["../../../src/cli/fetch-kit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,mFAAmF;AACnF,SAAS,OAAO;IACd,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACpF,CAAC;AAWD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IACpD,MAAM,GAAG,GAAG,GAAG,OAAO,EAAE,oBAAoB,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;IAEhF,IAAI,GAAa,CAAC;IAClB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,gCAAiC,GAAa,CAAC,OAAO,IAAI;SACpE,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IACjC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,oBAAoB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,GAAG;SAC7D,CAAC;IACJ,CAAC;IAED,kEAAkE;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,cAAc,QAAQ,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC3C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC;IAC9D,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrC,CAAC;AACH,CAAC"}
|
|
@@ -1,2 +1,15 @@
|
|
|
1
|
+
export interface IngestResult {
|
|
2
|
+
/** Names of files/directories copied into .layout/ */
|
|
3
|
+
imported: string[];
|
|
4
|
+
/** Description of the root CLAUDE.md merge, or null if nothing was merged */
|
|
5
|
+
mergedClaudeMd: string | null;
|
|
6
|
+
}
|
|
1
7
|
export declare function importCommand(zipPath: string): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Extract a Layout export ZIP and copy its design-system files into .layout/.
|
|
10
|
+
* Shared by the `import` command and the gallery-kit installer (`use`/`install`).
|
|
11
|
+
* Throws on failure (missing `unzip` binary, corrupt archive) so callers can
|
|
12
|
+
* decide how to report it. Returns what was imported.
|
|
13
|
+
*/
|
|
14
|
+
export declare function ingestZip(resolvedZipPath: string): IngestResult;
|
|
2
15
|
//# sourceMappingURL=import-zip.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-zip.d.ts","sourceRoot":"","sources":["../../../src/cli/import-zip.ts"],"names":[],"mappings":"AA6BA,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"import-zip.d.ts","sourceRoot":"","sources":["../../../src/cli/import-zip.ts"],"names":[],"mappings":"AA6BA,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6EAA6E;IAC7E,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqElE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY,CA0E/D"}
|
|
@@ -37,81 +37,100 @@ export async function importCommand(zipPath) {
|
|
|
37
37
|
console.log(chalk.dim(` Current directory: ${cwd}`));
|
|
38
38
|
console.log();
|
|
39
39
|
}
|
|
40
|
+
let result;
|
|
41
|
+
try {
|
|
42
|
+
result = ingestZip(resolvedPath);
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
console.log(chalk.red("Error:"), err.message);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
if (result.imported.length === 0) {
|
|
49
|
+
console.log(chalk.yellow("Warning:"), "No recognised design system files found in the ZIP.");
|
|
50
|
+
console.log(` Expected files: ${KNOWN_FILES.join(", ")}`);
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
console.log(chalk.green("✓"), `Imported ${result.imported.length} item${result.imported.length === 1 ? "" : "s"} into .layout/:`);
|
|
54
|
+
console.log();
|
|
55
|
+
for (const file of result.imported) {
|
|
56
|
+
console.log(` ${chalk.dim("•")} ${file}`);
|
|
57
|
+
}
|
|
58
|
+
if (result.mergedClaudeMd) {
|
|
59
|
+
console.log(` ${chalk.dim("•")} ${result.mergedClaudeMd}`);
|
|
60
|
+
}
|
|
61
|
+
console.log();
|
|
62
|
+
console.log(`Run ${chalk.cyan("npx @layoutdesign/context install")} to connect the MCP server.`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Extract a Layout export ZIP and copy its design-system files into .layout/.
|
|
66
|
+
* Shared by the `import` command and the gallery-kit installer (`use`/`install`).
|
|
67
|
+
* Throws on failure (missing `unzip` binary, corrupt archive) so callers can
|
|
68
|
+
* decide how to report it. Returns what was imported.
|
|
69
|
+
*/
|
|
70
|
+
export function ingestZip(resolvedZipPath) {
|
|
40
71
|
// Check that unzip is available
|
|
41
72
|
try {
|
|
42
73
|
execFileSync("which", ["unzip"], { stdio: "ignore" });
|
|
43
74
|
}
|
|
44
75
|
catch {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
process.exit(1);
|
|
76
|
+
throw new Error("The 'unzip' command is required but not found.\n" +
|
|
77
|
+
` Install it with: ${chalk.cyan("sudo apt install unzip")} (Linux) or ${chalk.cyan("brew install unzip")} (macOS)`);
|
|
48
78
|
}
|
|
49
79
|
// Extract to a temp directory
|
|
50
80
|
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "layout-import-"));
|
|
51
81
|
try {
|
|
52
|
-
execFileSync("unzip", ["-o", "-q",
|
|
82
|
+
execFileSync("unzip", ["-o", "-q", resolvedZipPath, "-d", tmpDir], {
|
|
53
83
|
stdio: "ignore",
|
|
54
84
|
});
|
|
55
85
|
}
|
|
56
86
|
catch {
|
|
57
|
-
console.log(chalk.red("Error:"), "Failed to extract ZIP file.");
|
|
58
87
|
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
59
|
-
|
|
88
|
+
throw new Error("Failed to extract ZIP file.");
|
|
60
89
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
fs.
|
|
71
|
-
|
|
90
|
+
try {
|
|
91
|
+
// Find the root of the extracted content.
|
|
92
|
+
// Layout ZIPs may have files at root or nested in a single directory.
|
|
93
|
+
const extractedRoot = findExtractedRoot(tmpDir);
|
|
94
|
+
const targetDir = path.join(process.cwd(), LAYOUT_DIR);
|
|
95
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
96
|
+
const imported = [];
|
|
97
|
+
for (const fileName of KNOWN_FILES) {
|
|
98
|
+
const srcPath = path.join(extractedRoot, fileName);
|
|
99
|
+
if (fs.existsSync(srcPath)) {
|
|
100
|
+
fs.copyFileSync(srcPath, path.join(targetDir, fileName));
|
|
101
|
+
imported.push(fileName);
|
|
102
|
+
}
|
|
72
103
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
104
|
+
// Backward compatibility: accept DESIGN.md from old bundles, write as layout.md
|
|
105
|
+
if (!imported.includes(LAYOUT_MD_FILE)) {
|
|
106
|
+
const legacySrc = path.join(extractedRoot, "DESIGN.md");
|
|
107
|
+
if (fs.existsSync(legacySrc)) {
|
|
108
|
+
fs.copyFileSync(legacySrc, path.join(targetDir, LAYOUT_MD_FILE));
|
|
109
|
+
imported.push(LAYOUT_MD_FILE);
|
|
110
|
+
}
|
|
80
111
|
}
|
|
112
|
+
// Copy components directory if it exists
|
|
113
|
+
const componentsSrc = path.join(extractedRoot, "components");
|
|
114
|
+
if (fs.existsSync(componentsSrc) && fs.statSync(componentsSrc).isDirectory()) {
|
|
115
|
+
const componentsDest = path.join(targetDir, "components");
|
|
116
|
+
fs.cpSync(componentsSrc, componentsDest, { recursive: true });
|
|
117
|
+
imported.push("components/");
|
|
118
|
+
}
|
|
119
|
+
// Copy cursor rules if present
|
|
120
|
+
const cursorSrc = path.join(extractedRoot, ".cursor");
|
|
121
|
+
if (fs.existsSync(cursorSrc) && fs.statSync(cursorSrc).isDirectory()) {
|
|
122
|
+
const cursorDest = path.join(targetDir, ".cursor");
|
|
123
|
+
fs.cpSync(cursorSrc, cursorDest, { recursive: true });
|
|
124
|
+
imported.push(".cursor/");
|
|
125
|
+
}
|
|
126
|
+
// Merge design system rules into root CLAUDE.md
|
|
127
|
+
const mergedClaudeMd = imported.length > 0 ? mergeIntoRootClaudeMd() : null;
|
|
128
|
+
return { imported, mergedClaudeMd };
|
|
81
129
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const componentsDest = path.join(targetDir, "components");
|
|
86
|
-
fs.cpSync(componentsSrc, componentsDest, { recursive: true });
|
|
87
|
-
imported.push("components/");
|
|
88
|
-
}
|
|
89
|
-
// Copy cursor rules if present
|
|
90
|
-
const cursorSrc = path.join(extractedRoot, ".cursor");
|
|
91
|
-
if (fs.existsSync(cursorSrc) && fs.statSync(cursorSrc).isDirectory()) {
|
|
92
|
-
const cursorDest = path.join(targetDir, ".cursor");
|
|
93
|
-
fs.cpSync(cursorSrc, cursorDest, { recursive: true });
|
|
94
|
-
imported.push(".cursor/");
|
|
95
|
-
}
|
|
96
|
-
// Clean up temp directory
|
|
97
|
-
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
98
|
-
if (imported.length === 0) {
|
|
99
|
-
console.log(chalk.yellow("Warning:"), "No recognised design system files found in the ZIP.");
|
|
100
|
-
console.log(` Expected files: ${KNOWN_FILES.join(", ")}`);
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
console.log(chalk.green("✓"), `Imported ${imported.length} item${imported.length === 1 ? "" : "s"} into .layout/:`);
|
|
104
|
-
console.log();
|
|
105
|
-
for (const file of imported) {
|
|
106
|
-
console.log(` ${chalk.dim("•")} ${file}`);
|
|
107
|
-
}
|
|
108
|
-
// Merge design system rules into root CLAUDE.md
|
|
109
|
-
const mergedClaudeMd = mergeIntoRootClaudeMd();
|
|
110
|
-
if (mergedClaudeMd) {
|
|
111
|
-
console.log(` ${chalk.dim("•")} ${mergedClaudeMd}`);
|
|
130
|
+
finally {
|
|
131
|
+
// Clean up temp directory
|
|
132
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
112
133
|
}
|
|
113
|
-
console.log();
|
|
114
|
-
console.log(`Run ${chalk.cyan("npx @layoutdesign/context install")} to connect the MCP server.`);
|
|
115
134
|
}
|
|
116
135
|
/**
|
|
117
136
|
* Merge the .layout/CLAUDE.md content into the project root CLAUDE.md.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-zip.js","sourceRoot":"","sources":["../../../src/cli/import-zip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,UAAU,EACV,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,kEAAkE;AAClE,MAAM,WAAW,GAAG;IAClB,iBAAiB;IACjB,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,oBAAoB;IACpB,WAAW;IACX,WAAW;CACH,CAAC;AAEX,+EAA+E;AAC/E,MAAM,aAAa,GAAG,qCAAqC,CAAC;AAC5D,MAAM,WAAW,GAAG,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"import-zip.js","sourceRoot":"","sources":["../../../src/cli/import-zip.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":"AA6UA,wBAAsB,cAAc,CAClC,OAAO,EAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,EACD,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAgIf"}
|
package/dist/src/cli/install.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
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";
|
|
9
|
+
import { fetchKitFromGallery } from "./fetch-kit.js";
|
|
7
10
|
const MCP_CONFIG = {
|
|
8
11
|
command: "npx",
|
|
9
12
|
args: ["-y", "@layoutdesign/context", "serve"],
|
|
@@ -239,7 +242,22 @@ function addPlaywrightMcpServer() {
|
|
|
239
242
|
}
|
|
240
243
|
return result.success;
|
|
241
244
|
}
|
|
242
|
-
|
|
245
|
+
/** Ask a yes/no question on a TTY. Resolves false when non-interactive. */
|
|
246
|
+
function confirm(question) {
|
|
247
|
+
if (!process.stdin.isTTY)
|
|
248
|
+
return Promise.resolve(false);
|
|
249
|
+
const rl = readline.createInterface({
|
|
250
|
+
input: process.stdin,
|
|
251
|
+
output: process.stdout,
|
|
252
|
+
});
|
|
253
|
+
return new Promise((resolve) => {
|
|
254
|
+
rl.question(`${question} ${chalk.dim("(y/N)")} `, (answer) => {
|
|
255
|
+
rl.close();
|
|
256
|
+
resolve(/^y(es)?$/i.test(answer.trim()));
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
export async function installCommand(options, kitSlug) {
|
|
243
261
|
console.log();
|
|
244
262
|
console.log(chalk.bold("Layout — Installing MCP servers"));
|
|
245
263
|
if (options.global) {
|
|
@@ -249,6 +267,25 @@ export async function installCommand(options) {
|
|
|
249
267
|
console.log(chalk.dim(" Scope: project (this project only)"));
|
|
250
268
|
}
|
|
251
269
|
console.log();
|
|
270
|
+
// If a kit slug was supplied (e.g. `install acme-design`), pull it from the
|
|
271
|
+
// public gallery into .layout/ before wiring up the MCP servers.
|
|
272
|
+
if (kitSlug) {
|
|
273
|
+
console.log(chalk.dim(` Fetching the ${chalk.bold(kitSlug)} kit from the gallery…`));
|
|
274
|
+
const result = await fetchKitFromGallery(kitSlug);
|
|
275
|
+
if (result.status === "installed") {
|
|
276
|
+
console.log(chalk.green(" ✓"), `Installed the ${chalk.bold(kitSlug)} kit into .layout/`);
|
|
277
|
+
}
|
|
278
|
+
else if (result.status === "not-found") {
|
|
279
|
+
console.log(chalk.red(" Error:"), `Kit "${kitSlug}" not found in the gallery.`);
|
|
280
|
+
console.log(chalk.dim(` Browse kits at ${chalk.cyan("https://layout.design/gallery")}`));
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
console.log(chalk.red(" Error:"), result.message);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
console.log();
|
|
288
|
+
}
|
|
252
289
|
// Check .layout/ exists
|
|
253
290
|
const hasLayout = fs.existsSync(path.join(process.cwd(), ".layout"));
|
|
254
291
|
if (!hasLayout) {
|
|
@@ -305,6 +342,14 @@ export async function installCommand(options) {
|
|
|
305
342
|
addFigmaMcpServer();
|
|
306
343
|
addPlaywrightMcpServer();
|
|
307
344
|
}
|
|
345
|
+
// --- 2b. layout Live (opt-in) ---
|
|
346
|
+
let wantLive = options.live ?? false;
|
|
347
|
+
if (options.live === undefined) {
|
|
348
|
+
wantLive = await confirm(" Set up layout Live? (build plugin + .layout/live/ + CLAUDE.md block)");
|
|
349
|
+
}
|
|
350
|
+
if (wantLive) {
|
|
351
|
+
await installLive(process.cwd());
|
|
352
|
+
}
|
|
308
353
|
// --- 3. Summary ---
|
|
309
354
|
console.log();
|
|
310
355
|
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
|