vibes-diy 2.6.10 → 2.6.13

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.js CHANGED
@@ -7,7 +7,8 @@ import { pushEvento } from "./cmds/push-cmd.js";
7
7
  import { putAssetEvento } from "./cmds/put-asset-cmd.js";
8
8
  import { generateEvento } from "./cmds/generate-cmd.js";
9
9
  import { dbListEvento, dbGetEvento, dbPutEvento, dbDelEvento, dbQueryEvento, dbSubscribeEvento } from "./cmds/db/index.js";
10
- import { chatsEvento } from "./cmds/chats-cmd.js";
10
+ import { codegenLogEvento } from "./cmds/codegen-log-cmd.js";
11
+ import { appChatsEvento } from "./cmds/app-chats-cmd.js";
11
12
  import { editEvento } from "./cmds/edit-cmd.js";
12
13
  import { listEvento } from "./cmds/list-cmd.js";
13
14
  import { pullEvento } from "./cmds/pull-cmd.js";
@@ -39,7 +40,8 @@ export function cmdTsEvento() {
39
40
  pushEvento,
40
41
  putAssetEvento,
41
42
  generateEvento,
42
- chatsEvento,
43
+ appChatsEvento,
44
+ codegenLogEvento,
43
45
  editEvento,
44
46
  listEvento,
45
47
  pullEvento,
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-evento.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAsC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAsD,MAAM,cAAc,CAAC;AAG3H,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAkD,EAClD,MAAS;IAET,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,GAAG,GAAG,CAAC,OAAO;QACd,MAAM;KACmB,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC;QACV,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc;QACd,cAAc;QACd,WAAW;QACX,UAAU;QACV,UAAU;QACV,UAAU;QACV,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,aAAa;QACb,iBAAiB;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"cmd-evento.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAsC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAsD,MAAM,cAAc,CAAC;AAG3H,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAkD,EAClD,MAAS;IAET,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,GAAG,GAAG,CAAC,OAAO;QACd,MAAM;KACmB,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC;QACV,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc;QACd,cAAc;QACd,cAAc;QACd,gBAAgB;QAChB,UAAU;QACV,UAAU;QACV,UAAU;QACV,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,aAAa;QACb,iBAAiB;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { EventoHandler } from "@adviser/cement";
2
+ import { CliCtx } from "../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../cmd-evento.js";
4
+ export declare const ReqAppChats: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "vibes-diy.cli.app-chats";
6
+ appSlug: string;
7
+ ownerHandle: string;
8
+ chatId?: string | undefined;
9
+ apiUrl: string;
10
+ }, {}>;
11
+ export type ReqAppChats = typeof ReqAppChats.infer;
12
+ export declare function isReqAppChats(obj: unknown): obj is ReqAppChats;
13
+ export declare const ResAppChatsList: import("arktype/internal/variants/object.ts").ObjectType<{
14
+ type: "vibes-diy.cli.res-app-chats-list";
15
+ items: {
16
+ chatId: string;
17
+ appSlug: string;
18
+ ownerHandle: string;
19
+ created: string;
20
+ }[];
21
+ }, {}>;
22
+ export type ResAppChatsList = typeof ResAppChatsList.infer;
23
+ export declare function isResAppChatsList(obj: unknown): obj is ResAppChatsList;
24
+ export declare const ResAppChatsDetail: import("arktype/internal/variants/object.ts").ObjectType<{
25
+ type: "vibes-diy.cli.res-app-chats-detail";
26
+ chatId: string;
27
+ ownerHandle?: string | undefined;
28
+ appSlug?: string | undefined;
29
+ output: string;
30
+ }, {}>;
31
+ export type ResAppChatsDetail = typeof ResAppChatsDetail.infer;
32
+ export declare function isResAppChatsDetail(obj: unknown): obj is ResAppChatsDetail;
33
+ type ResAppChats = ResAppChatsList | ResAppChatsDetail;
34
+ export declare const appChatsEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqAppChats, ResAppChats>;
35
+ export declare function appChatsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
36
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
37
+ appSlug: string | undefined;
38
+ chatId: string | undefined;
39
+ vibe: string;
40
+ handle: string;
41
+ apiUrl: string;
42
+ json: boolean;
43
+ text: boolean;
44
+ }>>;
45
+ } & 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
+ appSlug: string | undefined;
47
+ chatId: string | undefined;
48
+ vibe: string;
49
+ handle: string;
50
+ apiUrl: string;
51
+ json: boolean;
52
+ text: boolean;
53
+ }, never> & {
54
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
55
+ } & 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>;
56
+ export {};
@@ -0,0 +1,143 @@
1
+ import { command, option, optional, positional, string } from "cmd-ts";
2
+ import { Result, Option } from "@adviser/cement";
3
+ import { type } from "arktype";
4
+ import { resListApplicationChatsItem } from "@vibes.diy/api-types";
5
+ import { cmdTsDefaultArgs } from "../cli-ctx.js";
6
+ import { sendMsg } from "../cmd-evento.js";
7
+ import { resolveHandle } from "../resolve-handle.js";
8
+ import { formatErr } from "./format-err.js";
9
+ import { resolveVibePositionals } from "../parse-vibe.js";
10
+ import { renderAppChatBlocks } from "./chat-response-render.js";
11
+ export const ReqAppChats = type({
12
+ type: "'vibes-diy.cli.app-chats'",
13
+ appSlug: "string",
14
+ ownerHandle: "string",
15
+ "chatId?": "string",
16
+ apiUrl: "string",
17
+ });
18
+ export function isReqAppChats(obj) {
19
+ return !(ReqAppChats(obj) instanceof type.errors);
20
+ }
21
+ export const ResAppChatsList = type({
22
+ type: "'vibes-diy.cli.res-app-chats-list'",
23
+ items: resListApplicationChatsItem.array(),
24
+ });
25
+ export function isResAppChatsList(obj) {
26
+ return !(ResAppChatsList(obj) instanceof type.errors);
27
+ }
28
+ export const ResAppChatsDetail = type({
29
+ type: "'vibes-diy.cli.res-app-chats-detail'",
30
+ chatId: "string",
31
+ "ownerHandle?": "string",
32
+ "appSlug?": "string",
33
+ output: "string",
34
+ });
35
+ export function isResAppChatsDetail(obj) {
36
+ return !(ResAppChatsDetail(obj) instanceof type.errors);
37
+ }
38
+ export const appChatsEvento = {
39
+ hash: "vibes-diy.cli.app-chats",
40
+ validate: (ctx) => {
41
+ if (isReqAppChats(ctx.enRequest)) {
42
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
43
+ }
44
+ return Promise.resolve(Result.Ok(Option.None()));
45
+ },
46
+ handle: async (ctx) => {
47
+ const ectx = ctx.ctx.getOrThrow("cliCtx");
48
+ if (ectx.vibesDiyApiFactory === undefined) {
49
+ return Result.Err("Not logged in. Run 'vibes-diy login' first.");
50
+ }
51
+ const args = ctx.validated;
52
+ const api = ectx.vibesDiyApiFactory(args.apiUrl);
53
+ const ownerHandle = await resolveHandle(api, args.ownerHandle === "" ? undefined : args.ownerHandle);
54
+ switch (true) {
55
+ case args.chatId !== undefined: {
56
+ const rDetail = await api.getApplicationChat({
57
+ chatId: args.chatId,
58
+ ...(args.appSlug !== "" ? { appSlug: args.appSlug } : {}),
59
+ ...(ownerHandle !== undefined ? { ownerHandle } : {}),
60
+ });
61
+ if (rDetail.isErr()) {
62
+ return Result.Err(formatErr(rDetail.Err()));
63
+ }
64
+ const detail = rDetail.Ok();
65
+ const output = renderAppChatBlocks(detail.blocks);
66
+ return sendMsg(ctx, {
67
+ type: "vibes-diy.cli.res-app-chats-detail",
68
+ chatId: args.chatId,
69
+ ...(detail.ownerHandle !== undefined ? { ownerHandle: detail.ownerHandle } : {}),
70
+ ...(detail.appSlug !== undefined ? { appSlug: detail.appSlug } : {}),
71
+ output,
72
+ });
73
+ }
74
+ default: {
75
+ const items = [];
76
+ let cursor;
77
+ do {
78
+ const rPage = await api.listApplicationChats({
79
+ appSlug: args.appSlug,
80
+ ...(ownerHandle !== undefined ? { ownerHandle } : {}),
81
+ limit: 100,
82
+ ...(cursor !== undefined ? { cursor } : {}),
83
+ });
84
+ if (rPage.isErr()) {
85
+ return Result.Err(formatErr(rPage.Err()));
86
+ }
87
+ const page = rPage.Ok();
88
+ items.push(...page.items);
89
+ cursor = page.nextCursor;
90
+ } while (cursor !== undefined);
91
+ return sendMsg(ctx, {
92
+ type: "vibes-diy.cli.res-app-chats-list",
93
+ items,
94
+ });
95
+ }
96
+ }
97
+ },
98
+ };
99
+ export function appChatsCmd(ctx) {
100
+ return command({
101
+ name: "app-chats",
102
+ description: "List or read the runtime in-app chats stored by a deployed vibe (the app's own chat/image messages, NOT the codegen build transcript).",
103
+ args: {
104
+ ...cmdTsDefaultArgs(ctx),
105
+ appSlug: positional({
106
+ displayName: "vibe",
107
+ description: "App slug or handle/app-slug",
108
+ type: optional(string),
109
+ }),
110
+ chatId: positional({
111
+ displayName: "chatId",
112
+ description: "Chat ID to read (omit to list all runtime chats)",
113
+ type: optional(string),
114
+ }),
115
+ vibe: option({
116
+ long: "vibe",
117
+ description: "Vibe identifier as handle/app-slug",
118
+ type: string,
119
+ defaultValue: () => "",
120
+ defaultValueIsSerializable: true,
121
+ }),
122
+ handle: option({
123
+ long: "handle",
124
+ description: "Handle (uses default if omitted)",
125
+ type: string,
126
+ defaultValue: () => "",
127
+ defaultValueIsSerializable: true,
128
+ }),
129
+ },
130
+ handler: ctx.cliStream.enqueue(({ handle, chatId, vibe, appSlug, ...rest }) => {
131
+ const resolved = resolveVibePositionals({ vibe, handle, positionals: [appSlug, chatId] });
132
+ const resolvedChatId = resolved.trailing[0];
133
+ const base = {
134
+ type: "vibes-diy.cli.app-chats",
135
+ ...rest,
136
+ appSlug: resolved.appSlug,
137
+ ownerHandle: resolved.handle,
138
+ };
139
+ return resolvedChatId === undefined ? base : { ...base, chatId: resolvedChatId };
140
+ }),
141
+ });
142
+ }
143
+ //# sourceMappingURL=app-chats-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-chats-cmd.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/app-chats-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,189 @@
1
+ import { AppContext, Result } from "@adviser/cement";
2
+ import { run } from "cmd-ts";
3
+ import { describe, expect, it } from "vitest";
4
+ import { cmd_tsStream } from "../cmd-ts-stream.js";
5
+ import { appChatsCmd, appChatsEvento, isReqAppChats } from "./app-chats-cmd.js";
6
+ function makeCtx() {
7
+ const cliStream = cmd_tsStream();
8
+ return {
9
+ sthis: { env: { get: () => undefined } },
10
+ cliStream,
11
+ output: { stdout: () => undefined, stderr: () => undefined },
12
+ exitCode: 0,
13
+ };
14
+ }
15
+ async function runAppChats(args) {
16
+ const ctx = makeCtx();
17
+ const reader = ctx.cliStream.stream.getReader();
18
+ const firstRead = reader.read();
19
+ await run(appChatsCmd(ctx), args);
20
+ const first = await firstRead;
21
+ await ctx.cliStream.close();
22
+ expect(first.done).toBe(false);
23
+ const request = first.value.result;
24
+ expect(isReqAppChats(request)).toBe(true);
25
+ return request;
26
+ }
27
+ describe("appChatsCmd", () => {
28
+ it("bare positional vibe issues a list-application-chats request (not codegen)", async () => {
29
+ const request = await runAppChats(["my-app", "--api-url", "https://example.com/api"]);
30
+ expect(request.type).toBe("vibes-diy.cli.app-chats");
31
+ expect(request.type).not.toBe("vibes-diy.cli.codegen-log");
32
+ expect(request.type).not.toBe("vibes-diy.cli.chats");
33
+ expect(request.appSlug).toBe("my-app");
34
+ expect(request.ownerHandle).toBe("");
35
+ expect(request.chatId).toBeUndefined();
36
+ });
37
+ it("splits handle/app-slug positional into separate fields", async () => {
38
+ const request = await runAppChats(["jchris/hat-smeller"]);
39
+ expect(request.appSlug).toBe("hat-smeller");
40
+ expect(request.ownerHandle).toBe("jchris");
41
+ });
42
+ it("positional vibe + chatId issues a get-application-chat request", async () => {
43
+ const request = await runAppChats(["jchris/hat-smeller", "chat-123"]);
44
+ expect(request.appSlug).toBe("hat-smeller");
45
+ expect(request.ownerHandle).toBe("jchris");
46
+ expect(request.chatId).toBe("chat-123");
47
+ expect(request.type).toBe("vibes-diy.cli.app-chats");
48
+ });
49
+ it("--vibe works without a positional arg", async () => {
50
+ const request = await runAppChats(["--vibe", "alice/cool-app"]);
51
+ expect(request.appSlug).toBe("cool-app");
52
+ expect(request.ownerHandle).toBe("alice");
53
+ expect(request.chatId).toBeUndefined();
54
+ });
55
+ it("--vibe shifts the lone positional to chatId", async () => {
56
+ const request = await runAppChats(["chat-123", "--vibe", "alice/cool-app"]);
57
+ expect(request.appSlug).toBe("cool-app");
58
+ expect(request.ownerHandle).toBe("alice");
59
+ expect(request.chatId).toBe("chat-123");
60
+ });
61
+ it("explicit --handle overrides handle parsed from positional", async () => {
62
+ const request = await runAppChats(["jchris/hat-smeller", "--handle", "other-user"]);
63
+ expect(request.appSlug).toBe("hat-smeller");
64
+ expect(request.ownerHandle).toBe("other-user");
65
+ });
66
+ it("appSlug-only (no chatId) keeps chatId undefined regardless of flags", async () => {
67
+ const request = await runAppChats(["jchris/hat-smeller"]);
68
+ expect(request.appSlug).toBe("hat-smeller");
69
+ expect(request.chatId).toBeUndefined();
70
+ });
71
+ it("rejects the legacy placeholder form (vibe positional + chatId + --vibe)", async () => {
72
+ const ctx = makeCtx();
73
+ await expect(run(appChatsCmd(ctx), ["ignored", "chat-123", "--vibe", "alice/cool-app"])).rejects.toThrow("--vibe already supplies the vibe — drop the extra leading positional (the placeholder vibe argument is no longer needed).");
74
+ await ctx.cliStream.close();
75
+ });
76
+ it("request type is vibes-diy.cli.app-chats (distinct from codegen-log and chats)", async () => {
77
+ const request = await runAppChats(["my-app"]);
78
+ expect(request.type).toBe("vibes-diy.cli.app-chats");
79
+ expect(request.type).not.toBe("vibes-diy.cli.codegen-log");
80
+ expect(request.type).not.toBe("vibes-diy.cli.chats");
81
+ });
82
+ });
83
+ function makeBase(seq) {
84
+ return { blockId: "blk", streamId: "s", seq, blockNr: 0, timestamp: new Date(0) };
85
+ }
86
+ function toplevelLine(seq, line) {
87
+ return { type: "block.toplevel.line", sectionId: "s", lineNr: seq, line, ...makeBase(seq) };
88
+ }
89
+ function imageBlock(seq, url) {
90
+ return {
91
+ type: "block.image",
92
+ sectionId: "s",
93
+ url,
94
+ stats: { lines: 0, bytes: url.length },
95
+ ...makeBase(seq),
96
+ };
97
+ }
98
+ function cidImageBlock(seq, cid) {
99
+ return {
100
+ type: "block.image",
101
+ sectionId: "s",
102
+ cid,
103
+ stats: { lines: 0, bytes: cid.length },
104
+ ...makeBase(seq),
105
+ };
106
+ }
107
+ function buildTrigger(args, api, sent) {
108
+ const cliCtx = {
109
+ sthis: { env: { get: () => undefined } },
110
+ cliStream: cmd_tsStream(),
111
+ output: { stdout: () => undefined, stderr: () => undefined },
112
+ vibesDiyApiFactory: () => api,
113
+ exitCode: 0,
114
+ };
115
+ const appCtx = new AppContext().set("cliCtx", cliCtx);
116
+ return {
117
+ id: "trigger-1",
118
+ ctx: appCtx,
119
+ enRequest: args,
120
+ request: { type: "msg.cmd-ts", cmdTs: { raw: args, outputFormat: "text" }, result: args },
121
+ validated: args,
122
+ send: {
123
+ send: async (_trigger, data) => {
124
+ sent.push(data);
125
+ return Result.Ok(undefined);
126
+ },
127
+ },
128
+ };
129
+ }
130
+ describe("appChatsEvento handler", () => {
131
+ it("LIST path calls listApplicationChats on the api (not getApplicationChat)", async () => {
132
+ const listCalls = [];
133
+ const api = {
134
+ ensureUserSettings: async () => Result.Ok({ settings: [] }),
135
+ listApplicationChats: async (req) => {
136
+ listCalls.push(req);
137
+ return Result.Ok({ items: [], nextCursor: undefined });
138
+ },
139
+ };
140
+ const args = {
141
+ type: "vibes-diy.cli.app-chats",
142
+ appSlug: "hat-smeller",
143
+ ownerHandle: "alice",
144
+ apiUrl: "https://vibes.diy/api",
145
+ };
146
+ const sent = [];
147
+ const r = await appChatsEvento.handle(buildTrigger(args, api, sent));
148
+ expect(r.isOk()).toBe(true);
149
+ expect(listCalls).toHaveLength(1);
150
+ expect(listCalls[0]).toMatchObject({ appSlug: "hat-smeller" });
151
+ const result = sent[0].result;
152
+ expect(result).toMatchObject({ type: "vibes-diy.cli.res-app-chats-list", items: [] });
153
+ });
154
+ it("deep-read path renders toplevel text AND image placeholder from blocks", async () => {
155
+ const blocks = [
156
+ toplevelLine(0, "Here is your image:"),
157
+ imageBlock(1, "https://example.com/img.png"),
158
+ cidImageBlock(2, "bafyreiXYZ"),
159
+ ];
160
+ const api = {
161
+ ensureUserSettings: async () => Result.Ok({ settings: [] }),
162
+ getApplicationChat: async (_req) => {
163
+ return Result.Ok({
164
+ type: "vibes.diy.res-get-application-chat",
165
+ chatId: "chat-abc",
166
+ ownerHandle: "alice",
167
+ appSlug: "hat-smeller",
168
+ blocks,
169
+ });
170
+ },
171
+ };
172
+ const args = {
173
+ type: "vibes-diy.cli.app-chats",
174
+ appSlug: "hat-smeller",
175
+ ownerHandle: "alice",
176
+ chatId: "chat-abc",
177
+ apiUrl: "https://vibes.diy/api",
178
+ };
179
+ const sent = [];
180
+ const r = await appChatsEvento.handle(buildTrigger(args, api, sent));
181
+ expect(r.isOk()).toBe(true);
182
+ const result = sent[0].result;
183
+ expect(result.output).toContain("Here is your image:");
184
+ expect(result.output).toContain("[image: https://example.com/img.png]");
185
+ expect(result.output).toContain("[image: bafyreiXYZ]");
186
+ expect(result).toMatchObject({ type: "vibes-diy.cli.res-app-chats-detail", chatId: "chat-abc" });
187
+ });
188
+ });
189
+ //# sourceMappingURL=app-chats-cmd.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-chats-cmd.test.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/app-chats-cmd.test.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { PromptAndBlockMsgs, ResChatResponseTurn, SectionEvent } from "@vib
3
3
  import { type ResolveSectionStreamResult } from "./resolve-section-stream.js";
