@ggui-ai/cli 0.7.0 → 0.8.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifact-install.d.ts","sourceRoot":"","sources":["../../src/internal/artifact-install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"artifact-install.d.ts","sourceRoot":"","sources":["../../src/internal/artifact-install.ts"],"names":[],"mappings":"AAyFA,OAAO,EAAoB,KAAK,YAAY,EAAsB,MAAM,wBAAwB,CAAC;AAWjG;;;sCAGsC;AACtC,YAAY,EAAE,YAAY,EAAE,CAAC;AAM7B;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,wEAAwE;IACxE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;;;;;;;OAOG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAgD3D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,kBAAkB,CAsGpB;AA6DD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,kCAAkC;IAClC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,QAAQ,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACrE,iEAAiE;IACjE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,uDAAuD;IACvD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;;;;;;OAOG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACjE;AA8ID;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,YAAY,EACnB,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC,MAAM,CAAC,CAidjB;AA0JD;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,+BAA+B,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,8CACqB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAOtE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAGT;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAGT"}
|
|
@@ -18,12 +18,15 @@
|
|
|
18
18
|
*
|
|
19
19
|
* GET <registry>/pkg/<scope>/<name>/<version>
|
|
20
20
|
* 200: { manifest, bundleUrl?, bundleSri?, signatureUrl?, compiledBytes?, publishedAt, publishedBy }
|
|
21
|
-
* 403: { error: 'forbidden', message } — private artifact (install
|
|
22
|
-
* sends no credentials, so private rows are uninstallable from
|
|
23
|
-
* the CLI today; the error copy says exactly that)
|
|
24
21
|
* 404: { error: 'not_found', message } — artifactId/version unknown
|
|
22
|
+
* OR a private artifact the caller may not read: the registry
|
|
23
|
+
* answers both identically so existence never leaks. Install
|
|
24
|
+
* sends no credentials, so every private row lands here — the
|
|
25
|
+
* 404 diagnosis carries that education.
|
|
25
26
|
* 410: { manifest, …, publishedAt, publishedBy } — yanked (body shape = ReadPkgResponse)
|
|
26
|
-
* other 4xx/5xx: { error, message }
|
|
27
|
+
* other 4xx/5xx: { error, message } — the registry itself never
|
|
28
|
+
* answers a read with 403; one can only arrive from a WAF or
|
|
29
|
+
* proxy in front of it and is reported as a bare status
|
|
27
30
|
*
|
|
28
31
|
* GET <bundleUrl> → raw esbuild output (presigned S3)
|
|
29
32
|
* GET <signatureUrl> → JSON-encoded {@link Ed25519Signature}
|
|
@@ -434,23 +437,22 @@ export async function runArtifactInstall(flags, deps = {}) {
|
|
|
434
437
|
return 1;
|
|
435
438
|
}
|
|
436
439
|
// Status checks BEFORE any body parse — a WAF/proxy in front of the
|
|
437
|
-
// registry may answer
|
|
440
|
+
// registry may answer 404/410 with an HTML or empty body, and the
|
|
438
441
|
// status-specific diagnostics must still fire. Only the paths that
|
|
439
442
|
// actually consume the body parse it.
|
|
440
443
|
if (pkgRes.status === 404) {
|
|
441
|
-
|
|
444
|
+
// The registry answers an unauthorized private read with the
|
|
445
|
+
// SAME not-found shape as a true miss (no existence signal), so
|
|
446
|
+
// the CLI cannot tell "missing" from "private and not yours" —
|
|
447
|
+
// one message covers both honestly.
|
|
448
|
+
stderr(`${verb}: package ${flags.artifactId}@${flags.version} not found ` +
|
|
449
|
+
`(or not visible: private artifacts answer as not-found, and the CLI sends install requests without credentials — only public artifacts are installable).\n`);
|
|
442
450
|
return 1;
|
|
443
451
|
}
|
|
444
452
|
if (pkgRes.status === 410) {
|
|
445
453
|
stderr(`${verb}: ${flags.artifactId}@${flags.version} was yanked; choose a different version\n`);
|
|
446
454
|
return 1;
|
|
447
455
|
}
|
|
448
|
-
if (pkgRes.status === 403) {
|
|
449
|
-
stderr(`${verb}: ${flags.artifactId}@${flags.version} is private (HTTP 403). ` +
|
|
450
|
-
`Installing private artifacts is not supported yet — the CLI sends install requests without credentials, so logging in does not help. ` +
|
|
451
|
-
`Only artifacts published with public visibility are installable.\n`);
|
|
452
|
-
return 1;
|
|
453
|
-
}
|
|
454
456
|
if (!pkgRes.ok) {
|
|
455
457
|
// Structured registry error bodies carry `(code: message)` detail;
|
|
456
458
|
// a non-JSON body (proxy error page) degrades to the bare status.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggui-ai/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "The `ggui` CLI — run the ggui protocol locally: dev server, self-hosted MCP server, and gadget / blueprint authoring. End-to-end OSS and self-hosted workflows; no account required.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ggui",
|
|
@@ -37,22 +37,22 @@
|
|
|
37
37
|
"@noble/hashes": "^1.6.0",
|
|
38
38
|
"esbuild": "^0.25.12",
|
|
39
39
|
"zod": "^4.3.6",
|
|
40
|
-
"@ggui-ai/agent-runtime": "0.
|
|
41
|
-
"@ggui-ai/
|
|
42
|
-
"@ggui-ai/
|
|
43
|
-
"@ggui-ai/
|
|
44
|
-
"@ggui-ai/
|
|
45
|
-
"@ggui-ai/embedding-local": "0.
|
|
46
|
-
"@ggui-ai/mcp-server": "0.
|
|
47
|
-
"@ggui-ai/mcp-server-core": "0.
|
|
48
|
-
"@ggui-ai/
|
|
49
|
-
"@ggui-ai/mcp-server-handlers": "0.
|
|
50
|
-
"@ggui-ai/
|
|
51
|
-
"@ggui-ai/
|
|
52
|
-
"@ggui-ai/
|
|
53
|
-
"@ggui-ai/iframe-runtime": "0.
|
|
54
|
-
"@ggui-ai/ui-gen": "0.
|
|
55
|
-
"@ggui-ai/ui-registry": "0.
|
|
40
|
+
"@ggui-ai/agent-runtime": "0.8.0",
|
|
41
|
+
"@ggui-ai/design": "0.8.0",
|
|
42
|
+
"@ggui-ai/dev-stack": "0.8.0",
|
|
43
|
+
"@ggui-ai/gadget-signing": "0.8.0",
|
|
44
|
+
"@ggui-ai/artifact-manifest": "0.8.0",
|
|
45
|
+
"@ggui-ai/embedding-local": "0.8.0",
|
|
46
|
+
"@ggui-ai/mcp-server": "0.8.0",
|
|
47
|
+
"@ggui-ai/mcp-server-core": "0.8.0",
|
|
48
|
+
"@ggui-ai/protocol": "0.8.0",
|
|
49
|
+
"@ggui-ai/mcp-server-handlers": "0.8.0",
|
|
50
|
+
"@ggui-ai/registry-core": "0.8.0",
|
|
51
|
+
"@ggui-ai/preview-a2ui": "0.8.0",
|
|
52
|
+
"@ggui-ai/project-config": "0.8.0",
|
|
53
|
+
"@ggui-ai/iframe-runtime": "0.8.0",
|
|
54
|
+
"@ggui-ai/ui-gen": "0.8.0",
|
|
55
|
+
"@ggui-ai/ui-registry": "0.8.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@types/node": "^24.0.0",
|