lua-cli 3.53.0 → 3.55.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -853,6 +853,10 @@ import { z as z3 } from "zod";
853
853
  import { z as z4 } from "zod";
854
854
  import { z as z5 } from "zod";
855
855
  import { z as z6 } from "zod";
856
+ import { z as z7 } from "zod";
857
+ import { z as z8 } from "zod";
858
+ import { z as z9 } from "zod";
859
+ import { z as z10 } from "zod";
856
860
  function isChannelConversationChannel(channel) {
857
861
  return !!channel && CHANNEL_CONVERSATION_CHANNELS.includes(channel);
858
862
  }
@@ -3203,6 +3207,20 @@ function sanitizeProgressUpdateInput(input) {
3203
3207
  if (percent2 !== void 0) out.percent = percent2;
3204
3208
  return out;
3205
3209
  }
3210
+ function agentIdentityError(code, message, statusCode) {
3211
+ return Object.assign(new Error(message), {
3212
+ name: "AgentIdentityError",
3213
+ code,
3214
+ ...typeof statusCode === "number" ? {
3215
+ statusCode
3216
+ } : {}
3217
+ });
3218
+ }
3219
+ function readAgentIdentityAudience(input) {
3220
+ if (!input || typeof input !== "object" || Array.isArray(input)) return null;
3221
+ const audience = input.audience;
3222
+ return typeof audience === "string" && audience.length > 0 && audience.length <= 200 ? audience : null;
3223
+ }
3206
3224
  function toEpochMs(value3) {
3207
3225
  if (value3 === null || value3 === void 0) return void 0;
3208
3226
  const ms = value3 instanceof Date ? value3.getTime() : typeof value3 === "number" ? value3 : Date.parse(value3);
@@ -4050,6 +4068,10 @@ function removeHiddenBlocks(input) {
4050
4068
  "hide"
4051
4069
  ]).trim();
4052
4070
  }
