@ggui-ai/cli 0.7.0 → 0.9.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":"gadget-create.d.ts","sourceRoot":"","sources":["../src/gadget-create.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAQpC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CACpD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,iBAAiB,CA4EnB;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EACT,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,UAAU,CAAC;IACf,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE3E;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,cAAc,CAoCjB;AA0ND;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACvB,OAAO,CAAC,kBAAkB,CAAC,CA+H7B;AAED,eAAO,MAAM,kBAAkB,w6CAgC9B,CAAC"}
1
+ {"version":3,"file":"gadget-create.d.ts","sourceRoot":"","sources":["../src/gadget-create.ts"],"names":[],"mappings":"AAoBA,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAQpC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,qEAAqE;IACrE,QAAQ,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;CACpD;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IACnC,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,iBAAiB,CA4EnB;AAED,mEAAmE;AACnE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;CACnC;AAED,wEAAwE;AACxE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,qCAAqC;IACrC,QAAQ,CAAC,IAAI,EACT,oBAAoB,GACpB,kBAAkB,GAClB,kBAAkB,GAClB,UAAU,CAAC;IACf,oEAAoE;IACpE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAE3E;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,cAAc,CAoCjB;AA0ND;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,KAAK,EAAE,iBAAiB,EACxB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,GACvB,OAAO,CAAC,kBAAkB,CAAC,CAmI7B;AAED,eAAO,MAAM,kBAAkB,w6CAgC9B,CAAC"}
@@ -17,7 +17,7 @@
17
17
  * the real argv + writes the banner.
18
18
  */
19
19
  import { mkdir, readdir, writeFile } from 'node:fs/promises';
20
- import { join } from 'node:path';
20
+ import { join, resolve } from 'node:path';
21
21
  import { GGUI_GADGET_JSON_FILENAME, parseGadgetManifest, } from '@ggui-ai/artifact-manifest';
22
22
  /** Default version for a freshly scaffolded gadget. */
23
23
  const DEFAULT_VERSION = '0.0.1';
@@ -393,7 +393,11 @@ export async function runGadgetCreate(flags, options) {
393
393
  message: err instanceof Error ? err.message : 'failed to validate manifest',
394
394
  };
395
395
  }
396
- const targetDir = join(options.cwd, flags.dir ?? name);
396
+ // `resolve` (not `join`): when `flags.dir` is an absolute path, it must
397
+ // win over `options.cwd`. `join('/repo', '/tmp/foo')` concatenates to
398
+ // `/repo/tmp/foo`; `resolve('/repo', '/tmp/foo')` correctly returns
399
+ // `/tmp/foo`. Relative paths still resolve against cwd.
400
+ const targetDir = resolve(options.cwd, flags.dir ?? name);
397
401
  let dirState;
398
402
  try {
399
403
  dirState = await isDirectoryEmpty(targetDir);
@@ -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.
@@ -672,10 +672,15 @@ function describeRegistryAuthRejection(authKind, path) {
672
672
  }
673
673
  async function runConformancePreflight(opts) {
674
674
  const url = `${opts.registryUrl}/conformance/check`;
675
+ // `bundle` is RAW ESM TEXT on this route — `checkConformance` feeds
676
+ // it straight to the parser. Unlike `/publish` (which uploads bytes
677
+ // and takes base64), the conformance gate checks text; base64 here
678
+ // parses as one exportless expression statement and every gadget
679
+ // preflight dies with `missing_default_export`.
675
680
  const body = JSON.stringify({
676
681
  manifest: opts.manifest,
677
682
  ...(opts.bundleBytes !== undefined
678
- ? { bundle: Buffer.from(opts.bundleBytes).toString('base64') }
683
+ ? { bundle: Buffer.from(opts.bundleBytes).toString('utf8') }
679
684
  : {}),
680
685
  });
681
686
  let res;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ggui-ai/cli",
3
- "version": "0.7.0",
3
+ "version": "0.9.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.9.0",
41
+ "@ggui-ai/artifact-manifest": "0.9.0",
42
+ "@ggui-ai/gadget-signing": "0.9.0",
43
+ "@ggui-ai/dev-stack": "0.9.0",
44
+ "@ggui-ai/design": "0.9.0",
45
+ "@ggui-ai/embedding-local": "0.9.0",
46
+ "@ggui-ai/mcp-server-core": "0.9.0",
47
+ "@ggui-ai/mcp-server": "0.9.0",
48
+ "@ggui-ai/preview-a2ui": "0.9.0",
49
+ "@ggui-ai/protocol": "0.9.0",
50
+ "@ggui-ai/mcp-server-handlers": "0.9.0",
51
+ "@ggui-ai/registry-core": "0.9.0",
52
+ "@ggui-ai/project-config": "0.9.0",
53
+ "@ggui-ai/iframe-runtime": "0.9.0",
54
+ "@ggui-ai/ui-gen": "0.9.0",
55
+ "@ggui-ai/ui-registry": "0.9.0"
56
56
  },
57
57
  "devDependencies": {
58
58
  "@types/node": "^24.0.0",