@burdenoff/fe-libs 2026.925.2 → 2026.925.4

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.
@@ -23,6 +23,18 @@ import { AssistantMode, AssistantPromptPart, AssistantRawMessage, AssistantSandb
23
23
  */
24
24
  export declare function forwardsUserTokensToSandbox(mode: AssistantMode | null | undefined): boolean;
25
25
  export declare function findExistingSandbox(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext, excludedSandboxIds?: ReadonlySet<string>): Promise<string | null>;
26
+ /**
27
+ * `findExistingSandbox`, and the status the server reported for the one it
28
+ * chose. Reuse accepts a sandbox still PROVISIONING or PENDING — joining a boot
29
+ * someone else started (a reload mid-cold-start, a second tab) — and a latency
30
+ * report must not call waiting out that boot a probe (BOFF-7801).
31
+ */
32
+ export declare function findExistingSandboxWithStatus(workspaceId: string, product: string, mode: AssistantMode, isProd: boolean, authContext: AssistantSandboxAuthContext, excludedSandboxIds?: ReadonlySet<string>): Promise<{
33
+ id: string;
34
+ status: string;
35
+ } | null>;
36
+ /** The status the server listed for `id`; "UNKNOWN" if it is not listed. */
37
+ export declare function sandboxStatusOf(sandboxes: readonly ExistingAssistantSandbox[], id: string): string;
26
38
  export interface ExistingAssistantSandbox {
27
39
  id: string;
28
40
  name: string;
@@ -60,7 +72,13 @@ export declare function createAssistantSandbox(product: string, mode: AssistantM
60
72
  * the same terminal-error strings either way.
61
73
  */
62
74
  export declare function waitForSandboxRunning(sandboxId: string, workspaceId: string, authContext: AssistantSandboxAuthContext, maxWaitMs?: number): Promise<void>;
63
- export declare function waitForAssistantServiceReady(sandboxId: string, workspaceId: string, mode: AssistantMode, authContext: AssistantSandboxAuthContext, maxWaitMs?: number): Promise<void>;
75
+ export declare function waitForAssistantServiceReady(sandboxId: string, workspaceId: string, mode: AssistantMode, authContext: AssistantSandboxAuthContext, maxWaitMs?: number,
76
+ /**
77
+ * Called on each attempt that found the service not up yet, before the
78
+ * retry. A caller that REUSES a sandbox learns from it that it joined a boot
79
+ * in progress rather than a service already serving (BOFF-7801).
80
+ */
81
+ onNotReady?: () => void): Promise<void>;
64
82
  export declare function createAssistantSession(sandboxId: string, workspaceId: string, mode: AssistantMode, authContext: AssistantSandboxAuthContext): Promise<{
65
83
  sessionId: string;
66
84
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/api.ts"],"names":[],"mappings":"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"}
@@ -36,22 +36,32 @@ async function C(e, n, r, i, a, o, s) {
36
36
  }
37
37
  return c.body;
38
38
  }
39
- async function w(n, r, i, o, s, c = /* @__PURE__ */ new Set()) {
40
- return T((await t({
39
+ async function w(e, t, n, r, i, a = /* @__PURE__ */ new Set()) {
40
+ return (await T(e, t, n, r, i, a))?.id ?? null;
41
+ }
42
+ async function T(n, r, i, o, s, c = /* @__PURE__ */ new Set()) {
43
+ let l = (await t({
41
44
  query: a,
42
45
  operationName: "GetActiveSandboxes",
43
46
  variables: { context: e(n, s) },
44
47
  workspaceId: n,
45
48
  authContext: s
46
- })).getActiveSandboxes ?? [], r, i, o, s, c);
49
+ })).getActiveSandboxes ?? [], u = D(l, r, i, o, s, c);
50
+ return u ? {
51
+ id: u,
52
+ status: E(l, u)
53
+ } : null;
54
+ }
55
+ function E(e, t) {
56
+ return e.find((e) => e.id === t)?.status ?? "UNKNOWN";
47
57
  }
48
- function T(e, t, n, r, i, a = /* @__PURE__ */ new Set()) {
49
- return e.find((e) => !a.has(e.id) && (e.status === "RUNNING" || e.status === "PROVISIONING" || e.status === "PENDING") && e.template === "AI_BUILDER" && h(e, [n]) === n && (!i.userId || e.createdBy === i.userId) && e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.assistantProduct === t && (!E(n) || e.metadata?.confirmWrites === !0))?.id ?? null;
58
+ function D(e, t, n, r, i, a = /* @__PURE__ */ new Set()) {
59
+ return e.find((e) => !a.has(e.id) && (e.status === "RUNNING" || e.status === "PROVISIONING" || e.status === "PENDING") && e.template === "AI_BUILDER" && h(e, [n]) === n && (!i.userId || e.createdBy === i.userId) && e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.metadata?.assistantProduct === t && (!O(n) || e.metadata?.confirmWrites === !0))?.id ?? null;
50
60
  }
51
- function E(e) {
61
+ function O(e) {
52
62
  return e === "api-calls";
53
63
  }
54
- function D(e, t, n, r) {
64
+ function k(e, t, n, r) {
55
65
  let i = [
56
66
  {
57
67
  name: "AI_ASSISTANT_MODE",
@@ -79,13 +89,13 @@ function D(e, t, n, r) {
79
89
  }), r.workspaceToken && i.push({
80
90
  name: "WORKSPACE_AUTH_TOKEN",
81
91
  value: r.workspaceToken
82
- })), E(t) && i.push({
92
+ })), O(t) && i.push({
83
93
  name: "AI_ASSISTANT_CONFIRM_WRITES",
84
94
  value: "1"
85
95
  }), i;
86
96
  }
87
- async function O(n, i, a, o, s, c) {
88
- let l = m(i), u = D(n, i, a, c), h = (t) => ({
97
+ async function A(n, i, a, o, s, c) {
98
+ let l = m(i), u = k(n, i, a, c), h = (t) => ({
89
99
  name: `ai-assistant-${i}-${Date.now()}`,
90
100
  description: `AI Assistant sandbox (${i} mode)`,
91
101
  template: "AI_BUILDER",
@@ -108,7 +118,7 @@ async function O(n, i, a, o, s, c) {
108
118
  assistantOrganizationId: c.organizationId ?? null,
109
119
  authStrategy: d,
110
120
  imageTag: p(i, o),
111
- confirmWrites: E(i)
121
+ confirmWrites: O(i)
112
122
  },
113
123
  context: e(a, c)
114
124
  }), g = (e) => t({
@@ -128,7 +138,7 @@ async function O(n, i, a, o, s, c) {
128
138
  if (!_?.createSandbox?.id) throw Error("createSandbox returned empty response");
129
139
  return _.createSandbox.id;
130
140
  }
131
- async function k(n, r, i) {
141
+ async function j(n, r, i) {
132
142
  return (await t({
133
143
  query: o,
134
144
  operationName: "GetSandbox",
@@ -140,10 +150,10 @@ async function k(n, r, i) {
140
150
  authContext: i
141
151
  })).getSandbox;
142
152
  }
143
- function A(e, t) {
153
+ function M(e, t) {
144
154
  if (e === "FAILED" || e === "STOPPED" || e === "EXPIRED") throw Error(t ? `Sandbox ${e.toLowerCase()}: ${t}` : `Sandbox ${e.toLowerCase()}`);
145
155
  }
146
- async function j(n, r, i, a = 3e5) {
156
+ async function N(n, r, i, a = 3e5) {
147
157
  let o = Date.now();
148
158
  if (g("waitForSandboxRunning") !== "unsupported") for (; Date.now() - o < a;) try {
149
159
  let a = await t({
@@ -160,7 +170,7 @@ async function j(n, r, i, a = 3e5) {
160
170
  v("waitForSandboxRunning");
161
171
  let o = a.waitForSandboxRunning;
162
172
  if (o?.status === "RUNNING") return;
163
- A(o?.status, o?.errorMessage);
173
+ M(o?.status, o?.errorMessage);
164
174
  } catch (e) {
165
175
  if (_(e)) {
166
176
  y("waitForSandboxRunning");
@@ -169,40 +179,41 @@ async function j(n, r, i, a = 3e5) {
169
179
  throw e;
170
180
  }
171
181
  for (; Date.now() - o < a;) {
172
- let e = await k(n, r, i);
182
+ let e = await j(n, r, i);
173
183
  if (e?.status === "RUNNING") return;
174
- A(e?.status, e?.errorMessage), await new Promise((e) => setTimeout(e, 2e3));
184
+ M(e?.status, e?.errorMessage), await new Promise((e) => setTimeout(e, 2e3));
175
185
  }
176
186
  throw Error("Sandbox startup timed out");
177
187
  }
178
- async function M(e, t, n, r, i = 9e4) {
179
- let a = Date.now();
180
- for (; Date.now() - a < i;) {
188
+ async function P(e, t, n, r, i = 9e4, a) {
189
+ let o = Date.now();
190
+ for (; Date.now() - o < i;) {
181
191
  try {
182
192
  await C(e, t, "/health", "GET", void 0, n, r);
183
193
  return;
184
194
  } catch (e) {
185
195
  let t = e instanceof Error ? e.message : String(e);
186
196
  if (!/proxy error: 502|proxy error: 503|proxy error: 404|service not available|starting/i.test(t)) throw e;
197
+ a?.();
187
198
  }
188
199
  await new Promise((e) => setTimeout(e, 2e3));
189
200
  }
190
201
  throw Error("Assistant service did not become healthy before timeout");
191
202
  }
192
- async function N(e, t, n, r) {
203
+ async function F(e, t, n, r) {
193
204
  return { sessionId: (await C(e, t, "/sessions", "POST", { mode: n }, n, r)).session.id };
194
205
  }
195
- async function P(e, t, n, r, i) {
206
+ async function I(e, t, n, r, i) {
196
207
  let a = await C(e, t, `/write-confirmations/${encodeURIComponent(n)}/approve`, "POST", {}, r, i);
197
208
  if (a?.approved !== !0) throw Error(typeof a?.error == "string" ? a.error : "The change could not be approved. It may have expired — ask the assistant to try again.");
198
209
  }
199
- function F(e, t, n, r, i, a = /* @__PURE__ */ new Set()) {
210
+ function L(e, t, n, r, i, a = /* @__PURE__ */ new Set()) {
200
211
  return i.userId ? e.filter((e) => e.metadata?.authStrategy === "sandbox-app-client-headers-v1" && e.createdBy === i.userId && !(!a.has(e.id) && e.metadata?.assistantProduct === t && h(e, [n]) === n)).map((e) => e.id) : [];
201
212
  }
202
- async function I(n, r, i, o, s, c = /* @__PURE__ */ new Set()) {
213
+ async function R(n, r, i, o, s, c = /* @__PURE__ */ new Set()) {
203
214
  let l;
204
215
  try {
205
- l = F((await t({
216
+ l = L((await t({
206
217
  query: a,
207
218
  operationName: "GetActiveSandboxes",
208
219
  variables: { context: e(n, s) },
@@ -214,13 +225,13 @@ async function I(n, r, i, o, s, c = /* @__PURE__ */ new Set()) {
214
225
  }
215
226
  return (await Promise.all(l.map(async (e) => {
216
227
  try {
217
- return await L(e, n, s), e;
228
+ return await z(e, n, s), e;
218
229
  } catch {
219
230
  return null;
220
231
  }
221
232
  }))).filter((e) => e !== null);
222
233
  }
223
- async function L(n, r, i) {
234
+ async function z(n, r, i) {
224
235
  await t({
225
236
  query: l,
226
237
  operationName: "StopAssistantSandbox",
@@ -232,7 +243,7 @@ async function L(n, r, i) {
232
243
  authContext: i
233
244
  });
234
245
  }
235
- function R(e) {
246
+ function B(e) {
236
247
  let { mode: t, prompt: n, pageContext: r, parts: i } = e, a = {
237
248
  mode: t,
238
249
  prompt: n,
@@ -240,14 +251,14 @@ function R(e) {
240
251
  };
241
252
  return i && i.length > 0 && (a.parts = i), a;
242
253
  }
243
- function z(e) {
244
- return S(e.sandboxId, e.workspaceId, `/sessions/${e.sessionId}/prompt-async`, "POST", R(e), e.mode, e.authContext);
254
+ function V(e) {
255
+ return S(e.sandboxId, e.workspaceId, `/sessions/${e.sessionId}/prompt-async`, "POST", B(e), e.mode, e.authContext);
245
256
  }
246
- function B(e) {
247
- return new TextEncoder().encode(JSON.stringify(z(e))).byteLength;
257
+ function H(e) {
258
+ return new TextEncoder().encode(JSON.stringify(V(e))).byteLength;
248
259
  }
249
- async function V(e, t, n, r, i, a, o, s) {
250
- if (B({
260
+ async function U(e, t, n, r, i, a, o, s) {
261
+ if (H({
251
262
  sandboxId: e,
252
263
  workspaceId: t,
253
264
  sessionId: n,
@@ -257,7 +268,7 @@ async function V(e, t, n, r, i, a, o, s) {
257
268
  authContext: o,
258
269
  parts: s?.parts
259
270
  }) > 262144) throw Error(b);
260
- let c = await C(e, t, `/sessions/${n}/prompt-async`, "POST", R({
271
+ let c = await C(e, t, `/sessions/${n}/prompt-async`, "POST", B({
261
272
  mode: i,
262
273
  prompt: r,
263
274
  pageContext: a,
@@ -265,13 +276,13 @@ async function V(e, t, n, r, i, a, o, s) {
265
276
  }), i, o);
266
277
  return { messageID: typeof c.messageID == "string" ? c.messageID : void 0 };
267
278
  }
268
- async function H(e, t, n, r, i, a) {
279
+ async function W(e, t, n, r, i, a) {
269
280
  let o = `/sessions/${n}/messages?limit=${a?.limit ?? 50}`;
270
281
  a?.sinceMs && g("sinceParam") !== "unsupported" && (o += `&since=${a.sinceMs}`);
271
282
  let s = await C(e, t, o, "GET", void 0, r, i);
272
283
  return typeof s.now == "number" && v("sinceParam"), s.messages ?? [];
273
284
  }
274
- async function U(e, t, n, r, i) {
285
+ async function G(e, t, n, r, i) {
275
286
  if (g("sse") === "unsupported") return null;
276
287
  try {
277
288
  let a = await C(e, t, `/sessions/${n}/stream-url`, "GET", void 0, r, i);
@@ -283,7 +294,7 @@ async function U(e, t, n, r, i) {
283
294
  return y("sse"), null;
284
295
  }
285
296
  }
286
- async function W(n, r, a, o) {
297
+ async function K(n, r, a, o) {
287
298
  await t({
288
299
  query: i,
289
300
  operationName: "ExtendSandboxTtl",
@@ -296,27 +307,27 @@ async function W(n, r, a, o) {
296
307
  authContext: o
297
308
  });
298
309
  }
299
- async function G(e, t, n, r, i) {
310
+ async function q(e, t, n, r, i) {
300
311
  await C(e, t, `/sessions/${n}/heartbeat`, "POST", void 0, r, i).catch(() => void 0);
301
312
  }
302
- async function K(e, t, n, r, i) {
313
+ async function J(e, t, n, r, i) {
303
314
  try {
304
315
  return (await C(e, t, `/sessions/${n}/abort`, "POST", void 0, r, i))?.aborted === !0;
305
316
  } catch {
306
317
  return !1;
307
318
  }
308
319
  }
309
- async function q(e, t, n, r, i) {
320
+ async function Y(e, t, n, r, i) {
310
321
  return ((await C(e, t, `/sessions/${n}/artifacts`, "GET", void 0, r, i)).artifacts ?? []).filter((e) => !e.name.startsWith("."));
311
322
  }
312
- async function J(e, t, n, r, i) {
323
+ async function X(e, t, n, r, i) {
313
324
  let a = await C(e, t, `/sessions/${n}`, "GET", void 0, r, i);
314
325
  return {
315
326
  id: a.session?.id ?? n,
316
327
  mode: a.mode ?? "unknown"
317
328
  };
318
329
  }
319
- async function Y(e, t, n, r, i, a) {
330
+ async function Z(e, t, n, r, i, a) {
320
331
  let o = (await C(e, t, `/sessions/${n}/artifacts/download?path=${encodeURIComponent(r)}`, "GET", void 0, i, a)).artifact;
321
332
  if (!o) throw Error("Artifact download returned an empty response");
322
333
  return {
@@ -325,7 +336,7 @@ async function Y(e, t, n, r, i, a) {
325
336
  contentBase64: o.contentBase64
326
337
  };
327
338
  }
328
- async function X(e, r) {
339
+ async function Q(e, r) {
329
340
  return (await t({
330
341
  query: n,
331
342
  operationName: "CheckAiCredits",
@@ -334,7 +345,7 @@ async function X(e, r) {
334
345
  authContext: r
335
346
  })).checkAiCredits;
336
347
  }
337
- async function Z(e, n, r, i, a, o) {
348
+ async function $(e, n, r, i, a, o) {
338
349
  let s = Math.max(0, Math.round(a.input ?? 0)), l = Math.max(0, Math.round(a.output ?? 0));
339
350
  s + l === 0 || !i || await t({
340
351
  query: c,
@@ -351,4 +362,4 @@ async function Z(e, n, r, i, a, o) {
351
362
  });
352
363
  }
353
364
  //#endregion
354
- export { K as abortAssistantTurn, P as approvePendingWrite, D as buildAssistantSandboxEnv, z as buildPromptGatewayRequest, R as buildPromptRequestBody, X as checkAssistantAiCredits, O as createAssistantSandbox, N as createAssistantSession, Y as downloadAssistantArtifact, W as extendAssistantSandboxTTL, w as findExistingSandbox, x as forwardsUserTokensToSandbox, q as getAssistantArtifacts, H as getAssistantMessages, J as getAssistantSession, U as getAssistantStreamAccess, E as modeRequiresConfirmWrites, B as promptGatewayRequestBytes, I as releaseSupersededAssistantSandboxes, Z as reportAssistantAiTokenUsage, T as selectExistingAssistantSandbox, F as selectSupersededAssistantSandboxes, V as sendAssistantPromptAsync, G as sendHeartbeat, L as stopReapedAssistantSandbox, M as waitForAssistantServiceReady, j as waitForSandboxRunning };
365
+ export { J as abortAssistantTurn, I as approvePendingWrite, k as buildAssistantSandboxEnv, V as buildPromptGatewayRequest, B as buildPromptRequestBody, Q as checkAssistantAiCredits, A as createAssistantSandbox, F as createAssistantSession, Z as downloadAssistantArtifact, K as extendAssistantSandboxTTL, w as findExistingSandbox, T as findExistingSandboxWithStatus, x as forwardsUserTokensToSandbox, Y as getAssistantArtifacts, W as getAssistantMessages, X as getAssistantSession, G as getAssistantStreamAccess, O as modeRequiresConfirmWrites, H as promptGatewayRequestBytes, R as releaseSupersededAssistantSandboxes, $ as reportAssistantAiTokenUsage, E as sandboxStatusOf, D as selectExistingAssistantSandbox, L as selectSupersededAssistantSandboxes, U as sendAssistantPromptAsync, q as sendHeartbeat, z as stopReapedAssistantSandbox, P as waitForAssistantServiceReady, N as waitForSandboxRunning };
@@ -153,6 +153,7 @@ export * from './quota';
153
153
  export * from './permissionError';
154
154
  export * from './autoRouting';
155
155
  export * from './turnOutcome';
156
+ export * from './turnTimeline';
156
157
  export * from './turnOutcomeCopy';
157
158
  export * from './aiCredits';
158
159
  export * from './useWorkspaceWriteAccess';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browserSpeechEngine.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/speech/browserSpeechEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,SAAS,CAAC;AAqEjB,eAAO,MAAM,mBAAmB,EAAE,YA6HjC,CAAC"}
1
+ {"version":3,"file":"browserSpeechEngine.d.ts","sourceRoot":"","sources":["../../../../src/shared/assistant/speech/browserSpeechEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,YAAY,EAKb,MAAM,SAAS,CAAC;AAqEjB,eAAO,MAAM,mBAAmB,EAAE,YAgIjC,CAAC"}
@@ -81,7 +81,7 @@ var i = 0, a = {
81
81
  return;
82
82
  }
83
83
  r.onstart = () => {
84
- u === i && s.onChunkStart?.(t);
84
+ u === i && (t === 0 && s.onStart?.(), s.onChunkStart?.(t));
85
85
  }, r.onerror = (e) => {
86
86
  if (u === i) {
87
87
  i += 1;
@@ -18,6 +18,22 @@ export interface AssistantTurnProgress {
18
18
  * note. A boolean cannot be mistaken for output (BOFF-7277).
19
19
  */
20
20
  hasRenderableOutput: boolean;
21
+ /**
22
+ * Whether the answer's own TEXT has started — not a tool line, not media,
23
+ * and not narration ahead of a tool call ("Let me look that up."): in the
24
+ * newest message the last non-empty text part must come AFTER the last
25
+ * tool part. In a mode whose narration IS the answer (`accumulateNarration`)
26
+ * any narration counts. The "first useful response" of a latency report
27
+ * (BOFF-7801) — and only a CANDIDATE mid-step: a poll can land before the
28
+ * step's tool part exists (see `trackFirstText`).
29
+ */
30
+ hasText?: boolean;
31
+ /**
32
+ * Whether ANY of this turn's messages holds a tool call. Read from every
33
+ * message, not only the newest: a fast tool's message is superseded before
34
+ * the next poll, so its progress line may never be seen.
35
+ */
36
+ usedTools?: boolean;
21
37
  done: boolean;
22
38
  tokens?: {
23
39
  input: number;
@@ -49,4 +65,43 @@ export interface AssistantTurnProgress {
49
65
  * reused (per-conversation) sessions, with no message-window gap.
50
66
  */
51
67
  export declare function buildAssistantProgress(messages: AssistantRawMessage[], priorNewestCreatedMs: number, options?: AssistantProgressOptions): AssistantTurnProgress;
68
+ /**
69
+ * ★★ The floor that separates THIS turn's reply from the session's earlier
70
+ * ones: the newest message time before the prompt is sent (BOFF-7912).
71
+ *
72
+ * A failed snapshot used to become a floor of 0. On a REUSED session that is
73
+ * a wrong answer, not a slow one: 0 drops the poll's `since` filter, every
74
+ * earlier assistant message counts as this turn's, and the PREVIOUS completed
75
+ * reply is shown — and charged — as the answer on the first poll.
76
+ *
77
+ * - A new session has said nothing yet, so 0 is exact: no retry needed.
78
+ * - A reused one that fails — or lists NOTHING, which a session that has
79
+ * answered before cannot truthfully do (a misrouted or stale read) — is
80
+ * read once more. Empty twice is believed: the session is genuinely empty
81
+ * (its first prompt never went out). Failing twice fails the turn, with the
82
+ * first error (a temporary outcome the person can retry).
83
+ */
84
+ export declare function snapshotReplyFloor(fetchPrior: () => Promise<AssistantRawMessage[]>, sessionIsNew: boolean): Promise<number>;
85
+ /** Where a turn's first answer text is, while it is still only a candidate. */
86
+ export interface FirstTextTracker {
87
+ messageId: string | null;
88
+ at: number | null;
89
+ }
90
+ export declare const NO_FIRST_TEXT: FirstTextTracker;
91
+ /**
92
+ * ★ BOFF-7801: the first answer TEXT is known for certain only when the turn
93
+ * is done. A step streams its narration BEFORE its tool part exists, so a poll
94
+ * can see "Let me look that up." as text — and a later poll shows the tool
95
+ * after it. So the first text is a candidate held against the message that
96
+ * showed it, dropped when that message turns out to call a tool, or when a
97
+ * newer message takes over; it is confirmed only if it belongs to the message
98
+ * that completes the turn. `confirmedAt` is its time once confirmed.
99
+ *
100
+ * Not for `accumulateNarration` modes, where the narration IS the answer and
101
+ * its first appearance counts at once.
102
+ */
103
+ export declare function trackFirstText(tracker: FirstTextTracker, progress: Pick<AssistantTurnProgress, "hasText" | "messageId" | "done">, now: number): {
104
+ tracker: FirstTextTracker;
105
+ confirmedAt: number | null;
106
+ };
52
107
  //# sourceMappingURL=turnProgress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turnProgress.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/turnProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,KAAK,wBAAwB,EAK9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,qBAAqB,CA4DvB"}
1
+ {"version":3,"file":"turnProgress.d.ts","sourceRoot":"","sources":["../../../src/shared/assistant/turnProgress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EACL,KAAK,wBAAwB,EAK9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEnD,uEAAuE;AACvE,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;;OAQG;IACH,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+EAA+E;IAC/E,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,oBAAoB,EAAE,MAAM,EAC5B,OAAO,CAAC,EAAE,wBAAwB,GACjC,qBAAqB,CAqFvB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,OAAO,CAAC,mBAAmB,EAAE,CAAC,EAChD,YAAY,EAAE,OAAO,GACpB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED,+EAA+E;AAC/E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,eAAO,MAAM,aAAa,EAAE,gBAAgD,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC,EACvE,GAAG,EAAE,MAAM,GACV;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAc3D"}
@@ -12,10 +12,16 @@ function a(a, o, s) {
12
12
  u,
13
13
  ...d,
14
14
  ...f
15
- ].filter(Boolean).join("\n\n"), g = l.info?.providerID, _ = l.info?.modelID;
15
+ ].filter(Boolean).join("\n\n"), g = l.info?.providerID, _ = l.info?.modelID, v = l.parts ?? [], y = -1, b = -1;
16
+ v.forEach((e, t) => {
17
+ e.type === "tool" && (b = t), e.type === "text" && typeof e.text == "string" && e.text.trim() !== "" && (y = t);
18
+ });
19
+ let x = y > b, S = c.some((e) => (e.parts ?? []).some((e) => e.type === "tool"));
16
20
  return {
17
21
  content: h,
18
22
  hasRenderableOutput: m,
23
+ hasText: s?.accumulateNarration ? !!u : !!u && x,
24
+ usedTools: S,
19
25
  done: !!l.info?.time?.completed && m,
20
26
  tokens: l.info?.tokens,
21
27
  messageId: l.info?.id,
@@ -23,5 +29,36 @@ function a(a, o, s) {
23
29
  ...p ? { pendingWrite: p } : {}
24
30
  };
25
31
  }
32
+ async function o(e, t) {
33
+ let r = (e) => e.reduce((e, t) => Math.max(e, n(t)), 0), i = null;
34
+ try {
35
+ let n = await e();
36
+ if (n.length > 0 || t) return r(n);
37
+ } catch (e) {
38
+ if (t) return 0;
39
+ i = e;
40
+ }
41
+ try {
42
+ return r(await e());
43
+ } catch (e) {
44
+ throw i ?? e;
45
+ }
46
+ }
47
+ var s = {
48
+ messageId: null,
49
+ at: null
50
+ };
51
+ function c(e, t, n) {
52
+ let r = t.messageId ?? null, i = e;
53
+ t.hasText ? (e.at === null || e.messageId !== r) && (i = {
54
+ messageId: r,
55
+ at: n
56
+ }) : i = s;
57
+ let a = t.done && i.at !== null && i.messageId === r ? i.at : null;
58
+ return {
59
+ tracker: i,
60
+ confirmedAt: a
61
+ };
62
+ }
26
63
  //#endregion
27
- export { a as buildAssistantProgress };
64
+ export { s as NO_FIRST_TEXT, a as buildAssistantProgress, o as snapshotReplyFloor, c as trackFirstText };