lua-cli 3.49.2 → 3.51.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.
@@ -2661,6 +2661,31 @@ function scrubProviderMessage(raw, max = PROVIDER_MESSAGE_MAX_CHARS) {
2661
2661
  function scrubStepErrorMessage(raw) {
2662
2662
  return scrubProviderMessage(raw, ERROR_MESSAGE_MAX_CHARS);
2663
2663
  }
2664
+ function scrubSecretsDeep(value3, options = {}) {
2665
+ return scrubDeep(value3, 0, /* @__PURE__ */ new WeakSet(), options.text !== false);
2666
+ }
2667
+ function isPlainObject2(v) {
2668
+ if (!v || typeof v !== "object") return false;
2669
+ const proto = Object.getPrototypeOf(v);
2670
+ return proto === Object.prototype || proto === null;
2671
+ }
2672
+ function scrubDeep(value3, depth, seen, text2) {
2673
+ if (typeof value3 === "string") return text2 ? scrubSecretText(value3) : value3;
2674
+ if (!value3 || typeof value3 !== "object") return value3;
2675
+ if (!Array.isArray(value3) && !isPlainObject2(value3)) return value3;
2676
+ if (depth >= SCRUB_DEEP_MAX_DEPTH || seen.has(value3)) return REDACTED_PLACEHOLDER;
2677
+ seen.add(value3);
2678
+ try {
2679
+ if (Array.isArray(value3)) return value3.map((v) => scrubDeep(v, depth + 1, seen, text2));
2680
+ const out = {};
2681
+ for (const [k, v] of Object.entries(value3)) {
2682
+ out[k] = isWorkflowSecretKey(k) && v !== null && v !== void 0 && typeof v !== "boolean" ? REDACTED_PLACEHOLDER : scrubDeep(v, depth + 1, seen, text2);
2683
+ }
2684
+ return out;
2685
+ } finally {
2686
+ seen.delete(value3);
2687
+ }
2688
+ }
2664
2689
  function isTestSessionId(value3) {
2665
2690
  return typeof value3 === "string" && TEST_SESSION_ID_PATTERN.test(value3);
2666
2691
  }
@@ -2785,6 +2810,68 @@ function supervisionAccessBindingViolation(merged) {
2785
2810
  }
2786
2811
  return null;
2787
2812
  }
2813
+ function canonicalSupervisedSecretJson(row) {
2814
+ const sorted = {};
2815
+ for (const k of Object.keys(row).sort()) sorted[k] = row[k];
2816
+ return JSON.stringify(sorted);
2817
+ }
2818
+ function validateSupervisedSecretPut(args) {
2819
+ const bad = /* @__PURE__ */ __name4((message) => ({
2820
+ ok: false,
2821
+ code: SUPERVISED_SECRET_ERRORS.BAD_ARGS,
2822
+ message
2823
+ }), "bad");
2824
+ const collection = args?.collection;
2825
+ if (typeof collection !== "string" || !SUPERVISED_SECRET_NAME_RE.test(collection) || collection.startsWith("__")) {
2826
+ return bad("collection must be an explicit collection name (letters, digits, _ . : -; at most 128)");
2827
+ }
2828
+ const key = args?.key;
2829
+ if (typeof key !== "string" || !SUPERVISED_SECRET_NAME_RE.test(key)) {
2830
+ return bad("key must be an explicit row key (letters, digits, _ . : -; at most 128)");
2831
+ }
2832
+ const value3 = args?.value;
2833
+ if (!value3 || typeof value3 !== "object" || Array.isArray(value3) || Object.getPrototypeOf(value3) !== Object.prototype) {
2834
+ return bad("value must be a plain object of scalar fields");
2835
+ }
2836
+ const fields = Object.keys(value3);
2837
+ const row = {};
2838
+ for (const field of fields) {
2839
+ if (!SUPERVISED_SECRET_FIELD_RE.test(field)) {
2840
+ return bad("value field names must be plain identifiers (no $ prefix, no dots; at most 64 characters)");
2841
+ }
2842
+ const v = value3[field];
2843
+ if (typeof v === "string") {
2844
+ if (v.length > SUPERVISED_SECRET_LIMITS.maxStringLength) {
2845
+ return bad(`value.${field} is longer than ${SUPERVISED_SECRET_LIMITS.maxStringLength} characters`);
2846
+ }
2847
+ } else if (typeof v === "number") {
2848
+ if (!Number.isFinite(v)) return bad(`value.${field} must be a finite number`);
2849
+ } else if (typeof v !== "boolean" && v !== null) {
2850
+ return bad(`value.${field} must be a string, a finite number, a boolean or null (no nesting)`);
2851
+ }
2852
+ row[field] = v;
2853
+ }
2854
+ if (Object.prototype.hasOwnProperty.call(row, SUPERVISED_SECRET_KEY_FIELD) && row[SUPERVISED_SECRET_KEY_FIELD] !== key) {
2855
+ return bad(`value.${SUPERVISED_SECRET_KEY_FIELD}, when present, must equal key`);
2856
+ }
2857
+ row[SUPERVISED_SECRET_KEY_FIELD] = key;
2858
+ if (Object.keys(row).length > SUPERVISED_SECRET_LIMITS.maxFields) {
2859
+ return bad(`value has more than ${SUPERVISED_SECRET_LIMITS.maxFields} fields`);
2860
+ }
2861
+ if (Object.keys(row).length < 2) return bad("value must carry at least one field besides _pk");
2862
+ const bytes = new TextEncoder().encode(canonicalSupervisedSecretJson(row)).byteLength;
2863
+ if (bytes > SUPERVISED_SECRET_LIMITS.maxBytes) {
2864
+ return bad(`value is larger than ${SUPERVISED_SECRET_LIMITS.maxBytes} bytes`);
2865
+ }
2866
+ return {
2867
+ ok: true,
2868
+ input: {
2869
+ collection,
2870
+ key,
2871
+ row
2872
+ }
2873
+ };
2874
+ }
2788
2875
  function hasFormatCharacters(text2) {
2789
2876
  return FORMAT_CHARS.test(text2);
2790
2877
  }
