vibes-diy 14.1.2 → 14.1.3

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.
@@ -16,17 +16,32 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
16
16
  type: "core-cli.res-device-id-register";
17
17
  output: string;
18
18
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
19
- type: "vibes-diy.cli.skills";
19
+ type: "use-vibes.cli.themes";
20
20
  }, {
21
- type: "vibes-diy.cli.res-skills-list";
22
- skills: {
21
+ type: "use-vibes.cli.res-themes-list";
22
+ themes: {
23
+ slug: string;
23
24
  name: string;
24
- description: string;
25
25
  }[];
26
26
  } | {
27
- type: "vibes-diy.cli.res-skill-content";
28
- name: string;
27
+ type: "use-vibes.cli.res-theme-content";
28
+ slug: string;
29
29
  content: string;
30
+ }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
31
+ type: "vibes-diy.cli.put-asset";
32
+ file: string;
33
+ appSlug: string;
34
+ ownerHandle: string;
35
+ apiUrl: string;
36
+ mimeType: string;
37
+ verifyFetch: boolean;
38
+ }, {
39
+ type: "vibes-diy.cli.res-put-asset";
40
+ cid: string;
41
+ getURL: string;
42
+ size: number;
43
+ uploadId: string;
44
+ verified?: boolean | undefined;
30
45
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
31
46
  type: "vibes-diy.cli.db.list";
32
47
  apiUrl: string;
@@ -337,6 +352,9 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
337
352
  type: "contactEmail";
338
353
  email: string;
339
354
  updatedAt: string;
355
+ } | {
356
+ type: "onboarding";
357
+ completedAt: string;
340
358
  } | {
341
359
  type: "geoCountry";
342
360
  country: string;
@@ -347,9 +365,6 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
347
365
  [x: string]: string;
348
366
  };
349
367
  updatedAt: string;
