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.
package/cli/cmd-evento.d.ts
CHANGED
|
@@ -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;
|
package/cli/device-id-env.js
CHANGED
|
@@ -1,50 +1,5 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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
|
}
|
package/cli/device-id-env.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"device-id-env.js","sourceRoot":"","sources":["../../jsr/cli/device-id-env.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,
|
|
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
|
-
|
|
29
|
-
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9E,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,SAAS,eAAe,CAAC,aAAqB;IAE5C,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,GAAG,EAAE,CAAC,CAAC;IAChD,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACtC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAAE,aAAa,CAAC,CAAC;IAC5D,OAAO,KAAK,CAAC;AACf,CAAC;AAGD,SAAS,OAAO,CAAC,KAAqB;IACpC,OAAQ,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAoB,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,aAAa;IAEpB,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,iBAAiB,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;IAItE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
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.
|
|
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.
|
|
34
|
-
"@vibes.diy/api-types": "14.1.
|
|
35
|
-
"@vibes.diy/call-ai-v2": "14.1.
|
|
36
|
-
"@vibes.diy/cmd-harness": "14.1.
|
|
37
|
-
"@vibes.diy/cmd-tools": "14.1.
|
|
38
|
-
"@vibes.diy/identity": "14.1.
|
|
39
|
-
"@vibes.diy/prompts": "14.1.
|
|
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",
|