lua-cli 3.49.0 → 3.49.2

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.
@@ -943,6 +943,35 @@ function aiGenerateInputFromSimplified(prompt, content) {
943
943
  ]
944
944
  };
945
945
  }
946
+ function directProviderOfOpenRouterModel(model) {
947
+ return OPENROUTER_DIRECT_VENDORS.find((vendor) => vendor.pattern.test(model))?.provider;
948
+ }
949
+ function openRouterModelIssue(options) {
950
+ const model = typeof options.model === "string" && options.model ? options.model : void 0;
951
+ if (options.provider === "openrouter" && !model) return OPENROUTER_NEEDS_MODEL_MESSAGE;
952
+ if (!model || !model.includes("/")) return null;
953
+ const direct = directProviderOfOpenRouterModel(model);
954
+ if (!direct) return null;
955
+ return `model ${model} runs on provider '${direct}': set provider '${direct}' instead of a vendor/model id`;
956
+ }
957
+ function formatDecisionSandboxPrimitive(name, tool) {
958
+ return tool ? `${name}${DECISION_SANDBOX_TOOL_SEPARATOR}${tool}` : name;
959
+ }
960
+ function parseDecisionSandboxPrimitive(value3) {
961
+ const at = value3.indexOf(DECISION_SANDBOX_TOOL_SEPARATOR);
962
+ const name = at < 0 ? value3 : value3.slice(0, at);
963
+ const tool = at < 0 ? "" : value3.slice(at + DECISION_SANDBOX_TOOL_SEPARATOR.length);
964
+ if (name.length === 0) return void 0;
965
+ return tool.length > 0 ? {
966
+ name,
967
+ tool
968
+ } : {
969
+ name
970
+ };
971
+ }
972
+ function decisionPublishStampKey(agentId2) {
973
+ return `decisions:stamp:${agentId2}`;
974
+ }
946
975
  function isIntegrationPassthroughReadMethod(method) {
947
976
  return typeof method === "string" && INTEGRATION_PASSTHROUGH_READ_METHODS.includes(method.toUpperCase());
948
977
  }
@@ -4686,6 +4715,10 @@ function browserLogContextOfWorkerContext(context) {
4686
4715
  if (context?.primitiveId) out.primitiveId = context.primitiveId;
4687
4716
  if (context?.primitiveName) out.primitiveName = context.primitiveName;
4688
4717
  if (context?.channel) out.channel = context.channel;
4718
+ if (context?.environment && AGENT_LOG_ENVIRONMENTS.includes(context.environment)) {
4719
+ out.environment = context.environment;
4720
+ }
4721
+ if (context?.agentVersion) out.agentVersion = context.agentVersion;
4689
4722
  return out;
4690
4723
  }
4691
4724
  function browserLogEventOfWorkerEvent(event, mapping = {}) {
@@ -7489,7 +7522,7 @@ function maskMcpServerHeaders(server) {
7489
7522
  headersSet: headerNames.length > 0
7490
7523
  };
7491
7524
  }
