lua-cli 3.42.0-beta.2 → 3.42.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1215,16 +1215,22 @@ function decideAgentProvisioning(params) {
1215
1215
  if (input.unattendedWorkflowIds.length) {
1216
1216
  return wf("unattendedWorkflowIds are not allowed on a provisioning grant (the member\u2019s consent does not cover them)");
1217
1217
  }
1218
- if (input.pendingSecretRequestIds.length) {
1218
+ if (input.pendingSecretRequestIds.length && !params.pendingSecretsEnabled) {
1219
1219
  return {
1220
1220
  code: AGENT_PROVISIONING_ERRORS.PENDING_SECRETS_UNSUPPORTED,
1221
- message: "Pending secret requests cannot be attached yet"
1221
+ message: "Pending secret requests are not enabled in this environment"
1222
+ };
1223
+ }
1224
+ if (input.pendingSecretRequestIds.length > AGENT_PROVISIONING_LIMITS.pendingSecretsMax) {
1225
+ return {
1226
+ code: AGENT_PROVISIONING_ERRORS.PENDING_SECRETS_UNSUPPORTED,
1227
+ message: `At most ${AGENT_PROVISIONING_LIMITS.pendingSecretsMax} pending secret requests can be attached`
1222
1228
  };
1223
1229
  }
1224
1230
  return null;
1225
1231
  }
1226
1232
  function consentCoversProvisioning(consent, request2) {
1227
- return consent.orgId === request2.orgId && consent.userId === request2.onBehalfOf && consent.provisionerAgentId === request2.provisionerAgentId && consent.agentName.trim() === request2.input.name && sameSet(consent.supervise ?? [], request2.input.supervise) && sameSet(consent.connections ?? [], request2.input.connections);
1233
+ return consent.orgId === request2.orgId && consent.userId === request2.onBehalfOf && consent.provisionerAgentId === request2.provisionerAgentId && consent.agentName.trim() === request2.input.name && sameSet(consent.supervise ?? [], request2.input.supervise) && sameSet(consent.connections ?? [], request2.input.connections) && sameSet(consent.pendingSecretRequestIds ?? [], request2.input.pendingSecretRequestIds);
1228
1234
  }
1229
1235
  function parseAgentProvisioningApprovalPayload(payload) {
1230
1236
  if (!payload || typeof payload !== "object" || Array.isArray(payload)) return null;
@@ -2567,6 +2573,75 @@ function supervisionAccessBindingViolation(merged) {
2567
2573
  }
2568
2574
  return null;
2569
2575
  }
2576
+ function hasFormatCharacters(text) {
2577
+ return FORMAT_CHARS.test(text);
2578
+ }
2579
+ function normalizedHandoverName(name) {
2580
+ return oneLine(name.normalize("NFKC")).toLowerCase();
2581
+ }
2582
+ function handoverAgentIdSuffix(agentId) {
2583
+ return agentId.slice(-6);
2584
+ }
2585
+ function parseConnectionHandoverApprovalPayload(payload) {
2586
+ if (!payload || typeof payload !== "object" || Array.isArray(payload)) return null;
2587
+ const top = Object.keys(payload);
2588
+ if (top.length !== 1 || top[0] !== CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY) return null;
2589
+ const p = payload[CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY];
2590
+ if (!p || typeof p !== "object" || Array.isArray(p)) return null;
2591
+ const r = p;
2592
+ if (Object.keys(r).some((k) => !MEMBERS.includes(k))) return null;
2593
+ const L = CONNECTION_HANDOVER_LIMITS;
2594
+ if (!boundedString(r.connectionId, L.idMax) || !boundedString(r.agentId, L.idMax) || !boundedString(r.agentName, L.agentNameMax) || !boundedString(r.supervisorName, L.agentNameMax) || !boundedString(r.integration, L.integrationMax) || r.account !== void 0 && !boundedString(r.account, L.accountMax)) {
2595
+ return null;
2596
+ }
2597
+ return {
2598
+ connectionId: r.connectionId.trim(),
2599
+ agentId: r.agentId.trim(),
2600
+ agentName: r.agentName.trim(),
2601
+ supervisorName: r.supervisorName.trim(),
2602
+ integration: r.integration.trim(),
2603
+ ...r.account !== void 0 ? {
2604
+ account: r.account.trim()
2605
+ } : {}
2606
+ };
2607
+ }
2608
+ function describeConnectionHandoverApproval(payload) {
2609
+ const parsed = parseConnectionHandoverApprovalPayload(payload);
2610
+ if (!parsed) return null;
2611
+ const agent = `"${oneLine(parsed.agentName)}" (\u2026${handoverAgentIdSuffix(parsed.agentId)})`;
2612
+ const supervisor = `"${oneLine(parsed.supervisorName)}"`;
2613
+ const integration = oneLine(parsed.integration);
2614
+ const account = parsed.account ? ` (${oneLine(parsed.account)})` : "";
2615
+ return [
2616
+ `Give your ${integration} connection${account} to your agent ${agent}.`,
2617
+ "It can then use this account through its tools.",
2618
+ `${supervisor}, the agent asking, supervises it, so it can also reach this account through it: in test runs, previews and the actions its supervision rights allow.`,
2619
+ "You can remove it at any time from the agent's connections."
2620
+ ].join("\n");
2621
+ }
2622
+ function connectionHandoverApprovalTitle(facts) {
2623
+ return `Give your ${oneLine(facts.integration)} connection to "${oneLine(facts.agentName)}"?`;
2624
+ }
2625
+ function normalizeConnectionHandoverArgs(raw) {
2626
+ if (!raw || typeof raw !== "object" || Array.isArray(raw)) return null;
2627
+ const r = raw;
2628
+ if (Object.keys(r).some((k) => k !== "connectionId" && k !== "approval")) return null;
2629
+ if (!boundedString(r.connectionId, CONNECTION_HANDOVER_LIMITS.idMax)) return null;
2630
+ const approval = normalizeApprovalRef(r.approval);
2631
+ if (!approval) return null;
2632
+ return {
2633
+ connectionId: r.connectionId.trim(),
2634
+ approval
2635
+ };
2636
+ }
2637
+ function approvalPayloadCoversConnectionHandover(payload, stored) {
2638
+ const p = parseConnectionHandoverApprovalPayload(payload);
2639
+ if (!p) return false;
2640
+ const text = describeConnectionHandoverApproval(payload) ?? "";
2641
+ if (text.length > CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS || scrubSecretText(text) !== text) return false;
2642
+ const storedAccount = stored.account?.trim() || void 0;
2643
+ return p.connectionId === stored.connectionId && p.agentId === stored.agentId && p.agentName === stored.agentName.trim() && p.supervisorName === stored.supervisorName.trim() && p.integration === stored.integration && p.account === storedAccount;
2644
+ }
2570
2645
  function agentMetricTagsKey(tags) {
2571
2646
  if (!tags) return "";
2572
2647
  return Object.keys(tags).sort().map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(tags[k])}`).join("&");
@@ -6739,7 +6814,7 @@ function isPaymentRequiredChatErrorEnvelope(data) {
6739
6814
  if (d.type !== "error") return false;
6740
6815
  return d.textDelta === BILLING_REJECTION_TEXT_CREDITS || d.textDelta === BILLING_REJECTION_TEXT_SEAT || d.textDelta === BILLING_REJECTION_TEXT_USER_QUOTA;
6741
6816
  }
6742
- var __defProp2, __name2, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, 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, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, 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, 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, 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, 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, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, 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, 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_AGENT_EFFORTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_TASK_CLASSES, WORKFLOW_MODEL_TRAITS, WORKFLOW_MODEL_REASON_MAX_LENGTH, WORKFLOW_MODELS_COMPOSE_MODES, WORKFLOW_MODELS_PIN_MODES, WORKFLOW_MODELS_FALLBACK_MODES, WORKFLOW_MODELS_CONSENT_ACTIONS_MIN, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_FORMS, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_ENABLED_DEFAULT, 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, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_FORMATS, LOG_DRAIN_SEVERITIES, LOG_DRAIN_SOURCES, LOG_DRAIN_CONTENT_SOURCES, LOG_DRAIN_DEFAULT_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, EventType, 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, TYPED_API_KEY, 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_JOURNAL_PROTOCOL_VERSION, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, 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_WALL_MS, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSETS, WEB_APP_ASSET_PATH_PATTERN, WEB_APP_ASSET_PATH_MAX_CHARS, WEB_APP_MAX_ROUTES, WEB_APP_MAX_ASSET_BYTES, WEB_APP_CSP_NONCE_PLACEHOLDER, 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;
6817
+ var __defProp2, __name2, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, 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, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, 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, 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, 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, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, 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, 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_AGENT_EFFORTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_TASK_CLASSES, WORKFLOW_MODEL_TRAITS, WORKFLOW_MODEL_REASON_MAX_LENGTH, WORKFLOW_MODELS_COMPOSE_MODES, WORKFLOW_MODELS_PIN_MODES, WORKFLOW_MODELS_FALLBACK_MODES, WORKFLOW_MODELS_CONSENT_ACTIONS_MIN, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_FORMS, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_ENABLED_DEFAULT, 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, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_FORMATS, LOG_DRAIN_SEVERITIES, LOG_DRAIN_SOURCES, LOG_DRAIN_CONTENT_SOURCES, LOG_DRAIN_DEFAULT_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, EventType, 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, TYPED_API_KEY, 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_JOURNAL_PROTOCOL_VERSION, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, 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_WALL_MS, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSETS, WEB_APP_ASSET_PATH_PATTERN, WEB_APP_ASSET_PATH_MAX_CHARS, WEB_APP_MAX_ROUTES, WEB_APP_MAX_ASSET_BYTES, WEB_APP_CSP_NONCE_PLACEHOLDER, 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;
6743
6818
  var init_dist = __esm({
6744
6819
  "../shared-types/dist/index.mjs"() {
6745
6820
  "use strict";
@@ -6943,7 +7018,19 @@ var init_dist = __esm({
6943
7018
  * SV — `Agents.notifyOwner(id, { message })`: post a message (no model turn) to the TARGET OWNER's home thread with
6944
7019
  * the caller. Needs the owner's opt-in recorded on the grant (`ownerNotify`) and `LUA_SUPERVISION_OWNER_NOTIFY_ENABLED`.
6945
7020
  */
6946
- "owner.notify": "observe"
7021
+ "owner.notify": "observe",
7022
+ /**
7023
+ * SV — `Agents.connections(id).assign(connectionId, { approval })`: mount one of the target OWNER's personal
7024
+ * connections on the target, consented by the owner's own signed-in decision on Lua's approval card
7025
+ * (`supervised-connection-handover.types.ts`). Needs `LUA_SUPERVISED_CONNECTION_HANDOVER_ENABLED`.
7026
+ */
7027
+ "connections.assign": "act",
7028
+ /**
7029
+ * SV — `Agents.secrets(id).attach(requestIds)`: attach U9 requests HELD for this existing agent (`{ pendingFor,
7030
+ * agentId }`) to its env. `act`, on a turn whose platform-picked user is the target's owner, never overwriting a
7031
+ * key (`LUA_SECRET_ATTACH_EXISTING_ENABLED`).
7032
+ */
7033
+ "secrets.attach": "act"
6947
7034
  };
6948
7035
  __name(isSupervisionOp, "isSupervisionOp");
6949
7036
  __name2(isSupervisionOp, "isSupervisionOp");
@@ -7109,6 +7196,18 @@ var init_dist = __esm({
7109
7196
  gate: "observe",
7110
7197
  targeted: true,
7111
7198
  item: "SV"
7199
+ },
7200
+ /** SV — `Agents.connections(id).assign(connectionId, { approval })` (the owner's signed-in approval). */
7201
+ "connections.assign": {
7202
+ gate: "act",
7203
+ targeted: true,
7204
+ item: "SV"
7205
+ },
7206
+ /** SV — `Agents.secrets(id).attach(requestIds)`: held U9 requests onto an existing agent (owner's turn). */
7207
+ "secrets.attach": {
7208
+ gate: "act",
7209
+ targeted: true,
7210
+ item: "SV"
7112
7211
  }
7113
7212
  };
7114
7213
  SUPERVISION_UNTARGETED_OPS = [
@@ -7148,6 +7247,7 @@ var init_dist = __esm({
7148
7247
  nameMax: 80,
7149
7248
  personaMax: 2e4,
7150
7249
  connectionsMax: 20,
7250
+ pendingSecretsMax: 20,
7151
7251
  maxAgentsPerUserCeiling: 50
7152
7252
  };
7153
7253
  AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY = "agentProvisioning";
@@ -7161,8 +7261,13 @@ var init_dist = __esm({
7161
7261
  MODEL_NOT_ALLOWED: "agent_provisioning_model_not_allowed",
7162
7262
  ACTIONS_NOT_ALLOWED: "agent_provisioning_actions_not_allowed",
7163
7263
  WORKFLOW_IDS_INVALID: "agent_provisioning_workflow_ids_invalid",
7164
- /** Until U9 lands, a non-empty `pendingSecretRequestIds` is refused with this code. */
7264
+ /** A non-empty `pendingSecretRequestIds` while `LUA_SECRET_REQUESTS_ENABLED` is off (or over the limit). */
7165
7265
  PENDING_SECRETS_UNSUPPORTED: "agent_provisioning_pending_secrets_unsupported",
7266
+ /**
7267
+ * A pending secret request is not attachable to this create (unknown, another org / member / provisioner,
7268
+ * not `ok`-tested, already attached or purged). Checked before the agent exists.
7269
+ */
7270
+ PENDING_SECRET_NOT_ATTACHABLE: "agent_provisioning_pending_secret_not_attachable",
7166
7271
  /** The `Agents.create` input is malformed (name, model, persona, list shapes or limits). */
7167
7272
  INVALID_INPUT: "agent_provisioning_invalid_input",
7168
7273
  /** `PUT …/agent-provisioning-policy` body is malformed (`*`, unknown action, out-of-range quota…). */
@@ -7534,7 +7639,13 @@ var init_dist = __esm({
7534
7639
  /** The input's `fields` do not match the provider's catalogue bundle. */
7535
7640
  FIELDS_INVALID: "secret_fields_invalid",
7536
7641
  /** `Secrets.test(key)` / status on a key with no request on record (the provider is unknown). */
7537
- KEY_NOT_FOUND: "secret_key_not_found"
7642
+ KEY_NOT_FOUND: "secret_key_not_found",
7643
+ /** A held request for an existing agent while `LUA_SECRET_ATTACH_EXISTING_ENABLED` is off. */
7644
+ ATTACH_EXISTING_DISABLED: "secret_attach_existing_disabled",
7645
+ /** `secrets.attach` would set an env key the agent already has: never overwritten (remove or rotate it first). */
7646
+ KEY_EXISTS: "secret_key_exists",
7647
+ /** A request held for an existing agent submitted on the public token page: its owner submits it signed in. */
7648
+ OWNER_SUBMIT_REQUIRED: "secret_submit_requires_owner"
7538
7649
  };
7539
7650
  SECRET_OUTCOME_STATUSES = [
7540
7651
  ...SECRET_TEST_RESULTS,
@@ -7894,6 +8005,41 @@ var init_dist = __esm({
7894
8005
  __name2(sameSupervisionAccessFields, "sameSupervisionAccessFields");
7895
8006
  __name(supervisionAccessBindingViolation, "supervisionAccessBindingViolation");
7896
8007
  __name2(supervisionAccessBindingViolation, "supervisionAccessBindingViolation");
8008
+ CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY = "connectionAssignment";
8009
+ CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS = 1200;
8010
+ CONNECTION_HANDOVER_LIMITS = {
8011
+ idMax: 128,
8012
+ agentNameMax: 200,
8013
+ integrationMax: 60,
8014
+ accountMax: 200
8015
+ };
8016
+ MEMBERS = [
8017
+ "connectionId",
8018
+ "agentId",
8019
+ "agentName",
8020
+ "supervisorName",
8021
+ "integration",
8022
+ "account"
8023
+ ];
8024
+ FORMAT_CHARS = /[\p{Cf}\u200b-\u200d\u202a-\u202e\u2066-\u2069\ufeff]/u;
8025
+ __name(hasFormatCharacters, "hasFormatCharacters");
8026
+ __name2(hasFormatCharacters, "hasFormatCharacters");
8027
+ oneLine = /* @__PURE__ */ __name2((text) => text.replace(/[\u0000-\u001f\u007f-\u009f\u2028\u2029"\u201c\u201d]/g, " ").replace(/\s+/g, " ").trim(), "oneLine");
8028
+ __name(normalizedHandoverName, "normalizedHandoverName");
8029
+ __name2(normalizedHandoverName, "normalizedHandoverName");
8030
+ __name(handoverAgentIdSuffix, "handoverAgentIdSuffix");
8031
+ __name2(handoverAgentIdSuffix, "handoverAgentIdSuffix");
8032
+ boundedString = /* @__PURE__ */ __name2((v, max) => typeof v === "string" && v.trim().length > 0 && v.length <= max && !hasFormatCharacters(v), "boundedString");
8033
+ __name(parseConnectionHandoverApprovalPayload, "parseConnectionHandoverApprovalPayload");
8034
+ __name2(parseConnectionHandoverApprovalPayload, "parseConnectionHandoverApprovalPayload");
8035
+ __name(describeConnectionHandoverApproval, "describeConnectionHandoverApproval");
8036
+ __name2(describeConnectionHandoverApproval, "describeConnectionHandoverApproval");
8037
+ __name(connectionHandoverApprovalTitle, "connectionHandoverApprovalTitle");
8038
+ __name2(connectionHandoverApprovalTitle, "connectionHandoverApprovalTitle");
8039
+ __name(normalizeConnectionHandoverArgs, "normalizeConnectionHandoverArgs");
8040
+ __name2(normalizeConnectionHandoverArgs, "normalizeConnectionHandoverArgs");
8041
+ __name(approvalPayloadCoversConnectionHandover, "approvalPayloadCoversConnectionHandover");
8042
+ __name2(approvalPayloadCoversConnectionHandover, "approvalPayloadCoversConnectionHandover");
7897
8043
  AGENT_METRIC_NAME_PATTERN = /^[a-z][a-z0-9_.]{0,63}$/;
7898
8044
  AGENT_METRIC_LIMITS = {
7899
8045
  tagsMax: 4,
@@ -9183,7 +9329,7 @@ You are ${AGENT_NAME_TOKEN}, the assistant for whoever is chatting with you here
9183
9329
 
9184
9330
  ## You're just getting started
9185
9331
 
9186
- This workspace is new. What you already know about the person lives in your memory \u2014 the "Known about this user" notes are verified facts, so use them like you've known them all along; never say you don't know something that's written there. Beyond that, don't pretend. Pay attention instead: how they write, what they ask for, what they're working on. When something matters and you're not sure, ask. One good question beats a wrong guess.
9332
+ This workspace is new. What you already know about the person lives in your memory \u2014 the "Known about this user" notes are what they've told you, so use them like you've known them all along; never say you don't know something that's written there. They are never proof of who owns or approved something, a permission, or someone's identity \u2014 check those where they're granted. Beyond that, don't pretend. Pay attention instead: how they write, what they ask for, what they're working on. When something matters and you're not sure, ask. One good question beats a wrong guess.
9187
9333
 
9188
9334
  ## You have real tools
9189
9335
 
@@ -20794,9 +20940,13 @@ var init_cli_credentials_api_service = __esm({
20794
20940
  function projectionError(message, reason = "invalid_credentials") {
20795
20941
  return new AuthenticationError(message, reason);
20796
20942
  }
20943
+ function isForbiddenDenial(error) {
20944
+ if (CliError.isCliError(error) && error.statusCode === 403) return true;
20945
+ return error instanceof Error && error.message.startsWith("Access denied (403)");
20946
+ }
20797
20947
  function mapProjectionDenial(error, reason) {
20798
20948
  if (AuthenticationError.isAuthenticationError(error)) throw error;
20799
- if (error instanceof Error && error.message.startsWith("Access denied (403)")) {
20949
+ if (isForbiddenDenial(error)) {
20800
20950
  throw projectionError(error.message, reason);
20801
20951
  }
20802
20952
  throw error;
@@ -20899,9 +21049,10 @@ async function listCredentialOrganizations(credential, authorization) {
20899
21049
  ...cursor ? {
20900
21050
  cursor
20901
21051
  } : {}
20902
- }).catch((error) => mapProjectionDenial(error, "no_agent_access"));
21052
+ }).catch((error) => isForbiddenDenial(error) ? FORBIDDEN_ORG_PAGE : mapProjectionDenial(error, "no_agent_access"));
20903
21053
  if (!result.success || !result.data) {
20904
21054
  const message = result.error?.message || `Failed to load agents for organization ${org.orgId}.`;
21055
+ if (result.error?.statusCode === 403 && !cursor && agents.size === 0) break;
20905
21056
  if (result.error?.statusCode === 401 || result.error?.statusCode === 403) {
20906
21057
  throw projectionError(message, "no_agent_access");
20907
21058
  }
@@ -20943,7 +21094,7 @@ async function listCredentialOrganizations(credential, authorization) {
20943
21094
  }
20944
21095
  return organizations;
20945
21096
  }
20946
- var MAX_CREDENTIAL_ORGS, MAX_CREDENTIAL_RESOURCE_PAGES, ORGANIZATION_REQUEST_CONCURRENCY;
21097
+ var MAX_CREDENTIAL_ORGS, MAX_CREDENTIAL_RESOURCE_PAGES, ORGANIZATION_REQUEST_CONCURRENCY, FORBIDDEN_ORG_PAGE;
20947
21098
  var init_credential_operational_context = __esm({
20948
21099
  "src/services/credential-operational-context.ts"() {
20949
21100
  "use strict";
@@ -20957,7 +21108,15 @@ var init_credential_operational_context = __esm({
20957
21108
  MAX_CREDENTIAL_RESOURCE_PAGES = 500;
20958
21109
  ORGANIZATION_REQUEST_CONCURRENCY = 10;
20959
21110
  __name(projectionError, "projectionError");
21111
+ __name(isForbiddenDenial, "isForbiddenDenial");
20960
21112
  __name(mapProjectionDenial, "mapProjectionDenial");
21113
+ FORBIDDEN_ORG_PAGE = {
21114
+ success: false,
21115
+ error: {
21116
+ statusCode: 403,
21117
+ message: "Access denied (403)"
21118
+ }
21119
+ };
20961
21120
  __name(throwProjectionFailure, "throwProjectionFailure");
20962
21121
  __name(identityOf, "identityOf");
20963
21122
  __name(getUserIdentity, "getUserIdentity");
@@ -21733,11 +21892,18 @@ const __lua_primitive__ = {
21733
21892
 
21734
21893
  export default {
21735
21894
  __lua_primitive__,
21736
- primitive: __primitive__,
21895
+ primitive: ${this.wrapPrimitiveExpression("__primitive__")},
21737
21896
  };
21738
21897
  `;
21739
21898
  }