4
4
  export declare function turnBlocks(turn: ResChatResponseTurn): PromptAndBlockMsgs[];
5
5
  export declare function reconstructVerbatim(blocks: readonly PromptAndBlockMsgs[]): string;
6
+ export declare function renderAppChatBlocks(blocks: readonly PromptAndBlockMsgs[]): string;
6
7
  export declare function renderJsonl(blocks: readonly PromptAndBlockMsgs[]): string;
7
8
  export declare function extractRawText(blocks: readonly PromptAndBlockMsgs[]): string | undefined;
8
9
  export declare function extractUserPrompts(blocks: readonly PromptAndBlockMsgs[]): string[];
@@ -1,5 +1,5 @@
1
1
  import { Result } from "@adviser/cement";
2
- import { isCodeBegin, isCodeEnd, isCodeLine, isToplevelLine } from "@vibes.diy/call-ai-v2";
2
+ import { isBlockImage, isCodeBegin, isCodeEnd, isCodeLine, isToplevelLine } from "@vibes.diy/call-ai-v2";
3
3
  import { isPromptRaw, isPromptReq } from "@vibes.diy/api-types";
4
4
  import { resolveSectionStream } from "./resolve-section-stream.js";
5
5
  export function turnBlocks(turn) {
@@ -24,6 +24,29 @@ export function reconstructVerbatim(blocks) {
24
24
  }
25
25
  return out.join("\n");
26
26
  }