4071
+ function stripBlocksKeepingEdges(input, names) {
4072
+ const stripped = stripBlocks(input, names);
4073
+ return stripped === input ? input : stripped.trim();
4074
+ }
4053
4075
  function startsWithHiddenBlock(input) {
4054
4076
  const [first] = splitBlocks(input);
4055
4077
  return first?.type === "block" && first.name === "hide";
@@ -4139,8 +4161,10 @@ function transformChatHistoryContentParts(parts) {
4139
4161
  }
4140
4162
  if (part?.type !== "text" && part?.type !== "file") continue;
4141
4163
  if (part.type === "text" && typeof part.text === "string") {
4142
- const rawText = removeHiddenBlocks(part.text || "");
4143
- if (!rawText) continue;
4164
+ const rawText = stripBlocksKeepingEdges(part.text || "", [
4165
+ "hide"
4166
+ ]);
4167
+ if (!rawText.trim()) continue;
4144
4168
  const audioMatch = rawText.match(/::: audio\s*!\[(.*?)\]\((.*?)\)\s*:::/);
4145
4169
  const videoMatch = rawText.match(/::: video\s*!\[(.*?)\]\((.*?)\)\s*:::/);
4146
4170
  if (audioMatch) {
@@ -4157,7 +4181,9 @@ function transformChatHistoryContentParts(parts) {
4157
4181
  });
4158
4182
  } else {
4159
4183
  let text2 = rawText.replace(/\\\\\\n/g, "\n");
4160
- text2 = removeNavigateBlock(text2);
4184
+ text2 = stripBlocksKeepingEdges(text2, [
4185
+ "navigate"
4186
+ ]);
4161
4187
  content.push({
4162
4188
  type: "text",
4163
4189
  text: text2
@@ -4232,6 +4258,15 @@ function mergeRichPartMirrorMessages(messages, sameTurnGroup) {
4232
4258
  break;
4233
4259
  }
4234
4260
  if (folded) continue;
4261
+ const content = message.content.filter((part) => part.type !== "data-lua-tool-step" && part.type !== "data-lua-reasoning-time" && part.type !== "data-lua-reply-timing");
4262
+ if (content.length === 0) continue;
4263
+ if (content.length !== message.content.length) {
4264
+ merged.push({
4265
+ ...message,
4266
+ content
4267
+ });
4268
+ continue;
4269
+ }
4235
4270
  }
4236
4271
  merged.push(message);
4237
4272
  }
@@ -4279,6 +4314,57 @@ function foldRichPartsIntoMessages(messages, records, makeMessage, sameTurnGroup
4279
4314
  while (next < synthetic.length) combined.push(synthetic[next++].message);
4280
4315
  return mergeRichPartMirrorMessages(combined, sameTurnGroup);
4281
4316
  }
4317
+ function readStoredReplyVersion(metadata) {
4318
+ const md = metadata && typeof metadata === "object" ? metadata : void 0;
4319
+ const value3 = md?.replyVersion;
4320
+ const stamp = value3 && typeof value3.group === "string" && value3.group && typeof value3.index === "number" && Number.isInteger(value3.index) && value3.index >= 1 ? {
4321
+ group: value3.group,
4322
+ index: value3.index
4323
+ } : null;
4324
+ return {
4325
+ stamp,
4326
+ inactive: md?.inactiveVersion === true
4327
+ };
4328
+ }
4329
+ function applyReplyVersions(messages, markOf, includeVersions) {
4330
+ const blocks = [];
4331
+ const indicesByGroup = /* @__PURE__ */ new Map();
4332
+ let current = null;
4333
+ for (const message of messages) {
4334
+ const mark = markOf(message);
4335
+ if (message.role === "user") {
4336
+ current = mark?.stamp ? {
4337
+ ...mark.stamp,
4338
+ inactive: mark.inactive
4339
+ } : null;
4340
+ if (current) {
4341
+ const seen = indicesByGroup.get(current.group) ?? /* @__PURE__ */ new Set();
4342
+ seen.add(current.index);
4343
+ indicesByGroup.set(current.group, seen);
4344
+ }
4345
+ }
4346
+ blocks.push(current);
4347
+ }
4348
+ const out = [];
4349
+ messages.forEach((message, i) => {
4350
+ const block = blocks[i];
4351
+ if (!block) {
4352
+ out.push(message);
4353
+ return;
4354
+ }
4355
+ if (block.inactive && !includeVersions) return;
4356
+ out.push({
4357
+ ...message,
4358
+ replyVersion: {
4359
+ group: block.group,
4360
+ index: block.index,
4361
+ total: indicesByGroup.get(block.group)?.size ?? 1,
4362
+ active: !block.inactive
4363
+ }
4364
+ });
4365
+ });
4366
+ return out;
4367
+ }
4282
4368
  function text(item, field, index, required) {
4283
4369
  const value3 = item[field];
4284
4370
  if (value3 === void 0 && !required) return void 0;
@@ -6721,6 +6807,33 @@ function composeAgentPaneRuntimeContext(input) {
6721
6807
  }
6722
6808
  return lines.join("\n");
6723
6809
  }
6810
+ function webAppHealthMinute(atMs) {
6811
+ return Math.floor(atMs / 6e4);
6812
+ }
6813
+ function webAppHealthKey(webAppId, minute) {
6814
+ return `webapp:health:${webAppId}:${minute}`;
6815
+ }
6816
+ function webAppHealthVerdict(minutes) {
6817
+ let requests = 0;
6818
+ let failures = 0;
6819
+ let firstFailingMinute;
6820
+ for (const m of minutes) {
6821
+ const r = Math.max(0, m.requests || 0);
6822
+ const f = Math.max(0, Math.min(m.failures || 0, r));
6823
+ requests += r;
6824
+ failures += f;
6825
+ if (f > 0 && (firstFailingMinute === void 0 || m.minute < firstFailingMinute)) firstFailingMinute = m.minute;
6826
+ }
6827
+ if (failures >= WEB_APP_HEALTH_MIN_FAILURES && failures >= requests * WEB_APP_HEALTH_MIN_FAILURE_RATIO) {
6828
+ return {
6829
+ state: "needs_attention",
6830
+ since: new Date(firstFailingMinute * 6e4)
6831
+ };
6832
+ }
6833
+ return {
6834
+ state: "ok"
6835
+ };
6836
+ }
6724
6837
  function evidenceDisplayText(text2) {
6725
6838
  const raw = typeof text2 === "string" ? text2 : "";
6726
6839
  if (!raw.trim()) return "";
@@ -7575,7 +7688,8 @@ function isPaymentRequiredChatErrorEnvelope(data) {
7575
7688
  if (!data || typeof data !== "object") return false;
7576
7689
  const d = data;
7577
7690
  if (d.type !== "error") return false;
7578
- return d.textDelta === BILLING_REJECTION_TEXT_CREDITS || d.textDelta === BILLING_REJECTION_TEXT_SEAT || d.textDelta === BILLING_REJECTION_TEXT_USER_QUOTA;
7691
+ if (d.code === "OUT_OF_ACTIONS") return true;
7692
+ return d.textDelta === BILLING_REJECTION_TEXT_CREDITS || d.textDelta === BILLING_REJECTION_TEXT_OUT_OF_ACTIONS || d.textDelta === BILLING_REJECTION_TEXT_SEAT || d.textDelta === BILLING_REJECTION_TEXT_USER_QUOTA;
7579
7693
  }
7580
7694
  function isCustomMcpConnectionId(id2) {
7581
7695
  return typeof id2 === "string" && id2.startsWith(CUSTOM_MCP_CONNECTION_ID_PREFIX);
@@ -7687,7 +7801,56 @@ function sharedDataOwnerKey(collectionId) {
7687
7801
  function isSharedDataOwnerKey(agentId2) {
7688
7802
  return typeof agentId2 === "string" && agentId2.startsWith(SHARED_DATA_OWNER_PREFIX);
7689
7803
  }
7690
- 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, SCRUB_DEEP_MAX_DEPTH, 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, SUPERVISED_SECRET_LIMITS, SUPERVISED_SECRET_NAME_RE, SUPERVISED_SECRET_FIELD_RE, SUPERVISED_SECRET_KEY_FIELD, SUPERVISED_SECRET_ERRORS, 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, isPlainObject3, 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, WEB_APP_ID_PATTERN, 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, label, labels, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingMatchScreenSchema, 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_TITLE_MAX_CHARS, WEB_APP_CHAT_TEXT_MAX_CHARS, WEB_APP_CHAT_CONTEXT_MAX_BYTES, WEB_APP_CHAT_PATH_MAX_CHARS, WEB_APP_CHAT_CONTROL_CHARS, WEB_APP_CHAT_APP_NAME_MAX_CHARS, 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, SHARED_DATA_NAME_RE, SHARED_DATA_OWNER_PREFIX, SHARED_DATA_ERRORS;
7804
+ function resolvePlanEntitlements(plan) {
7805
+ const limits = {};
7806
+ for (const k of PLAN_LIMIT_KEYS) {
7807
+ const v = plan.limits[k];
7808
+ limits[k] = v === void 0 ? PLAN_KEYS[k].default : v;
7809
+ }
7810
+ const features = {};
7811
+ for (const k of PLAN_FEATURE_KEYS) {
7812
+ const v = plan.features[k];
7813
+ features[k] = v === void 0 ? PLAN_KEYS[k].default : v;
7814
+ }
7815
+ return {
7816
+ limits,
7817
+ features
7818
+ };
7819
+ }
7820
+ function isPlanRefusal(body) {
7821
+ if (!body || typeof body !== "object") return false;
7822
+ const code = body.code;
7823
+ return typeof code === "string" && PLAN_REFUSAL_CODES.includes(code);
7824
+ }
7825
+ function planKeyList() {
7826
+ return Object.keys(PLAN_KEYS).map((key) => ({
7827
+ key,
7828
+ kind: PLAN_KEYS[key].kind,
7829
+ label: PLAN_KEYS[key].label,
7830
+ default: PLAN_KEYS[key].default
7831
+ }));
7832
+ }
7833
+ function parseWith(schema, body) {
7834
+ const r = schema.safeParse(body);
7835
+ return r.success ? {
7836
+ ok: true,
7837
+ data: r.data
7838
+ } : {
7839
+ ok: false,
7840
+ problems: r.error.issues.map((i) => `${i.path.join(".")} ${i.message}`)
7841
+ };
7842
+ }
7843
+ function parseWith2(schema, body) {
7844
+ const r = schema.safeParse(body);
7845
+ return r.success ? {
7846
+ ok: true,
7847
+ data: r.data
7848
+ } : {
7849
+ ok: false,
7850
+ problems: r.error.issues.map((i) => `${i.path.join(".")} ${i.message}`)
7851
+ };
7852
+ }
7853
+ 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, INTEGRATION_PASSTHROUGH_MAX_BASE64_RESPONSE_BYTES, 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, SCRUB_DEEP_MAX_DEPTH, 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, SUPERVISED_SECRET_LIMITS, SUPERVISED_SECRET_NAME_RE, SUPERVISED_SECRET_FIELD_RE, SUPERVISED_SECRET_KEY_FIELD, SUPERVISED_SECRET_ERRORS, 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, AGENT_IDENTITY_ERRORS, 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, isPlainObject3, 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, WEB_APP_ID_PATTERN, 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, label, labels, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingMatchScreenSchema, 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_TITLE_MAX_CHARS, WEB_APP_CHAT_TEXT_MAX_CHARS, WEB_APP_CHAT_CONTEXT_MAX_BYTES, WEB_APP_CHAT_PATH_MAX_CHARS, WEB_APP_CHAT_CONTROL_CHARS, WEB_APP_CHAT_APP_NAME_MAX_CHARS, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSETS, WEB_APP_MAX_ASSET_BYTES, WEB_APP_HEALTH_KEY_TTL_SECONDS, WEB_APP_HEALTH_MIN_FAILURES, WEB_APP_HEALTH_MIN_FAILURE_RATIO, 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_OUT_OF_ACTIONS, 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, opaque, summaryHash, defaultWebAppBriefRequestSchema, DEFAULT_WEB_APP_BRIEF_SOURCES, defaultWebAppBriefUsageSchema, briefResponseBase, defaultWebAppBriefResponseSchema, defaultWebAppBriefKeyRequestSchema, defaultWebAppBriefKeyResponseSchema, DEFAULT_WEB_APP_BRIEF_ERROR_CODES, defaultWebAppBriefErrorSchema, SHARED_DATA_NAME_RE, SHARED_DATA_OWNER_PREFIX, SHARED_DATA_ERRORS, PLAN_KEYS, PLAN_LIMIT_KEYS, PLAN_FEATURE_KEYS, BILLING_ENGINES, BILLING_VERSION_KINDS, planKeyString, planPriceSchema, limitsShape, featuresShape, billingPlanSchema, topUpPackSchema, PLAN_REFUSAL_CODES, billingSignupConfigSchema, billingVersionDraftPatchSchema, billingVersionDraftCreateSchema, EXISTING_SUBSCRIPTION_POLICIES, billingVersionEditSchema, assignBillingPlanSchema, billingActionRatesSchema, BILLING_MOVE_DEFAULT_NOTICE_DAYS, BILLING_MOVE_NOTICE_KINDS, BILLING_MOVE_WHEN, keyString, emailTextSchema, billingMoveDraftSchema, billingMovePatchSchema, billingMoveOrgDateSchema, billingMoveEmailPreviewSchema, DWA_BUILD_MAX_BUNDLE_BYTES, sha256Hex, defaultWebAppBundleAssetSchema, defaultWebAppBundleToolSchema, defaultWebAppBundleSchema;
7691
7854
  var init_dist = __esm({
7692
7855
  "../shared-types/dist/index.mjs"() {
7693
7856
  "use strict";
@@ -7908,6 +8071,7 @@ var init_dist = __esm({
7908
8071
  "GET",
7909
8072
  "HEAD"
7910
8073
  ];
8074
+ INTEGRATION_PASSTHROUGH_MAX_BASE64_RESPONSE_BYTES = 25 * 1024 * 1024;
7911
8075
  __name(isIntegrationPassthroughReadMethod, "isIntegrationPassthroughReadMethod");
7912
8076
  __name4(isIntegrationPassthroughReadMethod, "isIntegrationPassthroughReadMethod");
7913
8077
  __name(connectionPermissionsAllowWrite, "connectionPermissionsAllowWrite");
@@ -9456,6 +9620,20 @@ var init_dist = __esm({
9456
9620
  __name4(capText, "capText");
9457
9621
  __name(sanitizeProgressUpdateInput, "sanitizeProgressUpdateInput");
9458
9622
  __name4(sanitizeProgressUpdateInput, "sanitizeProgressUpdateInput");
9623
+ AGENT_IDENTITY_ERRORS = {
9624
+ /** `input` is not `{ audience: string }`. */
9625
+ INPUT_INVALID: "agent_identity_input_invalid",
9626
+ /** The audience is not on the platform allowlist. */
9627
+ AUDIENCE_NOT_ALLOWED: "agent_identity_audience_not_allowed",
9628
+ /** No live execution of an agent backs this call (offline `lua test` / `lua dev`, a finished execution). */
9629
+ REQUIRES_LIVE_EXECUTION: "agent_identity_requires_live_execution",
9630
+ /** The platform could not mint one right now (signing not configured, lua-auth unreachable, agent has no org). */
9631
+ UNAVAILABLE: "agent_identity_unavailable"
9632
+ };
9633
+ __name(agentIdentityError, "agentIdentityError");
9634
+ __name4(agentIdentityError, "agentIdentityError");
9635
+ __name(readAgentIdentityAudience, "readAgentIdentityAudience");
9636
+ __name4(readAgentIdentityAudience, "readAgentIdentityAudience");
9459
9637
  __name(toEpochMs, "toEpochMs");
9460
9638
  __name4(toEpochMs, "toEpochMs");
9461
9639
  __name(effectiveAgentPause, "effectiveAgentPause");
@@ -9993,6 +10171,8 @@ var init_dist = __esm({
9993
10171
  __name4(removeNavigateBlock, "removeNavigateBlock");
9994
10172
  __name(removeHiddenBlocks, "removeHiddenBlocks");
9995
10173
  __name4(removeHiddenBlocks, "removeHiddenBlocks");
10174
+ __name(stripBlocksKeepingEdges, "stripBlocksKeepingEdges");
10175
+ __name4(stripBlocksKeepingEdges, "stripBlocksKeepingEdges");
9996
10176
  __name(startsWithHiddenBlock, "startsWithHiddenBlock");
9997
10177
  __name4(startsWithHiddenBlock, "startsWithHiddenBlock");
9998
10178
  __name(transformChatHistoryContentParts, "transformChatHistoryContentParts");
@@ -10007,6 +10187,10 @@ var init_dist = __esm({
10007
10187
  __name4(citationDedupeKeys, "citationDedupeKeys");
10008
10188
  __name(foldRichPartsIntoMessages, "foldRichPartsIntoMessages");
10009
10189
  __name4(foldRichPartsIntoMessages, "foldRichPartsIntoMessages");
10190
+ __name(readStoredReplyVersion, "readStoredReplyVersion");
10191
+ __name4(readStoredReplyVersion, "readStoredReplyVersion");
10192
+ __name(applyReplyVersions, "applyReplyVersions");
10193
+ __name4(applyReplyVersions, "applyReplyVersions");
10010
10194
  WORK_ITEMS_KEY = "_luaWorkItems";
10011
10195
  MAX_WORK_ITEMS = 100;
10012
10196
  LIMITS = {
@@ -12700,7 +12884,17 @@ listed here; never invent a target.`;
12700
12884
  __name(composeAgentPaneRuntimeContext, "composeAgentPaneRuntimeContext");
12701
12885
  __name4(composeAgentPaneRuntimeContext, "composeAgentPaneRuntimeContext");
12702
12886
  WEB_APP_ENTRY_HTML_MAX_CHARS = 256 * 1024;
12887
+ WEB_APP_MAX_ASSETS = 1e3;
12703
12888
  WEB_APP_MAX_ASSET_BYTES = 8 * 1024 * 1024;
12889
+ WEB_APP_HEALTH_KEY_TTL_SECONDS = 15 * 60;
12890
+ WEB_APP_HEALTH_MIN_FAILURES = 3;
12891
+ WEB_APP_HEALTH_MIN_FAILURE_RATIO = 0.5;
12892
+ __name(webAppHealthMinute, "webAppHealthMinute");
12893
+ __name4(webAppHealthMinute, "webAppHealthMinute");
12894
+ __name(webAppHealthKey, "webAppHealthKey");
12895
+ __name4(webAppHealthKey, "webAppHealthKey");
12896
+ __name(webAppHealthVerdict, "webAppHealthVerdict");
12897
+ __name4(webAppHealthVerdict, "webAppHealthVerdict");
12704
12898
  EVIDENCE_SESSION_IDLE_MS = 30 * 6e4;
12705
12899
  EVIDENCE_MIN_CONVERSATIONS = 20;
12706
12900
  EVIDENCE_LOW_CONFIDENCE_N = 5;
@@ -13012,6 +13206,7 @@ listed here; never invent a target.`;
13012
13206
  __name(parseConnectionSendPolicy, "parseConnectionSendPolicy");
13013
13207
  __name4(parseConnectionSendPolicy, "parseConnectionSendPolicy");
13014
13208
  BILLING_REJECTION_TEXT_CREDITS = "This agent has run out of credits. Please top up to continue chatting.";
13209
+ BILLING_REJECTION_TEXT_OUT_OF_ACTIONS = "This workspace is out of actions. A workspace owner or billing admin can top up or upgrade the plan to continue.";
13015
13210
  BILLING_REJECTION_TEXT_SEAT = "You don't have access to this agent in this workspace. Ask a workspace admin to add you.";
13016
13211
  BILLING_REJECTION_TEXT_USER_QUOTA = "You've reached your monthly usage limit in this workspace. Ask a workspace admin to raise it.";
13017
13212
  __name(isPaymentRequiredChatErrorEnvelope, "isPaymentRequiredChatErrorEnvelope");
@@ -13505,6 +13700,74 @@ listed here; never invent a target.`;
13505
13700
  }).strict().optional(),
13506
13701
  timeout: customMcpTimeoutSchema.optional()
13507
13702
  }).strict();
13703
+ opaque = z7.record(z7.unknown());
13704
+ summaryHash = z7.string().regex(/^[0-9a-f]{64}$/);
13705
+ defaultWebAppBriefRequestSchema = z7.object({
13706
+ agentId: z7.string().min(1).max(200),
13707
+ orgId: z7.string().min(1).max(200).optional(),
13708
+ /** A rebuild: the brief the app was built from. The new brief keeps its entity, fields and statuses. */
13709
+ previous: z7.object({
13710
+ brief: opaque
13711
+ }).optional(),
13712
+ /**
13713
+ * Another agent's brief (same template id + version) and the `summaryHash` it was made from. Used without a model
13714
+ * call only when the hash equals this agent's, its schema version is current and it is valid here; else ignored.
13715
+ */
13716
+ reuse: z7.object({
13717
+ brief: opaque,
13718
+ summaryHash
13719
+ }).optional()
13720
+ });
13721
+ DEFAULT_WEB_APP_BRIEF_SOURCES = [
13722
+ "model",
13723
+ "fallback",
13724
+ "reused",
13725
+ "previous"
13726
+ ];
13727
+ defaultWebAppBriefUsageSchema = z7.object({
13728
+ inputTokens: z7.number().nonnegative(),
13729
+ outputTokens: z7.number().nonnegative(),
13730
+ cacheReadTokens: z7.number().nonnegative(),
13731
+ cacheWriteTokens: z7.number().nonnegative()
13732
+ });
13733
+ briefResponseBase = z7.object({
13734
+ source: z7.enum(DEFAULT_WEB_APP_BRIEF_SOURCES),
13735
+ brief: opaque,
13736
+ names: opaque,
13737
+ capabilitySignature: z7.string().min(1),
13738
+ model: z7.string().optional(),
13739
+ usage: defaultWebAppBriefUsageSchema,
13740
+ costUsd: z7.number().nonnegative()
13741
+ });
13742
+ defaultWebAppBriefResponseSchema = z7.discriminatedUnion("reusable", [
13743
+ briefResponseBase.extend({
13744
+ reusable: z7.literal(true),
13745
+ summaryHash
13746
+ }),
13747
+ briefResponseBase.extend({
13748
+ reusable: z7.literal(false)
13749
+ })
13750
+ ]);
13751
+ defaultWebAppBriefKeyRequestSchema = z7.object({
13752
+ agentId: z7.string().min(1).max(200)
13753
+ });
13754
+ defaultWebAppBriefKeyResponseSchema = z7.object({
13755
+ summaryHash,
13756
+ schemaVersion: z7.number().int().positive()
13757
+ });
13758
+ DEFAULT_WEB_APP_BRIEF_ERROR_CODES = [
13759
+ "AGENT_NOT_FOUND",
13760
+ "BRIEF_INVALID",
13761
+ "BRIEF_UNAVAILABLE"
13762
+ ];
13763
+ defaultWebAppBriefErrorSchema = z7.object({
13764
+ code: z7.enum(DEFAULT_WEB_APP_BRIEF_ERROR_CODES),
13765
+ message: z7.string().optional(),
13766
+ problems: z7.array(z7.string()).optional(),
13767
+ model: z7.string().optional(),
13768
+ usage: defaultWebAppBriefUsageSchema.optional(),
13769
+ costUsd: z7.number().nonnegative().optional()
13770
+ });
13508
13771
  __name(maskMcpServerHeaders, "maskMcpServerHeaders");
13509
13772
  __name4(maskMcpServerHeaders, "maskMcpServerHeaders");
13510
13773
  SHARED_DATA_NAME_RE = /^[A-Za-z0-9_.-]{1,128}$/;
@@ -13524,6 +13787,330 @@ listed here; never invent a target.`;
13524
13787
  RESERVED_OWNER_KEY: "shared_data_reserved_owner_key",
13525
13788
  INVALID_NAME: "shared_data_invalid_name"
13526
13789
  };
13790
+ PLAN_KEYS = {
13791
+ agents: {
13792
+ kind: "limit",
13793
+ default: null,
13794
+ label: "Agents"
13795
+ },
13796
+ members: {
13797
+ kind: "limit",
13798
+ default: null,
13799
+ label: "Members"
13800
+ },
13801
+ rooms: {
13802
+ kind: "limit",
13803
+ default: null,
13804
+ label: "Rooms"
13805
+ },
13806
+ externalShares: {
13807
+ kind: "limit",
13808
+ default: null,
13809
+ label: "Shares outside the workspace"
13810
+ },
13811
+ viewsPerAgent: {
13812
+ kind: "limit",
13813
+ default: null,
13814
+ label: "Views per agent"
13815
+ },
13816
+ freeWorkspacesPerPerson: {
13817
+ kind: "limit",
13818
+ default: null,
13819
+ label: "Free workspaces per person"
13820
+ },
13821
+ shareOutsideWorkspace: {
13822
+ kind: "feature",
13823
+ default: true,
13824
+ label: "Share outside the workspace"
13825
+ },
13826
+ roomsEnabled: {
13827
+ kind: "feature",
13828
+ default: true,
13829
+ label: "Rooms with agents"
13830
+ },
13831
+ comments: {
13832
+ kind: "feature",
13833
+ default: true,
13834
+ label: "Comments"
13835
+ },
13836
+ snapshots: {
13837
+ kind: "feature",
13838
+ default: true,
13839
+ label: "Snapshots"
13840
+ },
13841
+ topUps: {
13842
+ kind: "feature",
13843
+ default: true,
13844
+ label: "Top-ups"
13845
+ },
13846
+ deployAgents: {
13847
+ kind: "feature",
13848
+ default: true,
13849
+ label: "Deploy agents to production"
13850
+ }
13851
+ };
13852
+ PLAN_LIMIT_KEYS = Object.keys(PLAN_KEYS).filter((k) => PLAN_KEYS[k].kind === "limit");
13853
+ PLAN_FEATURE_KEYS = Object.keys(PLAN_KEYS).filter((k) => PLAN_KEYS[k].kind === "feature");
13854
+ BILLING_ENGINES = [
13855
+ "actions",
13856
+ "credits"
13857
+ ];
13858
+ BILLING_VERSION_KINDS = [
13859
+ "catalog",
13860
+ "custom"
13861
+ ];
13862
+ planKeyString = z8.string().regex(/^[a-z0-9][a-z0-9-]{0,47}$/, "lowercase letters, digits and dashes");
13863
+ planPriceSchema = z8.object({
13864
+ amountUsd: z8.number().nonnegative(),
13865
+ interval: z8.enum([
13866
+ "month",
13867
+ "year"
13868
+ ]),
13869
+ per: z8.enum([
13870
+ "workspace",
13871
+ "seat"
13872
+ ])
13873
+ }).strict();
13874
+ limitsShape = Object.fromEntries(PLAN_LIMIT_KEYS.map((k) => [
13875
+ k,
13876
+ z8.number().int().nonnegative().nullable().optional()
13877
+ ]));
13878
+ featuresShape = Object.fromEntries(PLAN_FEATURE_KEYS.map((k) => [
13879
+ k,
13880
+ z8.boolean().optional()
13881
+ ]));
13882
+ billingPlanSchema = z8.object({
13883
+ key: planKeyString,
13884
+ name: z8.string().min(1).max(80),
13885
+ /** Absent = a workspace plan. An agent-team plan prices a hired team; it sets no limits or features. */
13886
+ kind: z8.enum([
13887
+ "workspace",
13888
+ "agent-team"
13889
+ ]).optional(),
13890
+ tagline: z8.string().max(200).optional(),
13891
+ visible: z8.boolean(),
13892
+ order: z8.number().int(),
13893
+ price: planPriceSchema.nullable(),
13894
+ stripeProductId: z8.string().optional(),
13895
+ stripePriceId: z8.string().optional(),
13896
+ actionsPerPeriod: z8.number().int().nonnegative(),
13897
+ trialDays: z8.number().int().nonnegative().optional(),
13898
+ limits: z8.object(limitsShape).strict(),
13899
+ features: z8.object(featuresShape).strict(),
13900
+ invoice: z8.object({
13901
+ collectionMode: z8.enum([
13902
+ "card",
13903
+ "invoice"
13904
+ ]),
13905
+ dueDays: z8.number().int().nonnegative(),
13906
+ lines: z8.array(z8.object({
13907
+ description: z8.string().min(1),
13908
+ amountUsd: z8.number().nonnegative()
13909
+ }).strict())
13910
+ }).strict().optional()
13911
+ }).strict();
13912
+ topUpPackSchema = z8.object({
13913
+ key: planKeyString,
13914
+ name: z8.string().min(1).max(80),
13915
+ priceUsd: z8.number().positive(),
13916
+ actions: z8.number().int().positive(),
13917
+ stripeProductId: z8.string().optional(),
13918
+ stripePriceId: z8.string().optional()
13919
+ }).strict();
13920
+ __name(resolvePlanEntitlements, "resolvePlanEntitlements");
13921
+ __name4(resolvePlanEntitlements, "resolvePlanEntitlements");
13922
+ PLAN_REFUSAL_CODES = [
13923
+ "PLAN_LIMIT_REACHED",
13924
+ "PLAN_FEATURE_LOCKED",
13925
+ "OUT_OF_ACTIONS"
13926
+ ];
13927
+ __name(isPlanRefusal, "isPlanRefusal");
13928
+ __name4(isPlanRefusal, "isPlanRefusal");
13929
+ billingSignupConfigSchema = z8.object({
13930
+ enabled: z8.boolean(),
13931
+ defaultVersionKey: z8.string().min(1).nullable(),
13932
+ allowlistEmails: z8.array(z8.string().email().toLowerCase()).max(500),
13933
+ friendsPlan: z8.object({
13934
+ versionKey: z8.string().min(1),
13935
+ planKey: planKeyString
13936
+ }).strict().nullable()
13937
+ }).strict();
13938
+ billingVersionDraftPatchSchema = z8.object({
13939
+ revision: z8.number().int().nonnegative().optional(),
13940
+ name: z8.string().min(1).max(80).optional(),
13941
+ kind: z8.enum(BILLING_VERSION_KINDS).optional(),
13942
+ engine: z8.enum(BILLING_ENGINES).optional(),
13943
+ defaultPlanKey: z8.string().optional(),
13944
+ plans: z8.array(billingPlanSchema).optional(),
13945
+ topUpPacks: z8.array(topUpPackSchema).optional(),
13946
+ forOrgIds: z8.array(z8.string().min(1)).optional(),
13947
+ legacyCheckout: z8.boolean().optional(),
13948
+ voiceAndDelegationAsActions: z8.boolean().optional(),
13949
+ notes: z8.string().max(2e3).optional()
13950
+ }).strict();
13951
+ billingVersionDraftCreateSchema = billingVersionDraftPatchSchema.extend({
13952
+ key: z8.string().min(2),
13953
+ copyFrom: z8.string().optional()
13954
+ }).strict();
13955
+ EXISTING_SUBSCRIPTION_POLICIES = [
13956
+ "keep",
13957
+ "next-renewal"
13958
+ ];
13959
+ billingVersionEditSchema = billingVersionDraftPatchSchema.extend({
13960
+ existingSubscriptions: z8.enum(EXISTING_SUBSCRIPTION_POLICIES).optional()
13961
+ }).strict();
13962
+ assignBillingPlanSchema = z8.object({
13963
+ versionKey: z8.string().min(1),
13964
+ planKey: z8.string().optional()
13965
+ }).strict();
13966
+ __name(planKeyList, "planKeyList");
13967
+ __name4(planKeyList, "planKeyList");
13968
+ __name(parseWith, "parseWith");
13969
+ __name4(parseWith, "parseWith");
13970
+ billingActionRatesSchema = z8.object({
13971
+ voiceActionsPerMinute: z8.number().nonnegative()
13972
+ }).strict();
13973
+ BILLING_MOVE_DEFAULT_NOTICE_DAYS = 90;
13974
+ BILLING_MOVE_NOTICE_KINDS = [
13975
+ "scheduled",
13976
+ "reminder",
13977
+ "done"
13978
+ ];
13979
+ BILLING_MOVE_WHEN = [
13980
+ "notice",
13981
+ "now"
13982
+ ];
13983
+ keyString = z9.string().regex(/^[a-z0-9][a-z0-9-]{1,63}$/, "lowercase letters, digits and dashes");
13984
+ emailTextSchema = z9.object({
13985
+ subject: z9.string().trim().min(1).max(200).optional(),
13986
+ title: z9.string().trim().min(1).max(200).optional(),
13987
+ body: z9.string().trim().min(1).max(2e3).optional()
13988
+ }).strict();
13989
+ billingMoveDraftSchema = z9.object({
13990
+ key: keyString,
13991
+ name: z9.string().min(1).max(120),
13992
+ fromVersionKey: keyString,
13993
+ toVersionKey: keyString,
13994
+ /** Every plan of the source version → a plan of the target version. */
13995
+ planMap: z9.record(z9.string().min(1), z9.string().min(1)),
13996
+ noticeDays: z9.number().int().min(0).max(730).default(BILLING_MOVE_DEFAULT_NOTICE_DAYS),
13997
+ /** Absent ⇒ every org on the source version. */
13998
+ orgIds: z9.array(z9.string().min(1)).max(1e4).optional(),
13999
+ excludeOrgIds: z9.array(z9.string().min(1)).max(1e4).default([]),
14000
+ notes: z9.string().max(2e3).optional(),
14001
+ /** Actions per leftover credit when a credits version moves to an actions version; required then. */
14002
+ creditsToActionsRate: z9.number().positive().max(1e4).optional(),
14003
+ when: z9.enum(BILLING_MOVE_WHEN).default("notice"),
14004
+ /** Which owner emails this move sends; all off sends nothing. */
14005
+ emails: z9.object({
14006
+ scheduled: z9.boolean(),
14007
+ reminder: z9.boolean(),
14008
+ done: z9.boolean()
14009
+ }).strict().default({
14010
+ scheduled: true,
14011
+ reminder: true,
14012
+ done: true
14013
+ }),
14014
+ /** Staff wording per email, replacing ours; the list of what changes is always added. */
14015
+ emailText: z9.object({
14016
+ scheduled: emailTextSchema.optional(),
14017
+ reminder: emailTextSchema.optional(),
14018
+ done: emailTextSchema.optional()
14019
+ }).strict().optional()
14020
+ }).strict().refine((m) => m.fromVersionKey !== m.toVersionKey, {
14021
+ message: "source and target version must differ"
14022
+ });
14023
+ billingMovePatchSchema = z9.object({
14024
+ name: z9.string().min(1).max(120).optional(),
14025
+ noticeDays: z9.number().int().min(0).max(730).optional(),
14026
+ when: z9.enum(BILLING_MOVE_WHEN).optional(),
14027
+ emails: z9.object({
14028
+ scheduled: z9.boolean(),
14029
+ reminder: z9.boolean(),
14030
+ done: z9.boolean()
14031
+ }).strict().optional(),
14032
+ emailText: z9.object({
14033
+ scheduled: emailTextSchema.optional(),
14034
+ reminder: emailTextSchema.optional(),
14035
+ done: emailTextSchema.optional()
14036
+ }).strict().optional(),
14037
+ notes: z9.string().max(2e3).optional()
14038
+ }).strict();
14039
+ billingMoveOrgDateSchema = z9.object({
14040
+ effectiveAt: z9.coerce.date()
14041
+ }).strict();
14042
+ billingMoveEmailPreviewSchema = z9.object({
14043
+ orgId: z9.string().min(1).optional(),
14044
+ kind: z9.enum(BILLING_MOVE_NOTICE_KINDS),
14045
+ /** Unsaved wording to try, so the dialog shows the email before the move is created. */
14046
+ subject: z9.string().max(200).optional(),
14047
+ title: z9.string().max(200).optional(),
14048
+ body: z9.string().max(2e3).optional()
14049
+ }).strict();
14050
+ __name(parseWith2, "parseWith2");
14051
+ __name4(parseWith2, "parseWith");
14052
+ DWA_BUILD_MAX_BUNDLE_BYTES = 12 * 1024 * 1024;
14053
+ sha256Hex = z10.string().regex(/^[a-f0-9]{64}$/);
14054
+ defaultWebAppBundleAssetSchema = z10.object({
14055
+ path: z10.string().min(1).max(512),
14056
+ hash: sha256Hex,
14057
+ size: z10.number().int().nonnegative().max(WEB_APP_MAX_ASSET_BYTES),
14058
+ contentType: z10.string().min(1).max(200),
14059
+ base64: z10.string()
14060
+ });
14061
+ defaultWebAppBundleToolSchema = z10.object({
14062
+ name: z10.string().min(1).max(64),
14063
+ description: z10.string().max(2e3),
14064
+ inputSchema: z10.unknown().optional(),
14065
+ outputSchema: z10.unknown().optional(),
14066
+ /** gzip + base64, as `lua push skill` sends a tool. */
14067
+ code: z10.string().min(1)
14068
+ });
14069
+ defaultWebAppBundleSchema = z10.object({
14070
+ format: z10.literal(1),
14071
+ templateVersion: z10.string().regex(/^\d+\.\d+\.\d+$/),
14072
+ webApp: z10.object({
14073
+ name: z10.string().regex(/^[a-z][a-z0-9-]{1,39}$/),
14074
+ title: z10.string().max(200).optional(),
14075
+ description: z10.string().max(1e3).optional(),
14076
+ routes: z10.array(z10.object({
14077
+ key: z10.string(),
14078
+ method: z10.string(),
14079
+ path: z10.string(),
14080
+ description: z10.string().optional()
14081
+ }).passthrough()).min(1),
14082
+ hasFetch: z10.boolean(),
14083
+ nav: z10.array(z10.object({
14084
+ path: z10.string(),
14085
+ label: z10.string(),
14086
+ icon: z10.string().optional()
14087
+ }).passthrough()),
14088
+ csp: z10.record(z10.array(z10.string())).optional(),
14089
+ branding: z10.record(z10.unknown()).optional(),
14090
+ bundlesAgentPane: z10.boolean(),
14091
+ uiVersion: z10.string().max(64).optional(),
14092
+ entryHtml: z10.string().min(1).max(WEB_APP_ENTRY_HTML_MAX_CHARS),
14093
+ /** The route bundle, uncompressed. */
14094
+ code: z10.string().min(1),
14095
+ codeSha256: sha256Hex,
14096
+ assets: z10.array(defaultWebAppBundleAssetSchema).max(WEB_APP_MAX_ASSETS),
14097
+ compiler: z10.object({
14098
+ vite: z10.string().optional()
14099
+ })
14100
+ }),
14101
+ skill: z10.object({
14102
+ name: z10.string().regex(/^dwa-[a-z0-9-]+$/),
14103
+ title: z10.string().max(200).optional(),
14104
+ description: z10.string().min(1).max(2e3),
14105
+ context: z10.unknown(),
14106
+ tools: z10.array(defaultWebAppBundleToolSchema).min(1).max(10)
14107
+ }),
14108
+ /** What the pod's smoke run answered, route by route: every one 2xx or the build failed. */
14109
+ smoke: z10.array(z10.object({
14110
+ route: z10.string(),
14111
+ status: z10.number().int()
14112
+ })).min(1)
14113
+ });
13527
14114
  }
13528
14115
  });
13529
14116
 
@@ -14468,7 +15055,7 @@ var init_constants = __esm({
14468
15055
  });
14469
15056
 
14470
15057
  // src/services/firebase-session.ts
14471
- import { z as z7 } from "zod";
15058
+ import { z as z11 } from "zod";
14472
15059
  function rejectedRefreshReason(message) {
14473
15060
  const normalised = message.toUpperCase();
14474
15061
  return REJECTED_REFRESH_REASONS.find((reason) => normalised.includes(reason));
@@ -14614,20 +15201,20 @@ var init_firebase_session = __esm({
14614
15201
  this.name = "FirebaseSessionRejectedError";
14615
15202
  }
14616
15203
  };
14617
- customTokenResponseSchema = z7.object({
14618
- idToken: z7.string().min(1),
14619
- refreshToken: z7.string().min(1),
14620
- expiresIn: z7.coerce.number().positive().finite(),
14621
- localId: z7.string().min(1).optional()
15204
+ customTokenResponseSchema = z11.object({
15205
+ idToken: z11.string().min(1),
15206
+ refreshToken: z11.string().min(1),
15207
+ expiresIn: z11.coerce.number().positive().finite(),
15208
+ localId: z11.string().min(1).optional()
14622
15209
  });
14623
- refreshResponseSchema = z7.object({
14624
- id_token: z7.string().min(1),
14625
- refresh_token: z7.string().min(1),
14626
- expires_in: z7.coerce.number().positive().finite(),
14627
- user_id: z7.string().min(1)
15210
+ refreshResponseSchema = z11.object({
15211
+ id_token: z11.string().min(1),
15212
+ refresh_token: z11.string().min(1),
15213
+ expires_in: z11.coerce.number().positive().finite(),
15214
+ user_id: z11.string().min(1)
14628
15215
  });
14629
- firebaseIdTokenPayloadSchema = z7.object({
14630
- sub: z7.string().min(1)
15216
+ firebaseIdTokenPayloadSchema = z11.object({
15217
+ sub: z11.string().min(1)
14631
15218
  });
14632
15219
  __name(requireFirebaseWebApiKey, "requireFirebaseWebApiKey");
14633
15220
  __name(claimsOfFirebaseIdToken, "claimsOfFirebaseIdToken");
@@ -14644,7 +15231,7 @@ var init_firebase_session = __esm({
14644
15231
  import { createHash, randomUUID } from "crypto";
14645
15232
  import { mkdir, open, readFile, rename, rm, stat, unlink, writeFile } from "fs/promises";
14646
15233
  import { join as join3 } from "path";
14647
- import { z as z8 } from "zod";
15234
+ import { z as z12 } from "zod";
14648
15235
  function environmentKey(environment) {
14649
15236
  return createHash("sha256").update(`${environment.apiUrl}
14650
15237
  ${environment.authUrl}
@@ -14661,15 +15248,15 @@ var init_firebase_session_store = __esm({
14661
15248
  "src/services/firebase-session-store.ts"() {
14662
15249
  "use strict";
14663
15250
  init_constants();
14664
- storedFirebaseSessionSchema = z8.object({
14665
- version: z8.literal(1),
14666
- kind: z8.literal("firebase-session"),
14667
- generation: z8.string().min(1),
14668
- refreshToken: z8.string().min(1),
14669
- firebaseUid: z8.string().min(1),
14670
- apiUrl: z8.string().url(),
14671
- authUrl: z8.string().url(),
14672
- firebaseWebApiKey: z8.string().min(1)
15251
+ storedFirebaseSessionSchema = z12.object({
15252
+ version: z12.literal(1),
15253
+ kind: z12.literal("firebase-session"),
15254
+ generation: z12.string().min(1),
15255
+ refreshToken: z12.string().min(1),
15256
+ firebaseUid: z12.string().min(1),
15257
+ apiUrl: z12.string().url(),
15258
+ authUrl: z12.string().url(),
15259
+ firebaseWebApiKey: z12.string().min(1)
14673
15260
  });
14674
15261
  currentFirebaseSessionEnvironment = /* @__PURE__ */ __name(() => ({
14675
15262
  apiUrl: BASE_URLS.API,
@@ -15892,7 +16479,7 @@ var init_workflow_job_tools = __esm({
15892
16479
 
15893
16480
  // ../workflow-graph/dist/index.mjs
15894
16481
  import { createHash as createHash2 } from "crypto";
15895
- import { z as z9 } from "zod";
16482
+ import { z as z13 } from "zod";
15896
16483
  import { z as z22 } from "zod";
15897
16484
  import { createHash as createHash22 } from "crypto";
15898
16485
  function isMapConfigObject(v) {
@@ -19619,8 +20206,8 @@ var init_dist2 = __esm({
19619
20206
  fromKnowledge = /* @__PURE__ */ __name8((k) => ({
19620
20207
  knowledge: k
19621
20208
  }), "fromKnowledge");
19622
- SideEffectsSchema = z9.enum(WORKFLOW_SIDE_EFFECTS);
19623
- JobResourcesSchema = z9.enum(WORKFLOW_JOB_RESOURCES);
20209
+ SideEffectsSchema = z13.enum(WORKFLOW_SIDE_EFFECTS);
20210
+ JobResourcesSchema = z13.enum(WORKFLOW_JOB_RESOURCES);
19624
20211
  WORKFLOW_MODEL_TEMPLATE_ROOT = "initData";
19625
20212
  WORKFLOW_MODEL_TEMPLATE_RE = /^\$\{\s*initData\.([A-Za-z0-9_.\-[\]]+)\s*(?:\|([^}]*))?\}$/;
19626
20213
  PATH_SEGMENT_RE = /^[A-Za-z0-9_-]+(?:\[(?:0|[1-9]\d*)\])*$/;
@@ -21632,19 +22219,19 @@ import { gunzipSync as gunzipSync2, gzipSync as gzipSync2 } from "zlib";
21632
22219
  function hashContentTruncated(content) {
21633
22220
  return createHash3("sha256").update(content).digest("hex").slice(0, FILE_HASH_LENGTH);
21634
22221
  }
21635
- function sha256Hex(content) {
22222
+ function sha256Hex2(content) {
21636
22223
  return createHash3("sha256").update(content).digest("hex");
21637
22224
  }
21638
22225
  function matchesFileHash(hash, plaintext) {
21639
22226
  if (!/^(?:[a-f0-9]{16}|[a-f0-9]{64})$/.test(hash)) return false;
21640
- if (sha256Hex(plaintext).startsWith(hash)) return true;
21641
- return sha256Hex(plaintext.toString("utf-8")).startsWith(hash);
22227
+ if (sha256Hex2(plaintext).startsWith(hash)) return true;
22228
+ return sha256Hex2(plaintext.toString("utf-8")).startsWith(hash);
21642
22229
  }
21643
22230
  function combineFileHashes(files) {
21644
22231
  const sorted = [
21645
22232
  ...files
21646
22233
  ].sort((a, b) => a.relativePath.localeCompare(b.relativePath));
21647
- return sha256Hex(sorted.map((f) => f.hash).join("|"));
22234
+ return sha256Hex2(sorted.map((f) => f.hash).join("|"));
21648
22235
  }
21649
22236
  function shouldSkipDirectory(name) {
21650
22237
  return SKIP_DIRECTORIES.has(name);
@@ -21963,8 +22550,8 @@ var init_dist3 = __esm({
21963
22550
  FILE_HASH_LENGTH = 16;
21964
22551
  __name(hashContentTruncated, "hashContentTruncated");
21965
22552
  __name9(hashContentTruncated, "hashContentTruncated");
21966
- __name(sha256Hex, "sha256Hex");
21967
- __name9(sha256Hex, "sha256Hex");
22553
+ __name(sha256Hex2, "sha256Hex");
22554
+ __name9(sha256Hex2, "sha256Hex");
21968
22555
  __name(matchesFileHash, "matchesFileHash");
21969
22556
  __name9(matchesFileHash, "matchesFileHash");
21970
22557
  __name(combineFileHashes, "combineFileHashes");
@@ -22719,7 +23306,27 @@ var init_base_handler = __esm({
22719
23306
  }
22720
23307
  });
22721
23308
 
23309
+ // src/utils/server-refusal.ts
23310
+ function printableRefusal(error, code) {
23311
+ if (error?.code !== code || typeof error.message !== "string") return null;
23312
+ const message = error.message.replace(new RegExp("\\p{C}", "gu"), "").trim();
23313
+ return message || null;
23314
+ }
23315
+ function isSystemOwned(item) {
23316
+ return item?.systemOwned === true;
23317
+ }
23318
+ var init_server_refusal = __esm({
23319
+ "src/utils/server-refusal.ts"() {
23320
+ "use strict";
23321
+ __name(printableRefusal, "printableRefusal");
23322
+ __name(isSystemOwned, "isSystemOwned");
23323
+ }
23324
+ });
23325
+
22722
23326
  // src/primitives/skill.handler.ts
23327
+ function skillNameReservedMessage(error) {
23328
+ return printableRefusal(error, "SKILL_NAME_RESERVED");
23329
+ }
22723
23330
  var SkillHandler, skillHandler;
22724
23331
  var init_skill_handler = __esm({
22725
23332
  "src/primitives/skill.handler.ts"() {
@@ -22729,9 +23336,11 @@ var init_skill_handler = __esm({
22729
23336
  init_constants();
22730
23337
  init_skills_api_service();
22731
23338
  init_base_handler();
23339
+ init_server_refusal();
22732
23340
  init_artifact_loader();
22733
23341
  init_bundle_upload();
22734
23342
  init_files();
23343
+ __name(skillNameReservedMessage, "skillNameReservedMessage");
22735
23344
  SkillHandler = class extends BaseVersionedHandler {
22736
23345
  static {
22737
23346
  __name(this, "SkillHandler");
@@ -22750,7 +23359,7 @@ var init_skill_handler = __esm({
22750
23359
  async fetchFromServer(api) {
22751
23360
  const response = await api.getSkills();
22752
23361
  if (!response.success || !response.data?.skills) return null;
22753
- return response.data.skills;
23362
+ return response.data.skills.filter((skill) => !isSystemOwned(skill));
22754
23363
  }
22755
23364
  async createOnServer(api, primitive) {
22756
23365
  const skill = primitive;
@@ -22761,7 +23370,11 @@ var init_skill_handler = __esm({
22761
23370
  context: skill.context
22762
23371
  } : {}
22763
23372
  });
22764
- if (!response.success || !response.data?.id) return null;
23373
+ if (!response.success || !response.data?.id) {
23374
+ const reserved = skillNameReservedMessage(response.error);
23375
+ if (reserved) throw new Error(reserved);
23376
+ return null;
23377
+ }
22765
23378
  return response.data.id;
22766
23379
  }
22767
23380
  isActive(serverItem) {
@@ -22899,6 +23512,7 @@ var init_skill_handler = __esm({
22899
23512
  toolData.condition = compressedCode;
22900
23513
  }
22901
23514
  }
23515
+ if (tool.label) toolData.label = tool.label;
22902
23516
  const source = loadOriginalSource(tool.sourcePath, projectPath);
22903
23517
  const entryFile = normalizeEntryFile(tool.sourcePath, projectPath);
22904
23518
  if (source && entryFile) {
@@ -24986,13 +25600,13 @@ var init_data_entry_instance = __esm({
24986
25600
  /**
24987
25601
  * Updates the custom data entry
24988
25602
  * @param data - The data fields to update (partial update supported)
24989
- * @param searchText - Optional new search text for semantic search indexing
25603
+ * @param optionsOrSearchText - `{ searchText?, index? }` (as `Data.update`), or a bare string (legacy `searchText`)
24990
25604
  * @returns Promise resolving to the updated data
24991
25605
  * @throws Error if the update fails
24992
25606
  */
24993
- async update(data, searchText) {
25607
+ async update(data, optionsOrSearchText) {
24994
25608
  try {
24995
- const result = await this.customDataAPI.update(this.collectionName, this.id, data, searchText);
25609
+ const result = await this.customDataAPI.update(this.collectionName, this.id, data, optionsOrSearchText);
24996
25610
  this.data = {
24997
25611
  ...this.data,
24998
25612
  ...data
@@ -25053,13 +25667,13 @@ var init_data_entry_instance = __esm({
25053
25667
  }
25054
25668
  /**
25055
25669
  * Saves the data entry
25056
- * @param searchText - Optional search text for vector search indexing
25670
+ * @param optionsOrSearchText - `{ searchText?, index? }` (as `Data.update`), or a bare string (legacy `searchText`)
25057
25671
  * @returns Promise resolving to true if saving was successful
25058
25672
  * @throws Error if the save operation fails
25059
25673
  */
25060
- async save(searchText) {
25674
+ async save(optionsOrSearchText) {
25061
25675
  try {
25062
- await this.customDataAPI.update(this.collectionName, this.id, this.data, searchText);
25676
+ await this.customDataAPI.update(this.collectionName, this.id, this.data, optionsOrSearchText);
25063
25677
  return true;
25064
25678
  } catch (error) {
25065
25679
  throw new Error("Failed to save data entry", {
@@ -28507,6 +29121,20 @@ var offlineMetrics = {
28507
29121
  }
28508
29122
  };
28509
29123
 
29124
+ // src/api/identity.offline.ts
29125
+ init_dist();
29126
+ function createOfflineIdentityApi() {
29127
+ return Object.freeze({
29128
+ assertion: /* @__PURE__ */ __name(async (input) => {
29129
+ if (!readAgentIdentityAudience(input)) {
29130
+ throw agentIdentityError(AGENT_IDENTITY_ERRORS.INPUT_INVALID, "Lua.identity.assertion needs { audience: string }", 400);
29131
+ }
29132
+ throw agentIdentityError(AGENT_IDENTITY_ERRORS.REQUIRES_LIVE_EXECUTION, "Lua.identity.assertion only runs inside a live execution of a deployed agent, not in lua test / lua dev", 403);
29133
+ }, "assertion")
29134
+ });
29135
+ }
29136
+ __name(createOfflineIdentityApi, "createOfflineIdentityApi");
29137
+
28510
29138
  // src/api-exports.ts
28511
29139
  init_shared_data_offline();
28512
29140
  init_connection_requests_api_service();
@@ -29277,6 +29905,7 @@ var LuaVoiceTool = class {
29277
29905
  inputSchema;
29278
29906
  execute;
29279
29907
  condition;
29908
+ label;
29280
29909
  voice;
29281
29910
  constructor(config) {
29282
29911
  this.name = config.name;
@@ -29284,6 +29913,7 @@ var LuaVoiceTool = class {
29284
29913
  this.inputSchema = config.inputSchema;
29285
29914
  this.execute = config.execute;
29286
29915
  this.condition = config.condition;
29916
+ this.label = config.label;
29287
29917
  if (config.flags && config.flags.length > 0) {
29288
29918
  this.voice = {
29289
29919
  flags: config.flags
@@ -29809,7 +30439,7 @@ var Data = {
29809
30439
  *
29810
30440
  * @param collectionName - Name of the collection
29811
30441
  * @param entryId - ID of the entry
29812
- * @param mutation - `{ set?, unset?, searchText? }` (`searchText: null` clears it)
30442
+ * @param mutation - `{ set?, unset?, searchText?, index? }` (`searchText: null` clears it; `index` as create's option)
29813
30443
  * @param options - `{ ifVersion? }` for compare-and-swap
29814
30444
  * @returns Promise resolving to `{ status, message, version }` (`version` = the entry's new version)
29815
30445
  */
@@ -29889,7 +30519,9 @@ var Data = {
29889
30519
  * - Readers may `collections`, `get`, `getEntry`, `search`; writers may also `create`, `update`, `patch`,
29890
30520
  * `increment`, `delete` (a writer can read). Anything else rejects with `code === 'shared_data_forbidden'`
29891
30521
  * (403) — also when the name does not exist or belongs to another org.
29892
- * - Same limits, filters, managed indexes, compare-and-swap and vector search as `Data`. Every write is audited
30522
+ * - Same limits, filters, managed indexes, compare-and-swap and vector search as `Data`. A writer declares indexes
30523
+ * (`{ index }` on create/update/patch); they belong to the shared collection (5 across its sub-collections) and
30524
+ * `collections()` reports their status to every reader. Every write is audited
29893
30525
  * (agent, collection, entry id; never the value).
29894
30526
  * - A test session may read but not write (`shared_data_test_session_write_refused`, 409).
29895
30527
  * - Deployed agents only: under `lua test` every call rejects with `code === 'shared_data_unavailable_offline'`.
@@ -30482,7 +31114,9 @@ var Lua = {
30482
31114
  request: {
30483
31115
  channel: "unknown",
30484
31116
  webhook: void 0
30485
- }
31117
+ },
31118
+ // ADR 0025 — throws `agent_identity_requires_live_execution` here; deployed agents get the platform-signed one.
31119
+ identity: createOfflineIdentityApi()
30486
31120
  };
30487
31121
  var Secrets = {
30488
31122
  async request(input) {