@fias/arche-sdk 2.20.0 → 2.22.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 (42) 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 +7 -1
  8. package/dist/entity-ops.d.ts.map +1 -1
  9. package/dist/entity-ops.js +7 -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 +158 -1
  16. package/dist/hooks.d.ts.map +1 -1
  17. package/dist/hooks.js +141 -18
  18. package/dist/hooks.js.map +1 -1
  19. package/dist/hooks.test.js +116 -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 +340 -34
  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/types.d.ts +202 -14
  39. package/dist/types.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/templates/default/AGENTS.md +214 -9
  42. package/templates/default/CLAUDE.md +214 -9
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,8 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.resetBridge = exports.getBridge = exports.FiasBridgeError = exports.FiasBridge = exports.useFiasFonts = exports.ensureFontLoaded = exports.FONT_CATALOG = exports.getFontPairingById = exports.FONT_PAIRINGS = exports.getThemeById = exports.THEME_CATALOG = exports.getDefaultTheme = exports.LIGHT_THEME = exports.DARK_THEME = exports.fias = exports.PLUGIN_PERMISSION_DESCRIPTIONS = exports.isValidPluginPermission = exports.VALID_PLUGIN_PERMISSIONS = exports.useArcheHandoff = exports.useFiasAIActions = exports.useFiasPreviewState = exports.useCommunityAssets = exports.PLUGIN_CONTENT_ENTITY_ID = exports.FiasContentError = exports.useFiasContent = exports.useArcheAssets = exports.fetchVaultDocumentDownloadUrl = exports.useVaultUserDocuments = exports.useVaultDocuments = exports.useFiasStore = exports.useFiasWorkspaces = exports.useDataSubscription = exports.useFiasDataStore = exports.usePersistentState = exports.useStepNavigation = exports.useFiasNavigation = exports.useSurface = exports.useAudioGeneration = exports.useImageEntities = exports.useImageGeneration = exports.NLLB_LANGUAGES = exports.NLLB_TRANSLATION_ENTITY_ID = exports.GRAMMAR_CHECK_ENTITY_ID = exports.useClientEntity = exports.useEntityInvocation = exports.useFiasStorage = exports.useFiasVendoredAssets = exports.useFiasTheme = exports.useFiasUser = exports.FiasProvider = void 0;
18
- exports.PANEL_THEME_LENGTH_MAX_INTEGER_DIGITS = exports.PANEL_THEME_Z_MAX = exports.PANEL_THEME_AMOUNT_FORMAT_MAX_LENGTH = exports.PANEL_THEME_FONT_MAX_LENGTH = exports.PANEL_PRIORITY_ABS_MAX = exports.PANEL_SHOW_IF_MAX_LENGTH = exports.PANEL_ITEMS_SLOT_MAX_LENGTH = exports.PANEL_EMIT_TOKEN_MAX_LENGTH = exports.PANEL_BUTTON_LABEL_MAX_LENGTH = exports.PANEL_TEXT_MAX_LENGTH = exports.PANEL_TITLE_MAX_LENGTH = exports.PANEL_MAX_ELEMENTS = exports.PANEL_MIN_ELEMENTS = exports.PANEL_IMAGE_ROOTS = exports.PANEL_ELEMENT_KINDS = exports.validatePanelAction = exports.validatePanelTheme = exports.validatePanelDefinition = exports.validatePanelCatalog = exports.SDK_REQUIRES_HOST_PROTOCOL_VERSION = exports.SDK_BRIDGE_PROTOCOL_VERSION = void 0;
17
+ exports.THEME_CATALOG = exports.getDefaultTheme = exports.LIGHT_THEME = exports.DARK_THEME = exports.fias = exports.invocationPayloadByteLimit = exports.fitHistoryToLimits = exports.checkReasoningParameter = exports.checkInvocationRequestSize = exports.checkInvocationHistory = exports.REASONING_EFFORTS = exports.ENTITY_INVOCATION_REQUEST_LIMITS = exports.ENTITY_INVOCATION_HISTORY_LIMITS = exports.PLUGIN_PERMISSION_DESCRIPTIONS = exports.isValidPluginPermission = exports.VALID_PLUGIN_PERMISSIONS = exports.useDocumentSign = exports.useArcheHandoff = exports.useFiasAIActions = exports.useFiasPreviewState = exports.useCommunityAssets = exports.PLUGIN_CONTENT_ENTITY_ID = exports.FiasContentError = exports.useFiasContent = exports.useArcheAssets = exports.fetchVaultDocumentDownloadUrl = exports.useVaultUserDocuments = exports.useVaultDocuments = exports.useFiasStore = exports.useFiasWorkspaces = exports.useDataSubscription = exports.useFiasDataStore = exports.usePersistentState = exports.useStepNavigation = exports.useFiasNavigation = exports.useSurface = exports.useAudioGeneration = exports.useImageEntities = exports.useImageGeneration = exports.NLLB_LANGUAGES = exports.NLLB_TRANSLATION_ENTITY_ID = exports.GRAMMAR_CHECK_ENTITY_ID = exports.useClientEntity = exports.useTextModels = exports.useEntityInvocation = exports.useFiasStorage = exports.useFiasVendoredAssets = exports.useFiasTheme = exports.useFiasUser = exports.FiasProvider = void 0;
18
+ exports.PANEL_THEME_LENGTH_MAX_INTEGER_DIGITS = exports.PANEL_THEME_Z_MAX = exports.PANEL_THEME_AMOUNT_FORMAT_MAX_LENGTH = exports.PANEL_THEME_FONT_MAX_LENGTH = exports.PANEL_PRIORITY_ABS_MAX = exports.PANEL_SHOW_IF_MAX_LENGTH = exports.PANEL_ITEMS_SLOT_MAX_LENGTH = exports.PANEL_EMIT_TOKEN_MAX_LENGTH = exports.PANEL_BUTTON_LABEL_MAX_LENGTH = exports.PANEL_TEXT_MAX_LENGTH = exports.PANEL_TITLE_MAX_LENGTH = exports.PANEL_MAX_ELEMENTS = exports.PANEL_MIN_ELEMENTS = exports.PANEL_IMAGE_ROOTS = exports.PANEL_ELEMENT_KINDS = exports.validatePanelAction = exports.validatePanelTheme = exports.validatePanelDefinition = exports.validatePanelCatalog = exports.SDK_REQUIRES_HOST_PROTOCOL_VERSION = exports.SDK_BRIDGE_PROTOCOL_VERSION = exports.resetBridge = exports.getBridge = exports.FiasBridgeError = exports.FiasBridge = exports.useFiasFonts = exports.ensureFontLoaded = exports.FONT_CATALOG = exports.getFontPairingById = exports.FONT_PAIRINGS = exports.getThemeById = void 0;
19
19
  // Components