7492
- var __defProp4, __name4, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, DECISION_PROVIDERS, DECISION_QUESTION_TYPES, DECISION_NAME_PATTERN, DECISION_LIMITS, DECISION_ERROR_CODES, MAX_NAME_CHARS, InstructionsSchema, NameSchema, OddsQuestionSchema, ChoiceQuestionSchema, ScoreQuestionSchema, DecisionQuestionSchema, DecisionOptionsSchema, DecisionQuestionsSchema, DecisionDefinitionSchema, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, MESSAGING_CHANNELS, VOICE_CHANNELS, TURN_CATEGORIES, AGENT_TOOL_CATEGORIES, count, AnthropicSseUsageReader, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, SERVER_TRIGGERED_BROWSER_SOURCES, BROWSER_FALLBACKS, DEFAULT_BROWSER_FALLBACK, PROXY_COUNTRY_CODE, BROWSER_LOG_CONTENT_MODES, DEFAULT_BROWSER_LOG_CONTENT, BROWSER_SCREENSHOT_POLICIES, DEFAULT_BROWSER_SCREENSHOT_POLICY, BROWSER_PROFILE_NAME_PATTERN, BROWSER_LIMIT_KEYS, BROWSER_LIMIT_MAX, BROWSER_EXECUTE_METHOD, BROWSER_GLOBAL_METHODS, BROWSER_EXECUTE_DEFAULT_TIMEOUT_MS, BROWSER_EXECUTE_MAX_TIMEOUT_MS, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, BROWSER_READ_FORMATS, BROWSER_READ_DEFAULT_TIMEOUT_MS, BROWSER_READ_MIN_TIMEOUT_MS, BROWSER_READ_MAX_TIMEOUT_MS, BROWSER_READ_MAX_CONTENT_CHARS, BROWSER_READ_DEFAULT_SELECTOR, BROWSER_READ_MATCH_SEPARATOR, BROWSER_READ_LOGIN_BLOCKER, BROWSER_ERROR_NAME, HTTP_STATUS_FAILURE, LOGIN_PATH_SEGMENTS, LOGIN_HOST_LABELS, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, BROWSER_LOG_EVENT_KINDS, BROWSER_LOG_ENGINES, BROWSER_SESSION_OPEN_REASONS, BROWSER_BLOCK_KINDS, BROWSER_WALL_KINDS, BROWSER_WALL_NEXT_ACTIONS, BROWSER_CONFIRM_DECISIONS, BROWSER_SESSION_CLOSE_REASONS, BROWSER_LOG_CONTEXT_KEYS, BROWSER_LOG_ID_MAX_CHARS, BROWSER_LOG_TEXT_MAX_CHARS, isString, isBoolean, isCount, isPlainObject2, oneOf, isLimits, EVENT_SHAPES, BASE_KEYS, BROWSER_WORKER_SESSION_ID_SEPARATOR, BROWSER_WORKER_BLOCK_REASON_MAX_CHARS, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
7525
+ var __defProp4, __name4, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, DECISION_PROVIDERS, DECISION_FALLBACK_PROVIDERS, OPENROUTER_DIRECT_VENDORS, OPENROUTER_NEEDS_MODEL_MESSAGE, DECISION_QUESTION_TYPES, DECISION_NAME_PATTERN, DECISION_SANDBOX_SITE_HEADER, DECISION_SANDBOX_PRIMITIVE_HEADER, DECISION_SANDBOX_TOOL_SEPARATOR, DECISION_LIMITS, DECISION_ERROR_CODES, MAX_NAME_CHARS, InstructionsSchema, NameSchema, OddsQuestionSchema, ChoiceQuestionSchema, ScoreQuestionSchema, DecisionQuestionSchema, DecisionOptionsSchema, DecisionQuestionsSchema, DecisionDefinitionSchema, DecisionDefinitionWriteSchema, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, MESSAGING_CHANNELS, VOICE_CHANNELS, TURN_CATEGORIES, AGENT_TOOL_CATEGORIES, count, AnthropicSseUsageReader, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, SERVER_TRIGGERED_BROWSER_SOURCES, BROWSER_FALLBACKS, DEFAULT_BROWSER_FALLBACK, PROXY_COUNTRY_CODE, BROWSER_LOG_CONTENT_MODES, DEFAULT_BROWSER_LOG_CONTENT, BROWSER_SCREENSHOT_POLICIES, DEFAULT_BROWSER_SCREENSHOT_POLICY, BROWSER_PROFILE_NAME_PATTERN, BROWSER_LIMIT_KEYS, BROWSER_LIMIT_MAX, BROWSER_EXECUTE_METHOD, BROWSER_GLOBAL_METHODS, BROWSER_EXECUTE_DEFAULT_TIMEOUT_MS, BROWSER_EXECUTE_MAX_TIMEOUT_MS, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, BROWSER_READ_FORMATS, BROWSER_READ_DEFAULT_TIMEOUT_MS, BROWSER_READ_MIN_TIMEOUT_MS, BROWSER_READ_MAX_TIMEOUT_MS, BROWSER_READ_MAX_CONTENT_CHARS, BROWSER_READ_DEFAULT_SELECTOR, BROWSER_READ_MATCH_SEPARATOR, BROWSER_READ_LOGIN_BLOCKER, BROWSER_ERROR_NAME, HTTP_STATUS_FAILURE, LOGIN_PATH_SEGMENTS, LOGIN_HOST_LABELS, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, BROWSER_LOG_EVENT_KINDS, BROWSER_LOG_ENGINES, BROWSER_SESSION_OPEN_REASONS, BROWSER_BLOCK_KINDS, BROWSER_WALL_KINDS, BROWSER_WALL_NEXT_ACTIONS, BROWSER_CONFIRM_DECISIONS, BROWSER_SESSION_CLOSE_REASONS, BROWSER_LOG_CONTEXT_KEYS, BROWSER_LOG_ID_MAX_CHARS, BROWSER_LOG_TEXT_MAX_CHARS, isString, isBoolean, isCount, isPlainObject2, oneOf, isLimits, EVENT_SHAPES, BASE_KEYS, BROWSER_WORKER_SESSION_ID_SEPARATOR, BROWSER_WORKER_BLOCK_REASON_MAX_CHARS, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
7493
7526
  var init_dist = __esm({
7494
7527
  "../shared-types/dist/index.mjs"() {
7495
7528
  "use strict";
@@ -7562,15 +7595,44 @@ var init_dist = __esm({
7562
7595
  __name(aiGenerateInputFromSimplified, "aiGenerateInputFromSimplified");
7563
7596
  __name4(aiGenerateInputFromSimplified, "aiGenerateInputFromSimplified");
7564
7597
  DECISION_PROVIDERS = [
7598
+ "jev",
7599
+ "openai",
7600
+ "openrouter"
7601
+ ];
7602
+ DECISION_FALLBACK_PROVIDERS = [
7565
7603
  "jev",
7566
7604
  "openai"
7567
7605
  ];
7606
+ OPENROUTER_DIRECT_VENDORS = [
7607
+ {
7608
+ pattern: /^~?typesafe\//,
7609
+ provider: "jev"
7610
+ },
7611
+ {
7612
+ pattern: /^openai\//,
7613
+ provider: "openai"
7614
+ }
7615
+ ];
7616
+ __name(directProviderOfOpenRouterModel, "directProviderOfOpenRouterModel");
7617
+ __name4(directProviderOfOpenRouterModel, "directProviderOfOpenRouterModel");
7618
+ OPENROUTER_NEEDS_MODEL_MESSAGE = "provider openrouter needs a model id, such as liquid/d1";
7619
+ __name(openRouterModelIssue, "openRouterModelIssue");
7620
+ __name4(openRouterModelIssue, "openRouterModelIssue");
7568
7621
  DECISION_QUESTION_TYPES = [
7569
7622
  "odds",
7570
7623
  "choice",
7571
7624
  "score"
7572
7625
  ];
7573
7626
  DECISION_NAME_PATTERN = /^[a-zA-Z0-9_-]{1,64}$/;
7627
+ DECISION_SANDBOX_SITE_HEADER = "x-lua-sandbox-site";
7628
+ DECISION_SANDBOX_PRIMITIVE_HEADER = "x-lua-sandbox-primitive";
7629
+ DECISION_SANDBOX_TOOL_SEPARATOR = "#";
7630
+ __name(formatDecisionSandboxPrimitive, "formatDecisionSandboxPrimitive");
7631
+ __name4(formatDecisionSandboxPrimitive, "formatDecisionSandboxPrimitive");
7632
+ __name(parseDecisionSandboxPrimitive, "parseDecisionSandboxPrimitive");
7633
+ __name4(parseDecisionSandboxPrimitive, "parseDecisionSandboxPrimitive");
7634
+ __name(decisionPublishStampKey, "decisionPublishStampKey");
7635
+ __name4(decisionPublishStampKey, "decisionPublishStampKey");
7574
7636
  DECISION_LIMITS = {
7575
7637
  maxQuestions: 64,
7576
7638
  minOptions: 2,
@@ -7596,7 +7658,8 @@ var init_dist = __esm({
7596
7658
  UNAVAILABLE: "decision_unavailable",
7597
7659
  DISABLED: "decision_disabled",
7598
7660
  INSUFFICIENT_CREDITS: "decision_insufficient_credits",
7599
- NOT_FOUND: "decision_not_found"
7661
+ NOT_FOUND: "decision_not_found",
7662
+ CANCELLED: "decision_cancelled"
7600
7663
  };
7601
7664
  MAX_NAME_CHARS = 64;
7602
7665
  InstructionsSchema = z.string().trim().min(1).max(DECISION_LIMITS.maxInstructionChars);
@@ -7637,7 +7700,7 @@ var init_dist = __esm({
7637
7700
  ]).optional(),
7638
7701
  model: z.string().min(1).optional(),
7639
7702
  fallback: z.union([
7640
- z.enum(DECISION_PROVIDERS),
7703
+ z.enum(DECISION_FALLBACK_PROVIDERS),
7641
7704
  z.literal("none")
7642
7705
  ]).optional(),
7643
7706
  region: z.literal("eu").optional(),
@@ -7666,6 +7729,16 @@ var init_dist = __esm({
7666
7729
  description: z.string().max(DECISION_LIMITS.maxInstructionChars).optional(),
7667
7730
  questions: DecisionQuestionsSchema
7668
7731
  }).strict();
7732
+ DecisionDefinitionWriteSchema = DecisionDefinitionSchema.superRefine((definition, ctx) => {
7733
+ const issue = openRouterModelIssue(definition);
7734
+ if (issue) ctx.addIssue({
7735
+ code: z.ZodIssueCode.custom,
7736
+ path: [
7737
+ "model"
7738
+ ],
7739
+ message: issue
7740
+ });
7741
+ });
7669
7742
  INTEGRATION_PASSTHROUGH_READ_METHODS = [
7670
7743
  "GET",
7671
7744
  "HEAD"
@@ -10221,7 +10294,11 @@ var init_dist = __esm({
10221
10294
  "max-steps",
10222
10295
  "cost-cap",
10223
10296
  "error",
10224
- "reaped"
10297
+ "reaped",
10298
+ "cancelled",
10299
+ "confirmation",
10300
+ "blocked",
10301
+ "stopped"
10225
10302
  ];
10226
10303
  BROWSER_LOG_CONTEXT_KEYS = [
10227
10304
  "runId",
@@ -10249,7 +10326,8 @@ var init_dist = __esm({
10249
10326
  optional: {
10250
10327
  limits: isLimits,
10251
10328
  region: isString,
10252
- liveUrl: isString
10329
+ liveUrl: isString,
10330
+ browser: isString
10253
10331
  }
10254
10332
  },
10255
10333
  command: {
@@ -13392,6 +13470,218 @@ var init_auth_error = __esm({
13392
13470
  }
13393
13471
  });
13394
13472
 
13473
+ // ../sandbox-runtime/dist/decisions-api.mjs
13474
+ function isRecord3(value3) {
13475
+ return typeof value3 === "object" && value3 !== null && !Array.isArray(value3);
13476
+ }
13477
+ function isProvider(value3) {
13478
+ return DECISION_PROVIDERS.includes(value3);
13479
+ }
13480
+ function invalid2(message) {
13481
+ return new DecisionError(message, {
13482
+ code: DECISION_ERROR_CODES.INVALID
13483
+ });
13484
+ }
13485
+ function assertInstructions(builder, instructions) {
13486
+ if (typeof instructions !== "string" || instructions.trim().length === 0) {
13487
+ throw invalid2(`Decisions.${builder} needs non-empty instructions`);
13488
+ }
13489
+ if (instructions.length > DECISION_LIMITS.maxInstructionChars) {
13490
+ throw invalid2(`Decisions.${builder} instructions must be at most ${DECISION_LIMITS.maxInstructionChars} characters`);
13491
+ }
13492
+ }
13493
+ function assertCount(what, count2, min, max) {
13494
+ if (count2 < min || count2 > max) {
13495
+ throw invalid2(`${what} must hold ${min} to ${max} entries, got ${count2}`);
13496
+ }
13497
+ }
13498
+ function odds(instructions, criteria) {
13499
+ assertInstructions("odds", instructions);
13500
+ if (criteria === void 0) return {
13501
+ type: "odds",
13502
+ instructions
13503
+ };
13504
+ if (!isRecord3(criteria)) throw invalid2("Decisions.odds criteria must be an object like { yes, no }");
13505
+ return {
13506
+ type: "odds",
13507
+ instructions,
13508
+ criteria
13509
+ };
13510
+ }
13511
+ function choice(instructions, options) {
13512
+ assertInstructions("choice", instructions);
13513
+ if (!isRecord3(options)) throw invalid2("Decisions.choice options must be an object of label to description");
13514
+ assertCount("Decisions.choice options", Object.keys(options).length, DECISION_LIMITS.minOptions, DECISION_LIMITS.maxOptions);
13515
+ return {
13516
+ type: "choice",
13517
+ instructions,
13518
+ options
13519
+ };
13520
+ }
13521
+ function score(instructions, levels) {
13522
+ assertInstructions("score", instructions);
13523
+ if (!Array.isArray(levels)) throw invalid2("Decisions.score levels must be an array");
13524
+ assertCount("Decisions.score levels", levels.length, DECISION_LIMITS.minLevels, DECISION_LIMITS.maxLevels);
13525
+ return {
13526
+ type: "score",
13527
+ instructions,
13528
+ levels
13529
+ };
13530
+ }
13531
+ function assertDecisionQuestion(name, question) {
13532
+ if (!isRecord3(question) || !DECISION_QUESTION_TYPES.includes(question.type)) {
13533
+ throw invalid2(`questions.${name} must be built with Decisions.odds, Decisions.choice or Decisions.score`);
13534
+ }
13535
+ if (typeof question.instructions !== "string" || question.instructions.trim().length === 0) {
13536
+ throw invalid2(`questions.${name}.instructions must be a non-empty string`);
13537
+ }
13538
+ }
13539
+ function checkDecisionRequest(request) {
13540
+ if (!isRecord3(request)) {
13541
+ throw invalid2("Decisions.ask needs { state, questions } or (state, question)");
13542
+ }
13543
+ if (request.state === void 0 || request.state === null) {
13544
+ throw invalid2("Decisions.ask needs a state");
13545
+ }
13546
+ if (!isRecord3(request.questions) || Object.keys(request.questions).length === 0) {
13547
+ throw invalid2("Decisions.ask needs at least one question in questions");
13548
+ }
13549
+ for (const [name, question] of Object.entries(request.questions)) assertDecisionQuestion(name, question);
13550
+ return request;
13551
+ }
13552
+ function checkDecisionRunRequest(request) {
13553
+ if (typeof request.name !== "string" || !DECISION_NAME_PATTERN.test(request.name)) {
13554
+ throw invalid2("Decisions.run needs the name of a decision declared on the agent");
13555
+ }
13556
+ if (request.state === void 0 || request.state === null) {
13557
+ throw invalid2("Decisions.run needs a state");
13558
+ }
13559
+ return request;
13560
+ }
13561
+ function toDecisionError(caught) {
13562
+ if (caught instanceof DecisionError) return caught;
13563
+ const raw = isRecord3(caught) ? caught : {};
13564
+ const detail = typeof raw.message === "string" && raw.message.length > 0 ? raw.message : "Decision failed";
13565
+ const code = typeof raw.code === "string" && raw.code.length > 0 ? raw.code : DECISION_ERROR_CODES.UNAVAILABLE;
13566
+ const message = detail.startsWith(`${code}: `) ? detail : `${code}: ${detail}`;
13567
+ return new DecisionError(message, {
13568
+ code,
13569
+ ...isProvider(raw.provider) && {
13570
+ provider: raw.provider
13571
+ },
13572
+ ...typeof raw.upstreamStatus === "number" && {
13573
+ upstreamStatus: raw.upstreamStatus
13574
+ },
13575
+ ...typeof raw.decisionId === "string" && {
13576
+ decisionId: raw.decisionId
13577
+ }
13578
+ });
13579
+ }
13580
+ function buildDecisionsApi(transport) {
13581
+ async function relay2(send) {
13582
+ if (!transport) {
13583
+ throw new DecisionError("Decisions is not available in this runtime", {
13584
+ code: DECISION_ERROR_CODES.UNAVAILABLE
13585
+ });
13586
+ }
13587
+ try {
13588
+ return await send(transport);
13589
+ } catch (caught) {
13590
+ throw toDecisionError(caught);
13591
+ }
13592
+ }
13593
+ __name(relay2, "relay");
13594
+ __name6(relay2, "relay");
13595
+ async function ask(requestOrState, question, options) {
13596
+ if (question === void 0) {
13597
+ const request2 = checkDecisionRequest(requestOrState);
13598
+ return relay2((t) => t.ask(request2));
13599
+ }
13600
+ const request = checkDecisionRequest({
13601
+ ...options,
13602
+ state: requestOrState,
13603
+ questions: {
13604
+ [SINGLE_DECISION_KEY]: question
13605
+ }
13606
+ });
13607
+ const result = await relay2((t) => t.ask(request));
13608
+ return result.answers[SINGLE_DECISION_KEY];
13609
+ }
13610
+ __name(ask, "ask");
13611
+ __name6(ask, "ask");
13612
+ async function run(name, state3, options) {
13613
+ const request = checkDecisionRunRequest({
13614
+ ...options,
13615
+ name,
13616
+ state: state3
13617
+ });
13618
+ return await relay2((t) => t.run(request));
13619
+ }
13620
+ __name(run, "run");
13621
+ __name6(run, "run");
13622
+ return {
13623
+ ask,
13624
+ run,
13625
+ odds,
13626
+ choice,
13627
+ score
13628
+ };
13629
+ }
13630
+ var __defProp6, __name6, DECISION_ERROR_NAME, SINGLE_DECISION_KEY, DecisionError;
13631
+ var init_decisions_api = __esm({
13632
+ "../sandbox-runtime/dist/decisions-api.mjs"() {
13633
+ "use strict";
13634
+ init_dist();
13635
+ __defProp6 = Object.defineProperty;
13636
+ __name6 = /* @__PURE__ */ __name((target, value3) => __defProp6(target, "name", { value: value3, configurable: true }), "__name");
13637
+ DECISION_ERROR_NAME = "DecisionError";
13638
+ SINGLE_DECISION_KEY = "answer";
13639
+ DecisionError = class extends Error {
13640
+ static {
13641
+ __name(this, "DecisionError");
13642
+ }
13643
+ static {
13644
+ __name6(this, "DecisionError");
13645
+ }
13646
+ code;
13647
+ constructor(message, fields) {
13648
+ super(message);
13649
+ this.name = DECISION_ERROR_NAME;
13650
+ this.code = fields.code;
13651
+ if (fields.provider !== void 0) this.provider = fields.provider;
13652
+ if (fields.upstreamStatus !== void 0) this.upstreamStatus = fields.upstreamStatus;
13653
+ if (fields.decisionId !== void 0) this.decisionId = fields.decisionId;
13654
+ }
13655
+ };
13656
+ __name(isRecord3, "isRecord");
13657
+ __name6(isRecord3, "isRecord");
13658
+ __name(isProvider, "isProvider");
13659
+ __name6(isProvider, "isProvider");
13660
+ __name(invalid2, "invalid");
13661
+ __name6(invalid2, "invalid");
13662
+ __name(assertInstructions, "assertInstructions");
13663
+ __name6(assertInstructions, "assertInstructions");
13664
+ __name(assertCount, "assertCount");
13665
+ __name6(assertCount, "assertCount");
13666
+ __name(odds, "odds");
13667
+ __name6(odds, "odds");
13668
+ __name(choice, "choice");
13669
+ __name6(choice, "choice");
13670
+ __name(score, "score");
13671
+ __name6(score, "score");
13672
+ __name(assertDecisionQuestion, "assertDecisionQuestion");
13673
+ __name6(assertDecisionQuestion, "assertDecisionQuestion");
13674
+ __name(checkDecisionRequest, "checkDecisionRequest");
13675
+ __name6(checkDecisionRequest, "checkDecisionRequest");
13676
+ __name(checkDecisionRunRequest, "checkDecisionRunRequest");
13677
+ __name6(checkDecisionRunRequest, "checkDecisionRunRequest");
13678
+ __name(toDecisionError, "toDecisionError");
13679
+ __name6(toDecisionError, "toDecisionError");
13680
+ __name(buildDecisionsApi, "buildDecisionsApi");
13681
+ __name6(buildDecisionsApi, "buildDecisionsApi");
13682
+ }
13683
+ });
13684
+
13395
13685
  // src/errors/cli.error.ts
13396
13686
  function apiErrorDetail(error) {
13397
13687
  return {
@@ -13406,6 +13696,9 @@ function apiErrorDetail(error) {
13406
13696
  keyOwner: error?.keyOwner
13407
13697
  };
13408
13698
  }
13699
+ function isLuaErrorBody(body) {
13700
+ return typeof body.message === "string" || typeof body.statusCode === "number" || typeof body.code === "string";
13701
+ }
13409
13702
  function isAccessDeniedError(error) {
13410
13703
  if (CliError.isCliError(error)) return error.statusCode === 403;
13411
13704
  return error instanceof Error && error.message.startsWith("Access denied (403)");
@@ -13472,6 +13765,41 @@ function numericStatus(error) {
13472
13765
  const candidate = error.statusCode ?? error.status;
13473
13766
  return typeof candidate === "number" && Number.isFinite(candidate) ? candidate : void 0;
13474
13767
  }
13768
+ function statusClass(status) {
13769
+ if (status === 401) return {
13770
+ code: "auth",
13771
+ exitCode: CLI_EXIT.AUTH
13772
+ };
13773
+ if (status === 403) return {
13774
+ code: "forbidden",
13775
+ exitCode: CLI_EXIT.FORBIDDEN
13776
+ };
13777
+ if (status === 404) return {
13778
+ code: "not_found",
13779
+ exitCode: CLI_EXIT.NOT_FOUND
13780
+ };
13781
+ if (status >= 400 && status < 500) return {
13782
+ code: `http_${status}`,
13783
+ exitCode: CLI_EXIT.FORBIDDEN
13784
+ };
13785
+ if (status >= 500 || status === 0) return {
13786
+ code: "unavailable",
13787
+ exitCode: CLI_EXIT.UNAVAILABLE
13788
+ };
13789
+ return void 0;
13790
+ }
13791
+ function decisionErrorClass(error, message) {
13792
+ if (error.name !== DECISION_ERROR_NAME || typeof error.code !== "string" || error.code.length === 0) return void 0;
13793
+ const status = Object.hasOwn(DECISION_STATUS, error.code) ? DECISION_STATUS[error.code] : void 0;
13794
+ return {
13795
+ code: error.code,
13796
+ exitCode: (status === void 0 ? void 0 : statusClass(status)?.exitCode) ?? CLI_EXIT.ERROR,
13797
+ message,
13798
+ ...typeof error.decisionId === "string" && error.decisionId.length > 0 ? {
13799
+ decisionId: error.decisionId
13800
+ } : {}
13801
+ };
13802
+ }
13475
13803
  function classifyCliError(error) {
13476
13804
  if (CliError.isCliError(error)) {
13477
13805
  return {
@@ -13501,40 +13829,15 @@ function classifyCliError(error) {
13501
13829
  message
13502
13830
  };
13503
13831
  }
13832
+ const decision = decisionErrorClass(e, message);
13833
+ if (decision) return decision;
13504
13834
  const status = numericStatus(e);
13505
- if (status !== void 0) {
13506
- const statusCode = status;
13507
- if (status === 401) return {
13508
- code: "auth",
13509
- exitCode: CLI_EXIT.AUTH,
13510
- message,
13511
- statusCode
13512
- };
13513
- if (status === 403) return {
13514
- code: "forbidden",
13515
- exitCode: CLI_EXIT.FORBIDDEN,
13516
- message,
13517
- statusCode
13518
- };
13519
- if (status === 404) return {
13520
- code: "not_found",
13521
- exitCode: CLI_EXIT.NOT_FOUND,
13522
- message,
13523
- statusCode
13524
- };
13525
- if (status >= 400 && status < 500) return {
13526
- code: `http_${status}`,
13527
- exitCode: CLI_EXIT.FORBIDDEN,
13528
- message,
13529
- statusCode
13530
- };
13531
- if (status >= 500 || status === 0) return {
13532
- code: "unavailable",
13533
- exitCode: CLI_EXIT.UNAVAILABLE,
13534
- message,
13535
- statusCode
13536
- };
13537
- }
13835
+ const byStatus = status === void 0 ? void 0 : statusClass(status);
13836
+ if (byStatus) return {
13837
+ ...byStatus,
13838
+ message,
13839
+ statusCode: status
13840
+ };
13538
13841
  const causeCode = e.cause?.code;
13539
13842
  if (typeof e.code === "string" && NETWORK_ERRNO.has(e.code) || typeof causeCode === "string" && NETWORK_ERRNO.has(causeCode) || e.name === "AbortError" || e.name === "TimeoutError" || NETWORK_MESSAGE.test(message)) {
13540
13843
  return {
@@ -13550,10 +13853,12 @@ function classifyCliError(error) {
13550
13853
  message
13551
13854
  };
13552
13855
  }
13553
- var CLI_EXIT, CliError, NETWORK_ERRNO, NETWORK_MESSAGE, UNAVAILABLE_HINT, VENDOR_RETRY_SOON_SECONDS, VENDOR_LABELS, PROVIDER_REJECTED_SERVER_CODE, PROVIDER_REJECTED_HTTP_STATUS, PROVIDER_REJECTION_REASONS, PROVIDER_REJECTED_NO_RETRY, PROVIDER_REJECTED_LUA_SIDE, MODEL_SETTINGS_URL;
13856
+ var CLI_EXIT, CliError, EDGE_BLOCKED_CODE, NETWORK_ERRNO, NETWORK_MESSAGE, UNAVAILABLE_HINT, VENDOR_RETRY_SOON_SECONDS, VENDOR_LABELS, PROVIDER_REJECTED_SERVER_CODE, PROVIDER_REJECTED_HTTP_STATUS, PROVIDER_REJECTION_REASONS, PROVIDER_REJECTED_NO_RETRY, PROVIDER_REJECTED_LUA_SIDE, MODEL_SETTINGS_URL, DECISION_STATUS;
13554
13857
  var init_cli_error = __esm({
13555
13858
  "src/errors/cli.error.ts"() {
13556
13859
  "use strict";
13860
+ init_dist();
13861
+ init_decisions_api();
13557
13862
  init_auth_error();
13558
13863
  CLI_EXIT = {
13559
13864
  OK: 0,
@@ -13661,6 +13966,8 @@ var init_cli_error = __esm({
13661
13966
  return error instanceof _CliError || typeof error === "object" && error !== null && error.isCliError === true;
13662
13967
  }
13663
13968
  };
13969
+ EDGE_BLOCKED_CODE = "EDGE_BLOCKED";
13970
+ __name(isLuaErrorBody, "isLuaErrorBody");
13664
13971
  __name(isAccessDeniedError, "isAccessDeniedError");
13665
13972
  NETWORK_ERRNO = /* @__PURE__ */ new Set([
13666
13973
  "ECONNREFUSED",
@@ -13706,6 +14013,18 @@ var init_cli_error = __esm({
13706
14013
  __name(providerRejectedHint, "providerRejectedHint");
13707
14014
  __name(authHint, "authHint");
13708
14015
  __name(numericStatus, "numericStatus");
14016
+ __name(statusClass, "statusClass");
14017
+ DECISION_STATUS = {
14018
+ [DECISION_ERROR_CODES.INVALID]: 400,
14019
+ [DECISION_ERROR_CODES.INSUFFICIENT_CREDITS]: 402,
14020
+ [DECISION_ERROR_CODES.NOT_FOUND]: 404,
14021
+ [DECISION_ERROR_CODES.REJECTED]: 422,
14022
+ [DECISION_ERROR_CODES.TIMEOUT]: 503,
14023
+ [DECISION_ERROR_CODES.UNAVAILABLE]: 503,
14024
+ [DECISION_ERROR_CODES.DISABLED]: 503,
14025
+ [DECISION_ERROR_CODES.CANCELLED]: 400
14026
+ };
14027
+ __name(decisionErrorClass, "decisionErrorClass");
13709
14028
  __name(classifyCliError, "classifyCliError");
13710
14029
  }
13711
14030
  });
@@ -14356,6 +14675,14 @@ async function classifyErrorResponse(response) {
14356
14675
  }
14357
14676
  throw new AuthenticationError(`Authentication failed: ${serverMessage}`, "unknown", serverMessage);
14358
14677
  }
14678
+ if (response.status === 403 && !isLuaErrorBody(errorData) && isHtmlResponse(response)) {
14679
+ throw new CliError("forbidden", "The request was blocked before it reached Lua (HTTP 403 from the network firewall), not by your credentials.", {
14680
+ exitCode: CLI_EXIT.FORBIDDEN,
14681
+ statusCode: 403,
14682
+ serverCode: EDGE_BLOCKED_CODE,
14683
+ hint: "Something in the request looked like an attack to the firewall, for example a URL that contains a system path. Change the request and try again."
14684
+ });
14685
+ }
14359
14686
  if (response.status === 403) {
14360
14687
  const detail = errorData.message || "You do not have permission to access this resource.";
14361
14688
  const serverCode = serverCodeOf(errorData.code, errorData.error);
@@ -14448,6 +14775,9 @@ async function* parseSseStream(body, signal) {
14448
14775
  }
14449
14776
  }
14450
14777
  }
14778
+ function isHtmlResponse(response) {
14779
+ return (response.headers.get("content-type") ?? "").toLowerCase().includes("text/html");
14780
+ }
14451
14781
  function parseRetryAfter(raw) {
14452
14782
  if (!raw) return void 0;
14453
14783
  const seconds = Number.parseInt(raw, 10);
@@ -14865,6 +15195,7 @@ var init_http_client = __esm({
14865
15195
  __name(classifyErrorResponse, "classifyErrorResponse");
14866
15196
  __name(serverCodeOf, "serverCodeOf");
14867
15197
  __name(parseSseStream, "parseSseStream");
15198
+ __name(isHtmlResponse, "isHtmlResponse");
14868
15199
  __name(parseRetryAfter, "parseRetryAfter");
14869
15200
  __name(isCoreDrainApiError, "isCoreDrainApiError");
14870
15201
  __name(coreDrainApiRetryDelayMs, "coreDrainApiRetryDelayMs");
@@ -14962,217 +15293,6 @@ var init_connection_requests_api_service = __esm({
14962
15293
  }
14963
15294
  });
14964
15295
 
14965
- // ../sandbox-runtime/dist/decisions-api.mjs
14966
- function isRecord3(value3) {
14967
- return typeof value3 === "object" && value3 !== null && !Array.isArray(value3);
14968
- }
14969
- function isProvider(value3) {
14970
- return DECISION_PROVIDERS.includes(value3);
14971
- }
14972
- function invalid2(message) {
14973
- return new DecisionError(message, {
14974
- code: DECISION_ERROR_CODES.INVALID
14975
- });
14976
- }
14977
- function assertInstructions(builder, instructions) {
14978
- if (typeof instructions !== "string" || instructions.trim().length === 0) {
14979
- throw invalid2(`Decisions.${builder} needs non-empty instructions`);
14980
- }
14981
- if (instructions.length > DECISION_LIMITS.maxInstructionChars) {
14982
- throw invalid2(`Decisions.${builder} instructions must be at most ${DECISION_LIMITS.maxInstructionChars} characters`);
14983
- }
14984
- }
14985
- function assertCount(what, count2, min, max) {
14986
- if (count2 < min || count2 > max) {
14987
- throw invalid2(`${what} must hold ${min} to ${max} entries, got ${count2}`);
14988
- }
14989
- }
14990
- function odds(instructions, criteria) {
14991
- assertInstructions("odds", instructions);
14992
- if (criteria === void 0) return {
14993
- type: "odds",
14994
- instructions
14995
- };
14996
- if (!isRecord3(criteria)) throw invalid2("Decisions.odds criteria must be an object like { yes, no }");
14997
- return {
14998
- type: "odds",
14999
- instructions,
15000
- criteria
15001
- };
15002
- }
15003
- function choice(instructions, options) {
15004
- assertInstructions("choice", instructions);
15005
- if (!isRecord3(options)) throw invalid2("Decisions.choice options must be an object of label to description");
15006
- assertCount("Decisions.choice options", Object.keys(options).length, DECISION_LIMITS.minOptions, DECISION_LIMITS.maxOptions);
15007
- return {
15008
- type: "choice",
15009
- instructions,
15010
- options
15011
- };
15012
- }
15013
- function score(instructions, levels) {
15014
- assertInstructions("score", instructions);
15015
- if (!Array.isArray(levels)) throw invalid2("Decisions.score levels must be an array");
15016
- assertCount("Decisions.score levels", levels.length, DECISION_LIMITS.minLevels, DECISION_LIMITS.maxLevels);
15017
- return {
15018
- type: "score",
15019
- instructions,
15020
- levels
15021
- };
15022
- }
15023
- function assertDecisionQuestion(name, question) {
15024
- if (!isRecord3(question) || !DECISION_QUESTION_TYPES.includes(question.type)) {
15025
- throw invalid2(`questions.${name} must be built with Decisions.odds, Decisions.choice or Decisions.score`);
15026
- }
15027
- if (typeof question.instructions !== "string" || question.instructions.trim().length === 0) {
15028
- throw invalid2(`questions.${name}.instructions must be a non-empty string`);
15029
- }
15030
- }
15031
- function checkDecisionRequest(request) {
15032
- if (!isRecord3(request)) {
15033
- throw invalid2("Decisions.ask needs { state, questions } or (state, question)");
15034
- }
15035
- if (request.state === void 0 || request.state === null) {
15036
- throw invalid2("Decisions.ask needs a state");
15037
- }
15038
- if (!isRecord3(request.questions) || Object.keys(request.questions).length === 0) {
15039
- throw invalid2("Decisions.ask needs at least one question in questions");
15040
- }
15041
- for (const [name, question] of Object.entries(request.questions)) assertDecisionQuestion(name, question);
15042
- return request;
15043
- }
15044
- function checkDecisionRunRequest(request) {
15045
- if (typeof request.name !== "string" || !DECISION_NAME_PATTERN.test(request.name)) {
15046
- throw invalid2("Decisions.run needs the name of a decision declared on the agent");
15047
- }
15048
- if (request.state === void 0 || request.state === null) {
15049
- throw invalid2("Decisions.run needs a state");
15050
- }
15051
- return request;
15052
- }
15053
- function toDecisionError(caught) {
15054
- if (caught instanceof DecisionError) return caught;
15055
- const raw = isRecord3(caught) ? caught : {};
15056
- const message = typeof raw.message === "string" && raw.message.length > 0 ? raw.message : "Decision failed";
15057
- const code = typeof raw.code === "string" && raw.code.length > 0 ? raw.code : DECISION_ERROR_CODES.UNAVAILABLE;
15058
- return new DecisionError(message, {
15059
- code,
15060
- ...isProvider(raw.provider) && {
15061
- provider: raw.provider
15062
- },
15063
- ...typeof raw.upstreamStatus === "number" && {
15064
- upstreamStatus: raw.upstreamStatus
15065
- },
15066
- ...typeof raw.decisionId === "string" && {
15067
- decisionId: raw.decisionId
15068
- }
15069
- });
15070
- }
15071
- function buildDecisionsApi(transport) {
15072
- async function relay2(send) {
15073
- if (!transport) {
15074
- throw new DecisionError("Decisions is not available in this runtime", {
15075
- code: DECISION_ERROR_CODES.UNAVAILABLE
15076
- });
15077
- }
15078
- try {
15079
- return await send(transport);
15080
- } catch (caught) {
15081
- throw toDecisionError(caught);
15082
- }
15083
- }
15084
- __name(relay2, "relay");
15085
- __name6(relay2, "relay");
15086
- async function ask(requestOrState, question, options) {
15087
- if (question === void 0) {
15088
- const request2 = checkDecisionRequest(requestOrState);
15089
- return relay2((t) => t.ask(request2));
15090
- }
15091
- const request = checkDecisionRequest({
15092
- ...options,
15093
- state: requestOrState,
15094
- questions: {
15095
- [SINGLE_DECISION_KEY]: question
15096
- }
15097
- });
15098
- const result = await relay2((t) => t.ask(request));
15099
- return result.answers[SINGLE_DECISION_KEY];
15100
- }
15101
- __name(ask, "ask");
15102
- __name6(ask, "ask");
15103
- async function run(name, state3, options) {
15104
- const request = checkDecisionRunRequest({
15105
- ...options,
15106
- name,
15107
- state: state3
15108
- });
15109
- return await relay2((t) => t.run(request));
15110
- }
15111
- __name(run, "run");
15112
- __name6(run, "run");
15113
- return {
15114
- ask,
15115
- run,
15116
- odds,
15117
- choice,
15118
- score
15119
- };
15120
- }
15121
- var __defProp6, __name6, DECISION_ERROR_NAME, SINGLE_DECISION_KEY, DecisionError;
15122
- var init_decisions_api = __esm({
15123
- "../sandbox-runtime/dist/decisions-api.mjs"() {
15124
- "use strict";
15125
- init_dist();
15126
- __defProp6 = Object.defineProperty;
15127
- __name6 = /* @__PURE__ */ __name((target, value3) => __defProp6(target, "name", { value: value3, configurable: true }), "__name");
15128
- DECISION_ERROR_NAME = "DecisionError";
15129
- SINGLE_DECISION_KEY = "answer";
15130
- DecisionError = class extends Error {
15131
- static {
15132
- __name(this, "DecisionError");
15133
- }
15134
- static {
15135
- __name6(this, "DecisionError");
15136
- }
15137
- code;
15138
- constructor(message, fields) {
15139
- super(message);
15140
- this.name = DECISION_ERROR_NAME;
15141
- this.code = fields.code;
15142
- if (fields.provider !== void 0) this.provider = fields.provider;
15143
- if (fields.upstreamStatus !== void 0) this.upstreamStatus = fields.upstreamStatus;
15144
- if (fields.decisionId !== void 0) this.decisionId = fields.decisionId;
15145
- }
15146
- };
15147
- __name(isRecord3, "isRecord");
15148
- __name6(isRecord3, "isRecord");
15149
- __name(isProvider, "isProvider");
15150
- __name6(isProvider, "isProvider");
15151
- __name(invalid2, "invalid");
15152
- __name6(invalid2, "invalid");
15153
- __name(assertInstructions, "assertInstructions");
15154
- __name6(assertInstructions, "assertInstructions");
15155
- __name(assertCount, "assertCount");
15156
- __name6(assertCount, "assertCount");
15157
- __name(odds, "odds");
15158
- __name6(odds, "odds");
15159
- __name(choice, "choice");
15160
- __name6(choice, "choice");
15161
- __name(score, "score");
15162
- __name6(score, "score");
15163
- __name(assertDecisionQuestion, "assertDecisionQuestion");
15164
- __name6(assertDecisionQuestion, "assertDecisionQuestion");
15165
- __name(checkDecisionRequest, "checkDecisionRequest");
15166
- __name6(checkDecisionRequest, "checkDecisionRequest");
15167
- __name(checkDecisionRunRequest, "checkDecisionRunRequest");
15168
- __name6(checkDecisionRunRequest, "checkDecisionRunRequest");
15169
- __name(toDecisionError, "toDecisionError");
15170
- __name6(toDecisionError, "toDecisionError");
15171
- __name(buildDecisionsApi, "buildDecisionsApi");
15172
- __name6(buildDecisionsApi, "buildDecisionsApi");
15173
- }
15174
- });
15175
-
15176
15296
  // src/api/decisions.api.service.ts
15177
15297
  function resultOf(response) {
15178
15298
  if (!response.success) throw toDecisionError(response.error);
@@ -15183,13 +15303,20 @@ function resultOf(response) {
15183
15303
  }
15184
15304
  return response.data;
15185
15305
  }
15186
- function buildOfflineDecisionsApi(getService) {
15306
+ function decisionTestSiteHeaders(site) {
15307
+ return {
15308
+ [DECISION_SANDBOX_SITE_HEADER]: DECISION_LUA_TEST_SITE,
15309
+ [DECISION_SANDBOX_PRIMITIVE_HEADER]: formatDecisionSandboxPrimitive(`${site.kind}:${site.name}`, site.tool)
15310
+ };
15311
+ }
15312
+ function buildOfflineDecisionsApi(getService, testSite) {
15313
+ const headers = testSite ? decisionTestSiteHeaders(testSite) : void 0;
15187
15314
  return buildDecisionsApi({
15188
- ask: /* @__PURE__ */ __name(async (request) => (await getService()).askForSandbox(request), "ask"),
15189
- run: /* @__PURE__ */ __name(async (request) => (await getService()).runForSandbox(request), "run")
15315
+ ask: /* @__PURE__ */ __name(async (request) => (await getService()).askForSandbox(request, headers), "ask"),
15316
+ run: /* @__PURE__ */ __name(async (request) => (await getService()).runForSandbox(request, headers), "run")
15190
15317
  });
15191
15318
  }
15192
- var DecisionsApiService;
15319
+ var DECISION_LUA_TEST_SITE, DecisionsApiService;
15193
15320
  var init_decisions_api_service = __esm({
15194
15321
  "src/api/decisions.api.service.ts"() {
15195
15322
  "use strict";
@@ -15197,6 +15324,8 @@ var init_decisions_api_service = __esm({
15197
15324
  init_decisions_api();
15198
15325
  init_http_client();
15199
15326
  __name(resultOf, "resultOf");
15327
+ DECISION_LUA_TEST_SITE = "lua-test";
15328
+ __name(decisionTestSiteHeaders, "decisionTestSiteHeaders");
15200
15329
  DecisionsApiService = class extends HttpClient {
15201
15330
  static {
15202
15331
  __name(this, "DecisionsApiService");
@@ -15205,17 +15334,17 @@ var init_decisions_api_service = __esm({
15205
15334
  constructor(baseUrl, credential, agentId2) {
15206
15335
  super(baseUrl, credential), this.agentId = agentId2;
15207
15336
  }
15208
- async ask(body) {
15209
- return this.httpPostOnce(`/developer/decisions/${this.agentId}/ask`, body, {});
15337
+ async ask(body, headers = {}) {
15338
+ return this.httpPostOnce(`/developer/decisions/${this.agentId}/ask`, body, headers);
15210
15339
  }
15211
- async run({ name, ...body }) {
15212
- return this.httpPostOnce(`/developer/decisions/${this.agentId}/run/${encodeURIComponent(name)}`, body, {});
15340
+ async run({ name, ...body }, headers = {}) {
15341
+ return this.httpPostOnce(`/developer/decisions/${this.agentId}/run/${encodeURIComponent(name)}`, body, headers);
15213
15342
  }
15214
- async askForSandbox(request) {
15215
- return resultOf(await this.ask(request));
15343
+ async askForSandbox(request, headers) {
15344
+ return resultOf(await this.ask(request, headers));
15216
15345
  }
15217
- async runForSandbox(request) {
15218
- return resultOf(await this.run(request));
15346
+ async runForSandbox(request, headers) {
15347
+ return resultOf(await this.run(request, headers));
15219
15348
  }
15220
15349
  async getDecisions() {
15221
15350
  return this.httpGet(`/developer/decisions/${this.agentId}/definitions`, {});
@@ -21793,6 +21922,9 @@ var init_semver = __esm({
21793
21922
  });
21794
21923
 
21795
21924
  // src/primitives/base.handler.ts
21925
+ function nameFlagDeleteCommand(deleteCommand, displayName, name) {
21926
+ return `${deleteCommand} --${displayName.toLowerCase().replace(/\s+/g, "-")}-name ${name}`;
21927
+ }
21796
21928
  var DEFAULT_VERSION, BaseVersionedHandler;
21797
21929
  var init_base_handler = __esm({
21798
21930
  "src/primitives/base.handler.ts"() {
@@ -21805,10 +21937,14 @@ var init_base_handler = __esm({
21805
21937
  init_auth_error();
21806
21938
  init_cli_error();
21807
21939
  DEFAULT_VERSION = SKILL_DEFAULTS.VERSION;
21940
+ __name(nameFlagDeleteCommand, "nameFlagDeleteCommand");
21808
21941
  BaseVersionedHandler = class {
21809
21942
  static {
21810
21943
  __name(this, "BaseVersionedHandler");
21811
21944
  }
21945
+ serverDeleteCommand(name) {
21946
+ return nameFlagDeleteCommand(this.deleteCommand, this.displayName, name);
21947
+ }
21812
21948
  /**
21813
21949
  * Strip a YAML item to only the canonical fields: name, version, [idField].
21814
21950
  * Override if your YAML type has additional fields.
@@ -21946,7 +22082,6 @@ var init_base_handler = __esm({
21946
22082
  }));
21947
22083
  yamlItems.push(...stubs);
21948
22084
  yamlUpdated = true;
21949
- const flagName = `--${this.displayName.toLowerCase().replace(/\s+/g, "-")}-name`;
21950
22085
  console.log(`
21951
22086
  \u26A0\uFE0F Found ${this.displayNamePlural} on server not in your local code:`);
21952
22087
  for (const item of orphans) {
@@ -21955,7 +22090,7 @@ var init_base_handler = __esm({
21955
22090
  console.log(msg);
21956
22091
  }
21957
22092
  console.log(` Added to lua.skill.yaml as server-only entries.`);
21958
- console.log(` To remove from server: ${this.deleteCommand} ${flagName} <name>`);
22093
+ console.log(` To remove from server: ${this.serverDeleteCommand("<name>")}`);
21959
22094
  console.log(` To restore source from backup: lua sync --accept
21960
22095
  `);
21961
22096
  orphanedCount = orphans.length;
@@ -22593,6 +22728,7 @@ var init_cli = __esm({
22593
22728
  init_analytics();
22594
22729
  init_hints();
22595
22730
  init_write_info();
22731
+ init_write_info();
22596
22732
  }
22597
22733
  });
22598
22734
 
@@ -30019,6 +30155,8 @@ export {
30019
30155
  UserDataInstance,
30020
30156
  Voice,
30021
30157
  WEB_APP_NAME_PATTERN,
30158
+ WORKFLOW_DEFAULT_MAX_DURATION_SECONDS,
30159
+ WORKFLOW_HITL_MAX_DURATION_SECONDS,
30022
30160
  Workflows,
30023
30161
  and2 as and,
30024
30162
  checkAsUserRequiresUser,