@wayai/cli 0.3.97 → 0.3.98
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/index.js +271 -32
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -15,21 +15,58 @@ var __export = (target, all) => {
|
|
|
15
15
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
-
// src/lib/
|
|
19
|
-
function
|
|
18
|
+
// src/lib/mask-secrets.ts
|
|
19
|
+
function valueEnd(text, from, isEnd) {
|
|
20
|
+
for (let i = from; i < text.length; i++) {
|
|
21
|
+
if (text[i] === "\\") {
|
|
22
|
+
i++;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (isEnd(text[i])) return i;
|
|
26
|
+
}
|
|
27
|
+
return text.length;
|
|
28
|
+
}
|
|
29
|
+
function maskCredentialValues(text, keyRe, isValueEnd) {
|
|
30
|
+
keyRe.lastIndex = 0;
|
|
31
|
+
let out = "";
|
|
32
|
+
let copied = 0;
|
|
33
|
+
let match;
|
|
34
|
+
while ((match = keyRe.exec(text)) !== null) {
|
|
35
|
+
const valueStart = match.index + match[0].length;
|
|
36
|
+
keyRe.lastIndex = valueStart;
|
|
37
|
+
if (!isCredentialKey(match[1])) continue;
|
|
38
|
+
const end = valueEnd(text, valueStart, isValueEnd);
|
|
39
|
+
const value = text.slice(valueStart, end);
|
|
40
|
+
if (value.length === 0 || FULLY_MASKED_VALUE_RE.test(value)) continue;
|
|
41
|
+
out += text.slice(copied, valueStart) + "[REDACTED]";
|
|
42
|
+
copied = end;
|
|
43
|
+
keyRe.lastIndex = end;
|
|
44
|
+
}
|
|
45
|
+
return out + text.slice(copied);
|
|
46
|
+
}
|
|
47
|
+
function maskSecretsInMessage(text) {
|
|
20
48
|
let out = text;
|
|
21
|
-
for (const [pattern, replacement] of
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return out;
|
|
25
|
-
}
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
"src/lib/
|
|
49
|
+
for (const [pattern, replacement] of SHAPE_PATTERNS) out = out.replace(pattern, replacement);
|
|
50
|
+
out = maskCredentialValues(out, JSON_KEY_RE, isJsonValueEnd);
|
|
51
|
+
out = maskCredentialValues(out, QUERY_KEY_RE, isQueryValueEnd);
|
|
52
|
+
return out.replace(BASE64_RE, maskBase64);
|
|
53
|
+
}
|
|
54
|
+
var CREDENTIAL_KEY_RE, FULLY_MASKED_VALUE_RE, isCredentialKey, SHAPE_PATTERNS, JSON_KEY_RE, isJsonValueEnd, QUERY_KEY_RE, isQueryValueEnd, BASE64_RE, maskBase64;
|
|
55
|
+
var init_mask_secrets = __esm({
|
|
56
|
+
"src/lib/mask-secrets.ts"() {
|
|
29
57
|
"use strict";
|
|
30
|
-
|
|
58
|
+
CREDENTIAL_KEY_RE = /token|secret|credential|password|passwd|api[_-]?key|authorization|private[_-]?key|session[_-]?id|cookie|jwt/i;
|
|
59
|
+
FULLY_MASKED_VALUE_RE = /^(?:Bearer\s+)?(?:way_|wst_)?\[REDACTED(?:_JWT|_BASE64)?\]$/;
|
|
60
|
+
isCredentialKey = (key) => CREDENTIAL_KEY_RE.test(key);
|
|
61
|
+
SHAPE_PATTERNS = [
|
|
31
62
|
// JWTs (header.payload.signature) — WorkOS access/refresh tokens, OAuth JWTs.
|
|
32
63
|
// Run first so a `Bearer <jwt>` collapses to the JWT placeholder.
|
|
64
|
+
//
|
|
65
|
+
// Deliberately NOT anchored with the lookbehind the base64 rule uses. It would
|
|
66
|
+
// make this linear (this rule is quadratic on a pathological `eyJeyJeyJ…` run),
|
|
67
|
+
// but it also NARROWS masking: `refresh-<jwt>` and `way_<jwt>` would stop
|
|
68
|
+
// matching and leak the token whole. Correctness of a redaction rule outranks
|
|
69
|
+
// its worst case on a body that has to be adversarial to hurt.
|
|
33
70
|
[/eyJ[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+/g, "[REDACTED_JWT]"],
|
|
34
71
|
// way_ scoped API tokens (keyring/CI credentials). Leading \b avoids
|
|
35
72
|
// over-redacting benign substrings (e.g. `gateway_config`); the charset is
|
|
@@ -40,6 +77,42 @@ var init_redact = __esm({
|
|
|
40
77
|
// Authorization: Bearer <opaque token> (anything not already masked above).
|
|
41
78
|
[/(Bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi, "$1[REDACTED]"]
|
|
42
79
|
];
|
|
80
|
+
JSON_KEY_RE = /"([A-Za-z0-9_.-]+)"\s*:\s*"/g;
|
|
81
|
+
isJsonValueEnd = (char) => char === '"';
|
|
82
|
+
QUERY_KEY_RE = /(?:^|[?#&;,\s"'])([A-Za-z0-9_.-]+)=/g;
|
|
83
|
+
isQueryValueEnd = (char) => char === "&" || char === ";" || char === '"' || /\s/.test(char);
|
|
84
|
+
BASE64_RE = // Padded base64 bodies (wrapped DEKs, HMAC secrets, service-account material)
|
|
85
|
+
// appearing outside any credential-named key — the shape the rules above miss.
|
|
86
|
+
//
|
|
87
|
+
// Base64 has no distinguishing charset: a bare `[A-Za-z0-9+/]{20,}` run also
|
|
88
|
+
// matches slash-separated paths (`hubs/production/agents/support`), 64-char DO
|
|
89
|
+
// hex ids, and ordinary long words — all debugging context, not secrets. Three
|
|
90
|
+
// constraints buy the precision instead:
|
|
91
|
+
// 1. Terminal `=` padding, which prose and paths don't carry.
|
|
92
|
+
// 2. Nothing base64-ish after the padding, so `?param=value` (where `=` is a
|
|
93
|
+
// separator, not padding) is excluded.
|
|
94
|
+
// 3. Not sitting immediately after `?` or `&`, where a run followed by `=` is
|
|
95
|
+
// a query parameter NAME. Constraints 2 and 3 are separate cases: `=value`
|
|
96
|
+
// vs. an empty value (`?someLongParamName=&next=1`), which 2 lets through.
|
|
97
|
+
// 4. The quad-length check below, for a run reached by neither 2 nor 3
|
|
98
|
+
// (`bad xxxxxxxxxxxxxxxxxxxxxx= here`).
|
|
99
|
+
// Runs last so `Bearer <base64>` still collapses to the Bearer placeholder.
|
|
100
|
+
//
|
|
101
|
+
// The trade: unpadded base64 (any input whose byte length is a multiple of 3)
|
|
102
|
+
// is NOT matched here — no marker distinguishes it from prose. It stays covered
|
|
103
|
+
// by the credential-key rules above, which is where such a value realistically
|
|
104
|
+
// reaches this module.
|
|
105
|
+
//
|
|
106
|
+
// The leading lookbehind (NOT \b) is what keeps this linear. `/` and `+` are
|
|
107
|
+
// non-word characters, so \b also fires *inside* a base64 run: on a body like
|
|
108
|
+
// `aaaa/aaaa/aaaa/…` every slash would start a fresh greedy scan of the rest of
|
|
109
|
+
// the string, which is quadratic (~5.5s on a 100KB body, vs ~1.3ms now). "No
|
|
110
|
+
// base64 char precedes this" is both the correct notion of a run's start and
|
|
111
|
+
// O(1) starts per run — and, unlike the JWT rule above, it narrows nothing:
|
|
112
|
+
// base64 embedded mid-run isn't decodable base64 anyway.
|
|
113
|
+
// {22,} + 1-2 pad chars => a 24-char floor, i.e. a 16-byte secret.
|
|
114
|
+
/(?<![A-Za-z0-9+/])(?<![?&])[A-Za-z0-9+/]{22,}={1,2}(?![A-Za-z0-9+/=])/g;
|
|
115
|
+
maskBase64 = (match) => match.length % 4 === 0 ? "[REDACTED_BASE64]" : match;
|
|
43
116
|
}
|
|
44
117
|
});
|
|
45
118
|
|
|
@@ -119,17 +192,17 @@ function initSentry(command2, version) {
|
|
|
119
192
|
}
|
|
120
193
|
}
|
|
121
194
|
}
|
|
122
|
-
if (value.value) value.value =
|
|
195
|
+
if (value.value) value.value = maskSecretsInMessage(value.value);
|
|
123
196
|
}
|
|
124
197
|
}
|
|
125
198
|
if (event.breadcrumbs) {
|
|
126
199
|
for (const crumb of event.breadcrumbs) {
|
|
127
|
-
if (crumb.message) crumb.message =
|
|
200
|
+
if (crumb.message) crumb.message = maskSecretsInMessage(crumb.message);
|
|
128
201
|
}
|
|
129
202
|
}
|
|
130
203
|
if (event.extra) {
|
|
131
204
|
for (const [key, val] of Object.entries(event.extra)) {
|
|
132
|
-
if (typeof val === "string") event.extra[key] =
|
|
205
|
+
if (typeof val === "string") event.extra[key] = maskSecretsInMessage(val);
|
|
133
206
|
}
|
|
134
207
|
}
|
|
135
208
|
return event;
|
|
@@ -199,7 +272,7 @@ var HARDCODED_DSN, initialized;
|
|
|
199
272
|
var init_sentry = __esm({
|
|
200
273
|
"src/lib/sentry.ts"() {
|
|
201
274
|
"use strict";
|
|
202
|
-
|
|
275
|
+
init_mask_secrets();
|
|
203
276
|
init_network_error();
|
|
204
277
|
HARDCODED_DSN = "https://ffe500121277babcabf32e5868f00f9e@o4510669417807872.ingest.us.sentry.io/4510960145465344";
|
|
205
278
|
initialized = false;
|
|
@@ -225,14 +298,14 @@ var init_api_client = __esm({
|
|
|
225
298
|
"src/lib/api-client.ts"() {
|
|
226
299
|
"use strict";
|
|
227
300
|
init_sentry();
|
|
228
|
-
|
|
301
|
+
init_mask_secrets();
|
|
229
302
|
RETRYABLE_BACKOFF_MS = [500, 1e3, 2e3];
|
|
230
303
|
delay = (ms) => new Promise((resolve4) => setTimeout(resolve4, ms));
|
|
231
304
|
ApiError = class extends Error {
|
|
232
305
|
status;
|
|
233
306
|
body;
|
|
234
307
|
constructor(method, path27, status, body) {
|
|
235
|
-
const safeBody =
|
|
308
|
+
const safeBody = maskSecretsInMessage(body);
|
|
236
309
|
super(`API request failed: ${method} ${path27} (${status}): ${safeBody}`);
|
|
237
310
|
this.name = "ApiError";
|
|
238
311
|
this.status = status;
|
|
@@ -5000,6 +5073,18 @@ function normalizeAuthType(raw) {
|
|
|
5000
5073
|
if (VALID_AUTH_TYPES.has(raw)) return raw;
|
|
5001
5074
|
return LEGACY_AUTH_TYPE_MAP[raw] ?? raw;
|
|
5002
5075
|
}
|
|
5076
|
+
function jsonLengthOrNull(value) {
|
|
5077
|
+
try {
|
|
5078
|
+
const json = JSON.stringify(value);
|
|
5079
|
+
return typeof json === "string" ? json.length : null;
|
|
5080
|
+
} catch {
|
|
5081
|
+
return null;
|
|
5082
|
+
}
|
|
5083
|
+
}
|
|
5084
|
+
function withinJsonLength(value, max) {
|
|
5085
|
+
const length = jsonLengthOrNull(value);
|
|
5086
|
+
return length !== null && length <= max;
|
|
5087
|
+
}
|
|
5003
5088
|
function visibleLength(s) {
|
|
5004
5089
|
return s.replace(INVISIBLE_NAME_CHARS, "").length;
|
|
5005
5090
|
}
|
|
@@ -5243,6 +5328,45 @@ function refineToolConfig(value, ctx) {
|
|
|
5243
5328
|
}
|
|
5244
5329
|
}
|
|
5245
5330
|
}
|
|
5331
|
+
function describeRole(role) {
|
|
5332
|
+
if (typeof role === "string") {
|
|
5333
|
+
return JSON.stringify(role.length > ROLE_ECHO_MAX ? `${role.slice(0, ROLE_ECHO_MAX)}\u2026` : role);
|
|
5334
|
+
}
|
|
5335
|
+
if (role === null) return "null";
|
|
5336
|
+
if (Array.isArray(role)) return "an array";
|
|
5337
|
+
if (typeof role === "object") return "an object";
|
|
5338
|
+
return `a ${typeof role}`;
|
|
5339
|
+
}
|
|
5340
|
+
function asEvalInputRecord(input) {
|
|
5341
|
+
const value = typeof input === "string" ? (() => {
|
|
5342
|
+
try {
|
|
5343
|
+
return JSON.parse(input);
|
|
5344
|
+
} catch {
|
|
5345
|
+
return null;
|
|
5346
|
+
}
|
|
5347
|
+
})() : input;
|
|
5348
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
5349
|
+
}
|
|
5350
|
+
function evalInputRoleError(input) {
|
|
5351
|
+
const record = asEvalInputRecord(input);
|
|
5352
|
+
if (record === null) return null;
|
|
5353
|
+
const role = record.role;
|
|
5354
|
+
if (role === void 0 || role === null) return null;
|
|
5355
|
+
if (typeof role === "string" && EVAL_INPUT_ROLES.includes(role)) {
|
|
5356
|
+
return null;
|
|
5357
|
+
}
|
|
5358
|
+
return `role must be ${EVAL_INPUT_ROLE_LIST} (received ${describeRole(role)}) \u2014 an eval trigger is what the responder answers, and an assistant or tool role gives it nothing to answer`;
|
|
5359
|
+
}
|
|
5360
|
+
function refineEvalMessageTextRole(value, ctx) {
|
|
5361
|
+
const error = evalInputRoleError(value.eval.message_text);
|
|
5362
|
+
if (error) {
|
|
5363
|
+
ctx.addIssue({
|
|
5364
|
+
code: external_exports.ZodIssueCode.custom,
|
|
5365
|
+
path: ["eval", "message_text", "role"],
|
|
5366
|
+
message: error
|
|
5367
|
+
});
|
|
5368
|
+
}
|
|
5369
|
+
}
|
|
5246
5370
|
function refineHubAsCodeCustomTools(config, ctx) {
|
|
5247
5371
|
const agents = config.agents;
|
|
5248
5372
|
if (!Array.isArray(agents)) return;
|
|
@@ -5334,6 +5458,22 @@ function refineHubAsCodeLanes(config, ctx) {
|
|
|
5334
5458
|
}
|
|
5335
5459
|
}
|
|
5336
5460
|
}
|
|
5461
|
+
function refineHubAsCodeEvals(config, ctx) {
|
|
5462
|
+
const evals = config.evals;
|
|
5463
|
+
if (!Array.isArray(evals)) return;
|
|
5464
|
+
for (let e = 0; e < evals.length; e++) {
|
|
5465
|
+
const entry = evals[e];
|
|
5466
|
+
const error = evalInputRoleError(entry?.input);
|
|
5467
|
+
if (error) {
|
|
5468
|
+
ctx.addIssue({
|
|
5469
|
+
code: external_exports.ZodIssueCode.custom,
|
|
5470
|
+
path: ["evals", e, "input", "role"],
|
|
5471
|
+
// Named, not just indexed — the YAML author has files, not an array.
|
|
5472
|
+
message: `eval "${entry?.name ?? "<unnamed>"}": ${error}`
|
|
5473
|
+
});
|
|
5474
|
+
}
|
|
5475
|
+
}
|
|
5476
|
+
}
|
|
5337
5477
|
function isSafeTemplatePath(path27) {
|
|
5338
5478
|
if (path27.length === 0 || path27.length > 300) return false;
|
|
5339
5479
|
if (path27.startsWith("/") || path27.includes("\\")) return false;
|
|
@@ -5407,7 +5547,7 @@ function findStepBoundaries(transcript) {
|
|
|
5407
5547
|
}
|
|
5408
5548
|
return out;
|
|
5409
5549
|
}
|
|
5410
|
-
var APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, uuidSchema, paginationSchema, timestampSchema, idParamSchema, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, summarizationThresholdField, monitorConfigField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, SLUG_REGEX, slugSchema, INVISIBLE_NAME_CHARS, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, orgResourceIdParam, orgResourceFileIdParam, orgResourceFolderIdParam, hubOrgResourceParam, listOrgResourcesQuery, orgIdQuery, createOrgResourceBody, updateOrgResourceBody, createOrgResourceFolderBody, updateOrgResourceFolderBody, uploadOrgResourceFileBody, updateOrgResourceFileBody, uploadOrgSkillZipBody, linkOrgResourceBody, resourceIdParam, listResourcesQuery, createResourceBody, updateResourceBody, syncSkillsBody, resourceFileIdParam, listResourceFilesQuery, createResourceFileBody, updateResourceFileBody, uploadResourceFileBody, uploadSkillZipBody, resourceFolderIdParam, listResourceFoldersQuery, createResourceFolderBody, updateResourceFolderBody, agentResourceQuery, hubResourceQuery, linkAgentResourceBody, updateAgentResourceBody, unlinkAgentResourceQuery, navItemSchema, hubCountResetBody, navItemCountResetBody, typingBody, analyticsHubIdParam, analyticsVariableIdParam, updateVariablePinBody, updateAnalyticsViewBody, NUMERIC_FILTER_OPS, TEXT_FILTER_OPS, CATEGORICAL_FILTER_OPS, VARIABLE_FILTER_OPS, STRUCTURED_QUERY_OPS, STRUCTURED_QUERY_AGGREGATIONS, filterValueSchema, conversationsBody, analyticsConversationIdParam, messagesQuery, conversationDetailDataQuery, analyticsDataBody, structuredQueryBody, analyticsSqlBody, analyticsSqlSchemaQuery, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, createEvalBody, updateEvalBody, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, getConversationsQuery, getMessagesQuery, clientOptionalString, clientOptionalBoolean, appMessageSenderType, appMessageReceiverType, appMessageAttachment, MAX_ATTACHMENTS_PER_MESSAGE, appMessageBody, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, activityQuery, deletionModeSchema, deletionRequestBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, sendMessageBody, listConversationsQuery, getConversationDetailParams, getConversationDetailQuery, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, downloadBody, uploadQuery, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, uuidPattern, ciUuidSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, adminPlanIdParam, adminHubIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, adminSetOrgHarnessBody, adminSetHubHarnessBody, adminScopedTargetBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysQuery, dataExplorerKvKeyParam, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteQuery, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, browserParams, browserFoldersQuery, browserFilesQuery, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, sentryRefStatusSchema, createReportBody, editReportBody, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, requestSnapshotChunkMessage, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, PERMISSIONS, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, tokenGrantScopeSchema, tokenGrantSchema, tokenMetadataSchema, listTokensResponse, createTokenResponse, orgTokenSummarySchema, listOrgTokensResponse, invitePreviewQuery, invitePreviewResponse, discordTier, discordBillingCycle, discordMetadata, discordOAuthStartResponse, discordOAuthFinalizeBody, discordOAuthFinalizeResponse, discordDisconnectResponse, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, templateLocaleSchema, TEMPLATE_SLUG_REGEX, templateSlugSchema, templateStatusSchema, templateFileMapSchema, templateTextSchema, templateUsesEntrySchema, templateUsesSchema, templateYamlLocaleEntry, templateYamlWayaiBlock, templateTagsSchema, templateYamlSchema, templateHeroSchema, templatePushLocaleSchema, templatePushBody, templateListQuery, templateSlugParam, templateDetailQuery, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, WAYAI_WORKSPACE_LAYOUT, MAX_RESOURCE_FILE_SIZE;
|
|
5550
|
+
var APP_ERROR_BRAND, AppError, LLM_RATE_LIMIT_BRAND, LlmRateLimitError, LLM_PROVIDER_HTTP_BRAND, LlmProviderHttpError, LLM_PROVIDER_TIMEOUT_BRAND, LlmProviderTimeoutError, ExternalServiceError, CHANNEL_PROVIDER_HTTP_BRAND, ChannelProviderHttpError, MEDIA_PROVIDER_HTTP_BRAND, MediaProviderHttpError, AUTH_TYPE, ORG_CREDENTIAL_AUTH_TYPES, AUTH_TYPE_DISPLAY, LEGACY_AUTH_TYPE_MAP, VALID_AUTH_TYPES, AGENT_ROLES, SAFE_USER_ID_REGEX, SUPPORTED_LOCALES, uuidSchema, paginationSchema, timestampSchema, idParamSchema, primaryRegionSchema, placementSourceSchema, orgIdParam, orgAdminIdParam, createOrganizationBody, updateOrganizationBody, addOrgAdminBody, SUMMARIZATION_THRESHOLD_MIN, SUMMARIZATION_THRESHOLD_MAX, summarizationThresholdField, monitorConfigField, agentIdParam, listAgentsQuery, agentConnectionsQuery, createAgentBody, updateAgentBody, AGENT_PARAMETER_TYPES, AGENT_PARAMETER_NAME_REGEX, agentParameterCreateSchema, MAX_AGENT_PARAMETERS_PER_REQUEST, createAgentParametersBody, SLUG_REGEX, slugSchema, INVISIBLE_NAME_CHARS, MAX_KANBAN_STATUSES, MAX_FOLLOWUPS_PER_STATUS, MAX_LANES, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES, RESERVED_TEMPLATE_DUMP_NAME, kanbanStatusSlugSchema, followupSchema, EXCLUSIVE_FLAG_PAIRS, kanbanStatusSchema, kanbanStatusesArraySchema, laneSchema, lanesArraySchema, hubIdParam, hubAdminIdParam, hubUserIdParam, hubIdentityIdParam, hubTeamIdParam, hubTeamUserDeleteParam, hubSchemaQuery, PREVIEW_LABEL_MAX_LENGTH, MAX_ENDED_INDEX_RETENTION_DAYS, previewLabelField, createHubBody, updateHubBody, addHubAdminBody, addHubIdentityAuthorizationBody, contactDecisionBody, approveContactBody, listContactAccessQuery, createHubTeamBody, updateHubTeamBody, addHubTeamUserBody, reassignHubUserBody, replicatePreviewBody, updateChannelTestIdentitiesBody, claimCodeChannelParam, claimCodeDeleteParam, connectionIdParam, connectorIdParam, listConnectionsQuery, deleteConnectionQuery, addConnectionBody, editConnectionBody, PRODUCTION_DIRECT_FIELDS, setProductionCredentialBody, registerWhatsappQuery, registerWhatsappBody, retryProvisioningQuery, resendDomainStatusQuery, PLACEHOLDER_TOKENS, ALLOWED_TYPES, SUBSCHEMA_OBJECT_KEYWORDS, SUBSCHEMA_LIST_KEYWORDS, SUBSCHEMA_MAP_KEYWORDS, MAX_SCHEMA_DEPTH, toolIdParam, listToolsQuery, toolAgentQuery, deleteToolQuery, toolConnectionsQuery, nativeToolIdSchema, addNativeToolBody, addMcpToolBody, createCustomToolBody, updateCustomToolBody, updateToolExecutionConfigBody, initialValueCreateSchema, initialValueUpdateSchema, stateIdParam, listStatesQuery, stateNameSchema, createStateBody, updateStateBody, reorderStatesBody, variantAiModeSchema, experimentStatusSchema, overlayUpdateSchema, experimentIdParam, variantIdParam, listExperimentsQuery, listVariantsQuery, listOverridesQuery, deleteOverrideQuery, createExperimentBody, updateExperimentBody, setExperimentStatusBody, createVariantBody, updateVariantBody, upsertOverrideBody, orgTagIdParam, listOrgTagsQuery, createOrgTagBody, updateOrgTagBody, orgCredentialIdParam, listOrgCredentialsQuery, createOrgCredentialBody, updateOrgCredentialBody, orgResourceIdParam, orgResourceFileIdParam, orgResourceFolderIdParam, hubOrgResourceParam, listOrgResourcesQuery, orgIdQuery, createOrgResourceBody, updateOrgResourceBody, createOrgResourceFolderBody, updateOrgResourceFolderBody, uploadOrgResourceFileBody, updateOrgResourceFileBody, uploadOrgSkillZipBody, linkOrgResourceBody, resourceIdParam, listResourcesQuery, createResourceBody, updateResourceBody, syncSkillsBody, resourceFileIdParam, listResourceFilesQuery, createResourceFileBody, updateResourceFileBody, uploadResourceFileBody, uploadSkillZipBody, resourceFolderIdParam, listResourceFoldersQuery, createResourceFolderBody, updateResourceFolderBody, agentResourceQuery, hubResourceQuery, linkAgentResourceBody, updateAgentResourceBody, unlinkAgentResourceQuery, navItemSchema, hubCountResetBody, navItemCountResetBody, typingBody, analyticsHubIdParam, analyticsVariableIdParam, updateVariablePinBody, updateAnalyticsViewBody, NUMERIC_FILTER_OPS, TEXT_FILTER_OPS, CATEGORICAL_FILTER_OPS, VARIABLE_FILTER_OPS, STRUCTURED_QUERY_OPS, STRUCTURED_QUERY_AGGREGATIONS, filterValueSchema, conversationsBody, analyticsConversationIdParam, messagesQuery, conversationDetailDataQuery, analyticsDataBody, structuredQueryBody, analyticsSqlBody, analyticsSqlSchemaQuery, EVAL_PACING_PRESET_NAMES, PACING_INTERVAL_MIN_MS, PACING_INTERVAL_MAX_MS, EVAL_RUN_DEADLINE_MIN_MS, EVAL_RUN_DEADLINE_MAX_MS, paginationSchema2, evalIdParam, sessionIdParam, scenarioSetIdParam, hubIdQuery, EVAL_INPUT_ROLES, EVAL_INPUT_ROLE_LIST, ROLE_ECHO_MAX, createEvalBody, updateEvalBody, getEvalsQuery, toggleEvalBody, bulkToggleEvalsBody, pacingConfigSchema, sessionConfigSchema, createSessionBody, getSessionsQuery, getSessionResultsQuery, getSessionRunsQuery, evalAnalyticsQuery, getSessionCostQuery, compareSessionsQuery, evalsSqlBody, evalsSqlSchemaQuery, exportResultsQuery, validateEvalBody, hubAgentsQuery, createScenarioSetBody, updateScenarioSetBody, scenarioSetsHubQuery, createScenarioFromConversationBody, createJourneyFromConversationBody, journeyIdParam, journeyToolCallSchema, journeyTurnSchema, journeyStepOverrideSchema, fixtureField, createJourneyBody, updateJourneyBody, getConversationsQuery, getMessagesQuery, clientOptionalString, clientOptionalBoolean, appMessageSenderType, appMessageReceiverType, appMessageAttachment, MAX_ATTACHMENTS_PER_MESSAGE, appMessageBody, updateUserBody, updateProfileBody, pathnameRegex, updatePreferencesBody, registerPushTokenBody, deletePushTokenQuery, activityQuery, deletionModeSchema, deletionRequestBody, archiveHubIdParam, archiveConversationParams, archiveListQuery, archiveMessageObservabilityParams, conversationIdParam, claimBody, releaseBody, transferBody, closeBody, additionalContextPayloadSchema, kanbanUpdateBody, annotateConversationBody, observabilityParams, observabilityListParams, deleteUserConversationsBody, sendMessageBody, listConversationsQuery, getConversationDetailParams, getConversationDetailQuery, listWhatsAppTemplatesQuery, sendWhatsAppTemplateBody, billingOrgIdParam, subscriptionItemParams, spendCapBody, growthPacksBody, portalSessionBody, checkoutSessionBody, updateBillingCurrencyBody, invoicesQuery, downloadBody, uploadQuery, signUrlBody, outboundSchemaQuery, templateIdParam, listTemplatesQuery, deleteTemplateQuery, templateStatusQuery, createTemplateBody, updateTemplateBody, submitTemplateBody, testTemplateBody, contactIdParam, listContactsQuery, createContactBody, updateContactBody, listIdParam, listListsQuery, listListContactsQuery, createListBody, updateListBody, addListContactsBody, removeListContactsBody, scheduleIdParam, listSchedulesQuery, listExecutionsQuery, createScheduleBody, updateScheduleBody, uuidPattern, ciUuidSchema, hubAsCodeConfigSchema, ciPullHubIdParam, ciBranchParam, ciPullQuery, ciHubsQuery, ciLookupQuery, ciBranchesQuery, ciSyncBody, ciPushBody, ciDiffBody, ciPublishBody, ciPublishPreviewBody, ciSyncMcpBody, ciOrgResourcesParam, orgResourcesConfigSchema, ciOrgResourcesPushBody, ciOrgResourcesDiffBody, adminOrgIdParam, adminOrgAdminIdParam, adminUserIdParam, adminPlanIdParam, adminHubIdParam, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, adminSetOrgHarnessBody, adminSetHubHarnessBody, adminScopedTargetBody, updatePricingPlanBody, dataExplorerSearchQuery, dataExplorerOrgIdParam, dataExplorerHubIdParam, dataExplorerConvIdParam, dataExplorerDoInstancesQuery, dataExplorerNsIdParam, dataExplorerKvKeysQuery, dataExplorerKvKeyParam, uuidOrHexId, dataExplorerDeleteOrgParam, dataExplorerDeleteHubParam, dataExplorerDeleteConvParam, dataExplorerDeleteUserParam, dataExplorerDeleteQuery, dataExplorerKvDeleteQuery, pitrDoNamespace, pitrBookmarkParam, pitrRestoreBody, healthSamplingTriggerBody, dataExplorerDebugDoType, DEBUG_READ_MAX_LIMIT, DEBUG_READ_DEFAULT_LIMIT, DEBUG_DO_HEX_PREFIX, debugDoEntityId, debugTableName, dataExplorerDebugTablesParam, dataExplorerDebugRowsParam, dataExplorerDebugRowsQuery, dataExplorerDebugAnalyticsTable, debugUuid, dataExplorerDebugAnalyticsRowsParam, dataExplorerDebugAnalyticsRowsQuery, debugHubConvParam, debugMessageIdQuery, sandboxEgressPolicy, SANDBOX_EXEC_MAX_CMD_LENGTH, SANDBOX_EXEC_MAX_ALLOWLIST, SANDBOX_EXEC_MAX_TIMEOUT_MS, adminSandboxExecBody, whatsappCallbackBody, authMeResponse, wsTicketResponse, sessionCheckResponse, logoutResponse, magicCodeSendBody, magicCodeSendResponse, magicCodeVerifyBody, magicCodeVerifyResponse, browserParams, browserFoldersQuery, browserFilesQuery, stateOperationBody, conversationListResourcesQuery, conversationReadResourceQuery, listPendingSchedulesQuery, listHubAggregateSchedulesQuery, reportSourceSchema, intakeReportSourceSchema, reportClassificationSchema, reportStatusSchema, reportLocaleSchema, reportMessageAuthorRoleSchema, sentryRefStatusSchema, createReportBody, editReportBody, contestReportBody, reporterListQuery, listReportsQuery, GITHUB_ISSUE_URL_REGEX, githubIssueUrlSchema, transitionReportBody, groupReportsBody, holdReportBody, clickhouseReadyResponse, bootstrapQuery, requestSnapshotChunkMessage, MAX_NAME_LENGTH, MAX_VALUE_LENGTH, MAX_TAGS, MAX_TAG_LENGTH, MAX_SCOPE_HUBS, MAX_SCOPE_TAGS, vaultSecretScopeSchema, vaultCreateBody, vaultUpdateBody, PERMISSIONS, MAX_NAME_LENGTH2, MAX_HUBS_PER_GRANT, MAX_HUB_TAGS_PER_GRANT, MAX_GRANTS, permissionEnum, grantScopeSchema, grantSchema, createTokenBody, tokenOrgIdParam, tokenGrantScopeSchema, tokenGrantSchema, tokenMetadataSchema, listTokensResponse, createTokenResponse, orgTokenSummarySchema, listOrgTokensResponse, invitePreviewQuery, invitePreviewResponse, discordTier, discordBillingCycle, discordMetadata, discordOAuthStartResponse, discordOAuthFinalizeBody, discordOAuthFinalizeResponse, discordDisconnectResponse, jsonSchemaSchema, hubUserIdentity, stateValueEntry, getHubUserContextResponse, updateHubUserBody, updateHubUserResponse, unlockHubUserNameResponse, stateResetParams, stateResetResponse, hubAlertsParam, hubAlertSeverity, hubAlert, hubAlertsListResponse, noticeSeveritySchema, noticeStatusSchema, NOTICE_SCOPE_REGEX, noticeScopeSchema, noticeLinkSchema, createNoticeBody, updateNoticeBody, listNoticesQuery, noticeIdParamSchema, templateLocaleSchema, TEMPLATE_SLUG_REGEX, templateSlugSchema, templateStatusSchema, templateFileMapSchema, templateTextSchema, templateUsesEntrySchema, templateUsesSchema, templateYamlLocaleEntry, templateYamlWayaiBlock, templateTagsSchema, templateYamlSchema, templateHeroSchema, templatePushLocaleSchema, templatePushBody, templateListQuery, templateSlugParam, templateDetailQuery, ADMIN_SKILL_NAME_REGEX, adminSkillNameParam, WAYAI_WORKSPACE_LAYOUT, MAX_RESOURCE_FILE_SIZE;
|
|
5411
5551
|
var init_dist = __esm({
|
|
5412
5552
|
"../../packages/core/dist/index.js"() {
|
|
5413
5553
|
"use strict";
|
|
@@ -5756,7 +5896,7 @@ var init_dist = __esm({
|
|
|
5756
5896
|
eventName: external_exports.string().optional(),
|
|
5757
5897
|
additional_instructions: external_exports.string().optional(),
|
|
5758
5898
|
additional_context_schema: external_exports.record(external_exports.unknown()).refine(
|
|
5759
|
-
(s) =>
|
|
5899
|
+
(s) => withinJsonLength(s, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES),
|
|
5760
5900
|
`additional_context_schema must be at most ${MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES} bytes when JSON-serialized`
|
|
5761
5901
|
).optional(),
|
|
5762
5902
|
followups: external_exports.array(followupSchema).max(MAX_FOLLOWUPS_PER_STATUS, `followups must have at most ${MAX_FOLLOWUPS_PER_STATUS} entries`).optional(),
|
|
@@ -5982,6 +6122,9 @@ var init_dist = __esm({
|
|
|
5982
6122
|
replicatePreviewBody = external_exports.object({
|
|
5983
6123
|
preview_label: previewLabelField
|
|
5984
6124
|
});
|
|
6125
|
+
updateChannelTestIdentitiesBody = external_exports.object({
|
|
6126
|
+
test_identities: external_exports.array(external_exports.string().max(320)).max(1e3)
|
|
6127
|
+
});
|
|
5985
6128
|
claimCodeChannelParam = external_exports.object({
|
|
5986
6129
|
id: uuidSchema,
|
|
5987
6130
|
channelId: uuidSchema
|
|
@@ -6632,12 +6775,15 @@ var init_dist = __esm({
|
|
|
6632
6775
|
hubIdQuery = external_exports.object({
|
|
6633
6776
|
hub_id: external_exports.string().uuid()
|
|
6634
6777
|
});
|
|
6778
|
+
EVAL_INPUT_ROLES = ["user", "system"];
|
|
6779
|
+
EVAL_INPUT_ROLE_LIST = EVAL_INPUT_ROLES.map((r) => `"${r}"`).join(" or ");
|
|
6780
|
+
ROLE_ECHO_MAX = 40;
|
|
6635
6781
|
createEvalBody = external_exports.object({
|
|
6636
6782
|
eval: external_exports.record(external_exports.unknown())
|
|
6637
|
-
});
|
|
6783
|
+
}).superRefine(refineEvalMessageTextRole);
|
|
6638
6784
|
updateEvalBody = external_exports.object({
|
|
6639
6785
|
eval: external_exports.record(external_exports.unknown())
|
|
6640
|
-
});
|
|
6786
|
+
}).superRefine(refineEvalMessageTextRole);
|
|
6641
6787
|
getEvalsQuery = external_exports.object({
|
|
6642
6788
|
hub_id: external_exports.string().uuid(),
|
|
6643
6789
|
agent_id: external_exports.string().uuid().optional(),
|
|
@@ -6809,6 +6955,15 @@ var init_dist = __esm({
|
|
|
6809
6955
|
hub_user_id: external_exports.string().optional(),
|
|
6810
6956
|
search_filter: external_exports.string().optional(),
|
|
6811
6957
|
hub_id: external_exports.string().uuid().optional(),
|
|
6958
|
+
// NON-authorizing single-hub narrow. Unlike `hub_id` (which runs the
|
|
6959
|
+
// grant-gated `loadHub('hub:read')` and so throws for grant-less end users /
|
|
6960
|
+
// team members), `scope_hub_id` INTERSECTS the caller's already-resolved hub
|
|
6961
|
+
// roster server-side. Intersecting the caller's own roster IS the
|
|
6962
|
+
// authorization — a hub the caller isn't in narrows to empty and leaks
|
|
6963
|
+
// nothing. Continuous history sends it to take the single-hub ended-index
|
|
6964
|
+
// path (one HubDO read, accurate uncapped total) instead of the all-hub
|
|
6965
|
+
// fan-out it would otherwise discard client-side (gh #3319).
|
|
6966
|
+
scope_hub_id: external_exports.string().uuid().optional(),
|
|
6812
6967
|
conversation_id: external_exports.string().uuid().optional(),
|
|
6813
6968
|
// 'ended' = recently-closed, served warm from the HubDO index (≤ retention
|
|
6814
6969
|
// window). 'archived' = the full closed-conversation history from ClickHouse.
|
|
@@ -7015,7 +7170,7 @@ var init_dist = __esm({
|
|
|
7015
7170
|
hub_type: external_exports.enum(["chat", "task"]).default("chat"),
|
|
7016
7171
|
user_id: external_exports.string().optional()
|
|
7017
7172
|
});
|
|
7018
|
-
additionalContextPayloadSchema = external_exports.record(external_exports.unknown()).refine((r) =>
|
|
7173
|
+
additionalContextPayloadSchema = external_exports.record(external_exports.unknown()).refine((r) => withinJsonLength(r, 16384), {
|
|
7019
7174
|
message: "additional_context payload must be at most 16384 bytes when JSON-serialized"
|
|
7020
7175
|
});
|
|
7021
7176
|
kanbanUpdateBody = external_exports.object({
|
|
@@ -7275,6 +7430,7 @@ var init_dist = __esm({
|
|
|
7275
7430
|
refineHubAsCodeCustomTools(config, ctx);
|
|
7276
7431
|
refineHubAsCodeKanbanStatuses(config, ctx);
|
|
7277
7432
|
refineHubAsCodeLanes(config, ctx);
|
|
7433
|
+
refineHubAsCodeEvals(config, ctx);
|
|
7278
7434
|
});
|
|
7279
7435
|
ciPullHubIdParam = external_exports.object({
|
|
7280
7436
|
hub_id: ciUuidSchema
|
|
@@ -9361,7 +9517,7 @@ async function exchangeCodeForTokens(authkitDomain, clientId, code, codeVerifier
|
|
|
9361
9517
|
});
|
|
9362
9518
|
if (!response.ok) {
|
|
9363
9519
|
const body = await response.text();
|
|
9364
|
-
throw new Error(`Token exchange failed (${response.status}): ${
|
|
9520
|
+
throw new Error(`Token exchange failed (${response.status}): ${maskSecretsInMessage(body)}`);
|
|
9365
9521
|
}
|
|
9366
9522
|
return response.json();
|
|
9367
9523
|
}
|
|
@@ -9387,7 +9543,7 @@ async function refreshAccessToken(authkitDomain, clientId, refreshToken) {
|
|
|
9387
9543
|
}
|
|
9388
9544
|
if (isInvalidGrant) throw new Error("SESSION_EXPIRED");
|
|
9389
9545
|
}
|
|
9390
|
-
throw new Error(`Token refresh failed (${status}): ${
|
|
9546
|
+
throw new Error(`Token refresh failed (${status}): ${maskSecretsInMessage(body)}`);
|
|
9391
9547
|
}
|
|
9392
9548
|
return response.json();
|
|
9393
9549
|
}
|
|
@@ -9519,7 +9675,7 @@ var init_auth = __esm({
|
|
|
9519
9675
|
init_config();
|
|
9520
9676
|
init_token_store();
|
|
9521
9677
|
init_sentry();
|
|
9522
|
-
|
|
9678
|
+
init_mask_secrets();
|
|
9523
9679
|
OAUTH_CALLBACK_PORT = 3829;
|
|
9524
9680
|
AUTHKIT_DOMAIN = "https://sprightly-comic-51.authkit.app";
|
|
9525
9681
|
AUTHKIT_CLIENT_ID = "client_01KMZHB50KENM5SV90ZA80VXK4";
|
|
@@ -12066,6 +12222,18 @@ var init_diff = __esm({
|
|
|
12066
12222
|
});
|
|
12067
12223
|
|
|
12068
12224
|
// ../../packages/core/dist/contracts/index.js
|
|
12225
|
+
function jsonLengthOrNull2(value) {
|
|
12226
|
+
try {
|
|
12227
|
+
const json = JSON.stringify(value);
|
|
12228
|
+
return typeof json === "string" ? json.length : null;
|
|
12229
|
+
} catch {
|
|
12230
|
+
return null;
|
|
12231
|
+
}
|
|
12232
|
+
}
|
|
12233
|
+
function withinJsonLength2(value, max) {
|
|
12234
|
+
const length = jsonLengthOrNull2(value);
|
|
12235
|
+
return length !== null && length <= max;
|
|
12236
|
+
}
|
|
12069
12237
|
function normalizeAuthType2(raw) {
|
|
12070
12238
|
if (VALID_AUTH_TYPES3.has(raw)) return raw;
|
|
12071
12239
|
return LEGACY_AUTH_TYPE_MAP3[raw] ?? raw;
|
|
@@ -12313,6 +12481,45 @@ function refineToolConfig2(value, ctx) {
|
|
|
12313
12481
|
}
|
|
12314
12482
|
}
|
|
12315
12483
|
}
|
|
12484
|
+
function describeRole2(role) {
|
|
12485
|
+
if (typeof role === "string") {
|
|
12486
|
+
return JSON.stringify(role.length > ROLE_ECHO_MAX2 ? `${role.slice(0, ROLE_ECHO_MAX2)}\u2026` : role);
|
|
12487
|
+
}
|
|
12488
|
+
if (role === null) return "null";
|
|
12489
|
+
if (Array.isArray(role)) return "an array";
|
|
12490
|
+
if (typeof role === "object") return "an object";
|
|
12491
|
+
return `a ${typeof role}`;
|
|
12492
|
+
}
|
|
12493
|
+
function asEvalInputRecord2(input) {
|
|
12494
|
+
const value = typeof input === "string" ? (() => {
|
|
12495
|
+
try {
|
|
12496
|
+
return JSON.parse(input);
|
|
12497
|
+
} catch {
|
|
12498
|
+
return null;
|
|
12499
|
+
}
|
|
12500
|
+
})() : input;
|
|
12501
|
+
return value !== null && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
12502
|
+
}
|
|
12503
|
+
function evalInputRoleError2(input) {
|
|
12504
|
+
const record = asEvalInputRecord2(input);
|
|
12505
|
+
if (record === null) return null;
|
|
12506
|
+
const role = record.role;
|
|
12507
|
+
if (role === void 0 || role === null) return null;
|
|
12508
|
+
if (typeof role === "string" && EVAL_INPUT_ROLES2.includes(role)) {
|
|
12509
|
+
return null;
|
|
12510
|
+
}
|
|
12511
|
+
return `role must be ${EVAL_INPUT_ROLE_LIST2} (received ${describeRole2(role)}) \u2014 an eval trigger is what the responder answers, and an assistant or tool role gives it nothing to answer`;
|
|
12512
|
+
}
|
|
12513
|
+
function refineEvalMessageTextRole2(value, ctx) {
|
|
12514
|
+
const error = evalInputRoleError2(value.eval.message_text);
|
|
12515
|
+
if (error) {
|
|
12516
|
+
ctx.addIssue({
|
|
12517
|
+
code: external_exports.ZodIssueCode.custom,
|
|
12518
|
+
path: ["eval", "message_text", "role"],
|
|
12519
|
+
message: error
|
|
12520
|
+
});
|
|
12521
|
+
}
|
|
12522
|
+
}
|
|
12316
12523
|
function refineHubAsCodeCustomTools2(config, ctx) {
|
|
12317
12524
|
const agents = config.agents;
|
|
12318
12525
|
if (!Array.isArray(agents)) return;
|
|
@@ -12404,6 +12611,22 @@ function refineHubAsCodeLanes2(config, ctx) {
|
|
|
12404
12611
|
}
|
|
12405
12612
|
}
|
|
12406
12613
|
}
|
|
12614
|
+
function refineHubAsCodeEvals2(config, ctx) {
|
|
12615
|
+
const evals = config.evals;
|
|
12616
|
+
if (!Array.isArray(evals)) return;
|
|
12617
|
+
for (let e = 0; e < evals.length; e++) {
|
|
12618
|
+
const entry = evals[e];
|
|
12619
|
+
const error = evalInputRoleError2(entry?.input);
|
|
12620
|
+
if (error) {
|
|
12621
|
+
ctx.addIssue({
|
|
12622
|
+
code: external_exports.ZodIssueCode.custom,
|
|
12623
|
+
path: ["evals", e, "input", "role"],
|
|
12624
|
+
// Named, not just indexed — the YAML author has files, not an array.
|
|
12625
|
+
message: `eval "${entry?.name ?? "<unnamed>"}": ${error}`
|
|
12626
|
+
});
|
|
12627
|
+
}
|
|
12628
|
+
}
|
|
12629
|
+
}
|
|
12407
12630
|
function isSafeTemplatePath2(path27) {
|
|
12408
12631
|
if (path27.length === 0 || path27.length > 300) return false;
|
|
12409
12632
|
if (path27.startsWith("/") || path27.includes("\\")) return false;
|
|
@@ -12442,7 +12665,7 @@ function isSanitizableSliceFile(path27) {
|
|
|
12442
12665
|
function distinctUsesBackends(uses) {
|
|
12443
12666
|
return [...new Set((uses ?? []).map((u) => u.backend))];
|
|
12444
12667
|
}
|
|
12445
|
-
var uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, AUTH_TYPE3, ORG_CREDENTIAL_AUTH_TYPES3, AUTH_TYPE_DISPLAY3, LEGACY_AUTH_TYPE_MAP3, VALID_AUTH_TYPES3, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, summarizationThresholdField2, monitorConfigField2, agentIdParam2, listAgentsQuery2, agentConnectionsQuery2, createAgentBody2, updateAgentBody2, AGENT_PARAMETER_TYPES2, AGENT_PARAMETER_NAME_REGEX2, agentParameterCreateSchema2, MAX_AGENT_PARAMETERS_PER_REQUEST2, createAgentParametersBody2, SLUG_REGEX2, slugSchema2, INVISIBLE_NAME_CHARS2, MAX_KANBAN_STATUSES2, MAX_FOLLOWUPS_PER_STATUS2, MAX_LANES2, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2, RESERVED_TEMPLATE_DUMP_NAME2, kanbanStatusSlugSchema2, followupSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, PRODUCTION_DIRECT_FIELDS2, setProductionCredentialBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, orgResourceIdParam2, orgResourceFileIdParam2, orgResourceFolderIdParam2, hubOrgResourceParam2, listOrgResourcesQuery2, orgIdQuery2, createOrgResourceBody2, updateOrgResourceBody2, createOrgResourceFolderBody2, updateOrgResourceFolderBody2, uploadOrgResourceFileBody2, updateOrgResourceFileBody2, uploadOrgSkillZipBody2, linkOrgResourceBody2, resourceIdParam2, listResourcesQuery2, createResourceBody2, updateResourceBody2, syncSkillsBody2, resourceFileIdParam2, listResourceFilesQuery2, createResourceFileBody2, updateResourceFileBody2, uploadResourceFileBody2, uploadSkillZipBody2, resourceFolderIdParam2, listResourceFoldersQuery2, createResourceFolderBody2, updateResourceFolderBody2, agentResourceQuery2, hubResourceQuery2, linkAgentResourceBody2, updateAgentResourceBody2, unlinkAgentResourceQuery2, navItemSchema2, hubCountResetBody2, navItemCountResetBody2, typingBody2, analyticsHubIdParam2, analyticsVariableIdParam2, updateVariablePinBody2, updateAnalyticsViewBody2, NUMERIC_FILTER_OPS2, TEXT_FILTER_OPS2, CATEGORICAL_FILTER_OPS2, VARIABLE_FILTER_OPS2, STRUCTURED_QUERY_OPS2, STRUCTURED_QUERY_AGGREGATIONS2, filterValueSchema2, conversationsBody2, analyticsConversationIdParam2, messagesQuery2, conversationDetailDataQuery2, analyticsDataBody2, structuredQueryBody2, analyticsSqlBody2, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, clientOptionalString2, clientOptionalBoolean2, appMessageSenderType2, appMessageReceiverType2, appMessageAttachment2, MAX_ATTACHMENTS_PER_MESSAGE2, appMessageBody2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, sendMessageBody2, listConversationsQuery2, getConversationDetailParams2, getConversationDetailQuery2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, downloadBody2, uploadQuery2, signUrlBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, uuidPattern2, ciUuidSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminHubIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminSetOrgHarnessBody2, adminSetHubHarnessBody2, adminScopedTargetBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysQuery2, dataExplorerKvKeyParam2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteQuery2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, sandboxEgressPolicy2, SANDBOX_EXEC_MAX_CMD_LENGTH2, SANDBOX_EXEC_MAX_ALLOWLIST2, SANDBOX_EXEC_MAX_TIMEOUT_MS2, adminSandboxExecBody2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, discordTier2, discordBillingCycle2, discordMetadata2, discordOAuthStartResponse2, discordOAuthFinalizeBody2, discordOAuthFinalizeResponse2, discordDisconnectResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2;
|
|
12668
|
+
var uuidSchema2, paginationSchema3, timestampSchema2, idParamSchema2, primaryRegionSchema2, placementSourceSchema2, orgIdParam2, orgAdminIdParam2, createOrganizationBody2, updateOrganizationBody2, addOrgAdminBody2, AUTH_TYPE3, ORG_CREDENTIAL_AUTH_TYPES3, AUTH_TYPE_DISPLAY3, LEGACY_AUTH_TYPE_MAP3, VALID_AUTH_TYPES3, AGENT_ROLES2, SAFE_USER_ID_REGEX2, SUPPORTED_LOCALES2, SUMMARIZATION_THRESHOLD_MIN2, SUMMARIZATION_THRESHOLD_MAX2, summarizationThresholdField2, monitorConfigField2, agentIdParam2, listAgentsQuery2, agentConnectionsQuery2, createAgentBody2, updateAgentBody2, AGENT_PARAMETER_TYPES2, AGENT_PARAMETER_NAME_REGEX2, agentParameterCreateSchema2, MAX_AGENT_PARAMETERS_PER_REQUEST2, createAgentParametersBody2, SLUG_REGEX2, slugSchema2, INVISIBLE_NAME_CHARS2, MAX_KANBAN_STATUSES2, MAX_FOLLOWUPS_PER_STATUS2, MAX_LANES2, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2, RESERVED_TEMPLATE_DUMP_NAME2, kanbanStatusSlugSchema2, followupSchema2, EXCLUSIVE_FLAG_PAIRS2, kanbanStatusSchema2, kanbanStatusesArraySchema2, laneSchema2, lanesArraySchema2, hubIdParam2, hubAdminIdParam2, hubUserIdParam2, hubIdentityIdParam2, hubTeamIdParam2, hubTeamUserDeleteParam2, hubSchemaQuery2, PREVIEW_LABEL_MAX_LENGTH2, MAX_ENDED_INDEX_RETENTION_DAYS2, previewLabelField2, createHubBody2, updateHubBody2, addHubAdminBody2, addHubIdentityAuthorizationBody2, contactDecisionBody2, approveContactBody2, listContactAccessQuery2, createHubTeamBody2, updateHubTeamBody2, addHubTeamUserBody2, reassignHubUserBody2, replicatePreviewBody2, updateChannelTestIdentitiesBody2, claimCodeChannelParam2, claimCodeDeleteParam2, connectionIdParam2, connectorIdParam2, listConnectionsQuery2, deleteConnectionQuery2, addConnectionBody2, editConnectionBody2, PRODUCTION_DIRECT_FIELDS2, setProductionCredentialBody2, registerWhatsappQuery2, registerWhatsappBody2, retryProvisioningQuery2, resendDomainStatusQuery2, PLACEHOLDER_TOKENS2, ALLOWED_TYPES2, SUBSCHEMA_OBJECT_KEYWORDS2, SUBSCHEMA_LIST_KEYWORDS2, SUBSCHEMA_MAP_KEYWORDS2, MAX_SCHEMA_DEPTH2, toolIdParam2, listToolsQuery2, toolAgentQuery2, deleteToolQuery2, toolConnectionsQuery2, nativeToolIdSchema2, addNativeToolBody2, addMcpToolBody2, createCustomToolBody2, updateCustomToolBody2, updateToolExecutionConfigBody2, initialValueCreateSchema2, initialValueUpdateSchema2, stateIdParam2, listStatesQuery2, stateNameSchema2, createStateBody2, updateStateBody2, reorderStatesBody2, variantAiModeSchema2, experimentStatusSchema2, overlayUpdateSchema2, experimentIdParam2, variantIdParam2, listExperimentsQuery2, listVariantsQuery2, listOverridesQuery2, deleteOverrideQuery2, createExperimentBody2, updateExperimentBody2, setExperimentStatusBody2, createVariantBody2, updateVariantBody2, upsertOverrideBody2, orgTagIdParam2, listOrgTagsQuery2, createOrgTagBody2, updateOrgTagBody2, orgCredentialIdParam2, listOrgCredentialsQuery2, createOrgCredentialBody2, updateOrgCredentialBody2, orgResourceIdParam2, orgResourceFileIdParam2, orgResourceFolderIdParam2, hubOrgResourceParam2, listOrgResourcesQuery2, orgIdQuery2, createOrgResourceBody2, updateOrgResourceBody2, createOrgResourceFolderBody2, updateOrgResourceFolderBody2, uploadOrgResourceFileBody2, updateOrgResourceFileBody2, uploadOrgSkillZipBody2, linkOrgResourceBody2, resourceIdParam2, listResourcesQuery2, createResourceBody2, updateResourceBody2, syncSkillsBody2, resourceFileIdParam2, listResourceFilesQuery2, createResourceFileBody2, updateResourceFileBody2, uploadResourceFileBody2, uploadSkillZipBody2, resourceFolderIdParam2, listResourceFoldersQuery2, createResourceFolderBody2, updateResourceFolderBody2, agentResourceQuery2, hubResourceQuery2, linkAgentResourceBody2, updateAgentResourceBody2, unlinkAgentResourceQuery2, navItemSchema2, hubCountResetBody2, navItemCountResetBody2, typingBody2, analyticsHubIdParam2, analyticsVariableIdParam2, updateVariablePinBody2, updateAnalyticsViewBody2, NUMERIC_FILTER_OPS2, TEXT_FILTER_OPS2, CATEGORICAL_FILTER_OPS2, VARIABLE_FILTER_OPS2, STRUCTURED_QUERY_OPS2, STRUCTURED_QUERY_AGGREGATIONS2, filterValueSchema2, conversationsBody2, analyticsConversationIdParam2, messagesQuery2, conversationDetailDataQuery2, analyticsDataBody2, structuredQueryBody2, analyticsSqlBody2, analyticsSqlSchemaQuery2, EVAL_PACING_PRESET_NAMES2, PACING_INTERVAL_MIN_MS2, PACING_INTERVAL_MAX_MS2, EVAL_RUN_DEADLINE_MIN_MS2, EVAL_RUN_DEADLINE_MAX_MS2, paginationSchema22, evalIdParam2, sessionIdParam2, scenarioSetIdParam2, hubIdQuery2, EVAL_INPUT_ROLES2, EVAL_INPUT_ROLE_LIST2, ROLE_ECHO_MAX2, createEvalBody2, updateEvalBody2, getEvalsQuery2, toggleEvalBody2, bulkToggleEvalsBody2, pacingConfigSchema2, sessionConfigSchema2, createSessionBody2, getSessionsQuery2, getSessionResultsQuery2, getSessionRunsQuery2, evalAnalyticsQuery2, getSessionCostQuery2, compareSessionsQuery2, evalsSqlBody2, evalsSqlSchemaQuery2, exportResultsQuery2, validateEvalBody2, hubAgentsQuery2, createScenarioSetBody2, updateScenarioSetBody2, scenarioSetsHubQuery2, createScenarioFromConversationBody2, createJourneyFromConversationBody2, journeyIdParam2, journeyToolCallSchema2, journeyTurnSchema2, journeyStepOverrideSchema2, fixtureField2, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, clientOptionalString2, clientOptionalBoolean2, appMessageSenderType2, appMessageReceiverType2, appMessageAttachment2, MAX_ATTACHMENTS_PER_MESSAGE2, appMessageBody2, updateUserBody2, updateProfileBody2, pathnameRegex2, updatePreferencesBody2, registerPushTokenBody2, deletePushTokenQuery2, activityQuery2, deletionModeSchema2, deletionRequestBody2, archiveHubIdParam2, archiveConversationParams2, archiveListQuery2, archiveMessageObservabilityParams2, conversationIdParam2, claimBody2, releaseBody2, transferBody2, closeBody2, additionalContextPayloadSchema2, kanbanUpdateBody2, annotateConversationBody2, observabilityParams2, observabilityListParams2, deleteUserConversationsBody2, sendMessageBody2, listConversationsQuery2, getConversationDetailParams2, getConversationDetailQuery2, listWhatsAppTemplatesQuery2, sendWhatsAppTemplateBody2, billingOrgIdParam2, subscriptionItemParams2, spendCapBody2, growthPacksBody2, portalSessionBody2, checkoutSessionBody2, updateBillingCurrencyBody2, invoicesQuery2, downloadBody2, uploadQuery2, signUrlBody2, outboundSchemaQuery2, templateIdParam2, listTemplatesQuery2, deleteTemplateQuery2, templateStatusQuery2, createTemplateBody2, updateTemplateBody2, submitTemplateBody2, testTemplateBody2, contactIdParam2, listContactsQuery2, createContactBody2, updateContactBody2, listIdParam2, listListsQuery2, listListContactsQuery2, createListBody2, updateListBody2, addListContactsBody2, removeListContactsBody2, scheduleIdParam2, listSchedulesQuery2, listExecutionsQuery2, createScheduleBody2, updateScheduleBody2, uuidPattern2, ciUuidSchema2, hubAsCodeConfigSchema2, ciPullHubIdParam2, ciBranchParam2, ciPullQuery2, ciHubsQuery2, ciLookupQuery2, ciBranchesQuery2, ciSyncBody2, ciPushBody2, ciDiffBody2, ciPublishBody2, ciPublishPreviewBody2, ciSyncMcpBody2, ciOrgResourcesParam2, orgResourcesConfigSchema2, ciOrgResourcesPushBody2, ciOrgResourcesDiffBody2, adminOrgIdParam2, adminOrgAdminIdParam2, adminUserIdParam2, adminPlanIdParam2, adminHubIdParam2, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, adminSetOrgHarnessBody2, adminSetHubHarnessBody2, adminScopedTargetBody2, updatePricingPlanBody2, dataExplorerSearchQuery2, dataExplorerOrgIdParam2, dataExplorerHubIdParam2, dataExplorerConvIdParam2, dataExplorerDoInstancesQuery2, dataExplorerNsIdParam2, dataExplorerKvKeysQuery2, dataExplorerKvKeyParam2, uuidOrHexId2, dataExplorerDeleteOrgParam2, dataExplorerDeleteHubParam2, dataExplorerDeleteConvParam2, dataExplorerDeleteUserParam2, dataExplorerDeleteQuery2, dataExplorerKvDeleteQuery2, pitrDoNamespace2, pitrBookmarkParam2, pitrRestoreBody2, healthSamplingTriggerBody2, dataExplorerDebugDoType2, DEBUG_READ_MAX_LIMIT2, DEBUG_READ_DEFAULT_LIMIT2, DEBUG_DO_HEX_PREFIX2, debugDoEntityId2, debugTableName2, dataExplorerDebugTablesParam2, dataExplorerDebugRowsParam2, dataExplorerDebugRowsQuery2, dataExplorerDebugAnalyticsTable2, debugUuid2, dataExplorerDebugAnalyticsRowsParam2, dataExplorerDebugAnalyticsRowsQuery2, debugHubConvParam2, debugMessageIdQuery2, sandboxEgressPolicy2, SANDBOX_EXEC_MAX_CMD_LENGTH2, SANDBOX_EXEC_MAX_ALLOWLIST2, SANDBOX_EXEC_MAX_TIMEOUT_MS2, adminSandboxExecBody2, whatsappCallbackBody2, authMeResponse2, wsTicketResponse2, sessionCheckResponse2, logoutResponse2, magicCodeSendBody2, magicCodeSendResponse2, magicCodeVerifyBody2, magicCodeVerifyResponse2, browserParams2, browserFoldersQuery2, browserFilesQuery2, stateOperationBody2, conversationListResourcesQuery2, conversationReadResourceQuery2, listPendingSchedulesQuery2, listHubAggregateSchedulesQuery2, reportSourceSchema2, intakeReportSourceSchema2, reportClassificationSchema2, reportStatusSchema2, reportLocaleSchema2, reportMessageAuthorRoleSchema2, sentryRefStatusSchema2, createReportBody2, editReportBody2, contestReportBody2, reporterListQuery2, listReportsQuery2, GITHUB_ISSUE_URL_REGEX2, githubIssueUrlSchema2, transitionReportBody2, groupReportsBody2, holdReportBody2, clickhouseReadyResponse2, bootstrapQuery2, requestSnapshotChunkMessage2, MAX_NAME_LENGTH3, MAX_VALUE_LENGTH2, MAX_TAGS2, MAX_TAG_LENGTH2, MAX_SCOPE_HUBS2, MAX_SCOPE_TAGS2, vaultSecretScopeSchema2, vaultCreateBody2, vaultUpdateBody2, PERMISSIONS2, MAX_NAME_LENGTH22, MAX_HUBS_PER_GRANT2, MAX_HUB_TAGS_PER_GRANT2, MAX_GRANTS2, permissionEnum2, grantScopeSchema2, grantSchema2, createTokenBody2, tokenOrgIdParam2, tokenGrantScopeSchema2, tokenGrantSchema2, tokenMetadataSchema2, listTokensResponse2, createTokenResponse2, orgTokenSummarySchema2, listOrgTokensResponse2, invitePreviewQuery2, invitePreviewResponse2, discordTier2, discordBillingCycle2, discordMetadata2, discordOAuthStartResponse2, discordOAuthFinalizeBody2, discordOAuthFinalizeResponse2, discordDisconnectResponse2, jsonSchemaSchema2, hubUserIdentity2, stateValueEntry2, getHubUserContextResponse2, updateHubUserBody2, updateHubUserResponse2, unlockHubUserNameResponse2, stateResetParams2, stateResetResponse2, hubAlertsParam2, hubAlertSeverity2, hubAlert2, hubAlertsListResponse2, noticeSeveritySchema2, noticeStatusSchema2, NOTICE_SCOPE_REGEX2, noticeScopeSchema2, noticeLinkSchema2, createNoticeBody2, updateNoticeBody2, listNoticesQuery2, noticeIdParamSchema2, templateLocaleSchema2, TEMPLATE_SLUG_REGEX2, templateSlugSchema2, templateStatusSchema2, templateFileMapSchema2, TEMPLATE_INSTANCE_ID_KEYS, TEMPLATE_OPAQUE_BLOB_KEYS, TEMPLATE_AUTHOR_DATA_KEYS, templateTextSchema2, templateUsesEntrySchema2, templateUsesSchema2, templateYamlLocaleEntry2, templateYamlWayaiBlock2, templateTagsSchema2, templateYamlSchema2, templateHeroSchema2, templatePushLocaleSchema2, templatePushBody2, templateListQuery2, templateSlugParam2, templateDetailQuery2, ADMIN_SKILL_NAME_REGEX2, adminSkillNameParam2;
|
|
12446
12669
|
var init_contracts = __esm({
|
|
12447
12670
|
"../../packages/core/dist/contracts/index.js"() {
|
|
12448
12671
|
"use strict";
|
|
@@ -12706,7 +12929,7 @@ var init_contracts = __esm({
|
|
|
12706
12929
|
eventName: external_exports.string().optional(),
|
|
12707
12930
|
additional_instructions: external_exports.string().optional(),
|
|
12708
12931
|
additional_context_schema: external_exports.record(external_exports.unknown()).refine(
|
|
12709
|
-
(s) =>
|
|
12932
|
+
(s) => withinJsonLength2(s, MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2),
|
|
12710
12933
|
`additional_context_schema must be at most ${MAX_ADDITIONAL_CONTEXT_SCHEMA_BYTES2} bytes when JSON-serialized`
|
|
12711
12934
|
).optional(),
|
|
12712
12935
|
followups: external_exports.array(followupSchema2).max(MAX_FOLLOWUPS_PER_STATUS2, `followups must have at most ${MAX_FOLLOWUPS_PER_STATUS2} entries`).optional(),
|
|
@@ -12932,6 +13155,9 @@ var init_contracts = __esm({
|
|
|
12932
13155
|
replicatePreviewBody2 = external_exports.object({
|
|
12933
13156
|
preview_label: previewLabelField2
|
|
12934
13157
|
});
|
|
13158
|
+
updateChannelTestIdentitiesBody2 = external_exports.object({
|
|
13159
|
+
test_identities: external_exports.array(external_exports.string().max(320)).max(1e3)
|
|
13160
|
+
});
|
|
12935
13161
|
claimCodeChannelParam2 = external_exports.object({
|
|
12936
13162
|
id: uuidSchema2,
|
|
12937
13163
|
channelId: uuidSchema2
|
|
@@ -13582,12 +13808,15 @@ var init_contracts = __esm({
|
|
|
13582
13808
|
hubIdQuery2 = external_exports.object({
|
|
13583
13809
|
hub_id: external_exports.string().uuid()
|
|
13584
13810
|
});
|
|
13811
|
+
EVAL_INPUT_ROLES2 = ["user", "system"];
|
|
13812
|
+
EVAL_INPUT_ROLE_LIST2 = EVAL_INPUT_ROLES2.map((r) => `"${r}"`).join(" or ");
|
|
13813
|
+
ROLE_ECHO_MAX2 = 40;
|
|
13585
13814
|
createEvalBody2 = external_exports.object({
|
|
13586
13815
|
eval: external_exports.record(external_exports.unknown())
|
|
13587
|
-
});
|
|
13816
|
+
}).superRefine(refineEvalMessageTextRole2);
|
|
13588
13817
|
updateEvalBody2 = external_exports.object({
|
|
13589
13818
|
eval: external_exports.record(external_exports.unknown())
|
|
13590
|
-
});
|
|
13819
|
+
}).superRefine(refineEvalMessageTextRole2);
|
|
13591
13820
|
getEvalsQuery2 = external_exports.object({
|
|
13592
13821
|
hub_id: external_exports.string().uuid(),
|
|
13593
13822
|
agent_id: external_exports.string().uuid().optional(),
|
|
@@ -13759,6 +13988,15 @@ var init_contracts = __esm({
|
|
|
13759
13988
|
hub_user_id: external_exports.string().optional(),
|
|
13760
13989
|
search_filter: external_exports.string().optional(),
|
|
13761
13990
|
hub_id: external_exports.string().uuid().optional(),
|
|
13991
|
+
// NON-authorizing single-hub narrow. Unlike `hub_id` (which runs the
|
|
13992
|
+
// grant-gated `loadHub('hub:read')` and so throws for grant-less end users /
|
|
13993
|
+
// team members), `scope_hub_id` INTERSECTS the caller's already-resolved hub
|
|
13994
|
+
// roster server-side. Intersecting the caller's own roster IS the
|
|
13995
|
+
// authorization — a hub the caller isn't in narrows to empty and leaks
|
|
13996
|
+
// nothing. Continuous history sends it to take the single-hub ended-index
|
|
13997
|
+
// path (one HubDO read, accurate uncapped total) instead of the all-hub
|
|
13998
|
+
// fan-out it would otherwise discard client-side (gh #3319).
|
|
13999
|
+
scope_hub_id: external_exports.string().uuid().optional(),
|
|
13762
14000
|
conversation_id: external_exports.string().uuid().optional(),
|
|
13763
14001
|
// 'ended' = recently-closed, served warm from the HubDO index (≤ retention
|
|
13764
14002
|
// window). 'archived' = the full closed-conversation history from ClickHouse.
|
|
@@ -13965,7 +14203,7 @@ var init_contracts = __esm({
|
|
|
13965
14203
|
hub_type: external_exports.enum(["chat", "task"]).default("chat"),
|
|
13966
14204
|
user_id: external_exports.string().optional()
|
|
13967
14205
|
});
|
|
13968
|
-
additionalContextPayloadSchema2 = external_exports.record(external_exports.unknown()).refine((r) =>
|
|
14206
|
+
additionalContextPayloadSchema2 = external_exports.record(external_exports.unknown()).refine((r) => withinJsonLength2(r, 16384), {
|
|
13969
14207
|
message: "additional_context payload must be at most 16384 bytes when JSON-serialized"
|
|
13970
14208
|
});
|
|
13971
14209
|
kanbanUpdateBody2 = external_exports.object({
|
|
@@ -14225,6 +14463,7 @@ var init_contracts = __esm({
|
|
|
14225
14463
|
refineHubAsCodeCustomTools2(config, ctx);
|
|
14226
14464
|
refineHubAsCodeKanbanStatuses2(config, ctx);
|
|
14227
14465
|
refineHubAsCodeLanes2(config, ctx);
|
|
14466
|
+
refineHubAsCodeEvals2(config, ctx);
|
|
14228
14467
|
});
|
|
14229
14468
|
ciPullHubIdParam2 = external_exports.object({
|
|
14230
14469
|
hub_id: ciUuidSchema2
|
|
@@ -21185,7 +21424,7 @@ function friendlyHint(err) {
|
|
|
21185
21424
|
}
|
|
21186
21425
|
|
|
21187
21426
|
// src/index.ts
|
|
21188
|
-
|
|
21427
|
+
init_mask_secrets();
|
|
21189
21428
|
init_utils();
|
|
21190
21429
|
|
|
21191
21430
|
// src/lib/version-refresh.ts
|
|
@@ -21679,7 +21918,7 @@ async function runForeground() {
|
|
|
21679
21918
|
captureException2(err);
|
|
21680
21919
|
}
|
|
21681
21920
|
await closeSentry();
|
|
21682
|
-
console.error(
|
|
21921
|
+
console.error(maskSecretsInMessage(err instanceof Error ? err.message : String(err)));
|
|
21683
21922
|
const hint = friendlyHint(err);
|
|
21684
21923
|
if (hint) console.error(hint);
|
|
21685
21924
|
process.exit(1);
|