27
+ export function renderAppChatBlocks(blocks) {
28
+ const out = [];
29
+ for (const b of blocks) {
30
+ if (isToplevelLine(b)) {
31
+ out.push(b.line);
32
+ }
33
+ else if (isCodeBegin(b)) {
34
+ const info = b.path ? `${b.lang} ${b.path}` : b.lang;
35
+ out.push("```" + info);
36
+ }
37
+ else if (isCodeLine(b)) {
38
+ out.push(b.line);
39
+ }
40
+ else if (isCodeEnd(b)) {
41
+ out.push("```");
42
+ }
43
+ else if (isBlockImage(b)) {
44
+ const ref = b.url ?? b.cid ?? b.uploadId ?? "(unknown)";
45
+ out.push(`[image: ${ref}]`);
46
+ }
47
+ }
48
+ return out.join("\n");
49
+ }
27
50
  export function renderJsonl(blocks) {
28
51
  return blocks.map((b) => JSON.stringify(b)).join("\n");
29
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"chat-response-render.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/chat-response-render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-response-render.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/chat-response-render.ts"],"names":[],"mappings":"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"}
@@ -1,57 +1,11 @@
1
- import { EventoHandler } from "@adviser/cement";
2
1
  import { CliCtx } from "../cli-ctx.js";
