@ggui-ai/cli 0.8.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);
@@ -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.8.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.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"
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",