vibes-diy 12.3.0 → 12.3.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.
Files changed (45) hide show
  1. package/cli/cmd-evento.d.ts +197 -181
  2. package/cli/cmd-evento.js +2 -1
  3. package/cli/cmd-evento.js.map +1 -1
  4. package/cli/cmd-request-dispatch.test.d.ts +1 -0
  5. package/cli/cmd-request-dispatch.test.js +67 -0
  6. package/cli/cmd-request-dispatch.test.js.map +1 -0
  7. package/cli/cmds/access-wizard.d.ts +39 -0
  8. package/cli/cmds/access-wizard.js +58 -0
  9. package/cli/cmds/access-wizard.js.map +1 -0
  10. package/cli/cmds/access-wizard.test.d.ts +1 -0
  11. package/cli/cmds/access-wizard.test.js +112 -0
  12. package/cli/cmds/access-wizard.test.js.map +1 -0
  13. package/cli/cmds/app/chips-cmd.d.ts +50 -0
  14. package/cli/cmds/app/chips-cmd.js +145 -0
  15. package/cli/cmds/app/chips-cmd.js.map +1 -0
  16. package/cli/cmds/app/chips-render.test.d.ts +1 -0
  17. package/cli/cmds/app/chips-render.test.js +30 -0
  18. package/cli/cmds/app/chips-render.test.js.map +1 -0
  19. package/cli/cmds/app/index.d.ts +33 -0
  20. package/cli/cmds/app/index.js +4 -1
  21. package/cli/cmds/app/index.js.map +1 -1
  22. package/cli/cmds/generate-cmd.d.ts +3 -0
  23. package/cli/cmds/generate-cmd.js +6 -0
  24. package/cli/cmds/generate-cmd.js.map +1 -1
  25. package/cli/cmds/generate-cmd.test.js +3 -0
  26. package/cli/cmds/generate-cmd.test.js.map +1 -1
  27. package/cli/cmds/generate-core.d.ts +1 -0
  28. package/cli/cmds/generate-core.js +3 -0
  29. package/cli/cmds/generate-core.js.map +1 -1
  30. package/cli/cmds/generate-core.test.js +6 -0
  31. package/cli/cmds/generate-core.test.js.map +1 -1
  32. package/cli/cmds/push-access-flags.test.d.ts +1 -0
  33. package/cli/cmds/push-access-flags.test.js +51 -0
  34. package/cli/cmds/push-access-flags.test.js.map +1 -0
  35. package/cli/cmds/push-cmd.d.ts +12 -7
  36. package/cli/cmds/push-cmd.js +48 -13
  37. package/cli/cmds/push-cmd.js.map +1 -1
  38. package/cli/cmds/push-from-dir.d.ts +11 -25
  39. package/cli/cmds/push-from-dir.js +57 -32
  40. package/cli/cmds/push-from-dir.js.map +1 -1
  41. package/cli/cmds/push-from-dir.test.js +245 -24
  42. package/cli/cmds/push-from-dir.test.js.map +1 -1
  43. package/cli/main.js +13 -1
  44. package/cli/main.js.map +1 -1
  45. package/package.json +8 -8