21740
21899
  /**
21900
+ * Hook to wrap the `primitive` expression in a generated entry point.
21901
+ * Default: identity, so entry points stay byte-identical.
21902
+ */
21903
+ wrapPrimitiveExpression(expr) {
21904
+ return expr;
21905
+ }
21906
+ /**
21741
21907
  * Override to add extra fields to __lua_primitive__ object.
21742
21908
  * Return a string like: `context: "some value",\n tools: ["tool1"]`
21743
21909
  */
@@ -22424,7 +22590,7 @@ var init_job_plugin = __esm({
22424
22590
 
22425
22591
  // src/compiler/plugins/webhook.plugin.ts
22426
22592
  import { Node as Node6 } from "ts-morph";
22427
- var WebhookPlugin;
22593
+ var WEBHOOK_VALIDATION_WRAP_SOURCE, WebhookPlugin;
22428
22594
  var init_webhook_plugin = __esm({
22429
22595
  "src/compiler/plugins/webhook.plugin.ts"() {
22430
22596
  "use strict";
@@ -22432,6 +22598,60 @@ var init_webhook_plugin = __esm({
22432
22598
  init_ast_helpers();
22433
22599
  init_class_hierarchy();
22434
22600
  init_schema_converter();
22601
+ WEBHOOK_VALIDATION_WRAP_SOURCE = `(function (p) {
22602
+ if (!p || typeof p.execute !== 'function') return p;
22603
+ var parts = [
22604
+ ['query', p.querySchema],
22605
+ ['headers', p.headerSchema],
22606
+ ['body', p.bodySchema],
22607
+ ].filter(function (e) { return e[1] && typeof e[1].safeParse === 'function'; });
22608
+ if (parts.length === 0) return p;
22609
+ var enforce = p.enforceSchemas === true;
22610
+ return Object.assign({}, p, {
22611
+ execute: async function (event) {
22612
+ var ev = event || {};
22613
+ var failed = [];
22614
+ for (var i = 0; i < parts.length; i++) {
22615
+ var part = parts[i][0];
22616
+ var schema = parts[i][1];
22617
+ var input = part === 'body' ? ev.body : (ev[part] == null ? {} : ev[part]);
22618
+ var r;
22619
+ if (enforce) {
22620
+ r = typeof schema.safeParseAsync === 'function' ? await schema.safeParseAsync(input) : schema.safeParse(input);
22621
+ } else {
22622
+ try {
22623
+ r = typeof schema.safeParseAsync === 'function' ? await schema.safeParseAsync(input) : schema.safeParse(input);
22624
+ } catch (_e) {
22625
+ continue;
22626
+ }
22627
+ }
22628
+ if (!r || r.success) continue;
22629
+ var issues = r.error && Array.isArray(r.error.issues) ? r.error.issues : [];
22630
+ if (enforce) {
22631
+ var first = issues[0];
22632
+ var detail = first ? ': ' + (first.path && first.path.length ? first.path.join('.') + ': ' : '') + first.message : '';
22633
+ var err = new Error('Webhook request validation failed: invalid ' + part + detail);
22634
+ err.code = 'LUA_WEBHOOK_VALIDATION';
22635
+ err.part = part;
22636
+ err.issues = issues;
22637
+ throw err;
22638
+ }
22639
+ failed.push({ part: part, issues: issues });
22640
+ }
22641
+ if (failed.length > 0 && typeof console !== 'undefined' && console.warn) {
22642
+ try {
22643
+ var total = 0;
22644
+ for (var j = 0; j < failed.length; j++) total += failed[j].issues.length;
22645
+ var f0 = failed[0];
22646
+ var i0 = f0.issues[0];
22647
+ var firstDesc = f0.part + ':' + (i0 && i0.path ? i0.path.join('.') : '') + ':' + (i0 && i0.code ? i0.code : 'unknown');
22648
+ console.warn('[lua:webhook-schema] would-reject webhook=' + p.name + ' parts=' + failed.map(function (x) { return x.part; }).join(',') + ' issues=' + total + ' first=' + firstDesc + ' (request still processed; set enforceSchemas: true on the webhook to reject with HTTP 400)');
22649
+ } catch (_e) {}
22650
+ }
22651
+ return p.execute.call(p, event);
22652
+ },
22653
+ });
22654
+ })`;
22435
22655
  WebhookPlugin = class extends BasePlugin {
22436
22656
  static {
22437
22657
  __name(this, "WebhookPlugin");
@@ -22485,15 +22705,20 @@ var init_webhook_plugin = __esm({
22485
22705
  * win at runtime.
22486
22706
  */
22487
22707
  getClassDefinitionPrimitiveShape(metadata) {
22488
- return `{
22708
+ return `${WEBHOOK_VALIDATION_WRAP_SOURCE}({
22489
22709
  kind: 'webhook',
22490
22710
  name: __lua_instance__.name ?? ${JSON.stringify(metadata.name)},
22491
22711
  description: __lua_instance__.description ?? ${JSON.stringify(metadata.description)},
22492
22712
  querySchema: __lua_instance__.querySchema,
22493
22713
  headerSchema: __lua_instance__.headerSchema,
22494
22714
  bodySchema: __lua_instance__.bodySchema,
22715
+ enforceSchemas: __lua_instance__.enforceSchemas,
22495
22716
  execute: typeof __lua_instance__.execute === 'function' ? __lua_instance__.execute.bind(__lua_instance__) : undefined,
22496
- }`;
22717
+ })`;
22718
+ }
22719
+ /** Enforce declared schemas before `execute` (function / config-literal shapes). */
22720
+ wrapPrimitiveExpression(expr) {
22721
+ return `${WEBHOOK_VALIDATION_WRAP_SOURCE}(${expr})`;
22497
22722
  }
22498
22723
  /**
22499
22724
  * Extract metadata from webhook config object.
@@ -35311,7 +35536,7 @@ var init_agents_api_service = __esm({
35311
35536
  if (op === "lease.acquire" || op === "lease.release") {
35312
35537
  refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
35313
35538
  }
35314
- if (op === "lifecycle.archive" || op === "lifecycle.delete" || op === "config.set") {
35539
+ if (op === "lifecycle.archive" || op === "lifecycle.delete" || op === "config.set" || op === "secrets.attach") {
35315
35540
  refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
35316
35541
  }
35317
35542
  if (op === "agents.directory" || op === "access.request" || op === "access.requests" || op === "access.cancel") {
@@ -35462,6 +35687,7 @@ var init_agents_api_service = __esm({
35462
35687
  case "evals.run":
35463
35688
  case "evals.cancel":
35464
35689
  case "owner.notify":
35690
+ case "connections.assign":
35465
35691
  return refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
35466
35692
  default:
35467
35693
  return refuse("supervision_unknown_op", `Unknown supervision operation ${String(op)}`);
@@ -43955,7 +44181,34 @@ function buildSupervisionAgentsApi(call2) {
43955
44181
  ...input?.idempotencyKey !== void 0 ? {
43956
44182
  idempotencyKey: input.idempotencyKey
43957
44183
  } : {}
43958
- }), "notifyOwner")
44184
+ }), "notifyOwner"),
44185
+ // SV — the target OWNER hands it one of their personal connections (their signed-in approval, `act`).
44186
+ /**
44187
+ * Mount one of the OWNER's own personal connections on `agentId`. The owner consents on Lua's approval card in
44188
+ * their own signed-in session: suspend YOUR run (started by the owner) on
44189
+ * `.approval(step, { approver: 'creator', title })` with the payload exactly
44190
+ * `{ connectionAssignment: { connectionId, agentId, agentName, supervisorName, integration, account } }` and `title`
44191
+ * exactly `Give your <integration> connection to "<agentName>"?`, then call this from a code step of THAT run with
44192
+ * `{ approval: { runId, stepId } }`. Needs an `act` grant on the agent.
44193
+ */
44194
+ connections: /* @__PURE__ */ __name8((agentId) => ({
44195
+ assign: /* @__PURE__ */ __name8((connectionId, opts) => call2("connections.assign", agentId, {
44196
+ connectionId,
44197
+ approval: opts?.approval && typeof opts.approval === "object" ? {
44198
+ ...opts.approval
44199
+ } : opts?.approval
44200
+ }), "assign")
44201
+ }), "connections"),
44202
+ // SV — held U9 secret requests (`Secrets.request({ target: { pendingFor, agentId } })`) onto an EXISTING agent.
44203
+ /**
44204
+ * Attach requests held for `agentId` to its env (`act`, on the agent owner's own turn; never overwrites a key).
44205
+ * Answers the env keys set, never a value.
44206
+ */
44207
+ secrets: /* @__PURE__ */ __name8((agentId) => ({
44208
+ attach: /* @__PURE__ */ __name8((requestIds) => call2("secrets.attach", agentId, {
44209
+ requestIds: copyList(requestIds)
44210
+ }), "attach")
44211
+ }), "secrets")
43959
44212
  };
43960
44213
  }
43961
44214
  __name(buildSupervisionAgentsApi, "buildSupervisionAgentsApi");
@@ -47385,7 +47638,7 @@ function validateAgentNodeModelMembers(node, path31) {
47385
47638
  }
47386
47639
  __name(validateAgentNodeModelMembers, "validateAgentNodeModelMembers");
47387
47640
  var WORKFLOW_MODEL_WALK_MAX_DEPTH = 64;
47388
- var MEMBERS = [
47641
+ var MEMBERS2 = [
47389
47642
  "model",
47390
47643
  "taskClass",
47391
47644
  "requires",
@@ -47404,7 +47657,7 @@ function validateGraphModelMembers(graph) {
47404
47657
  return;
47405
47658
  }
47406
47659
  const node = value3;
47407
- if (MEMBERS.some((m) => node[m] !== void 0)) {
47660
+ if (MEMBERS2.some((m) => node[m] !== void 0)) {
47408
47661
  const label2 = typeof node.id === "string" && node.id ? node.id : path31;
47409
47662
  issues.push(...validateAgentNodeModelMembers(node, label2));
47410
47663
  }