@fias/arche-sdk 2.21.0 → 2.23.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.
Files changed (46) hide show
  1. package/dist/bridge.d.ts +33 -3
  2. package/dist/bridge.d.ts.map +1 -1
  3. package/dist/bridge.js +98 -15
  4. package/dist/bridge.js.map +1 -1
  5. package/dist/bridge.test.js +173 -0
  6. package/dist/bridge.test.js.map +1 -1
  7. package/dist/entity-ops.d.ts +3 -0
  8. package/dist/entity-ops.d.ts.map +1 -1
  9. package/dist/entity-ops.js +4 -1
  10. package/dist/entity-ops.js.map +1 -1
  11. package/dist/generated/permissions.d.ts +1 -1
  12. package/dist/generated/permissions.d.ts.map +1 -1
  13. package/dist/generated/permissions.js +4 -0
  14. package/dist/generated/permissions.js.map +1 -1
  15. package/dist/hooks.d.ts +82 -1
  16. package/dist/hooks.d.ts.map +1 -1
  17. package/dist/hooks.js +143 -20
  18. package/dist/hooks.js.map +1 -1
  19. package/dist/hooks.test.js +93 -1
  20. package/dist/hooks.test.js.map +1 -1
  21. package/dist/index.d.ts +3 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +14 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/index.mjs +329 -36
  26. package/dist/invocation-params.d.ts +92 -0
  27. package/dist/invocation-params.d.ts.map +1 -0
  28. package/dist/invocation-params.js +180 -0
  29. package/dist/invocation-params.js.map +1 -0
  30. package/dist/invocation-params.test.d.ts +2 -0
  31. package/dist/invocation-params.test.d.ts.map +1 -0
  32. package/dist/invocation-params.test.js +140 -0
  33. package/dist/invocation-params.test.js.map +1 -0
  34. package/dist/panels.d.ts.map +1 -1
  35. package/dist/panels.js.map +1 -1
  36. package/dist/panels.test.js +1 -3
  37. package/dist/panels.test.js.map +1 -1
  38. package/dist/protocol.d.ts +8 -0
  39. package/dist/protocol.d.ts.map +1 -1
  40. package/dist/protocol.js +8 -0
  41. package/dist/protocol.js.map +1 -1
  42. package/dist/types.d.ts +219 -4
  43. package/dist/types.d.ts.map +1 -1
  44. package/package.json +1 -1
  45. package/templates/default/AGENTS.md +140 -4
  46. package/templates/default/CLAUDE.md +140 -4
package/dist/bridge.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ArcheHandoffPayload, PluginToHostMessageType, FiasTheme, FiasAIActionsDeclaration, PluginPermission, EntityInvocationResult, SubscriptionEndedReason } from './types';
1
+ import type { ArcheHandoffPayload, PluginToHostMessageType, FiasTheme, FiasTextModel, FiasAIActionsDeclaration, PluginPermission, EntityInvocationResult, SubscriptionEndedReason } from './types';
2
2
  /**
3
3
  * Error type for every rejection the bridge produces.
4
4
  *
@@ -17,13 +17,35 @@ import type { ArcheHandoffPayload, PluginToHostMessageType, FiasTheme, FiasAIAct
17
17
  */
18
18
  export declare class FiasBridgeError extends Error {
19
19
  code: string;
20
- constructor(message: string, code: string);
20
+ /**
21
+ * The platform's correlation id for the failed call, when the platform sent
22
+ * one. Show it as a support reference — it is the id on the platform's own
23
+ * log line for this failure.
24
+ */
25
+ requestId?: string;
26
+ constructor(message: string, code: string, requestId?: string);
21
27
  toJSON(): {
22
28
  name: string;
23
29
  code: string;
24
30
  message: string;
31
+ requestId?: string;
25
32
  };
26
33
  }