@@ -0,0 +1,58 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { accessFnProposesAnonymousWrites, isSectionEvent } from "@vibes.diy/api-types";
3
+ import { resolveSectionStream } from "./resolve-section-stream.js";
4
+ export const CLI_ACCESS_WIZARD_PROMPT = "Set up data access control rules before opening this app to everyone with the link.";
5
+ export const ACCESS_FN_FILENAME = "access.js";
6
+ export const declaresAllowAnonymous = accessFnProposesAnonymousWrites;
7
+ export async function runAccessWizard(args) {
8
+ await args.note("info", "No access.js found — running the access wizard before going public (this is a codegen turn).");
9
+ const rChat = await args.api.openChat({ ownerHandle: args.ownerHandle, appSlug: args.appSlug, mode: "codegen" });
10
+ if (rChat.isErr()) {
11
+ return Result.Err(`Access wizard failed to open a chat: ${JSON.stringify(rChat.Err())}`);
12
+ }
13
+ const chat = rChat.Ok();
14
+ const draft = {
15
+ kind: "draft",
16
+ files: args.files.flatMap((f) => "content" in f && typeof f.content === "string"
17
+ ? [{ type: "code-block", lang: langOf(f.filename), filename: f.filename, content: f.content }]
18
+ : []),
19
+ };
20
+ const rPrompt = await chat.prompt({ messages: [{ role: "user", content: [{ type: "text", text: CLI_ACCESS_WIZARD_PROMPT }] }] }, { variant: "access-wizard", selected: draft, ...(args.apiKey === undefined ? {} : { apiKey: args.apiKey }) });
21
+ if (rPrompt.isErr()) {
22
+ await chat.close();
23
+ return Result.Err(`Access wizard turn was refused: ${JSON.stringify(rPrompt.Err())}`);
24
+ }
25
+ const sectionOnly = chat.sectionStream.pipeThrough(new TransformStream({
26
+ transform(msg, controller) {
27
+ if (isSectionEvent(msg))
28
+ controller.enqueue(msg);
29
+ },
30
+ }));
31
+ const rResolved = await resolveSectionStream({
32
+ sectionStream: sectionOnly,
33
+ streamId: rPrompt.Ok().promptId,
34
+ seed: new Map(args.files.flatMap((f) => "content" in f && typeof f.content === "string" ? [[stripLeadingSlash(f.filename), f.content]] : [])),
35
+ });
36
+ await chat.close();
37
+ if (rResolved.isErr()) {
38
+ return Result.Err(`Access wizard stream failed: ${rResolved.Err().message}`);
39
+ }
40
+ const files = rResolved.Ok().files;
41
+ const source = files[ACCESS_FN_FILENAME];
42
+ if (source === undefined || source.trim() === "") {
43
+ return Result.Err("Access wizard finished without writing an access.js. Nothing was published — re-run the push, or pass --no-access-fn to publish without data access rules.");
44
+ }
45
+ const declaresAnonymous = declaresAllowAnonymous(source);
46
+ await args.note("info", declaresAnonymous
47
+ ? "Access wizard wrote access.js (anonymous submissions declared — publishing with anonymous writes admitted)."
48
+ : "Access wizard wrote access.js.");
49
+ return Result.Ok({ source, files, declaresAnonymous });
50
+ }
51
+ function stripLeadingSlash(path) {
52
+ return path.startsWith("/") ? path.slice(1) : path;
53
+ }
54
+ function langOf(filename) {
55
+ const dot = filename.lastIndexOf(".");
56
+ return dot === -1 ? "js" : filename.slice(dot + 1).toLowerCase();
57
+ }
58
+ //# sourceMappingURL=access-wizard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-wizard.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/access-wizard.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,112 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { describe, expect, it, vi } from "vitest";
3
+ import { runAccessWizard } from "./access-wizard.js";
4
+ const APP = {
5
+ type: "code-block",
6
+ lang: "jsx",
7
+ filename: "/App.jsx",
8
+ content: "export default function App(){ return <div>todo list with authorHandle</div>; }",
9
+ };
10
+ function turnStream(files, streamId) {
11
+ const base = (seq) => ({ blockId: "b1", streamId, seq, blockNr: 1, timestamp: new Date() });
12
+ const blocks = [];
13
+ let seq = 0;
14
+ let n = 0;
15
+ for (const [path, content] of Object.entries(files)) {
16
+ n += 1;
17
+ const sectionId = `s${n}`;
18
+ const lang = path.endsWith(".jsx") ? "jsx" : "js";
19
+ blocks.push({ type: "block.code.begin", sectionId, lang, path, ...base(seq++) });
20
+ content.split("\n").forEach((line, i) => {
21
+ blocks.push({ type: "block.code.line", sectionId, lang, path, lineNr: i + 1, line, ...base(seq++) });
22
+ });
23
+ blocks.push({
24
+ type: "block.code.end",
25
+ sectionId,
26
+ lang,
27
+ path,
28
+ stats: { lines: content.split("\n").length, bytes: content.length },
29
+ ...base(seq++),
30
+ });
31
+ }
32
+ blocks.push({
33
+ type: "block.end",
34
+ stats: {
35
+ toplevel: { lines: 0, bytes: 0 },
36
+ code: { lines: 1, bytes: 1 },
37
+ image: { lines: 0, bytes: 0 },
38
+ total: { lines: 1, bytes: 1 },
39
+ },
40
+ usage: { given: [], calculated: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } },
41
+ ...base(seq++),
42
+ });
43
+ blocks.push({ type: "prompt.block-end", chatId: "chat-live", ...base(seq++) });
44
+ return new ReadableStream({
45
+ start(controller) {
46
+ controller.enqueue({
47
+ type: "vibes.diy.section-event",
48
+ chatId: "chat-live",
49
+ promptId: streamId,
50
+ blockSeq: 0,
51
+ timestamp: new Date(),
52
+ blocks: blocks,
53
+ });
54
+ controller.close();
55
+ },
56
+ });
57
+ }
58
+ function makeApi(files) {
59
+ const prompt = vi.fn().mockResolvedValue(Result.Ok({ promptId: "stream-1" }));
60
+ const close = vi.fn().mockResolvedValue(undefined);
61
+ const openChat = vi.fn().mockResolvedValue(Result.Ok({ sectionStream: turnStream(files, "stream-1"), prompt, close }));
62
+ return { api: { openChat }, prompt, openChat };
63
+ }
64
+ describe("the CLI access wizard (#4699 Task 11)", () => {
65
+ it("sends the LOCAL directory as the turn's draft selection", async () => {
66
+ const { api, prompt } = makeApi({ "access.js": "export function todos(){ return {}; }" });
67
+ const r = await runAccessWizard({
68
+ api,
69
+ ownerHandle: "testuser",
70
+ appSlug: "test-app",
71
+ files: [APP],
72
+ note: () => undefined,
73
+ });
74
+ expect(r.isErr()).toBe(false);
75
+ const opts = prompt.mock.calls[0][1];
76
+ expect(opts.variant).toBe("access-wizard");
77
+ expect(opts.selected.kind).toBe("draft");
78
+ expect(opts.selected.files.map((f) => f.filename)).toContain("/App.jsx");
79
+ expect(opts.selected.files[0].content).toContain("authorHandle");
80
+ });
81
+ it("returns the WHOLE resolved file set, not only access.js", async () => {
82
+ const { api } = makeApi({
83
+ "access.js": "export function todos(doc){ return doc.authorHandle ? {} : { forbidden: 'x' }; }",
84
+ "App.jsx": "export default function App(){ return <div>now stamps authorHandle</div>; }",
85
+ });
86
+ const r = await runAccessWizard({
87
+ api,
88
+ ownerHandle: "testuser",
89
+ appSlug: "test-app",
90
+ files: [APP],
91
+ note: () => undefined,
92
+ });
93
+ expect(r.isErr()).toBe(false);
94
+ expect(Object.keys(r.Ok().files).sort()).toEqual(["App.jsx", "access.js"]);
95
+ expect(r.Ok().source).toContain("authorHandle");
96
+ expect(r.Ok().declaresAnonymous).toBe(false);
97
+ });
98
+ it("reads a real allowAnonymous declaration as the dial's intent", async () => {
99
+ const { api } = makeApi({
100
+ "access.js": "export function s(doc, old, user){ if (!user) return { allowAnonymous: true }; return {}; }",
101
+ });
102
+ const r = await runAccessWizard({ api, ownerHandle: "u", appSlug: "a", files: [APP], note: () => undefined });
103
+ expect(r.Ok().declaresAnonymous).toBe(true);
104
+ });
105
+ it("fails closed when the turn writes no access.js", async () => {
106
+ const { api } = makeApi({ "App.jsx": "export default function App(){ return null; }" });
107
+ const r = await runAccessWizard({ api, ownerHandle: "u", appSlug: "a", files: [APP], note: () => undefined });
108
+ expect(r.isErr()).toBe(true);
109
+ expect(String(r.Err())).toContain("without writing an access.js");
110
+ });
111
+ });
112
+ //# sourceMappingURL=access-wizard.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"access-wizard.test.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/access-wizard.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { CliCtx } from "../../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../../cmd-evento.js";
4
+ export declare const ReqAppChips: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "vibes-diy.cli.app-chips";
6
+ appSlug: string;
7
+ ownerHandle: string;
8
+ apiUrl: string;
9
+ chips: string[];
10
+ fsId: string;
11
+ }, {}>;
12
+ export type ReqAppChips = typeof ReqAppChips.infer;
13
+ export declare function isReqAppChips(obj: unknown): obj is ReqAppChips;
14
+ export declare const ResAppChipsCli: import("arktype/internal/variants/object.ts").ObjectType<{
15
+ type: "vibes-diy.cli.res-app-chips";
16
+ appSlug: string;
17
+ ownerHandle: string;
18
+ fsId: string;
19
+ releaseSeq: number;
20
+ chips: string[];
21
+ }, {}>;
22
+ export type ResAppChipsCli = typeof ResAppChipsCli.infer;
23
+ export declare function isResAppChipsCli(obj: unknown): obj is ResAppChipsCli;
24
+ export declare function renderAppChipsLines(msg: ResAppChipsCli): string[];
25
+ export declare const appChipsEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqAppChips, ResAppChipsCli>;
26
+ export declare function appChipsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
27
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
28
+ apiUrl: string;
29
+ json: boolean;
30
+ text: boolean;
31
+ appSlug: string | undefined;
32
+ chips: string[];
33
+ vibe: string;
34
+ handle: string;
35
+ clear: boolean;
36
+ fsId: string;
37
+ }>>;
38
+ } & 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<{
39
+ apiUrl: string;
40
+ json: boolean;
41
+ text: boolean;
42
+ appSlug: string | undefined;
43
+ chips: string[];
44
+ vibe: string;
45
+ handle: string;
46
+ clear: boolean;
47
+ fsId: string;
48
+ }, never> & {
49
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
50
+ } & 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>;
@@ -0,0 +1,145 @@
1
+ import { command, flag, option, optional, positional, restPositionals, string } from "cmd-ts";
2
+ import { Result, Option } from "@adviser/cement";
3
+ import { type } from "arktype";
4
+ import { cmdTsDefaultArgs } from "../../cli-ctx.js";
5
+ import { sendMsg } from "../../cmd-evento.js";
6
+ import { resolveHandle } from "../../resolve-handle.js";
7
+ import { resolveVibePositionals } from "../../parse-vibe.js";
8
+ import { formatErr } from "../format-err.js";
9
+ import { HANDLE_REQUIRED_CLI_MESSAGE } from "../../handle-required.js";
10
+ export const ReqAppChips = type({
11
+ type: "'vibes-diy.cli.app-chips'",
12
+ appSlug: "string",
13
+ ownerHandle: "string",
14
+ apiUrl: "string",
15
+ chips: "string[]",
16
+ fsId: "string",
17
+ });
18
+ export function isReqAppChips(obj) {
19
+ return !(ReqAppChips(obj) instanceof type.errors);
20
+ }
21
+ export const ResAppChipsCli = type({
22
+ type: "'vibes-diy.cli.res-app-chips'",
23
+ appSlug: "string",
24
+ ownerHandle: "string",
25
+ fsId: "string",
26
+ releaseSeq: "number",
27
+ chips: "string[]",
28
+ });
29
+ export function isResAppChipsCli(obj) {
30
+ return !(ResAppChipsCli(obj) instanceof type.errors);
31
+ }
32
+ export function renderAppChipsLines(msg) {
33
+ const app = `${msg.ownerHandle}/${msg.appSlug}`;
34
+ const where = ` on release ${msg.fsId} (seq ${msg.releaseSeq})`;
35
+ if (msg.chips.length === 0) {
36
+ return [`${app}: cleared — visitors now see no suggestion chips.`, where];
37
+ }
38
+ return [`${app}: visitors now see these chips:`, ...msg.chips.map((c) => ` ▸ ${c}`), where];
39
+ }
40
+ export const appChipsEvento = {
41
+ hash: "vibes-diy.cli.app-chips",
42
+ validate: (ctx) => {
43
+ if (isReqAppChips(ctx.enRequest)) {
44
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
45
+ }
46
+ return Promise.resolve(Result.Ok(Option.None()));
47
+ },
48
+ handle: async (ctx) => {
49
+ const ectx = ctx.ctx.getOrThrow("cliCtx");
50
+ if (!ectx.vibesDiyApiFactory) {
51
+ return Result.Err("Not logged in. Run 'vibes-diy login' first.");
52
+ }
53
+ const args = ctx.validated;
54
+ const api = ectx.vibesDiyApiFactory(args.apiUrl);
55
+ const ownerHandle = await resolveHandle(api, args.ownerHandle === "" ? undefined : args.ownerHandle);
56
+ if (ownerHandle === undefined) {
57
+ return Result.Err(HANDLE_REQUIRED_CLI_MESSAGE);
58
+ }
59
+ if (args.appSlug === "") {
60
+ return Result.Err("Missing vibe — pass an app slug or handle/app-slug.");
61
+ }
62
+ const rSet = await api.setVibeChips({
63
+ appSlug: args.appSlug,
64
+ ownerHandle,
65
+ chips: args.chips,
66
+ ...(args.fsId === "" ? {} : { fsId: args.fsId }),
67
+ });
68
+ if (rSet.isErr()) {
69
+ return Result.Err(formatErr(rSet.Err()));
70
+ }
71
+ const r = rSet.Ok();
72
+ return sendMsg(ctx, {
73
+ type: "vibes-diy.cli.res-app-chips",
74
+ appSlug: r.appSlug,
75
+ ownerHandle: r.ownerHandle,
76
+ fsId: r.fsId,
77
+ releaseSeq: r.releaseSeq,
78
+ chips: r.chips,
79
+ });
80
+ },
81
+ };
82
+ export function appChipsCmd(ctx) {
83
+ return command({
84
+ name: "chips",
85
+ description: "Set the suggestion chips visitors see on a vibe's edit card (up to 3). --clear shows none. This is a publish: it changes what strangers see, not your own card. Publishing the vibe again re-derives the chips from your chat and overwrites what you set here — so set them after you publish.",
86
+ args: {
87
+ ...cmdTsDefaultArgs(ctx),
88
+ appSlug: positional({
89
+ displayName: "vibe",
90
+ description: "App slug or handle/app-slug (e.g. jchris/hat-smeller)",
91
+ type: optional(string),
92
+ }),
93
+ chips: restPositionals({
94
+ displayName: "chip",
95
+ description: "The chip labels, in order. More than 3 are trimmed to the first 3.",
96
+ type: string,
97
+ }),
98
+ vibe: option({
99
+ long: "vibe",
100
+ description: "Vibe identifier as handle/app-slug",
101
+ type: string,
102
+ defaultValue: () => "",
103
+ defaultValueIsSerializable: true,
104
+ }),
105
+ handle: option({
106
+ long: "handle",
107
+ description: "Act as this bound handle for this call only (leaves your default handle unchanged)",
108
+ type: string,
109
+ defaultValue: () => "",
110
+ defaultValueIsSerializable: true,
111
+ }),
112
+ clear: flag({
113
+ long: "clear",
114
+ description: "Show visitors no chips at all",
115
+ }),
116
+ fsId: option({
117
+ long: "fs-id",
118
+ description: "Stamp this published version instead of the live release",
119
+ type: string,
120
+ defaultValue: () => "",
121
+ defaultValueIsSerializable: true,
122
+ }),
123
+ },
124
+ handler: ctx.cliStream.enqueue((args) => {
125
+ const resolved = resolveVibePositionals({
126
+ vibe: args.vibe,
127
+ handle: args.handle,
128
+ positionals: [args.appSlug],
129
+ });
130
+ const chips = [...resolved.trailing, ...args.chips];
131
+ if (args.clear === false && chips.length === 0) {
132
+ throw new Error("Pass at least one chip, or --clear to show visitors no chips.");
133
+ }
134
+ return {
135
+ type: "vibes-diy.cli.app-chips",
136
+ appSlug: resolved.appSlug,
137
+ ownerHandle: resolved.handle,
138
+ apiUrl: args.apiUrl,
139
+ chips: args.clear ? [] : chips,
140
+ fsId: args.fsId,
141
+ };
142
+ }),
143
+ });
144
+ }
145
+ //# sourceMappingURL=chips-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/app/chips-cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9F,OAAO,EAAsB,MAAM,EAAoB,MAAM,EAAmC,MAAM,iBAAiB,CAAC;AACxH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAU,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,EAAgB,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AASvE,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,2BAA2B;IACjC,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,UAAU;IAEjB,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE,QAAQ;IAGpB,KAAK,EAAE,UAAU;CAClB,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,OAAO,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC;AACvD,CAAC;AAGD,MAAM,UAAU,mBAAmB,CAAC,GAAmB;IACrD,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,KAAK,GAAG,kBAAkB,GAAG,CAAC,IAAI,SAAS,GAAG,CAAC,UAAU,GAAG,CAAC;IACnE,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,GAAG,mDAAmD,EAAE,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,iCAAiC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAsE;IAC/F,IAAI,EAAE,yBAAyB;IAC/B,QAAQ,EAAE,CAAC,GAA2E,EAAE,EAAE;QACxF,IAAI,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,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,GAAyE,EAAqC,EAAE;QAC7H,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAS,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjD,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrG,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,MAAM,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,EAAE,EAAE,CAAC;YACxB,OAAO,MAAM,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;SACjD,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;QACpB,OAAO,OAAO,CAAC,GAAG,EAAE;YAClB,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,UAAU,EAAE,CAAC,CAAC,UAAU;YACxB,KAAK,EAAE,CAAC,CAAC,KAAK;SACU,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,OAAO;QACb,WAAW,EACT,iSAAiS;QACnS,IAAI,EAAE;YACJ,GAAG,gBAAgB,CAAC,GAAG,CAAC;YACxB,OAAO,EAAE,UAAU,CAAC;gBAClB,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,uDAAuD;gBACpE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;aACvB,CAAC;YACF,KAAK,EAAE,eAAe,CAAC;gBACrB,WAAW,EAAE,MAAM;gBACnB,WAAW,EAAE,oEAAoE;gBACjF,IAAI,EAAE,MAAM;aACb,CAAC;YACF,IAAI,EAAE,MAAM,CAAC;gBACX,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,oCAAoC;gBACjD,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,oFAAoF;gBACjG,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,KAAK,EAAE,IAAI,CAAC;gBACV,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,+BAA+B;aAC7C,CAAC;YACF,IAAI,EAAE,MAAM,CAAC;gBACX,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,0DAA0D;gBACvE,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,CAAC;SACH;QACD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YAQtC,MAAM,QAAQ,GAAG,sBAAsB,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;aAC5B,CAAC,CAAC;YACH,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;YAKpD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;YACnF,CAAC;YAGD,OAAO;gBACL,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,WAAW,EAAE,QAAQ,CAAC,MAAM;gBAC5B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK;gBAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;aACM,CAAC;QAC1B,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,30 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { renderAppChipsLines } from "./chips-cmd.js";
3
+ const base = {
4
+ type: "vibes-diy.cli.res-app-chips",
5
+ ownerHandle: "og",
6
+ appSlug: "potluck",
7
+ fsId: "zFsIdOfTheLiveRelease",
8
+ releaseSeq: 7,
9
+ chips: ["Add a signup sheet", "Track who brings what"],
10
+ };
11
+ describe("renderAppChipsLines (#4807)", () => {
12
+ it("reports the chips that landed and the release they landed on", () => {
13
+ const out = renderAppChipsLines(base).join("\n");
14
+ expect(out).toContain("og/potluck: visitors now see these chips:");
15
+ expect(out).toContain("▸ Add a signup sheet");
16
+ expect(out).toContain("▸ Track who brings what");
17
+ expect(out).toContain("on release zFsIdOfTheLiveRelease (seq 7)");
18
+ });
19
+ it("reports the capped list, not what was typed", () => {
20
+ const out = renderAppChipsLines({ ...base, chips: ["One", "Two", "Three"] }).join("\n");
21
+ expect(out).toContain("▸ Three");
22
+ expect(out).not.toContain("Four");
23
+ });
24
+ it("says cleared in words, so an empty stamp never reads as 'nothing happened'", () => {
25
+ const out = renderAppChipsLines({ ...base, chips: [] }).join("\n");
26
+ expect(out).toContain("cleared — visitors now see no suggestion chips");
27
+ expect(out).toContain("on release zFsIdOfTheLiveRelease");
28
+ });
29
+ });
30
+ //# sourceMappingURL=chips-render.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chips-render.test.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/app/chips-render.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAM1E,MAAM,IAAI,GAAmB;IAC3B,IAAI,EAAE,6BAA6B;IACnC,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,uBAAuB;IAC7B,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC,oBAAoB,EAAE,uBAAuB,CAAC;CACvD,CAAC;AAEF,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;IAC3C,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,4CAA4C,CAAC,CAAC;IACtE,CAAC,CAAC,CAAC;IAIH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4EAA4E,EAAE,GAAG,EAAE;QACpF,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,gDAAgD,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -2,8 +2,22 @@ import type { CliCtx } from "../../cli-ctx.js";
2
2
  export { appStatusEvento, isResAppStatusCli, renderAppStatusLines, type ResAppStatusCli } from "./status-cmd.js";