20
20
  var provider_1 = require("./provider");
21
21
  Object.defineProperty(exports, "FiasProvider", { enumerable: true, get: function () { return provider_1.FiasProvider; } });
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "useFiasTheme", { enumerable: true, get: function
26
26
  Object.defineProperty(exports, "useFiasVendoredAssets", { enumerable: true, get: function () { return hooks_1.useFiasVendoredAssets; } });
27
27
  Object.defineProperty(exports, "useFiasStorage", { enumerable: true, get: function () { return hooks_1.useFiasStorage; } });
28
28
  Object.defineProperty(exports, "useEntityInvocation", { enumerable: true, get: function () { return hooks_1.useEntityInvocation; } });
29
+ Object.defineProperty(exports, "useTextModels", { enumerable: true, get: function () { return hooks_1.useTextModels; } });
29
30
  Object.defineProperty(exports, "useClientEntity", { enumerable: true, get: function () { return hooks_1.useClientEntity; } });
30
31
  Object.defineProperty(exports, "GRAMMAR_CHECK_ENTITY_ID", { enumerable: true, get: function () { return hooks_1.GRAMMAR_CHECK_ENTITY_ID; } });
31
32
  Object.defineProperty(exports, "NLLB_TRANSLATION_ENTITY_ID", { enumerable: true, get: function () { return hooks_1.NLLB_TRANSLATION_ENTITY_ID; } });
@@ -52,6 +53,7 @@ Object.defineProperty(exports, "useCommunityAssets", { enumerable: true, get: fu
52
53
  Object.defineProperty(exports, "useFiasPreviewState", { enumerable: true, get: function () { return hooks_1.useFiasPreviewState; } });
53
54
  Object.defineProperty(exports, "useFiasAIActions", { enumerable: true, get: function () { return hooks_1.useFiasAIActions; } });
54
55
  Object.defineProperty(exports, "useArcheHandoff", { enumerable: true, get: function () { return hooks_1.useArcheHandoff; } });
56
+ Object.defineProperty(exports, "useDocumentSign", { enumerable: true, get: function () { return hooks_1.useDocumentSign; } });
55
57
  // Generated invocation-surface hooks (one per registered surface).
56
58
  // See packages/entities/src/surfaces/ for the source of truth.
57
59
  __exportStar(require("./generated/surfaces"), exports);
@@ -60,6 +62,16 @@ var permissions_1 = require("./generated/permissions");
60
62
  Object.defineProperty(exports, "VALID_PLUGIN_PERMISSIONS", { enumerable: true, get: function () { return permissions_1.VALID_PLUGIN_PERMISSIONS; } });
61
63
  Object.defineProperty(exports, "isValidPluginPermission", { enumerable: true, get: function () { return permissions_1.isValidPluginPermission; } });
62
64
  Object.defineProperty(exports, "PLUGIN_PERMISSION_DESCRIPTIONS", { enumerable: true, get: function () { return permissions_1.PLUGIN_PERMISSION_DESCRIPTIONS; } });
65
+ // Multi-turn AI invocation: history and request-size limits, validation, and trimming.
66
+ var invocation_params_1 = require("./invocation-params");
67
+ Object.defineProperty(exports, "ENTITY_INVOCATION_HISTORY_LIMITS", { enumerable: true, get: function () { return invocation_params_1.ENTITY_INVOCATION_HISTORY_LIMITS; } });
68
+ Object.defineProperty(exports, "ENTITY_INVOCATION_REQUEST_LIMITS", { enumerable: true, get: function () { return invocation_params_1.ENTITY_INVOCATION_REQUEST_LIMITS; } });
69
+ Object.defineProperty(exports, "REASONING_EFFORTS", { enumerable: true, get: function () { return invocation_params_1.REASONING_EFFORTS; } });
70
+ Object.defineProperty(exports, "checkInvocationHistory", { enumerable: true, get: function () { return invocation_params_1.checkInvocationHistory; } });
71
+ Object.defineProperty(exports, "checkInvocationRequestSize", { enumerable: true, get: function () { return invocation_params_1.checkInvocationRequestSize; } });
72
+ Object.defineProperty(exports, "checkReasoningParameter", { enumerable: true, get: function () { return invocation_params_1.checkReasoningParameter; } });
73
+ Object.defineProperty(exports, "fitHistoryToLimits", { enumerable: true, get: function () { return invocation_params_1.fitHistoryToLimits; } });
74
+ Object.defineProperty(exports, "invocationPayloadByteLimit", { enumerable: true, get: function () { return invocation_params_1.invocationPayloadByteLimit; } });
63
75
  // Utilities
64
76
  var fias_1 = require("./fias");
65
77
  Object.defineProperty(exports, "fias", { enumerable: true, get: function () { return fias_1.fias; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -114,19 +114,137 @@ function installSandboxDialogShims(win = typeof window === "undefined" ? void 0
114
114
  }
115
115
  }
116
116
 
117
+ // src/invocation-params.ts
118
+ var ENTITY_INVOCATION_HISTORY_LIMITS = {
119
+ maxTurns: 40,
120
+ maxTurnChars: 1e5,
121
+ maxTotalChars: 15e4
122
+ };
123
+ var ENTITY_INVOCATION_REQUEST_LIMITS = {
124
+ textBytes: 256 * 1024,
125
+ visionBytes: 1536 * 1024,
126
+ envelopeBytes: 1024
127
+ };
128
+ function serializedBytes(value) {
129
+ return new TextEncoder().encode(JSON.stringify(value)).length;
130
+ }
131
+ function carriesImages(params) {
132
+ return Array.isArray(params.images) && params.images.length > 0;
133
+ }
134
+ function invocationPayloadByteLimit(params) {
135
+ const { textBytes, visionBytes, envelopeBytes } = ENTITY_INVOCATION_REQUEST_LIMITS;
136
+ return (carriesImages(params) ? visionBytes : textBytes) - envelopeBytes;
137
+ }
138
+ function checkInvocationRequestSize(payload) {
139
+ const bytes = serializedBytes(payload);
140
+ const limit = invocationPayloadByteLimit(payload);
141
+ if (bytes > limit) {
142
+ return {
143
+ ok: false,
144
+ message: `The request is ${bytes} bytes; ${carriesImages(payload) ? "a call with images" : "a call without images"} may be at most ${limit}. Send less history (fitHistoryToLimits with { request }) or a shorter input.`
145
+ };
146
+ }
147
+ return { ok: true, value: bytes };
148
+ }
149
+ var REASONING_EFFORTS = ["off", "low", "medium", "high"];
150
+ function isPlainObject(value) {
151
+ return typeof value === "object" && value !== null && !Array.isArray(value);
152
+ }
153
+ function checkInvocationHistory(value) {
154
+ if (value === void 0) return { ok: true, value: void 0 };
155
+ const { maxTurns, maxTurnChars, maxTotalChars } = ENTITY_INVOCATION_HISTORY_LIMITS;
156
+ if (!Array.isArray(value)) return { ok: false, message: "history: must be an array" };
157
+ if (value.length > maxTurns) {
158
+ return { ok: false, message: `history: at most ${maxTurns} turns` };
159
+ }
160
+ let total = 0;
161
+ for (let i = 0; i < value.length; i++) {
162
+ const turn = value[i];
163
+ if (!isPlainObject(turn)) return { ok: false, message: `history.${i}: must be an object` };
164
+ const extra = Object.keys(turn).filter((k) => k !== "role" && k !== "content");
165
+ if (extra.length > 0) {
166
+ return { ok: false, message: `history.${i}: unknown field "${extra[0]}"` };
167
+ }
168
+ if (turn.role !== "user" && turn.role !== "assistant") {
169
+ return { ok: false, message: `history.${i}.role: must be "user" or "assistant"` };
170
+ }
171
+ if (typeof turn.content !== "string") {
172
+ return { ok: false, message: `history.${i}.content: must be a string` };
173
+ }
174
+ if (turn.content.length > maxTurnChars) {
175
+ return { ok: false, message: `history.${i}.content: at most ${maxTurnChars} characters` };
176
+ }
177
+ total += turn.content.length;
178
+ }
179
+ if (total > maxTotalChars) {
180
+ return { ok: false, message: `history: at most ${maxTotalChars} characters in total` };
181
+ }
182
+ return { ok: true, value };
183
+ }
184
+ function checkReasoningParameter(value) {
185
+ if (value === void 0) return { ok: true, value: void 0 };
186
+ if (!isPlainObject(value))
187
+ return { ok: false, message: "parameters.reasoning: must be an object" };
188
+ const extra = Object.keys(value).filter((k) => k !== "effort" && k !== "includeThinking");
189
+ if (extra.length > 0) {
190
+ return { ok: false, message: `parameters.reasoning: unknown field "${extra[0]}"` };
191
+ }
192
+ if (!REASONING_EFFORTS.includes(value.effort)) {
193
+ return {
194
+ ok: false,
195
+ message: `parameters.reasoning.effort: must be one of ${REASONING_EFFORTS.join(", ")}`
196
+ };
197
+ }
198
+ if (value.includeThinking !== void 0 && typeof value.includeThinking !== "boolean") {
199
+ return { ok: false, message: "parameters.reasoning.includeThinking: must be a boolean" };
200
+ }
201
+ return {
202
+ ok: true,
203
+ value: {
204
+ effort: value.effort,
205
+ includeThinking: value.includeThinking === true
206
+ }
207
+ };
208
+ }
209
+ function fitHistoryToLimits(turns, options = {}) {
210
+ const limits = ENTITY_INVOCATION_HISTORY_LIMITS;
211
+ const maxTurns = Math.min(options.maxTurns ?? limits.maxTurns, limits.maxTurns);
212
+ const request = options.request ?? {};
213
+ let bytesLeft = invocationPayloadByteLimit(request) - serializedBytes({ ...request, stream: true, history: [] });
214
+ const kept = [];
215
+ let total = 0;
216
+ for (let i = turns.length - 1; i >= 0 && kept.length < maxTurns; i--) {
217
+ const turn = turns[i];
218
+ const content = turn.content.length > limits.maxTurnChars ? turn.content.slice(turn.content.length - limits.maxTurnChars) : turn.content;
219
+ if (total + content.length > limits.maxTotalChars) break;
220
+ const bytes = serializedBytes({ role: turn.role, content }) + (kept.length > 0 ? 1 : 0);
221
+ if (bytes > bytesLeft) break;
222
+ bytesLeft -= bytes;
223
+ total += content.length;
224
+ kept.push({ role: turn.role, content });
225
+ }
226
+ return kept.reverse();
227
+ }
228
+
117
229
  // src/bridge.ts
118
230
  var messageCounter = 0;
119
231
  function generateMessageId() {
120
232
  return `msg_${Date.now()}_${++messageCounter}`;
121
233
  }
122
234
  var FiasBridgeError = class extends Error {
123
- constructor(message, code) {
235
+ constructor(message, code, requestId) {
124
236
  super(message);
125
237
  this.name = "FiasBridgeError";
126
238
  this.code = code;
239
+ if (requestId) this.requestId = requestId;
127
240
  }
128
241
  toJSON() {
129
- return { name: "FiasBridgeError", code: this.code, message: this.message };
242
+ return {
243
+ name: "FiasBridgeError",
244
+ code: this.code,
245
+ message: this.message,
246
+ ...this.requestId ? { requestId: this.requestId } : {}
247
+ };
130
248
  }
131
249
  };
132
250
  function mergeThemeWithDefaults(incoming) {
@@ -141,6 +259,8 @@ function mergeThemeWithDefaults(incoming) {
141
259
  };
142
260
  }
143
261
  var DEFAULT_TIMEOUT_MS = 3e4;
262
+ var STREAM_IDLE_TIMEOUT_MS = 12e4;
263
+ var STREAM_MAX_DURATION_MS = 15 * 6e4;
144
264
  var FiasBridge = class {
145
265
  constructor() {
146
266
  this.pendingRequests = /* @__PURE__ */ new Map();
@@ -151,6 +271,8 @@ var FiasBridge = class {
151
271
  this.permissions = [];
152
272
  this.theme = null;
153
273
  this.vendoredAssets = null;
274
+ this.textModels = null;
275
+ this.textModelListeners = /* @__PURE__ */ new Set();
154
276
  this.currentPath = "";
155
277
  this.hostOrigin = "";
156
278
  this.themeListeners = /* @__PURE__ */ new Set();
@@ -204,6 +326,7 @@ var FiasBridge = class {
204
326
  this.permissions = initMsg.payload.permissions;
205
327
  this.theme = mergeThemeWithDefaults(initMsg.payload.theme);
206
328
  this.vendoredAssets = initMsg.payload.vendoredAssets ?? null;
329
+ this.textModels = initMsg.payload.textModels ?? null;
207
330
  this.currentPath = initMsg.payload.currentPath;
208
331
  this.initialized = true;
209
332
  this.initResolve?.();
@@ -220,6 +343,15 @@ var FiasBridge = class {
220
343
  }
221
344
  return;
222
345
  }
346
+ if (data.type === "text_models_update") {
347
+ if (Array.isArray(data.payload)) {
348
+ this.textModels = data.payload;
349
+ for (const listener of this.textModelListeners) {
350
+ listener(this.textModels);
351
+ }
352
+ }
353
+ return;
354
+ }
223
355
  if (data.type === "navigate_update") {
224
356
  this.currentPath = data.payload;
225
357
  for (const listener of this.navigationListeners) {
@@ -254,10 +386,15 @@ var FiasBridge = class {
254
386
  return;
255
387
  }
256
388
  if (data.type === "stream_token") {
257
- const { messageId, text } = data;
389
+ const { messageId, text, channel } = data;
258
390
  const pending = this.pendingRequests.get(messageId);
259
- if (pending?.onToken && typeof text === "string") {
260
- pending.onToken(text);
391
+ if (!pending) return;
392
+ pending.onActivity?.();
393
+ if (typeof text !== "string" || channel === "keepalive") return;
394
+ if (channel === "thinking") {
395
+ pending.onThinking?.(text);
396
+ } else {
397
+ pending.onToken?.(text);
261
398
  }
262
399
  return;
263
400
  }
@@ -326,12 +463,14 @@ var FiasBridge = class {
326
463
  const pending = this.pendingRequests.get(response.messageId);
327
464
  if (!pending) return;
328
465
  clearTimeout(pending.timer);
466
+ pending.cleanup?.();
329
467
  this.pendingRequests.delete(response.messageId);
330
468
  if (response.error) {
331
469
  pending.reject(
332
470
  new FiasBridgeError(
333
471
  response.error || "Bridge request failed",
334
- response.errorCode ?? "BRIDGE_ERROR"
472
+ response.errorCode ?? "BRIDGE_ERROR",
473
+ response.errorRequestId
335
474
  )
336
475
  );
337
476
  } else {
@@ -447,6 +586,17 @@ var FiasBridge = class {
447
586
  getCurrentPath() {
448
587
  return this.currentPath;
449
588
  }
589
+ /**
590
+ * The live text-model catalog, or null until the host has delivered it (or
591
+ * when the plugin lacks `entities:invoke`). See `useTextModels`.
592
+ */
593
+ getTextModels() {
594
+ return this.textModels;
595
+ }
596
+ onTextModelsUpdate(listener) {
597
+ this.textModelListeners.add(listener);
598
+ return () => this.textModelListeners.delete(listener);
599
+ }
450
600
  onThemeUpdate(listener) {
451
601
  this.themeListeners.add(listener);
452
602
  return () => this.themeListeners.delete(listener);
@@ -500,21 +650,62 @@ var FiasBridge = class {
500
650
  * resolves with the final EntityInvocationResult when the host sends the
501
651
  * normal response message.
502
652
  */
503
- async requestStream(payload, onToken) {
653
+ async requestStream(payload, callbacks) {
654
+ const { onToken, onThinking, signal } = typeof callbacks === "function" ? { onToken: callbacks } : callbacks;
504
655
  await this.waitForInit();
656
+ const outbound = { ...payload, stream: true };
657
+ const size = checkInvocationRequestSize(outbound);
658
+ if (!size.ok) {
659
+ throw new FiasBridgeError(size.message, "REQUEST_TOO_LARGE");
660
+ }
505
661
  return new Promise((resolve, reject) => {
662
+ if (signal?.aborted) {
663
+ reject(new FiasBridgeError("Stream aborted before it started", "ABORTED"));
664
+ return;
665
+ }
506
666
  const messageId = generateMessageId();
507
- const timer = setTimeout(() => {
667
+ const fail = (error) => {
668
+ const pending2 = this.pendingRequests.get(messageId);
669
+ if (!pending2) return;
670
+ clearTimeout(pending2.timer);
671
+ pending2.cleanup?.();
508
672
  this.pendingRequests.delete(messageId);
509
- reject(new FiasBridgeError("Bridge streaming request timed out: entity_invoke", "TIMEOUT"));
510
- }, 12e4);
511
- this.pendingRequests.set(messageId, {
673
+ reject(error);
674
+ };
675
+ const idleTimer = () => setTimeout(
676
+ () => fail(
677
+ new FiasBridgeError("Bridge streaming request timed out: entity_invoke", "TIMEOUT")
678
+ ),
679
+ STREAM_IDLE_TIMEOUT_MS
680
+ );
681
+ const maxTimer = setTimeout(
682
+ () => fail(
683
+ new FiasBridgeError(
684
+ "Bridge streaming request exceeded its maximum duration: entity_invoke",
685
+ "TIMEOUT"
686
+ )
687
+ ),
688
+ STREAM_MAX_DURATION_MS
689
+ );
690
+ const onAbort = () => fail(new FiasBridgeError("Stream aborted", "ABORTED"));
691
+ signal?.addEventListener("abort", onAbort, { once: true });
692
+ const pending = {
512
693
  resolve,
513
694
  reject,
514
- timer,
515
- onToken
516
- });
517
- this.send("entity_invoke", { ...payload, stream: true }, messageId);
695
+ timer: idleTimer(),
696
+ onToken,
697
+ onThinking,
698
+ onActivity: () => {
699
+ clearTimeout(pending.timer);
700
+ pending.timer = idleTimer();
701
+ },
702
+ cleanup: () => {
703
+ clearTimeout(maxTimer);
704
+ signal?.removeEventListener("abort", onAbort);
705
+ }
706
+ };
707
+ this.pendingRequests.set(messageId, pending);
708
+ this.send("entity_invoke", outbound, messageId);
518
709
  });
519
710
  }
520
711
  /**
@@ -528,10 +719,12 @@ var FiasBridge = class {
528
719
  }
529
720
  for (const pending of this.pendingRequests.values()) {
530
721
  clearTimeout(pending.timer);
722
+ pending.cleanup?.();
531
723
  pending.reject(new FiasBridgeError("Bridge destroyed", "BRIDGE_DESTROYED"));
532
724
  }
533
725
  this.pendingRequests.clear();
534
726
  this.themeListeners.clear();
727
+ this.textModelListeners.clear();
535
728
  this.navigationListeners.clear();
536
729
  this.stepNavigationListeners.clear();
537
730
  this.previewStateProviders.clear();
@@ -876,6 +1069,7 @@ var PLUGIN_STORE_ENTITY_ID = "ent_intg_plugin_store_0000000000";
876
1069
  var VAULT_USER_DOCUMENTS_ENTITY_ID = "ent_intg_vault_documents_0000000";
877
1070
  var VAULT_ARCHE_DOCUMENTS_ENTITY_ID = "ent_intg_vault_arche_docs_000000";
878
1071
  var COMMUNITY_ASSETS_ENTITY_ID = "ent_intg_community_assets_000000";
1072
+ var DOCUMENT_SIGN_ENTITY_ID = "ent_intg_document_sign_000000000";
879
1073
  var COMMUNITY_ASSET_MAX_URL_BATCH = 50;
880
1074
  var COMMUNITY_ASSET_MAX_PUBLISH_BATCH = 20;
881
1075
  async function invokeEntityOp(bridge, entityId, op, args = {}) {
@@ -1015,34 +1209,54 @@ function useFiasStorage() {
1015
1209
  }
1016
1210
  function useEntityInvocation() {
1017
1211
  const bridge = useBridge();
1018
- const [isLoading, setIsLoading] = useState2(false);
1212
+ const [inFlight, setInFlight] = useState2(0);
1019
1213
  const [result, setResult] = useState2(null);
1020
1214
  const [error, setError] = useState2(null);
1021
1215
  const [streamingText, setStreamingText] = useState2("");
1022
1216
  const invoke = useCallback(
1023
- async (params) => {
1024
- setIsLoading(true);
1025
- setError(null);
1026
- setStreamingText("");
1217
+ async (params, options) => {
1218
+ const usesSharedSlots = !options?.onToken;
1219
+ setInFlight((n) => n + 1);
1220
+ if (usesSharedSlots) {
1221
+ setError(null);
1222
+ setStreamingText("");
1223
+ }
1027
1224
  try {
1028
- const res = await bridge.requestStream(params, (token) => {
1029
- flushSync(() => {
1030
- setStreamingText((prev) => prev + token);
1031
- });
1225
+ const res = await bridge.requestStream(params, {
1226
+ onToken: (token) => {
1227
+ if (options?.onToken) {
1228
+ options.onToken(token);
1229
+ return;
1230
+ }
1231
+ flushSync(() => {
1232
+ setStreamingText((prev) => prev + token);
1233
+ });
1234
+ },
1235
+ onThinking: options?.onThinking,
1236
+ signal: options?.signal
1032
1237
  });
1033
- setResult(res);
1238
+ if (usesSharedSlots) setResult(res);
1034
1239
  return res;
1035
1240
  } catch (err) {
1036
1241
  const e = err instanceof Error ? err : new Error(String(err));
1037
- setError(e);
1242
+ if (usesSharedSlots) setError(e);
1038
1243
  throw e;
1039
1244
  } finally {
1040
- setIsLoading(false);
1245
+ setInFlight((n) => n - 1);
1041
1246
  }
1042
1247
  },
1043
1248
  [bridge]
1044
1249
  );
1045
- return { invoke, isLoading, result, error, streamingText };
1250
+ return { invoke, isLoading: inFlight > 0, result, error, streamingText };
1251
+ }
1252
+ function useTextModels() {
1253
+ const bridge = useBridge();
1254
+ const [models, setModels] = useState2(bridge.getTextModels() ?? []);
1255
+ useEffect2(() => {
1256
+ setModels(bridge.getTextModels() ?? []);
1257
+ return bridge.onTextModelsUpdate(setModels);
1258
+ }, [bridge]);
1259
+ return models;
1046
1260
  }
1047
1261
  function useImageGeneration() {
1048
1262
  const bridge = useBridge();
@@ -1967,7 +2181,7 @@ function useVaultDocuments() {
1967
2181
  );
1968
2182
  }
1969
2183
  var SAVE_CONTENT_BODY_LANE_MAX_BYTES = 2e5;
1970
- var BRIDGE_BODY_TEXT_MAX_SERIALIZED_BYTES = 256 * 1024 - 16 * 1024;
2184
+ var BRIDGE_BODY_TEXT_MAX_SERIALIZED_BYTES = ENTITY_INVOCATION_REQUEST_LIMITS.textBytes - 16 * 1024;
1971
2185
  function fitsBridgeBodyAsJsonText(text, utf8Bytes) {
1972
2186
  if (text.length * 6 <= BRIDGE_BODY_TEXT_MAX_SERIALIZED_BYTES) return true;
1973
2187
  const escapeOverhead = JSON.stringify(text).length - text.length;
@@ -2335,9 +2549,54 @@ function useVaultUserDocuments() {
2335
2549
  },
2336
2550
  [bridge]
2337
2551
  );
2552
+ const workspace = useMemo2(
2553
+ () => ({
2554
+ list: async (options) => {
2555
+ const res = await invokeEntityOp(
2556
+ bridge,
2557
+ VAULT_USER_DOCUMENTS_ENTITY_ID,
2558
+ "list_workspace_documents",
2559
+ { limit: options?.limit, offset: options?.offset, search: options?.search }
2560
+ );
2561
+ return res.documents;
2562
+ },
2563
+ get: (documentId, options) => invokeEntityOp(
2564
+ bridge,
2565
+ VAULT_USER_DOCUMENTS_ENTITY_ID,
2566
+ "get_workspace_document",
2567
+ { documentId, includeContent: options?.includeContent }
2568
+ ),
2569
+ getDownloadUrl: async (documentId) => {
2570
+ const res = await invokeEntityOp(bridge, VAULT_USER_DOCUMENTS_ENTITY_ID, "get_workspace_document_url", { documentId });
2571
+ return {
2572
+ url: res.url,
2573
+ expiresAt: new Date(res.expiresAt).getTime(),
2574
+ contentType: res.contentType
2575
+ };
2576
+ },
2577
+ getBytes: async (documentId) => {
2578
+ const res = await invokeEntityOp(bridge, VAULT_USER_DOCUMENTS_ENTITY_ID, "get_workspace_document_bytes", { documentId });
2579
+ return {
2580
+ document: res.document,
2581
+ bytes: base64ToBytes(res.bytesBase64),
2582
+ contentType: res.contentType
2583
+ };
2584
+ }
2585
+ }),
2586
+ [bridge]
2587
+ );
2338
2588
  return useMemo2(
2339
- () => ({ pick, requestEditAccess, saveContent, list, get, getDownloadUrl, getBytes }),
2340
- [pick, requestEditAccess, saveContent, list, get, getDownloadUrl, getBytes]
2589
+ () => ({
2590
+ pick,
2591
+ requestEditAccess,
2592
+ saveContent,
2593
+ list,
2594
+ get,
2595
+ getDownloadUrl,
2596
+ getBytes,
2597
+ workspace
2598
+ }),
2599
+ [pick, requestEditAccess, saveContent, list, get, getDownloadUrl, getBytes, workspace]
2341
2600
  );
2342
2601
  }
2343
2602
  var COMMUNITY_ASSET_URL_REFRESH_BUFFER_MS = 3e4;
@@ -2523,6 +2782,33 @@ function useArcheHandoff(onHandoff) {
2523
2782
  return () => bridge.clearHandoffHandler(handler);
2524
2783
  }, [bridge]);
2525
2784
  }
2785
+ function useDocumentSign() {
2786
+ const bridge = useBridge();
2787
+ const getEnvelope = useCallback(
2788
+ async (envelopeId) => {
2789
+ const res = await invokeEntityOp(
2790
+ bridge,
2791
+ DOCUMENT_SIGN_ENTITY_ID,
2792
+ "get_consented_envelope",
2793
+ { envelopeId }
2794
+ );
2795
+ return res.envelope;
2796
+ },
2797
+ [bridge]
2798
+ );
2799
+ const listEvents = useCallback(
2800
+ async (envelopeId, options) => {
2801
+ return invokeEntityOp(
2802
+ bridge,
2803
+ DOCUMENT_SIGN_ENTITY_ID,
2804
+ "list_consented_envelope_events",
2805
+ { envelopeId, limit: options?.limit, offset: options?.offset }
2806
+ );
2807
+ },
2808
+ [bridge]
2809
+ );
2810
+ return useMemo2(() => ({ getEnvelope, listEvents }), [getEnvelope, listEvents]);
2811
+ }
2526
2812
  function useFiasAIActions(config) {
2527
2813
  const bridge = useBridge();
2528
2814
  const onActionRef = useRef(config?.onAction ?? null);
@@ -2641,6 +2927,7 @@ var VALID_PLUGIN_PERMISSIONS = [
2641
2927
  "data:search",
2642
2928
  "data:store",
2643
2929
  "data:workspace",
2930
+ "docsign:envelopes:read",
2644
2931
  "entities:audio_generate",
2645
2932
  "entities:client_invoke",
2646
2933
  "entities:image_edit",
@@ -2658,7 +2945,8 @@ var VALID_PLUGIN_PERMISSIONS = [
2658
2945
  "vault:documents:write",
2659
2946
  "vault:user-documents:edit",
2660
2947
  "vault:user-documents:read",
2661
- "vault:user-documents:write"
2948
+ "vault:user-documents:write",
2949
+ "vault:workspace-documents:read"
2662
2950
  ];
2663
2951
  function isValidPluginPermission(perm) {
2664
2952
  return VALID_PLUGIN_PERMISSIONS.includes(perm);
@@ -2671,6 +2959,7 @@ var PLUGIN_PERMISSION_DESCRIPTIONS = {
2671
2959
  "data:search": "Search this arche's own data semantically \u2014 costs credits per search.",
2672
2960
  "data:store": "Save structured data in this arche's own private database.",
2673
2961
  "data:workspace": "Create team workspaces and manage their members.",
2962
+ "docsign:envelopes:read": "Check on signature requests it started for you \u2014 who has signed, and what is still outstanding.",
2674
2963
  "entities:audio_generate": "Generate audio with platform AI \u2014 costs credits.",
2675
2964
  "entities:client_invoke": "Use free on-device tools (grammar check, translation) in your browser.",
2676
2965
  "entities:image_edit": "Edit images with platform AI \u2014 costs credits.",
@@ -2688,7 +2977,8 @@ var PLUGIN_PERMISSION_DESCRIPTIONS = {
2688
2977
  "vault:documents:write": "Create and manage its own files, in its own folder of your Vault.",
2689
2978
  "vault:user-documents:edit": "Save changes to files of yours that you let it edit \u2014 you choose each file, earlier versions are kept unless you turned version history off, and you can remove access any time in Vault \u2192 Arche Access.",
2690
2979
  "vault:user-documents:read": "Read documents YOU choose to share with it from your Vault \u2014 you pick each document, and you can remove access any time in Vault \u2192 Arche Access.",
2691
- "vault:user-documents:write": "Save its work to your Documents \u2014 you choose the folder and the name each time."
2980
+ "vault:user-documents:write": "Save its work to your Documents \u2014 you choose the folder and the name each time.",
2981
+ "vault:workspace-documents:read": "Read every document you can see in a team workspace \u2014 only after that workspace's owner or admin approves it there, and never files marked proprietary."
2692
2982
  };
2693
2983
 
2694
2984
  // src/fias.ts
@@ -5029,7 +5319,13 @@ function validateAnimation(value, path, issues) {
5029
5319
  }
5030
5320
  rejectUnknownKeys(value, ["type", "durationMs", "easing"], path, issues);
5031
5321
  checkOptionalEnum(value.type, `${path}.type`, issues, ANIMATION_TYPES);
5032
- checkOptionalIntRange(value.durationMs, `${path}.durationMs`, issues, 0, ANIMATION_MAX_DURATION_MS);
5322
+ checkOptionalIntRange(
5323
+ value.durationMs,
5324
+ `${path}.durationMs`,
5325
+ issues,
5326
+ 0,
5327
+ ANIMATION_MAX_DURATION_MS
5328
+ );
5033
5329
  checkOptionalEnum(value.easing, `${path}.easing`, issues, ANIMATION_EASINGS);
5034
5330
  }
5035
5331
  var THEME_COLOR_FIELDS = ["bg", "fg", "border", "accent", "accentFg", "scrim"];
@@ -5171,6 +5467,8 @@ export {
5171
5467
  AUDIO_VOICE_CHANGER_SURFACE_KEY,
5172
5468
  AUDIO_VOICE_DESIGN_SURFACE_KEY,
5173
5469
  DARK_THEME,
5470
+ ENTITY_INVOCATION_HISTORY_LIMITS,
5471
+ ENTITY_INVOCATION_REQUEST_LIMITS,
5174
5472
  FONT_CATALOG,
5175
5473
  FONT_PAIRINGS,
5176
5474
  FiasBridge,
@@ -5210,17 +5508,23 @@ export {
5210
5508
  PANEL_TITLE_MAX_LENGTH,
5211
5509
  PLUGIN_CONTENT_ENTITY_ID,
5212
5510
  PLUGIN_PERMISSION_DESCRIPTIONS,
5511
+ REASONING_EFFORTS,
5213
5512
  SDK_BRIDGE_PROTOCOL_VERSION,
5214
5513
  SDK_REQUIRES_HOST_PROTOCOL_VERSION,
5215
5514
  THEME_CATALOG,
5216
5515
  VALID_PLUGIN_PERMISSIONS,
5516
+ checkInvocationHistory,
5517
+ checkInvocationRequestSize,
5518
+ checkReasoningParameter,
5217
5519
  ensureFontLoaded,
5218
5520
  fetchVaultDocumentDownloadUrl,
5219
5521
  fias,
5522
+ fitHistoryToLimits,
5220
5523
  getBridge,
5221
5524
  getDefaultTheme,
5222
5525
  getFontPairingById,
5223
5526
  getThemeById,
5527
+ invocationPayloadByteLimit,
5224
5528
  isValidPluginPermission,
5225
5529
  resetBridge,
5226
5530
  useArcheAssets,
@@ -5229,6 +5533,7 @@ export {
5229
5533
  useClientEntity,
5230
5534
  useCommunityAssets,
5231
5535
  useDataSubscription,
5536
+ useDocumentSign,
5232
5537
  useElevenLabsAudioIsolation,
5233
5538
  useElevenLabsForcedAlignment,
5234
5539
  useElevenLabsMusic,
@@ -5268,6 +5573,7 @@ export {
5268
5573
  useSmartVectorize,
5269
5574
  useStepNavigation,
5270
5575
  useSurface,
5576
+ useTextModels,
5271
5577
  useVaultDocuments,
5272
5578
  useVaultUserDocuments,
5273
5579
  validatePanelAction,