34
+ /** Callbacks and cancellation for one streaming `entity_invoke`. */
35
+ export interface StreamCallbacks {
36
+ onToken: (text: string) => void;
37
+ onThinking?: (text: string) => void;
38
+ signal?: AbortSignal;
39
+ }
40
+ /**
41
+ * A stream fails when it goes this long with NO sign of life — no token, no
42
+ * thinking, no host keepalive. An idle bound rather than a total one: a
43
+ * reasoning model can legitimately take minutes, and a fixed total cut long
44
+ * answers off mid-reply while the platform finished (and billed) them anyway.
45
+ */
46
+ export declare const STREAM_IDLE_TIMEOUT_MS = 120000;
47
+ /** Absolute ceiling on one stream, however lively. */
48
+ export declare const STREAM_MAX_DURATION_MS: number;
27
49
  /**
28
50
  * Low-level bridge client for postMessage communication with the FIAS host frame.
29
51
  * Used internally by SDK hooks. Plugin developers should use hooks instead.
@@ -37,6 +59,8 @@ export declare class FiasBridge {
37
59
  private permissions;
38
60
  private theme;
39
61
  private vendoredAssets;
62
+ private textModels;
63
+ private textModelListeners;
40
64
  private currentPath;
41
65
  private hostOrigin;
42
66
  private themeListeners;
@@ -100,6 +124,12 @@ export declare class FiasBridge {
100
124
  */
101
125
  getVendoredAssets(importSpecifier: string): Record<string, string> | null;
102
126
  getCurrentPath(): string;
127
+ /**
128
+ * The live text-model catalog, or null until the host has delivered it (or
129
+ * when the plugin lacks `entities:invoke`). See `useTextModels`.
130
+ */
131
+ getTextModels(): FiasTextModel[] | null;
132
+ onTextModelsUpdate(listener: (models: FiasTextModel[]) => void): () => void;
103
133
  onThemeUpdate(listener: (theme: FiasTheme) => void): () => void;
104
134
  onNavigationUpdate(listener: (path: string) => void): () => void;
105
135
  onStepNavigationUpdate(listener: (nodeId: string) => void): () => void;
