@atelier-ui/create-workspace 0.2.25 β 0.2.27
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
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## 0.2.27 (2026-08-29)
|
|
2
|
+
|
|
3
|
+
This was a version bump only for create-workspace to align it with other projects, there were no code changes.
|
|
4
|
+
|
|
5
|
+
## 0.2.26 (2026-08-29)
|
|
6
|
+
|
|
7
|
+
### π©Ή Fixes
|
|
8
|
+
|
|
9
|
+
- **schulung:** the four blockers, and the endpoint that was dead by design ([cf8e2b9](https://github.com/DominikPieper/atelier-ui/commit/cf8e2b9))
|
|
10
|
+
|
|
11
|
+
### β€οΈ Thank You
|
|
12
|
+
|
|
13
|
+
- Claude Opus 5 (1M context)
|
|
14
|
+
- Dominik Pieper @DominikPieper
|
|
15
|
+
|
|
1
16
|
## 0.2.25 (2026-08-28)
|
|
2
17
|
|
|
3
18
|
This was a version bump only for create-workspace to align it with other projects, there were no code changes.
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* preflight.mjs
|
|
4
4
|
*
|
|
5
5
|
* Pre-workshop self-check. Verifies the local environment is ready for the
|
|
6
|
-
* Atelier workshop (Figma + Claude Code + Storybook MCP).
|
|
6
|
+
* Atelier UI workshop (Figma + Claude Code + Storybook MCP).
|
|
7
7
|
*
|
|
8
8
|
* Run via: node tools/scripts/preflight.mjs
|
|
9
9
|
* (or npm run preflight)
|
|
@@ -71,19 +71,115 @@ function isAtLeast(actual, required) {
|
|
|
71
71
|
return actual.patch >= required.patch;
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
74
|
+
// ββ MCP probing ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
75
|
+
// A plain GET only proves a URL answers, not that the MCP behind it works:
|
|
76
|
+
// the hosted Storybook MCP once answered every reachability check with a
|
|
77
|
+
// harmless status while every actual tool call failed (broken manifest fetch
|
|
78
|
+
// inside the worker, surfaced as HTTP 200 + isError). So the probe speaks
|
|
79
|
+
// real JSON-RPC: initialize β tools/list, and β on Atelier Storybook
|
|
80
|
+
// endpoints β one real tool call.
|
|
81
|
+
|
|
82
|
+
async function mcpPost(url, body, sessionId, timeoutMs = 10000) {
|
|
75
83
|
const controller = new AbortController();
|
|
76
84
|
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
77
85
|
try {
|
|
78
|
-
const
|
|
79
|
-
|
|
86
|
+
const headers = {
|
|
87
|
+
'content-type': 'application/json',
|
|
88
|
+
accept: 'application/json, text/event-stream',
|
|
89
|
+
};
|
|
90
|
+
if (sessionId) headers['mcp-session-id'] = sessionId;
|
|
91
|
+
const res = await fetch(url, {
|
|
92
|
+
method: 'POST',
|
|
93
|
+
headers,
|
|
94
|
+
body: JSON.stringify(body),
|
|
95
|
+
signal: controller.signal,
|
|
96
|
+
});
|
|
97
|
+
return {
|
|
98
|
+
status: res.status,
|
|
99
|
+
contentType: res.headers.get('content-type') ?? '',
|
|
100
|
+
text: await res.text(),
|
|
101
|
+
sessionId: res.headers.get('mcp-session-id') ?? undefined,
|
|
102
|
+
};
|
|
80
103
|
} catch (err) {
|
|
81
|
-
return {
|
|
104
|
+
return { error: err?.name === 'AbortError' ? 'timeout' : String(err?.message ?? err) };
|
|
82
105
|
} finally {
|
|
83
106
|
clearTimeout(timer);
|
|
84
107
|
}
|
|
85
108
|
}
|
|
86
109
|
|
|
110
|
+
/** Extract the JSON-RPC message with the given id from a JSON or SSE body. */
|
|
111
|
+
function parseJsonRpc(contentType, text, id) {
|
|
112
|
+
const candidates = contentType.includes('text/event-stream')
|
|
113
|
+
? text
|
|
114
|
+
.split('\n')
|
|
115
|
+
.filter((line) => line.startsWith('data:'))
|
|
116
|
+
.map((line) => line.slice(5).trim())
|
|
117
|
+
: [text];
|
|
118
|
+
for (const candidate of candidates) {
|
|
119
|
+
try {
|
|
120
|
+
const msg = JSON.parse(candidate);
|
|
121
|
+
if (msg?.id === id) return msg;
|
|
122
|
+
} catch {
|
|
123
|
+
// keep scanning β an SSE stream may carry unrelated events
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
async function probeMcp(url) {
|
|
130
|
+
// 1. initialize β stateful servers hand out a session id here.
|
|
131
|
+
const init = await mcpPost(url, {
|
|
132
|
+
jsonrpc: '2.0',
|
|
133
|
+
id: 1,
|
|
134
|
+
method: 'initialize',
|
|
135
|
+
params: {
|
|
136
|
+
protocolVersion: '2025-06-18',
|
|
137
|
+
capabilities: {},
|
|
138
|
+
clientInfo: { name: 'atelier-preflight', version: '1.0.0' },
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
if (init.error) return { level: 'unreachable', detail: init.error };
|
|
142
|
+
const session = init.sessionId;
|
|
143
|
+
if (session) {
|
|
144
|
+
await mcpPost(url, { jsonrpc: '2.0', method: 'notifications/initialized' }, session, 5000);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// 2. tools/list β must be HTTP 200 with a parseable JSON-RPC tools array.
|
|
148
|
+
const list = await mcpPost(url, { jsonrpc: '2.0', id: 2, method: 'tools/list', params: {} }, session);
|
|
149
|
+
if (list.error) return { level: 'broken', detail: `tools/list failed (${list.error})` };
|
|
150
|
+
if (list.status !== 200) return { level: 'broken', detail: `tools/list β HTTP ${list.status}` };
|
|
151
|
+
const listMsg = parseJsonRpc(list.contentType, list.text, 2);
|
|
152
|
+
const tools = listMsg?.result?.tools;
|
|
153
|
+
if (!Array.isArray(tools)) return { level: 'broken', detail: 'tools/list β no parseable result' };
|
|
154
|
+
|
|
155
|
+
// 3. On an Atelier Storybook MCP, exercise one real tool call: manifests
|
|
156
|
+
// are only fetched inside tool calls, and a broken manifest fetch comes
|
|
157
|
+
// back as HTTP 200 + isError β invisible to anything shallower.
|
|
158
|
+
if (tools.some((t) => t?.name === 'list-all-documentation')) {
|
|
159
|
+
const call = await mcpPost(
|
|
160
|
+
url,
|
|
161
|
+
{
|
|
162
|
+
jsonrpc: '2.0',
|
|
163
|
+
id: 3,
|
|
164
|
+
method: 'tools/call',
|
|
165
|
+
params: { name: 'list-all-documentation', arguments: {} },
|
|
166
|
+
},
|
|
167
|
+
session,
|
|
168
|
+
);
|
|
169
|
+
if (call.error) return { level: 'broken', detail: `list-all-documentation failed (${call.error})` };
|
|
170
|
+
if (call.status !== 200) return { level: 'broken', detail: `list-all-documentation β HTTP ${call.status}` };
|
|
171
|
+
const callMsg = parseJsonRpc(call.contentType, call.text, 3);
|
|
172
|
+
if (!callMsg?.result || callMsg.result.isError) {
|
|
173
|
+
const reason =
|
|
174
|
+
callMsg?.result?.content?.[0]?.text ?? callMsg?.error?.message ?? 'no parseable result';
|
|
175
|
+
const oneLine = String(reason).replace(/\s+/g, ' ').trim();
|
|
176
|
+
return { level: 'broken', detail: `list-all-documentation β ${oneLine.slice(0, 120)}` };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return { level: 'ok', status: list.status };
|
|
181
|
+
}
|
|
182
|
+
|
|
87
183
|
function portFree(port) {
|
|
88
184
|
return new Promise((resolveP) => {
|
|
89
185
|
const server = createServer();
|
|
@@ -239,15 +335,19 @@ async function checkMcpEndpoints() {
|
|
|
239
335
|
return;
|
|
240
336
|
}
|
|
241
337
|
for (const { name, url } of endpoints) {
|
|
242
|
-
const res = await
|
|
243
|
-
if (res.
|
|
338
|
+
const res = await probeMcp(url);
|
|
339
|
+
if (res.level === 'ok') {
|
|
244
340
|
ok(`MCP: ${name}`, `${url} (HTTP ${res.status})`);
|
|
245
|
-
} else if (res.
|
|
246
|
-
|
|
341
|
+
} else if (res.level === 'broken') {
|
|
342
|
+
fail(
|
|
343
|
+
`MCP: ${name}`,
|
|
344
|
+
`${url} ${res.detail}`,
|
|
345
|
+
'Server reachable but MCP calls fail β see https://atelier.pieper.io/troubleshooting#mcp-tools-error',
|
|
346
|
+
);
|
|
247
347
|
} else {
|
|
248
348
|
fail(
|
|
249
349
|
`MCP: ${name}`,
|
|
250
|
-
`${url} unreachable (${res.
|
|
350
|
+
`${url} unreachable (${res.detail})`,
|
|
251
351
|
'Check your network or proxy settings',
|
|
252
352
|
);
|
|
253
353
|
}
|
|
@@ -255,7 +355,10 @@ async function checkMcpEndpoints() {
|
|
|
255
355
|
}
|
|
256
356
|
|
|
257
357
|
async function checkPorts() {
|
|
258
|
-
|
|
358
|
+
// 4200 = the dev server (every framework serves on the @nx/vite default),
|
|
359
|
+
// 6006 = local Storybook. Nothing in the scaffold uses 4201/4202 β the old
|
|
360
|
+
// multi-framework rig did, and checking them only confused participants.
|
|
361
|
+
const ports = [4200, 6006];
|
|
259
362
|
for (const p of ports) {
|
|
260
363
|
const free = await portFree(p);
|
|
261
364
|
if (free) ok(`Port ${p}`, 'free');
|
|
@@ -271,7 +374,7 @@ function header(title) {
|
|
|
271
374
|
|
|
272
375
|
async function main() {
|
|
273
376
|
console.log('');
|
|
274
|
-
console.log(bold('Atelier Preflight'));
|
|
377
|
+
console.log(bold('Atelier UI Preflight'));
|
|
275
378
|
console.log(dim('Checking your environment for the workshopβ¦'));
|
|
276
379
|
|
|
277
380
|
header('Runtime');
|
|
@@ -219,7 +219,7 @@ file exports). The Desktop Bridge covers creation and inspection without a token
|
|
|
219
219
|
pkg.scripts.preflight = 'node tools/scripts/preflight.mjs';
|
|
220
220
|
return pkg;
|
|
221
221
|
});
|
|
222
|
-
// Write .
|
|
222
|
+
// Write .mcp.json with MCP servers for selected frameworks
|
|
223
223
|
const mcpServers = {
|
|
224
224
|
'nx-mcp': {
|
|
225
225
|
type: 'stdio',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../../../libs/create-workspace/src/generators/preset/preset.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"preset.js","sourceRoot":"","sources":["../../../../../../libs/create-workspace/src/generators/preset/preset.ts"],"names":[],"mappings":"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"}
|