@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":"AAsFA,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,CAodjB;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"}
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 403/404/410 with an HTML or empty body, and the
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
- stderr(`${verb}: package ${flags.artifactId}@${flags.version} not found\n`);
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.7.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.7.0",
41
- "@ggui-ai/artifact-manifest": "0.7.0",
42
- "@ggui-ai/design": "0.7.0",
43
- "@ggui-ai/dev-stack": "0.7.0",
44
- "@ggui-ai/gadget-signing": "0.7.0",
45
- "@ggui-ai/embedding-local": "0.7.0",
46
- "@ggui-ai/mcp-server": "0.7.0",
47
- "@ggui-ai/mcp-server-core": "0.7.0",
48
- "@ggui-ai/preview-a2ui": "0.7.0",
49
- "@ggui-ai/mcp-server-handlers": "0.7.0",
50
- "@ggui-ai/project-config": "0.7.0",
51
- "@ggui-ai/registry-core": "0.7.0",
52
- "@ggui-ai/protocol": "0.7.0",
53
- "@ggui-ai/iframe-runtime": "0.7.0",
54
- "@ggui-ai/ui-gen": "0.7.0",
55
- "@ggui-ai/ui-registry": "0.7.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",