@@ -122,7 +152,7 @@ export declare class FiasBridge {
122
152
  * resolves with the final EntityInvocationResult when the host sends the
123
153
  * normal response message.
124
154
  */
125
- requestStream(payload: unknown, onToken: (text: string) => void): Promise<EntityInvocationResult>;
155
+ requestStream(payload: unknown, callbacks: StreamCallbacks | ((text: string) => void)): Promise<EntityInvocationResult>;
126
156
  /**
127
157
  * Clean up event listeners and pending requests.
128
158
  * After destroy(), the bridge can be re-activated by calling attach().
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
package/dist/bridge.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FiasBridge = exports.FiasBridgeError = void 0;
3
+ exports.FiasBridge = exports.STREAM_MAX_DURATION_MS = exports.STREAM_IDLE_TIMEOUT_MS = exports.FiasBridgeError = void 0;
4
4
  exports.getBridge = getBridge;
5
5
  exports.resetBridge = resetBridge;
6
6
  const theme_1 = require("./theme");
7
7
  const protocol_1 = require("./protocol");
8
8
  const sandbox_dialogs_1 = require("./sandbox-dialogs");
9
+ const invocation_params_1 = require("./invocation-params");
9
10
  let messageCounter = 0;
10
11
  function generateMessageId() {
11
12
  return `msg_${Date.now()}_${++messageCounter}`;
@@ -27,13 +28,20 @@ function generateMessageId() {
27
28
  * postMessage boundary.
28
29
  */
29
30
  class FiasBridgeError extends Error {
30
- constructor(message, code) {
31
+ constructor(message, code, requestId) {
31
32
  super(message);
32
33
  this.name = 'FiasBridgeError';
33
34
  this.code = code;
35
+ if (requestId)
36
+ this.requestId = requestId;
34
37
  }
35
38
  toJSON() {
36
- return { name: 'FiasBridgeError', code: this.code, message: this.message };
39
+ return {
40
+ name: 'FiasBridgeError',
41
+ code: this.code,
42
+ message: this.message,
43
+ ...(this.requestId ? { requestId: this.requestId } : {}),
44
+ };
37
45
  }
38
46
  }
39
47
  exports.FiasBridgeError = FiasBridgeError;
@@ -53,6 +61,15 @@ function mergeThemeWithDefaults(incoming) {
53
61
  };
54
62
  }
55
63
  const DEFAULT_TIMEOUT_MS = 30000;
64
+ /**
65
+ * A stream fails when it goes this long with NO sign of life — no token, no
66
+ * thinking, no host keepalive. An idle bound rather than a total one: a
67
+ * reasoning model can legitimately take minutes, and a fixed total cut long
68
+ * answers off mid-reply while the platform finished (and billed) them anyway.
69
+ */
70
+ exports.STREAM_IDLE_TIMEOUT_MS = 120000;
71
+ /** Absolute ceiling on one stream, however lively. */
72
+ exports.STREAM_MAX_DURATION_MS = 15 * 60000;
56
73
  /**
57
74
  * Low-level bridge client for postMessage communication with the FIAS host frame.
58
75
  * Used internally by SDK hooks. Plugin developers should use hooks instead.
@@ -67,6 +84,8 @@ class FiasBridge {
67
84
  this.permissions = [];
68
85
  this.theme = null;
69
86
  this.vendoredAssets = null;
87
+ this.textModels = null;
88
+ this.textModelListeners = new Set();
70
89
  this.currentPath = '';
71
90
  this.hostOrigin = '';
72
91
  this.themeListeners = new Set();
@@ -132,6 +151,7 @@ class FiasBridge {
132
151
  this.permissions = initMsg.payload.permissions;
133
152
  this.theme = mergeThemeWithDefaults(initMsg.payload.theme);
134
153
  this.vendoredAssets = initMsg.payload.vendoredAssets ?? null;
154
+ this.textModels = initMsg.payload.textModels ?? null;
135
155
  this.currentPath = initMsg.payload.currentPath;
136
156
  this.initialized = true;
137
157
  this.initResolve?.();
@@ -158,6 +178,16 @@ class FiasBridge {
158
178
  }
159
179
  return;
160
180
  }
181
+ // The text-model catalog, when the host loaded it after init.
182
+ if (data.type === 'text_models_update') {
183
+ if (Array.isArray(data.payload)) {
184
+ this.textModels = data.payload;
185
+ for (const listener of this.textModelListeners) {
186
+ listener(this.textModels);
187
+ }
188
+ }
189
+ return;
190
+ }
161
191
  // Handle navigation updates
162
192
  if (data.type === 'navigate_update') {
163
193
  this.currentPath = data.payload;
@@ -206,10 +236,18 @@ class FiasBridge {
206
236
  }
207
237
  // Handle streaming tokens
208
238
  if (data.type === 'stream_token') {
209
- const { messageId, text } = data;
239
+ const { messageId, text, channel } = data;
210
240
  const pending = this.pendingRequests.get(messageId);
211
- if (pending?.onToken && typeof text === 'string') {
212
- pending.onToken(text);
241
+ if (!pending)
242
+ return;
243
+ pending.onActivity?.();
244
+ if (typeof text !== 'string' || channel === 'keepalive')
245
+ return;
246
+ if (channel === 'thinking') {
247
+ pending.onThinking?.(text);
248
+ }
249
+ else {
250
+ pending.onToken?.(text);
213
251
  }
214
252
  return;
215
253
  }
@@ -296,12 +334,13 @@ class FiasBridge {
296
334
  if (!pending)
297
335
  return;
298
336
  clearTimeout(pending.timer);
337
+ pending.cleanup?.();
299
338
  this.pendingRequests.delete(response.messageId);
300
339
  if (response.error) {
301
340
  // The wire format is plain fields (string + optional code); the Error
302
341
  // instance is constructed HERE, never structured-cloned across the
303
342
  // postMessage boundary.
304
- pending.reject(new FiasBridgeError(response.error || 'Bridge request failed', response.errorCode ?? 'BRIDGE_ERROR'));
343
+ pending.reject(new FiasBridgeError(response.error || 'Bridge request failed', response.errorCode ?? 'BRIDGE_ERROR', response.errorRequestId));
305
344
  }
306
345
  else {
307
346
  pending.resolve(response.payload);
@@ -418,6 +457,17 @@ class FiasBridge {
418
457
  getCurrentPath() {
419
458
  return this.currentPath;
420
459
  }
460
+ /**
461
+ * The live text-model catalog, or null until the host has delivered it (or
462
+ * when the plugin lacks `entities:invoke`). See `useTextModels`.
463
+ */
464
+ getTextModels() {
465
+ return this.textModels;
466
+ }
467
+ onTextModelsUpdate(listener) {
468
+ this.textModelListeners.add(listener);
469
+ return () => this.textModelListeners.delete(listener);
470
+ }
421
471
  onThemeUpdate(listener) {
422
472
  this.themeListeners.add(listener);
423
473
  return () => this.themeListeners.delete(listener);
@@ -475,21 +525,52 @@ class FiasBridge {
475
525
  * resolves with the final EntityInvocationResult when the host sends the
476
526
  * normal response message.
477
527
  */
478
- async requestStream(payload, onToken) {
528
+ async requestStream(payload, callbacks) {
529
+ const { onToken, onThinking, signal } = typeof callbacks === 'function' ? { onToken: callbacks } : callbacks;
479
530
  await this.waitForInit();
531
+ // Refuse here, by name, a call the bridge would reject with a bare 413.
532
+ const outbound = { ...payload, stream: true };
533
+ const size = (0, invocation_params_1.checkInvocationRequestSize)(outbound);
534
+ if (!size.ok) {
535
+ throw new FiasBridgeError(size.message, 'REQUEST_TOO_LARGE');
536
+ }
480
537
  return new Promise((resolve, reject) => {
538
+ if (signal?.aborted) {
539
+ reject(new FiasBridgeError('Stream aborted before it started', 'ABORTED'));
540
+ return;
541
+ }
481
542
  const messageId = generateMessageId();
482
- const timer = setTimeout(() => {
543
+ const fail = (error) => {
544
+ const pending = this.pendingRequests.get(messageId);
545
+ if (!pending)
546
+ return;
547
+ clearTimeout(pending.timer);
548
+ pending.cleanup?.();
483
549
  this.pendingRequests.delete(messageId);
484
- reject(new FiasBridgeError('Bridge streaming request timed out: entity_invoke', 'TIMEOUT'));
485
- }, 120000); // Longer timeout for streaming
486
- this.pendingRequests.set(messageId, {
550
+ reject(error);
551
+ };
552
+ const idleTimer = () => setTimeout(() => fail(new FiasBridgeError('Bridge streaming request timed out: entity_invoke', 'TIMEOUT')), exports.STREAM_IDLE_TIMEOUT_MS);
553
+ const maxTimer = setTimeout(() => fail(new FiasBridgeError('Bridge streaming request exceeded its maximum duration: entity_invoke', 'TIMEOUT')), exports.STREAM_MAX_DURATION_MS);
554
+ // Abort stops waiting; the platform still completes and bills the call.
555
+ const onAbort = () => fail(new FiasBridgeError('Stream aborted', 'ABORTED'));
556
+ signal?.addEventListener('abort', onAbort, { once: true });
557
+ const pending = {
487
558
  resolve: resolve,
488
559
  reject,
489
- timer,
560
+ timer: idleTimer(),
490
561
  onToken,
491
- });
492
- this.send('entity_invoke', { ...payload, stream: true }, messageId);
562
+ onThinking,
563
+ onActivity: () => {
564
+ clearTimeout(pending.timer);
565
+ pending.timer = idleTimer();
566
+ },
567
+ cleanup: () => {
568
+ clearTimeout(maxTimer);
569
+ signal?.removeEventListener('abort', onAbort);
570
+ },
571
+ };
572
+ this.pendingRequests.set(messageId, pending);
573
+ this.send('entity_invoke', outbound, messageId);
493
574
  });
494
575
  }
495
576
  /**
@@ -503,10 +584,12 @@ class FiasBridge {
503
584
  }
504
585
  for (const pending of this.pendingRequests.values()) {
505
586
  clearTimeout(pending.timer);
587
+ pending.cleanup?.();
506
588
  pending.reject(new FiasBridgeError('Bridge destroyed', 'BRIDGE_DESTROYED'));
507
589
  }
508
590
  this.pendingRequests.clear();
509
591
  this.themeListeners.clear();
592
+ this.textModelListeners.clear();
510
593
  this.navigationListeners.clear();
511
594
  this.stepNavigationListeners.clear();
512
595
  this.previewStateProviders.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -406,6 +406,179 @@ describe('FiasBridge', () => {
406
406
  bridge.destroy();
407
407
  });
408
408
  });
409
+ describe('streaming entity_invoke', () => {
410
+ async function startStream(bridge, callbacks) {
411
+ const promise = bridge.requestStream({ entityId: 'ent_x', input: 'hi' }, callbacks);
412
+ await flushMicrotasks();
413
+ const sent = findSentMessage('entity_invoke');
414
+ return { promise, messageId: sent.messageId, sent };
415
+ }
416
+ afterEach(() => {
417
+ jest.useRealTimers();
418
+ });
419
+ it('routes text, thinking and keepalive channels, then resolves on response', async () => {
420
+ const bridge = new bridge_1.FiasBridge();
421
+ sendInit();
422
+ await bridge.waitForInit();
423
+ const onToken = jest.fn();
424
+ const onThinking = jest.fn();
425
+ const { promise, messageId, sent } = await startStream(bridge, { onToken, onThinking });
426
+ expect(sent.payload).toMatchObject({ stream: true });
427
+ dispatchMessage({ type: 'stream_token', messageId, text: 'hmm', channel: 'thinking' });
428
+ dispatchMessage({ type: 'stream_token', messageId, channel: 'keepalive' });
429
+ dispatchMessage({ type: 'stream_token', messageId, text: 'Hello' });
430
+ dispatchMessage({
431
+ type: 'response',
432
+ messageId,
433
+ payload: { output: 'Hello', metadata: { usage: { costCredits: 2 } } },
434
+ });
435
+ await expect(promise).resolves.toEqual({
436
+ output: 'Hello',
437
+ metadata: { usage: { costCredits: 2 } },
438
+ });
439
+ expect(onThinking).toHaveBeenCalledWith('hmm');
440
+ expect(onToken).toHaveBeenCalledTimes(1);
441
+ expect(onToken).toHaveBeenCalledWith('Hello');
442
+ });
443
+ it('still accepts a bare onToken function (back-compat)', async () => {
444
+ const bridge = new bridge_1.FiasBridge();
445
+ sendInit();
446
+ await bridge.waitForInit();
447
+ const onToken = jest.fn();
448
+ const { promise, messageId } = await startStream(bridge, onToken);
449
+ dispatchMessage({ type: 'stream_token', messageId, text: 'a' });
450
+ dispatchMessage({ type: 'response', messageId, payload: { output: 'a' } });
451
+ await promise;
452
+ expect(onToken).toHaveBeenCalledWith('a');
453
+ });
454
+ // A long reasoning phase is silent apart from keepalives. A fixed total
455
+ // timeout used to cut such streams off while the platform finished (and
456
+ // billed) them.
457
+ it('times out only after a silent idle period — any activity resets it', async () => {
458
+ jest.useFakeTimers({ doNotFake: ['nextTick'] });
459
+ const bridge = new bridge_1.FiasBridge();
460
+ sendInit();
461
+ await bridge.waitForInit();
462
+ const { promise, messageId } = await startStream(bridge, { onToken: jest.fn() });
463
+ const settled = jest.fn();
464
+ promise.then(settled, settled);
465
+ jest.advanceTimersByTime(bridge_1.STREAM_IDLE_TIMEOUT_MS - 1000);
466
+ dispatchMessage({ type: 'stream_token', messageId, channel: 'keepalive' });
467
+ jest.advanceTimersByTime(bridge_1.STREAM_IDLE_TIMEOUT_MS - 1000);
468
+ await flushMicrotasks();
469
+ expect(settled).not.toHaveBeenCalled();
470
+ jest.advanceTimersByTime(2000);
471
+ await expect(promise).rejects.toMatchObject({ code: 'TIMEOUT' });
472
+ });
473
+ it('enforces the absolute maximum duration even while tokens flow', async () => {
474
+ jest.useFakeTimers({ doNotFake: ['nextTick'] });
475
+ const bridge = new bridge_1.FiasBridge();
476
+ sendInit();
477
+ await bridge.waitForInit();
478
+ const { promise, messageId } = await startStream(bridge, { onToken: jest.fn() });
479
+ const rejected = promise.catch((e) => e);
480
+ for (let t = 0; t < bridge_1.STREAM_MAX_DURATION_MS; t += 60000) {
481
+ dispatchMessage({ type: 'stream_token', messageId, text: '.' });
482
+ jest.advanceTimersByTime(60000);
483
+ }
484
+ expect(await rejected).toMatchObject({ code: 'TIMEOUT' });
485
+ });
486
+ it('rejects with ABORTED on abort and drops later chunks', async () => {
487
+ const bridge = new bridge_1.FiasBridge();
488
+ sendInit();
489
+ await bridge.waitForInit();
490
+ const controller = new AbortController();
491
+ const onToken = jest.fn();
492
+ const { promise, messageId } = await startStream(bridge, {
493
+ onToken,
494
+ signal: controller.signal,
495
+ });
496
+ controller.abort();
497
+ await expect(promise).rejects.toMatchObject({ code: 'ABORTED' });
498
+ dispatchMessage({ type: 'stream_token', messageId, text: 'late' });
499
+ expect(onToken).not.toHaveBeenCalled();
500
+ });
501
+ it('carries the platform correlation id on a failed call', async () => {
502
+ const bridge = new bridge_1.FiasBridge();
503
+ sendInit();
504
+ await bridge.waitForInit();
505
+ const { promise, messageId } = await startStream(bridge, { onToken: jest.fn() });
506
+ dispatchMessage({
507
+ type: 'response',
508
+ messageId,
509
+ payload: null,
510
+ error: 'busy',
511
+ errorCode: 'PROVIDER_OVERLOADED',
512
+ errorRequestId: 'req_abc',
513
+ });
514
+ const error = (await promise.catch((e) => e));
515
+ expect(error).toBeInstanceOf(bridge_1.FiasBridgeError);
516
+ expect(error.code).toBe('PROVIDER_OVERLOADED');
517
+ expect(error.requestId).toBe('req_abc');
518
+ expect(JSON.parse(JSON.stringify(error))).toMatchObject({ requestId: 'req_abc' });
519
+ });
520
+ it('rejects immediately, sending nothing, when already aborted', async () => {
521
+ const bridge = new bridge_1.FiasBridge();
522
+ sendInit();
523
+ await bridge.waitForInit();
524
+ postMessageSpy.mockClear();
525
+ const controller = new AbortController();
526
+ controller.abort();
527
+ await expect(bridge.requestStream({ entityId: 'ent_x', input: 'hi' }, { onToken: jest.fn(), signal: controller.signal })).rejects.toMatchObject({ code: 'ABORTED' });
528
+ expect(findSentMessage('entity_invoke')).toBeUndefined();
529
+ });
530
+ // 100,000 CJK characters are 300 KB serialized — past the 256 KB text
531
+ // route. Refused by name before sending, not left to the server's 413.
532
+ it('refuses, sending nothing, a text call too large for the bridge', async () => {
533
+ const bridge = new bridge_1.FiasBridge();
534
+ sendInit();
535
+ await bridge.waitForInit();
536
+ postMessageSpy.mockClear();
537
+ await expect(bridge.requestStream({
538
+ entityId: 'ent_x',
539
+ input: 'hi',
540
+ history: [{ role: 'user', content: '漢'.repeat(100000) }],
541
+ }, { onToken: jest.fn() })).rejects.toMatchObject({ code: 'REQUEST_TOO_LARGE' });
542
+ expect(findSentMessage('entity_invoke')).toBeUndefined();
543
+ });
544
+ });
545
+ describe('text model catalog', () => {
546
+ const model = {
547
+ entityId: 'ent_modeldef_sonnet_5',
548
+ displayName: 'Claude Sonnet 5',
549
+ provider: 'anthropic',
550
+ providerDisplayName: 'Anthropic',
551
+ tier: 'balanced',
552
+ recommended: true,
553
+ capabilities: { vision: true, reasoning: true },
554
+ maxOutputTokens: 64000,
555
+ pricing: { inputCreditsPerMillionTokens: 360, outputCreditsPerMillionTokens: 1800 },
556
+ };
557
+ it('reads the catalog from init', async () => {
558
+ const bridge = new bridge_1.FiasBridge();
559
+ sendInit({ textModels: [model] });
560
+ await bridge.waitForInit();
561
+ expect(bridge.getTextModels()).toEqual([model]);
562
+ });
563
+ it('is null until delivered, then updates listeners', async () => {
564
+ const bridge = new bridge_1.FiasBridge();
565
+ sendInit();
566
+ await bridge.waitForInit();
567
+ expect(bridge.getTextModels()).toBeNull();
568
+ const listener = jest.fn();
569
+ bridge.onTextModelsUpdate(listener);
570
+ dispatchMessage({ type: 'text_models_update', payload: [model] });
571
+ expect(listener).toHaveBeenCalledWith([model]);
572
+ expect(bridge.getTextModels()).toEqual([model]);
573
+ });
574
+ it('ignores a malformed update', async () => {
575
+ const bridge = new bridge_1.FiasBridge();
576
+ sendInit({ textModels: [model] });
577
+ await bridge.waitForInit();
578
+ dispatchMessage({ type: 'text_models_update', payload: 'nope' });
579
+ expect(bridge.getTextModels()).toEqual([model]);
580
+ });
581
+ });
409
582
  describe('theme updates', () => {
410
583
  it('notifies theme listeners', () => {
411
584
  const bridge = new bridge_1.FiasBridge();