@wayai/cli 0.3.80 → 0.3.82
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 +237 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -313,6 +313,11 @@ var init_api_client = __esm({
|
|
|
313
313
|
async adminSkillInstall(name) {
|
|
314
314
|
return this.request("GET", `/api/admin/skills/${encodeURIComponent(name)}`);
|
|
315
315
|
}
|
|
316
|
+
// Run a shell command in a fresh E2B sandbox (platform-admin gated — the
|
|
317
|
+
// harness-agents PR 1.5 isolation surface). Never carries the E2B key.
|
|
318
|
+
async adminSandboxExec(body) {
|
|
319
|
+
return this.request("POST", "/api/admin/sandbox/exec", body);
|
|
320
|
+
}
|
|
316
321
|
/**
|
|
317
322
|
* Re-discover an MCP connection's tool/resource catalog (refreshes stale
|
|
318
323
|
* input schemas that `push` leaves untouched). `connection` is the display
|
|
@@ -408,14 +413,16 @@ var init_api_client = __esm({
|
|
|
408
413
|
if (opts?.status) params.set("status", opts.status);
|
|
409
414
|
return this.request("GET", `/api/evals/sessions?${params.toString()}`);
|
|
410
415
|
}
|
|
411
|
-
async createEvalSession(hubId, sessionName, scenarioSetId) {
|
|
416
|
+
async createEvalSession(hubId, sessionName, scenarioSetId, pacing) {
|
|
412
417
|
return this.request("POST", "/api/evals/sessions", {
|
|
413
418
|
session: {
|
|
414
419
|
hub_id: hubId,
|
|
415
420
|
session_name: sessionName,
|
|
416
421
|
// Binding the set at create time targets a specific set (multi-set hubs);
|
|
417
422
|
// when omitted, the run endpoint resolves the hub's sole enabled set.
|
|
418
|
-
...scenarioSetId ? { scenario_set_id: scenarioSetId } : {}
|
|
423
|
+
...scenarioSetId ? { scenario_set_id: scenarioSetId } : {},
|
|
424
|
+
// Run pacing — omitted lets the backend apply its default (balanced).
|
|
425
|
+
...pacing ? { session_config: { pacing } } : {}
|
|
419
426
|
}
|
|
420
427
|
});
|
|
421
428
|
}
|
|
@@ -5311,7 +5318,7 @@ function findStepBoundaries(transcript) {
|
|
|
5311
5318
|
}
|
|
5312
5319
|
return out;
|
|
5313
5320
|
}
|
|
5314
|
-
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, 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, 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, createJourneyBody, updateJourneyBody, getConversationsQuery, getMessagesQuery, 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, completionsBody, 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, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, 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, 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;
|
|
5321
|
+
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, 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, createJourneyBody, updateJourneyBody, getConversationsQuery, getMessagesQuery, 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, completionsBody, 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, adminOrganizationsQuery, adminUserSearchQuery, kanbanSlugMigrationQuery, adjustQuotaBody, updatePlanBody, addAdminUserBody, updatePlatformConfigBody, updateFreeOrgLimitBody, 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;
|
|
5315
5322
|
var init_dist = __esm({
|
|
5316
5323
|
"../../packages/core/dist/index.js"() {
|
|
5317
5324
|
"use strict";
|
|
@@ -5362,6 +5369,7 @@ var init_dist = __esm({
|
|
|
5362
5369
|
init_zod();
|
|
5363
5370
|
init_zod();
|
|
5364
5371
|
init_zod();
|
|
5372
|
+
init_zod();
|
|
5365
5373
|
APP_ERROR_BRAND = /* @__PURE__ */ Symbol.for("wayai.AppError");
|
|
5366
5374
|
AppError = class extends Error {
|
|
5367
5375
|
constructor(message, code, statusCode = 500, details) {
|
|
@@ -6496,6 +6504,7 @@ var init_dist = __esm({
|
|
|
6496
6504
|
analyticsSqlSchemaQuery = external_exports.object({
|
|
6497
6505
|
hub_id: external_exports.string().uuid()
|
|
6498
6506
|
});
|
|
6507
|
+
EVAL_PACING_PRESET_NAMES = ["conservative", "balanced", "fast", "custom"];
|
|
6499
6508
|
PACING_INTERVAL_MIN_MS = 50;
|
|
6500
6509
|
PACING_INTERVAL_MAX_MS = 6e4;
|
|
6501
6510
|
EVAL_RUN_DEADLINE_MIN_MS = 1e3;
|
|
@@ -6542,7 +6551,7 @@ var init_dist = __esm({
|
|
|
6542
6551
|
}).optional()
|
|
6543
6552
|
});
|
|
6544
6553
|
pacingConfigSchema = external_exports.object({
|
|
6545
|
-
preset: external_exports.enum(
|
|
6554
|
+
preset: external_exports.enum(EVAL_PACING_PRESET_NAMES),
|
|
6546
6555
|
custom_interval_ms: external_exports.number().int().min(PACING_INTERVAL_MIN_MS).max(PACING_INTERVAL_MAX_MS).optional()
|
|
6547
6556
|
}).refine(
|
|
6548
6557
|
(v) => v.preset !== "custom" || typeof v.custom_interval_ms === "number",
|
|
@@ -7327,6 +7336,31 @@ var init_dist = __esm({
|
|
|
7327
7336
|
debugMessageIdQuery = external_exports.object({
|
|
7328
7337
|
message_id: debugUuid.optional()
|
|
7329
7338
|
});
|
|
7339
|
+
sandboxEgressPolicy = external_exports.enum(["open", "allowlist", "isolated"]);
|
|
7340
|
+
SANDBOX_EXEC_MAX_CMD_LENGTH = 4096;
|
|
7341
|
+
SANDBOX_EXEC_MAX_ALLOWLIST = 64;
|
|
7342
|
+
SANDBOX_EXEC_MAX_TIMEOUT_MS = 3e5;
|
|
7343
|
+
adminSandboxExecBody = external_exports.object({
|
|
7344
|
+
/** Hub owning the E2B Sandbox connection whose credential we resolve. */
|
|
7345
|
+
hub_id: uuidSchema,
|
|
7346
|
+
/** The Sandbox (E2B) connection to source the api_key from. */
|
|
7347
|
+
connection_id: uuidSchema,
|
|
7348
|
+
/** Shell command to run in the sandbox. Required, bounded length. */
|
|
7349
|
+
cmd: external_exports.string().min(1, "cmd is required").max(SANDBOX_EXEC_MAX_CMD_LENGTH, `cmd must be <= ${SANDBOX_EXEC_MAX_CMD_LENGTH} chars`),
|
|
7350
|
+
/**
|
|
7351
|
+
* Egress posture. Omitted ⇒ the driver fails closed to deny-all outbound (the
|
|
7352
|
+
* §4 safe default). The route re-validates the (policy, allowlist) pair via
|
|
7353
|
+
* `validateEgressConfig`.
|
|
7354
|
+
*/
|
|
7355
|
+
egress_policy: sandboxEgressPolicy.optional(),
|
|
7356
|
+
/**
|
|
7357
|
+
* Hosts/CIDRs reachable under `allowlist` (or the single control host under
|
|
7358
|
+
* `isolated`). Ignored under `open`. Bounded count.
|
|
7359
|
+
*/
|
|
7360
|
+
egress_allowlist: external_exports.array(external_exports.string().min(1).max(253)).max(SANDBOX_EXEC_MAX_ALLOWLIST, `at most ${SANDBOX_EXEC_MAX_ALLOWLIST} allowlist entries`).optional(),
|
|
7361
|
+
/** Sandbox wall-clock lifetime in ms (bounded). */
|
|
7362
|
+
timeout_ms: external_exports.number().int().min(1).max(SANDBOX_EXEC_MAX_TIMEOUT_MS).optional()
|
|
7363
|
+
});
|
|
7330
7364
|
whatsappCallbackBody = external_exports.object({
|
|
7331
7365
|
state: external_exports.string().min(1, "state is required"),
|
|
7332
7366
|
code: external_exports.string().optional(),
|
|
@@ -11926,7 +11960,7 @@ function isSanitizableSliceFile(path25) {
|
|
|
11926
11960
|
function distinctUsesBackends(uses) {
|
|
11927
11961
|
return [...new Set((uses ?? []).map((u) => u.backend))];
|
|
11928
11962
|
}
|
|
11929
|
-
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, 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, 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, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, 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, completionsBody2, 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, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, 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, 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;
|
|
11963
|
+
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, 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, createJourneyBody2, updateJourneyBody2, getConversationsQuery2, getMessagesQuery2, 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, completionsBody2, 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, adminOrganizationsQuery2, adminUserSearchQuery2, kanbanSlugMigrationQuery2, adjustQuotaBody2, updatePlanBody2, addAdminUserBody2, updatePlatformConfigBody2, updateFreeOrgLimitBody2, 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;
|
|
11930
11964
|
var init_contracts = __esm({
|
|
11931
11965
|
"../../packages/core/dist/contracts/index.js"() {
|
|
11932
11966
|
"use strict";
|
|
@@ -11977,6 +12011,7 @@ var init_contracts = __esm({
|
|
|
11977
12011
|
init_zod();
|
|
11978
12012
|
init_zod();
|
|
11979
12013
|
init_zod();
|
|
12014
|
+
init_zod();
|
|
11980
12015
|
uuidSchema2 = external_exports.string().uuid();
|
|
11981
12016
|
paginationSchema3 = external_exports.object({
|
|
11982
12017
|
limit: external_exports.coerce.number().int().min(1).max(100).default(50),
|
|
@@ -13027,6 +13062,7 @@ var init_contracts = __esm({
|
|
|
13027
13062
|
analyticsSqlSchemaQuery2 = external_exports.object({
|
|
13028
13063
|
hub_id: external_exports.string().uuid()
|
|
13029
13064
|
});
|
|
13065
|
+
EVAL_PACING_PRESET_NAMES2 = ["conservative", "balanced", "fast", "custom"];
|
|
13030
13066
|
PACING_INTERVAL_MIN_MS2 = 50;
|
|
13031
13067
|
PACING_INTERVAL_MAX_MS2 = 6e4;
|
|
13032
13068
|
EVAL_RUN_DEADLINE_MIN_MS2 = 1e3;
|
|
@@ -13073,7 +13109,7 @@ var init_contracts = __esm({
|
|
|
13073
13109
|
}).optional()
|
|
13074
13110
|
});
|
|
13075
13111
|
pacingConfigSchema2 = external_exports.object({
|
|
13076
|
-
preset: external_exports.enum(
|
|
13112
|
+
preset: external_exports.enum(EVAL_PACING_PRESET_NAMES2),
|
|
13077
13113
|
custom_interval_ms: external_exports.number().int().min(PACING_INTERVAL_MIN_MS2).max(PACING_INTERVAL_MAX_MS2).optional()
|
|
13078
13114
|
}).refine(
|
|
13079
13115
|
(v) => v.preset !== "custom" || typeof v.custom_interval_ms === "number",
|
|
@@ -13858,6 +13894,31 @@ var init_contracts = __esm({
|
|
|
13858
13894
|
debugMessageIdQuery2 = external_exports.object({
|
|
13859
13895
|
message_id: debugUuid2.optional()
|
|
13860
13896
|
});
|
|
13897
|
+
sandboxEgressPolicy2 = external_exports.enum(["open", "allowlist", "isolated"]);
|
|
13898
|
+
SANDBOX_EXEC_MAX_CMD_LENGTH2 = 4096;
|
|
13899
|
+
SANDBOX_EXEC_MAX_ALLOWLIST2 = 64;
|
|
13900
|
+
SANDBOX_EXEC_MAX_TIMEOUT_MS2 = 3e5;
|
|
13901
|
+
adminSandboxExecBody2 = external_exports.object({
|
|
13902
|
+
/** Hub owning the E2B Sandbox connection whose credential we resolve. */
|
|
13903
|
+
hub_id: uuidSchema2,
|
|
13904
|
+
/** The Sandbox (E2B) connection to source the api_key from. */
|
|
13905
|
+
connection_id: uuidSchema2,
|
|
13906
|
+
/** Shell command to run in the sandbox. Required, bounded length. */
|
|
13907
|
+
cmd: external_exports.string().min(1, "cmd is required").max(SANDBOX_EXEC_MAX_CMD_LENGTH2, `cmd must be <= ${SANDBOX_EXEC_MAX_CMD_LENGTH2} chars`),
|
|
13908
|
+
/**
|
|
13909
|
+
* Egress posture. Omitted ⇒ the driver fails closed to deny-all outbound (the
|
|
13910
|
+
* §4 safe default). The route re-validates the (policy, allowlist) pair via
|
|
13911
|
+
* `validateEgressConfig`.
|
|
13912
|
+
*/
|
|
13913
|
+
egress_policy: sandboxEgressPolicy2.optional(),
|
|
13914
|
+
/**
|
|
13915
|
+
* Hosts/CIDRs reachable under `allowlist` (or the single control host under
|
|
13916
|
+
* `isolated`). Ignored under `open`. Bounded count.
|
|
13917
|
+
*/
|
|
13918
|
+
egress_allowlist: external_exports.array(external_exports.string().min(1).max(253)).max(SANDBOX_EXEC_MAX_ALLOWLIST2, `at most ${SANDBOX_EXEC_MAX_ALLOWLIST2} allowlist entries`).optional(),
|
|
13919
|
+
/** Sandbox wall-clock lifetime in ms (bounded). */
|
|
13920
|
+
timeout_ms: external_exports.number().int().min(1).max(SANDBOX_EXEC_MAX_TIMEOUT_MS2).optional()
|
|
13921
|
+
});
|
|
13861
13922
|
whatsappCallbackBody2 = external_exports.object({
|
|
13862
13923
|
state: external_exports.string().min(1, "state is required"),
|
|
13863
13924
|
code: external_exports.string().optional(),
|
|
@@ -15838,6 +15899,7 @@ async function runEvalCommand(args2) {
|
|
|
15838
15899
|
let timeoutSeconds = DEFAULT_TIMEOUT_S;
|
|
15839
15900
|
let setName;
|
|
15840
15901
|
let evalName;
|
|
15902
|
+
let pacing;
|
|
15841
15903
|
for (let i = 0; i < args2.length; i++) {
|
|
15842
15904
|
const arg = args2[i];
|
|
15843
15905
|
if (arg === "--no-wait") {
|
|
@@ -15860,6 +15922,8 @@ async function runEvalCommand(args2) {
|
|
|
15860
15922
|
console.error("--eval requires an eval name");
|
|
15861
15923
|
process.exit(1);
|
|
15862
15924
|
}
|
|
15925
|
+
} else if (arg === "--pacing") {
|
|
15926
|
+
pacing = parsePacing(args2[++i]);
|
|
15863
15927
|
}
|
|
15864
15928
|
}
|
|
15865
15929
|
if (setName && evalName) {
|
|
@@ -15898,9 +15962,13 @@ async function runEvalCommand(args2) {
|
|
|
15898
15962
|
}
|
|
15899
15963
|
const now = /* @__PURE__ */ new Date();
|
|
15900
15964
|
const sessionName = `CLI run ${now.toISOString().slice(0, 16).replace("T", " ")}`;
|
|
15901
|
-
const createResult = await client.createEvalSession(hubId, sessionName, scenarioSetId);
|
|
15965
|
+
const createResult = await client.createEvalSession(hubId, sessionName, scenarioSetId, pacing);
|
|
15902
15966
|
const sessionId = createResult.data.session.eval_session_id;
|
|
15903
15967
|
console.log(`Created session: ${sessionName} (${sessionId})`);
|
|
15968
|
+
if (pacing) {
|
|
15969
|
+
const desc = pacing.preset === "custom" ? `custom (${pacing.custom_interval_ms}ms/run)` : pacing.preset;
|
|
15970
|
+
console.log(`Pacing: ${desc}`);
|
|
15971
|
+
}
|
|
15904
15972
|
try {
|
|
15905
15973
|
await client.runEvalSession(hubId, sessionId);
|
|
15906
15974
|
} catch (err) {
|
|
@@ -15964,6 +16032,27 @@ Timeout after ${timeoutSeconds}s. Session is still running.`);
|
|
|
15964
16032
|
function sleep(ms) {
|
|
15965
16033
|
return new Promise((resolve5) => setTimeout(resolve5, ms));
|
|
15966
16034
|
}
|
|
16035
|
+
function parsePacing(raw) {
|
|
16036
|
+
const NAMED = EVAL_PACING_PRESET_NAMES.filter((p) => p !== "custom");
|
|
16037
|
+
if (!raw) {
|
|
16038
|
+
console.error(`--pacing requires a value: ${NAMED.join(" | ")} | <milliseconds>`);
|
|
16039
|
+
process.exit(1);
|
|
16040
|
+
}
|
|
16041
|
+
const value = raw.trim();
|
|
16042
|
+
const asMs = Number(value);
|
|
16043
|
+
if (Number.isInteger(asMs) && String(asMs) === value) {
|
|
16044
|
+
if (asMs < PACING_INTERVAL_MIN_MS || asMs > PACING_INTERVAL_MAX_MS) {
|
|
16045
|
+
console.error(`--pacing interval must be between ${PACING_INTERVAL_MIN_MS} and ${PACING_INTERVAL_MAX_MS} milliseconds`);
|
|
16046
|
+
process.exit(1);
|
|
16047
|
+
}
|
|
16048
|
+
return { preset: "custom", custom_interval_ms: asMs };
|
|
16049
|
+
}
|
|
16050
|
+
if (!NAMED.includes(value)) {
|
|
16051
|
+
console.error(`--pacing must be one of: ${NAMED.join(" | ")} | <milliseconds>`);
|
|
16052
|
+
process.exit(1);
|
|
16053
|
+
}
|
|
16054
|
+
return { preset: value };
|
|
16055
|
+
}
|
|
15967
16056
|
function extractApiMessage(err) {
|
|
15968
16057
|
if (err instanceof ApiError) {
|
|
15969
16058
|
try {
|
|
@@ -15985,6 +16074,7 @@ var init_run_eval = __esm({
|
|
|
15985
16074
|
init_workspace();
|
|
15986
16075
|
init_api_client();
|
|
15987
16076
|
init_eval_format();
|
|
16077
|
+
init_dist();
|
|
15988
16078
|
TERMINAL_STATUSES = /* @__PURE__ */ new Set(["completed", "failed", "cancelled", "awaiting_review"]);
|
|
15989
16079
|
POLL_INTERVAL_MS = 3e3;
|
|
15990
16080
|
DEFAULT_TIMEOUT_S = 600;
|
|
@@ -18337,6 +18427,21 @@ async function adminCommand(args2) {
|
|
|
18337
18427
|
process.exit(1);
|
|
18338
18428
|
}
|
|
18339
18429
|
}
|
|
18430
|
+
if (group === "sandbox") {
|
|
18431
|
+
if (!sub) {
|
|
18432
|
+
printHelp2();
|
|
18433
|
+
process.exit(1);
|
|
18434
|
+
}
|
|
18435
|
+
switch (sub) {
|
|
18436
|
+
// The command is positional after `exec`; the rest are flags.
|
|
18437
|
+
case "exec":
|
|
18438
|
+
await runSandboxExec(positional, flagArgs);
|
|
18439
|
+
return;
|
|
18440
|
+
default:
|
|
18441
|
+
printHelp2();
|
|
18442
|
+
process.exit(1);
|
|
18443
|
+
}
|
|
18444
|
+
}
|
|
18340
18445
|
printHelp2();
|
|
18341
18446
|
process.exit(1);
|
|
18342
18447
|
}
|
|
@@ -18844,6 +18949,120 @@ async function runSkillInstall(positional) {
|
|
|
18844
18949
|
console.log(`Installed skill "${name}" (${fileCount} file${fileCount === 1 ? "" : "s"}) \u2192 ${relDirs.join(", ")}`);
|
|
18845
18950
|
console.log("Reload your agent (e.g. restart Claude Code) to pick up the skill.");
|
|
18846
18951
|
}
|
|
18952
|
+
async function runSandboxExec(positional, flagArgs) {
|
|
18953
|
+
const USAGE = 'wayai admin sandbox exec [--cmd "<command>" | <command>] --hub <hub_id> --connection <connection_id> [--egress open|allowlist|isolated] [--allow <host> ...] [--timeout <ms>] [--json]';
|
|
18954
|
+
let hubId;
|
|
18955
|
+
let connectionId;
|
|
18956
|
+
let egress;
|
|
18957
|
+
let cmdFlag;
|
|
18958
|
+
let timeoutMs;
|
|
18959
|
+
let jsonOutput = false;
|
|
18960
|
+
const allow = [];
|
|
18961
|
+
for (let i = 0; i < flagArgs.length; i++) {
|
|
18962
|
+
const arg = flagArgs[i];
|
|
18963
|
+
switch (arg) {
|
|
18964
|
+
case "--json":
|
|
18965
|
+
jsonOutput = true;
|
|
18966
|
+
break;
|
|
18967
|
+
case "--hub":
|
|
18968
|
+
hubId = requireFlagValue(flagArgs, ++i, "--hub");
|
|
18969
|
+
break;
|
|
18970
|
+
case "--connection":
|
|
18971
|
+
connectionId = requireFlagValue(flagArgs, ++i, "--connection");
|
|
18972
|
+
break;
|
|
18973
|
+
case "--cmd":
|
|
18974
|
+
cmdFlag = requireFlagValue(flagArgs, ++i, "--cmd");
|
|
18975
|
+
break;
|
|
18976
|
+
case "--egress": {
|
|
18977
|
+
const v = requireFlagValue(flagArgs, ++i, "--egress");
|
|
18978
|
+
const parsed = sandboxEgressPolicy2.safeParse(v);
|
|
18979
|
+
if (!parsed.success) {
|
|
18980
|
+
console.error(`--egress must be one of: ${sandboxEgressPolicy2.options.join(", ")}`);
|
|
18981
|
+
process.exit(1);
|
|
18982
|
+
}
|
|
18983
|
+
egress = parsed.data;
|
|
18984
|
+
break;
|
|
18985
|
+
}
|
|
18986
|
+
case "--allow":
|
|
18987
|
+
allow.push(requireFlagValue(flagArgs, ++i, "--allow"));
|
|
18988
|
+
break;
|
|
18989
|
+
case "--timeout": {
|
|
18990
|
+
const v = requireFlagValue(flagArgs, ++i, "--timeout");
|
|
18991
|
+
const n = Number.parseInt(v, 10);
|
|
18992
|
+
if (!Number.isFinite(n) || n < 1) {
|
|
18993
|
+
console.error("--timeout must be a positive integer (milliseconds)");
|
|
18994
|
+
process.exit(1);
|
|
18995
|
+
}
|
|
18996
|
+
timeoutMs = n;
|
|
18997
|
+
break;
|
|
18998
|
+
}
|
|
18999
|
+
default:
|
|
19000
|
+
console.error(`Unknown flag: ${arg}`);
|
|
19001
|
+
process.exit(1);
|
|
19002
|
+
}
|
|
19003
|
+
}
|
|
19004
|
+
const positionalCmd = positional[0];
|
|
19005
|
+
if (positional.length > 1) {
|
|
19006
|
+
console.error("Provide the command as a single quoted argument (or use --cmd).");
|
|
19007
|
+
console.error(USAGE);
|
|
19008
|
+
process.exit(1);
|
|
19009
|
+
}
|
|
19010
|
+
if (positionalCmd && cmdFlag) {
|
|
19011
|
+
console.error("Provide the command EITHER positionally OR via --cmd, not both.");
|
|
19012
|
+
process.exit(1);
|
|
19013
|
+
}
|
|
19014
|
+
const cmd = cmdFlag ?? positionalCmd;
|
|
19015
|
+
if (!cmd || !hubId || !connectionId) {
|
|
19016
|
+
console.error(USAGE);
|
|
19017
|
+
process.exit(1);
|
|
19018
|
+
}
|
|
19019
|
+
const body = {
|
|
19020
|
+
hub_id: hubId,
|
|
19021
|
+
connection_id: connectionId,
|
|
19022
|
+
cmd,
|
|
19023
|
+
...egress ? { egress_policy: egress } : {},
|
|
19024
|
+
...allow.length > 0 ? { egress_allowlist: allow } : {},
|
|
19025
|
+
...timeoutMs !== void 0 ? { timeout_ms: timeoutMs } : {}
|
|
19026
|
+
};
|
|
19027
|
+
const { config, accessToken } = await requireAuth();
|
|
19028
|
+
const client = new ApiClient({ apiUrl: config.api_url, accessToken });
|
|
19029
|
+
let response;
|
|
19030
|
+
try {
|
|
19031
|
+
response = await client.adminSandboxExec(body);
|
|
19032
|
+
} catch (err) {
|
|
19033
|
+
exitOnApiError(err);
|
|
19034
|
+
throw err;
|
|
19035
|
+
}
|
|
19036
|
+
const data = response.data;
|
|
19037
|
+
if (jsonOutput) {
|
|
19038
|
+
console.log(JSON.stringify(data, null, 2));
|
|
19039
|
+
return;
|
|
19040
|
+
}
|
|
19041
|
+
console.log(`exit_code: ${data.exit_code}`);
|
|
19042
|
+
console.log(`sandbox_id: ${data.sandbox_id}`);
|
|
19043
|
+
if (!data.destroyed) {
|
|
19044
|
+
console.log("warning: sandbox destroy failed on the backend (leak logged; cron will reap it)");
|
|
19045
|
+
}
|
|
19046
|
+
if (data.stdout) {
|
|
19047
|
+
console.log("--- stdout ---");
|
|
19048
|
+
console.log(data.stdout.replace(/\n$/, ""));
|
|
19049
|
+
}
|
|
19050
|
+
if (data.stderr) {
|
|
19051
|
+
console.log("--- stderr ---");
|
|
19052
|
+
console.log(data.stderr.replace(/\n$/, ""));
|
|
19053
|
+
}
|
|
19054
|
+
if (data.exit_code !== 0) {
|
|
19055
|
+
process.exit(data.exit_code);
|
|
19056
|
+
}
|
|
19057
|
+
}
|
|
19058
|
+
function requireFlagValue(flagArgs, index, flag) {
|
|
19059
|
+
const v = flagArgs[index];
|
|
19060
|
+
if (v === void 0 || v.startsWith("--")) {
|
|
19061
|
+
console.error(`${flag} requires a value`);
|
|
19062
|
+
process.exit(1);
|
|
19063
|
+
}
|
|
19064
|
+
return v;
|
|
19065
|
+
}
|
|
18847
19066
|
function exitOnApiError(err) {
|
|
18848
19067
|
if (err instanceof ApiError) {
|
|
18849
19068
|
if (err.status === 401) {
|
|
@@ -19262,6 +19481,9 @@ Usage:
|
|
|
19262
19481
|
|
|
19263
19482
|
wayai admin skill install [name] Install a private operator skill (default: wayai-admin) into each present harness's skills/ dir
|
|
19264
19483
|
|
|
19484
|
+
wayai admin sandbox exec [--cmd "<c>" | <c>] --hub <id> --connection <id> [--egress open|allowlist|isolated] [--allow <host> ...] [--timeout <ms>] [--json]
|
|
19485
|
+
Run one shell command in a fresh E2B sandbox (create \u2192 run \u2192 destroy) to test the sandbox driver + egress gate
|
|
19486
|
+
|
|
19265
19487
|
Sources:
|
|
19266
19488
|
do Live DO SQLite (existing conversation, hub config, etc.).
|
|
19267
19489
|
analytics ClickHouse projections (conversation, message, billing_event, schedule_event).
|
|
@@ -19283,6 +19505,11 @@ Sources:
|
|
|
19283
19505
|
"Gemini degraded" / "Analytics delayed" notices. \`create\` authors one
|
|
19284
19506
|
(severity defaults to info, scope to global); \`list\` reads them
|
|
19285
19507
|
(--status active|resolved); \`resolve\` ends an active notice.
|
|
19508
|
+
sandbox Run arbitrary code in a fresh E2B sandbox (harness-agents isolation surface).
|
|
19509
|
+
\`exec\` provisions a sandbox from a named Sandbox connection, runs one
|
|
19510
|
+
command, and destroys it. Egress omitted \u21D2 deny-all (fail-closed); opt up
|
|
19511
|
+
with --egress + --allow. The E2B key never leaves the backend. Capped at
|
|
19512
|
+
20 execs/hour/user (the strictest tier \u2014 this is arbitrary code execution).
|
|
19286
19513
|
|
|
19287
19514
|
Types (do): ${VALID_TYPES.join(" | ")}
|
|
19288
19515
|
Tables (analytics): ${VALID_ANALYTICS_TABLES.join(" | ")}
|
|
@@ -19304,6 +19531,8 @@ Examples:
|
|
|
19304
19531
|
wayai admin archive <hub-id> <conv-id> --message-id <msg-id> --json
|
|
19305
19532
|
wayai admin observability <hub-id> <conv-id>
|
|
19306
19533
|
wayai admin observability <hub-id> <conv-id> --message-id <msg-id> --json
|
|
19534
|
+
wayai admin sandbox exec "echo hi" --hub <hub-id> --connection <conn-id>
|
|
19535
|
+
wayai admin sandbox exec --cmd "curl -s https://api.github.com" --hub <hub-id> --connection <conn-id> --egress allowlist --allow api.github.com
|
|
19307
19536
|
|
|
19308
19537
|
Audit + rate limit:
|
|
19309
19538
|
Every successful read is logged as admin_debug_read (queryable in Grafana
|
|
@@ -20175,6 +20404,7 @@ Flags:
|
|
|
20175
20404
|
--enabled/--disabled Filter evals by status (evals)
|
|
20176
20405
|
--no-wait Don't wait for eval session to complete (run-eval)
|
|
20177
20406
|
--timeout <seconds> Max wait time for eval session (default: 600)
|
|
20407
|
+
--pacing <preset|ms> Run pacing: conservative | balanced | fast | <milliseconds> (run-eval; default balanced)
|
|
20178
20408
|
--session <uuid> Specify eval session ID (eval-results)
|
|
20179
20409
|
--eval <name> Filter by eval name (eval-results)
|
|
20180
20410
|
--runs Show individual run details (eval-results)
|