3
- import { WrapCmdTSMsg } from "../cmd-evento.js";
4
- export declare const ReqChats: import("arktype/internal/variants/object.ts").ObjectType<{
5
- type: "vibes-diy.cli.chats";
6
- appSlug: string;
7
- ownerHandle: string;
8
- chatId?: string | undefined;
9
- apiUrl: string;
10
- response?: boolean | undefined;
11
- raw?: boolean | undefined;
12
- files?: boolean | undefined;
13
- jsonl?: boolean | undefined;
14
- user?: boolean | undefined;
15
- promptId?: string | undefined;
16
- }, {}>;
17
- export type ReqChats = typeof ReqChats.infer;
18
- export declare function isReqChats(obj: unknown): obj is ReqChats;
19
- export declare const ResChatResponse: import("arktype/internal/variants/object.ts").ObjectType<{
20
- type: "vibes-diy.cli.res-chat-response";
21
- output: string;
22
- }, {}>;
23
- export type ResChatResponse = typeof ResChatResponse.infer;
24
- export declare function isResChatResponse(obj: unknown): obj is ResChatResponse;
25
- export declare const ResChatsList: import("arktype/internal/variants/object.ts").ObjectType<{
26
- type: "vibes-diy.cli.res-chats-list";
27
- items: {
28
- chatId: string;
29
- appSlug: string;
30
- ownerHandle: string;
31
- created: string;
32
- }[];
33
- }, {}>;
34
- export type ResChatsList = typeof ResChatsList.infer;
35
- export declare function isResChatsList(obj: unknown): obj is ResChatsList;
36
- export declare const ResChatDetail: import("arktype/internal/variants/object.ts").ObjectType<{
37
- type: "vibes-diy.cli.res-chat-detail";
38
- chatId: string;
39
- ownerHandle: string;
40
- appSlug: string;
41
- prompts: {
42
- prompt: string;
43
- fsId: string;
44
- created: string;
45
- }[];
46
- }, {}>;
47
- export type ResChatDetail = typeof ResChatDetail.infer;
48
- export declare function isResChatDetail(obj: unknown): obj is ResChatDetail;
49
- type ResChats = ResChatsList | ResChatDetail | ResChatResponse;
50
- export declare const chatsEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqChats, ResChats>;
51
2
  export declare function chatsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
