@solidrt/cli 0.0.54 → 0.0.55
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/agents/debugging.md +3 -1
- package/dist/console.srtapp +3881 -3525
- package/dist/demos/3d/the-third-dimension/the-third-dimension.srt.js +489 -366
- package/dist/demos/components/gallery/gallery.srt.js +922 -646
- package/dist/server.js +11 -13
- package/package.json +7 -7
- package/src/init/scaffold/package.json +6 -6
- package/src/mcp/main.ts +9 -5
package/dist/server.js
CHANGED
|
@@ -705,7 +705,7 @@ ${stderr.trim()}`;
|
|
|
705
705
|
return null;
|
|
706
706
|
}
|
|
707
707
|
|
|
708
|
-
// ../../node_modules/.bun/@jridgewell+sourcemap-codec@1.
|
|
708
|
+
// ../../node_modules/.bun/@jridgewell+sourcemap-codec@1.6.0/node_modules/@jridgewell/sourcemap-codec/dist/sourcemap-codec.mjs
|
|
709
709
|
var comma = 44;
|
|
710
710
|
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
|
711
711
|
var intToChar = new Uint8Array(64);
|
|
@@ -715,7 +715,7 @@ for (let i = 0;i < chars.length; i++) {
|
|
|
715
715
|
intToChar[i] = c;
|
|
716
716
|
charToInt[c] = i;
|
|
717
717
|
}
|
|
718
|
-
function decodeInteger(reader
|
|
718
|
+
function decodeInteger(reader) {
|
|
719
719
|
let value = 0;
|
|
720
720
|
let shift = 0;
|
|
721
721
|
let integer2 = 0;
|
|
@@ -725,12 +725,10 @@ function decodeInteger(reader, relative) {
|
|
|
725
725
|
value |= (integer2 & 31) << shift;
|
|
726
726
|
shift += 5;
|
|
727
727
|
} while (integer2 & 32);
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
}
|
|
733
|
-
return relative + value;
|
|
728
|
+
return value;
|
|
729
|
+
}
|
|
730
|
+
function decodeSign(num) {
|
|
731
|
+
return num & 1 ? -2147483648 | -(num >>> 1) : num >>> 1;
|
|
734
732
|
}
|
|
735
733
|
function hasMoreVlq(reader, max) {
|
|
736
734
|
if (reader.pos >= max)
|
|
@@ -772,16 +770,16 @@ function decode(mappings) {
|
|
|
772
770
|
genColumn = 0;
|
|
773
771
|
while (reader.pos < semi) {
|
|
774
772
|
let seg;
|
|
775
|
-
genColumn
|
|
773
|
+
genColumn += decodeSign(decodeInteger(reader));
|
|
776
774
|
if (genColumn < lastCol)
|
|
777
775
|
sorted = false;
|
|
778
776
|
lastCol = genColumn;
|
|
779
777
|
if (hasMoreVlq(reader, semi)) {
|
|
780
|
-
sourcesIndex
|
|
781
|
-
sourceLine
|
|
782
|
-
sourceColumn
|
|
778
|
+
sourcesIndex += decodeSign(decodeInteger(reader));
|
|
779
|
+
sourceLine += decodeSign(decodeInteger(reader));
|
|
780
|
+
sourceColumn += decodeSign(decodeInteger(reader));
|
|
783
781
|
if (hasMoreVlq(reader, semi)) {
|
|
784
|
-
namesIndex
|
|
782
|
+
namesIndex += decodeSign(decodeInteger(reader));
|
|
785
783
|
seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];
|
|
786
784
|
} else {
|
|
787
785
|
seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidrt/cli",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.55",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"funding": "https://github.com/sponsors/wellawaretech",
|
|
6
6
|
"author": "Antoine van Wel",
|
|
@@ -24,22 +24,22 @@
|
|
|
24
24
|
"@jridgewell/remapping": "^2.3.0",
|
|
25
25
|
"@jridgewell/trace-mapping": "^0.3.25",
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
27
|
-
"@solidjs/babel-plugin": "2.0.0-rc.
|
|
27
|
+
"@solidjs/babel-plugin": "2.0.0-rc.4",
|
|
28
28
|
"bonjour-service": "^1.4.0",
|
|
29
29
|
"qrcode-generator": "^2.0.4",
|
|
30
30
|
"zod": "^4.4.3"
|
|
31
31
|
},
|
|
32
32
|
"optionalDependencies": {
|
|
33
|
-
"@solidrt/darwin-arm64": "0.0.
|
|
34
|
-
"@solidrt/linux-arm64-gnu": "0.0.
|
|
35
|
-
"@solidrt/linux-x64-gnu": "0.0.
|
|
36
|
-
"@solidrt/win32-x64-msvc": "0.0.
|
|
33
|
+
"@solidrt/darwin-arm64": "0.0.55",
|
|
34
|
+
"@solidrt/linux-arm64-gnu": "0.0.55",
|
|
35
|
+
"@solidrt/linux-x64-gnu": "0.0.55",
|
|
36
|
+
"@solidrt/win32-x64-msvc": "0.0.55"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"typescript": "^7"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@solidrt/flux-types": "0.0.
|
|
42
|
+
"@solidrt/flux-types": "0.0.55",
|
|
43
43
|
"@types/babel__core": "^7.20.5",
|
|
44
44
|
"@types/bun": "latest"
|
|
45
45
|
}
|
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
"android": "srt android"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@solidrt/core": "0.0.
|
|
14
|
-
"@solidrt/components": "0.0.
|
|
15
|
-
"@solidrt/2d": "0.0.
|
|
16
|
-
"@solidrt/3d": "0.0.
|
|
13
|
+
"@solidrt/core": "0.0.55",
|
|
14
|
+
"@solidrt/components": "0.0.55",
|
|
15
|
+
"@solidrt/2d": "0.0.55",
|
|
16
|
+
"@solidrt/3d": "0.0.55"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@solidrt/cli": "0.0.
|
|
20
|
-
"@solidrt/flux-types": "0.0.
|
|
19
|
+
"@solidrt/cli": "0.0.55",
|
|
20
|
+
"@solidrt/flux-types": "0.0.55",
|
|
21
21
|
"typescript": "^7"
|
|
22
22
|
}
|
|
23
23
|
}
|
package/src/mcp/main.ts
CHANGED
|
@@ -321,7 +321,7 @@ let TOOLS: {
|
|
|
321
321
|
name: "get_gpu_resources",
|
|
322
322
|
annotations: READ_ONLY,
|
|
323
323
|
description:
|
|
324
|
-
"Inventory of a running app client's GPU resources: textures (id, size, whether a shader renders into it), vertex buffers (id, byteLength), and shader/pipeline targets (output textureId, kind, bufferId, topology, drawCount plus firstVertex/instanceCount when off their 0/1 defaults, depth, attribute layout, bound sampler texture ids, current uniform values - the most recent writes, which the next frame or readback draws with - plus passes/issueMs/execMs, cumulative per-target render count, raster-thread issue time and GPU-side execution time in whole ms: when get_stats shows gpuPasses or gpuPassExecMs running hot, these attribute the cost to the specific target). Use it when the render tree is just a <texture> leaf and the interesting state lives behind it; follow up with get_texture or get_buffer to see contents. Pass `label` to keep only the resources created with exactly that debug label (the create's `label` option) - the stable way to find a target again after a reload, since ids change. In a draw target's entry list, uniforms wider than a vec4 (matrices) are elided to their length (\"[16]\") so a model's hundred entries stay readable; pass `draw` (an entry id from that list, with `label` to pin the target, since entry ids are per target) to get that one entry's params in full.",
|
|
324
|
+
"Inventory of a running app client's GPU resources: textures (id, size, format, whether a shader renders into it, and its declared sampler - filter/wrap/mipmap/anisotropy - the first thing to check when a map looks soft or aliased), vertex buffers (id, byteLength), and shader/pipeline targets (output textureId, kind, bufferId, topology, drawCount plus firstVertex/instanceCount when off their 0/1 defaults, depth, attribute layout, bound sampler texture ids, current uniform values - the most recent writes, which the next frame or readback draws with - plus passes/issueMs/execMs, cumulative per-target render count, raster-thread issue time and GPU-side execution time in whole ms: when get_stats shows gpuPasses or gpuPassExecMs running hot, these attribute the cost to the specific target). Use it when the render tree is just a <texture> leaf and the interesting state lives behind it; follow up with get_texture or get_buffer to see contents. Pass `label` to keep only the resources created with exactly that debug label (the create's `label` option) - the stable way to find a target again after a reload, since ids change. In a draw target's entry list, uniforms wider than a vec4 (matrices) are elided to their length (\"[16]\") so a model's hundred entries stay readable; pass `draw` (an entry id from that list, with `label` to pin the target, since entry ids are per target) to get that one entry's params in full.",
|
|
325
325
|
inputSchema: {
|
|
326
326
|
label: z.string().describe("Keep only resources whose create label equals this").optional(),
|
|
327
327
|
draw: z.number().int().describe("Draw entry id whose params are reported in full (pair with label)").optional(),
|
|
@@ -416,14 +416,14 @@ let TOOLS: {
|
|
|
416
416
|
name: "pause_watch",
|
|
417
417
|
annotations: SETS_STATE,
|
|
418
418
|
description:
|
|
419
|
-
"Pause the dev server's reload-on-save until resume_watch, so your half-finished saves are not pushed to the user's screens while you edit; your explicit reload still is. Call it before an edit burst; when the edits are done, reload, then resume_watch. Changes saved while paused are not replayed on resume: reload is what pushes them. The pause lifts on resume_watch, when the dev server goes away, or when this bridge exits. ALWAYS resume when you are done: while paused, the human's own saves reach nothing.",
|
|
419
|
+
"Pause the dev server's reload-on-save until resume_watch, so your half-finished saves are not pushed to the user's screens while you edit; your explicit reload still is. Call it before an edit burst; when the edits are done, reload, then resume_watch. Changes saved while paused are not replayed on resume: reload is what pushes them. The pause lifts on resume_watch, when the dev server goes away, or when this bridge exits. ALWAYS resume when you are done: while paused, the human's own saves reach nothing. Returns `{ ok, watchPaused }`.",
|
|
420
420
|
inputSchema: {},
|
|
421
421
|
},
|
|
422
422
|
{
|
|
423
423
|
name: "resume_watch",
|
|
424
424
|
annotations: SETS_STATE,
|
|
425
425
|
description:
|
|
426
|
-
"Lift the pause set by pause_watch: saves push again, the human's included. Call it after your reload, and always before you stop working.",
|
|
426
|
+
"Lift the pause set by pause_watch: saves push again, the human's included. Call it after your reload, and always before you stop working. Returns `{ ok, watchPaused }`.",
|
|
427
427
|
inputSchema: {},
|
|
428
428
|
},
|
|
429
429
|
{
|
|
@@ -530,8 +530,12 @@ async function callTool(name: string, args: any): Promise<ControlResult> {
|
|
|
530
530
|
case "resume_watch": {
|
|
531
531
|
let paused = name === "pause_watch"
|
|
532
532
|
let result = await control(`/watch?active=${!paused}`, "POST")
|
|
533
|
-
if (result.ok)
|
|
534
|
-
|
|
533
|
+
if (!result.ok) return result
|
|
534
|
+
watchPaused = paused
|
|
535
|
+
// The control API answers in its uniform `active` (whether it watches);
|
|
536
|
+
// name the state as list_clients does, so an `active: false` cannot be
|
|
537
|
+
// read as "the pause is not active".
|
|
538
|
+
return { ...result, body: { ok: true, watchPaused } }
|
|
535
539
|
}
|
|
536
540
|
case "get_snapshot": {
|
|
537
541
|
if (typeof args?.nodeId !== "number") return { ok: false, message: "get_snapshot requires a numeric nodeId" }
|