3
3
  export { appRearmEvento, isResAppRearmCli, renderAppRearmLines, type ResAppRearmCli } from "./rearm-cmd.js";
4
4
  export { appLogsEvento, isResAppLogsCli, renderAppLogLines, parseSince, type ResAppLogsCli } from "./logs-cmd.js";
5
+ export { appChipsEvento, isResAppChipsCli, renderAppChipsLines, type ResAppChipsCli } from "./chips-cmd.js";
5
6
  export declare function appSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
6
7
  parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
8
+ command: "chips";
9
+ args: {
10
+ apiUrl: string;
11
+ json: boolean;
12
+ text: boolean;
13
+ appSlug: string | undefined;
14
+ chips: string[];
15
+ vibe: string;
16
+ handle: string;
17
+ clear: boolean;
18
+ fsId: string;
19
+ };
20
+ } | {
7
21
  command: "logs";
8
22
  args: {
9
23
  apiUrl: string;
@@ -39,6 +53,19 @@ export declare function appSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist
39
53
  };
40
54
  }>>;
41
55
  } & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & 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<{
56
+ command: "chips";
57
+ args: {
58
+ apiUrl: string;
59
+ json: boolean;
60
+ text: boolean;
61
+ appSlug: string | undefined;
62
+ chips: string[];
63
+ vibe: string;
64
+ handle: string;
65
+ clear: boolean;
66
+ fsId: string;
67
+ };
68
+ } | {
42
69
  command: "logs";
43
70
  args: {
44
71
  apiUrl: string;
@@ -73,6 +100,9 @@ export declare function appSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist
73
100
  handle: string;
74
101
  };
75
102
  }, {
103
+ command: "chips";
104
+ value: never;
105
+ } | {
76
106
  command: "logs";
77
107
  value: never;
78
108
  } | {
@@ -83,6 +113,9 @@ export declare function appSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist
83
113
  value: never;
84
114
  }> & {
85
115
  run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
116
+ command: "chips";
117
+ value: never;
118
+ } | {
86
119
  command: "logs";
87
120
  value: never;
88
121
  } | {
@@ -2,17 +2,20 @@ import { subcommands } from "cmd-ts";
2
2
  import { appStatusCmd } from "./status-cmd.js";
3
3
  import { appRearmCmd } from "./rearm-cmd.js";
4
4
  import { appLogsCmd } from "./logs-cmd.js";
5
+ import { appChipsCmd } from "./chips-cmd.js";
5
6
  export { appStatusEvento, isResAppStatusCli, renderAppStatusLines } from "./status-cmd.js";
6
7
  export { appRearmEvento, isResAppRearmCli, renderAppRearmLines } from "./rearm-cmd.js";
7
8
  export { appLogsEvento, isResAppLogsCli, renderAppLogLines, parseSince } from "./logs-cmd.js";
9
+ export { appChipsEvento, isResAppChipsCli, renderAppChipsLines } from "./chips-cmd.js";
8
10
  export function appSubcommands(ctx) {
9
11
  return subcommands({
10
12
  name: "app",
11
- description: "Operate a deployed vibe: scheduled-task health, recovery, and its ctx.log diagnostics",
13
+ description: "Operate a deployed vibe: scheduled-task health, recovery, its ctx.log diagnostics, and its visitor-facing chips",
12
14
  cmds: {
13
15
  status: appStatusCmd(ctx),
14
16
  rearm: appRearmCmd(ctx),
15
17
  logs: appLogsCmd(ctx),
18
+ chips: appChipsCmd(ctx),
16
19
  },
17
20
  });
18
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAwB,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAsB,MAAM,eAAe,CAAC;AAElH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,uFAAuF;QACpG,IAAI,EAAE;YACJ,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;YACzB,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YACvB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;SACtB;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/app/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,oBAAoB,EAAwB,MAAM,iBAAiB,CAAC;AACjH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAC5G,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,UAAU,EAAsB,MAAM,eAAe,CAAC;AAClH,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,EAAuB,MAAM,gBAAgB,CAAC;AAE5G,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,iHAAiH;QAC9H,IAAI,EAAE;YACJ,MAAM,EAAE,YAAY,CAAC,GAAG,CAAC;YACzB,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;YACvB,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;YACrB,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC;SACxB;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -11,6 +11,7 @@ export declare const ReqGenerate: import("arktype/internal/variants/object.ts").
11
11
  appSlug: string;
12
12
  ownerHandle: string;
13
13
  instantJoin?: boolean | undefined;
14
+ noAccessFn?: boolean | undefined;
14
15
  verbose: boolean;
15
16
  apiUrl: string;
16
17
  dryRun: boolean;
@@ -33,6 +34,7 @@ export declare function generateCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cj
33
34
  userSlug: string;
34
35
  vibe: string;
35
36
  instantJoin: boolean;
37
+ noAccessFn: boolean;
36
38
  verbose: boolean;
37
39
  dryRun: boolean;
38
40
  transcript: boolean;
@@ -50,6 +52,7 @@ export declare function generateCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cj
50
52
  userSlug: string;
51
53
  vibe: string;
52
54
  instantJoin: boolean;
55
+ noAccessFn: boolean;
53
56
  verbose: boolean;
54
57
  dryRun: boolean;
55
58
  transcript: boolean;
@@ -14,6 +14,7 @@ export const ReqGenerate = type({
14
14
  appSlug: "string",
15
15
  ownerHandle: "string",
16
16
  "instantJoin?": "boolean",
17
+ "noAccessFn?": "boolean",
17
18
  verbose: "boolean",
18
19
  apiUrl: "string",
19
20
  dryRun: "boolean",
@@ -83,6 +84,7 @@ export const generateEvento = {
83
84
  ...(args.model !== undefined ? { model: args.model } : {}),
84
85
  ...(args.apiKey !== undefined ? { apiKey: args.apiKey } : {}),
85
86
  ...(args.focusPath !== undefined ? { focusPath: args.focusPath } : {}),
87
+ ...(args.noAccessFn === undefined ? {} : { noAccessFn: args.noAccessFn }),
86
88
  verbose: args.verbose,
87
89
  baseDir: ectx.cwd === undefined ? process.cwd() : ectx.cwd(),
88
90
  }, (level, message) => sendProgress(ctx, level, message));
@@ -134,6 +136,10 @@ export function generateCmd(ctx) {
134
136
  long: "instant-join",
135
137
  description: "[Deprecated: no-op. Auto-accept editor is now always enabled by default.]",
136
138
  }),
139
+ noAccessFn: flag({
140
+ long: "no-access-fn",
141
+ description: "Publish without running the access wizard (a second codegen turn) when the generated app has no access.js. Nothing will govern what visitors do with its documents.",
142
+ }),
137
143
  verbose: flag({
138
144
  long: "verbose",
139
145
  short: "v",
@@ -1 +1 @@
1
- {"version":3,"file":"generate-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/generate-cmd.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/generate-cmd.ts"],"names":[],"mappings":"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"}