@vibes.diy/api-impl 14.1.48 → 14.1.51
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/chat-session.d.ts +143 -0
- package/chat-session.js +314 -0
- package/chat-session.js.map +1 -0
- package/chat-session.test.d.ts +1 -0
- package/chat-session.test.js +421 -0
- package/chat-session.test.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/llm-chat.d.ts +2 -0
- package/llm-chat.js +4 -0
- package/llm-chat.js.map +1 -1
- package/package.json +6 -6
- package/shard-roll.d.ts +14 -0
- package/shard-roll.js +35 -0
- package/shard-roll.js.map +1 -1
- package/shard-roll.test.js +80 -1
- package/shard-roll.test.js.map +1 -1
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import type { Result } from "@adviser/cement";
|
|
2
|
+
import { AgentEvidence, type VibesDiyError } from "@vibes.diy/api-types";
|
|
3
|
+
import { type ServerFiredChat, type ShardRollApi, type ShardRollOpenReq, type ShardRoller } from "./shard-roll.js";
|
|
4
|
+
export interface ChatWireBlockEvent {
|
|
5
|
+
readonly kind: "block";
|
|
6
|
+
readonly promptId: string;
|
|
7
|
+
readonly seq: number;
|
|
8
|
+
readonly emittedAt?: number;
|
|
9
|
+
readonly type: string;
|
|
10
|
+
readonly agentDispatched?: boolean;
|
|
11
|
+
readonly reqMessageCount?: number;
|
|
12
|
+
readonly model?: string;
|
|
13
|
+
readonly text?: string;
|
|
14
|
+
readonly restyle?: boolean;
|
|
15
|
+
readonly fsId?: string;
|
|
16
|
+
readonly touchedPaths?: readonly string[];
|
|
17
|
+
readonly settled?: unknown;
|
|
18
|
+
readonly error?: string;
|
|
19
|
+
readonly evidence?: AgentEvidence;
|
|
20
|
+
readonly block?: Record<string, unknown>;
|
|
21
|
+
}
|
|
22
|
+
export type ChatWireEvent = ChatWireBlockEvent | {
|
|
23
|
+
readonly kind: "app-claimed";
|
|
24
|
+
readonly appSlug: string;
|
|
25
|
+
readonly ownerHandle?: string;
|
|
26
|
+
readonly chatId?: string;
|
|
27
|
+
readonly colorway?: string;
|
|
28
|
+
readonly colorPinned?: true;
|
|
29
|
+
} | {
|
|
30
|
+
readonly kind: "res-error";
|
|
31
|
+
readonly message: string;
|
|
32
|
+
};
|
|
33
|
+
export declare function wireEventKey(ev: ChatWireBlockEvent): string;
|
|
34
|
+
export declare function isRestyleBlock(block: Record<string, unknown>): boolean;
|
|
35
|
+
export interface DecodeChatWireOptions {
|
|
36
|
+
keepBlock?: boolean;
|
|
37
|
+
renderError?(value: unknown): string;
|
|
38
|
+
}
|
|
39
|
+
export declare function decodeChatWireMessage(value: unknown, opts?: DecodeChatWireOptions): readonly ChatWireEvent[];
|
|
40
|
+
export declare function releaseIsLive(items: readonly {
|
|
41
|
+
fsId: string;
|
|
42
|
+
mode: string;
|
|
43
|
+
published: boolean;
|
|
44
|
+
}[], fsId: string): boolean;
|
|
45
|
+
export declare function makeStreamGenerations(): {
|
|
46
|
+
current(): number;
|
|
47
|
+
bump(): void;
|
|
48
|
+
whenSuperseded(generation: number): Promise<void>;
|
|
49
|
+
};
|
|
50
|
+
export declare function reopenStillOwed(o: {
|
|
51
|
+
readonly current: number;
|
|
52
|
+
readonly generationAtRoll: number;
|
|
53
|
+
}): boolean;
|
|
54
|
+
export declare function untilSuperseded<T>(o: {
|
|
55
|
+
readonly stream: ReadableStream<T>;
|
|
56
|
+
readonly superseded: Promise<void>;
|
|
57
|
+
readonly onReadError?: (e: unknown) => unknown;
|
|
58
|
+
}): AsyncGenerator<T>;
|
|
59
|
+
export declare function promptWithShardRoll<T>(o: {
|
|
60
|
+
readonly send: () => Promise<Result<T, VibesDiyError>>;
|
|
61
|
+
readonly roller: ShardRoller;
|
|
62
|
+
readonly reopen: () => Promise<void>;
|
|
63
|
+
readonly now?: () => number;
|
|
64
|
+
readonly log?: (line: string) => void;
|
|
65
|
+
readonly renderError?: (e: unknown) => string;
|
|
66
|
+
}): Promise<{
|
|
67
|
+
readonly value: T;
|
|
68
|
+
readonly rolledMs: number;
|
|
69
|
+
}>;
|
|
70
|
+
export declare class OpenChatSessionError extends Error {
|
|
71
|
+
readonly stage: "open" | "send" | "fenced" | "overloaded";
|
|
72
|
+
constructor(message: string, stage: "open" | "send" | "fenced" | "overloaded");
|
|
73
|
+
}
|
|
74
|
+
export interface ChatSessionChat extends ServerFiredChat {
|
|
75
|
+
readonly sectionStream: ReadableStream<unknown>;
|
|
76
|
+
readonly agentSession?: boolean;
|
|
77
|
+
readonly varietyPin?: {
|
|
78
|
+
readonly archetype: string;
|
|
79
|
+
readonly flourishes: readonly string[];
|
|
80
|
+
};
|
|
81
|
+
readonly stylePin?: string;
|
|
82
|
+
prompt(req: {
|
|
83
|
+
messages: {
|
|
84
|
+
role: "user";
|
|
85
|
+
content: {
|
|
86
|
+
type: "text";
|
|
87
|
+
text: string;
|
|
88
|
+
}[];
|
|
89
|
+
}[];
|
|
90
|
+
model?: string;
|
|
91
|
+
}, opts?: ChatTurnOptions): Promise<Result<{
|
|
92
|
+
readonly promptId: string;
|
|
93
|
+
}, VibesDiyError>>;
|
|
94
|
+
}
|
|
95
|
+
export interface ChatTurnOptions {
|
|
96
|
+
readonly nonInteractive?: boolean;
|
|
97
|
+
readonly apiKey?: string;
|
|
98
|
+
readonly focusPath?: string;
|
|
99
|
+
readonly model?: string;
|
|
100
|
+
}
|
|
101
|
+
export interface ChatSession {
|
|
102
|
+
readonly chatId: string;
|
|
103
|
+
readonly appSlug: string;
|
|
104
|
+
readonly ownerHandle: string;
|
|
105
|
+
readonly agentFirstTurn: boolean;
|
|
106
|
+
readonly firstTurnFired: boolean;
|
|
107
|
+
readonly agentSession?: boolean;
|
|
108
|
+
readonly varietyPinApplied?: {
|
|
109
|
+
readonly archetype: string;
|
|
110
|
+
readonly flourishes: readonly string[];
|
|
111
|
+
};
|
|
112
|
+
readonly stylePinApplied?: string;
|
|
113
|
+
readonly events: AsyncIterable<ChatWireEvent>;
|
|
114
|
+
reopen(): Promise<void>;
|
|
115
|
+
prompt(text: string, opts?: ChatTurnOptions): Promise<string>;
|
|
116
|
+
rolledMs?(): number;
|
|
117
|
+
streamGeneration?(): number;
|
|
118
|
+
close(): Promise<void>;
|
|
119
|
+
}
|
|
120
|
+
export type ChatSessionApi<C extends ChatSessionChat> = ShardRollApi<C>;
|
|
121
|
+
export declare function openChatSession<C extends ChatSessionChat>(o: {
|
|
122
|
+
readonly api: ChatSessionApi<C>;
|
|
123
|
+
readonly openReq: ShardRollOpenReq;
|
|
124
|
+
readonly log?: (line: string) => void;
|
|
125
|
+
readonly onReadError?: (e: unknown) => unknown;
|
|
126
|
+
readonly renderError?: (e: unknown) => string;
|
|
127
|
+
readonly now?: () => number;
|
|
128
|
+
readonly decode?: DecodeChatWireOptions;
|
|
129
|
+
shouldProceed?(): boolean;
|
|
130
|
+
}): Promise<ChatSession>;
|
|
131
|
+
export interface DrainableChatSession {
|
|
132
|
+
readonly events: AsyncIterable<ChatWireEvent>;
|
|
133
|
+
reopen(): Promise<void>;
|
|
134
|
+
streamGeneration?(): number;
|
|
135
|
+
}
|
|
136
|
+
export declare function drainChatSession(session: DrainableChatSession, o: {
|
|
137
|
+
onEvent(event: ChatWireEvent, at: number): void;
|
|
138
|
+
onObserved?(event: ChatWireEvent, at: number): void;
|
|
139
|
+
onReopen?(reopens: number, at: number): void;
|
|
140
|
+
shouldStop?(): boolean;
|
|
141
|
+
now?(): number;
|
|
142
|
+
log?(line: string): void;
|
|
143
|
+
}): Promise<void>;
|
package/chat-session.js
ADDED
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { AgentEvidence, getResErrorMessage, isEvtChatAppClaimed, isPromptRestyle, isResError, isSectionEvent, } from "@vibes.diy/api-types";
|
|
2
|
+
import { openChatServerFiredCounted, withShardRoll, } from "./shard-roll.js";
|
|
3
|
+
export function wireEventKey(ev) {
|
|
4
|
+
return `${ev.promptId}|${ev.seq}|${ev.type}`;
|
|
5
|
+
}
|
|
6
|
+
function looksLikeSectionEvent(value) {
|
|
7
|
+
if (value === null || typeof value !== "object")
|
|
8
|
+
return false;
|
|
9
|
+
const v = value;
|
|
10
|
+
return typeof v["promptId"] === "string" && Array.isArray(v["blocks"]);
|
|
11
|
+
}
|
|
12
|
+
export function isRestyleBlock(block) {
|
|
13
|
+
return isPromptRestyle(block) || block["type"] === "prompt.restyle";
|
|
14
|
+
}
|
|
15
|
+
export function decodeChatWireMessage(value, opts = {}) {
|
|
16
|
+
if (isResError(value))
|
|
17
|
+
return [{ kind: "res-error", message: opts.renderError?.(value) ?? getResErrorMessage(value) }];
|
|
18
|
+
if (isEvtChatAppClaimed(value)) {
|
|
19
|
+
const claim = value;
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
kind: "app-claimed",
|
|
23
|
+
appSlug: claim.appSlug,
|
|
24
|
+
...(typeof claim.ownerHandle === "string" ? { ownerHandle: claim.ownerHandle } : {}),
|
|
25
|
+
...(typeof claim.chatId === "string" ? { chatId: claim.chatId } : {}),
|
|
26
|
+
...(typeof claim.colorway === "string" ? { colorway: claim.colorway } : {}),
|
|
27
|
+
...(claim.colorPinned === true ? { colorPinned: true } : {}),
|
|
28
|
+
},
|
|
29
|
+
];
|
|
30
|
+
}
|
|
31
|
+
if (isSectionEvent(value) === false && looksLikeSectionEvent(value) === false)
|
|
32
|
+
return [];
|
|
33
|
+
const ev = value;
|
|
34
|
+
const out = [];
|
|
35
|
+
for (const b of ev.blocks) {
|
|
36
|
+
const type = String(b["type"]);
|
|
37
|
+
const seq = Number(b["seq"] ?? 0);
|
|
38
|
+
const timestamp = b["timestamp"];
|
|
39
|
+
const emittedAt = timestamp instanceof Date ? timestamp.getTime() : typeof timestamp === "string" ? Date.parse(timestamp) : NaN;
|
|
40
|
+
const base = {
|
|
41
|
+
kind: "block",
|
|
42
|
+
promptId: ev.promptId,
|
|
43
|
+
seq,
|
|
44
|
+
type,
|
|
45
|
+
...(Number.isFinite(emittedAt) ? { emittedAt } : {}),
|
|
46
|
+
...(opts.keepBlock === true ? { block: b } : {}),
|
|
47
|
+
};
|
|
48
|
+
switch (type) {
|
|
49
|
+
case "prompt.agent-evidence":
|
|
50
|
+
if (AgentEvidence.allows(b["evidence"]))
|
|
51
|
+
out.push({ ...base, evidence: b["evidence"] });
|
|
52
|
+
break;
|
|
53
|
+
case "prompt.req": {
|
|
54
|
+
const req = b["request"];
|
|
55
|
+
out.push({
|
|
56
|
+
...base,
|
|
57
|
+
agentDispatched: b["agentDispatched"] === true,
|
|
58
|
+
reqMessageCount: req?.messages?.length ?? 0,
|
|
59
|
+
...(typeof req?.model === "string" ? { model: req.model } : {}),
|
|
60
|
+
});
|
|
61
|
+
break;
|
|
62
|
+
}
|
|
63
|
+
case "prompt.model-resolved":
|
|
64
|
+
out.push({ ...base, ...(typeof b["model"] === "string" ? { model: b["model"] } : {}) });
|
|
65
|
+
break;
|
|
66
|
+
case "prompt.raw":
|
|
67
|
+
out.push({ ...base, text: typeof b["text"] === "string" ? b["text"] : "" });
|
|
68
|
+
break;
|
|
69
|
+
case "block.toplevel.line":
|
|
70
|
+
out.push({ ...base, text: typeof b["line"] === "string" ? b["line"] + "\n" : "" });
|
|
71
|
+
break;
|
|
72
|
+
case "block.end": {
|
|
73
|
+
const fsRef = b["fsRef"];
|
|
74
|
+
out.push({
|
|
75
|
+
...base,
|
|
76
|
+
...(typeof fsRef?.fsId === "string" ? { fsId: fsRef.fsId } : {}),
|
|
77
|
+
...(Array.isArray(b["touchedPaths"]) ? { touchedPaths: b["touchedPaths"] } : {}),
|
|
78
|
+
...(b["settled"] === undefined ? {} : { settled: b["settled"] }),
|
|
79
|
+
});
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
case "prompt.restyle":
|
|
83
|
+
out.push({ ...base, restyle: isRestyleBlock(b) });
|
|
84
|
+
break;
|
|
85
|
+
case "prompt.error":
|
|
86
|
+
out.push({ ...base, error: String(b["error"]) });
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
out.push(base);
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
return out;
|
|
94
|
+
}
|
|
95
|
+
export function releaseIsLive(items, fsId) {
|
|
96
|
+
return items.some((i) => i.fsId === fsId && i.mode === "production" && i.published === true);
|
|
97
|
+
}
|
|
98
|
+
const SUPERSEDED = Symbol("superseded-stream");
|
|
99
|
+
export function makeStreamGenerations() {
|
|
100
|
+
let generation = 0;
|
|
101
|
+
let waiters = [];
|
|
102
|
+
return {
|
|
103
|
+
current: () => generation,
|
|
104
|
+
bump() {
|
|
105
|
+
generation += 1;
|
|
106
|
+
const woken = waiters;
|
|
107
|
+
waiters = [];
|
|
108
|
+
for (const wake of woken)
|
|
109
|
+
wake();
|
|
110
|
+
},
|
|
111
|
+
whenSuperseded: (at) => new Promise((resolve) => {
|
|
112
|
+
if (generation !== at) {
|
|
113
|
+
resolve();
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
waiters.push(resolve);
|
|
117
|
+
}),
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function reopenStillOwed(o) {
|
|
121
|
+
return o.current === o.generationAtRoll;
|
|
122
|
+
}
|
|
123
|
+
export async function* untilSuperseded(o) {
|
|
124
|
+
const reader = o.stream.getReader();
|
|
125
|
+
const stale = o.superseded.then(() => SUPERSEDED);
|
|
126
|
+
try {
|
|
127
|
+
for (;;) {
|
|
128
|
+
const next = await Promise.race([
|
|
129
|
+
reader.read().catch((e) => {
|
|
130
|
+
throw o.onReadError === undefined ? e : o.onReadError(e);
|
|
131
|
+
}),
|
|
132
|
+
stale,
|
|
133
|
+
]);
|
|
134
|
+
if (next === SUPERSEDED)
|
|
135
|
+
return;
|
|
136
|
+
const { value, done } = next;
|
|
137
|
+
if (done === true)
|
|
138
|
+
return;
|
|
139
|
+
yield value;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
finally {
|
|
143
|
+
reader.releaseLock();
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
export async function promptWithShardRoll(o) {
|
|
147
|
+
const r = await withShardRoll({
|
|
148
|
+
attempt: o.send,
|
|
149
|
+
roller: o.roller,
|
|
150
|
+
onRolled: o.reopen,
|
|
151
|
+
...(o.now === undefined ? {} : { now: o.now }),
|
|
152
|
+
...(o.log === undefined ? {} : { log: o.log }),
|
|
153
|
+
});
|
|
154
|
+
if (r.isErr())
|
|
155
|
+
throw new Error(`prompt: ${renderError(r.Err(), o.renderError)}`);
|
|
156
|
+
return { value: r.Ok().value, rolledMs: r.Ok().rolledMs };
|
|
157
|
+
}
|
|
158
|
+
function renderError(e, render) {
|
|
159
|
+
if (render !== undefined)
|
|
160
|
+
return render(e);
|
|
161
|
+
if (isResError(e))
|
|
162
|
+
return getResErrorMessage(e);
|
|
163
|
+
return e instanceof Error ? e.message : String(e);
|
|
164
|
+
}
|
|
165
|
+
export class OpenChatSessionError extends Error {
|
|
166
|
+
stage;
|
|
167
|
+
constructor(message, stage) {
|
|
168
|
+
super(message);
|
|
169
|
+
this.name = "OpenChatSessionError";
|
|
170
|
+
this.stage = stage;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
export async function openChatSession(o) {
|
|
174
|
+
const log = o.log ?? (() => undefined);
|
|
175
|
+
const varietyPin = o.openReq.varietyPin;
|
|
176
|
+
const stylePin = o.openReq.stylePin;
|
|
177
|
+
const rOpen = await openChatServerFiredCounted({
|
|
178
|
+
api: o.api,
|
|
179
|
+
openReq: o.openReq,
|
|
180
|
+
...(o.now === undefined ? {} : { now: o.now }),
|
|
181
|
+
...(o.shouldProceed === undefined ? {} : { shouldProceed: o.shouldProceed }),
|
|
182
|
+
});
|
|
183
|
+
if (rOpen.isErr()) {
|
|
184
|
+
const { stage, error } = rOpen.Err();
|
|
185
|
+
if (stage === "overloaded")
|
|
186
|
+
throw new OpenChatSessionError("openChat: every codegen shard for this account is at capacity — the server fired no first turn", stage);
|
|
187
|
+
throw new OpenChatSessionError(`openChat: ${stage} — ${renderError(error, o.renderError)}`, stage);
|
|
188
|
+
}
|
|
189
|
+
const opened = rOpen.Ok();
|
|
190
|
+
let chat = opened.chat;
|
|
191
|
+
const chatId = chat.chatId;
|
|
192
|
+
if (opened.rolls > 0)
|
|
193
|
+
log(` first-turn admission denied — rolled ${opened.rolls} shard(s) before the server fired it`);
|
|
194
|
+
let rolledMs = opened.rolledMs;
|
|
195
|
+
const generations = makeStreamGenerations();
|
|
196
|
+
let reopenInFlight;
|
|
197
|
+
const reopenChat = async () => {
|
|
198
|
+
if (reopenInFlight !== undefined)
|
|
199
|
+
return reopenInFlight;
|
|
200
|
+
const run = (async () => {
|
|
201
|
+
const rRe = await o.api.openChat({
|
|
202
|
+
chatId,
|
|
203
|
+
mode: o.openReq.mode,
|
|
204
|
+
...(varietyPin === undefined
|
|
205
|
+
? {}
|
|
206
|
+
: { varietyPin: { archetype: varietyPin.archetype, flourishes: [...varietyPin.flourishes] } }),
|
|
207
|
+
...(stylePin === undefined ? {} : { stylePin }),
|
|
208
|
+
});
|
|
209
|
+
if (rRe.isErr())
|
|
210
|
+
throw new Error(`reopenChat: ${renderError(rRe.Err(), o.renderError)}`);
|
|
211
|
+
chat = rRe.Ok();
|
|
212
|
+
generations.bump();
|
|
213
|
+
})().finally(() => {
|
|
214
|
+
reopenInFlight = undefined;
|
|
215
|
+
});
|
|
216
|
+
reopenInFlight = run;
|
|
217
|
+
return run;
|
|
218
|
+
};
|
|
219
|
+
const reopenChatUnlessDoneSince = async (generation) => {
|
|
220
|
+
if (reopenStillOwed({ current: generations.current(), generationAtRoll: generation }) === false)
|
|
221
|
+
return;
|
|
222
|
+
return reopenChat();
|
|
223
|
+
};
|
|
224
|
+
return {
|
|
225
|
+
chatId,
|
|
226
|
+
appSlug: chat.appSlug,
|
|
227
|
+
ownerHandle: chat.ownerHandle,
|
|
228
|
+
agentFirstTurn: opened.agentFirstTurn,
|
|
229
|
+
firstTurnFired: opened.fired,
|
|
230
|
+
agentSession: chat.agentSession === true,
|
|
231
|
+
...(chat.varietyPin === undefined ? {} : { varietyPinApplied: chat.varietyPin }),
|
|
232
|
+
...(chat.stylePin === undefined ? {} : { stylePinApplied: chat.stylePin }),
|
|
233
|
+
events: {
|
|
234
|
+
async *[Symbol.asyncIterator]() {
|
|
235
|
+
const mine = chat;
|
|
236
|
+
const values = untilSuperseded({
|
|
237
|
+
stream: mine.sectionStream,
|
|
238
|
+
superseded: generations.whenSuperseded(generations.current()),
|
|
239
|
+
...(o.onReadError === undefined ? {} : { onReadError: o.onReadError }),
|
|
240
|
+
});
|
|
241
|
+
try {
|
|
242
|
+
for await (const value of values)
|
|
243
|
+
for (const e of decodeChatWireMessage(value, o.decode ?? {}))
|
|
244
|
+
yield e;
|
|
245
|
+
}
|
|
246
|
+
finally {
|
|
247
|
+
if (mine !== chat)
|
|
248
|
+
await mine.close().catch(() => undefined);
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
streamGeneration: () => generations.current(),
|
|
253
|
+
async reopen() {
|
|
254
|
+
await reopenChat();
|
|
255
|
+
},
|
|
256
|
+
rolledMs: () => rolledMs,
|
|
257
|
+
async prompt(text, turnOpts) {
|
|
258
|
+
let generationAtRoll = generations.current();
|
|
259
|
+
const roller = {
|
|
260
|
+
rollCodegenShard: () => {
|
|
261
|
+
generationAtRoll = generations.current();
|
|
262
|
+
return o.api.rollCodegenShard();
|
|
263
|
+
},
|
|
264
|
+
currentCodegenShard: () => o.api.currentCodegenShard?.(),
|
|
265
|
+
};
|
|
266
|
+
const sent = await promptWithShardRoll({
|
|
267
|
+
send: () => chat.prompt({
|
|
268
|
+
...(turnOpts?.model === undefined ? {} : { model: turnOpts.model }),
|
|
269
|
+
messages: [{ role: "user", content: [{ type: "text", text }] }],
|
|
270
|
+
}, ...(turnOpts === undefined ? [] : [turnOpts])),
|
|
271
|
+
roller,
|
|
272
|
+
reopen: () => reopenChatUnlessDoneSince(generationAtRoll),
|
|
273
|
+
log,
|
|
274
|
+
...(o.renderError === undefined ? {} : { renderError: o.renderError }),
|
|
275
|
+
});
|
|
276
|
+
rolledMs += sent.rolledMs;
|
|
277
|
+
return sent.value.promptId;
|
|
278
|
+
},
|
|
279
|
+
async close() {
|
|
280
|
+
await chat.close().catch(() => undefined);
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
export async function drainChatSession(session, o) {
|
|
285
|
+
const now = o.now ?? (() => Date.now());
|
|
286
|
+
const log = o.log ?? (() => undefined);
|
|
287
|
+
const seen = new Set();
|
|
288
|
+
let reopens = 0;
|
|
289
|
+
for (;;) {
|
|
290
|
+
const generationAtStart = session.streamGeneration?.() ?? 0;
|
|
291
|
+
for await (const event of session.events) {
|
|
292
|
+
const at = now();
|
|
293
|
+
o.onObserved?.(event, at);
|
|
294
|
+
if (event.kind === "block") {
|
|
295
|
+
const key = wireEventKey(event);
|
|
296
|
+
if (seen.has(key) === true)
|
|
297
|
+
continue;
|
|
298
|
+
seen.add(key);
|
|
299
|
+
}
|
|
300
|
+
o.onEvent(event, at);
|
|
301
|
+
}
|
|
302
|
+
if (o.shouldStop?.() === true)
|
|
303
|
+
return;
|
|
304
|
+
if ((session.streamGeneration?.() ?? 0) !== generationAtStart) {
|
|
305
|
+
log(` stream rolled mid-run — following the rolled shard`);
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
reopens += 1;
|
|
309
|
+
o.onReopen?.(reopens, now());
|
|
310
|
+
log(` stream ended mid-run — reopening (#${reopens})`);
|
|
311
|
+
await session.reopen();
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=chat-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-session.js","sourceRoot":"","sources":["../jsr/chat-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|