@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.
- package/dist/bridge.d.ts +33 -3
- package/dist/bridge.d.ts.map +1 -1
- package/dist/bridge.js +98 -15
- package/dist/bridge.js.map +1 -1
- package/dist/bridge.test.js +173 -0
- package/dist/bridge.test.js.map +1 -1
- package/dist/entity-ops.d.ts +7 -1
- package/dist/entity-ops.d.ts.map +1 -1
- package/dist/entity-ops.js +7 -1
- package/dist/entity-ops.js.map +1 -1
- package/dist/generated/permissions.d.ts +1 -1
- package/dist/generated/permissions.d.ts.map +1 -1
- package/dist/generated/permissions.js +4 -0
- package/dist/generated/permissions.js.map +1 -1
- package/dist/hooks.d.ts +158 -1
- package/dist/hooks.d.ts.map +1 -1
- package/dist/hooks.js +141 -18
- package/dist/hooks.js.map +1 -1
- package/dist/hooks.test.js +116 -1
- package/dist/hooks.test.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +340 -34
- package/dist/invocation-params.d.ts +92 -0
- package/dist/invocation-params.d.ts.map +1 -0
- package/dist/invocation-params.js +180 -0
- package/dist/invocation-params.js.map +1 -0
- package/dist/invocation-params.test.d.ts +2 -0
- package/dist/invocation-params.test.d.ts.map +1 -0
- package/dist/invocation-params.test.js +140 -0
- package/dist/invocation-params.test.js.map +1 -0
- package/dist/panels.d.ts.map +1 -1
- package/dist/panels.js.map +1 -1
- package/dist/panels.test.js +1 -3
- package/dist/panels.test.js.map +1 -1
- package/dist/types.d.ts +202 -14
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/templates/default/AGENTS.md +214 -9
- package/templates/default/CLAUDE.md +214 -9
package/dist/index.d.ts.map
CHANGED
|
@@ -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.
|
|
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":";;;;;;;;;;;;;;;;;;AAAA,aAAa;AACb,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAErB,QAAQ;AACR,
|
|
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 {
|
|
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
|
|
260
|
-
|
|
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,
|
|
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
|
|
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(
|
|
510
|
-
}
|
|
511
|
-
|
|
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
|
-
|
|
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 [
|
|
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
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
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,
|
|
1029
|
-
|
|
1030
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
() => ({
|
|
2340
|
-
|
|
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(
|
|
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,
|