vibes-diy 13.1.0 → 13.1.2
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 +7 -0
- package/cli/cmds/db/acting-handle-pin.test.d.ts +1 -0
- package/cli/cmds/db/acting-handle-pin.test.js +69 -0
- package/cli/cmds/db/acting-handle-pin.test.js.map +1 -0
- package/cli/cmds/db/admin-mode-narrowing.test.d.ts +1 -0
- package/cli/cmds/db/admin-mode-narrowing.test.js +113 -0
- package/cli/cmds/db/admin-mode-narrowing.test.js.map +1 -0
- package/cli/cmds/db/del-cmd.d.ts +1 -0
- package/cli/cmds/db/del-cmd.js +8 -2
- package/cli/cmds/db/del-cmd.js.map +1 -1
- package/cli/cmds/db/get-cmd.d.ts +4 -0
- package/cli/cmds/db/get-cmd.js +19 -5
- package/cli/cmds/db/get-cmd.js.map +1 -1
- package/cli/cmds/db/index.d.ts +6 -0
- package/cli/cmds/db/list-cmd.d.ts +3 -0
- package/cli/cmds/db/list-cmd.js +13 -5
- package/cli/cmds/db/list-cmd.js.map +1 -1
- package/cli/cmds/db/put-cmd.d.ts +1 -0
- package/cli/cmds/db/put-cmd.js +8 -2
- package/cli/cmds/db/put-cmd.js.map +1 -1
- package/cli/cmds/db/query-cmd.d.ts +4 -0
- package/cli/cmds/db/query-cmd.js +18 -4
- package/cli/cmds/db/query-cmd.js.map +1 -1
- package/cli/cmds/db/shared.d.ts +8 -0
- package/cli/cmds/db/shared.js +24 -3
- package/cli/cmds/db/shared.js.map +1 -1
- package/cli/cmds/db/shared.test.js +27 -2
- package/cli/cmds/db/shared.test.js.map +1 -1
- package/package.json +8 -8
package/cli/cmd-evento.d.ts
CHANGED
|
@@ -166,6 +166,7 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
|
|
|
166
166
|
dbName: string;
|
|
167
167
|
docId: string;
|
|
168
168
|
admin: boolean;
|
|
169
|
+
actingHandle: string;
|
|
169
170
|
}, {
|
|
170
171
|
type: "vibes-diy.cli.db.del-res";
|
|
171
172
|
id: string;
|
|
@@ -737,6 +738,7 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
|
|
|
737
738
|
apiUrl: string;
|
|
738
739
|
appSlug: string;
|
|
739
740
|
ownerHandle: string;
|
|
741
|
+
admin: boolean;
|
|
740
742
|
}, {
|
|
741
743
|
type: "vibes-diy.cli.db.list-res";
|
|
742
744
|
dbNames: string[];
|
|
@@ -747,6 +749,8 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
|
|
|
747
749
|
ownerHandle: string;
|
|
748
750
|
dbName: string;
|
|
749
751
|
docId: string;
|
|
752
|
+
admin: boolean;
|
|
753
|
+
actingHandle: string;
|
|
750
754
|
}, {
|
|
751
755
|
type: "vibes-diy.cli.db.get-res";
|
|
752
756
|
doc: {
|
|
@@ -761,6 +765,7 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
|
|
|
761
765
|
docJson: string;
|
|
762
766
|
docId: string;
|
|
763
767
|
admin: boolean;
|
|
768
|
+
actingHandle: string;
|
|
764
769
|
}, {
|
|
765
770
|
type: "vibes-diy.cli.db.put-res";
|
|
766
771
|
id: string;
|
|
@@ -777,6 +782,8 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
|
|
|
777
782
|
range: string;
|
|
778
783
|
limit: number;
|
|
779
784
|
descending: boolean;
|
|
785
|
+
admin: boolean;
|
|
786
|
+
actingHandle: string;
|
|
780
787
|
}, {
|
|
781
788
|
type: "vibes-diy.cli.db.query-res";
|
|
782
789
|
docs: {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { AppContext } from "@adviser/cement";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { createCliStream } from "../../cli-kit.js";
|
|
4
|
+
import { dbPutEvento } from "./put-cmd.js";
|
|
5
|
+
function makeCtx(factoryOverride) {
|
|
6
|
+
return {
|
|
7
|
+
sthis: { env: { get: () => undefined }, nextId: () => ({ str: "test-id" }) },
|
|
8
|
+
cliStream: createCliStream(),
|
|
9
|
+
output: { stdout: () => undefined, stderr: () => undefined },
|
|
10
|
+
exitCode: 0,
|
|
11
|
+
vibesDiyApiFactory: factoryOverride,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function stubApi(putCalls) {
|
|
15
|
+
return {
|
|
16
|
+
ensureUserSettings: vi.fn().mockResolvedValue({
|
|
17
|
+
isErr: () => false,
|
|
18
|
+
Ok: () => ({ settings: [{ type: "defaultHandle", ownerHandle: "meghan-sinnott" }] }),
|
|
19
|
+
}),
|
|
20
|
+
listHandleBindings: vi.fn().mockResolvedValue({
|
|
21
|
+
isErr: () => false,
|
|
22
|
+
Ok: () => ({ items: [{ ownerHandle: "meghan-sinnott" }, { ownerHandle: "festival" }] }),
|
|
23
|
+
}),
|
|
24
|
+
putDoc: vi.fn((req) => {
|
|
25
|
+
putCalls.push(req);
|
|
26
|
+
return Promise.resolve({
|
|
27
|
+
isErr: () => false,
|
|
28
|
+
Ok: () => ({ type: "vibes.diy.res-put-doc", status: "ok", id: "doc-1" }),
|
|
29
|
+
});
|
|
30
|
+
}),
|
|
31
|
+
close: vi.fn(() => Promise.resolve()),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const basePut = {
|
|
35
|
+
type: "vibes-diy.cli.db.put",
|
|
36
|
+
apiUrl: "https://vibes.diy/api?.stable-entry.=cli",
|
|
37
|
+
appSlug: "telluride-blues-2026",
|
|
38
|
+
ownerHandle: "festival",
|
|
39
|
+
actingHandle: "",
|
|
40
|
+
dbName: "tellurideblues",
|
|
41
|
+
docJson: '{"_id":"snap-1","type":"schedulesnapshot"}',
|
|
42
|
+
docId: "",
|
|
43
|
+
admin: false,
|
|
44
|
+
};
|
|
45
|
+
async function runPut(validated) {
|
|
46
|
+
const putCalls = [];
|
|
47
|
+
const ctx = makeCtx((() => stubApi(putCalls)));
|
|
48
|
+
await dbPutEvento.handle({
|
|
49
|
+
ctx: new AppContext().set("cliCtx", ctx),
|
|
50
|
+
validated,
|
|
51
|
+
send: { send: vi.fn(), done: vi.fn() },
|
|
52
|
+
enRequest: validated,
|
|
53
|
+
});
|
|
54
|
+
return putCalls;
|
|
55
|
+
}
|
|
56
|
+
describe("db put carries the act-as pin (#4326)", () => {
|
|
57
|
+
it("an explicit --handle rides the wire as actingHandle", async () => {
|
|
58
|
+
const calls = await runPut({ ...basePut, actingHandle: "festival" });
|
|
59
|
+
expect(calls).toHaveLength(1);
|
|
60
|
+
expect(calls[0].actingHandle).toBe("festival");
|
|
61
|
+
expect(calls[0].ownerHandle).toBe("festival");
|
|
62
|
+
});
|
|
63
|
+
it("--vibe alone sends no pin — the caller's active handle still decides", async () => {
|
|
64
|
+
const calls = await runPut(basePut);
|
|
65
|
+
expect(calls).toHaveLength(1);
|
|
66
|
+
expect(calls[0].actingHandle).toBeUndefined();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
//# sourceMappingURL=acting-handle-pin.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acting-handle-pin.test.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/acting-handle-pin.test.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAiB,MAAM,cAAc,CAAC;AAE1D,SAAS,OAAO,CAAC,eAA8C;IAC7D,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAgC;QAC1G,SAAS,EAAE,eAAe,EAAE;QAC5B,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE;QAC5D,QAAQ,EAAE,CAAC;QACX,kBAAkB,EAAE,eAAe;KACpC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,QAAmC;IAClD,OAAO;QACL,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAC5C,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;YAClB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAE,CAAC;SACrF,CAAC;QACF,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAC5C,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;YAClB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC;SACxF,CAAC;QACF,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,GAA4B,EAAE,EAAE;YAC7C,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK;gBAClB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;aACzE,CAAC,CAAC;QACL,CAAC,CAAC;QACF,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;KACZ,CAAC;AAC9B,CAAC;AAED,MAAM,OAAO,GAAa;IACxB,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,0CAA0C;IAClD,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,UAAU;IACvB,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,4CAA4C;IACrD,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,KAAK;CACb,CAAC;AAEF,KAAK,UAAU,MAAM,CAAC,SAAmB;IACvC,MAAM,QAAQ,GAA8B,EAAE,CAAC;IAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAiC,CAAC,CAAC;IAC/E,MAAM,WAAW,CAAC,MAAM,CAAC;QACvB,GAAG,EAAE,IAAI,UAAU,EAAE,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;QACxC,SAAS;QACT,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;QACtC,SAAS,EAAE,SAAS;KACuC,CAAC,CAAC;IAC/D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,CAAC;QACrE,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,aAAa,EAAE,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { AppContext } from "@adviser/cement";
|
|
2
|
+
import { describe, expect, it, vi } from "vitest";
|
|
3
|
+
import { createCliStream } from "../../cli-kit.js";
|
|
4
|
+
import { dbGetEvento } from "./get-cmd.js";
|
|
5
|
+
import { dbListEvento } from "./list-cmd.js";
|
|
6
|
+
function makeCtx(factoryOverride) {
|
|
7
|
+
return {
|
|
8
|
+
sthis: { env: { get: () => undefined }, nextId: () => ({ str: "test-id" }) },
|
|
9
|
+
cliStream: createCliStream(),
|
|
10
|
+
output: { stdout: () => undefined, stderr: () => undefined },
|
|
11
|
+
exitCode: 0,
|
|
12
|
+
vibesDiyApiFactory: factoryOverride,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function stubApi(opts) {
|
|
16
|
+
return {
|
|
17
|
+
ensureUserSettings: vi.fn().mockResolvedValue({
|
|
18
|
+
isErr: () => false,
|
|
19
|
+
Ok: () => ({ settings: [{ type: "defaultHandle", ownerHandle: opts.myHandles[0] }] }),
|
|
20
|
+
}),
|
|
21
|
+
listHandleBindings: vi.fn().mockResolvedValue({
|
|
22
|
+
isErr: () => false,
|
|
23
|
+
Ok: () => ({ items: opts.myHandles.map((ownerHandle) => ({ ownerHandle })) }),
|
|
24
|
+
}),
|
|
25
|
+
getDoc: vi.fn((req) => {
|
|
26
|
+
opts.getDocCalls.push(req);
|
|
27
|
+
return Promise.resolve({ isErr: () => true, Err: () => "Access denied" });
|
|
28
|
+
}),
|
|
29
|
+
listDbNames: vi.fn((req) => {
|
|
30
|
+
opts.listCalls.push(req);
|
|
31
|
+
return Promise.resolve({ isErr: () => false, Ok: () => ({ dbNames: ["default"] }) });
|
|
32
|
+
}),
|
|
33
|
+
close: vi.fn(() => Promise.resolve()),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
async function runGet(validated, myHandles) {
|
|
37
|
+
const getDocCalls = [];
|
|
38
|
+
const listCalls = [];
|
|
39
|
+
const api = stubApi({ myHandles, getDocCalls, listCalls });
|
|
40
|
+
const ctx = makeCtx((() => api));
|
|
41
|
+
const r = await dbGetEvento.handle({
|
|
42
|
+
ctx: new AppContext().set("cliCtx", ctx),
|
|
43
|
+
validated,
|
|
44
|
+
send: { send: vi.fn(), done: vi.fn() },
|
|
45
|
+
enRequest: validated,
|
|
46
|
+
});
|
|
47
|
+
return { getDocCalls, err: r.isErr() ? `${r.Err()}` : undefined };
|
|
48
|
+
}
|
|
49
|
+
const baseGet = {
|
|
50
|
+
type: "vibes-diy.cli.db.get",
|
|
51
|
+
apiUrl: "https://vibes.diy/api?.stable-entry.=cli",
|
|
52
|
+
appSlug: "todos",
|
|
53
|
+
ownerHandle: "",
|
|
54
|
+
dbName: "default",
|
|
55
|
+
docId: "doc-1",
|
|
56
|
+
admin: false,
|
|
57
|
+
actingHandle: "",
|
|
58
|
+
};
|
|
59
|
+
describe("db reads request elevation only on intent (#4997)", () => {
|
|
60
|
+
it("own vibe (no explicit handle): still elevated, and the owner never types --admin", async () => {
|
|
61
|
+
const { getDocCalls } = await runGet(baseGet, ["alice"]);
|
|
62
|
+
expect(getDocCalls).toHaveLength(1);
|
|
63
|
+
expect(getDocCalls[0].adminMode).toBe(true);
|
|
64
|
+
expect(getDocCalls[0].ownerHandle).toBe("alice");
|
|
65
|
+
});
|
|
66
|
+
it("own vibe under an ALT handle: still elevated — ownership is account-based", async () => {
|
|
67
|
+
const { getDocCalls } = await runGet({ ...baseGet, ownerHandle: "alice-alt" }, ["alice", "alice-alt"]);
|
|
68
|
+
expect(getDocCalls[0].adminMode).toBe(true);
|
|
69
|
+
});
|
|
70
|
+
it("foreign owner without --admin: adminMode is NOT sent", async () => {
|
|
71
|
+
const { getDocCalls } = await runGet({ ...baseGet, ownerHandle: "bob" }, ["alice"]);
|
|
72
|
+
expect(getDocCalls).toHaveLength(1);
|
|
73
|
+
expect(getDocCalls[0].adminMode).toBeUndefined();
|
|
74
|
+
});
|
|
75
|
+
it("foreign owner WITH --admin: elevation is requested", async () => {
|
|
76
|
+
const { getDocCalls } = await runGet({ ...baseGet, ownerHandle: "bob", admin: true }, ["alice"]);
|
|
77
|
+
expect(getDocCalls[0].adminMode).toBe(true);
|
|
78
|
+
});
|
|
79
|
+
it("a refused unelevated foreign read names the flag rather than just 'Access denied'", async () => {
|
|
80
|
+
const { err } = await runGet({ ...baseGet, ownerHandle: "bob" }, ["alice"]);
|
|
81
|
+
expect(err).toContain("Access denied");
|
|
82
|
+
expect(err).toContain("--admin");
|
|
83
|
+
});
|
|
84
|
+
it("a refused read of the caller's OWN vibe is not told to retry with --admin", async () => {
|
|
85
|
+
const { err } = await runGet(baseGet, ["alice"]);
|
|
86
|
+
expect(err).toContain("Access denied");
|
|
87
|
+
expect(err).not.toContain("--admin");
|
|
88
|
+
});
|
|
89
|
+
it("db list follows the same rule", async () => {
|
|
90
|
+
const listCalls = [];
|
|
91
|
+
const getDocCalls = [];
|
|
92
|
+
const api = stubApi({ myHandles: ["alice"], getDocCalls, listCalls });
|
|
93
|
+
const ctx = makeCtx((() => api));
|
|
94
|
+
const run = async (validated) => dbListEvento.handle({
|
|
95
|
+
ctx: new AppContext().set("cliCtx", ctx),
|
|
96
|
+
validated,
|
|
97
|
+
send: { send: vi.fn(), done: vi.fn() },
|
|
98
|
+
enRequest: validated,
|
|
99
|
+
});
|
|
100
|
+
const base = {
|
|
101
|
+
type: "vibes-diy.cli.db.list",
|
|
102
|
+
apiUrl: "https://vibes.diy/api?.stable-entry.=cli",
|
|
103
|
+
appSlug: "todos",
|
|
104
|
+
ownerHandle: "",
|
|
105
|
+
admin: false,
|
|
106
|
+
};
|
|
107
|
+
await run(base);
|
|
108
|
+
await run({ ...base, ownerHandle: "bob" });
|
|
109
|
+
await run({ ...base, ownerHandle: "bob", admin: true });
|
|
110
|
+
expect(listCalls.map((c) => c.adminMode)).toEqual([true, false, true]);
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
//# sourceMappingURL=admin-mode-narrowing.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-mode-narrowing.test.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/admin-mode-narrowing.test.ts"],"names":[],"mappings":"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"}
|
package/cli/cmds/db/del-cmd.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare const ReqDbDel: import("arktype/internal/variants/object.ts").Obj
|
|
|
9
9
|
dbName: string;
|
|
10
10
|
docId: string;
|
|
11
11
|
admin: boolean;
|
|
12
|
+
actingHandle: string;
|
|
12
13
|
}, {}>;
|
|
13
14
|
export type ReqDbDel = typeof ReqDbDel.infer;
|
|
14
15
|
export declare function isReqDbDel(obj: unknown): obj is ReqDbDel;
|
package/cli/cmds/db/del-cmd.js
CHANGED
|
@@ -14,6 +14,7 @@ export const ReqDbDel = type({
|
|
|
14
14
|
dbName: "string",
|
|
15
15
|
docId: "string",
|
|
16
16
|
admin: "boolean",
|
|
17
|
+
actingHandle: "string",
|
|
17
18
|
});
|
|
18
19
|
export function isReqDbDel(obj) {
|
|
19
20
|
return !(ReqDbDel(obj) instanceof type.errors);
|
|
@@ -44,7 +45,11 @@ export const dbDelEvento = {
|
|
|
44
45
|
if (rApi.isErr())
|
|
45
46
|
return Result.Err(rApi.Err());
|
|
46
47
|
const { api, ownerHandle } = rApi.Ok();
|
|
47
|
-
const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, {
|
|
48
|
+
const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, {
|
|
49
|
+
ownerHandle,
|
|
50
|
+
adminMode: ctx.validated.admin,
|
|
51
|
+
...(ctx.validated.actingHandle ? { actingHandle: ctx.validated.actingHandle } : {}),
|
|
52
|
+
});
|
|
48
53
|
const r = await adapter.deleteDoc(ctx.validated.docId, ctx.validated.dbName);
|
|
49
54
|
if (r.isErr())
|
|
50
55
|
return Result.Err(r.Err());
|
|
@@ -80,7 +85,7 @@ export function dbDelCmd(ctx) {
|
|
|
80
85
|
}),
|
|
81
86
|
admin: flag({
|
|
82
87
|
long: "admin",
|
|
83
|
-
description: "Delete with admin override
|
|
88
|
+
description: "Delete with admin override: bypasses the legacy db ACL. The vibe's access function still runs and can still refuse. Works for the vibe owner or a platform admin",
|
|
84
89
|
}),
|
|
85
90
|
},
|
|
86
91
|
handler: ctx.cliStream.enqueue((args) => {
|
|
@@ -99,6 +104,7 @@ export function dbDelCmd(ctx) {
|
|
|
99
104
|
apiUrl: args.apiUrl,
|
|
100
105
|
appSlug: resolved.appSlug,
|
|
101
106
|
ownerHandle: resolved.ownerHandle,
|
|
107
|
+
actingHandle: resolved.actingHandle,
|
|
102
108
|
dbName: args.dbName,
|
|
103
109
|
docId,
|
|
104
110
|
admin: args.admin,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"del-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/del-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE7E,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"del-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/del-cmd.ts"],"names":[],"mappings":"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"}
|
package/cli/cmds/db/get-cmd.d.ts
CHANGED
|
@@ -8,6 +8,8 @@ export declare const ReqDbGet: import("arktype/internal/variants/object.ts").Obj
|
|
|
8
8
|
ownerHandle: string;
|
|
9
9
|
dbName: string;
|
|
10
10
|
docId: string;
|
|
11
|
+
admin: boolean;
|
|
12
|
+
actingHandle: string;
|
|
11
13
|
}, {}>;
|
|
12
14
|
export type ReqDbGet = typeof ReqDbGet.infer;
|
|
13
15
|
export declare function isReqDbGet(obj: unknown): obj is ReqDbGet;
|
|
@@ -32,6 +34,7 @@ export declare function dbGetCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/a
|
|
|
32
34
|
dbName: string;
|
|
33
35
|
docIdPositional: string | undefined;
|
|
34
36
|
docIdFlag: string;
|
|
37
|
+
admin: boolean;
|
|
35
38
|
}>>;
|
|
36
39
|
} & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
|
|
37
40
|
apiUrl: string;
|
|
@@ -44,6 +47,7 @@ export declare function dbGetCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/a
|
|
|
44
47
|
dbName: string;
|
|
45
48
|
docIdPositional: string | undefined;
|
|
46
49
|
docIdFlag: string;
|
|
50
|
+
admin: boolean;
|
|
47
51
|
}, never> & {
|
|
48
52
|
run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
|
|
49
53
|
} & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
|
package/cli/cmds/db/get-cmd.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { command, option, optional, positional, string } from "cmd-ts";
|
|
1
|
+
import { command, flag, option, optional, positional, string } from "cmd-ts";
|
|
2
2
|
import { type } from "arktype";
|
|
3
3
|
import { Result, Option } from "@adviser/cement";
|
|
4
4
|
import { FireflyApiAdapter } from "@vibes.diy/api-impl";
|
|
5
5
|
import { isResGetDoc, isResGetDocNotFound } from "@vibes.diy/api-types";
|
|
6
6
|
import { cmdTsDefaultArgs } from "../../cli-ctx.js";
|
|
7
7
|
import { sendMsg } from "../../cmd-evento.js";
|
|
8
|
-
import { dbCommonArgs, openVibeDbApi, resolveDbVibeArgs } from "./shared.js";
|
|
8
|
+
import { adminHintOnDenied, dbCommonArgs, openVibeDbApi, resolveDbVibeArgs } from "./shared.js";
|
|
9
9
|
export const ReqDbGet = type({
|
|
10
10
|
type: "'vibes-diy.cli.db.get'",
|
|
11
11
|
apiUrl: "string",
|
|
@@ -13,6 +13,8 @@ export const ReqDbGet = type({
|
|
|
13
13
|
ownerHandle: "string",
|
|
14
14
|
dbName: "string",
|
|
15
15
|
docId: "string",
|
|
16
|
+
admin: "boolean",
|
|
17
|
+
actingHandle: "string",
|
|
16
18
|
});
|
|
17
19
|
export function isReqDbGet(obj) {
|
|
18
20
|
return !(ReqDbGet(obj) instanceof type.errors);
|
|
@@ -38,14 +40,20 @@ export const dbGetEvento = {
|
|
|
38
40
|
apiUrl: ctx.validated.apiUrl,
|
|
39
41
|
ownerHandle: ctx.validated.ownerHandle,
|
|
40
42
|
appSlug: ctx.validated.appSlug,
|
|
43
|
+
probeOwnership: true,
|
|
41
44
|
});
|
|
42
45
|
if (rApi.isErr())
|
|
43
46
|
return Result.Err(rApi.Err());
|
|
44
|
-
const { api, ownerHandle } = rApi.Ok();
|
|
45
|
-
const
|
|
47
|
+
const { api, ownerHandle, callerOwnsTarget } = rApi.Ok();
|
|
48
|
+
const adminMode = callerOwnsTarget || ctx.validated.admin;
|
|
49
|
+
const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, {
|
|
50
|
+
ownerHandle,
|
|
51
|
+
adminMode,
|
|
52
|
+
...(ctx.validated.actingHandle ? { actingHandle: ctx.validated.actingHandle } : {}),
|
|
53
|
+
});
|
|
46
54
|
const r = await adapter.getDoc(ctx.validated.docId, ctx.validated.dbName);
|
|
47
55
|
if (r.isErr())
|
|
48
|
-
return Result.Err(r.Err());
|
|
56
|
+
return Result.Err(adminHintOnDenied(`${r.Err()}`, { callerOwnsTarget, admin: ctx.validated.admin }));
|
|
49
57
|
const res = r.Ok();
|
|
50
58
|
if (isResGetDocNotFound(res)) {
|
|
51
59
|
return Result.Err(`Document not found: ${ctx.validated.docId}`);
|
|
@@ -79,6 +87,10 @@ export function dbGetCmd(ctx) {
|
|
|
79
87
|
defaultValue: () => "",
|
|
80
88
|
defaultValueIsSerializable: true,
|
|
81
89
|
}),
|
|
90
|
+
admin: flag({
|
|
91
|
+
long: "admin",
|
|
92
|
+
description: "Request platform-admin elevation for a read of ANOTHER owner's vibe (bypasses per-user channel filtering). Not needed for your own vibes; honored only for allowlisted platform admins",
|
|
93
|
+
}),
|
|
82
94
|
},
|
|
83
95
|
handler: ctx.cliStream.enqueue((args) => {
|
|
84
96
|
const docId = args.docIdPositional ?? args.docIdFlag;
|
|
@@ -96,8 +108,10 @@ export function dbGetCmd(ctx) {
|
|
|
96
108
|
apiUrl: args.apiUrl,
|
|
97
109
|
appSlug: resolved.appSlug,
|
|
98
110
|
ownerHandle: resolved.ownerHandle,
|
|
111
|
+
actingHandle: resolved.actingHandle,
|
|
99
112
|
dbName: args.dbName,
|
|
100
113
|
docId,
|
|
114
|
+
admin: args.admin,
|
|
101
115
|
};
|
|
102
116
|
}),
|
|
103
117
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/get-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"get-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/get-cmd.ts"],"names":[],"mappings":"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"}
|
package/cli/cmds/db/index.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/
|
|
|
34
34
|
dbName: string;
|
|
35
35
|
docIdPositional: string | undefined;
|
|
36
36
|
docIdFlag: string;
|
|
37
|
+
admin: boolean;
|
|
37
38
|
};
|
|
38
39
|
} | {
|
|
39
40
|
command: "list";
|
|
@@ -46,6 +47,7 @@ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/
|
|
|
46
47
|
ownerHandle: string;
|
|
47
48
|
ownerHandleDeprecated: string;
|
|
48
49
|
dbName: string;
|
|
50
|
+
admin: boolean;
|
|
49
51
|
};
|
|
50
52
|
} | {
|
|
51
53
|
command: "put";
|
|
@@ -79,6 +81,7 @@ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/
|
|
|
79
81
|
range: string;
|
|
80
82
|
limit: number;
|
|
81
83
|
descending: boolean;
|
|
84
|
+
admin: boolean;
|
|
82
85
|
};
|
|
83
86
|
} | {
|
|
84
87
|
command: "subscribe";
|
|
@@ -121,6 +124,7 @@ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/
|
|
|
121
124
|
dbName: string;
|
|
122
125
|
docIdPositional: string | undefined;
|
|
123
126
|
docIdFlag: string;
|
|
127
|
+
admin: boolean;
|
|
124
128
|
};
|
|
125
129
|
} | {
|
|
126
130
|
command: "list";
|
|
@@ -133,6 +137,7 @@ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/
|
|
|
133
137
|
ownerHandle: string;
|
|
134
138
|
ownerHandleDeprecated: string;
|
|
135
139
|
dbName: string;
|
|
140
|
+
admin: boolean;
|
|
136
141
|
};
|
|
137
142
|
} | {
|
|
138
143
|
command: "put";
|
|
@@ -166,6 +171,7 @@ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/
|
|
|
166
171
|
range: string;
|
|
167
172
|
limit: number;
|
|
168
173
|
descending: boolean;
|
|
174
|
+
admin: boolean;
|
|
169
175
|
};
|
|
170
176
|
} | {
|
|
171
177
|
command: "subscribe";
|
|
@@ -6,6 +6,7 @@ export declare const ReqDbList: import("arktype/internal/variants/object.ts").Ob
|
|
|
6
6
|
apiUrl: string;
|
|
7
7
|
appSlug: string;
|
|
8
8
|
ownerHandle: string;
|
|
9
|
+
admin: boolean;
|
|
9
10
|
}, {}>;
|
|
10
11
|
export type ReqDbList = typeof ReqDbList.infer;
|
|
11
12
|
export declare function isReqDbList(obj: unknown): obj is ReqDbList;
|
|
@@ -26,6 +27,7 @@ export declare function dbListCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/
|
|
|
26
27
|
ownerHandle: string;
|
|
27
28
|
ownerHandleDeprecated: string;
|
|
28
29
|
dbName: string;
|
|
30
|
+
admin: boolean;
|
|
29
31
|
}>>;
|
|
30
32
|
} & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
|
|
31
33
|
apiUrl: string;
|
|
@@ -36,6 +38,7 @@ export declare function dbListCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/
|
|
|
36
38
|
ownerHandle: string;
|
|
37
39
|
ownerHandleDeprecated: string;
|
|
38
40
|
dbName: string;
|
|
41
|
+
admin: boolean;
|
|
39
42
|
}, never> & {
|
|
40
43
|
run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
|
|
41
44
|
} & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
|
package/cli/cmds/db/list-cmd.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { command } from "cmd-ts";
|
|
1
|
+
import { command, flag } from "cmd-ts";
|
|
2
2
|
import { type } from "arktype";
|
|
3
3
|
import { Result, Option } from "@adviser/cement";
|
|
4
4
|
import { cmdTsDefaultArgs } from "../../cli-ctx.js";
|
|
5
5
|
import { sendMsg } from "../../cmd-evento.js";
|
|
6
|
-
import { dbCommonArgs, openVibeDbApi, resolveDbVibeArgs } from "./shared.js";
|
|
6
|
+
import { adminHintOnDenied, dbCommonArgs, openVibeDbApi, resolveDbVibeArgs } from "./shared.js";
|
|
7
7
|
export const ReqDbList = type({
|
|
8
8
|
type: "'vibes-diy.cli.db.list'",
|
|
9
9
|
apiUrl: "string",
|
|
10
10
|
appSlug: "string",
|
|
11
11
|
ownerHandle: "string",
|
|
12
|
+
admin: "boolean",
|
|
12
13
|
});
|
|
13
14
|
export function isReqDbList(obj) {
|
|
14
15
|
return !(ReqDbList(obj) instanceof type.errors);
|
|
@@ -34,13 +35,15 @@ export const dbListEvento = {
|
|
|
34
35
|
apiUrl: ctx.validated.apiUrl,
|
|
35
36
|
ownerHandle: ctx.validated.ownerHandle,
|
|
36
37
|
appSlug: ctx.validated.appSlug,
|
|
38
|
+
probeOwnership: true,
|
|
37
39
|
});
|
|
38
40
|
if (rApi.isErr())
|
|
39
41
|
return Result.Err(rApi.Err());
|
|
40
|
-
const { api, ownerHandle } = rApi.Ok();
|
|
41
|
-
const
|
|
42
|
+
const { api, ownerHandle, callerOwnsTarget } = rApi.Ok();
|
|
43
|
+
const adminMode = callerOwnsTarget || ctx.validated.admin;
|
|
44
|
+
const r = await api.listDbNames({ appSlug: ctx.validated.appSlug, ownerHandle, adminMode });
|
|
42
45
|
if (r.isErr())
|
|
43
|
-
return Result.Err(r.Err());
|
|
46
|
+
return Result.Err(adminHintOnDenied(`${r.Err()}`, { callerOwnsTarget, admin: ctx.validated.admin }));
|
|
44
47
|
return sendMsg(ctx, {
|
|
45
48
|
type: "vibes-diy.cli.db.list-res",
|
|
46
49
|
dbNames: r.Ok().dbNames,
|
|
@@ -54,6 +57,10 @@ export function dbListCmd(ctx) {
|
|
|
54
57
|
args: {
|
|
55
58
|
...cmdTsDefaultArgs(ctx),
|
|
56
59
|
...dbCommonArgs(),
|
|
60
|
+
admin: flag({
|
|
61
|
+
long: "admin",
|
|
62
|
+
description: "Request platform-admin elevation for a read of ANOTHER owner's vibe (bypasses per-user channel filtering). Not needed for your own vibes; honored only for allowlisted platform admins",
|
|
63
|
+
}),
|
|
57
64
|
},
|
|
58
65
|
handler: ctx.cliStream.enqueue((args) => {
|
|
59
66
|
const resolved = resolveDbVibeArgs(ctx, {
|
|
@@ -67,6 +74,7 @@ export function dbListCmd(ctx) {
|
|
|
67
74
|
apiUrl: args.apiUrl,
|
|
68
75
|
appSlug: resolved.appSlug,
|
|
69
76
|
ownerHandle: resolved.ownerHandle,
|
|
77
|
+
admin: args.admin,
|
|
70
78
|
};
|
|
71
79
|
}),
|
|
72
80
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/list-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"list-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/list-cmd.ts"],"names":[],"mappings":"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"}
|
package/cli/cmds/db/put-cmd.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare const ReqDbPut: import("arktype/internal/variants/object.ts").Obj
|
|
|
10
10
|
docJson: string;
|
|
11
11
|
docId: string;
|
|
12
12
|
admin: boolean;
|
|
13
|
+
actingHandle: string;
|
|
13
14
|
}, {}>;
|
|
14
15
|
export type ReqDbPut = typeof ReqDbPut.infer;
|
|
15
16
|
export declare function isReqDbPut(obj: unknown): obj is ReqDbPut;
|
package/cli/cmds/db/put-cmd.js
CHANGED
|
@@ -16,6 +16,7 @@ export const ReqDbPut = type({
|
|
|
16
16
|
docJson: "string",
|
|
17
17
|
docId: "string",
|
|
18
18
|
admin: "boolean",
|
|
19
|
+
actingHandle: "string",
|
|
19
20
|
});
|
|
20
21
|
export function isReqDbPut(obj) {
|
|
21
22
|
return !(ReqDbPut(obj) instanceof type.errors);
|
|
@@ -51,7 +52,11 @@ export const dbPutEvento = {
|
|
|
51
52
|
if (rApi.isErr())
|
|
52
53
|
return Result.Err(rApi.Err());
|
|
53
54
|
const { api, ownerHandle } = rApi.Ok();
|
|
54
|
-
const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, {
|
|
55
|
+
const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, {
|
|
56
|
+
ownerHandle,
|
|
57
|
+
adminMode: ctx.validated.admin,
|
|
58
|
+
...(ctx.validated.actingHandle ? { actingHandle: ctx.validated.actingHandle } : {}),
|
|
59
|
+
});
|
|
55
60
|
const docId = resolveDocId(ctx.validated.docId, doc);
|
|
56
61
|
const r = await adapter.putDoc(doc, docId, ctx.validated.dbName);
|
|
57
62
|
if (r.isErr())
|
|
@@ -88,7 +93,7 @@ export function dbPutCmd(ctx) {
|
|
|
88
93
|
}),
|
|
89
94
|
admin: flag({
|
|
90
95
|
long: "admin",
|
|
91
|
-
description: "Write with admin override
|
|
96
|
+
description: "Write with admin override: bypasses the legacy db ACL. The vibe's access function still runs and can still refuse — --admin is only a hint it may honor. Works for the vibe owner or a platform admin",
|
|
92
97
|
}),
|
|
93
98
|
},
|
|
94
99
|
handler: ctx.cliStream.enqueue((args) => {
|
|
@@ -103,6 +108,7 @@ export function dbPutCmd(ctx) {
|
|
|
103
108
|
apiUrl: args.apiUrl,
|
|
104
109
|
appSlug: resolved.appSlug,
|
|
105
110
|
ownerHandle: resolved.ownerHandle,
|
|
111
|
+
actingHandle: resolved.actingHandle,
|
|
106
112
|
dbName: args.dbName,
|
|
107
113
|
docJson: args.docJson,
|
|
108
114
|
docId: args.docId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/put-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3F,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"put-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/put-cmd.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export declare const ReqDbQuery: import("arktype/internal/variants/object.ts").O
|
|
|
13
13
|
range: string;
|
|
14
14
|
limit: number;
|
|
15
15
|
descending: boolean;
|
|
16
|
+
admin: boolean;
|
|
17
|
+
actingHandle: string;
|
|
16
18
|
}, {}>;
|
|
17
19
|
export type ReqDbQuery = typeof ReqDbQuery.infer;
|
|
18
20
|
export declare function isReqDbQuery(obj: unknown): obj is ReqDbQuery;
|
|
@@ -41,6 +43,7 @@ export declare function dbQueryCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs
|
|
|
41
43
|
range: string;
|
|
42
44
|
limit: number;
|
|
43
45
|
descending: boolean;
|
|
46
|
+
admin: boolean;
|
|
44
47
|
}>>;
|
|
45
48
|
} & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
|
|
46
49
|
apiUrl: string;
|
|
@@ -57,6 +60,7 @@ export declare function dbQueryCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs
|
|
|
57
60
|
range: string;
|
|
58
61
|
limit: number;
|
|
59
62
|
descending: boolean;
|
|
63
|
+
admin: boolean;
|
|
60
64
|
}, never> & {
|
|
61
65
|
run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
|
|
62
66
|
} & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
|
package/cli/cmds/db/query-cmd.js
CHANGED
|
@@ -6,7 +6,7 @@ import { isResQueryDocs } from "@vibes.diy/api-types";
|
|
|
6
6
|
import charwise from "charwise";
|
|
7
7
|
import { cmdTsDefaultArgs } from "../../cli-ctx.js";
|
|
8
8
|
import { sendMsg } from "../../cmd-evento.js";
|
|
9
|
-
import { dbCommonArgs, openVibeDbApi, resolveDbVibeArgs } from "./shared.js";
|
|
9
|
+
import { adminHintOnDenied, dbCommonArgs, openVibeDbApi, resolveDbVibeArgs } from "./shared.js";
|
|
10
10
|
export const ReqDbQuery = type({
|
|
11
11
|
type: "'vibes-diy.cli.db.query'",
|
|
12
12
|
apiUrl: "string",
|
|
@@ -19,6 +19,8 @@ export const ReqDbQuery = type({
|
|
|
19
19
|
range: "string",
|
|
20
20
|
limit: "number",
|
|
21
21
|
descending: "boolean",
|
|
22
|
+
admin: "boolean",
|
|
23
|
+
actingHandle: "string",
|
|
22
24
|
});
|
|
23
25
|
export function isReqDbQuery(obj) {
|
|
24
26
|
return !(ReqDbQuery(obj) instanceof type.errors);
|
|
@@ -44,14 +46,20 @@ export const dbQueryEvento = {
|
|
|
44
46
|
apiUrl: ctx.validated.apiUrl,
|
|
45
47
|
ownerHandle: ctx.validated.ownerHandle,
|
|
46
48
|
appSlug: ctx.validated.appSlug,
|
|
49
|
+
probeOwnership: true,
|
|
47
50
|
});
|
|
48
51
|
if (rApi.isErr())
|
|
49
52
|
return Result.Err(rApi.Err());
|
|
50
|
-
const { api, ownerHandle } = rApi.Ok();
|
|
51
|
-
const
|
|
53
|
+
const { api, ownerHandle, callerOwnsTarget } = rApi.Ok();
|
|
54
|
+
const adminMode = callerOwnsTarget || ctx.validated.admin;
|
|
55
|
+
const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, {
|
|
56
|
+
ownerHandle,
|
|
57
|
+
adminMode,
|
|
58
|
+
...(ctx.validated.actingHandle ? { actingHandle: ctx.validated.actingHandle } : {}),
|
|
59
|
+
});
|
|
52
60
|
const r = await adapter.queryDocs(ctx.validated.dbName);
|
|
53
61
|
if (r.isErr())
|
|
54
|
-
return Result.Err(r.Err());
|
|
62
|
+
return Result.Err(adminHintOnDenied(`${r.Err()}`, { callerOwnsTarget, admin: ctx.validated.admin }));
|
|
55
63
|
const res = r.Ok();
|
|
56
64
|
if (!isResQueryDocs(res)) {
|
|
57
65
|
return Result.Err(`Unexpected response: ${JSON.stringify(res)}`);
|
|
@@ -148,6 +156,10 @@ export function dbQueryCmd(ctx) {
|
|
|
148
156
|
long: "descending",
|
|
149
157
|
description: "Return results in descending order",
|
|
150
158
|
}),
|
|
159
|
+
admin: flag({
|
|
160
|
+
long: "admin",
|
|
161
|
+
description: "Request platform-admin elevation for a read of ANOTHER owner's vibe (bypasses per-user channel filtering). Not needed for your own vibes; honored only for allowlisted platform admins",
|
|
162
|
+
}),
|
|
151
163
|
},
|
|
152
164
|
handler: ctx.cliStream.enqueue((args) => {
|
|
153
165
|
const resolved = resolveDbVibeArgs(ctx, {
|
|
@@ -161,6 +173,7 @@ export function dbQueryCmd(ctx) {
|
|
|
161
173
|
apiUrl: args.apiUrl,
|
|
162
174
|
appSlug: resolved.appSlug,
|
|
163
175
|
ownerHandle: resolved.ownerHandle,
|
|
176
|
+
actingHandle: resolved.actingHandle,
|
|
164
177
|
dbName: args.dbName,
|
|
165
178
|
field: args.field,
|
|
166
179
|
key: args.key,
|
|
@@ -168,6 +181,7 @@ export function dbQueryCmd(ctx) {
|
|
|
168
181
|
range: args.range,
|
|
169
182
|
limit: args.limit,
|
|
170
183
|
descending: args.descending,
|
|
184
|
+
admin: args.admin,
|
|
171
185
|
};
|
|
172
186
|
}),
|
|
173
187
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/query-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"query-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/query-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhG,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,QAAQ;IACb,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,UAAU,EAAE,SAAS;IACrB,KAAK,EAAE,SAAS;IAEhB,YAAY,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;CAC9C,CAAC,CAAC;AAEH,MAAM,UAAU,YAAY,CAAC,GAAY;IACvC,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAiE;IACzF,IAAI,EAAE,wBAAwB;IAC9B,QAAQ,EAAE,CAAC,GAAsE,EAAE,EAAE;QACnF,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,EAAE,KAAK,EAAE,GAAoE,EAAqC,EAAE;QACxH,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAS,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE;YACrC,MAAM,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;YAC5B,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,WAAW;YACtC,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO;YAC9B,cAAc,EAAE,IAAI;SACrB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QAChD,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QASzD,MAAM,SAAS,GAAG,gBAAgB,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE;YAChE,WAAW;YACX,SAAS;YACT,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpF,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACpH,MAAM,GAAG,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC;QAIlC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI;aAChB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC;aACzC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,GAAG;YACH,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAW;SAClD,CAAC,CAAC,CAAC;QAGN,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAY,CAAC,CAAC;YACpF,IAAI,IAAI,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,uBAAuB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAW,CAAC;YACxD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC;QACzD,CAAC;QAKD,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAY,CAAC,CAAC;YAC1F,IAAI,OAAO,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAClF,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;YAC/B,IAAI,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAW,CAAC;YACzD,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5D,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;QACpE,CAAC;QAGD,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAuB,CAAC,CAAC;YACnG,IAAI,MAAM,CAAC,KAAK,EAAE;gBAAE,OAAO,MAAM,CAAC,GAAG,CAAC,yBAAyB,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC/E,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;YAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAW,CAAC;YAC3D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAW,CAAC;YACvD,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,YAAY,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;QACxF,CAAC;QAID,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9F,IAAI,GAAG,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,CAAC;QAGD,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEpC,OAAO,OAAO,CAAC,GAAG,EAAE;YAClB,IAAI,EAAE,4BAA4B;YAClC,IAAI;SACgB,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6EAA6E;QAC1F,IAAI,EAAE;YACJ,GAAG,gBAAgB,CAAC,GAAG,CAAC;YACxB,GAAG,YAAY,EAAE;YACjB,KAAK,EAAE,UAAU,CAAC;gBAChB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,wBAAwB;aACtC,CAAC;YACF,GAAG,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,8BAA8B;gBAC3C,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,MAAM,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,KAAK,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,qDAAqD;gBAClE,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,KAAK,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,0CAA0C;gBACvD,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC;gBACrB,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,UAAU,EAAE,IAAI,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,oCAAoC;aAClD,CAAC;YACF,KAAK,EAAE,IAAI,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,WAAW,EACT,wLAAwL;aAC3L,CAAC;SACH;QACD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,GAAG,EAAE;gBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;aAClD,CAAC,CAAC;YACH,OAAO;gBACL,IAAI,EAAE,wBAAwB;gBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,WAAW,EAAE,QAAQ,CAAC,WAAW;gBACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC;QACJ,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
|
package/cli/cmds/db/shared.d.ts
CHANGED
|
@@ -26,14 +26,22 @@ export declare function resolveDbVibeArgs(ctx: CliCtx, args: {
|
|
|
26
26
|
}): {
|
|
27
27
|
appSlug: string;
|
|
28
28
|
ownerHandle: string;
|
|
29
|
+
actingHandle: string;
|
|
29
30
|
};
|
|
30
31
|
export declare function resolveDocId(explicitId: string | undefined, doc: Record<string, unknown>, warn?: (msg: string) => void): string | undefined;
|
|
31
32
|
export declare function resolveUserSlug(api: VibesDiyApi, explicit: string): Promise<Result<string>>;
|
|
33
|
+
export declare function callerOwnsHandle(api: VibesDiyApi, ownerHandle: string): Promise<boolean>;
|
|
32
34
|
export declare function openVibeDbApi(ectx: CliCtx, opts: {
|
|
33
35
|
apiUrl: string;
|
|
34
36
|
ownerHandle: string;
|
|
35
37
|
appSlug: string;
|
|
38
|
+
probeOwnership?: boolean;
|
|
36
39
|
}): Promise<Result<{
|
|
37
40
|
api: VibesDiyApi;
|
|
38
41
|
ownerHandle: string;
|
|
42
|
+
callerOwnsTarget: boolean;
|
|
39
43
|
}>>;
|
|
44
|
+
export declare function adminHintOnDenied(err: string, opts: {
|
|
45
|
+
callerOwnsTarget: boolean;
|
|
46
|
+
admin: boolean;
|
|
47
|
+
}): string;
|
package/cli/cmds/db/shared.js
CHANGED
|
@@ -21,7 +21,7 @@ export function dbCommonArgs() {
|
|
|
21
21
|
}),
|
|
22
22
|
ownerHandle: option({
|
|
23
23
|
long: "handle",
|
|
24
|
-
description: "Act as this bound handle for this call only (leaves your default handle unchanged)",
|
|
24
|
+
description: "Act as this bound handle for this call only (leaves your default handle unchanged). Addresses the vibe too when --vibe is absent",
|
|
25
25
|
type: string,
|
|
26
26
|
defaultValue: () => "",
|
|
27
27
|
defaultValueIsSerializable: true,
|
|
@@ -53,7 +53,7 @@ export function resolveDbVibeArgs(ctx, args) {
|
|
|
53
53
|
positionalAppSlug: "",
|
|
54
54
|
});
|
|
55
55
|
const appSlug = resolved.appSlug || ctx.sthis.env.get("VIBES_APP_SLUG") || basename(process.cwd());
|
|
56
|
-
return { appSlug, ownerHandle: resolved.handle };
|
|
56
|
+
return { appSlug, ownerHandle: resolved.handle, actingHandle: args.ownerHandle || args.ownerHandleDeprecated };
|
|
57
57
|
}
|
|
58
58
|
export function resolveDocId(explicitId, doc, warn = (m) => process.stderr.write(m)) {
|
|
59
59
|
const flag = explicitId === undefined || explicitId === "" ? undefined : explicitId;
|
|
@@ -83,12 +83,19 @@ export async function resolveUserSlug(api, explicit) {
|
|
|
83
83
|
}
|
|
84
84
|
return Result.Ok(def.ownerHandle);
|
|
85
85
|
}
|
|
86
|
+
export async function callerOwnsHandle(api, ownerHandle) {
|
|
87
|
+
const r = await api.listHandleBindings({});
|
|
88
|
+
if (r.isErr())
|
|
89
|
+
return false;
|
|
90
|
+
return r.Ok().items.some((i) => i.ownerHandle === ownerHandle);
|
|
91
|
+
}
|
|
86
92
|
export async function openVibeDbApi(ectx, opts) {
|
|
87
93
|
if (ectx.vibesDiyApiFactory === undefined) {
|
|
88
94
|
return Result.Err("Not logged in. Run 'vibes-diy login' first.");
|
|
89
95
|
}
|
|
90
96
|
const { apiUrl, appSlug } = opts;
|
|
91
97
|
let ownerHandle = opts.ownerHandle;
|
|
98
|
+
let callerOwnsTarget = ownerHandle === "";
|
|
92
99
|
if (ownerHandle === "") {
|
|
93
100
|
const bootstrapApi = ectx.vibesDiyApiFactory(apiUrl);
|
|
94
101
|
try {
|
|
@@ -101,8 +108,22 @@ export async function openVibeDbApi(ectx, opts) {
|
|
|
101
108
|
await bootstrapApi.close();
|
|
102
109
|
}
|
|
103
110
|
}
|
|
111
|
+
else if (opts.probeOwnership === true) {
|
|
112
|
+
const bootstrapApi = ectx.vibesDiyApiFactory(apiUrl);
|
|
113
|
+
try {
|
|
114
|
+
callerOwnsTarget = await callerOwnsHandle(bootstrapApi, ownerHandle);
|
|
115
|
+
}
|
|
116
|
+
finally {
|
|
117
|
+
await bootstrapApi.close();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
104
120
|
const routedUrl = BuildURI.from(apiUrl).pathname("/api/app").setParam("vibe", `${ownerHandle}--${appSlug}`).toString();
|
|
105
121
|
const api = ectx.vibesDiyApiFactory(routedUrl, { skipShard: true });
|
|
106
|
-
return Result.Ok({ api, ownerHandle });
|
|
122
|
+
return Result.Ok({ api, ownerHandle, callerOwnsTarget });
|
|
123
|
+
}
|
|
124
|
+
export function adminHintOnDenied(err, opts) {
|
|
125
|
+
if (opts.callerOwnsTarget || opts.admin)
|
|
126
|
+
return err;
|
|
127
|
+
return `${err}\n(reading another owner's vibe: retry with --admin to request platform-admin elevation)`;
|
|
107
128
|
}
|
|
108
129
|
//# sourceMappingURL=shared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,MAAM,UAAU,YAAY;IAC1B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC;YACX,IAAI,EAAE,MAAM;YACZ,WAAW,EAAE,oCAAoC;YACjD,IAAI,EAAE,MAAM;YACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,0BAA0B,EAAE,IAAI;SACjC,CAAC;QACF,OAAO,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,2DAA2D;YACxE,IAAI,EAAE,MAAM;YAIZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;YACtB,0BAA0B,EAAE,IAAI;SACjC,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,QAAQ;YACd,WAAW,
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ function ctxWithEnv(env = {}) {
|
|
|
7
7
|
describe("resolveDbVibeArgs", () => {
|
|
8
8
|
afterEach(() => vi.restoreAllMocks());
|
|
9
9
|
it("--vibe wins over the cwd default (no explicit --app-slug)", () => {
|
|
10
|
-
expect(resolveDbVibeArgs(ctxWithEnv(), { vibe: "og/pickathon-picker", appSlug: "", ownerHandle: "", ownerHandleDeprecated: "" })).toEqual({ appSlug: "pickathon-picker", ownerHandle: "og" });
|
|
10
|
+
expect(resolveDbVibeArgs(ctxWithEnv(), { vibe: "og/pickathon-picker", appSlug: "", ownerHandle: "", ownerHandleDeprecated: "" })).toEqual({ appSlug: "pickathon-picker", ownerHandle: "og", actingHandle: "" });
|
|
11
11
|
});
|
|
12
12
|
it("still conflicts when an explicit --app-slug disagrees with --vibe", () => {
|
|
13
13
|
expect(() => resolveDbVibeArgs(ctxWithEnv(), {
|
|
@@ -31,14 +31,39 @@ describe("resolveDbVibeArgs", () => {
|
|
|
31
31
|
appSlug: "",
|
|
32
32
|
ownerHandle: "alice",
|
|
33
33
|
ownerHandleDeprecated: "",
|
|
34
|
-
})).toEqual({ appSlug: "env-app", ownerHandle: "alice" });
|
|
34
|
+
})).toEqual({ appSlug: "env-app", ownerHandle: "alice", actingHandle: "alice" });
|
|
35
35
|
});
|
|
36
36
|
it("falls back to basename(cwd) when neither vibe, app-slug, nor env is set", () => {
|
|
37
37
|
expect(resolveDbVibeArgs(ctxWithEnv(), { vibe: "", appSlug: "", ownerHandle: "", ownerHandleDeprecated: "" })).toEqual({
|
|
38
38
|
appSlug: basename(process.cwd()),
|
|
39
39
|
ownerHandle: "",
|
|
40
|
+
actingHandle: "",
|
|
40
41
|
});
|
|
41
42
|
});
|
|
43
|
+
it("an explicit --handle is the act-as pin, not just addressing", () => {
|
|
44
|
+
expect(resolveDbVibeArgs(ctxWithEnv(), {
|
|
45
|
+
vibe: "festival/telluride-blues-2026",
|
|
46
|
+
appSlug: "",
|
|
47
|
+
ownerHandle: "festival",
|
|
48
|
+
ownerHandleDeprecated: "",
|
|
49
|
+
})).toEqual({ appSlug: "telluride-blues-2026", ownerHandle: "festival", actingHandle: "festival" });
|
|
50
|
+
});
|
|
51
|
+
it("--vibe alone addresses the vibe and pins nothing", () => {
|
|
52
|
+
expect(resolveDbVibeArgs(ctxWithEnv(), {
|
|
53
|
+
vibe: "festival/telluride-blues-2026",
|
|
54
|
+
appSlug: "",
|
|
55
|
+
ownerHandle: "",
|
|
56
|
+
ownerHandleDeprecated: "",
|
|
57
|
+
})).toEqual({ appSlug: "telluride-blues-2026", ownerHandle: "festival", actingHandle: "" });
|
|
58
|
+
});
|
|
59
|
+
it("the deprecated --user-slug pins the same way --handle does", () => {
|
|
60
|
+
expect(resolveDbVibeArgs(ctxWithEnv({ VIBES_APP_SLUG: "env-app" }), {
|
|
61
|
+
vibe: "",
|
|
62
|
+
appSlug: "",
|
|
63
|
+
ownerHandle: "",
|
|
64
|
+
ownerHandleDeprecated: "alice",
|
|
65
|
+
})).toEqual({ appSlug: "env-app", ownerHandle: "alice", actingHandle: "alice" });
|
|
66
|
+
});
|
|
42
67
|
});
|
|
43
68
|
describe("resolveDocId (#2668)", () => {
|
|
44
69
|
it("honors body _id when no explicit id is given", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.test.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/shared.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7E,SAAS,UAAU,CAAC,GAAG,GAAuC,EAAE;IAC9D,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAuB,CAAC;AACjF,CAAC;AAED,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAKtC,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,CACJ,iBAAiB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAC1H,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.test.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/shared.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": "13.1.
|
|
3
|
+
"version": "13.1.2",
|
|
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": "^13.1.
|
|
34
|
-
"@vibes.diy/api-types": "^13.1.
|
|
35
|
-
"@vibes.diy/call-ai-v2": "^13.1.
|
|
36
|
-
"@vibes.diy/cmd-harness": "^13.1.
|
|
37
|
-
"@vibes.diy/cmd-tools": "^13.1.
|
|
38
|
-
"@vibes.diy/identity": "^13.1.
|
|
39
|
-
"@vibes.diy/prompts": "^13.1.
|
|
33
|
+
"@vibes.diy/api-impl": "^13.1.2",
|
|
34
|
+
"@vibes.diy/api-types": "^13.1.2",
|
|
35
|
+
"@vibes.diy/call-ai-v2": "^13.1.2",
|
|
36
|
+
"@vibes.diy/cmd-harness": "^13.1.2",
|
|
37
|
+
"@vibes.diy/cmd-tools": "^13.1.2",
|
|
38
|
+
"@vibes.diy/identity": "^13.1.2",
|
|
39
|
+
"@vibes.diy/prompts": "^13.1.2",
|
|
40
40
|
"arktype": "~2.2.3",
|
|
41
41
|
"charwise": "~3.0.1",
|
|
42
42
|
"cmd-ts": "~0.15.0",
|