lua-cli 3.48.0 → 3.49.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/api-exports.d.ts +624 -15
- package/dist/api-exports.js +1021 -163
- package/dist/api-exports.js.map +1 -1
- package/dist/index.js +5103 -3126
- package/dist/index.js.map +1 -1
- package/dist/voice/test/index.d.ts +4 -4
- package/dist/voice-exports.d.ts +1 -1
- package/dist/voice-exports.js.map +1 -1
- package/dist/workflow-builder.d.ts +8 -1
- package/dist/workflow-builder.js +924 -145
- package/dist/workflow-builder.js.map +1 -1
- package/docs/CLI_REFERENCE.md +7 -5
- package/docs/README.md +3 -3
- package/docs/api/LuaDecision.md +9 -3
- package/docs/api/LuaWorkflow.md +1 -1
- package/docs/api/Workflows.md +2 -2
- package/package.json +2 -2
- package/template/package.json +1 -1
package/dist/api-exports.js
CHANGED
|
@@ -993,6 +993,79 @@ function isPlatformInvocationCaller(v) {
|
|
|
993
993
|
function supervisionSubjectId(agentId2) {
|
|
994
994
|
return `agent:${agentId2}`;
|
|
995
995
|
}
|
|
996
|
+
function isModelCallCategory(category) {
|
|
997
|
+
return category.startsWith("llm:") || category.startsWith("voice:") || category === "embedding" || category === "workflow:job" || category === "decision:ask" || category.startsWith("tool:image-");
|
|
998
|
+
}
|
|
999
|
+
function deriveUsageSurface(row) {
|
|
1000
|
+
const { category, channel } = row;
|
|
1001
|
+
const data = row.data;
|
|
1002
|
+
if (!isModelCallCategory(category)) return void 0;
|
|
1003
|
+
if (category === "workflow:job") return "workflow-job";
|
|
1004
|
+
if (category === "llm:sandbox") return "tool-code";
|
|
1005
|
+
if (category === "llm:builder") return "builder";
|
|
1006
|
+
if (category === "llm:website") return "website";
|
|
1007
|
+
if (category.startsWith("voice:") || category === "llm:voice") return "voice";
|
|
1008
|
+
if (category.startsWith("llm:tool:") || AGENT_TOOL_CATEGORIES.has(category)) return "agent-tool";
|
|
1009
|
+
if (!TURN_CATEGORIES.has(category)) return "background";
|
|
1010
|
+
if (channel === "workflow") return "workflow-step";
|
|
1011
|
+
if (data?.gateway === "livekit-inference") return "voice";
|
|
1012
|
+
if (channel === "dev") return "dev";
|
|
1013
|
+
if (channel && VOICE_CHANNELS.has(channel)) return "voice";
|
|
1014
|
+
if (channel && MESSAGING_CHANNELS.has(channel)) return "channel";
|
|
1015
|
+
return "chat";
|
|
1016
|
+
}
|
|
1017
|
+
function fromRaw(raw, id2, model) {
|
|
1018
|
+
const fiveMin = count(raw.cache_creation?.ephemeral_5m_input_tokens);
|
|
1019
|
+
const oneHour = count(raw.cache_creation?.ephemeral_1h_input_tokens);
|
|
1020
|
+
const split = !!(fiveMin || oneHour);
|
|
1021
|
+
const flatWrite = count(raw.cache_creation_input_tokens);
|
|
1022
|
+
const read = count(raw.cache_read_input_tokens);
|
|
1023
|
+
return {
|
|
1024
|
+
...typeof id2 === "string" && id2 ? {
|
|
1025
|
+
id: id2
|
|
1026
|
+
} : {},
|
|
1027
|
+
...typeof model === "string" && model ? {
|
|
1028
|
+
model
|
|
1029
|
+
} : {},
|
|
1030
|
+
inputTokens: count(raw.input_tokens) ?? 0,
|
|
1031
|
+
outputTokens: count(raw.output_tokens) ?? 0,
|
|
1032
|
+
...read ? {
|
|
1033
|
+
cacheReadTokens: read
|
|
1034
|
+
} : {},
|
|
1035
|
+
...split ? {
|
|
1036
|
+
...fiveMin ? {
|
|
1037
|
+
cacheCreationTokens5m: fiveMin
|
|
1038
|
+
} : {},
|
|
1039
|
+
...oneHour ? {
|
|
1040
|
+
cacheCreationTokens1h: oneHour
|
|
1041
|
+
} : {}
|
|
1042
|
+
} : flatWrite ? {
|
|
1043
|
+
cacheCreationTokens: flatWrite
|
|
1044
|
+
} : {},
|
|
1045
|
+
...typeof raw.service_tier === "string" && raw.service_tier && raw.service_tier !== "standard" ? {
|
|
1046
|
+
serviceTier: raw.service_tier
|
|
1047
|
+
} : {}
|
|
1048
|
+
};
|
|
1049
|
+
}
|
|
1050
|
+
function anthropicMessageUsage(message) {
|
|
1051
|
+
if (!message || typeof message !== "object") return void 0;
|
|
1052
|
+
const m = message;
|
|
1053
|
+
if (!m.usage || typeof m.usage !== "object") return void 0;
|
|
1054
|
+
return fromRaw(m.usage, m.id, m.model);
|
|
1055
|
+
}
|
|
1056
|
+
function parseAnthropicReplyUsage(body) {
|
|
1057
|
+
const start = body.trimStart();
|
|
1058
|
+
if (start.startsWith("{")) {
|
|
1059
|
+
try {
|
|
1060
|
+
return anthropicMessageUsage(JSON.parse(start));
|
|
1061
|
+
} catch {
|
|
1062
|
+
return void 0;
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
const reader = new AnthropicSseUsageReader();
|
|
1066
|
+
reader.push(body);
|
|
1067
|
+
return reader.result();
|
|
1068
|
+
}
|
|
996
1069
|
function isSupervisionOp(op) {
|
|
997
1070
|
return typeof op === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_OPS, op);
|
|
998
1071
|
}
|
|
@@ -2164,24 +2237,24 @@ function addresses(text2) {
|
|
|
2164
2237
|
function recordFacts(value3) {
|
|
2165
2238
|
const senders = [];
|
|
2166
2239
|
const labels = [];
|
|
2167
|
-
let
|
|
2240
|
+
let isRecord32 = false;
|
|
2168
2241
|
if (isPlainObject(value3.author_member)) {
|
|
2169
|
-
|
|
2242
|
+
isRecord32 = true;
|
|
2170
2243
|
const email = lower(value3.author_member.email);
|
|
2171
2244
|
if (email) senders.push(email);
|
|
2172
2245
|
const userId = lower(value3.author_member.user_id);
|
|
2173
2246
|
if (userId) senders.push(userId);
|
|
2174
2247
|
}
|
|
2175
2248
|
if (typeof value3.channel_id === "string") {
|
|
2176
|
-
|
|
2249
|
+
isRecord32 = true;
|
|
2177
2250
|
labels.push(...idOrName(value3.channel_id));
|
|
2178
2251
|
}
|
|
2179
2252
|
if (Array.isArray(value3.channel_ids)) {
|
|
2180
|
-
|
|
2253
|
+
isRecord32 = true;
|
|
2181
2254
|
for (const id2 of value3.channel_ids) labels.push(...idOrName(id2));
|
|
2182
2255
|
}
|
|
2183
2256
|
if (Array.isArray(value3.channels) && (value3.author_member || value3.message !== void 0)) {
|
|
2184
|
-
|
|
2257
|
+
isRecord32 = true;
|
|
2185
2258
|
for (const channel of value3.channels) labels.push(...idOrName(channel));
|
|
2186
2259
|
}
|
|
2187
2260
|
for (const key of [
|
|
@@ -2190,11 +2263,11 @@ function recordFacts(value3) {
|
|
|
2190
2263
|
]) {
|
|
2191
2264
|
const field = value3[key];
|
|
2192
2265
|
if (isPlainObject(field) && isPlainObject(field.emailAddress)) {
|
|
2193
|
-
|
|
2266
|
+
isRecord32 = true;
|
|
2194
2267
|
const address = lower(field.emailAddress.address);
|
|
2195
2268
|
if (address) senders.push(address);
|
|
2196
2269
|
} else if (key === "from" && typeof field === "string" && field.includes("@")) {
|
|
2197
|
-
|
|
2270
|
+
isRecord32 = true;
|
|
2198
2271
|
senders.push(...addresses(field));
|
|
2199
2272
|
}
|
|
2200
2273
|
}
|
|
@@ -2202,12 +2275,12 @@ function recordFacts(value3) {
|
|
|
2202
2275
|
const organizer = value3.organizer;
|
|
2203
2276
|
const address = isPlainObject(organizer.emailAddress) ? lower(organizer.emailAddress.address) : lower(organizer.email);
|
|
2204
2277
|
if (address) {
|
|
2205
|
-
|
|
2278
|
+
isRecord32 = true;
|
|
2206
2279
|
senders.push(address);
|
|
2207
2280
|
}
|
|
2208
2281
|
}
|
|
2209
2282
|
if (Array.isArray(value3.categories)) {
|
|
2210
|
-
|
|
2283
|
+
isRecord32 = true;
|
|
2211
2284
|
for (const category of value3.categories) labels.push(...idOrName(category));
|
|
2212
2285
|
}
|
|
2213
2286
|
if (isPlainObject(value3.from)) {
|
|
@@ -2218,13 +2291,13 @@ function recordFacts(value3) {
|
|
|
2218
2291
|
]) {
|
|
2219
2292
|
const identity = value3.from[key];
|
|
2220
2293
|
if (!isPlainObject(identity)) continue;
|
|
2221
|
-
|
|
2294
|
+
isRecord32 = true;
|
|
2222
2295
|
const id2 = lower(identity.id);
|
|
2223
2296
|
if (id2) senders.push(id2);
|
|
2224
2297
|
}
|
|
2225
2298
|
}
|
|
2226
2299
|
if (isPlainObject(value3.channelIdentity)) {
|
|
2227
|
-
|
|
2300
|
+
isRecord32 = true;
|
|
2228
2301
|
for (const key of [
|
|
2229
2302
|
"channelId",
|
|
2230
2303
|
"teamId"
|
|
@@ -2234,21 +2307,21 @@ function recordFacts(value3) {
|
|
|
2234
2307
|
}
|
|
2235
2308
|
}
|
|
2236
2309
|
if (typeof value3.chatId === "string") {
|
|
2237
|
-
|
|
2310
|
+
isRecord32 = true;
|
|
2238
2311
|
labels.push(...idOrName(value3.chatId));
|
|
2239
2312
|
}
|
|
2240
2313
|
if (typeof value3.parentFolderId === "string") {
|
|
2241
|
-
|
|
2314
|
+
isRecord32 = true;
|
|
2242
2315
|
labels.push(...idOrName(value3.parentFolderId));
|
|
2243
2316
|
}
|
|
2244
2317
|
let gmailSenderUnknown = false;
|
|
2245
2318
|
const gmailMessage = typeof value3.threadId === "string" && (Array.isArray(value3.labelIds) || "payload" in value3 || "raw" in value3) || isPlainObject(value3.payload) && Array.isArray(value3.payload.headers);
|
|
2246
2319
|
if (Array.isArray(value3.labelIds)) {
|
|
2247
|
-
|
|
2320
|
+
isRecord32 = true;
|
|
2248
2321
|
for (const id2 of value3.labelIds) labels.push(...idOrName(id2));
|
|
2249
2322
|
}
|
|
2250
2323
|
if (gmailMessage) {
|
|
2251
|
-
|
|
2324
|
+
isRecord32 = true;
|
|
2252
2325
|
const headers = isPlainObject(value3.payload) && Array.isArray(value3.payload.headers) ? value3.payload.headers : [];
|
|
2253
2326
|
const from = headers.find((header) => isPlainObject(header) && lower(header.name) === "from");
|
|
2254
2327
|
const fromAddresses = addresses(from?.value);
|
|
@@ -2256,11 +2329,11 @@ function recordFacts(value3) {
|
|
|
2256
2329
|
else gmailSenderUnknown = true;
|
|
2257
2330
|
}
|
|
2258
2331
|
if (Array.isArray(value3.labels)) {
|
|
2259
|
-
|
|
2332
|
+
isRecord32 = true;
|
|
2260
2333
|
for (const label of value3.labels) labels.push(...idOrName(label));
|
|
2261
2334
|
}
|
|
2262
2335
|
if (typeof value3.ts === "string" && (typeof value3.user === "string" || typeof value3.bot_id === "string")) {
|
|
2263
|
-
|
|
2336
|
+
isRecord32 = true;
|
|
2264
2337
|
for (const id2 of [
|
|
2265
2338
|
value3.user,
|
|
2266
2339
|
value3.bot_id,
|
|
@@ -2276,7 +2349,7 @@ function recordFacts(value3) {
|
|
|
2276
2349
|
labels.push(...idOrName(value3.channel));
|
|
2277
2350
|
}
|
|
2278
2351
|
return {
|
|
2279
|
-
isRecord:
|
|
2352
|
+
isRecord: isRecord32,
|
|
2280
2353
|
senders,
|
|
2281
2354
|
labels,
|
|
2282
2355
|
gmailSenderUnknown
|
|
@@ -3764,13 +3837,13 @@ function channelSettingsGroups(channel, config) {
|
|
|
3764
3837
|
const groups = [];
|
|
3765
3838
|
for (const def of channelSettingDefinitions(channel, config)) {
|
|
3766
3839
|
const { tunableDefault: _tunable, ...shown } = def;
|
|
3767
|
-
const
|
|
3840
|
+
const unavailable3 = channelSettingUnavailable(channel, def);
|
|
3768
3841
|
const view = {
|
|
3769
3842
|
...shown,
|
|
3770
3843
|
...effectiveChannelSetting(channel, def),
|
|
3771
3844
|
resettable: channelSettingResettable(def),
|
|
3772
|
-
...
|
|
3773
|
-
unavailable:
|
|
3845
|
+
...unavailable3 && {
|
|
3846
|
+
unavailable: unavailable3
|
|
3774
3847
|
}
|
|
3775
3848
|
};
|
|
3776
3849
|
const group = groups.find((candidate) => candidate.key === def.group);
|
|
@@ -4164,6 +4237,36 @@ function mutationWithoutWorkItems(mutation) {
|
|
|
4164
4237
|
} : {}
|
|
4165
4238
|
};
|
|
4166
4239
|
}
|
|
4240
|
+
function isServerTriggeredBrowserSource(logSource) {
|
|
4241
|
+
return SERVER_TRIGGERED_BROWSER_SOURCES.includes(logSource);
|
|
4242
|
+
}
|
|
4243
|
+
function resolveBrowserFallback(raw) {
|
|
4244
|
+
return BROWSER_FALLBACKS.includes(raw) ? raw : DEFAULT_BROWSER_FALLBACK;
|
|
4245
|
+
}
|
|
4246
|
+
function resolveBrowserProxyCountry(raw) {
|
|
4247
|
+
if (typeof raw !== "string") return void 0;
|
|
4248
|
+
const code = raw.trim().toLowerCase();
|
|
4249
|
+
return PROXY_COUNTRY_CODE.test(code) ? code : void 0;
|
|
4250
|
+
}
|
|
4251
|
+
function resolveBrowserLogOptions(raw) {
|
|
4252
|
+
const logContent = BROWSER_LOG_CONTENT_MODES.includes(raw.logContent) ? raw.logContent : DEFAULT_BROWSER_LOG_CONTENT;
|
|
4253
|
+
const screenshots = BROWSER_SCREENSHOT_POLICIES.includes(raw.screenshots) ? raw.screenshots : DEFAULT_BROWSER_SCREENSHOT_POLICY;
|
|
4254
|
+
return {
|
|
4255
|
+
logContent,
|
|
4256
|
+
screenshots
|
|
4257
|
+
};
|
|
4258
|
+
}
|
|
4259
|
+
function browserProfileNotFoundMessage(name) {
|
|
4260
|
+
return `No browser named '${name}' is attached to this agent. Add it to the agent's \`browsers\` list and push again.`;
|
|
4261
|
+
}
|
|
4262
|
+
function resolveBrowserLimits(pick) {
|
|
4263
|
+
const limits = {};
|
|
4264
|
+
for (const key of BROWSER_LIMIT_KEYS) {
|
|
4265
|
+
const value3 = pick(key);
|
|
4266
|
+
if (typeof value3 === "number" && Number.isInteger(value3) && value3 > 0) limits[key] = value3;
|
|
4267
|
+
}
|
|
4268
|
+
return limits;
|
|
4269
|
+
}
|
|
4167
4270
|
function utf8WidthAt(value3, index) {
|
|
4168
4271
|
const code = value3.charCodeAt(index);
|
|
4169
4272
|
if (code < 128) return {
|
|
@@ -4319,6 +4422,338 @@ function isDesktopFileCommandName(value3) {
|
|
|
4319
4422
|
function isDesktopFileSessionId(value3) {
|
|
4320
4423
|
return typeof value3 === "string" && /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value3);
|
|
4321
4424
|
}
|
|
4425
|
+
function browserError(code, message, status) {
|
|
4426
|
+
return Object.assign(new Error(message), {
|
|
4427
|
+
name: BROWSER_ERROR_NAME,
|
|
4428
|
+
code,
|
|
4429
|
+
...typeof status === "number" ? {
|
|
4430
|
+
status
|
|
4431
|
+
} : {}
|
|
4432
|
+
});
|
|
4433
|
+
}
|
|
4434
|
+
function isRecord(value3) {
|
|
4435
|
+
return typeof value3 === "object" && value3 !== null && !Array.isArray(value3);
|
|
4436
|
+
}
|
|
4437
|
+
function optionalString(raw, field) {
|
|
4438
|
+
const value3 = raw[field];
|
|
4439
|
+
if (value3 === void 0 || value3 === null || value3 === "") return void 0;
|
|
4440
|
+
if (typeof value3 !== "string") throw new TypeError(`${field} must be a string`);
|
|
4441
|
+
if (value3.startsWith("-")) throw new TypeError(`${field} may not start with '-'`);
|
|
4442
|
+
if (value3.includes("\0")) throw new TypeError(`${field} may not contain NUL`);
|
|
4443
|
+
return value3;
|
|
4444
|
+
}
|
|
4445
|
+
function readUrl(value3) {
|
|
4446
|
+
if (typeof value3 !== "string" || !/^https?:\/\//i.test(value3.trim()) || value3.includes("\0")) {
|
|
4447
|
+
throw new TypeError("url must be an absolute http(s) URL");
|
|
4448
|
+
}
|
|
4449
|
+
return value3.trim();
|
|
4450
|
+
}
|
|
4451
|
+
function readFormat(value3) {
|
|
4452
|
+
if (value3 === void 0 || value3 === null || value3 === "") return "text";
|
|
4453
|
+
if (!BROWSER_READ_FORMATS.includes(value3)) {
|
|
4454
|
+
throw new TypeError(`format must be one of: ${BROWSER_READ_FORMATS.join(", ")}`);
|
|
4455
|
+
}
|
|
4456
|
+
return value3;
|
|
4457
|
+
}
|
|
4458
|
+
function readTimeout(value3) {
|
|
4459
|
+
if (value3 === void 0 || value3 === null) return BROWSER_READ_DEFAULT_TIMEOUT_MS;
|
|
4460
|
+
if (typeof value3 !== "number" || !Number.isFinite(value3)) throw new TypeError("timeoutMs must be a number");
|
|
4461
|
+
return Math.min(BROWSER_READ_MAX_TIMEOUT_MS, Math.max(BROWSER_READ_MIN_TIMEOUT_MS, Math.round(value3)));
|
|
4462
|
+
}
|
|
4463
|
+
function parseBrowserReadPayload(raw) {
|
|
4464
|
+
try {
|
|
4465
|
+
const input = isRecord(raw) ? raw : {};
|
|
4466
|
+
const waitFor = optionalString(input, "waitFor");
|
|
4467
|
+
return {
|
|
4468
|
+
payload: {
|
|
4469
|
+
url: readUrl(input.url),
|
|
4470
|
+
...waitFor ? {
|
|
4471
|
+
waitFor
|
|
4472
|
+
} : {},
|
|
4473
|
+
selector: optionalString(input, "selector") ?? BROWSER_READ_DEFAULT_SELECTOR,
|
|
4474
|
+
format: readFormat(input.format),
|
|
4475
|
+
timeoutMs: readTimeout(input.timeoutMs)
|
|
4476
|
+
}
|
|
4477
|
+
};
|
|
4478
|
+
} catch (error) {
|
|
4479
|
+
return {
|
|
4480
|
+
error: {
|
|
4481
|
+
code: "invalid_argument",
|
|
4482
|
+
message: `read: ${error.message}`
|
|
4483
|
+
}
|
|
4484
|
+
};
|
|
4485
|
+
}
|
|
4486
|
+
}
|
|
4487
|
+
function clampBrowserReadContent(content, maxChars = BROWSER_READ_MAX_CONTENT_CHARS) {
|
|
4488
|
+
if (content.length <= maxChars) return {
|
|
4489
|
+
content,
|
|
4490
|
+
truncated: false
|
|
4491
|
+
};
|
|
4492
|
+
return {
|
|
4493
|
+
content: content.slice(0, maxChars),
|
|
4494
|
+
truncated: true
|
|
4495
|
+
};
|
|
4496
|
+
}
|
|
4497
|
+
function joinBrowserReadMatches(parts, maxChars = BROWSER_READ_MAX_CONTENT_CHARS) {
|
|
4498
|
+
const kept = parts.map((part) => part.trim()).filter((part) => part.length > 0);
|
|
4499
|
+
return clampBrowserReadContent(kept.join(BROWSER_READ_MATCH_SEPARATOR), maxChars);
|
|
4500
|
+
}
|
|
4501
|
+
function isBrowserReadHttpFailure(message) {
|
|
4502
|
+
return HTTP_STATUS_FAILURE.test(message ?? "");
|
|
4503
|
+
}
|
|
4504
|
+
function browserReadHttpErrorMessage(url, status) {
|
|
4505
|
+
const answered = status === void 0 ? "an HTTP error status" : `HTTP ${status}`;
|
|
4506
|
+
return `read: ${url} answered ${answered} with no page to read`;
|
|
4507
|
+
}
|
|
4508
|
+
function urlOf(value3) {
|
|
4509
|
+
if (!value3) return void 0;
|
|
4510
|
+
try {
|
|
4511
|
+
return new URL(value3);
|
|
4512
|
+
} catch {
|
|
4513
|
+
return void 0;
|
|
4514
|
+
}
|
|
4515
|
+
}
|
|
4516
|
+
function answeredDocuments(requests) {
|
|
4517
|
+
if (!Array.isArray(requests)) return [];
|
|
4518
|
+
const answered = [];
|
|
4519
|
+
for (const entry of requests) {
|
|
4520
|
+
if (!isRecord(entry) || typeof entry.status !== "number" || typeof entry.url !== "string") continue;
|
|
4521
|
+
const url = urlOf(entry.url);
|
|
4522
|
+
if (url) answered.unshift({
|
|
4523
|
+
url,
|
|
4524
|
+
status: entry.status
|
|
4525
|
+
});
|
|
4526
|
+
}
|
|
4527
|
+
return answered;
|
|
4528
|
+
}
|
|
4529
|
+
function documentStatusOf(requests, requestedUrl, finalUrl) {
|
|
4530
|
+
const latestFirst = answeredDocuments(requests);
|
|
4531
|
+
const final = urlOf(finalUrl);
|
|
4532
|
+
const requested = urlOf(requestedUrl);
|
|
4533
|
+
const match = latestFirst.find((doc) => doc.url.href === final?.href) ?? latestFirst.find((doc) => doc.url.href === requested?.href) ?? latestFirst.find((doc) => doc.url.host === final?.host);
|
|
4534
|
+
return match?.status;
|
|
4535
|
+
}
|
|
4536
|
+
function isLoginUrl(url) {
|
|
4537
|
+
const segments = url.pathname.toLowerCase().split("/");
|
|
4538
|
+
return segments.some((segment) => LOGIN_PATH_SEGMENTS.has(segment)) || LOGIN_HOST_LABELS.has(url.hostname.split(".")[0]);
|
|
4539
|
+
}
|
|
4540
|
+
function isLoginRedirect(requestedUrl, finalUrl) {
|
|
4541
|
+
const requested = urlOf(requestedUrl);
|
|
4542
|
+
const final = urlOf(finalUrl);
|
|
4543
|
+
return Boolean(requested && final && !isLoginUrl(requested) && isLoginUrl(final));
|
|
4544
|
+
}
|
|
4545
|
+
function browserReadLoginBlock() {
|
|
4546
|
+
return {
|
|
4547
|
+
blocked: true,
|
|
4548
|
+
blocker: BROWSER_READ_LOGIN_BLOCKER,
|
|
4549
|
+
blockerKind: "login",
|
|
4550
|
+
blockerGuidance: "This URL redirected to a sign-in page, so the content is the sign-in form, not the page you asked for. The page needs a signed-in session: read it on the desktop browser where the user is signed in, or use a public URL."
|
|
4551
|
+
};
|
|
4552
|
+
}
|
|
4553
|
+
function utf8Bytes(value3) {
|
|
4554
|
+
let bytes = 0;
|
|
4555
|
+
for (let i = 0; i < value3.length; ) {
|
|
4556
|
+
const code = value3.charCodeAt(i);
|
|
4557
|
+
if (code < 128) {
|
|
4558
|
+
bytes += 1;
|
|
4559
|
+
i += 1;
|
|
4560
|
+
} else if (code < 2048) {
|
|
4561
|
+
bytes += 2;
|
|
4562
|
+
i += 1;
|
|
4563
|
+
} else if (code >= 55296 && code <= 56319) {
|
|
4564
|
+
const next = value3.charCodeAt(i + 1);
|
|
4565
|
+
if (next >= 56320 && next <= 57343) {
|
|
4566
|
+
bytes += 4;
|
|
4567
|
+
i += 2;
|
|
4568
|
+
} else {
|
|
4569
|
+
bytes += 3;
|
|
4570
|
+
i += 1;
|
|
4571
|
+
}
|
|
4572
|
+
} else {
|
|
4573
|
+
bytes += 3;
|
|
4574
|
+
i += 1;
|
|
4575
|
+
}
|
|
4576
|
+
}
|
|
4577
|
+
return bytes;
|
|
4578
|
+
}
|
|
4579
|
+
function isPlainFieldKey(key) {
|
|
4580
|
+
if (!LOG_FIELD_KEY_PATTERN.test(key)) return false;
|
|
4581
|
+
if (key === LOG_FIELDS_CLAMPED_KEY) return false;
|
|
4582
|
+
return !LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS.some((pattern) => pattern.test(key));
|
|
4583
|
+
}
|
|
4584
|
+
function describeAgentLogFieldsViolation(value3) {
|
|
4585
|
+
if (typeof value3 !== "object" || value3 === null || Array.isArray(value3)) {
|
|
4586
|
+
return "fields must be an object";
|
|
4587
|
+
}
|
|
4588
|
+
const entries = Object.entries(value3);
|
|
4589
|
+
let userKeys = 0;
|
|
4590
|
+
for (const [key, entry] of entries) {
|
|
4591
|
+
if (key === LOG_FIELDS_CLAMPED_KEY) {
|
|
4592
|
+
if (entry !== true) return `fields.${key} must be true`;
|
|
4593
|
+
continue;
|
|
4594
|
+
}
|
|
4595
|
+
userKeys += 1;
|
|
4596
|
+
if (key.endsWith(LOG_FIELD_ARRAY_COUNT_SUFFIX)) {
|
|
4597
|
+
const base = key.slice(0, -LOG_FIELD_ARRAY_COUNT_SUFFIX.length);
|
|
4598
|
+
if (!isPlainFieldKey(base)) return `fields key \`${key}\` is not a legal field key`;
|
|
4599
|
+
if (typeof entry !== "number" || !Number.isFinite(entry)) {
|
|
4600
|
+
return `fields.${key} must be a finite number`;
|
|
4601
|
+
}
|
|
4602
|
+
continue;
|
|
4603
|
+
}
|
|
4604
|
+
if (!isPlainFieldKey(key)) return `fields key \`${key}\` is not a legal field key`;
|
|
4605
|
+
if (typeof entry === "string") {
|
|
4606
|
+
if (utf8Bytes(entry) > LOG_FIELD_MAX_VALUE_BYTES) {
|
|
4607
|
+
return `fields.${key} exceeds ${LOG_FIELD_MAX_VALUE_BYTES} bytes`;
|
|
4608
|
+
}
|
|
4609
|
+
continue;
|
|
4610
|
+
}
|
|
4611
|
+
if (typeof entry === "boolean") continue;
|
|
4612
|
+
if (typeof entry === "number") {
|
|
4613
|
+
if (!Number.isFinite(entry)) return `fields.${key} must be a finite number`;
|
|
4614
|
+
continue;
|
|
4615
|
+
}
|
|
4616
|
+
return `fields.${key} must be a string, number or boolean`;
|
|
4617
|
+
}
|
|
4618
|
+
if (userKeys > LOG_FIELDS_MAX_KEYS) {
|
|
4619
|
+
return `fields has ${userKeys} keys, over the cap of ${LOG_FIELDS_MAX_KEYS}`;
|
|
4620
|
+
}
|
|
4621
|
+
if (utf8Bytes(JSON.stringify(value3)) > LOG_FIELDS_MAX_BYTES) {
|
|
4622
|
+
return `fields exceeds ${LOG_FIELDS_MAX_BYTES} bytes`;
|
|
4623
|
+
}
|
|
4624
|
+
return void 0;
|
|
4625
|
+
}
|
|
4626
|
+
function isAgentLogFields(value3) {
|
|
4627
|
+
return describeAgentLogFieldsViolation(value3) === void 0;
|
|
4628
|
+
}
|
|
4629
|
+
function describeBaseViolation(event) {
|
|
4630
|
+
if (!BROWSER_LOG_EVENT_KINDS.includes(event.event)) return "event is not a known kind";
|
|
4631
|
+
if (typeof event.sessionId !== "string" || event.sessionId.length === 0) return "sessionId must be a string";
|
|
4632
|
+
if (event.sessionId.length > BROWSER_LOG_ID_MAX_CHARS) return "sessionId is too long";
|
|
4633
|
+
if (!BROWSER_LOG_ENGINES.includes(event.engine)) return "engine is not a known engine";
|
|
4634
|
+
if (typeof event.at !== "string" || Number.isNaN(Date.parse(event.at))) return "at must be an ISO timestamp";
|
|
4635
|
+
return void 0;
|
|
4636
|
+
}
|
|
4637
|
+
function describeFieldViolation(key, value3, check) {
|
|
4638
|
+
if (!check) return `${key} is not a field of this event`;
|
|
4639
|
+
if (!check(value3)) return `${key} has the wrong type`;
|
|
4640
|
+
if (typeof value3 === "string" && value3.length > BROWSER_LOG_TEXT_MAX_CHARS) return `${key} is too long`;
|
|
4641
|
+
return void 0;
|
|
4642
|
+
}
|
|
4643
|
+
function describeBrowserLogEventViolation(value3) {
|
|
4644
|
+
if (!isPlainObject2(value3)) return "event must be an object";
|
|
4645
|
+
const event = value3;
|
|
4646
|
+
const base = describeBaseViolation(event);
|
|
4647
|
+
if (base) return base;
|
|
4648
|
+
const shape = EVENT_SHAPES[event.event];
|
|
4649
|
+
for (const key of Object.keys(shape.required)) {
|
|
4650
|
+
if (event[key] === void 0) return `${key} is required`;
|
|
4651
|
+
}
|
|
4652
|
+
for (const [key, entry] of Object.entries(event)) {
|
|
4653
|
+
if (BASE_KEYS.has(key) || entry === void 0) continue;
|
|
4654
|
+
const violation = describeFieldViolation(key, entry, shape.required[key] ?? shape.optional[key]);
|
|
4655
|
+
if (violation) return violation;
|
|
4656
|
+
}
|
|
4657
|
+
return void 0;
|
|
4658
|
+
}
|
|
4659
|
+
function isBrowserLogEvent(value3) {
|
|
4660
|
+
return describeBrowserLogEventViolation(value3) === void 0;
|
|
4661
|
+
}
|
|
4662
|
+
function describeBrowserLogContextViolation(value3) {
|
|
4663
|
+
if (value3 === void 0) return void 0;
|
|
4664
|
+
if (!isPlainObject2(value3)) return "logContext must be an object";
|
|
4665
|
+
for (const [key, entry] of Object.entries(value3)) {
|
|
4666
|
+
if (!BROWSER_LOG_CONTEXT_KEYS.includes(key)) return `logContext.${key} is not allowed`;
|
|
4667
|
+
if (entry === void 0) continue;
|
|
4668
|
+
if (typeof entry !== "string") return `logContext.${key} must be a string`;
|
|
4669
|
+
if (entry.length > BROWSER_LOG_ID_MAX_CHARS) return `logContext.${key} is too long`;
|
|
4670
|
+
if (key === "environment" && !AGENT_LOG_ENVIRONMENTS.includes(entry)) {
|
|
4671
|
+
return "logContext.environment is not a known environment";
|
|
4672
|
+
}
|
|
4673
|
+
}
|
|
4674
|
+
return void 0;
|
|
4675
|
+
}
|
|
4676
|
+
function browserWorkerSessionId(ref) {
|
|
4677
|
+
return [
|
|
4678
|
+
ref.agentId,
|
|
4679
|
+
ref.userId,
|
|
4680
|
+
ref.sessionKey
|
|
4681
|
+
].join(BROWSER_WORKER_SESSION_ID_SEPARATOR);
|
|
4682
|
+
}
|
|
4683
|
+
function browserLogContextOfWorkerContext(context) {
|
|
4684
|
+
const out = {};
|
|
4685
|
+
if (context?.runId) out.runId = context.runId;
|
|
4686
|
+
if (context?.primitiveId) out.primitiveId = context.primitiveId;
|
|
4687
|
+
if (context?.primitiveName) out.primitiveName = context.primitiveName;
|
|
4688
|
+
if (context?.channel) out.channel = context.channel;
|
|
4689
|
+
return out;
|
|
4690
|
+
}
|
|
4691
|
+
function browserLogEventOfWorkerEvent(event, mapping = {}) {
|
|
4692
|
+
const base = {
|
|
4693
|
+
sessionId: mapping.sessionId ?? event.sessionId,
|
|
4694
|
+
engine: "agent-browser",
|
|
4695
|
+
at: event.at
|
|
4696
|
+
};
|
|
4697
|
+
switch (event.event) {
|
|
4698
|
+
case "session.opened":
|
|
4699
|
+
return {
|
|
4700
|
+
...base,
|
|
4701
|
+
event: "session.opened",
|
|
4702
|
+
reason: mapping.reason ?? "stepwise-cloud",
|
|
4703
|
+
limits: {
|
|
4704
|
+
...event.limits
|
|
4705
|
+
}
|
|
4706
|
+
};
|
|
4707
|
+
case "session.closed":
|
|
4708
|
+
return {
|
|
4709
|
+
...base,
|
|
4710
|
+
event: "session.closed",
|
|
4711
|
+
reason: event.reason,
|
|
4712
|
+
durationMs: event.durationMs,
|
|
4713
|
+
pagesVisited: event.pagesVisited,
|
|
4714
|
+
bytes: event.bytes
|
|
4715
|
+
};
|
|
4716
|
+
case "command":
|
|
4717
|
+
return {
|
|
4718
|
+
...base,
|
|
4719
|
+
event: "command",
|
|
4720
|
+
name: event.name,
|
|
4721
|
+
ok: event.ok,
|
|
4722
|
+
durationMs: event.durationMs,
|
|
4723
|
+
resultBytes: event.resultBytes,
|
|
4724
|
+
urlAfter: event.urlAfter,
|
|
4725
|
+
title: event.title,
|
|
4726
|
+
errorCode: event.errorCode,
|
|
4727
|
+
errorMessage: event.errorMessage
|
|
4728
|
+
};
|
|
4729
|
+
case "navigation":
|
|
4730
|
+
if (!event.ok) return void 0;
|
|
4731
|
+
return {
|
|
4732
|
+
...base,
|
|
4733
|
+
event: "navigation",
|
|
4734
|
+
url: event.url,
|
|
4735
|
+
finalUrl: event.finalUrl
|
|
4736
|
+
};
|
|
4737
|
+
case "blocked":
|
|
4738
|
+
return {
|
|
4739
|
+
...base,
|
|
4740
|
+
event: "blocked",
|
|
4741
|
+
kind: event.kind,
|
|
4742
|
+
rule: event.rule,
|
|
4743
|
+
target: event.target,
|
|
4744
|
+
command: event.command,
|
|
4745
|
+
reason: event.detail ? event.detail.slice(0, BROWSER_WORKER_BLOCK_REASON_MAX_CHARS) : void 0
|
|
4746
|
+
};
|
|
4747
|
+
case "wall":
|
|
4748
|
+
return {
|
|
4749
|
+
...base,
|
|
4750
|
+
event: "wall",
|
|
4751
|
+
kind: event.kind,
|
|
4752
|
+
url: event.url,
|
|
4753
|
+
nextAction: event.nextAction
|
|
4754
|
+
};
|
|
4755
|
+
}
|
|
4756
|
+
}
|
|
4322
4757
|
function workflowRetryMaxAttemptsMessage(got) {
|
|
4323
4758
|
const tail = got === void 0 ? "" : ` (got ${JSON.stringify(got)})`;
|
|
4324
4759
|
return `\`retry.maxAttempts\` must be an integer ${WORKFLOW_RETRY_MIN_ATTEMPTS}..${WORKFLOW_RETRY_MAX_ATTEMPTS}${tail}`;
|
|
@@ -4532,82 +4967,6 @@ function buildDefaultPersona(agentName) {
|
|
|
4532
4967
|
function buildPersonalSpaceStartingPersona(agentName) {
|
|
4533
4968
|
return PERSONAL_SPACE_STARTING_PERSONA.replace(new RegExp(AGENT_NAME_TOKEN.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), () => agentName || "Your assistant");
|
|
4534
4969
|
}
|
|
4535
|
-
function utf8Bytes(value3) {
|
|
4536
|
-
let bytes = 0;
|
|
4537
|
-
for (let i = 0; i < value3.length; ) {
|
|
4538
|
-
const code = value3.charCodeAt(i);
|
|
4539
|
-
if (code < 128) {
|
|
4540
|
-
bytes += 1;
|
|
4541
|
-
i += 1;
|
|
4542
|
-
} else if (code < 2048) {
|
|
4543
|
-
bytes += 2;
|
|
4544
|
-
i += 1;
|
|
4545
|
-
} else if (code >= 55296 && code <= 56319) {
|
|
4546
|
-
const next = value3.charCodeAt(i + 1);
|
|
4547
|
-
if (next >= 56320 && next <= 57343) {
|
|
4548
|
-
bytes += 4;
|
|
4549
|
-
i += 2;
|
|
4550
|
-
} else {
|
|
4551
|
-
bytes += 3;
|
|
4552
|
-
i += 1;
|
|
4553
|
-
}
|
|
4554
|
-
} else {
|
|
4555
|
-
bytes += 3;
|
|
4556
|
-
i += 1;
|
|
4557
|
-
}
|
|
4558
|
-
}
|
|
4559
|
-
return bytes;
|
|
4560
|
-
}
|
|
4561
|
-
function isPlainFieldKey(key) {
|
|
4562
|
-
if (!LOG_FIELD_KEY_PATTERN.test(key)) return false;
|
|
4563
|
-
if (key === LOG_FIELDS_CLAMPED_KEY) return false;
|
|
4564
|
-
return !LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS.some((pattern) => pattern.test(key));
|
|
4565
|
-
}
|
|
4566
|
-
function describeAgentLogFieldsViolation(value3) {
|
|
4567
|
-
if (typeof value3 !== "object" || value3 === null || Array.isArray(value3)) {
|
|
4568
|
-
return "fields must be an object";
|
|
4569
|
-
}
|
|
4570
|
-
const entries = Object.entries(value3);
|
|
4571
|
-
let userKeys = 0;
|
|
4572
|
-
for (const [key, entry] of entries) {
|
|
4573
|
-
if (key === LOG_FIELDS_CLAMPED_KEY) {
|
|
4574
|
-
if (entry !== true) return `fields.${key} must be true`;
|
|
4575
|
-
continue;
|
|
4576
|
-
}
|
|
4577
|
-
userKeys += 1;
|
|
4578
|
-
if (key.endsWith(LOG_FIELD_ARRAY_COUNT_SUFFIX)) {
|
|
4579
|
-
const base = key.slice(0, -LOG_FIELD_ARRAY_COUNT_SUFFIX.length);
|
|
4580
|
-
if (!isPlainFieldKey(base)) return `fields key \`${key}\` is not a legal field key`;
|
|
4581
|
-
if (typeof entry !== "number" || !Number.isFinite(entry)) {
|
|
4582
|
-
return `fields.${key} must be a finite number`;
|
|
4583
|
-
}
|
|
4584
|
-
continue;
|
|
4585
|
-
}
|
|
4586
|
-
if (!isPlainFieldKey(key)) return `fields key \`${key}\` is not a legal field key`;
|
|
4587
|
-
if (typeof entry === "string") {
|
|
4588
|
-
if (utf8Bytes(entry) > LOG_FIELD_MAX_VALUE_BYTES) {
|
|
4589
|
-
return `fields.${key} exceeds ${LOG_FIELD_MAX_VALUE_BYTES} bytes`;
|
|
4590
|
-
}
|
|
4591
|
-
continue;
|
|
4592
|
-
}
|
|
4593
|
-
if (typeof entry === "boolean") continue;
|
|
4594
|
-
if (typeof entry === "number") {
|
|
4595
|
-
if (!Number.isFinite(entry)) return `fields.${key} must be a finite number`;
|
|
4596
|
-
continue;
|
|
4597
|
-
}
|
|
4598
|
-
return `fields.${key} must be a string, number or boolean`;
|
|
4599
|
-
}
|
|
4600
|
-
if (userKeys > LOG_FIELDS_MAX_KEYS) {
|
|
4601
|
-
return `fields has ${userKeys} keys, over the cap of ${LOG_FIELDS_MAX_KEYS}`;
|
|
4602
|
-
}
|
|
4603
|
-
if (utf8Bytes(JSON.stringify(value3)) > LOG_FIELDS_MAX_BYTES) {
|
|
4604
|
-
return `fields exceeds ${LOG_FIELDS_MAX_BYTES} bytes`;
|
|
4605
|
-
}
|
|
4606
|
-
return void 0;
|
|
4607
|
-
}
|
|
4608
|
-
function isAgentLogFields(value3) {
|
|
4609
|
-
return describeAgentLogFieldsViolation(value3) === void 0;
|
|
4610
|
-
}
|
|
4611
4970
|
function maxDrainsForTier(tier) {
|
|
4612
4971
|
return tier === "enterprise" ? LOG_DRAIN_MAX_PER_ORG_ENTERPRISE : LOG_DRAIN_MAX_PER_ORG;
|
|
4613
4972
|
}
|
|
@@ -5103,11 +5462,11 @@ function parseLogTimeBound(raw, now = /* @__PURE__ */ new Date()) {
|
|
|
5103
5462
|
const at = Date.parse(value3);
|
|
5104
5463
|
return Number.isNaN(at) ? null : new Date(at);
|
|
5105
5464
|
}
|
|
5106
|
-
function
|
|
5465
|
+
function isRecord2(value3) {
|
|
5107
5466
|
return typeof value3 === "object" && value3 !== null;
|
|
5108
5467
|
}
|
|
5109
5468
|
function isCoreDrainingErrorResponse(value3) {
|
|
5110
|
-
if (!
|
|
5469
|
+
if (!isRecord2(value3) || !isRecord2(value3.error)) return false;
|
|
5111
5470
|
return value3.error.code === CORE_DRAINING_CODE && typeof value3.error.message === "string" && value3.error.retryable === true;
|
|
5112
5471
|
}
|
|
5113
5472
|
function coreDrainingRetryDelayMs(retryAfter, nowMs = Date.now()) {
|
|
@@ -6304,11 +6663,11 @@ function recentRefs(lists) {
|
|
|
6304
6663
|
function confidenceOf(n2) {
|
|
6305
6664
|
return n2 < EVIDENCE_LOW_CONFIDENCE_N ? "low" : "ok";
|
|
6306
6665
|
}
|
|
6307
|
-
function rateOf(
|
|
6666
|
+
function rateOf(count2, conversations) {
|
|
6308
6667
|
return {
|
|
6309
|
-
count,
|
|
6310
|
-
rate: conversations > 0 ?
|
|
6311
|
-
confidence: confidenceOf(
|
|
6668
|
+
count: count2,
|
|
6669
|
+
rate: conversations > 0 ? count2 / conversations : null,
|
|
6670
|
+
confidence: confidenceOf(count2)
|
|
6312
6671
|
};
|
|
6313
6672
|
}
|
|
6314
6673
|
function evidenceDays(from, to) {
|
|
@@ -7130,7 +7489,7 @@ function maskMcpServerHeaders(server) {
|
|
|
7130
7489
|
headersSet: headerNames.length > 0
|
|
7131
7490
|
};
|
|
7132
7491
|
}
|
|
7133
|
-
var __defProp4, __name4, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, DECISION_PROVIDERS, DECISION_QUESTION_TYPES, DECISION_NAME_PATTERN, DECISION_LIMITS, DECISION_ERROR_CODES, MAX_NAME_CHARS, InstructionsSchema, NameSchema, OddsQuestionSchema, ChoiceQuestionSchema, ScoreQuestionSchema, DecisionQuestionSchema, DecisionOptionsSchema, DecisionQuestionsSchema, DecisionDefinitionSchema, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
|
|
7492
|
+
var __defProp4, __name4, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, DECISION_PROVIDERS, DECISION_QUESTION_TYPES, DECISION_NAME_PATTERN, DECISION_LIMITS, DECISION_ERROR_CODES, MAX_NAME_CHARS, InstructionsSchema, NameSchema, OddsQuestionSchema, ChoiceQuestionSchema, ScoreQuestionSchema, DecisionQuestionSchema, DecisionOptionsSchema, DecisionQuestionsSchema, DecisionDefinitionSchema, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, MESSAGING_CHANNELS, VOICE_CHANNELS, TURN_CATEGORIES, AGENT_TOOL_CATEGORIES, count, AnthropicSseUsageReader, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, SERVER_TRIGGERED_BROWSER_SOURCES, BROWSER_FALLBACKS, DEFAULT_BROWSER_FALLBACK, PROXY_COUNTRY_CODE, BROWSER_LOG_CONTENT_MODES, DEFAULT_BROWSER_LOG_CONTENT, BROWSER_SCREENSHOT_POLICIES, DEFAULT_BROWSER_SCREENSHOT_POLICY, BROWSER_PROFILE_NAME_PATTERN, BROWSER_LIMIT_KEYS, BROWSER_LIMIT_MAX, BROWSER_EXECUTE_METHOD, BROWSER_GLOBAL_METHODS, BROWSER_EXECUTE_DEFAULT_TIMEOUT_MS, BROWSER_EXECUTE_MAX_TIMEOUT_MS, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, BROWSER_READ_FORMATS, BROWSER_READ_DEFAULT_TIMEOUT_MS, BROWSER_READ_MIN_TIMEOUT_MS, BROWSER_READ_MAX_TIMEOUT_MS, BROWSER_READ_MAX_CONTENT_CHARS, BROWSER_READ_DEFAULT_SELECTOR, BROWSER_READ_MATCH_SEPARATOR, BROWSER_READ_LOGIN_BLOCKER, BROWSER_ERROR_NAME, HTTP_STATUS_FAILURE, LOGIN_PATH_SEGMENTS, LOGIN_HOST_LABELS, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, BROWSER_LOG_EVENT_KINDS, BROWSER_LOG_ENGINES, BROWSER_SESSION_OPEN_REASONS, BROWSER_BLOCK_KINDS, BROWSER_WALL_KINDS, BROWSER_WALL_NEXT_ACTIONS, BROWSER_CONFIRM_DECISIONS, BROWSER_SESSION_CLOSE_REASONS, BROWSER_LOG_CONTEXT_KEYS, BROWSER_LOG_ID_MAX_CHARS, BROWSER_LOG_TEXT_MAX_CHARS, isString, isBoolean, isCount, isPlainObject2, oneOf, isLimits, EVENT_SHAPES, BASE_KEYS, BROWSER_WORKER_SESSION_ID_SEPARATOR, BROWSER_WORKER_BLOCK_REASON_MAX_CHARS, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
|
|
7134
7493
|
var init_dist = __esm({
|
|
7135
7494
|
"../shared-types/dist/index.mjs"() {
|
|
7136
7495
|
"use strict";
|
|
@@ -7219,6 +7578,7 @@ var init_dist = __esm({
|
|
|
7219
7578
|
minLevels: 2,
|
|
7220
7579
|
maxLevels: 10,
|
|
7221
7580
|
maxInstructionChars: 4e3,
|
|
7581
|
+
maxQuestionsChars: 1e5,
|
|
7222
7582
|
maxStateChars: 12e4,
|
|
7223
7583
|
maxImages: 4,
|
|
7224
7584
|
maxImageBytes: 5 * 1024 * 1024,
|
|
@@ -7293,7 +7653,14 @@ var init_dist = __esm({
|
|
|
7293
7653
|
"none"
|
|
7294
7654
|
]).optional()
|
|
7295
7655
|
});
|
|
7296
|
-
DecisionQuestionsSchema = z.record(NameSchema, DecisionQuestionSchema).refine((questions) => Object.keys(questions).length >= 1 && Object.keys(questions).length <= DECISION_LIMITS.maxQuestions, `a decision needs between 1 and ${DECISION_LIMITS.maxQuestions} questions`)
|
|
7656
|
+
DecisionQuestionsSchema = z.record(NameSchema, DecisionQuestionSchema).refine((questions) => Object.keys(questions).length >= 1 && Object.keys(questions).length <= DECISION_LIMITS.maxQuestions, `a decision needs between 1 and ${DECISION_LIMITS.maxQuestions} questions`).superRefine((questions, ctx) => {
|
|
7657
|
+
const chars = JSON.stringify(questions).length;
|
|
7658
|
+
if (chars <= DECISION_LIMITS.maxQuestionsChars) return;
|
|
7659
|
+
ctx.addIssue({
|
|
7660
|
+
code: z.ZodIssueCode.custom,
|
|
7661
|
+
message: `the questions take ${chars} characters as JSON, more than the ${DECISION_LIMITS.maxQuestionsChars} characters a decision may hold`
|
|
7662
|
+
});
|
|
7663
|
+
});
|
|
7297
7664
|
DecisionDefinitionSchema = DecisionOptionsSchema.extend({
|
|
7298
7665
|
name: z.string().regex(DECISION_NAME_PATTERN, "a decision name is 1 to 64 letters, digits, underscores or hyphens"),
|
|
7299
7666
|
description: z.string().max(DECISION_LIMITS.maxInstructionChars).optional(),
|
|
@@ -7334,6 +7701,85 @@ var init_dist = __esm({
|
|
|
7334
7701
|
__name4(isPlatformInvocationCaller, "isPlatformInvocationCaller");
|
|
7335
7702
|
__name(supervisionSubjectId, "supervisionSubjectId");
|
|
7336
7703
|
__name4(supervisionSubjectId, "supervisionSubjectId");
|
|
7704
|
+
MESSAGING_CHANNELS = new Set(CHANNEL_CONVERSATION_CHANNELS);
|
|
7705
|
+
VOICE_CHANNELS = /* @__PURE__ */ new Set([
|
|
7706
|
+
"phone",
|
|
7707
|
+
"meeting",
|
|
7708
|
+
"voice"
|
|
7709
|
+
]);
|
|
7710
|
+
TURN_CATEGORIES = /* @__PURE__ */ new Set([
|
|
7711
|
+
"llm:inference",
|
|
7712
|
+
"llm:chat-modes",
|
|
7713
|
+
"llm:delegation",
|
|
7714
|
+
"decision:ask"
|
|
7715
|
+
]);
|
|
7716
|
+
AGENT_TOOL_CATEGORIES = /* @__PURE__ */ new Set([
|
|
7717
|
+
"llm:media:describe",
|
|
7718
|
+
"tool:image-generate",
|
|
7719
|
+
"tool:image-edit"
|
|
7720
|
+
]);
|
|
7721
|
+
__name(isModelCallCategory, "isModelCallCategory");
|
|
7722
|
+
__name4(isModelCallCategory, "isModelCallCategory");
|
|
7723
|
+
__name(deriveUsageSurface, "deriveUsageSurface");
|
|
7724
|
+
__name4(deriveUsageSurface, "deriveUsageSurface");
|
|
7725
|
+
count = /* @__PURE__ */ __name4((v) => typeof v === "number" && Number.isFinite(v) && v >= 0 ? Math.floor(v) : void 0, "count");
|
|
7726
|
+
__name(fromRaw, "fromRaw");
|
|
7727
|
+
__name4(fromRaw, "fromRaw");
|
|
7728
|
+
__name(anthropicMessageUsage, "anthropicMessageUsage");
|
|
7729
|
+
__name4(anthropicMessageUsage, "anthropicMessageUsage");
|
|
7730
|
+
AnthropicSseUsageReader = class {
|
|
7731
|
+
static {
|
|
7732
|
+
__name(this, "AnthropicSseUsageReader");
|
|
7733
|
+
}
|
|
7734
|
+
static {
|
|
7735
|
+
__name4(this, "AnthropicSseUsageReader");
|
|
7736
|
+
}
|
|
7737
|
+
pending = "";
|
|
7738
|
+
raw;
|
|
7739
|
+
id;
|
|
7740
|
+
model;
|
|
7741
|
+
push(chunk) {
|
|
7742
|
+
const text2 = this.pending + chunk;
|
|
7743
|
+
const lines = text2.split("\n");
|
|
7744
|
+
this.pending = lines.pop() ?? "";
|
|
7745
|
+
for (const line of lines) this.line(line);
|
|
7746
|
+
}
|
|
7747
|
+
result() {
|
|
7748
|
+
if (this.pending) {
|
|
7749
|
+
this.line(this.pending);
|
|
7750
|
+
this.pending = "";
|
|
7751
|
+
}
|
|
7752
|
+
return this.raw ? fromRaw(this.raw, this.id, this.model) : void 0;
|
|
7753
|
+
}
|
|
7754
|
+
line(line) {
|
|
7755
|
+
const trimmed = line.trim();
|
|
7756
|
+
if (!trimmed.startsWith("data:")) return;
|
|
7757
|
+
let event;
|
|
7758
|
+
try {
|
|
7759
|
+
event = JSON.parse(trimmed.slice(5).trim());
|
|
7760
|
+
} catch {
|
|
7761
|
+
return;
|
|
7762
|
+
}
|
|
7763
|
+
if (event.type === "message_start" && event.message) {
|
|
7764
|
+
this.id = event.message.id;
|
|
7765
|
+
this.model = event.message.model;
|
|
7766
|
+
this.raw = {
|
|
7767
|
+
...event.message.usage ?? {}
|
|
7768
|
+
};
|
|
7769
|
+
} else if (event.type === "message_delta" && event.usage && typeof event.usage === "object") {
|
|
7770
|
+
const delta = event.usage;
|
|
7771
|
+
const merged = {
|
|
7772
|
+
...this.raw ?? {}
|
|
7773
|
+
};
|
|
7774
|
+
for (const [key, value3] of Object.entries(delta)) {
|
|
7775
|
+
if (value3 !== null && value3 !== void 0) merged[key] = value3;
|
|
7776
|
+
}
|
|
7777
|
+
this.raw = merged;
|
|
7778
|
+
}
|
|
7779
|
+
}
|
|
7780
|
+
};
|
|
7781
|
+
__name(parseAnthropicReplyUsage, "parseAnthropicReplyUsage");
|
|
7782
|
+
__name4(parseAnthropicReplyUsage, "parseAnthropicReplyUsage");
|
|
7337
7783
|
SUPERVISION_OPS = {
|
|
7338
7784
|
"agents.list": "discover",
|
|
7339
7785
|
"agents.get": "discover",
|
|
@@ -9317,6 +9763,10 @@ var init_dist = __esm({
|
|
|
9317
9763
|
name: "close",
|
|
9318
9764
|
description: "Close the session\u2019s browser."
|
|
9319
9765
|
},
|
|
9766
|
+
{
|
|
9767
|
+
name: "read",
|
|
9768
|
+
description: "Read one page in a fresh session that is closed afterwards: open the URL, wait, return its title and content. Args: url, waitFor?(load|networkidle|selector), selector?, format?(text|html|markdown), timeoutMs?."
|
|
9769
|
+
},
|
|
9320
9770
|
// perception
|
|
9321
9771
|
{
|
|
9322
9772
|
name: "snapshot",
|
|
@@ -9490,6 +9940,62 @@ var init_dist = __esm({
|
|
|
9490
9940
|
}
|
|
9491
9941
|
];
|
|
9492
9942
|
BROWSER_COMMAND_NAMES = BROWSER_COMMANDS.map((c) => c.name);
|
|
9943
|
+
SERVER_TRIGGERED_BROWSER_SOURCES = [
|
|
9944
|
+
"job",
|
|
9945
|
+
"webhook",
|
|
9946
|
+
"web-route",
|
|
9947
|
+
"trigger",
|
|
9948
|
+
"workflow-step",
|
|
9949
|
+
"workflow-script"
|
|
9950
|
+
];
|
|
9951
|
+
__name(isServerTriggeredBrowserSource, "isServerTriggeredBrowserSource");
|
|
9952
|
+
__name4(isServerTriggeredBrowserSource, "isServerTriggeredBrowserSource");
|
|
9953
|
+
BROWSER_FALLBACKS = [
|
|
9954
|
+
"browser-use",
|
|
9955
|
+
"none"
|
|
9956
|
+
];
|
|
9957
|
+
DEFAULT_BROWSER_FALLBACK = "browser-use";
|
|
9958
|
+
__name(resolveBrowserFallback, "resolveBrowserFallback");
|
|
9959
|
+
__name4(resolveBrowserFallback, "resolveBrowserFallback");
|
|
9960
|
+
PROXY_COUNTRY_CODE = /^[a-z]{2}$/;
|
|
9961
|
+
__name(resolveBrowserProxyCountry, "resolveBrowserProxyCountry");
|
|
9962
|
+
__name4(resolveBrowserProxyCountry, "resolveBrowserProxyCountry");
|
|
9963
|
+
BROWSER_LOG_CONTENT_MODES = [
|
|
9964
|
+
"summary",
|
|
9965
|
+
"full",
|
|
9966
|
+
"none"
|
|
9967
|
+
];
|
|
9968
|
+
DEFAULT_BROWSER_LOG_CONTENT = "summary";
|
|
9969
|
+
BROWSER_SCREENSHOT_POLICIES = [
|
|
9970
|
+
"always",
|
|
9971
|
+
"onError",
|
|
9972
|
+
"never"
|
|
9973
|
+
];
|
|
9974
|
+
DEFAULT_BROWSER_SCREENSHOT_POLICY = "onError";
|
|
9975
|
+
__name(resolveBrowserLogOptions, "resolveBrowserLogOptions");
|
|
9976
|
+
__name4(resolveBrowserLogOptions, "resolveBrowserLogOptions");
|
|
9977
|
+
BROWSER_PROFILE_NAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$/;
|
|
9978
|
+
__name(browserProfileNotFoundMessage, "browserProfileNotFoundMessage");
|
|
9979
|
+
__name4(browserProfileNotFoundMessage, "browserProfileNotFoundMessage");
|
|
9980
|
+
BROWSER_LIMIT_KEYS = [
|
|
9981
|
+
"maxSessionMinutes",
|
|
9982
|
+
"idleTimeoutSeconds",
|
|
9983
|
+
"maxConcurrentSessions"
|
|
9984
|
+
];
|
|
9985
|
+
BROWSER_LIMIT_MAX = {
|
|
9986
|
+
maxSessionMinutes: 60,
|
|
9987
|
+
idleTimeoutSeconds: 15 * 60,
|
|
9988
|
+
maxConcurrentSessions: 100
|
|
9989
|
+
};
|
|
9990
|
+
__name(resolveBrowserLimits, "resolveBrowserLimits");
|
|
9991
|
+
__name4(resolveBrowserLimits, "resolveBrowserLimits");
|
|
9992
|
+
BROWSER_EXECUTE_METHOD = "execute";
|
|
9993
|
+
BROWSER_GLOBAL_METHODS = [
|
|
9994
|
+
...BROWSER_COMMAND_NAMES,
|
|
9995
|
+
BROWSER_EXECUTE_METHOD
|
|
9996
|
+
];
|
|
9997
|
+
BROWSER_EXECUTE_DEFAULT_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
9998
|
+
BROWSER_EXECUTE_MAX_TIMEOUT_MS = 15 * 60 * 1e3;
|
|
9493
9999
|
LOG_FIELDS_MAX_KEYS = 32;
|
|
9494
10000
|
LOG_FIELD_MAX_VALUE_BYTES = 1024;
|
|
9495
10001
|
LOG_FIELDS_MAX_BYTES = 8192;
|
|
@@ -9555,6 +10061,308 @@ var init_dist = __esm({
|
|
|
9555
10061
|
__name4(isDesktopFileCommandName, "isDesktopFileCommandName");
|
|
9556
10062
|
__name(isDesktopFileSessionId, "isDesktopFileSessionId");
|
|
9557
10063
|
__name4(isDesktopFileSessionId, "isDesktopFileSessionId");
|
|
10064
|
+
BROWSER_READ_FORMATS = [
|
|
10065
|
+
"text",
|
|
10066
|
+
"html",
|
|
10067
|
+
"markdown"
|
|
10068
|
+
];
|
|
10069
|
+
BROWSER_READ_DEFAULT_TIMEOUT_MS = 6e4;
|
|
10070
|
+
BROWSER_READ_MIN_TIMEOUT_MS = 1e3;
|
|
10071
|
+
BROWSER_READ_MAX_TIMEOUT_MS = 1e5;
|
|
10072
|
+
BROWSER_READ_MAX_CONTENT_CHARS = 1e5;
|
|
10073
|
+
BROWSER_READ_DEFAULT_SELECTOR = "body";
|
|
10074
|
+
BROWSER_READ_MATCH_SEPARATOR = "\n\n";
|
|
10075
|
+
BROWSER_READ_LOGIN_BLOCKER = "login_required";
|
|
10076
|
+
BROWSER_ERROR_NAME = "BrowserError";
|
|
10077
|
+
__name(browserError, "browserError");
|
|
10078
|
+
__name4(browserError, "browserError");
|
|
10079
|
+
__name(isRecord, "isRecord");
|
|
10080
|
+
__name4(isRecord, "isRecord");
|
|
10081
|
+
__name(optionalString, "optionalString");
|
|
10082
|
+
__name4(optionalString, "optionalString");
|
|
10083
|
+
__name(readUrl, "readUrl");
|
|
10084
|
+
__name4(readUrl, "readUrl");
|
|
10085
|
+
__name(readFormat, "readFormat");
|
|
10086
|
+
__name4(readFormat, "readFormat");
|
|
10087
|
+
__name(readTimeout, "readTimeout");
|
|
10088
|
+
__name4(readTimeout, "readTimeout");
|
|
10089
|
+
__name(parseBrowserReadPayload, "parseBrowserReadPayload");
|
|
10090
|
+
__name4(parseBrowserReadPayload, "parseBrowserReadPayload");
|
|
10091
|
+
__name(clampBrowserReadContent, "clampBrowserReadContent");
|
|
10092
|
+
__name4(clampBrowserReadContent, "clampBrowserReadContent");
|
|
10093
|
+
__name(joinBrowserReadMatches, "joinBrowserReadMatches");
|
|
10094
|
+
__name4(joinBrowserReadMatches, "joinBrowserReadMatches");
|
|
10095
|
+
HTTP_STATUS_FAILURE = /ERR_HTTP_RESPONSE_CODE_FAILURE/;
|
|
10096
|
+
__name(isBrowserReadHttpFailure, "isBrowserReadHttpFailure");
|
|
10097
|
+
__name4(isBrowserReadHttpFailure, "isBrowserReadHttpFailure");
|
|
10098
|
+
__name(browserReadHttpErrorMessage, "browserReadHttpErrorMessage");
|
|
10099
|
+
__name4(browserReadHttpErrorMessage, "browserReadHttpErrorMessage");
|
|
10100
|
+
__name(urlOf, "urlOf");
|
|
10101
|
+
__name4(urlOf, "urlOf");
|
|
10102
|
+
__name(answeredDocuments, "answeredDocuments");
|
|
10103
|
+
__name4(answeredDocuments, "answeredDocuments");
|
|
10104
|
+
__name(documentStatusOf, "documentStatusOf");
|
|
10105
|
+
__name4(documentStatusOf, "documentStatusOf");
|
|
10106
|
+
LOGIN_PATH_SEGMENTS = /* @__PURE__ */ new Set([
|
|
10107
|
+
"login",
|
|
10108
|
+
"log-in",
|
|
10109
|
+
"logon",
|
|
10110
|
+
"signin",
|
|
10111
|
+
"sign-in",
|
|
10112
|
+
"sign_in",
|
|
10113
|
+
"auth",
|
|
10114
|
+
"authenticate",
|
|
10115
|
+
"authorize",
|
|
10116
|
+
"sso"
|
|
10117
|
+
]);
|
|
10118
|
+
LOGIN_HOST_LABELS = /* @__PURE__ */ new Set([
|
|
10119
|
+
"login",
|
|
10120
|
+
"signin",
|
|
10121
|
+
"auth",
|
|
10122
|
+
"sso"
|
|
10123
|
+
]);
|
|
10124
|
+
__name(isLoginUrl, "isLoginUrl");
|
|
10125
|
+
__name4(isLoginUrl, "isLoginUrl");
|
|
10126
|
+
__name(isLoginRedirect, "isLoginRedirect");
|
|
10127
|
+
__name4(isLoginRedirect, "isLoginRedirect");
|
|
10128
|
+
__name(browserReadLoginBlock, "browserReadLoginBlock");
|
|
10129
|
+
__name4(browserReadLoginBlock, "browserReadLoginBlock");
|
|
10130
|
+
AGENT_LOG_SOURCES = [
|
|
10131
|
+
"skill",
|
|
10132
|
+
"job",
|
|
10133
|
+
"webhook",
|
|
10134
|
+
"web-route",
|
|
10135
|
+
"trigger",
|
|
10136
|
+
"preprocessor",
|
|
10137
|
+
"postprocessor",
|
|
10138
|
+
"user_message",
|
|
10139
|
+
"agent_response",
|
|
10140
|
+
"agent_error",
|
|
10141
|
+
"runtime",
|
|
10142
|
+
"mcp",
|
|
10143
|
+
"rag",
|
|
10144
|
+
"device",
|
|
10145
|
+
"device-trigger",
|
|
10146
|
+
"model-resolver",
|
|
10147
|
+
"workflow-step",
|
|
10148
|
+
"workflow-script",
|
|
10149
|
+
"workflow",
|
|
10150
|
+
"supervision",
|
|
10151
|
+
"browser",
|
|
10152
|
+
"decisions"
|
|
10153
|
+
];
|
|
10154
|
+
AGENT_LOG_ENVIRONMENTS = [
|
|
10155
|
+
"production",
|
|
10156
|
+
"sandbox"
|
|
10157
|
+
];
|
|
10158
|
+
AGENT_LOG_FIELDS_MAX_WIRE_KEYS = LOG_FIELDS_MAX_KEYS + 1;
|
|
10159
|
+
__name(utf8Bytes, "utf8Bytes");
|
|
10160
|
+
__name4(utf8Bytes, "utf8Bytes");
|
|
10161
|
+
__name(isPlainFieldKey, "isPlainFieldKey");
|
|
10162
|
+
__name4(isPlainFieldKey, "isPlainFieldKey");
|
|
10163
|
+
__name(describeAgentLogFieldsViolation, "describeAgentLogFieldsViolation");
|
|
10164
|
+
__name4(describeAgentLogFieldsViolation, "describeAgentLogFieldsViolation");
|
|
10165
|
+
__name(isAgentLogFields, "isAgentLogFields");
|
|
10166
|
+
__name4(isAgentLogFields, "isAgentLogFields");
|
|
10167
|
+
BROWSER_LOG_EVENT_KINDS = [
|
|
10168
|
+
"session.opened",
|
|
10169
|
+
"command",
|
|
10170
|
+
"navigation",
|
|
10171
|
+
"blocked",
|
|
10172
|
+
"wall",
|
|
10173
|
+
"fallback",
|
|
10174
|
+
"confirm",
|
|
10175
|
+
"agent.step",
|
|
10176
|
+
"session.closed"
|
|
10177
|
+
];
|
|
10178
|
+
BROWSER_LOG_ENGINES = [
|
|
10179
|
+
"desktop",
|
|
10180
|
+
"agent-browser",
|
|
10181
|
+
"browser-use",
|
|
10182
|
+
"none"
|
|
10183
|
+
];
|
|
10184
|
+
BROWSER_SESSION_OPEN_REASONS = [
|
|
10185
|
+
"desktop-online",
|
|
10186
|
+
"cloud-fallback",
|
|
10187
|
+
"stepwise-cloud",
|
|
10188
|
+
"pinned",
|
|
10189
|
+
"none"
|
|
10190
|
+
];
|
|
10191
|
+
BROWSER_BLOCK_KINDS = [
|
|
10192
|
+
"domain",
|
|
10193
|
+
"private-network",
|
|
10194
|
+
"policy",
|
|
10195
|
+
"concurrency",
|
|
10196
|
+
"bot-block"
|
|
10197
|
+
];
|
|
10198
|
+
BROWSER_WALL_KINDS = [
|
|
10199
|
+
"captcha",
|
|
10200
|
+
"bot-block",
|
|
10201
|
+
"consent",
|
|
10202
|
+
"login",
|
|
10203
|
+
"empty-content"
|
|
10204
|
+
];
|
|
10205
|
+
BROWSER_WALL_NEXT_ACTIONS = [
|
|
10206
|
+
"fallback",
|
|
10207
|
+
"retry",
|
|
10208
|
+
"ask-user",
|
|
10209
|
+
"gave-up"
|
|
10210
|
+
];
|
|
10211
|
+
BROWSER_CONFIRM_DECISIONS = [
|
|
10212
|
+
"pending",
|
|
10213
|
+
"approved",
|
|
10214
|
+
"denied",
|
|
10215
|
+
"expired"
|
|
10216
|
+
];
|
|
10217
|
+
BROWSER_SESSION_CLOSE_REASONS = [
|
|
10218
|
+
"done",
|
|
10219
|
+
"idle",
|
|
10220
|
+
"max-minutes",
|
|
10221
|
+
"max-steps",
|
|
10222
|
+
"cost-cap",
|
|
10223
|
+
"error",
|
|
10224
|
+
"reaped"
|
|
10225
|
+
];
|
|
10226
|
+
BROWSER_LOG_CONTEXT_KEYS = [
|
|
10227
|
+
"runId",
|
|
10228
|
+
"executionId",
|
|
10229
|
+
"primitiveId",
|
|
10230
|
+
"primitiveName",
|
|
10231
|
+
"channel",
|
|
10232
|
+
"orgId",
|
|
10233
|
+
"environment",
|
|
10234
|
+
"agentVersion"
|
|
10235
|
+
];
|
|
10236
|
+
BROWSER_LOG_ID_MAX_CHARS = 256;
|
|
10237
|
+
BROWSER_LOG_TEXT_MAX_CHARS = 64 * 1024;
|
|
10238
|
+
isString = /* @__PURE__ */ __name4((value3) => typeof value3 === "string", "isString");
|
|
10239
|
+
isBoolean = /* @__PURE__ */ __name4((value3) => typeof value3 === "boolean", "isBoolean");
|
|
10240
|
+
isCount = /* @__PURE__ */ __name4((value3) => typeof value3 === "number" && Number.isFinite(value3) && value3 >= 0, "isCount");
|
|
10241
|
+
isPlainObject2 = /* @__PURE__ */ __name4((value3) => typeof value3 === "object" && value3 !== null && !Array.isArray(value3), "isPlainObject");
|
|
10242
|
+
oneOf = /* @__PURE__ */ __name4((values) => (value3) => typeof value3 === "string" && values.includes(value3), "oneOf");
|
|
10243
|
+
isLimits = /* @__PURE__ */ __name4((value3) => isPlainObject2(value3) && Object.values(value3).every((entry) => isCount(entry)), "isLimits");
|
|
10244
|
+
EVENT_SHAPES = {
|
|
10245
|
+
"session.opened": {
|
|
10246
|
+
required: {
|
|
10247
|
+
reason: oneOf(BROWSER_SESSION_OPEN_REASONS)
|
|
10248
|
+
},
|
|
10249
|
+
optional: {
|
|
10250
|
+
limits: isLimits,
|
|
10251
|
+
region: isString,
|
|
10252
|
+
liveUrl: isString
|
|
10253
|
+
}
|
|
10254
|
+
},
|
|
10255
|
+
command: {
|
|
10256
|
+
required: {
|
|
10257
|
+
name: oneOf(BROWSER_COMMAND_NAMES),
|
|
10258
|
+
durationMs: isCount,
|
|
10259
|
+
ok: isBoolean
|
|
10260
|
+
},
|
|
10261
|
+
optional: {
|
|
10262
|
+
args: isPlainObject2,
|
|
10263
|
+
urlBefore: isString,
|
|
10264
|
+
urlAfter: isString,
|
|
10265
|
+
resultBytes: isCount,
|
|
10266
|
+
errorCode: isString,
|
|
10267
|
+
errorMessage: isString,
|
|
10268
|
+
title: isString,
|
|
10269
|
+
pageText: isString,
|
|
10270
|
+
screenshotRef: isString
|
|
10271
|
+
}
|
|
10272
|
+
},
|
|
10273
|
+
navigation: {
|
|
10274
|
+
required: {
|
|
10275
|
+
url: isString
|
|
10276
|
+
},
|
|
10277
|
+
optional: {
|
|
10278
|
+
finalUrl: isString,
|
|
10279
|
+
status: isCount,
|
|
10280
|
+
redirects: isCount
|
|
10281
|
+
}
|
|
10282
|
+
},
|
|
10283
|
+
blocked: {
|
|
10284
|
+
required: {
|
|
10285
|
+
kind: oneOf(BROWSER_BLOCK_KINDS)
|
|
10286
|
+
},
|
|
10287
|
+
optional: {
|
|
10288
|
+
rule: isString,
|
|
10289
|
+
target: isString,
|
|
10290
|
+
command: oneOf(BROWSER_COMMAND_NAMES),
|
|
10291
|
+
reason: isString
|
|
10292
|
+
}
|
|
10293
|
+
},
|
|
10294
|
+
wall: {
|
|
10295
|
+
required: {
|
|
10296
|
+
kind: oneOf(BROWSER_WALL_KINDS),
|
|
10297
|
+
url: isString,
|
|
10298
|
+
nextAction: oneOf(BROWSER_WALL_NEXT_ACTIONS)
|
|
10299
|
+
},
|
|
10300
|
+
optional: {}
|
|
10301
|
+
},
|
|
10302
|
+
fallback: {
|
|
10303
|
+
required: {
|
|
10304
|
+
from: oneOf(BROWSER_LOG_ENGINES),
|
|
10305
|
+
to: oneOf(BROWSER_LOG_ENGINES),
|
|
10306
|
+
reason: isString,
|
|
10307
|
+
provider: isString
|
|
10308
|
+
},
|
|
10309
|
+
optional: {}
|
|
10310
|
+
},
|
|
10311
|
+
confirm: {
|
|
10312
|
+
required: {
|
|
10313
|
+
action: isString,
|
|
10314
|
+
decision: oneOf(BROWSER_CONFIRM_DECISIONS)
|
|
10315
|
+
},
|
|
10316
|
+
optional: {
|
|
10317
|
+
decidedBy: isString
|
|
10318
|
+
}
|
|
10319
|
+
},
|
|
10320
|
+
"agent.step": {
|
|
10321
|
+
required: {
|
|
10322
|
+
step: isCount,
|
|
10323
|
+
action: isString
|
|
10324
|
+
},
|
|
10325
|
+
optional: {
|
|
10326
|
+
intent: isString,
|
|
10327
|
+
url: isString
|
|
10328
|
+
}
|
|
10329
|
+
},
|
|
10330
|
+
"session.closed": {
|
|
10331
|
+
required: {
|
|
10332
|
+
reason: oneOf(BROWSER_SESSION_CLOSE_REASONS),
|
|
10333
|
+
durationMs: isCount,
|
|
10334
|
+
pagesVisited: isCount,
|
|
10335
|
+
bytes: isCount
|
|
10336
|
+
},
|
|
10337
|
+
optional: {
|
|
10338
|
+
costUsd: isCount
|
|
10339
|
+
}
|
|
10340
|
+
}
|
|
10341
|
+
};
|
|
10342
|
+
BASE_KEYS = /* @__PURE__ */ new Set([
|
|
10343
|
+
"event",
|
|
10344
|
+
"sessionId",
|
|
10345
|
+
"engine",
|
|
10346
|
+
"at"
|
|
10347
|
+
]);
|
|
10348
|
+
__name(describeBaseViolation, "describeBaseViolation");
|
|
10349
|
+
__name4(describeBaseViolation, "describeBaseViolation");
|
|
10350
|
+
__name(describeFieldViolation, "describeFieldViolation");
|
|
10351
|
+
__name4(describeFieldViolation, "describeFieldViolation");
|
|
10352
|
+
__name(describeBrowserLogEventViolation, "describeBrowserLogEventViolation");
|
|
10353
|
+
__name4(describeBrowserLogEventViolation, "describeBrowserLogEventViolation");
|
|
10354
|
+
__name(isBrowserLogEvent, "isBrowserLogEvent");
|
|
10355
|
+
__name4(isBrowserLogEvent, "isBrowserLogEvent");
|
|
10356
|
+
__name(describeBrowserLogContextViolation, "describeBrowserLogContextViolation");
|
|
10357
|
+
__name4(describeBrowserLogContextViolation, "describeBrowserLogContextViolation");
|
|
10358
|
+
BROWSER_WORKER_SESSION_ID_SEPARATOR = ":";
|
|
10359
|
+
__name(browserWorkerSessionId, "browserWorkerSessionId");
|
|
10360
|
+
__name4(browserWorkerSessionId, "browserWorkerSessionId");
|
|
10361
|
+
BROWSER_WORKER_BLOCK_REASON_MAX_CHARS = 1024;
|
|
10362
|
+
__name(browserLogContextOfWorkerContext, "browserLogContextOfWorkerContext");
|
|
10363
|
+
__name4(browserLogContextOfWorkerContext, "browserLogContextOfWorkerContext");
|
|
10364
|
+
__name(browserLogEventOfWorkerEvent, "browserLogEventOfWorkerEvent");
|
|
10365
|
+
__name4(browserLogEventOfWorkerEvent, "browserLogEventOfWorkerEvent");
|
|
9558
10366
|
WORKFLOW_RETRY_BACKOFFS = [
|
|
9559
10367
|
"fixed",
|
|
9560
10368
|
"exponential"
|
|
@@ -9856,38 +10664,6 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
9856
10664
|
`;
|
|
9857
10665
|
__name(buildPersonalSpaceStartingPersona, "buildPersonalSpaceStartingPersona");
|
|
9858
10666
|
__name4(buildPersonalSpaceStartingPersona, "buildPersonalSpaceStartingPersona");
|
|
9859
|
-
AGENT_LOG_SOURCES = [
|
|
9860
|
-
"skill",
|
|
9861
|
-
"job",
|
|
9862
|
-
"webhook",
|
|
9863
|
-
"web-route",
|
|
9864
|
-
"trigger",
|
|
9865
|
-
"preprocessor",
|
|
9866
|
-
"postprocessor",
|
|
9867
|
-
"user_message",
|
|
9868
|
-
"agent_response",
|
|
9869
|
-
"agent_error",
|
|
9870
|
-
"runtime",
|
|
9871
|
-
"mcp",
|
|
9872
|
-
"rag",
|
|
9873
|
-
"device",
|
|
9874
|
-
"device-trigger",
|
|
9875
|
-
"model-resolver",
|
|
9876
|
-
"workflow-step",
|
|
9877
|
-
"workflow-script",
|
|
9878
|
-
"workflow",
|
|
9879
|
-
"supervision",
|
|
9880
|
-
"decisions"
|
|
9881
|
-
];
|
|
9882
|
-
AGENT_LOG_FIELDS_MAX_WIRE_KEYS = LOG_FIELDS_MAX_KEYS + 1;
|
|
9883
|
-
__name(utf8Bytes, "utf8Bytes");
|
|
9884
|
-
__name4(utf8Bytes, "utf8Bytes");
|
|
9885
|
-
__name(isPlainFieldKey, "isPlainFieldKey");
|
|
9886
|
-
__name4(isPlainFieldKey, "isPlainFieldKey");
|
|
9887
|
-
__name(describeAgentLogFieldsViolation, "describeAgentLogFieldsViolation");
|
|
9888
|
-
__name4(describeAgentLogFieldsViolation, "describeAgentLogFieldsViolation");
|
|
9889
|
-
__name(isAgentLogFields, "isAgentLogFields");
|
|
9890
|
-
__name4(isAgentLogFields, "isAgentLogFields");
|
|
9891
10667
|
LOG_DRAIN_TYPES_PHASE1 = [
|
|
9892
10668
|
"http",
|
|
9893
10669
|
"otlp",
|
|
@@ -10180,8 +10956,8 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
10180
10956
|
CORE_DRAINING_CODE = "CORE_DRAINING";
|
|
10181
10957
|
CORE_DRAINING_DEFAULT_RETRY_MS = 1e3;
|
|
10182
10958
|
CORE_DRAINING_MAX_RETRY_MS = 5e3;
|
|
10183
|
-
__name(
|
|
10184
|
-
__name4(
|
|
10959
|
+
__name(isRecord2, "isRecord2");
|
|
10960
|
+
__name4(isRecord2, "isRecord");
|
|
10185
10961
|
__name(isCoreDrainingErrorResponse, "isCoreDrainingErrorResponse");
|
|
10186
10962
|
__name4(isCoreDrainingErrorResponse, "isCoreDrainingErrorResponse");
|
|
10187
10963
|
__name(coreDrainingRetryDelayMs, "coreDrainingRetryDelayMs");
|
|
@@ -10211,7 +10987,7 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
10211
10987
|
ModelDescriptorSchema = z2.string().min(1).max(200);
|
|
10212
10988
|
InferenceModelSchema = z2.object({
|
|
10213
10989
|
kind: z2.literal("inference"),
|
|
10214
|
-
/** Provider-prefixed model id (e.g. `'openai/
|
|
10990
|
+
/** Provider-prefixed model id (e.g. `'openai/chat-latest'`). */
|
|
10215
10991
|
model: ModelDescriptorSchema,
|
|
10216
10992
|
/**
|
|
10217
10993
|
* TTS-only — provider voice id. Inference's TTS API takes voice
|
|
@@ -14187,7 +14963,7 @@ var init_connection_requests_api_service = __esm({
|
|
|
14187
14963
|
});
|
|
14188
14964
|
|
|
14189
14965
|
// ../sandbox-runtime/dist/decisions-api.mjs
|
|
14190
|
-
function
|
|
14966
|
+
function isRecord3(value3) {
|
|
14191
14967
|
return typeof value3 === "object" && value3 !== null && !Array.isArray(value3);
|
|
14192
14968
|
}
|
|
14193
14969
|
function isProvider(value3) {
|
|
@@ -14206,9 +14982,9 @@ function assertInstructions(builder, instructions) {
|
|
|
14206
14982
|
throw invalid2(`Decisions.${builder} instructions must be at most ${DECISION_LIMITS.maxInstructionChars} characters`);
|
|
14207
14983
|
}
|
|
14208
14984
|
}
|
|
14209
|
-
function assertCount(what,
|
|
14210
|
-
if (
|
|
14211
|
-
throw invalid2(`${what} must hold ${min} to ${max} entries, got ${
|
|
14985
|
+
function assertCount(what, count2, min, max) {
|
|
14986
|
+
if (count2 < min || count2 > max) {
|
|
14987
|
+
throw invalid2(`${what} must hold ${min} to ${max} entries, got ${count2}`);
|
|
14212
14988
|
}
|
|
14213
14989
|
}
|
|
14214
14990
|
function odds(instructions, criteria) {
|
|
@@ -14217,7 +14993,7 @@ function odds(instructions, criteria) {
|
|
|
14217
14993
|
type: "odds",
|
|
14218
14994
|
instructions
|
|
14219
14995
|
};
|
|
14220
|
-
if (!
|
|
14996
|
+
if (!isRecord3(criteria)) throw invalid2("Decisions.odds criteria must be an object like { yes, no }");
|
|
14221
14997
|
return {
|
|
14222
14998
|
type: "odds",
|
|
14223
14999
|
instructions,
|
|
@@ -14226,7 +15002,7 @@ function odds(instructions, criteria) {
|
|
|
14226
15002
|
}
|
|
14227
15003
|
function choice(instructions, options) {
|
|
14228
15004
|
assertInstructions("choice", instructions);
|
|
14229
|
-
if (!
|
|
15005
|
+
if (!isRecord3(options)) throw invalid2("Decisions.choice options must be an object of label to description");
|
|
14230
15006
|
assertCount("Decisions.choice options", Object.keys(options).length, DECISION_LIMITS.minOptions, DECISION_LIMITS.maxOptions);
|
|
14231
15007
|
return {
|
|
14232
15008
|
type: "choice",
|
|
@@ -14245,7 +15021,7 @@ function score(instructions, levels) {
|
|
|
14245
15021
|
};
|
|
14246
15022
|
}
|
|
14247
15023
|
function assertDecisionQuestion(name, question) {
|
|
14248
|
-
if (!
|
|
15024
|
+
if (!isRecord3(question) || !DECISION_QUESTION_TYPES.includes(question.type)) {
|
|
14249
15025
|
throw invalid2(`questions.${name} must be built with Decisions.odds, Decisions.choice or Decisions.score`);
|
|
14250
15026
|
}
|
|
14251
15027
|
if (typeof question.instructions !== "string" || question.instructions.trim().length === 0) {
|
|
@@ -14253,13 +15029,13 @@ function assertDecisionQuestion(name, question) {
|
|
|
14253
15029
|
}
|
|
14254
15030
|
}
|
|
14255
15031
|
function checkDecisionRequest(request) {
|
|
14256
|
-
if (!
|
|
15032
|
+
if (!isRecord3(request)) {
|
|
14257
15033
|
throw invalid2("Decisions.ask needs { state, questions } or (state, question)");
|
|
14258
15034
|
}
|
|
14259
15035
|
if (request.state === void 0 || request.state === null) {
|
|
14260
15036
|
throw invalid2("Decisions.ask needs a state");
|
|
14261
15037
|
}
|
|
14262
|
-
if (!
|
|
15038
|
+
if (!isRecord3(request.questions) || Object.keys(request.questions).length === 0) {
|
|
14263
15039
|
throw invalid2("Decisions.ask needs at least one question in questions");
|
|
14264
15040
|
}
|
|
14265
15041
|
for (const [name, question] of Object.entries(request.questions)) assertDecisionQuestion(name, question);
|
|
@@ -14276,7 +15052,7 @@ function checkDecisionRunRequest(request) {
|
|
|
14276
15052
|
}
|
|
14277
15053
|
function toDecisionError(caught) {
|
|
14278
15054
|
if (caught instanceof DecisionError) return caught;
|
|
14279
|
-
const raw =
|
|
15055
|
+
const raw = isRecord3(caught) ? caught : {};
|
|
14280
15056
|
const message = typeof raw.message === "string" && raw.message.length > 0 ? raw.message : "Decision failed";
|
|
14281
15057
|
const code = typeof raw.code === "string" && raw.code.length > 0 ? raw.code : DECISION_ERROR_CODES.UNAVAILABLE;
|
|
14282
15058
|
return new DecisionError(message, {
|
|
@@ -14368,8 +15144,8 @@ var init_decisions_api = __esm({
|
|
|
14368
15144
|
if (fields.decisionId !== void 0) this.decisionId = fields.decisionId;
|
|
14369
15145
|
}
|
|
14370
15146
|
};
|
|
14371
|
-
__name(
|
|
14372
|
-
__name6(
|
|
15147
|
+
__name(isRecord3, "isRecord");
|
|
15148
|
+
__name6(isRecord3, "isRecord");
|
|
14373
15149
|
__name(isProvider, "isProvider");
|
|
14374
15150
|
__name6(isProvider, "isProvider");
|
|
14375
15151
|
__name(invalid2, "invalid");
|
|
@@ -16795,7 +17571,7 @@ function resolvePlacements(calls) {
|
|
|
16795
17571
|
function isConditionalJoinId(stepId) {
|
|
16796
17572
|
return CONDITIONAL_JOIN_ID.test(stepId);
|
|
16797
17573
|
}
|
|
16798
|
-
function
|
|
17574
|
+
function isPlainObject3(v) {
|
|
16799
17575
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
16800
17576
|
}
|
|
16801
17577
|
function leafValue(row) {
|
|
@@ -16816,7 +17592,7 @@ function deriveRunOutput(steps) {
|
|
|
16816
17592
|
if (leaves.length === 1) {
|
|
16817
17593
|
const leaf = leaves[0];
|
|
16818
17594
|
const value22 = leafValue(leaf);
|
|
16819
|
-
if (isConditionalJoinId(leaf.stepId) &&
|
|
17595
|
+
if (isConditionalJoinId(leaf.stepId) && isPlainObject3(value22)) {
|
|
16820
17596
|
const keys = Object.keys(value22);
|
|
16821
17597
|
if (keys.length === 1) return {
|
|
16822
17598
|
output: value22[keys[0]],
|
|
@@ -18159,7 +18935,7 @@ function estimateGraph(envelopeOrGraph) {
|
|
|
18159
18935
|
};
|
|
18160
18936
|
}
|
|
18161
18937
|
function* singleStepsOf(entry) {
|
|
18162
|
-
if (!
|
|
18938
|
+
if (!isRecord4(entry)) return;
|
|
18163
18939
|
switch (entry.type) {
|
|
18164
18940
|
case "step":
|
|
18165
18941
|
case "agent":
|
|
@@ -18183,8 +18959,8 @@ function* singleStepsOf(entry) {
|
|
|
18183
18959
|
}
|
|
18184
18960
|
}
|
|
18185
18961
|
function entriesOf(graph) {
|
|
18186
|
-
const definition =
|
|
18187
|
-
const entries =
|
|
18962
|
+
const definition = isRecord4(graph) ? graph.definition : void 0;
|
|
18963
|
+
const entries = isRecord4(definition) ? definition.graph : void 0;
|
|
18188
18964
|
return Array.isArray(entries) ? entries : [];
|
|
18189
18965
|
}
|
|
18190
18966
|
function inheritTargets(graphs) {
|
|
@@ -18201,7 +18977,7 @@ function inheritTargets(graphs) {
|
|
|
18201
18977
|
return targets;
|
|
18202
18978
|
}
|
|
18203
18979
|
function needsInheritedWorkspace(graph) {
|
|
18204
|
-
if (!
|
|
18980
|
+
if (!isRecord4(graph) || graph.workspace !== void 0) return false;
|
|
18205
18981
|
for (const entry of entriesOf(graph)) {
|
|
18206
18982
|
for (const node of singleStepsOf(entry)) {
|
|
18207
18983
|
if (node.workspace !== void 0 && node.workspace !== "inherit") return true;
|
|
@@ -18282,7 +19058,7 @@ function collectJobTierSteps(entry, out) {
|
|
|
18282
19058
|
return;
|
|
18283
19059
|
}
|
|
18284
19060
|
}
|
|
18285
|
-
var __defProp8, __name8, WorkflowTemplateError, TEMPLATE_PLACEHOLDER, TEMPLATE_NAMESPACES, MAP_DESCRIPTOR_KEYS, MAP_MEMBER_MALFORMED_CODE, fromInit, fromStep, value, template, fromRequest, rows, fromKnowledge, SideEffectsSchema, JobResourcesSchema, WORKFLOW_MODEL_TEMPLATE_ROOT, WORKFLOW_MODEL_TEMPLATE_RE, PATH_SEGMENT_RE, APPROVER_SPEC_MAX_USERS, ESCALATION_MAX_HOPS, TemplateBindingSchema, ApproverSpecSchema, FourEyesSchema, EscalationHopSchema, TerminalOutcomeSchema, ApprovalOnTimeoutSchema, APPROVER_SPEC_SHAPES, APPROVER_WRITTEN_MAX, USER_ID_SHAPED_RE, BINDING_ROOTS, APPROVAL_REMIND_AFTER_HOURS_MIN, APPROVAL_REMIND_AFTER_HOURS_MAX, APPROVAL_TIMEOUT_HOURS_MIN, APPROVAL_TIMEOUT_HOURS_MAX, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT, WORKFLOW_CAPS_DEFAULT, WORKFLOW_STEP_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_AGENT_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_JOB_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_FOREACH_DEFAULT_CONCURRENCY, WORKFLOW_FOREACH_DEFAULT_MAX_ITEMS, WORKFLOW_LOOP_DEFAULT_MAX_ITERATIONS, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS2, WORKFLOW_SIGNAL_DEFAULT_SOURCES, clone, CONNECTION_ID_HEX_RE, WORKFLOW_JOB_MAX_WORKTREE_ARMS, workspaceOf, mountsWorkspace, isJobTier, jobToolsOf, schemaIsArray, isHitlNode, isSingleStep, singleId, armId, TEMPLATE_STEP_REF, EDITABLE_PATH_RE, PREDICATE_OPS, isPredicateScalar, GRAPH_HASH_PREFIX, WorkflowPlanError, isArmStep, armStepId, armStepKind, joinIdOf, containerIdOf, PATH_PLACEHOLDER, MISSING, stepIdOf, cmp, eq, ne, gt, gte, lt, lte, inSet, notIn, exists, notExists, truthy, falsy, and, or, not, CONTINUED_FAILURE_TAG, CONTINUED_FAILURE_DEFAULT_CODE, CONTINUED_FAILURE_OUTPUT_SCHEMA, CONTINUED_FAILURE_LEAF_PATHS, isHitlNode2, nodeIdOf, GOAL_JUDGE_STEP_ID, NON_LEAF_KINDS, CONDITIONAL_JOIN_ID, branchArmId, canonical, sortKeys, JOIN, entryOfJoin, FORCE_CANCEL_STALE_MS, TERMINAL, WORKFLOW_INLINE_RUN_TAG, RUN_ERROR_ISSUES_MAX, IN_FLIGHT, n, SUSPENDED_FOR_DIMENSIONS, STEP_ERROR_DETAIL_KEYS, STEP_ERROR_DETAIL_MAX_BYTES, DETAIL_MAX_DEPTH, DETAIL_MAX_ITEMS, MAX_HOLIDAYS, MAX_WALK_DAYS, HHMM, YMD, MS_PER_MIN, MS_PER_DAY, MON_FRI, supportedTz, fmtCache, WEEKDAYS, JSON_PATCH_OPS, JSON_PATCH_MAX_OPS, JSON_PATCH_MAX_VALUE_BYTES, JSON_PATCH_MAX_TOTAL_BYTES, SEGMENT_RE, WORKFLOW_SCHEDULE_TYPES, WORKFLOW_SCHEDULE_SHAPE_ISSUE, WORKFLOW_SCHEDULE_SHAPES_HINT, WORKFLOW_SCHEDULE_RUN_AS, isObject, WORKFLOW_ENV_OVERLAY_MAX_KEYS, WORKFLOW_ENV_OVERLAY_MAX_VALUE_BYTES, WORKFLOW_ENV_TEMPLATE_SECRET_KEY_RE, isEnvRef, looksLikeEmbeddedJson, ZERO,
|
|
19061
|
+
var __defProp8, __name8, WorkflowTemplateError, TEMPLATE_PLACEHOLDER, TEMPLATE_NAMESPACES, MAP_DESCRIPTOR_KEYS, MAP_MEMBER_MALFORMED_CODE, fromInit, fromStep, value, template, fromRequest, rows, fromKnowledge, SideEffectsSchema, JobResourcesSchema, WORKFLOW_MODEL_TEMPLATE_ROOT, WORKFLOW_MODEL_TEMPLATE_RE, PATH_SEGMENT_RE, APPROVER_SPEC_MAX_USERS, ESCALATION_MAX_HOPS, TemplateBindingSchema, ApproverSpecSchema, FourEyesSchema, EscalationHopSchema, TerminalOutcomeSchema, ApprovalOnTimeoutSchema, APPROVER_SPEC_SHAPES, APPROVER_WRITTEN_MAX, USER_ID_SHAPED_RE, BINDING_ROOTS, APPROVAL_REMIND_AFTER_HOURS_MIN, APPROVAL_REMIND_AFTER_HOURS_MAX, APPROVAL_TIMEOUT_HOURS_MIN, APPROVAL_TIMEOUT_HOURS_MAX, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT, WORKFLOW_CAPS_DEFAULT, WORKFLOW_STEP_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_AGENT_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_JOB_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_FOREACH_DEFAULT_CONCURRENCY, WORKFLOW_FOREACH_DEFAULT_MAX_ITEMS, WORKFLOW_LOOP_DEFAULT_MAX_ITERATIONS, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS2, WORKFLOW_SIGNAL_DEFAULT_SOURCES, clone, CONNECTION_ID_HEX_RE, WORKFLOW_JOB_MAX_WORKTREE_ARMS, workspaceOf, mountsWorkspace, isJobTier, jobToolsOf, schemaIsArray, isHitlNode, isSingleStep, singleId, armId, TEMPLATE_STEP_REF, EDITABLE_PATH_RE, PREDICATE_OPS, isPredicateScalar, GRAPH_HASH_PREFIX, WorkflowPlanError, isArmStep, armStepId, armStepKind, joinIdOf, containerIdOf, PATH_PLACEHOLDER, MISSING, stepIdOf, cmp, eq, ne, gt, gte, lt, lte, inSet, notIn, exists, notExists, truthy, falsy, and, or, not, CONTINUED_FAILURE_TAG, CONTINUED_FAILURE_DEFAULT_CODE, CONTINUED_FAILURE_OUTPUT_SCHEMA, CONTINUED_FAILURE_LEAF_PATHS, isHitlNode2, nodeIdOf, GOAL_JUDGE_STEP_ID, NON_LEAF_KINDS, CONDITIONAL_JOIN_ID, branchArmId, canonical, sortKeys, JOIN, entryOfJoin, FORCE_CANCEL_STALE_MS, TERMINAL, WORKFLOW_INLINE_RUN_TAG, RUN_ERROR_ISSUES_MAX, IN_FLIGHT, n, SUSPENDED_FOR_DIMENSIONS, STEP_ERROR_DETAIL_KEYS, STEP_ERROR_DETAIL_MAX_BYTES, DETAIL_MAX_DEPTH, DETAIL_MAX_ITEMS, MAX_HOLIDAYS, MAX_WALK_DAYS, HHMM, YMD, MS_PER_MIN, MS_PER_DAY, MON_FRI, supportedTz, fmtCache, WEEKDAYS, JSON_PATCH_OPS, JSON_PATCH_MAX_OPS, JSON_PATCH_MAX_VALUE_BYTES, JSON_PATCH_MAX_TOTAL_BYTES, SEGMENT_RE, WORKFLOW_SCHEDULE_TYPES, WORKFLOW_SCHEDULE_SHAPE_ISSUE, WORKFLOW_SCHEDULE_SHAPES_HINT, WORKFLOW_SCHEDULE_RUN_AS, isObject, WORKFLOW_ENV_OVERLAY_MAX_KEYS, WORKFLOW_ENV_OVERLAY_MAX_VALUE_BYTES, WORKFLOW_ENV_TEMPLATE_SECRET_KEY_RE, isEnvRef, looksLikeEmbeddedJson, ZERO, isRecord4;
|
|
18286
19062
|
var init_dist2 = __esm({
|
|
18287
19063
|
"../workflow-graph/dist/index.mjs"() {
|
|
18288
19064
|
"use strict";
|
|
@@ -18806,8 +19582,8 @@ var init_dist2 = __esm({
|
|
|
18806
19582
|
CONDITIONAL_JOIN_ID = /^conditional@\d+\.join$/;
|
|
18807
19583
|
__name(isConditionalJoinId, "isConditionalJoinId");
|
|
18808
19584
|
__name8(isConditionalJoinId, "isConditionalJoinId");
|
|
18809
|
-
__name(
|
|
18810
|
-
__name8(
|
|
19585
|
+
__name(isPlainObject3, "isPlainObject");
|
|
19586
|
+
__name8(isPlainObject3, "isPlainObject");
|
|
18811
19587
|
__name(leafValue, "leafValue");
|
|
18812
19588
|
__name8(leafValue, "leafValue");
|
|
18813
19589
|
__name(runOutputLeaves, "runOutputLeaves");
|
|
@@ -19097,7 +19873,7 @@ var init_dist2 = __esm({
|
|
|
19097
19873
|
__name8(ofEntry, "ofEntry");
|
|
19098
19874
|
__name(estimateGraph, "estimateGraph");
|
|
19099
19875
|
__name8(estimateGraph, "estimateGraph");
|
|
19100
|
-
|
|
19876
|
+
isRecord4 = /* @__PURE__ */ __name8((v) => !!v && typeof v === "object" && !Array.isArray(v), "isRecord");
|
|
19101
19877
|
__name(singleStepsOf, "singleStepsOf");
|
|
19102
19878
|
__name8(singleStepsOf, "singleStepsOf");
|
|
19103
19879
|
__name(entriesOf, "entriesOf");
|
|
@@ -19239,6 +20015,10 @@ function createWorkflow(cfg) {
|
|
|
19239
20015
|
const n2 = cfg.backfillOnEnable.maxOccurrences;
|
|
19240
20016
|
if (!Number.isInteger(n2) || n2 < 1 || n2 > 200) throw new LuaWorkflowBuildError("invalid-envelope", "backfillOnEnable.maxOccurrences must be an integer in 1..200 (backfill-max-occurrences-out-of-range; the org maxBatchItems twin is checked at publish/R56)");
|
|
19241
20017
|
}
|
|
20018
|
+
if (cfg.concurrencyKey !== void 0) {
|
|
20019
|
+
if (cfg.concurrencyKey !== "correlationKey") throw new LuaWorkflowBuildError("invalid-envelope", "concurrencyKey must be 'correlationKey'");
|
|
20020
|
+
if (cfg.concurrencyPolicy !== "forbid") throw new LuaWorkflowBuildError("concurrency-key-requires-forbid", `workflow "${cfg.name}": concurrencyKey requires concurrencyPolicy:'forbid'`, "set concurrencyPolicy:'forbid' or remove concurrencyKey");
|
|
20021
|
+
}
|
|
19242
20022
|
if (cfg.health !== void 0) {
|
|
19243
20023
|
const issues = validateScheduleHealth(cfg.health, {
|
|
19244
20024
|
target: "workflow",
|
|
@@ -20181,6 +20961,7 @@ var init_types = __esm({
|
|
|
20181
20961
|
PrimitiveKind2["VOICE"] = "voice";
|
|
20182
20962
|
PrimitiveKind2["WORKFLOW"] = "workflow";
|
|
20183
20963
|
PrimitiveKind2["WEB_APP"] = "web-app";
|
|
20964
|
+
PrimitiveKind2["BROWSER"] = "browser";
|
|
20184
20965
|
PrimitiveKind2["DECISION"] = "decision";
|
|
20185
20966
|
return PrimitiveKind2;
|
|
20186
20967
|
})({});
|
|
@@ -21148,7 +21929,7 @@ var init_base_handler = __esm({
|
|
|
21148
21929
|
const { [idField]: goneId, ...rest } = stale;
|
|
21149
21930
|
yamlItems[idx] = rest;
|
|
21150
21931
|
yamlUpdated = true;
|
|
21151
|
-
const msg =
|
|
21932
|
+
const msg = this.staleRowMessage(stale, String(goneId), serverData.serverItems);
|
|
21152
21933
|
messages.push(msg);
|
|
21153
21934
|
console.log(msg);
|
|
21154
21935
|
}
|
|
@@ -21403,6 +22184,9 @@ var init_base_handler = __esm({
|
|
|
21403
22184
|
staleYamlRows(_yamlItems, _serverItems, _manifestNames) {
|
|
21404
22185
|
return [];
|
|
21405
22186
|
}
|
|
22187
|
+
staleRowMessage(stale, goneId, _serverItems) {
|
|
22188
|
+
return `\u2139\uFE0F ${this.displayName} "${stale.name}" (${goneId}) no longer exists on the server \u2014 re-registering it`;
|
|
22189
|
+
}
|
|
21406
22190
|
buildMaps(serverItems, yamlItems) {
|
|
21407
22191
|
const yamlById = /* @__PURE__ */ new Map();
|
|
21408
22192
|
const yamlByName = /* @__PURE__ */ new Map();
|
|
@@ -27824,6 +28608,7 @@ var LuaAgent = class {
|
|
|
27824
28608
|
batching;
|
|
27825
28609
|
governance;
|
|
27826
28610
|
browser;
|
|
28611
|
+
browsers;
|
|
27827
28612
|
/**
|
|
27828
28613
|
* Creates a new LuaAgent instance.
|
|
27829
28614
|
*
|
|
@@ -27870,6 +28655,7 @@ var LuaAgent = class {
|
|
|
27870
28655
|
this.batching = config.batching;
|
|
27871
28656
|
this.governance = config.governance;
|
|
27872
28657
|
this.browser = config.browser;
|
|
28658
|
+
this.browsers = config.browsers;
|
|
27873
28659
|
}
|
|
27874
28660
|
getName() {
|
|
27875
28661
|
return this.name;
|
|
@@ -27927,6 +28713,9 @@ var LuaAgent = class {
|
|
|
27927
28713
|
getVoices() {
|
|
27928
28714
|
return this.voices;
|
|
27929
28715
|
}
|
|
28716
|
+
getBrowsers() {
|
|
28717
|
+
return this.browsers;
|
|
28718
|
+
}
|
|
27930
28719
|
getDecisions() {
|
|
27931
28720
|
return this.decisions;
|
|
27932
28721
|
}
|
|
@@ -28045,6 +28834,51 @@ function defineVoice(config) {
|
|
|
28045
28834
|
}
|
|
28046
28835
|
__name(defineVoice, "defineVoice");
|
|
28047
28836
|
|
|
28837
|
+
// src/types/browser.ts
|
|
28838
|
+
init_dist();
|
|
28839
|
+
var LuaBrowser = class {
|
|
28840
|
+
static {
|
|
28841
|
+
__name(this, "LuaBrowser");
|
|
28842
|
+
}
|
|
28843
|
+
name;
|
|
28844
|
+
description;
|
|
28845
|
+
engine;
|
|
28846
|
+
fallback;
|
|
28847
|
+
proxyCountry;
|
|
28848
|
+
allowedDomains;
|
|
28849
|
+
confirmActions;
|
|
28850
|
+
maxSessionMinutes;
|
|
28851
|
+
idleTimeoutSeconds;
|
|
28852
|
+
maxConcurrentSessions;
|
|
28853
|
+
screenshots;
|
|
28854
|
+
logContent;
|
|
28855
|
+
persist;
|
|
28856
|
+
credentials;
|
|
28857
|
+
constructor(config) {
|
|
28858
|
+
if (!config.name || !BROWSER_PROFILE_NAME_PATTERN.test(config.name)) {
|
|
28859
|
+
throw new Error("LuaBrowser requires a `name` that starts with a letter or digit and uses only letters, digits, underscores or hyphens (max 64).");
|
|
28860
|
+
}
|
|
28861
|
+
this.name = config.name;
|
|
28862
|
+
this.description = config.description;
|
|
28863
|
+
this.engine = config.engine;
|
|
28864
|
+
this.fallback = config.fallback;
|
|
28865
|
+
this.proxyCountry = config.proxyCountry;
|
|
28866
|
+
this.allowedDomains = config.allowedDomains;
|
|
28867
|
+
this.confirmActions = config.confirmActions;
|
|
28868
|
+
this.maxSessionMinutes = config.maxSessionMinutes;
|
|
28869
|
+
this.idleTimeoutSeconds = config.idleTimeoutSeconds;
|
|
28870
|
+
this.maxConcurrentSessions = config.maxConcurrentSessions;
|
|
28871
|
+
this.screenshots = config.screenshots;
|
|
28872
|
+
this.logContent = config.logContent;
|
|
28873
|
+
this.persist = config.persist;
|
|
28874
|
+
this.credentials = config.credentials;
|
|
28875
|
+
}
|
|
28876
|
+
};
|
|
28877
|
+
function defineBrowser(config) {
|
|
28878
|
+
return new LuaBrowser(config);
|
|
28879
|
+
}
|
|
28880
|
+
__name(defineBrowser, "defineBrowser");
|
|
28881
|
+
|
|
28048
28882
|
// src/types/decision.ts
|
|
28049
28883
|
init_dist();
|
|
28050
28884
|
init_decisions_api();
|
|
@@ -28228,6 +29062,26 @@ function createOfflineThreadsApi() {
|
|
|
28228
29062
|
}
|
|
28229
29063
|
__name(createOfflineThreadsApi, "createOfflineThreadsApi");
|
|
28230
29064
|
|
|
29065
|
+
// src/api/browser.offline.ts
|
|
29066
|
+
init_dist();
|
|
29067
|
+
function unavailable2(member) {
|
|
29068
|
+
return browserError("BROWSER_UNAVAILABLE", `Browser.${member} only runs on the Lua platform (deployed or sandbox agents with \`browser\` on), not in lua test / lua dev`);
|
|
29069
|
+
}
|
|
29070
|
+
__name(unavailable2, "unavailable");
|
|
29071
|
+
function createOfflineBrowserApi() {
|
|
29072
|
+
const members = Object.fromEntries([
|
|
29073
|
+
...BROWSER_COMMAND_NAMES,
|
|
29074
|
+
BROWSER_EXECUTE_METHOD
|
|
29075
|
+
].map((name) => [
|
|
29076
|
+
name,
|
|
29077
|
+
async () => {
|
|
29078
|
+
throw unavailable2(name);
|
|
29079
|
+
}
|
|
29080
|
+
]));
|
|
29081
|
+
return members;
|
|
29082
|
+
}
|
|
29083
|
+
__name(createOfflineBrowserApi, "createOfflineBrowserApi");
|
|
29084
|
+
|
|
28231
29085
|
// src/api/progress.api.service.ts
|
|
28232
29086
|
function createOfflineProgressApi() {
|
|
28233
29087
|
return Object.freeze({
|
|
@@ -29098,6 +29952,7 @@ var Secrets = {
|
|
|
29098
29952
|
};
|
|
29099
29953
|
var Metrics = offlineMetrics;
|
|
29100
29954
|
var Threads = createOfflineThreadsApi();
|
|
29955
|
+
var Browser = createOfflineBrowserApi();
|
|
29101
29956
|
var Progress = createOfflineProgressApi();
|
|
29102
29957
|
function defineDevice(config) {
|
|
29103
29958
|
return new LuaDevice(config);
|
|
@@ -29117,6 +29972,7 @@ export {
|
|
|
29117
29972
|
BasketInstance,
|
|
29118
29973
|
BasketStatus,
|
|
29119
29974
|
Baskets,
|
|
29975
|
+
Browser,
|
|
29120
29976
|
CDN,
|
|
29121
29977
|
CHANNEL_SEND_CHANNELS,
|
|
29122
29978
|
Channels,
|
|
@@ -29129,6 +29985,7 @@ export {
|
|
|
29129
29985
|
Jobs,
|
|
29130
29986
|
Lua,
|
|
29131
29987
|
LuaAgent,
|
|
29988
|
+
LuaBrowser,
|
|
29132
29989
|
LuaDecision,
|
|
29133
29990
|
LuaDevice,
|
|
29134
29991
|
LuaDeviceTrigger,
|
|
@@ -29167,6 +30024,7 @@ export {
|
|
|
29167
30024
|
checkAsUserRequiresUser,
|
|
29168
30025
|
createStep,
|
|
29169
30026
|
createWorkflow,
|
|
30027
|
+
defineBrowser,
|
|
29170
30028
|
defineDecision,
|
|
29171
30029
|
defineDevice,
|
|
29172
30030
|
defineDeviceTrigger,
|