@@ -4670,7 +4757,7 @@ function describeFieldViolation(key, value3, check) {
4670
4757
  return void 0;
4671
4758
  }
4672
4759
  function describeBrowserLogEventViolation(value3) {
4673
- if (!isPlainObject2(value3)) return "event must be an object";
4760
+ if (!isPlainObject3(value3)) return "event must be an object";
4674
4761
  const event = value3;
4675
4762
  const base = describeBaseViolation(event);
4676
4763
  if (base) return base;
@@ -4690,7 +4777,7 @@ function isBrowserLogEvent(value3) {
4690
4777
  }
4691
4778
  function describeBrowserLogContextViolation(value3) {
4692
4779
  if (value3 === void 0) return void 0;
4693
- if (!isPlainObject2(value3)) return "logContext must be an object";
4780
+ if (!isPlainObject3(value3)) return "logContext must be an object";
4694
4781
  for (const [key, entry] of Object.entries(value3)) {
4695
4782
  if (!BROWSER_LOG_CONTEXT_KEYS.includes(key)) return `logContext.${key} is not allowed`;
4696
4783
  if (entry === void 0) continue;
@@ -5696,6 +5783,13 @@ function luaClientMetricLabels(client) {
5696
5783
  client_attribution: canonical2?.attribution ?? "unknown"
5697
5784
  };
5698
5785
  }
5786
+ function webAppPreviewSessionBinding(webAppId, previewId) {
5787
+ const binding = `${webAppId}--p-${previewId}`;
5788
+ if (!WEB_APP_ID_PATTERN.test(binding)) {
5789
+ throw new Error(`Web app preview session binding does not fit WEB_APP_ID_PATTERN: ${binding.length} characters`);
5790
+ }
5791
+ return binding;
5792
+ }
5699
5793
  function parseEffectiveAuthorization(value3) {
5700
5794
  const parsed = EffectiveAuthorizationSchema.safeParse(value3);
5701
5795
  return parsed.success ? parsed.data : void 0;
@@ -7522,7 +7616,13 @@ function maskMcpServerHeaders(server) {
7522
7616
  headersSet: headerNames.length > 0
7523
7617
  };
7524
7618
  }
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;
7619
+ function sharedDataOwnerKey(collectionId) {
7620
+ return `${SHARED_DATA_OWNER_PREFIX}${collectionId}`;
7621
+ }
7622
+ function isSharedDataOwnerKey(agentId2) {
7623
+ return typeof agentId2 === "string" && agentId2.startsWith(SHARED_DATA_OWNER_PREFIX);
7624
+ }
7625
+ 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, 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_TITLE_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;
7526
7626
  var init_dist = __esm({
7527
7627
  "../shared-types/dist/index.mjs"() {
7528
7628
  "use strict";
@@ -7983,7 +8083,14 @@ var init_dist = __esm({
7983
8083
  * the target (`snapshot.jobs[]`) so the promote activates and schedules it. Mongo-only marker write; EventBridge stays
7984
8084
  * on the post-promote reconcile. Release-class: needs `register-job` AND `release` on the grant, from a signed step.
7985
8085
  */
7986
- "jobs.register": "register-job"
8086
+ "jobs.register": "register-job",
8087
+ // [SW]
8088
+ /**
8089
+ * SW — `Agents.secrets(id).put(collection, key, value)`: write ONE secret row into the TARGET's own Data, in a
8090
+ * collection the grant names in `secretWriteCollections` (deny by default), keyed by `data._pk`. The value never
8091
+ * comes back: the answer is `{ ok, id, fingerprint }`, and the audit row carries the fingerprint only.
8092
+ */
8093
+ "secrets.put": "act"
7987
8094
  };
7988
8095
  __name(isSupervisionOp, "isSupervisionOp");
7989
8096
  __name4(isSupervisionOp, "isSupervisionOp");
@@ -8179,6 +8286,12 @@ var init_dist = __esm({
8179
8286
  gate: "register-job",
8180
8287
  targeted: true,
8181
8288
  item: "JR"
8289
+ },
8290
+ /** SW — `Agents.secrets(id).put(collection, key, value)`: one secret row in a `secretWriteCollections` collection. */
8291
+ "secrets.put": {
8292
+ gate: "act",
8293
+ targeted: true,
8294
+ item: "SW"
8182
8295
  }
8183
8296
  };
8184
8297
  SUPERVISION_WATCHDOG_OPS = {
@@ -8866,6 +8979,12 @@ var init_dist = __esm({
8866
8979
  {
8867
8980
  re: /\b(npm_)[A-Za-z0-9]{36}\b/g
8868
8981
  },
8982
+ // Linear personal API keys (`lin_api_` + 40) and OAuth access / refresh tokens (`lin_oauth_` + 64 hex,
8983
+ // `lin_refresh_`): the fleet's Engineering Manager hands OAuth tokens to agents in a prompt + tool call, and
8984
+ // both landed verbatim in `vmExecutionLogs` (2026-10-11).
8985
+ {
8986
+ re: /\b(lin_(?:api|oauth|refresh)_)[A-Za-z0-9]{16,}/g
8987
+ },
8869
8988
  {
8870
8989
  re: /\b(sk-ant-)[A-Za-z0-9_-]{16,}/g
8871
8990
  },
@@ -8884,11 +9003,16 @@ var init_dist = __esm({
8884
9003
  {
8885
9004
  re: /\b(ya29\.)[A-Za-z0-9_-]{20,}/g
8886
9005
  },
9006
+ // 2026-10-11: `(?<![A-Za-z0-9_-])`, not `\b` — with `\b` every `eyJ` after a `-` / `_` started an attempt that
9007
+ // ran the first segment to the end of the run and failed on the missing `.`, so `eyJabcdefgh-` × 1 MB took
9008
+ // ~115 s (quadratic). Now a run of segment characters admits at most one attempt.
8887
9009
  {
8888
- re: /\b(eyJ)[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g
9010
+ re: /(?<![A-Za-z0-9_-])(eyJ)[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g
8889
9011
  },
9012
+ // 2026-10-11: the body stops at the next `-----BEGIN ` — a lazy `[\s\S]*?` let every unterminated BEGIN scan to the
9013
+ // end of the text (quadratic on a repeated header with no END). A key whose END follows is matched as before.
8890
9014
  {
8891
- re: /(-----BEGIN [A-Z ]*PRIVATE KEY-----)[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g
9015
+ re: /(-----BEGIN [A-Z ]*PRIVATE KEY-----)(?:(?!-----BEGIN )[\s\S])*?-----END [A-Z ]*PRIVATE KEY-----/g
8892
9016
  },
8893
9017
  // `https://x-access-token:<token>@github.com/…` (the git credential shape the pod scrubbed already)
8894
9018
  {
@@ -8896,7 +9020,7 @@ var init_dist = __esm({
8896
9020
  suffix: true
8897
9021
  }
8898
9022
  ];
8899
- SECRET_NAME = "(?:authorization|proxy-authorization|x-api-key|x-wf-[a-z-]*key|x-internal-auth|api[_-]?key|apikey|access[_-]?key|secret[_-]?key|private[_-]?key|client[_-]?secret|secret|password|passwd|pwd|passphrase|token|credentials?)";
9023
+ SECRET_NAME = "(?:access[_-]?token|refresh[_-]?token|id[_-]?token|auth[_-]?token|authorization|proxy-authorization|x-api-key|x-wf-[a-z-]*key|x-internal-auth|api[_-]?key|apikey|access[_-]?key|secret[_-]?key|private[_-]?key|client[_-]?secret|secret|password|passwd|pwd|passphrase|token|credentials?)";
8900
9024
  SECRET_PAIR_PATTERNS = [
8901
9025
  // `Authorization: Bearer x`, `x-api-key: x`, `AWS_SECRET_ACCESS_KEY=x`, `SVC_JOB_KEY=x`, `"apiKey": "x"`,
8902
9026
  // `FOO_TOKEN=x`, `secretKey=x`, `password=x`. Groups: the char before the name, the name, the separator
@@ -8972,6 +9096,13 @@ var init_dist = __esm({
8972
9096
  __name4(scrubProviderMessage, "scrubProviderMessage");
8973
9097
  __name(scrubStepErrorMessage, "scrubStepErrorMessage");
8974
9098
  __name4(scrubStepErrorMessage, "scrubStepErrorMessage");
9099
+ SCRUB_DEEP_MAX_DEPTH = 12;
9100
+ __name(scrubSecretsDeep, "scrubSecretsDeep");
9101
+ __name4(scrubSecretsDeep, "scrubSecretsDeep");
9102
+ __name(isPlainObject2, "isPlainObject2");
9103
+ __name4(isPlainObject2, "isPlainObject");
9104
+ __name(scrubDeep, "scrubDeep");
9105
+ __name4(scrubDeep, "scrubDeep");
8975
9106
  TEST_SESSION_ID_PATTERN = /^tsn_[0-9a-f-]{36}$/;
8976
9107
  __name(isTestSessionId, "isTestSessionId");
8977
9108
  __name4(isTestSessionId, "isTestSessionId");
@@ -9023,6 +9154,27 @@ var init_dist = __esm({
9023
9154
  __name4(sameSupervisionAccessFields, "sameSupervisionAccessFields");
9024
9155
  __name(supervisionAccessBindingViolation, "supervisionAccessBindingViolation");
9025
9156
  __name4(supervisionAccessBindingViolation, "supervisionAccessBindingViolation");
9157
+ SUPERVISED_SECRET_LIMITS = {
9158
+ /** Fields in `value` (the `_pk` field included). */
9159
+ maxFields: 32,
9160
+ /** One string field's length. */
9161
+ maxStringLength: 8192,
9162
+ /** The canonical JSON of the whole row. */
9163
+ maxBytes: 16384
9164
+ };
9165
+ SUPERVISED_SECRET_NAME_RE = /^[A-Za-z0-9_.:-]{1,128}$/;
9166
+ SUPERVISED_SECRET_FIELD_RE = /^[A-Za-z_][A-Za-z0-9_]{0,63}$/;
9167
+ SUPERVISED_SECRET_KEY_FIELD = "_pk";
9168
+ SUPERVISED_SECRET_ERRORS = {
9169
+ BAD_ARGS: "supervision_secret_bad_args",
9170
+ NOT_GRANTED: "supervision_secret_write_not_granted",
9171
+ /** A collection named for secret writes is write-only for the supervisor: `data.get` / `data.query` refuse it. */
9172
+ WRITE_ONLY: "supervision_secret_collection_write_only"
9173
+ };
9174
+ __name(canonicalSupervisedSecretJson, "canonicalSupervisedSecretJson");
9175
+ __name4(canonicalSupervisedSecretJson, "canonicalSupervisedSecretJson");
9176
+ __name(validateSupervisedSecretPut, "validateSupervisedSecretPut");
9177
+ __name4(validateSupervisedSecretPut, "validateSupervisedSecretPut");
9026
9178
  CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY = "connectionAssignment";
9027
9179
  CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS = 1200;
9028
9180
  CONNECTION_HANDOVER_LIMITS = {
@@ -9912,7 +10064,7 @@ var init_dist = __esm({
9912
10064
  },
9913
10065
  {
9914
10066
  name: "find",
9915
- description: "Act by semantic locator. Args: by(role|text|label|placeholder|alt|title|testid), query, action(click|fill|type|hover|focus|check|uncheck|text), value?, name?, exact?."
10067
+ description: "Act by semantic locator. Args: by(role|text|label|placeholder|alt|title|testid), query, action(click|fill|hover|check|text), value?, name?, exact?."
9916
10068
  },
9917
10069
  // AI fallbacks
9918
10070
  {
@@ -9926,7 +10078,7 @@ var init_dist = __esm({
9926
10078
  // wait
9927
10079
  {
9928
10080
  name: "wait",
9929
- description: "Wait for a condition. Provide one of: selector(+state), ms, text, url, load, fn."
10081
+ description: "Wait for a condition. Provide one of: selector (waits until it is visible), ms, text, url, load, fn."
9930
10082
  },
9931
10083
  // tabs / frames
9932
10084
  {
@@ -9961,7 +10113,7 @@ var init_dist = __esm({
9961
10113
  },
9962
10114
  {
9963
10115
  name: "set",
9964
- description: "Configure the browser. Args: setting(viewport|device|geo|headers|credentials|media), args[]."
10116
+ description: "Configure the browser. Args: setting(viewport|device|geo|headers|credentials|media|offline), args[]."
9965
10117
  },
9966
10118
  // files / clipboard
9967
10119
  {
@@ -10005,7 +10157,7 @@ var init_dist = __esm({
10005
10157
  },
10006
10158
  {
10007
10159
  name: "keyboard",
10008
- description: "Low-level keyboard at focus. Args: action(type|inserttext|keydown|keyup), text?, key?."
10160
+ description: "Low-level keyboard at focus. Args: action(type|inserttext), text. Use press for single keys and chords."
10009
10161
  },
10010
10162
  {
10011
10163
  name: "state",
@@ -10315,9 +10467,9 @@ var init_dist = __esm({
10315
10467
  isString = /* @__PURE__ */ __name4((value3) => typeof value3 === "string", "isString");
10316
10468
  isBoolean = /* @__PURE__ */ __name4((value3) => typeof value3 === "boolean", "isBoolean");
10317
10469
  isCount = /* @__PURE__ */ __name4((value3) => typeof value3 === "number" && Number.isFinite(value3) && value3 >= 0, "isCount");
10318
- isPlainObject2 = /* @__PURE__ */ __name4((value3) => typeof value3 === "object" && value3 !== null && !Array.isArray(value3), "isPlainObject");
10470
+ isPlainObject3 = /* @__PURE__ */ __name4((value3) => typeof value3 === "object" && value3 !== null && !Array.isArray(value3), "isPlainObject");
10319
10471
  oneOf = /* @__PURE__ */ __name4((values) => (value3) => typeof value3 === "string" && values.includes(value3), "oneOf");
10320
- isLimits = /* @__PURE__ */ __name4((value3) => isPlainObject2(value3) && Object.values(value3).every((entry) => isCount(entry)), "isLimits");
10472
+ isLimits = /* @__PURE__ */ __name4((value3) => isPlainObject3(value3) && Object.values(value3).every((entry) => isCount(entry)), "isLimits");
10321
10473
  EVENT_SHAPES = {
10322
10474
  "session.opened": {
10323
10475
  required: {
@@ -10337,7 +10489,7 @@ var init_dist = __esm({
10337
10489
  ok: isBoolean
10338
10490
  },
10339
10491
  optional: {
10340
- args: isPlainObject2,
10492
+ args: isPlainObject3,
10341
10493
  urlBefore: isString,
10342
10494
  urlAfter: isString,
10343
10495
  resultBytes: isCount,
@@ -11504,6 +11656,9 @@ This text is who you are for this person. As you learn them, their name, their w
11504
11656
  __name(luaClientMetricLabels, "luaClientMetricLabels");
11505
11657
  __name4(luaClientMetricLabels, "luaClientMetricLabels");
11506
11658
  LUA_SESSION_ID_CLAIM = "luaSessionId";
11659
+ WEB_APP_ID_PATTERN = /^[A-Za-z0-9_-]{1,64}$/;
11660
+ __name(webAppPreviewSessionBinding, "webAppPreviewSessionBinding");
11661
+ __name4(webAppPreviewSessionBinding, "webAppPreviewSessionBinding");
11507
11662
  SESSION_REVOKED_CODE = "SESSION_REVOKED";
11508
11663
  AUTHZ_PROJECTION_VERSION = 1;
11509
11664
  ProjectedScopeSchema = z4.string().min(1).max(128);
@@ -12431,6 +12586,7 @@ listed here; never invent a target.`;
12431
12586
  __name(isWebRouteInput, "isWebRouteInput");
12432
12587
  __name4(isWebRouteInput, "isWebRouteInput");
12433
12588
  WEB_APP_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
12589
+ WEB_APP_TITLE_MAX_CHARS = 80;
12434
12590
  WEB_APP_ENTRY_HTML_MAX_CHARS = 256 * 1024;
12435
12591
  WEB_APP_MAX_ASSET_BYTES = 8 * 1024 * 1024;
12436
12592
  EVIDENCE_SESSION_IDLE_MS = 30 * 6e4;
@@ -13239,6 +13395,66 @@ listed here; never invent a target.`;
13239
13395
  }).strict();
13240
13396
  __name(maskMcpServerHeaders, "maskMcpServerHeaders");
13241
13397
  __name4(maskMcpServerHeaders, "maskMcpServerHeaders");
13398
+ SHARED_DATA_NAME_RE = /^[A-Za-z0-9_.-]{1,128}$/;
13399
+ SHARED_DATA_OWNER_PREFIX = "shared:";
13400
+ __name(sharedDataOwnerKey, "sharedDataOwnerKey");
13401
+ __name4(sharedDataOwnerKey, "sharedDataOwnerKey");
13402
+ __name(isSharedDataOwnerKey, "isSharedDataOwnerKey");
13403
+ __name4(isSharedDataOwnerKey, "isSharedDataOwnerKey");
13404
+ SHARED_DATA_ERRORS = {
13405
+ /** Not in the ACL for this access, the collection does not exist, or it belongs to another org: one answer. */
13406
+ FORBIDDEN: "shared_data_forbidden",
13407
+ /** A test session may read a shared collection but never write it (no shadow namespace for shared rows). */
13408
+ TEST_SESSION_WRITE_REFUSED: "shared_data_test_session_write_refused",
13409
+ /** `lua test` / offline runs have no server-side ACL to consult. */
13410
+ UNAVAILABLE_OFFLINE: "shared_data_unavailable_offline",
13411
+ /** A private Data route was called with a shared-collection owner key. */
13412
+ RESERVED_OWNER_KEY: "shared_data_reserved_owner_key",
13413
+ INVALID_NAME: "shared_data_invalid_name"
13414
+ };
13415
+ }
13416
+ });
13417
+
13418
+ // src/api/shared-data.offline.ts
13419
+ function assertSharedName(name) {
13420
+ if (typeof name !== "string" || !SHARED_DATA_NAME_RE.test(name)) {
13421
+ throw new SharedDataError(SHARED_DATA_ERRORS.INVALID_NAME, "Data.shared(name): name must be 1-128 of [A-Za-z0-9_.-]");
13422
+ }
13423
+ }
13424
+ function offlineSharedData(name) {
13425
+ assertSharedName(name);
13426
+ const refuse = /* @__PURE__ */ __name(async () => {
13427
+ throw new SharedDataError(SHARED_DATA_ERRORS.UNAVAILABLE_OFFLINE, `Data.shared('${name}') is only available to a deployed agent (the org ACL is checked on the platform); it is not available in local test runs`);
13428
+ }, "refuse");
13429
+ return {
13430
+ collections: refuse,
13431
+ create: refuse,
13432
+ get: refuse,
13433
+ getEntry: refuse,
13434
+ update: refuse,
13435
+ patch: refuse,
13436
+ increment: refuse,
13437
+ search: refuse,
13438
+ delete: refuse
13439
+ };
13440
+ }
13441
+ var SharedDataError;
13442
+ var init_shared_data_offline = __esm({
13443
+ "src/api/shared-data.offline.ts"() {
13444
+ "use strict";
13445
+ init_dist();
13446
+ SharedDataError = class extends Error {
13447
+ static {
13448
+ __name(this, "SharedDataError");
13449
+ }
13450
+ code;
13451
+ name = "SharedDataError";
13452
+ constructor(code, message) {
13453
+ super(message), this.code = code;
13454
+ }
13455
+ };
13456
+ __name(assertSharedName, "assertSharedName");
13457
+ __name(offlineSharedData, "offlineSharedData");
13242
13458
  }
13243
13459
  });
13244
13460
 
@@ -17700,7 +17916,7 @@ function resolvePlacements(calls) {
17700
17916
  function isConditionalJoinId(stepId) {
17701
17917
  return CONDITIONAL_JOIN_ID.test(stepId);
17702
17918
  }
17703
- function isPlainObject3(v) {
17919
+ function isPlainObject4(v) {
17704
17920
  return typeof v === "object" && v !== null && !Array.isArray(v);
17705
17921
  }
17706
17922
  function leafValue(row) {
@@ -17721,7 +17937,7 @@ function deriveRunOutput(steps) {
17721
17937
  if (leaves.length === 1) {
17722
17938
  const leaf = leaves[0];
17723
17939
  const value22 = leafValue(leaf);
17724
- if (isConditionalJoinId(leaf.stepId) && isPlainObject3(value22)) {
17940
+ if (isConditionalJoinId(leaf.stepId) && isPlainObject4(value22)) {
17725
17941
  const keys = Object.keys(value22);
17726
17942
  if (keys.length === 1) return {
17727
17943
  output: value22[keys[0]],
@@ -19711,8 +19927,8 @@ var init_dist2 = __esm({
19711
19927
  CONDITIONAL_JOIN_ID = /^conditional@\d+\.join$/;
19712
19928
  __name(isConditionalJoinId, "isConditionalJoinId");
19713
19929
  __name8(isConditionalJoinId, "isConditionalJoinId");
19714
- __name(isPlainObject3, "isPlainObject");
19715
- __name8(isPlainObject3, "isPlainObject");
19930
+ __name(isPlainObject4, "isPlainObject");
19931
+ __name8(isPlainObject4, "isPlainObject");
19716
19932
  __name(leafValue, "leafValue");
19717
19933
  __name8(leafValue, "leafValue");
19718
19934
  __name(runOutputLeaves, "runOutputLeaves");
@@ -24751,6 +24967,7 @@ var init_custom_data_api_service = __esm({
24751
24967
  init_http_client();
24752
24968
  init_custom_data();
24753
24969
  init_data_entry_instance();
24970
+ init_shared_data_offline();
24754
24971
  CustomDataApi = class extends HttpClient {
24755
24972
  static {
24756
24973
  __name(this, "CustomDataApi");
@@ -24951,6 +25168,10 @@ var init_custom_data_api_service = __esm({
24951
25168
  }
24952
25169
  throw new Error(response.error?.message || "Failed to delete custom data entry");
24953
25170
  }
25171
+ /** Org-shared Data. Local runs have no org ACL to consult, so every call of the handle rejects (offline). */
25172
+ shared(name) {
25173
+ return offlineSharedData(name);
25174
+ }
24954
25175
  };
24955
25176
  }
24956
25177
  });
@@ -25846,7 +26067,7 @@ var init_agents_api_service = __esm({
25846
26067
  if (op === "lease.acquire" || op === "lease.release") {
25847
26068
  refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
25848
26069
  }
25849
- if (op === "lifecycle.archive" || op === "lifecycle.delete" || op === "config.set" || op === "secrets.attach") {
26070
+ if (op === "lifecycle.archive" || op === "lifecycle.delete" || op === "config.set" || op === "secrets.attach" || op === "secrets.put") {
25850
26071
  refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
25851
26072
  }
25852
26073
  if (op === "agents.directory" || op === "access.request" || op === "access.requests" || op === "access.cancel") {
@@ -25898,7 +26119,9 @@ var init_agents_api_service = __esm({
25898
26119
  return runSummary(await get(`/workflows/${id2}/runs/${encodeURIComponent(String(args.runId ?? ""))}`));
25899
26120
  case "versions.list":
25900
26121
  return get(`/developer/agents/${id2}/versions${q({
25901
- limit: args.limit
26122
+ limit: args.limit,
26123
+ status: Array.isArray(args.status) ? args.status.join(",") : args.status,
26124
+ offset: args.offset
25902
26125
  })}`);
25903
26126
  case "versions.get":
25904
26127
  return get(`/developer/agents/${id2}/versions/${encodeURIComponent(String(args.version))}`);
@@ -26763,10 +26986,32 @@ function createWorkflowsRuntime(getApi) {
26763
26986
  assertBoundAgent(api, agentId2, "goals.close");
26764
26987
  return unwrap(await api.closeGoal(goalId, opts), "Workflows.goals.close");
26765
26988
  }
26989
+ },
26990
+ // Lua Apps — off the platform (`lua apps dev`, `lua test webapp`) a route runs as you, so the viewer IS the
26991
+ // CLI's own credential; on the platform the sandbox global routes these through the gateway-sealed viewer.
26992
+ viewer: {
26993
+ async decideApproval(runId, approvalId, decision) {
26994
+ const api = viewerApi(await getApi(), decision.agentId);
26995
+ return unwrap(await api.resolveApproval(runId, approvalId, {
26996
+ decision: decision.decision,
26997
+ ...decision.note !== void 0 ? {
26998
+ note: decision.note
26999
+ } : {},
27000
+ ...decision.expectedFingerprint !== void 0 ? {
27001
+ expectedFingerprint: decision.expectedFingerprint
27002
+ } : {}
27003
+ }), "Workflows.viewer.decideApproval");
27004
+ },
27005
+ async resume(runId, stepId, resumeData, opts = {}) {
27006
+ const api = viewerApi(await getApi(), opts.agentId);
27007
+ return unwrap(await api.resumeRun(runId, stepId, {
27008
+ resumeData
27009
+ }), "Workflows.viewer.resume");
27010
+ }
26766
27011
  }
26767
27012
  };
26768
27013
  }
26769
- var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, isWorkflowIdShaped, assertBoundAgent, pathId, WorkflowApi;
27014
+ var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, isWorkflowIdShaped, viewerApi, assertBoundAgent, pathId, WorkflowApi;
26770
27015
  var init_workflow_api_service = __esm({
26771
27016
  "src/api/workflow.api.service.ts"() {
26772
27017
  "use strict";
@@ -26799,6 +27044,7 @@ var init_workflow_api_service = __esm({
26799
27044
  return res.data;
26800
27045
  }, "unwrap");
26801
27046
  isWorkflowIdShaped = /* @__PURE__ */ __name((v) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(v) || /^wfc?_[A-Za-z0-9]/.test(v), "isWorkflowIdShaped");
27047
+ viewerApi = /* @__PURE__ */ __name((api, agentId2) => agentId2 && agentId2 !== api.agentId ? api.forAgent(agentId2) : api, "viewerApi");
26802
27048
  assertBoundAgent = /* @__PURE__ */ __name((api, agentId2, member) => {
26803
27049
  if (agentId2 && agentId2 !== api.agentId) {
26804
27050
  throw new WorkflowApiError("FORBIDDEN", `Workflows.${member}: goals are scoped to the bound agent ${api.agentId}`, 403);
@@ -26806,7 +27052,7 @@ var init_workflow_api_service = __esm({
26806
27052
  }, "assertBoundAgent");
26807
27053
  pathId = /* @__PURE__ */ __name((id2) => encodeURIComponent(id2), "pathId");
26808
27054
  __name(createWorkflowsRuntime, "createWorkflowsRuntime");
26809
- WorkflowApi = class extends HttpClient {
27055
+ WorkflowApi = class _WorkflowApi extends HttpClient {
26810
27056
  static {
26811
27057
  __name(this, "WorkflowApi");
26812
27058
  }
@@ -26817,6 +27063,10 @@ var init_workflow_api_service = __esm({
26817
27063
  this.credential = credential;
26818
27064
  this.agentId = agentId2;
26819
27065
  }
27066
+ /** The same client and credential, bound to another agent's workflow tree (`Workflows.viewer` with `agentId`). */
27067
+ forAgent(agentId2) {
27068
+ return new _WorkflowApi(this.baseUrl, this.credential, agentId2);
27069
+ }
26820
27070
  /** PRO-1434 (main sync): auth rides the renewable request credential — resolve a current bearer per call. */
26821
27071
  async auth() {
26822
27072
  return {
@@ -28068,7 +28318,20 @@ function buildSupervisionAgentsApi(call2) {
28068
28318
  secrets: /* @__PURE__ */ __name2((agentId2) => ({
28069
28319
  attach: /* @__PURE__ */ __name2((requestIds) => call2("secrets.attach", agentId2, {
28070
28320
  requestIds: copyList(requestIds)
28071
- }), "attach")
28321
+ }), "attach"),
28322
+ /**
28323
+ * SW — write ONE secret row into `agentId`'s own Data: the row of `collection` whose `_pk` is `key`, replaced
28324
+ * whole by `value` (flat: string / number / boolean / null fields), created when absent. Needs `act` and the
28325
+ * collection in the grant's `secretWriteCollections`. Answers `{ ok, id, fingerprint }`, never the value; call it
28326
+ * from code (a workflow step, a job), so the secret never passes through a model.
28327
+ */
28328
+ put: /* @__PURE__ */ __name2((collection, key, value3) => call2("secrets.put", agentId2, {
28329
+ collection,
28330
+ key,
28331
+ value: value3 && typeof value3 === "object" && !Array.isArray(value3) ? {
28332
+ ...value3
28333
+ } : value3
28334
+ }), "put")
28072
28335
  }), "secrets")
28073
28336
  };
28074
28337
  }
@@ -28133,6 +28396,7 @@ var offlineMetrics = {
28133
28396
  };
28134
28397
 
28135
28398
  // src/api-exports.ts
28399
+ init_shared_data_offline();
28136
28400
  init_connection_requests_api_service();
28137
28401
  init_decisions_api_service();
28138
28402
  init_decisions_api();
@@ -29101,6 +29365,9 @@ var LuaWebApp = class {
29101
29365
  if (typeof config.name !== "string" || !WEB_APP_NAME_PATTERN.test(config.name)) {
29102
29366
  throw new Error(`defineWebApp: \`name\` must match ${WEB_APP_NAME_PATTERN} (lower-case letters, digits and dashes, starting with a letter); got ${JSON.stringify(config.name)}.`);
29103
29367
  }
29368
+ if (config.title !== void 0 && (typeof config.title !== "string" || !config.title.trim() || config.title.length > WEB_APP_TITLE_MAX_CHARS)) {
29369
+ throw new Error(`defineWebApp(${config.name}): \`title\` must be a non-empty string of at most ${WEB_APP_TITLE_MAX_CHARS} characters; got ${JSON.stringify(config.title)}.`);
29370
+ }
29104
29371
  if (!config.pages || typeof config.pages.root !== "string" || !config.pages.root.trim()) {
29105
29372
  throw new Error(`defineWebApp(${config.name}): \`pages.root\` (the Vite project directory) is required.`);
29106
29373
  }
@@ -29128,6 +29395,10 @@ var LuaWebApp = class {
29128
29395
  getName() {
29129
29396
  return this.config.name;
29130
29397
  }
29398
+ /** The display name, or `undefined` (the shells then show `branding.name`, then `name`). */
29399
+ getTitle() {
29400
+ return this.config.title;
29401
+ }
29131
29402
  getDescription() {
29132
29403
  return this.config.description;
29133
29404
  }
@@ -29229,6 +29500,7 @@ function createOfflineProgressApi() {
29229
29500
  __name(createOfflineProgressApi, "createOfflineProgressApi");
29230
29501
 
29231
29502
  // src/api-exports.ts
29503
+ init_shared_data_offline();
29232
29504
  var User = {
29233
29505
  /**
29234
29506
  * Retrieves user data by userId, email, or phone.
@@ -29482,6 +29754,31 @@ var Data = {
29482
29754
  async delete(collectionName, entryId) {
29483
29755
  const instance2 = await getDataInstance();
29484
29756
  return instance2.delete(collectionName, entryId);
29757
+ },
29758
+ /**
29759
+ * An org-shared Data collection (namespace). An org admin creates it and names which agents of the org may read
29760
+ * and which may write it (`POST /admin/orgs/:orgId/shared-collections`); agents never create one. The handle has
29761
+ * the same methods as `Data`, scoped to the namespace, so a namespace can hold several collections:
29762
+ *
29763
+ * ```typescript
29764
+ * const map = Data.shared('fleet_map');
29765
+ * await map.create('repos', { repo: 'lua-core-services', tier: 1 }, { searchText: 'backend monorepo' }); // writers
29766
+ * const { data } = await map.get('repos', { tier: 1 }); // readers
29767
+ * const hits = await map.search('edges', 'who calls lua-agents', 10);
29768
+ * ```
29769
+ *
29770
+ * - Readers may `collections`, `get`, `getEntry`, `search`; writers may also `create`, `update`, `patch`,
29771
+ * `increment`, `delete` (a writer can read). Anything else rejects with `code === 'shared_data_forbidden'`
29772
+ * (403) — also when the name does not exist or belongs to another org.
29773
+ * - Same limits, filters, managed indexes, compare-and-swap and vector search as `Data`. Every write is audited
29774
+ * (agent, collection, entry id; never the value).
29775
+ * - A test session may read but not write (`shared_data_test_session_write_refused`, 409).
29776
+ * - Deployed agents only: under `lua test` every call rejects with `code === 'shared_data_unavailable_offline'`.
29777
+ *
29778
+ * @param name - The shared collection name the org admin created (1-128 of `[A-Za-z0-9_.-]`)
29779
+ */
29780
+ shared(name) {
29781
+ return offlineSharedData(name);
29485
29782
  }
29486
29783
  };
29487
29784
  var Products = {
@@ -30147,6 +30444,7 @@ export {
30147
30444
  Products,
30148
30445
  Progress,
30149
30446
  Secrets,
30447
+ SharedDataError,
30150
30448
  Team,
30151
30449
  Templates,
30152
30450
  Threads,