@genesislcap/foundation-ai 14.452.1-alpha-9f63574.0 → 14.453.0
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/dist/dts/transports/anthropic-transport.d.ts.map +1 -1
- package/dist/dts/transports/gemini-transport.d.ts.map +1 -1
- package/dist/dts/types/chat.types.d.ts +8 -0
- package/dist/dts/types/chat.types.d.ts.map +1 -1
- package/dist/dts/utils/combine-signals.d.ts +48 -0
- package/dist/dts/utils/combine-signals.d.ts.map +1 -0
- package/dist/dts/utils/index.d.ts +1 -0
- package/dist/dts/utils/index.d.ts.map +1 -1
- package/dist/esm/transports/anthropic-transport.js +15 -3
- package/dist/esm/transports/gemini-transport.js +15 -3
- package/dist/esm/utils/combine-signals.js +58 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/foundation-ai.api.json +27 -0
- package/dist/foundation-ai.d.ts +8 -0
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/anthropic-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/anthropic-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AAoD7B,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6DD;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,YAAW,WAAW,EAAE,aAAa,EAAE,sBAAsB;IAC3F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,wBAA6B;IAmBjD,SAAS,IAAI;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,gBAAgB,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQrF,iGAAiG;IACjG,eAAe,IAAI,MAAM;IAIzB,oFAAoF;IACpF,iBAAiB,IAAI,IAAI;IAMnB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgDvE,eAAe,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAiCvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAEhD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB;;;;;;;;OAQG;IACH,OAAO,CAAC,mBAAmB;IAkE3B,OAAO,CAAC,qBAAqB;IAkD7B,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAO;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAIxC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;YAEjC,IAAI;CA8DnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/gemini-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-transport.d.ts","sourceRoot":"","sources":["../../../src/transports/gemini-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC7B,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAEV,WAAW,EACX,kBAAkB,EAEnB,MAAM,qBAAqB,CAAC;AA2C7B,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAUD;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,KAAK;IACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM;gBAAtB,aAAa,CAAC,EAAE,MAAM;CAI5C;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAgB,YAAW,WAAW,EAAE,aAAa,EAAE,sBAAsB;IACxF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqB;IACpD;;;;;OAKG;IACH,OAAO,CAAC,eAAe,CAAK;gBAEhB,MAAM,GAAE,qBAA0B;IAmB9C,SAAS,IAAI;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,aAAa,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE;IAQ/E,iGAAiG;IACjG,eAAe,IAAI,MAAM;IAIzB,oFAAoF;IACpF,iBAAiB,IAAI,IAAI;IAMnB,oBAAoB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgBvE,eAAe,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,WAAW,CAAC;IAsCvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAa;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAEhD;;;;OAIG;IACH,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,gBAAgB;IAwDxB,OAAO,CAAC,kBAAkB;IA0E1B,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAK;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAO;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,CAAO;IACzD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAGxC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAQ;YAEjC,IAAI;IA+DlB,OAAO,CAAC,eAAe;CAexB"}
|
|
@@ -396,6 +396,14 @@ export interface ChatUiConfig {
|
|
|
396
396
|
* - `'always'` — composer never rendered
|
|
397
397
|
*/
|
|
398
398
|
hideComposer?: false | 'while-splash' | 'always';
|
|
399
|
+
/**
|
|
400
|
+
* Hide the Stop button shown above the composer while a turn is running. The
|
|
401
|
+
* button cancels the in-flight turn; set this when cancellation should not be
|
|
402
|
+
* exposed to the user.
|
|
403
|
+
* - `false` or `undefined` (default) — Stop button shown while a turn runs
|
|
404
|
+
* - `true` — Stop button never rendered
|
|
405
|
+
*/
|
|
406
|
+
hideStopButton?: boolean;
|
|
399
407
|
/**
|
|
400
408
|
* Show an inline divider in the message list when the active specialist changes.
|
|
401
409
|
* Also shown automatically when showToolCalls is true.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat.types.d.ts","sourceRoot":"","sources":["../../../src/types/chat.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat.types.d.ts","sourceRoot":"","sources":["../../../src/types/chat.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result of `combineSignals`: the combined signal plus a disposer that
|
|
3
|
+
* detaches the internal abort listeners from the input signals.
|
|
4
|
+
*/
|
|
5
|
+
export interface CombinedSignal {
|
|
6
|
+
/** Aborts as soon as any input signal aborts, adopting that signal's `reason`. */
|
|
7
|
+
signal: AbortSignal;
|
|
8
|
+
/**
|
|
9
|
+
* Detach the abort listeners from the input signals. Call this once the work
|
|
10
|
+
* the combined signal guards has settled (e.g. in a `finally`), so a
|
|
11
|
+
* long-lived input signal — such as a component-lifecycle signal reused
|
|
12
|
+
* across many requests — does not accumulate a dead listener per call.
|
|
13
|
+
*
|
|
14
|
+
* Idempotent and safe to call whether or not the combined signal aborted.
|
|
15
|
+
*/
|
|
16
|
+
dispose: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Fan several `AbortSignal`s into one. The returned signal aborts as soon
|
|
20
|
+
* as any input signal aborts, adopting that signal's `reason` — so callers can
|
|
21
|
+
* distinguish, for example, a timeout (`TimeoutError`) from a user/lifecycle
|
|
22
|
+
* cancellation (`AbortError`) by inspecting `signal.reason`. `undefined`
|
|
23
|
+
* entries are ignored, letting callers pass optional signals directly.
|
|
24
|
+
*
|
|
25
|
+
* NOTE: the platform already provides exactly this — `AbortSignal.any([...])`
|
|
26
|
+
* — but it is part of a newer spec than we target here. Our TypeScript config
|
|
27
|
+
* is pinned to an older standard library (tsconfig `target: ES2015`,
|
|
28
|
+
* `lib: [...ES2020]`), which predates `AbortSignal.any()`/`AbortSignal.timeout()`,
|
|
29
|
+
* so those APIs are not in our typings (and have a narrower runtime-support
|
|
30
|
+
* floor). This helper is the hand-rolled stand-in until the lib target is
|
|
31
|
+
* raised, at which point this can be deleted in favour of `AbortSignal.any`.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* const timeout = new AbortController();
|
|
35
|
+
* const timer = setTimeout(
|
|
36
|
+
* () => timeout.abort(new DOMException('Request timed out', 'TimeoutError')),
|
|
37
|
+
* ms,
|
|
38
|
+
* );
|
|
39
|
+
* const { signal, dispose } = combineSignals([callerSignal, timeout.signal]);
|
|
40
|
+
* try {
|
|
41
|
+
* return await fetch(url, { signal });
|
|
42
|
+
* } finally {
|
|
43
|
+
* clearTimeout(timer);
|
|
44
|
+
* dispose();
|
|
45
|
+
* }
|
|
46
|
+
*/
|
|
47
|
+
export declare function combineSignals(signals: Array<AbortSignal | undefined>): CombinedSignal;
|
|
48
|
+
//# sourceMappingURL=combine-signals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combine-signals.d.ts","sourceRoot":"","sources":["../../../src/utils/combine-signals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC,GAAG,cAAc,CAgCtF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { SUPPORTED_ANTHROPIC_MODEL_IDS, } from '../types';
|
|
3
|
+
import { combineSignals } from '../utils/combine-signals';
|
|
3
4
|
import { logger } from '../utils/logger';
|
|
4
5
|
const ANTHROPIC_DIRECT_URL = 'https://api.anthropic.com/v1/messages';
|
|
5
6
|
const ANTHROPIC_API_VERSION = '2023-06-01';
|
|
@@ -325,23 +326,34 @@ export class AnthropicTransport {
|
|
|
325
326
|
// Sequential retries are intentional — each attempt depends on the previous response.
|
|
326
327
|
/* oxlint-disable no-await-in-loop */
|
|
327
328
|
for (let attempt = 0; attempt <= AnthropicTransport.MAX_RETRIES; attempt += 1) {
|
|
328
|
-
const
|
|
329
|
-
const timeoutId = setTimeout(() =>
|
|
329
|
+
const timeoutController = new AbortController();
|
|
330
|
+
const timeoutId = setTimeout(() => timeoutController.abort(new DOMException('Anthropic request timed out', 'TimeoutError')), this.timeout);
|
|
331
|
+
// Combine so BOTH the local timeout and an optional caller signal can
|
|
332
|
+
// abort the fetch. A plain `signal ?? timeoutController.signal` would
|
|
333
|
+
// silently disarm the timeout whenever a caller signal was supplied.
|
|
334
|
+
// The tagged `TimeoutError` lets callers distinguish a timeout from a
|
|
335
|
+
// caller-initiated cancellation by inspecting the abort reason.
|
|
336
|
+
const { signal: combinedSignal, dispose } = combineSignals([
|
|
337
|
+
signal,
|
|
338
|
+
timeoutController.signal,
|
|
339
|
+
]);
|
|
330
340
|
let response;
|
|
331
341
|
try {
|
|
332
342
|
response = yield fetch(url, {
|
|
333
343
|
method: 'POST',
|
|
334
344
|
headers,
|
|
335
345
|
body: JSON.stringify(body),
|
|
336
|
-
signal:
|
|
346
|
+
signal: combinedSignal,
|
|
337
347
|
credentials,
|
|
338
348
|
});
|
|
339
349
|
}
|
|
340
350
|
catch (e) {
|
|
341
351
|
clearTimeout(timeoutId);
|
|
352
|
+
dispose();
|
|
342
353
|
throw e;
|
|
343
354
|
}
|
|
344
355
|
clearTimeout(timeoutId);
|
|
356
|
+
dispose();
|
|
345
357
|
if (AnthropicTransport.RETRYABLE_STATUSES.includes(response.status) &&
|
|
346
358
|
attempt < AnthropicTransport.MAX_RETRIES) {
|
|
347
359
|
// Exponential backoff: 1s, 2s, 4s, 8s, 16s
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { SUPPORTED_GEMINI_MODEL_IDS, } from '../types';
|
|
3
|
+
import { combineSignals } from '../utils/combine-signals';
|
|
3
4
|
import { logger } from '../utils/logger';
|
|
4
5
|
const GEMINI_DIRECT_URL = (model) => `https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent`;
|
|
5
6
|
const DEFAULT_MODEL = 'gemini-2.5-flash-lite';
|
|
@@ -292,23 +293,34 @@ export class GeminiTransport {
|
|
|
292
293
|
// Sequential retries are intentional — each attempt depends on the previous response.
|
|
293
294
|
/* oxlint-disable no-await-in-loop -- intentional sequential retries with backoff */
|
|
294
295
|
for (let attempt = 0; attempt <= GeminiTransport.MAX_RETRIES; attempt += 1) {
|
|
295
|
-
const
|
|
296
|
-
const timeoutId = setTimeout(() =>
|
|
296
|
+
const timeoutController = new AbortController();
|
|
297
|
+
const timeoutId = setTimeout(() => timeoutController.abort(new DOMException('Gemini request timed out', 'TimeoutError')), this.timeout);
|
|
298
|
+
// Combine so BOTH the local timeout and an optional caller signal can
|
|
299
|
+
// abort the fetch. A plain `signal ?? timeoutController.signal` would
|
|
300
|
+
// silently disarm the timeout whenever a caller signal was supplied.
|
|
301
|
+
// The tagged `TimeoutError` lets callers distinguish a timeout from a
|
|
302
|
+
// caller-initiated cancellation by inspecting the abort reason.
|
|
303
|
+
const { signal: combinedSignal, dispose } = combineSignals([
|
|
304
|
+
signal,
|
|
305
|
+
timeoutController.signal,
|
|
306
|
+
]);
|
|
297
307
|
let response;
|
|
298
308
|
try {
|
|
299
309
|
response = yield fetch(url, {
|
|
300
310
|
method: 'POST',
|
|
301
311
|
headers: { 'Content-Type': 'application/json' },
|
|
302
312
|
body: JSON.stringify(payload),
|
|
303
|
-
signal:
|
|
313
|
+
signal: combinedSignal,
|
|
304
314
|
credentials,
|
|
305
315
|
});
|
|
306
316
|
}
|
|
307
317
|
catch (e) {
|
|
308
318
|
clearTimeout(timeoutId);
|
|
319
|
+
dispose();
|
|
309
320
|
throw e;
|
|
310
321
|
}
|
|
311
322
|
clearTimeout(timeoutId);
|
|
323
|
+
dispose();
|
|
312
324
|
if (GeminiTransport.RETRYABLE_STATUSES.includes(response.status) &&
|
|
313
325
|
attempt < GeminiTransport.MAX_RETRIES) {
|
|
314
326
|
// Exponential backoff: 1s, 2s, 4s, 8s, 16s
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
const noop = () => { };
|
|
2
|
+
/**
|
|
3
|
+
* Fan several `AbortSignal`s into one. The returned signal aborts as soon
|
|
4
|
+
* as any input signal aborts, adopting that signal's `reason` — so callers can
|
|
5
|
+
* distinguish, for example, a timeout (`TimeoutError`) from a user/lifecycle
|
|
6
|
+
* cancellation (`AbortError`) by inspecting `signal.reason`. `undefined`
|
|
7
|
+
* entries are ignored, letting callers pass optional signals directly.
|
|
8
|
+
*
|
|
9
|
+
* NOTE: the platform already provides exactly this — `AbortSignal.any([...])`
|
|
10
|
+
* — but it is part of a newer spec than we target here. Our TypeScript config
|
|
11
|
+
* is pinned to an older standard library (tsconfig `target: ES2015`,
|
|
12
|
+
* `lib: [...ES2020]`), which predates `AbortSignal.any()`/`AbortSignal.timeout()`,
|
|
13
|
+
* so those APIs are not in our typings (and have a narrower runtime-support
|
|
14
|
+
* floor). This helper is the hand-rolled stand-in until the lib target is
|
|
15
|
+
* raised, at which point this can be deleted in favour of `AbortSignal.any`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* const timeout = new AbortController();
|
|
19
|
+
* const timer = setTimeout(
|
|
20
|
+
* () => timeout.abort(new DOMException('Request timed out', 'TimeoutError')),
|
|
21
|
+
* ms,
|
|
22
|
+
* );
|
|
23
|
+
* const { signal, dispose } = combineSignals([callerSignal, timeout.signal]);
|
|
24
|
+
* try {
|
|
25
|
+
* return await fetch(url, { signal });
|
|
26
|
+
* } finally {
|
|
27
|
+
* clearTimeout(timer);
|
|
28
|
+
* dispose();
|
|
29
|
+
* }
|
|
30
|
+
*/
|
|
31
|
+
export function combineSignals(signals) {
|
|
32
|
+
const controller = new AbortController();
|
|
33
|
+
const inputs = signals.filter((s) => s != null);
|
|
34
|
+
// If any input is already aborted, adopt its reason immediately. Nothing to
|
|
35
|
+
// wire up, so the disposer is a no-op.
|
|
36
|
+
const preAborted = inputs.find((s) => s.aborted);
|
|
37
|
+
if (preAborted) {
|
|
38
|
+
controller.abort(preAborted.reason);
|
|
39
|
+
return { signal: controller.signal, dispose: noop };
|
|
40
|
+
}
|
|
41
|
+
// `dispose` and `onAbort` reference each other; both are hoisted function
|
|
42
|
+
// declarations so neither is read before it is initialised.
|
|
43
|
+
function dispose() {
|
|
44
|
+
for (const s of inputs) {
|
|
45
|
+
s.removeEventListener('abort', onAbort);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// `this` is the input signal the listener was attached to, so `this.reason`
|
|
49
|
+
// is the reason of whichever signal aborted first.
|
|
50
|
+
function onAbort() {
|
|
51
|
+
controller.abort(this.reason);
|
|
52
|
+
dispose();
|
|
53
|
+
}
|
|
54
|
+
for (const s of inputs) {
|
|
55
|
+
s.addEventListener('abort', onAbort);
|
|
56
|
+
}
|
|
57
|
+
return { signal: controller.signal, dispose };
|
|
58
|
+
}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -4449,6 +4449,33 @@
|
|
|
4449
4449
|
"endIndex": 2
|
|
4450
4450
|
}
|
|
4451
4451
|
},
|
|
4452
|
+
{
|
|
4453
|
+
"kind": "PropertySignature",
|
|
4454
|
+
"canonicalReference": "@genesislcap/foundation-ai!ChatUiConfig#hideStopButton:member",
|
|
4455
|
+
"docComment": "/**\n * Hide the Stop button shown above the composer while a turn is running. The button cancels the in-flight turn; set this when cancellation should not be exposed to the user. - `false` or `undefined` (default) — Stop button shown while a turn runs - `true` — Stop button never rendered\n */\n",
|
|
4456
|
+
"excerptTokens": [
|
|
4457
|
+
{
|
|
4458
|
+
"kind": "Content",
|
|
4459
|
+
"text": "hideStopButton?: "
|
|
4460
|
+
},
|
|
4461
|
+
{
|
|
4462
|
+
"kind": "Content",
|
|
4463
|
+
"text": "boolean"
|
|
4464
|
+
},
|
|
4465
|
+
{
|
|
4466
|
+
"kind": "Content",
|
|
4467
|
+
"text": ";"
|
|
4468
|
+
}
|
|
4469
|
+
],
|
|
4470
|
+
"isReadonly": false,
|
|
4471
|
+
"isOptional": true,
|
|
4472
|
+
"releaseTag": "Beta",
|
|
4473
|
+
"name": "hideStopButton",
|
|
4474
|
+
"propertyTypeTokenRange": {
|
|
4475
|
+
"startIndex": 1,
|
|
4476
|
+
"endIndex": 2
|
|
4477
|
+
}
|
|
4478
|
+
},
|
|
4452
4479
|
{
|
|
4453
4480
|
"kind": "PropertySignature",
|
|
4454
4481
|
"canonicalReference": "@genesislcap/foundation-ai!ChatUiConfig#loadingDelay:member",
|
package/dist/foundation-ai.d.ts
CHANGED
|
@@ -785,6 +785,14 @@ export declare interface ChatUiConfig {
|
|
|
785
785
|
* - `'always'` — composer never rendered
|
|
786
786
|
*/
|
|
787
787
|
hideComposer?: false | 'while-splash' | 'always';
|
|
788
|
+
/**
|
|
789
|
+
* Hide the Stop button shown above the composer while a turn is running. The
|
|
790
|
+
* button cancels the in-flight turn; set this when cancellation should not be
|
|
791
|
+
* exposed to the user.
|
|
792
|
+
* - `false` or `undefined` (default) — Stop button shown while a turn runs
|
|
793
|
+
* - `true` — Stop button never rendered
|
|
794
|
+
*/
|
|
795
|
+
hideStopButton?: boolean;
|
|
788
796
|
/**
|
|
789
797
|
* Show an inline divider in the message list when the active specialist changes.
|
|
790
798
|
* Also shown automatically when showToolCalls is true.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@genesislcap/foundation-ai",
|
|
3
3
|
"description": "Genesis Foundation AI - Provider-agnostic AI configuration and shared utilities",
|
|
4
|
-
"version": "14.
|
|
4
|
+
"version": "14.453.0",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"license": "SEE LICENSE IN license.txt",
|
|
7
7
|
"main": "dist/esm/index.js",
|
|
@@ -51,17 +51,17 @@
|
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@genesislcap/foundation-testing": "14.
|
|
55
|
-
"@genesislcap/genx": "14.
|
|
56
|
-
"@genesislcap/rollup-builder": "14.
|
|
57
|
-
"@genesislcap/ts-builder": "14.
|
|
58
|
-
"@genesislcap/uvu-playwright-builder": "14.
|
|
59
|
-
"@genesislcap/vite-builder": "14.
|
|
60
|
-
"@genesislcap/webpack-builder": "14.
|
|
54
|
+
"@genesislcap/foundation-testing": "14.453.0",
|
|
55
|
+
"@genesislcap/genx": "14.453.0",
|
|
56
|
+
"@genesislcap/rollup-builder": "14.453.0",
|
|
57
|
+
"@genesislcap/ts-builder": "14.453.0",
|
|
58
|
+
"@genesislcap/uvu-playwright-builder": "14.453.0",
|
|
59
|
+
"@genesislcap/vite-builder": "14.453.0",
|
|
60
|
+
"@genesislcap/webpack-builder": "14.453.0"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@genesislcap/foundation-logger": "14.
|
|
64
|
-
"@genesislcap/foundation-utils": "14.
|
|
63
|
+
"@genesislcap/foundation-logger": "14.453.0",
|
|
64
|
+
"@genesislcap/foundation-utils": "14.453.0",
|
|
65
65
|
"@microsoft/fast-foundation": "2.50.0"
|
|
66
66
|
},
|
|
67
67
|
"repository": {
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"publishConfig": {
|
|
73
73
|
"access": "public"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "510e12f2d2b7d210c77d629427fa4081912bd99f"
|
|
76
76
|
}
|