350
- } | {
351
- type: "onboarding";
352
- completedAt: string;
353
368
  } | {
354
369
  type: "defaultHandle";
355
370
  ownerHandle: string;
@@ -357,16 +372,16 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
357
372
  updated: string;
358
373
  created: string;
359
374
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
360
- type: "use-vibes.cli.themes";
375
+ type: "vibes-diy.cli.skills";
361
376
  }, {
362
- type: "use-vibes.cli.res-themes-list";
363
- themes: {
364
- slug: string;
377
+ type: "vibes-diy.cli.res-skills-list";
378
+ skills: {
365
379
  name: string;
380
+ description: string;
366
381
  }[];
367
382
  } | {
368
- type: "use-vibes.cli.res-theme-content";
369
- slug: string;
383
+ type: "vibes-diy.cli.res-skill-content";
384
+ name: string;
370
385
  content: string;
371
386
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
372
387
  type: "vibes-diy.cli.system";
@@ -442,25 +457,25 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
442
457
  type: "vibes.diy.res-error";
443
458
  error: {
444
459
  message: string;
445
- code: "from-not-owned";
460
+ code: "max-app-slugs-reached";
446
461
  };
447
462
  } | {
448
463
  type: "vibes.diy.res-error";
449
464
  error: {
450
465
  message: string;
451
- code: "from-carry-failed";
466
+ code: "handle-required";
452
467
  };
453
468
  } | {
454
469
  type: "vibes.diy.res-error";
455
470
  error: {
456
471
  message: string;
457
- code: "handle-required";
472
+ code: "from-not-owned";
458
473
  };
459
474
  } | {
460
475
  type: "vibes.diy.res-error";
461
476
  error: {
462
477
  message: string;
463
- code: "max-app-slugs-reached";
478
+ code: "from-carry-failed";
464
479
  };
465
480
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
466
481
  type: "vibes-diy.cli.remix";
@@ -489,21 +504,6 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
489
504
  ownerHandle?: string | undefined;
490
505
  defaultHandleSet?: boolean | undefined;
491
506
  suggestions: string[];
492
- }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
493
- type: "vibes-diy.cli.put-asset";
494
- file: string;
495
- appSlug: string;
496
- ownerHandle: string;
497
- apiUrl: string;
498
- mimeType: string;
499
- verifyFetch: boolean;
500
- }, {
501
- type: "vibes-diy.cli.res-put-asset";
502
- cid: string;
503
- getURL: string;
504
- size: number;
505
- uploadId: string;
506
- verified?: boolean | undefined;
507
507
  }> | import("@adviser/cement").EventoHandler<WrapCmdTSMsg<unknown>, {
508
508
  type: "vibes-diy.cli.generate";
509
509
  prompt: string;
@@ -571,25 +571,25 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
571
571
  type: "vibes.diy.res-error";
572
572
  error: {
573
573
  message: string;
574
- code: "from-not-owned";
574
+ code: "max-app-slugs-reached";
575
575
  };
576
576
  } | {
577
577
  type: "vibes.diy.res-error";
578
578
  error: {
579
579
  message: string;
580
- code: "from-carry-failed";
580
+ code: "handle-required";
581
581
  };
582
582
  } | {
583
583
  type: "vibes.diy.res-error";
584
584
  error: {
585
585
  message: string;
586
- code: "handle-required";
586
+ code: "from-not-owned";
587
587
  };
588
588
  } | {
589
589
  type: "vibes.diy.res-error";
590
590
  error: {
591
591
  message: string;
592
- code: "max-app-slugs-reached";
592
+ code: "from-carry-failed";
593
593
  };
594
594
  } | {
595
595
  type: "vibes-diy.cli.res-generate";
@@ -687,25 +687,25 @@ export declare function cliEventoHandlers(): (import("@adviser/cement").EventoHa
687
687
  type: "vibes.diy.res-error";
688
688
  error: {
689
689
  message: string;
690
- code: "from-not-owned";
690
+ code: "max-app-slugs-reached";
691
691
  };
692
692
  } | {
693
693
  type: "vibes.diy.res-error";
694
694
  error: {
695
695
  message: string;
696
- code: "from-carry-failed";
696
+ code: "handle-required";
697
697
  };
698
698
  } | {
699
699
  type: "vibes.diy.res-error";
700
700
  error: {
701
701
  message: string;
702
- code: "handle-required";
702
+ code: "from-not-owned";
703
703
  };
704
704
  } | {
705
705
  type: "vibes.diy.res-error";
706
706
  error: {
707
707
  message: string;
708
- code: "max-app-slugs-reached";
708
+ code: "from-carry-failed";
709
709
  };
710
710
  } | {
711
711
  type: "vibes-diy.cli.res-edit";
@@ -0,0 +1,29 @@
1
+ import { Result } from "@adviser/cement";
2
+ import type { ResError, SectionEvent } from "@vibes.diy/api-types";
3
+ import { resolveSectionStream, type ResolveSectionStreamResult } from "./resolve-section-stream.js";
4
+ export declare const AGENT_TURN_CEILING_MS = 900000;
5
+ export interface FollowChatBuildChat {
6
+ readonly chatId: string;
7
+ readonly ownerHandle: string;
8
+ readonly appSlug: string;
9
+ readonly sectionStream: ReadableStream<unknown>;
10
+ }
11
+ export interface FollowChatBuildOpts {
12
+ readonly chat: FollowChatBuildChat;
13
+ readonly onSectionEvent?: (ev: SectionEvent) => void;
14
+ readonly onUpstreamError?: (err: ResError) => void;
15
+ readonly onProgress?: (msg: string) => void;
16
+ readonly onSnapshot?: Parameters<typeof resolveSectionStream>[0]["onSnapshot"];
17
+ readonly onError?: Parameters<typeof resolveSectionStream>[0]["onError"];
18
+ readonly deadlineMs?: number;
19
+ readonly startAfterPromptId?: string;
20
+ readonly now?: () => number;
21
+ }
22
+ export interface FollowChatBuildOk {
23
+ readonly ownerHandle: string;
24
+ readonly appSlug: string;
25
+ readonly claimed: boolean;
26
+ readonly buildPromptId: string;
27
+ readonly resolved: ResolveSectionStreamResult;
28
+ }
29
+ export declare function followChatBuild(opts: FollowChatBuildOpts): Promise<Result<FollowChatBuildOk>>;
@@ -0,0 +1,150 @@
1
+ import { Result } from "@adviser/cement";
2
+ import { isEvtChatAppClaimed, isPromptBlockEnd, isPromptError, isPromptRaw, isPromptReq, isResError, isSectionEvent, } from "@vibes.diy/api-types";
3
+ import { resolveSectionStream } from "./resolve-section-stream.js";
4
+ export const AGENT_TURN_CEILING_MS = 900_000;
5
+ function agentAnswer(prose, errors) {
6
+ const said = prose.trim();
7
+ const why = errors.length > 0 ? ` (${errors.join("; ")})` : "";
8
+ if (said.length === 0)
9
+ return `The agent ended its turn without building anything${why}.`;
10
+ return `The agent answered instead of building${why}: ${said}`;
11
+ }
12
+ async function readBounded(reader, deadlineAt, now) {
13
+ const remaining = deadlineAt - now();
14
+ if (remaining <= 0)
15
+ return { kind: "deadline" };
16
+ let timer;
17
+ const expiry = new Promise((res) => {
18
+ timer = setTimeout(() => res("deadline"), remaining);
19
+ });
20
+ const raced = await Promise.race([reader.read(), expiry]);
21
+ if (timer !== undefined)
22
+ clearTimeout(timer);
23
+ if (raced === "deadline")
24
+ return { kind: "deadline" };
25
+ if (raced.done === true)
26
+ return { kind: "done" };
27
+ return { kind: "value", value: raced.value };
28
+ }
29
+ export async function followChatBuild(opts) {
30
+ const now = opts.now ?? (() => Date.now());
31
+ const deadlineAt = now() + (opts.deadlineMs ?? AGENT_TURN_CEILING_MS);
32
+ const reader = opts.chat.sectionStream.getReader();
33
+ let ownerHandle = opts.chat.ownerHandle;
34
+ let appSlug = opts.chat.appSlug;
35
+ let claimed = false;
36
+ let buildPromptId;
37
+ const buffered = [];
38
+ const agentProse = [];
39
+ const promptErrors = [];
40
+ const agentTurnsEnded = new Set();
41
+ const agentTurnsSeen = new Set();
42
+ let live = opts.startAfterPromptId === undefined;
43
+ let writer;
44
+ let resolving;
45
+ let resolverSettled = new Promise(() => undefined);
46
+ const startResolving = async (streamId) => {
47
+ const ts = new TransformStream();
48
+ writer = ts.writable.getWriter();
49
+ resolving = resolveSectionStream({
50
+ sectionStream: ts.readable,
51
+ streamId,
52
+ ...(opts.onSnapshot === undefined ? {} : { onSnapshot: opts.onSnapshot }),
53
+ ...(opts.onError === undefined ? {} : { onError: opts.onError }),
54
+ });
55
+ resolverSettled = resolving.then(() => ({ kind: "resolved" }));
56
+ for (const ev of buffered.splice(0))
57
+ await writer.write(ev);
58
+ };
59
+ const finish = async () => {
60
+ if (writer !== undefined)
61
+ await writer.close().catch(() => undefined);
62
+ if (buildPromptId === undefined || resolving === undefined) {
63
+ return Result.Err(agentAnswer(agentProse.join(""), promptErrors));
64
+ }
65
+ const r = await resolving;
66
+ if (r.isErr())
67
+ return Result.Err(r.Err());
68
+ return Result.Ok({ ownerHandle, appSlug, claimed, buildPromptId, resolved: r.Ok() });
69
+ };
70
+ for (;;) {
71
+ const read = await Promise.race([readBounded(reader, deadlineAt, now), resolverSettled]);
72
+ if (read.kind === "resolved") {
73
+ await reader.cancel().catch(() => undefined);
74
+ return finish();
75
+ }
76
+ if (read.kind !== "value") {
77
+ await reader.cancel().catch(() => undefined);
78
+ return finish();
79
+ }
80
+ const msg = read.value;
81
+ if (isEvtChatAppClaimed(msg)) {
82
+ if (msg.chatId === opts.chat.chatId) {
83
+ ownerHandle = msg.ownerHandle;
84
+ appSlug = msg.appSlug;
85
+ claimed = true;
86
+ opts.onProgress?.(`Building ${ownerHandle}/${appSlug}...`);
87
+ }
88
+ continue;
89
+ }
90
+ if (isResError(msg)) {
91
+ opts.onUpstreamError?.(msg);
92
+ continue;
93
+ }
94
+ if (!isSectionEvent(msg))
95
+ continue;
96
+ const ev = msg;
97
+ opts.onSectionEvent?.(ev);
98
+ for (const raw of ev.blocks) {
99
+ const block = raw;
100
+ if (!live) {
101
+ if (block.streamId === opts.startAfterPromptId)
102
+ live = true;
103
+ continue;
104
+ }
105
+ if (isPromptReq(block)) {
106
+ const req = block;
107
+ if (req.agentDispatched === true)
108
+ buildPromptId ??= req.streamId;
109
+ else
110
+ agentTurnsSeen.add(req.streamId);
111
+ continue;
112
+ }
113
+ if (buildPromptId === undefined && typeof block.type === "string") {
114
+ const t = block.type;
115
+ if (t.startsWith("block.code."))
116
+ buildPromptId ??= block.streamId;
117
+ }
118
+ if (isPromptRaw(block)) {
119
+ const rawMsg = block;
120
+ if (rawMsg.streamId !== buildPromptId)
121
+ agentProse.push(rawMsg.text);
122
+ continue;
123
+ }
124
+ if (isPromptError(block)) {
125
+ promptErrors.push(block.error);
126
+ continue;
127
+ }
128
+ if (isPromptBlockEnd(block)) {
129
+ const streamId = block.streamId;
130
+ if (streamId !== undefined && streamId !== buildPromptId)
131
+ agentTurnsEnded.add(streamId);
132
+ continue;
133
+ }
134
+ }
135
+ if (buildPromptId !== undefined && resolving === undefined) {
136
+ await startResolving(buildPromptId);
137
+ }
138
+ if (writer !== undefined)
139
+ await writer.write(ev);
140
+ else
141
+ buffered.push(ev);
142
+ if (resolving !== undefined)
143
+ continue;
144
+ if (agentTurnsSeen.size > 0 && agentTurnsEnded.size >= agentTurnsSeen.size) {
145
+ await reader.cancel().catch(() => undefined);
146
+ return finish();
147
+ }
148
+ }
149
+ }
150
+ //# sourceMappingURL=follow-chat-build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-chat-build.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/follow-chat-build.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,150 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { followChatBuild } from "./follow-chat-build.js";
3
+ const AGENT = "prompt-agent";
4
+ const BUILD = "prompt-build";
5
+ function block(streamId, seq, rest) {
6
+ return { blockId: `b-${streamId}`, chatId: "chat-1", streamId, seq, blockNr: 1, timestamp: new Date(), ...rest };
7
+ }
8
+ function event(promptId, blocks) {
9
+ return {
10
+ type: "vibes.diy.section-event",
11
+ chatId: "chat-1",
12
+ promptId,
13
+ blockSeq: 0,
14
+ timestamp: new Date(),
15
+ blocks: blocks,
16
+ };
17
+ }
18
+ const claimFrame = {
19
+ type: "vibes.diy.evt-chat-app-claimed",
20
+ chatId: "chat-1",
21
+ ownerHandle: "alice",
22
+ appSlug: "todo-app",
23
+ };
24
+ function agentTurn(text) {
25
+ return event(AGENT, [
26
+ block(AGENT, 0, {
27
+ type: "prompt.req",
28
+ request: { messages: [{ role: "user", content: [{ type: "text", text: "make an app" }] }] },
29
+ }),
30
+ block(AGENT, 1, { type: "prompt.raw", text }),
31
+ ]);
32
+ }
33
+ function buildTurn(line) {
34
+ return [
35
+ event(BUILD, [
36
+ block(BUILD, 0, {
37
+ type: "prompt.req",
38
+ request: { messages: [{ role: "user", content: [{ type: "text", text: "make an app" }] }] },
39
+ agentDispatched: true,
40
+ }),
41
+ ]),
42
+ event(BUILD, [
43
+ block(BUILD, 1, { type: "block.code.begin", sectionId: "s1", lang: "jsx", path: "App.jsx" }),
44
+ block(BUILD, 2, { type: "block.code.line", sectionId: "s1", lang: "jsx", path: "App.jsx", lineNr: 1, line }),
45
+ block(BUILD, 3, {
46
+ type: "block.code.end",
47
+ sectionId: "s1",
48
+ lang: "jsx",
49
+ path: "App.jsx",
50
+ stats: { lines: 1, bytes: line.length },
51
+ }),
52
+ block(BUILD, 4, {
53
+ type: "block.end",
54
+ stats: {
55
+ toplevel: { lines: 0, bytes: 0 },
56
+ code: { lines: 1, bytes: 1 },
57
+ image: { lines: 0, bytes: 0 },
58
+ total: { lines: 1, bytes: 1 },
59
+ },
60
+ usage: { given: [], calculated: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } },
61
+ }),
62
+ block(BUILD, 5, { type: "prompt.block-end", chatId: "chat-1" }),
63
+ ]),
64
+ ];
65
+ }
66
+ function liveStream(msgs) {
67
+ let i = 0;
68
+ return new ReadableStream({
69
+ pull(controller) {
70
+ if (i < msgs.length)
71
+ controller.enqueue(msgs[i++]);
72
+ },
73
+ });
74
+ }
75
+ function chatOf(stream) {
76
+ return { chatId: "chat-1", ownerHandle: "alice", appSlug: "provisional-app", sectionStream: stream };
77
+ }
78
+ describe("followChatBuild", () => {
79
+ it("settles on the BUILD's terminal and reports the claimed address", async () => {
80
+ const chat = chatOf(liveStream([claimFrame, agentTurn("Building a todo app."), ...buildTurn("export default () => null;")]));
81
+ const r = await followChatBuild({ chat });
82
+ expect(r.isOk(), r.isErr() ? String(r.Err()) : "").toBe(true);
83
+ const ok = r.Ok();
84
+ expect(ok.appSlug).toBe("todo-app");
85
+ expect(ok.claimed).toBe(true);
86
+ expect(ok.buildPromptId).toBe(BUILD);
87
+ expect(ok.resolved.turnEndSeen).toBe(true);
88
+ expect(Object.keys(ok.resolved.files)).toContain("App.jsx");
89
+ });
90
+ it("buffers the events that arrive before the build promptId is known", async () => {
91
+ const oneEvent = event(BUILD, [
92
+ block(BUILD, 0, {
93
+ type: "prompt.req",
94
+ request: { messages: [{ role: "user", content: [{ type: "text", text: "make an app" }] }] },
95
+ agentDispatched: true,
96
+ }),
97
+ block(BUILD, 1, { type: "block.code.begin", sectionId: "s1", lang: "jsx", path: "App.jsx" }),
98
+ block(BUILD, 2, { type: "block.code.line", sectionId: "s1", lang: "jsx", path: "App.jsx", lineNr: 1, line: "const a = 1;" }),
99
+ block(BUILD, 3, {
100
+ type: "block.code.end",
101
+ sectionId: "s1",
102
+ lang: "jsx",
103
+ path: "App.jsx",
104
+ stats: { lines: 1, bytes: 12 },
105
+ }),
106
+ block(BUILD, 4, {
107
+ type: "block.end",
108
+ stats: {
109
+ toplevel: { lines: 0, bytes: 0 },
110
+ code: { lines: 1, bytes: 1 },
111
+ image: { lines: 0, bytes: 0 },
112
+ total: { lines: 1, bytes: 1 },
113
+ },
114
+ usage: { given: [], calculated: { prompt_tokens: 0, completion_tokens: 0, total_tokens: 0 } },
115
+ }),
116
+ block(BUILD, 5, { type: "prompt.block-end", chatId: "chat-1" }),
117
+ ]);
118
+ const r = await followChatBuild({ chat: chatOf(liveStream([claimFrame, oneEvent])) });
119
+ expect(r.isOk(), r.isErr() ? String(r.Err()) : "").toBe(true);
120
+ expect(r.Ok().resolved.files["App.jsx"]).toBe("const a = 1;");
121
+ });
122
+ it("surfaces the agent's own words when it answered instead of building", async () => {
123
+ const answered = event(AGENT, [
124
+ block(AGENT, 0, {
125
+ type: "prompt.req",
126
+ request: { messages: [{ role: "user", content: [{ type: "text", text: "make an app" }] }] },
127
+ }),
128
+ block(AGENT, 1, { type: "prompt.raw", text: "I need to know which calendar you mean." }),
129
+ block(AGENT, 2, { type: "prompt.block-end", chatId: "chat-1" }),
130
+ ]);
131
+ const r = await followChatBuild({ chat: chatOf(liveStream([claimFrame, answered])) });
132
+ expect(r.isErr()).toBe(true);
133
+ expect(String(r.Err())).toContain("which calendar you mean");
134
+ });
135
+ it("reports what the stream said when the wait runs out, and never calls it a failure", async () => {
136
+ const partial = event(BUILD, [
137
+ block(BUILD, 0, {
138
+ type: "prompt.req",
139
+ request: { messages: [{ role: "user", content: [{ type: "text", text: "make an app" }] }] },
140
+ agentDispatched: true,
141
+ }),
142
+ block(BUILD, 1, { type: "block.code.begin", sectionId: "s1", lang: "jsx", path: "App.jsx" }),
143
+ ]);
144
+ const r = await followChatBuild({ chat: chatOf(liveStream([claimFrame, partial])), deadlineMs: 50 });
145
+ expect(r.isOk(), r.isErr() ? String(r.Err()) : "").toBe(true);
146
+ expect(r.Ok().buildPromptId).toBe(BUILD);
147
+ expect(r.Ok().resolved.turnEndSeen).toBe(false);
148
+ });
149
+ });
150
+ //# sourceMappingURL=follow-chat-build.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"follow-chat-build.test.js","sourceRoot":"","sources":["../../../jsr/cli/cmds/follow-chat-build.test.ts"],"names":[],"mappings":"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"}
@@ -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":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAsB,MAAM,EAAoB,MAAM,EAAmC,MAAM,iBAAiB,CAAC;AACxH,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAU,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,YAAY,EAAgB,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAOjD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGrF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,cAAc,EAAE,SAAS;IAEzB,aAAa,EAAE,SAAS;IACxB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAKhB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,SAAS;IAGrB,YAAY,EAAE,QAAQ;IAItB,QAAQ,EAAE,QAAQ;IAIlB,SAAS,EAAE,QAAQ;CACpB,CAAC,CAAC;AAGH,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,GAAsF;IAC/G,IAAI,EAAE,wBAAwB;IAC9B,QAAQ,EAAE,CAAC,GAA2F,EAAE,EAAE;QACxG,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,EACX,GAAyF,EACtD,EAAE;QACrC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAS,QAAQ,CAAC,CAAC;QAClD,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC1C,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,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAOhB,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,wCAAwC,CAAC,CAAC;YAkB1E,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;YAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;YAC/D,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC1F,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBAClB,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAC/B;gBACE,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC1D,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;aAC7E,EACD,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAClH,CAAC;YACF,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAC,GAAG,CAAC,mBAAmB,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACnF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,MAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YACtE,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU;gBACzB,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC;gBAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;YACjC,OAAO,OAAO,CAAC,GAAG,EAAE;gBAClB,IAAI,EAAE,4BAA4B;gBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,GAAG,EAAE,EAAE;gBACP,SAAS,EAAE,EAAE;gBAGb,MAAM,EAAE,IAAI;aACS,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,GAAG,EACH;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzE,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;SAC7D,EACD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CACtD,CAAC;QACF,IAAI,SAAS,CAAC,KAAK,EAAE;YAAE,OAAO,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;QAE1D,OAAO,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,GAAW;IACrC,OAAO,OAAO,CAAC;QACb,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,yEAAyE;QACtF,IAAI,EAAE;YACJ,GAAG,gBAAgB,CAAC,GAAG,CAAC;YACxB,MAAM,EAAE,UAAU,CAAC;gBACjB,WAAW,EAAE,QAAQ;gBACrB,WAAW,EAAE,qCAAqC;gBAClD,IAAI,EAAE,MAAM;aACb,CAAC;YACF,OAAO,EAAE,MAAM,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,4CAA4C;gBACzD,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,2FAA2F;gBACxG,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,CAAC;YACF,QAAQ,EAAE,MAAM,CAAC;gBACf,IAAI,EAAE,WAAW;gBAEjB,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE;gBACtB,0BAA0B,EAAE,IAAI;aACjC,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,WAAW,EAAE,IAAI,CAAC;gBAChB,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,2EAA2E;aACzF,CAAC;YACF,UAAU,EAAE,IAAI,CAAC;gBACf,IAAI,EAAE,cAAc;gBACpB,WAAW,EACT,kPAAkP;aACrP,CAAC;YACF,OAAO,EAAE,IAAI,CAAC;gBACZ,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,GAAG;gBACV,WAAW,EAAE,4CAA4C;aAC1D,CAAC;YACF,MAAM,EAAE,IAAI,CAAC;gBACX,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,qKAAqK;aACxK,CAAC;YACF,UAAU,EAAE,IAAI,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,WAAW,EAAE,mFAAmF;aACjG,CAAC;YACF,KAAK,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,4EAA4E;gBACzF,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;aACvB,CAAC;YACF,KAAK,EAAE,MAAM,CAAC;gBACZ,IAAI,EAAE,OAAO;gBACb,WAAW,EAAE,iGAAiG;gBAC9G,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC;aACvB,CAAC;YACF,MAAM,EAAE,MAAM,CAAC;gBACb,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,2IAA2I;gBAC7I,IAAI,EAAE,MAAM;gBACZ,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,EAAE;aAKjE,CAAC;SACH;QACD,OAAO,EAAE,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE;YAC3F,IAAI,QAAQ;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YAC/G,MAAM,QAAQ,GAAG,eAAe,CAAC;gBAC/B,IAAI;gBACJ,MAAM,EAAE,MAAM,IAAI,QAAQ;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,iBAAiB,EAAE,EAAE;aACtB,CAAC,CAAC;YAKH,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,wBAAiC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;YAC3H,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAC7E,MAAM,SAAS,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC;YAC5E,OAAO,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9D,CAAC,CAAC;KACH,CAAC,CAAC;AACL,CAAC"}
@@ -399,6 +399,8 @@ describe("generateEvento stream-cut recovery (#3270)", () => {
399
399
  chatId: "chat-live",
400
400
  appSlug: "todo-app",
401
401
  ownerHandle: "alice",
402
+ firstTurnFired: true,
403
+ agentFirstTurn: true,
402
404
  sectionStream: s ?? stream([]),
403
405
  prompt: async () => Result.Ok({ promptId }),
404
406
  close: async () => undefined,
@@ -406,6 +408,7 @@ describe("generateEvento stream-cut recovery (#3270)", () => {
406
408
  },
407
409
  ensureAppSlug,
408
410
  ensureAppSettings: vi.fn().mockResolvedValue(Result.Ok({ settings: { entry: {} } })),
411
+ rollCodegenShard: () => false,
409
412
  };
410
413
  return { api, ensureAppSlug, openCountRef: () => openCount };
411
414
  }
@@ -564,6 +567,8 @@ describe("generateEvento runId threading", () => {
564
567
  chatId: "chat-live",
565
568
  appSlug: "todo-app",
566
569
  ownerHandle: "alice",
570
+ firstTurnFired: true,
571
+ agentFirstTurn: true,
567
572
  sectionStream: stream,
568
573
  prompt: async () => Result.Ok({ promptId }),
569
574
  close: async () => undefined,
@@ -572,6 +577,7 @@ describe("generateEvento runId threading", () => {
572
577
  openChat: async () => Result.Ok(chat),
573
578
  ensureAppSlug,
574
579
  ensureAppSettings,
580
+ rollCodegenShard: () => false,
575
581
  };
576
582
  const tempRoot = await mkdtemp(join("/tmp", "generate-runid-"));
577
583
  tempDirs.push(tempRoot);