52
3
  parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
53
- appSlug: string | undefined;
54
- chatId: string | undefined;
4
+ apiUrl: string;
5
+ json: boolean;
6
+ text: boolean;
7
+ arg1: string | undefined;
8
+ arg2: string | undefined;
55
9
  vibe: string;
56
10
  handle: string;
57
11
  response: boolean;
@@ -60,13 +14,13 @@ export declare function chatsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/a
60
14
  jsonl: boolean;
61
15
  user: boolean;
62
16
  turn: string | undefined;
63
- apiUrl: string;
64
- json: boolean;
65
- text: boolean;
66
17
  }>>;
67
18
  } & 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<{
68
- appSlug: string | undefined;
69
- chatId: string | undefined;
19
+ apiUrl: string;
20
+ json: boolean;
21
+ text: boolean;
22
+ arg1: string | undefined;
23
+ arg2: string | undefined;
70
24
  vibe: string;
71
25
  handle: string;
72
26
  response: boolean;
@@ -75,10 +29,6 @@ export declare function chatsCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/a
75
29
  jsonl: boolean;
76
30
  user: boolean;
77
31
  turn: string | undefined;
78
- apiUrl: string;
79
- json: boolean;
80
- text: boolean;
81
32
  }, never> & {
82
33
  run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
83
34
  } & 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>;
84
- export {};