vibes-diy 14.1.38 → 14.1.39

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.
@@ -316,6 +316,9 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
316
316
  email: string;
317
317
  updatedAt: string;
318
318
  verified?: boolean | undefined;
319
+ } | {
320
+ type: "onboarding";
321
+ completedAt: string;
319
322
  } | {
320
323
  type: "geoCountry";
321
324
  country: string;
@@ -326,9 +329,6 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
326
329
  [x: string]: string;
327
330
  };
328
331
  updatedAt: string;
329
- } | {
330
- type: "onboarding";
331
- completedAt: string;
332
332
  } | {
333
333
  type: "kyc";
334
334
  cardAt?: string | undefined;
@@ -1,50 +1,5 @@
1
- import { JWKPrivateSchema } from "@vibes.diy/identity";
2
- import { getKeyBag } from "@vibes.diy/identity/node";
3
- import { Buffer } from "node:buffer";
1
+ import { getKeyBag, parseDeviceIdEnvValue } from "@vibes.diy/identity/node";
4
2
  export const VIBES_DEVICE_ID_ENV = "VIBES_DEVICE_ID";
5
- function parseEnvValue(raw) {
6
- const trimmed = raw.trim();
7
- try {
8
- return JSON.parse(trimmed);
9
- }
10
- catch {
11
- }
12
- let decoded;
13
- try {
14
- decoded = Buffer.from(trimmed, "base64").toString("utf8");
15
- }
16
- catch {
17
- throw new Error(`${VIBES_DEVICE_ID_ENV} is not valid JSON or base64-encoded JSON`);
18
- }
19
- try {
20
- return JSON.parse(decoded);
21
- }
22
- catch {
23
- throw new Error(`${VIBES_DEVICE_ID_ENV} is not valid JSON or base64-encoded JSON`);
24
- }
25
- }
26
- function asRecord(v) {
27
- return v && typeof v === "object" ? v : undefined;
28
- }
29
- function extractDeviceId(parsed) {
30
- const top = asRecord(parsed);
31
- const item = asRecord(top?.item) ?? top;
32
- if (!item || !("deviceId" in item)) {
33
- throw new Error(`${VIBES_DEVICE_ID_ENV} must contain a device-id keybag item with "deviceId" and "cert"`);
34
- }
35
- let deviceId;
36
- try {
37
- deviceId = JWKPrivateSchema.parse(item.deviceId);
38
- }
39
- catch (e) {
40
- throw new Error(`${VIBES_DEVICE_ID_ENV} has an invalid device private key: ${e.message}`, { cause: e });
41
- }
42
- const cert = asRecord(item.cert);
43
- if (!cert || typeof cert.certificateJWT !== "string" || !asRecord(cert.certificatePayload)) {
44
- throw new Error(`${VIBES_DEVICE_ID_ENV} is missing the signed certificate — copy the full ~/.fireproof/keybag/<id>.json written by 'vibes-diy login'`);
45
- }
46
- return { deviceId, cert: cert };
47
- }
48
3
  export async function seedDeviceIdFromEnv(sthis) {
49
4
  const raw = sthis.env.get(VIBES_DEVICE_ID_ENV);
50
5
  if (!raw)
@@ -53,7 +8,10 @@ export async function seedDeviceIdFromEnv(sthis) {
53
8
  const existing = await kb.getDeviceId();
54
9
  if (existing.cert.IsSome())
55
10
  return "already-authenticated";
56
- const { deviceId, cert } = extractDeviceId(parseEnvValue(raw));
11
+ const rItem = parseDeviceIdEnvValue(raw, { envVarName: VIBES_DEVICE_ID_ENV });
12
+ if (rItem.isErr())
13
+ throw rItem.Err();
14
+ const { deviceId, cert } = rItem.Ok();
57
15
  await kb.setDeviceId(deviceId, cert);
58
16
  return "seeded";
59
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"device-id-env.js","sourceRoot":"","sources":["../../jsr/cli/device-id-env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-id-env.js","sourceRoot":"","sources":["../../jsr/cli/device-id-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAsB5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAgBrD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,KAAgB;IACxD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,OAAO,CAAC;IACzB,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;QAAE,OAAO,uBAAuB,CAAC;IAG3D,MAAM,KAAK,GAAG,qBAAqB,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC9E,IAAI,KAAK,CAAC,KAAK,EAAE;QAAE,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IACrC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;IACtC,MAAM,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -5,6 +5,7 @@ import { Buffer } from "node:buffer";
5
5
  import { mkdtempSync, writeFileSync } from "node:fs";
6
6
  import { tmpdir } from "node:os";
7
7
  import { join } from "node:path";
8
+ import { createTestDeviceIdKeybagFile } from "@vibes.diy/identity/testing";
8
9
  import { seedDeviceIdFromEnv, VIBES_DEVICE_ID_ENV } from "./device-id-env.js";
9
10
  const DEVICE_ID_FILENAME = "z3QkefAC57rcrs.json";
10
11
  function fileKeybagSthis(rawKeybagFile) {
@@ -24,18 +25,9 @@ function inMemorySthis() {
24
25
  sthis.env.delete(VIBES_DEVICE_ID_ENV);
25
26
  return sthis;
26
27
  }
27
- function fakeDeviceIdItem(xField = "device-key-x") {
28
- return {
29
- id: "z3QkefAC57rcrs",
30
- clazz: "DeviceIdKeyBagItem",
31
- item: {
32
- deviceId: { kty: "EC", crv: "P-256", x: xField, y: "device-key-y", d: "device-key-d" },
33
- cert: {
34
- certificateJWT: "header.payload.sig",
35
- certificatePayload: { sub: "zuafXh9a", certificate: { commonName: "zuafXh9a" } },
36
- },
37
- },
38
- };
28
+ async function fakeDeviceIdItem(xField = "device-key-x") {
29
+ const file = await createTestDeviceIdKeybagFile({ sthis: ensureSuperThis() });
30
+ return { ...file, item: { ...file.item, deviceId: { ...file.item.deviceId, x: xField } } };
39
31
  }
40
32
  describe("seedDeviceIdFromEnv", () => {
41
33
  it("is a no-op and returns 'unset' when the env var is unset", async () => {
@@ -46,7 +38,7 @@ describe("seedDeviceIdFromEnv", () => {
46
38
  });
47
39
  it("seeds the keybag from raw JSON", async () => {
48
40
  const sthis = inMemorySthis();
49
- sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(fakeDeviceIdItem()));
41
+ sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(await fakeDeviceIdItem()));
50
42
  expect(await seedDeviceIdFromEnv(sthis)).toBe("seeded");
51
43
  const devid = await (await getKeyBag(sthis)).getDeviceId();
52
44
  expect(devid.cert.IsSome()).toBe(true);
@@ -54,7 +46,7 @@ describe("seedDeviceIdFromEnv", () => {
54
46
  });
55
47
  it("seeds the keybag from base64-encoded JSON", async () => {
56
48
  const sthis = inMemorySthis();
57
- const b64 = Buffer.from(JSON.stringify(fakeDeviceIdItem("b64-x")), "utf8").toString("base64");
49
+ const b64 = Buffer.from(JSON.stringify(await fakeDeviceIdItem("b64-x")), "utf8").toString("base64");
58
50
  sthis.env.set(VIBES_DEVICE_ID_ENV, b64);
59
51
  expect(await seedDeviceIdFromEnv(sthis)).toBe("seeded");
60
52
  const devid = await (await getKeyBag(sthis)).getDeviceId();
@@ -62,7 +54,7 @@ describe("seedDeviceIdFromEnv", () => {
62
54
  });
63
55
  it("accepts the bare item shape ({ deviceId, cert })", async () => {
64
56
  const sthis = inMemorySthis();
65
- sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(fakeDeviceIdItem("bare-x").item));
57
+ sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify((await fakeDeviceIdItem("bare-x")).item));
66
58
  expect(await seedDeviceIdFromEnv(sthis)).toBe("seeded");
67
59
  const devid = await (await getKeyBag(sthis)).getDeviceId();
68
60
  expect(deviceX(devid)).toBe("bare-x");
@@ -70,16 +62,16 @@ describe("seedDeviceIdFromEnv", () => {
70
62
  it("reports 'already-authenticated' and never clobbers an existing certificate", async () => {
71
63
  const sthis = inMemorySthis();
72
64
  const kb = await getKeyBag(sthis);
73
- const original = fakeDeviceIdItem("original-x");
65
+ const original = await fakeDeviceIdItem("original-x");
74
66
  await kb.setDeviceId(original.item.deviceId, original.item.cert);
75
- sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(fakeDeviceIdItem("replacement-x")));
67
+ sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(await fakeDeviceIdItem("replacement-x")));
76
68
  expect(await seedDeviceIdFromEnv(sthis)).toBe("already-authenticated");
77
69
  const devid = await kb.getDeviceId();
78
70
  expect(deviceX(devid)).toBe("original-x");
79
71
  });
80
72
  it("seeds over a corrupt on-disk keybag (headless self-heal, #2726)", async () => {
81
73
  const sthis = fileKeybagSthis('{"id":"z3QkefAC57rcrs","clazz":"DeviceIdK');
82
- sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(fakeDeviceIdItem("healed-x")));
74
+ sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(await fakeDeviceIdItem("healed-x")));
83
75
  expect(await seedDeviceIdFromEnv(sthis)).toBe("seeded");
84
76
  const devid = await (await getKeyBag(sthis)).getDeviceId();
85
77
  expect(devid.error).toBeUndefined();
@@ -92,14 +84,14 @@ describe("seedDeviceIdFromEnv", () => {
92
84
  });
93
85
  it("throws when the device private key is invalid", async () => {
94
86
  const sthis = inMemorySthis();
95
- const item = fakeDeviceIdItem();
87
+ const item = await fakeDeviceIdItem();
96
88
  delete item.item.deviceId.d;
97
89
  sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(item));
98
90
  await expect(seedDeviceIdFromEnv(sthis)).rejects.toThrow(/invalid device private key/);
99
91
  });
100
92
  it("throws when the signed certificate is missing", async () => {
101
93
  const sthis = inMemorySthis();
102
- const item = fakeDeviceIdItem();
94
+ const item = await fakeDeviceIdItem();
103
95
  delete item.item.cert;
104
96
  sthis.env.set(VIBES_DEVICE_ID_ENV, JSON.stringify(item));
105
97
  await expect(seedDeviceIdFromEnv(sthis)).rejects.toThrow(/missing the signed certificate/);
@@ -1 +1 @@
1
- {"version":3,"file":"device-id-env.test.js","sourceRoot":"","sources":["../../jsr/cli/device-id-env.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-id-env.test.js","sourceRoot":"","sources":["../../jsr/cli/device-id-env.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibes-diy",
3
- "version": "14.1.38",
3
+ "version": "14.1.39",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "description": "Command-line tool for vibes.diy — generate, edit, pull, push, and publish AI-built apps",
@@ -30,13 +30,13 @@
30
30
  "dependencies": {
31
31
  "@adviser/cement": "~0.5.34",
32
32
  "@modelcontextprotocol/sdk": "~1.30.0",
33
- "@vibes.diy/api-impl": "14.1.38",
34
- "@vibes.diy/api-types": "14.1.38",
35
- "@vibes.diy/call-ai-v2": "14.1.38",
36
- "@vibes.diy/cmd-harness": "14.1.38",
37
- "@vibes.diy/cmd-tools": "14.1.38",
38
- "@vibes.diy/identity": "14.1.38",
39
- "@vibes.diy/prompts": "14.1.38",
33
+ "@vibes.diy/api-impl": "14.1.39",
34
+ "@vibes.diy/api-types": "14.1.39",
35
+ "@vibes.diy/call-ai-v2": "14.1.39",
36
+ "@vibes.diy/cmd-harness": "14.1.39",
37
+ "@vibes.diy/cmd-tools": "14.1.39",
38
+ "@vibes.diy/identity": "14.1.39",
39
+ "@vibes.diy/prompts": "14.1.39",
40
40
  "arktype": "~2.2.3",
41
41
  "charwise": "~3.0.1",
42
42
  "cmd-ts": "~0.15.0",