lua-cli 3.44.0 → 3.45.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.
@@ -162,6 +162,106 @@ function supervisionSubjectId(agentId) {
162
162
  function isSupervisionOp(op) {
163
163
  return typeof op === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_OPS, op);
164
164
  }
165
+ function isSupervisionWatchdogOp(op) {
166
+ return typeof op === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_WATCHDOG_OPS, op);
167
+ }
168
+ function isSupervisionRollbackRefusalReason(v) {
169
+ return typeof v === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_ROLLBACK_REFUSAL_CODES, v);
170
+ }
171
+ function supervisionRollbackTargetRefusal(target, expectActive, window) {
172
+ if (target.status !== "superseded" || !target.promotedAt || target.compensationFailed === true) {
173
+ return {
174
+ reason: "never_active",
175
+ message: `Version ${target.version} was never fully the active version (status ${target.status ?? "unknown"})`
176
+ };
177
+ }
178
+ if (typeof expectActive !== "number" || !(target.version < expectActive)) {
179
+ return {
180
+ reason: "not_older",
181
+ message: `Version ${target.version} is not older than the active version ${expectActive ?? "none"}`
182
+ };
183
+ }
184
+ if (window) {
185
+ if (target.supersededVia === "rollback" || target.promotedVia === "rollback") {
186
+ return {
187
+ reason: "after_rollback",
188
+ message: `Version ${target.version} was retired or restored by a rollback`
189
+ };
190
+ }
191
+ if (target.supersededVia !== "promote" && target.supersededVia !== "scoped") {
192
+ return {
193
+ reason: "not_in_lineage",
194
+ message: `Version ${target.version} has no forward-promote history`
195
+ };
196
+ }
197
+ const ended = target.supersededAt ? new Date(target.supersededAt).getTime() : NaN;
198
+ if (!Number.isFinite(ended) || ended < window.now - window.windowMs) {
199
+ return {
200
+ reason: "too_old",
201
+ message: `Version ${target.version} was last active outside the ${Math.round(window.windowMs / 864e5)}-day window`
202
+ };
203
+ }
204
+ }
205
+ return null;
206
+ }
207
+ function supervisionRollbackRefusal(input) {
208
+ const { target, active, lineage, expectActive, windowMs, now } = input;
209
+ const pre = supervisionRollbackTargetRefusal(target, expectActive);
210
+ if (pre) return pre;
211
+ if (!active || active.version !== expectActive) {
212
+ return {
213
+ reason: "not_older",
214
+ message: `Version ${expectActive ?? "none"} is not the active version`
215
+ };
216
+ }
217
+ if (active.promotedVia === "rollback") {
218
+ return {
219
+ reason: "after_rollback",
220
+ message: `The active version ${active.version} was restored by a rollback; a watchdog does not roll back twice in a row`
221
+ };
222
+ }
223
+ let previous = active;
224
+ for (const step3 of lineage.slice(0, SUPERVISION_ROLLBACK_LINEAGE_MAX)) {
225
+ const label = `version ${step3.version}`;
226
+ if (step3.supersededVia === "rollback" || step3.promotedVia === "rollback") {
227
+ return {
228
+ reason: "after_rollback",
229
+ message: `The rollback lineage crosses ${label}, which a rollback retired or restored`
230
+ };
231
+ }
232
+ if (step3.supersededVia !== "promote" && step3.supersededVia !== "scoped") {
233
+ return {
234
+ reason: "not_in_lineage",
235
+ message: `The rollback lineage stops at ${label} (no forward-promote history)`
236
+ };
237
+ }
238
+ if (step3.compensationFailed === true || step3.status !== "superseded" || !step3.promotedAt) {
239
+ return {
240
+ reason: "not_in_lineage",
241
+ message: `The rollback lineage stops at ${label} (not fully served)`
242
+ };
243
+ }
244
+ if (!(step3.version < previous.version)) {
245
+ return {
246
+ reason: "after_backward_promote",
247
+ message: `Version ${previous.version} was promoted BACK over ${label}; a watchdog never reaches behind that`
248
+ };
249
+ }
250
+ const ended = step3.supersededAt ? new Date(step3.supersededAt).getTime() : NaN;
251
+ if (!Number.isFinite(ended) || ended < now - windowMs) {
252
+ return {
253
+ reason: "too_old",
254
+ message: `The rollback lineage reaches ${label}, last active outside the ${Math.round(windowMs / 864e5)}-day window`
255
+ };
256
+ }
257
+ if (step3.version === target.version && (!target.id || !step3.id || step3.id === target.id)) return null;
258
+ previous = step3;
259
+ }
260
+ return {
261
+ reason: "not_in_lineage",
262
+ message: `Version ${target.version} is not in the active version's recent forward-promote lineage`
263
+ };
264
+ }
165
265
  function isUntargetedSupervisionOp(op) {
166
266
  return typeof op === "string" && SUPERVISION_UNTARGETED_OPS.includes(op);
167
267
  }
@@ -2462,6 +2562,19 @@ function resolveSlackReactionName(value3) {
2462
2562
  }
2463
2563
  return slackEmojiName(trimmed);
2464
2564
  }
2565
+ function threadScopingSetting(type) {
2566
+ const noun = THREAD_SCOPING_NOUN[type];
2567
+ return {
2568
+ key: `${type}.threadScoping`,
2569
+ group: "conversations",
2570
+ label: `One conversation per ${noun}`,
2571
+ help: `Each ${noun} is its own conversation with its own history.`,
2572
+ effect: "Off: every message from the same person shares one conversation.",
2573
+ type: "boolean",
2574
+ default: false,
2575
+ confirm: "Changing this starts fresh conversations for ones that are already open. Earlier history isn't carried over."
2576
+ };
2577
+ }
2465
2578
  function takeoverSettings(type) {
2466
2579
  const variants = type === "email" ? [
2467
2580
  "ses"
@@ -2817,13 +2930,13 @@ function channelSettingsGroups(channel, config) {
2817
2930
  const groups = [];
2818
2931
  for (const def of channelSettingDefinitions(channel, config)) {
2819
2932
  const { tunableDefault: _tunable, ...shown } = def;
2820
- const unavailable3 = channelSettingUnavailable(channel, def);
2933
+ const unavailable2 = channelSettingUnavailable(channel, def);
2821
2934
  const view = {
2822
2935
  ...shown,
2823
2936
  ...effectiveChannelSetting(channel, def),
2824
2937
  resettable: channelSettingResettable(def),
2825
- ...unavailable3 && {
2826
- unavailable: unavailable3
2938
+ ...unavailable2 && {
2939
+ unavailable: unavailable2
2827
2940
  }
2828
2941
  };
2829
2942
  const group = groups.find((candidate) => candidate.key === def.group);
@@ -4435,6 +4548,9 @@ function workflowOccurrenceId(lineageId, stepId) {
4435
4548
  function workflowOrgSlotKey(orgId, kind) {
4436
4549
  return `wf:org:${orgId}:${kind}`;
4437
4550
  }
4551
+ function isWorkflowAgentAppConnectionId(id2) {
4552
+ return typeof id2 === "string" && id2.startsWith(WORKFLOW_AGENT_APP_CONNECTION_PREFIX) && /^[A-Za-z0-9_-]{1,128}$/.test(id2);
4553
+ }
4438
4554
  function workflowJobModelSourceLabel(source) {
4439
4555
  return WORKFLOW_JOB_MODEL_SOURCE_LABELS[source];
4440
4556
  }
@@ -5990,7 +6106,7 @@ function isPaymentRequiredChatErrorEnvelope(data) {
5990
6106
  if (d.type !== "error") return false;
5991
6107
  return d.textDelta === BILLING_REJECTION_TEXT_CREDITS || d.textDelta === BILLING_REJECTION_TEXT_SEAT || d.textDelta === BILLING_REJECTION_TEXT_USER_QUOTA;
5992
6108
  }
5993
- var __defProp3, __name3, 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, 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, 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_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, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, 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_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_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;
6109
+ var __defProp3, __name3, 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_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, 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_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, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, 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;
5994
6110
  var init_dist = __esm({
5995
6111
  "../shared-types/dist/index.mjs"() {
5996
6112
  "use strict";
@@ -6206,7 +6322,20 @@ var init_dist = __esm({
6206
6322
  * agentId }`) to its env. `act`, on a turn whose platform-picked user is the target's owner, never overwriting a
6207
6323
  * key (`LUA_SECRET_ATTACH_EXISTING_ENABLED`).
6208
6324
  */
6209
- "secrets.attach": "act"
6325
+ "secrets.attach": "act",
6326
+ /**
6327
+ * SV (LUA-1080) — `Agents.deployed(id)`: what the target serves RIGHT NOW, read from each primitive's live pointer
6328
+ * (skills with their tools, the published persona, pre/postprocessors), with version ids comparable to an agent
6329
+ * version snapshot. Works whether or not the target has a promoted agent version. Metadata and hashes only.
6330
+ */
6331
+ "primitives.deployed": "observe",
6332
+ // [WD]
6333
+ /**
6334
+ * WD (watchdog grant) — `Agents.versions(id).rollback(version, { expectActive })`: restore a version of the target
6335
+ * that was ACTIVE before, is OLDER than the active one and was active within the last 7 days. CAS on the active
6336
+ * version; only from a workflow step the watchdog grant names. Held only by a watchdog grant.
6337
+ */
6338
+ "versions.rollback": "rollback"
6210
6339
  };
6211
6340
  __name(isSupervisionOp, "isSupervisionOp");
6212
6341
  __name3(isSupervisionOp, "isSupervisionOp");
@@ -6384,8 +6513,65 @@ var init_dist = __esm({
6384
6513
  gate: "act",
6385
6514
  targeted: true,
6386
6515
  item: "SV"
6516
+ },
6517
+ /** SV (LUA-1080) — `Agents.deployed(id)`: the target's deployed primitives (live pointers, no agent version needed). */
6518
+ "primitives.deployed": {
6519
+ gate: "observe",
6520
+ targeted: true,
6521
+ item: "SV"
6522
+ },
6523
+ /** WD — `Agents.versions(id).rollback(version, { expectActive })` (watchdog grant only). */
6524
+ "versions.rollback": {
6525
+ gate: "rollback",
6526
+ targeted: true,
6527
+ item: "WD"
6387
6528
  }
6388
6529
  };
6530
+ SUPERVISION_WATCHDOG_OPS = {
6531
+ logs: "observe",
6532
+ "runs.list": "observe",
6533
+ "runs.get": "observe",
6534
+ "data.get": "observe",
6535
+ "data.query": "observe",
6536
+ "versions.list": "observe",
6537
+ "versions.get": "observe",
6538
+ "versions.diff": "observe",
6539
+ "versions.rollback": "rollback"
6540
+ };
6541
+ __name(isSupervisionWatchdogOp, "isSupervisionWatchdogOp");
6542
+ __name3(isSupervisionWatchdogOp, "isSupervisionWatchdogOp");
6543
+ SUPERVISION_WATCHDOG_ERRORS = {
6544
+ /** A watchdog holder called an op outside {@link SUPERVISION_WATCHDOG_OPS}. */
6545
+ OP_REFUSED: "supervision_watchdog_op_refused",
6546
+ /** See {@link SupervisionRollbackRefusalReason}. */
6547
+ ROLLBACK_NEVER_ACTIVE: "supervision_rollback_never_active",
6548
+ ROLLBACK_NOT_OLDER: "supervision_rollback_not_older",
6549
+ ROLLBACK_NOT_IN_LINEAGE: "supervision_rollback_not_in_lineage",
6550
+ ROLLBACK_AFTER_ROLLBACK: "supervision_rollback_after_rollback",
6551
+ ROLLBACK_AFTER_BACKWARD_PROMOTE: "supervision_rollback_after_backward_promote",
6552
+ ROLLBACK_TOO_OLD: "supervision_rollback_too_old",
6553
+ /** `expectActive` is not the active version (CAS). */
6554
+ ROLLBACK_CONFLICT: "supervision_rollback_conflict",
6555
+ /** The promote failed part-way and its compensation restored the previous active version. */
6556
+ ROLLBACK_INCOMPLETE: "supervision_rollback_incomplete",
6557
+ /** The promote failed part-way AND its compensation failed: the Agents DB may have moved (manual triage). */
6558
+ ROLLBACK_INCOMPLETE_UNCOMPENSATED: "supervision_rollback_incomplete_uncompensated"
6559
+ };
6560
+ SUPERVISION_ROLLBACK_REFUSAL_CODES = {
6561
+ never_active: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_NEVER_ACTIVE,
6562
+ not_older: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_NOT_OLDER,
6563
+ not_in_lineage: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_NOT_IN_LINEAGE,
6564
+ after_rollback: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_AFTER_ROLLBACK,
6565
+ after_backward_promote: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_AFTER_BACKWARD_PROMOTE,
6566
+ too_old: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_TOO_OLD
6567
+ };
6568
+ __name(isSupervisionRollbackRefusalReason, "isSupervisionRollbackRefusalReason");
6569
+ __name3(isSupervisionRollbackRefusalReason, "isSupervisionRollbackRefusalReason");
6570
+ SUPERVISION_ROLLBACK_LINEAGE_MAX = 25;
6571
+ __name(supervisionRollbackTargetRefusal, "supervisionRollbackTargetRefusal");
6572
+ __name3(supervisionRollbackTargetRefusal, "supervisionRollbackTargetRefusal");
6573
+ __name(supervisionRollbackRefusal, "supervisionRollbackRefusal");
6574
+ __name3(supervisionRollbackRefusal, "supervisionRollbackRefusal");
6389
6575
  SUPERVISION_UNTARGETED_OPS = [
6390
6576
  "agents.list",
6391
6577
  ...Object.entries(SUPERVISION_OPS_WAVE2).filter(([, contract]) => !contract.targeted).map(([op]) => op)
@@ -6821,7 +7007,9 @@ var init_dist = __esm({
6821
7007
  /** `secrets.attach` would set an env key the agent already has: never overwritten (remove or rotate it first). */
6822
7008
  KEY_EXISTS: "secret_key_exists",
6823
7009
  /** A request held for an existing agent submitted on the public token page: its owner submits it signed in. */
6824
- OWNER_SUBMIT_REQUIRED: "secret_submit_requires_owner"
7010
+ OWNER_SUBMIT_REQUIRED: "secret_submit_requires_owner",
7011
+ /** LUA-1079 — `requestSecret` with `pendingFor` on a client that did not declare the pending card capability. */
7012
+ PENDING_CARD_UNSUPPORTED: "secret_pending_card_unsupported"
6825
7013
  };
6826
7014
  SECRET_OUTCOME_STATUSES = [
6827
7015
  ...SECRET_TEST_RESULTS,
@@ -7546,6 +7734,13 @@ var init_dist = __esm({
7546
7734
  welcome: "Welcome and Home page",
7547
7735
  takeover: "Human takeover"
7548
7736
  };
7737
+ THREAD_SCOPING_NOUN = {
7738
+ front: "Front conversation",
7739
+ messagebird: "MessageBird conversation",
7740
+ imessage: "iMessage chat"
7741
+ };
7742
+ __name(threadScopingSetting, "threadScopingSetting");
7743
+ __name3(threadScopingSetting, "threadScopingSetting");
7549
7744
  TAKEOVER_CHANNEL_TYPES = [
7550
7745
  "whatsapp",
7551
7746
  "instagram",
@@ -7819,7 +8014,10 @@ var init_dist = __esm({
7819
8014
  CHANNEL_SETTINGS = {
7820
8015
  ...Object.fromEntries(TAKEOVER_CHANNEL_TYPES.map((type) => [
7821
8016
  type,
7822
- type === "email" ? EMAIL_SETTINGS : takeoverSettings(type)
8017
+ type === "email" ? EMAIL_SETTINGS : type === "front" || type === "messagebird" || type === "imessage" ? [
8018
+ ...takeoverSettings(type),
8019
+ threadScopingSetting(type)
8020
+ ] : takeoverSettings(type)
7823
8021
  ])),
7824
8022
  slack: SLACK_SETTINGS
7825
8023
  };
@@ -9566,6 +9764,9 @@ This text is who you are for this person. As you learn them, their name, their w
9566
9764
  __name(workflowOrgSlotKey, "workflowOrgSlotKey");
9567
9765
  __name3(workflowOrgSlotKey, "workflowOrgSlotKey");
9568
9766
  WORKFLOW_CONNECTION_KEY_RE = /^[a-z][a-z0-9_-]{0,63}$/;
9767
+ WORKFLOW_AGENT_APP_CONNECTION_PREFIX = "agentapp_";
9768
+ __name(isWorkflowAgentAppConnectionId, "isWorkflowAgentAppConnectionId");
9769
+ __name3(isWorkflowAgentAppConnectionId, "isWorkflowAgentAppConnectionId");
9569
9770
  WORKFLOW_JOB_MODEL_SOURCE_LABELS = {
9570
9771
  stamp: "lease stamp",
9571
9772
  initData: "run input",
@@ -9591,6 +9792,7 @@ This text is who you are for this person. As you learn them, their name, their w
9591
9792
  ...WORKFLOW_RUN_GATE_KINDS
9592
9793
  ];
9593
9794
  WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES = 64 * 1024;
9795
+ WORKFLOW_SIGNAL_NAME_RE = /^[a-zA-Z0-9_.-]{1,64}$/;
9594
9796
  WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS = 168;
9595
9797
  WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES = 256 * 1024;
9596
9798
  SCHEDULE_HEALTH_NOTIFY_CHANNELS = [
@@ -12986,6 +13188,19 @@ function validateApprovalReminder(node, path3) {
12986
13188
  }
12987
13189
  return [];
12988
13190
  }
13191
+ function validateHitlTimeoutHours(node, path3) {
13192
+ const h = node.timeoutHours;
13193
+ if (typeof h !== "number") return [];
13194
+ if (Number.isFinite(h) && h >= APPROVAL_TIMEOUT_HOURS_MIN && h <= APPROVAL_TIMEOUT_HOURS_MAX) return [];
13195
+ return [
13196
+ {
13197
+ code: "timeout-hours-out-of-range",
13198
+ path: `${path3}.timeoutHours`,
13199
+ severity: "error",
13200
+ message: `timeoutHours must be a number of hours in [${APPROVAL_TIMEOUT_HOURS_MIN}, ${APPROVAL_TIMEOUT_HOURS_MAX}] (got ${h})`
13201
+ }
13202
+ ];
13203
+ }
12989
13204
  function firstAskDeadline(node) {
12990
13205
  const head = Array.isArray(node.onTimeout) ? node.onTimeout[0] : node.onTimeout;
12991
13206
  if (typeof head === "object" && head !== null && "escalateTo" in head) {
@@ -13057,6 +13272,9 @@ function retryBackoffs() {
13057
13272
  function sleepUntilUnsupportedMessage(id2) {
13058
13273
  return `the engine does not execute \`sleepUntil\` yet (node "${id2}") \u2014 replace it with a \`sleep\` node with a \`duration\` in ms, e.g. { type: 'sleep', id: '${id2}', duration: ${SLEEP_UNTIL_REPLACEMENT.duration} }`;
13059
13274
  }
13275
+ function signalNameInvalidMessage(id2, name) {
13276
+ return `waitForSignal "${id2}" signal "${name}" must match /${WORKFLOW_SIGNAL_NAME_RE.source}/ (the names a delivery accepts)`;
13277
+ }
13060
13278
  function armSubrunUnsupportedMessage(id2, workflowId) {
13061
13279
  return `the engine does not execute the implicit \`${workflowId}\` arm subrun (node "${id2}") \u2014 a [map, step] container arm is the step itself with the map as its \`input\` since lua-cli 3.32.4; re-run \`lua compile\` with the current CLI (a hand-written artifact: put the map on the arm node's \`input\` and drop the \`workflow\` wrapper)`;
13062
13280
  }
@@ -13649,10 +13867,13 @@ function validateLuaExtensions(g, caps = WORKFLOW_CAPS_DEFAULT, opts = {
13649
13867
  const w = node;
13650
13868
  checkId(w.id, path3);
13651
13869
  if (typeof w.signal !== "string" || w.signal.length === 0) err("invalid-envelope", "waitForSignal.signal is required", `${path3}.signal`, w.id);
13870
+ else if (!WORKFLOW_SIGNAL_NAME_RE.test(w.signal)) err("signal-name-invalid", signalNameInvalidMessage(w.id, w.signal), `${path3}.signal`, w.id);
13871
+ for (const r of validateHitlTimeoutHours(w, path3)) err(r.code, r.message, r.path, w.id);
13652
13872
  return;
13653
13873
  }
13654
13874
  const a = node;
13655
13875
  checkId(a.id, path3);
13876
+ for (const r of validateHitlTimeoutHours(a, path3)) err(r.code, r.message, r.path, a.id);
13656
13877
  if ((a.approver ?? "creator") === "creator" && a.excludeInitiator === true) {
13657
13878
  err("approver-excludes-only-candidate", "approver:'creator' with excludeInitiator:true always excludes the only candidate", path3, a.id);
13658
13879
  }
@@ -16120,7 +16341,7 @@ function collectJobTierSteps(entry, out) {
16120
16341
  return;
16121
16342
  }
16122
16343
  }
16123
- var __defProp6, __name6, WorkflowTemplateError, TEMPLATE_PLACEHOLDER, TEMPLATE_NAMESPACES, MAP_DESCRIPTOR_KEYS, MAP_MEMBER_MALFORMED_CODE, fromInit, fromStep, value, template, fromRequest, rows, fromKnowledge, SideEffectsSchema, JobResourcesSchema, WORKFLOW_MODEL_TEMPLATE_ROOT, WORKFLOW_MODEL_TEMPLATE_RE, PATH_SEGMENT_RE, APPROVER_SPEC_MAX_USERS, ESCALATION_MAX_HOPS, TemplateBindingSchema, ApproverSpecSchema, FourEyesSchema, EscalationHopSchema, TerminalOutcomeSchema, ApprovalOnTimeoutSchema, APPROVER_SPEC_SHAPES, APPROVER_WRITTEN_MAX, USER_ID_SHAPED_RE, BINDING_ROOTS, APPROVAL_REMIND_AFTER_HOURS_MIN, APPROVAL_REMIND_AFTER_HOURS_MAX, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT, WORKFLOW_CAPS_DEFAULT, WORKFLOW_STEP_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_AGENT_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_JOB_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_FOREACH_DEFAULT_CONCURRENCY, WORKFLOW_FOREACH_DEFAULT_MAX_ITEMS, WORKFLOW_LOOP_DEFAULT_MAX_ITERATIONS, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS2, WORKFLOW_SIGNAL_DEFAULT_SOURCES, clone, CONNECTION_ID_HEX_RE, WORKFLOW_JOB_MAX_WORKTREE_ARMS, workspaceOf, mountsWorkspace, isJobTier, jobToolsOf, schemaIsArray, isHitlNode, isSingleStep, singleId, armId, TEMPLATE_STEP_REF, EDITABLE_PATH_RE, PREDICATE_OPS, isPredicateScalar, GRAPH_HASH_PREFIX, WorkflowPlanError, isArmStep, armStepId, armStepKind, joinIdOf, containerIdOf, PATH_PLACEHOLDER, MISSING, stepIdOf, cmp, eq, ne, gt, gte, lt, lte, inSet, notIn, exists, notExists, truthy, falsy, and, or, not, CONTINUED_FAILURE_TAG, CONTINUED_FAILURE_DEFAULT_CODE, CONTINUED_FAILURE_OUTPUT_SCHEMA, CONTINUED_FAILURE_LEAF_PATHS, isHitlNode2, nodeIdOf, GOAL_JUDGE_STEP_ID, NON_LEAF_KINDS, CONDITIONAL_JOIN_ID, branchArmId, canonical, sortKeys, JOIN, entryOfJoin, FORCE_CANCEL_STALE_MS, TERMINAL, WORKFLOW_INLINE_RUN_TAG, RUN_ERROR_ISSUES_MAX, IN_FLIGHT, n, SUSPENDED_FOR_DIMENSIONS, STEP_ERROR_DETAIL_KEYS, STEP_ERROR_DETAIL_MAX_BYTES, DETAIL_MAX_DEPTH, DETAIL_MAX_ITEMS, MAX_HOLIDAYS, MAX_WALK_DAYS, HHMM, YMD, MS_PER_MIN, MS_PER_DAY, MON_FRI, supportedTz, fmtCache, WEEKDAYS, JSON_PATCH_OPS, JSON_PATCH_MAX_OPS, JSON_PATCH_MAX_VALUE_BYTES, JSON_PATCH_MAX_TOTAL_BYTES, SEGMENT_RE, WORKFLOW_SCHEDULE_TYPES, WORKFLOW_SCHEDULE_SHAPE_ISSUE, WORKFLOW_SCHEDULE_SHAPES_HINT, WORKFLOW_SCHEDULE_RUN_AS, isObject, WORKFLOW_ENV_OVERLAY_MAX_KEYS, WORKFLOW_ENV_OVERLAY_MAX_VALUE_BYTES, WORKFLOW_ENV_TEMPLATE_SECRET_KEY_RE, isEnvRef, looksLikeEmbeddedJson, ZERO, isRecord2;
16344
+ var __defProp6, __name6, WorkflowTemplateError, TEMPLATE_PLACEHOLDER, TEMPLATE_NAMESPACES, MAP_DESCRIPTOR_KEYS, MAP_MEMBER_MALFORMED_CODE, fromInit, fromStep, value, template, fromRequest, rows, fromKnowledge, SideEffectsSchema, JobResourcesSchema, WORKFLOW_MODEL_TEMPLATE_ROOT, WORKFLOW_MODEL_TEMPLATE_RE, PATH_SEGMENT_RE, APPROVER_SPEC_MAX_USERS, ESCALATION_MAX_HOPS, TemplateBindingSchema, ApproverSpecSchema, FourEyesSchema, EscalationHopSchema, TerminalOutcomeSchema, ApprovalOnTimeoutSchema, APPROVER_SPEC_SHAPES, APPROVER_WRITTEN_MAX, USER_ID_SHAPED_RE, BINDING_ROOTS, APPROVAL_REMIND_AFTER_HOURS_MIN, APPROVAL_REMIND_AFTER_HOURS_MAX, APPROVAL_TIMEOUT_HOURS_MIN, APPROVAL_TIMEOUT_HOURS_MAX, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT, WORKFLOW_CAPS_DEFAULT, WORKFLOW_STEP_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_AGENT_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_JOB_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_FOREACH_DEFAULT_CONCURRENCY, WORKFLOW_FOREACH_DEFAULT_MAX_ITEMS, WORKFLOW_LOOP_DEFAULT_MAX_ITERATIONS, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS2, WORKFLOW_SIGNAL_DEFAULT_SOURCES, clone, CONNECTION_ID_HEX_RE, WORKFLOW_JOB_MAX_WORKTREE_ARMS, workspaceOf, mountsWorkspace, isJobTier, jobToolsOf, schemaIsArray, isHitlNode, isSingleStep, singleId, armId, TEMPLATE_STEP_REF, EDITABLE_PATH_RE, PREDICATE_OPS, isPredicateScalar, GRAPH_HASH_PREFIX, WorkflowPlanError, isArmStep, armStepId, armStepKind, joinIdOf, containerIdOf, PATH_PLACEHOLDER, MISSING, stepIdOf, cmp, eq, ne, gt, gte, lt, lte, inSet, notIn, exists, notExists, truthy, falsy, and, or, not, CONTINUED_FAILURE_TAG, CONTINUED_FAILURE_DEFAULT_CODE, CONTINUED_FAILURE_OUTPUT_SCHEMA, CONTINUED_FAILURE_LEAF_PATHS, isHitlNode2, nodeIdOf, GOAL_JUDGE_STEP_ID, NON_LEAF_KINDS, CONDITIONAL_JOIN_ID, branchArmId, canonical, sortKeys, JOIN, entryOfJoin, FORCE_CANCEL_STALE_MS, TERMINAL, WORKFLOW_INLINE_RUN_TAG, RUN_ERROR_ISSUES_MAX, IN_FLIGHT, n, SUSPENDED_FOR_DIMENSIONS, STEP_ERROR_DETAIL_KEYS, STEP_ERROR_DETAIL_MAX_BYTES, DETAIL_MAX_DEPTH, DETAIL_MAX_ITEMS, MAX_HOLIDAYS, MAX_WALK_DAYS, HHMM, YMD, MS_PER_MIN, MS_PER_DAY, MON_FRI, supportedTz, fmtCache, WEEKDAYS, JSON_PATCH_OPS, JSON_PATCH_MAX_OPS, JSON_PATCH_MAX_VALUE_BYTES, JSON_PATCH_MAX_TOTAL_BYTES, SEGMENT_RE, WORKFLOW_SCHEDULE_TYPES, WORKFLOW_SCHEDULE_SHAPE_ISSUE, WORKFLOW_SCHEDULE_SHAPES_HINT, WORKFLOW_SCHEDULE_RUN_AS, isObject, WORKFLOW_ENV_OVERLAY_MAX_KEYS, WORKFLOW_ENV_OVERLAY_MAX_VALUE_BYTES, WORKFLOW_ENV_TEMPLATE_SECRET_KEY_RE, isEnvRef, looksLikeEmbeddedJson, ZERO, isRecord2;
16124
16345
  var init_dist2 = __esm({
16125
16346
  "../workflow-graph/dist/index.mjs"() {
16126
16347
  "use strict";
@@ -16329,8 +16550,12 @@ var init_dist2 = __esm({
16329
16550
  __name6(validateApproverBlock, "validateApproverBlock");
16330
16551
  APPROVAL_REMIND_AFTER_HOURS_MIN = 1;
16331
16552
  APPROVAL_REMIND_AFTER_HOURS_MAX = 720;
16553
+ APPROVAL_TIMEOUT_HOURS_MIN = 1;
16554
+ APPROVAL_TIMEOUT_HOURS_MAX = 720;
16332
16555
  __name(validateApprovalReminder, "validateApprovalReminder");
16333
16556
  __name6(validateApprovalReminder, "validateApprovalReminder");
16557
+ __name(validateHitlTimeoutHours, "validateHitlTimeoutHours");
16558
+ __name6(validateHitlTimeoutHours, "validateHitlTimeoutHours");
16334
16559
  __name(firstAskDeadline, "firstAskDeadline");
16335
16560
  __name6(firstAskDeadline, "firstAskDeadline");
16336
16561
  __name(liftRenderedApprover, "liftRenderedApprover");
@@ -16348,6 +16573,8 @@ var init_dist2 = __esm({
16348
16573
  });
16349
16574
  __name(sleepUntilUnsupportedMessage, "sleepUntilUnsupportedMessage");
16350
16575
  __name6(sleepUntilUnsupportedMessage, "sleepUntilUnsupportedMessage");
16576
+ __name(signalNameInvalidMessage, "signalNameInvalidMessage");
16577
+ __name6(signalNameInvalidMessage, "signalNameInvalidMessage");
16351
16578
  __name(armSubrunUnsupportedMessage, "armSubrunUnsupportedMessage");
16352
16579
  __name6(armSubrunUnsupportedMessage, "armSubrunUnsupportedMessage");
16353
16580
  WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT = 168;
@@ -17757,6 +17984,9 @@ var init_workflow = __esm({
17757
17984
  for (const r of validateApprovalReminder(opts, `approval("${id2}")`)) {
17758
17985
  if (r.severity === "error") throw new LuaWorkflowBuildError("remind-after-invalid", `"${id2}": ${r.message}`);
17759
17986
  }
17987
+ for (const r of validateHitlTimeoutHours(opts, `approval("${id2}")`)) {
17988
+ throw new LuaWorkflowBuildError("timeout-hours-out-of-range", `"${id2}": ${r.message}`);
17989
+ }
17760
17990
  if (typeof opts.details === "function") throw new LuaWorkflowBuildError("closure-binding", `approval("${id2}").details must be template(...)`);
17761
17991
  this.recordEnvRefs(opts.details, opts.timeoutHours, opts.approver);
17762
17992
  const node = defined({
@@ -17787,6 +18017,10 @@ var init_workflow = __esm({
17787
18017
  waitForSignal(id2, opts) {
17788
18018
  this.assertId(id2, "waitForSignal()");
17789
18019
  if (!opts || typeof opts.signal !== "string" || opts.signal.length === 0) throw new LuaWorkflowBuildError("invalid-envelope", `waitForSignal("${id2}") needs a signal name`);
18020
+ if (!WORKFLOW_SIGNAL_NAME_RE.test(opts.signal)) throw new LuaWorkflowBuildError("signal-name-invalid", signalNameInvalidMessage(id2, opts.signal));
18021
+ for (const r of validateHitlTimeoutHours(opts, `waitForSignal("${id2}")`)) {
18022
+ throw new LuaWorkflowBuildError("timeout-hours-out-of-range", `"${id2}": ${r.message}`);
18023
+ }
17790
18024
  this.recordEnvRefs(opts.timeoutHours);
17791
18025
  const node = defined({
17792
18026
  type: "waitForSignal",
@@ -17849,7 +18083,7 @@ var init_workflow = __esm({
17849
18083
  if (this.mapCount >= 2 && this.unnamedMaps > 0) {
17850
18084
  this.warnings.push({
17851
18085
  code: "map-id-required",
17852
- message: `${this.unnamedMaps} of ${this.mapCount} map() calls have no explicit id \u2014 positional ids renumber on insert; pass { id } (error at push)`
18086
+ message: `${this.unnamedMaps} of ${this.mapCount} map() calls have no explicit id \u2014 positional ids renumber on insert; pass { id } to every map() to keep step ids stable`
17853
18087
  });
17854
18088
  }
17855
18089
  if (graphHasHitl(graph, this.steps) && this.config.budget?.maxDurationSeconds === void 0) {
@@ -22601,8 +22835,20 @@ var init_agents_api_service = __esm({
22601
22835
  if (!result.data) {
22602
22836
  throw new Error("Agent invocation failed: empty response");
22603
22837
  }
22604
- if (typeof promptOrInput === "string") return result.data.text ?? "";
22605
22838
  const data = result.data;
22839
+ if (data?.type === "error") {
22840
+ if (isPaymentRequiredChatErrorEnvelope(data)) {
22841
+ throw Object.assign(new Error(data.error || "Payment required"), {
22842
+ name: "AgentInvocationError",
22843
+ code: "PAYMENT_REQUIRED",
22844
+ statusCode: 402
22845
+ });
22846
+ }
22847
+ throw Object.assign(new Error(data.error || "Agent invocation failed"), {
22848
+ name: "AgentInvocationError",
22849
+ code: "AGENT_ERROR"
22850
+ });
22851
+ }
22606
22852
  if (data?.type === "preprocessor_blocked") {
22607
22853
  throw Object.assign(new Error(data.text || "Agent invocation blocked by preprocessor"), {
22608
22854
  name: "AgentInvocationError",
@@ -22617,6 +22863,7 @@ var init_agents_api_service = __esm({
22617
22863
  stage: data.governanceBlock?.stage
22618
22864
  });
22619
22865
  }
22866
+ if (typeof promptOrInput === "string") return data.text ?? "";
22620
22867
  return toInvocationOutput(data, input.threadId);
22621
22868
  }
22622
22869
  /**
@@ -22637,7 +22884,8 @@ var init_agents_api_service = __esm({
22637
22884
  code
22638
22885
  });
22639
22886
  }, "refuse");
22640
- if (op === "versions.promote" || op === "persona.activate" || op === "versions.delete" || op === "workflows.create" || op === "workflows.push" || op === "workflows.deploy") {
22887
+ if (op === "versions.promote" || // WD — a watchdog rollback changes what a live agent serves, like a promote.
22888
+ op === "versions.rollback" || op === "persona.activate" || op === "versions.delete" || op === "workflows.create" || op === "workflows.push" || op === "workflows.deploy") {
22641
22889
  refuse("supervision_release_offline_refused", `${op} is refused offline: a local test never changes a live agent`);
22642
22890
  }
22643
22891
  if (op === "versions.preview" || op === "agents.list" || op === "agents.get" || op === "source.get" || // U25 — a subscription is live platform state (it starts a deployed trigger): never from a local test.
@@ -22805,6 +23053,8 @@ var init_agents_api_service = __esm({
22805
23053
  case "evals.cancel":
22806
23054
  case "owner.notify":
22807
23055
  case "connections.assign":
23056
+ // SV (LUA-1080) — the live pointers are not exposed on a developer route: platform only.
23057
+ case "primitives.deployed":
22808
23058
  return refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
22809
23059
  default:
22810
23060
  return refuse("supervision_unknown_op", `Unknown supervision operation ${String(op)}`);
@@ -23472,9 +23722,22 @@ function createWorkflowsRuntime(getApi) {
23472
23722
  },
23473
23723
  async list(opts = {}) {
23474
23724
  const api = await getApi();
23475
- const ref = opts.workflow ? await resolveRef(api, opts.workflow) : {};
23725
+ let workflowId;
23726
+ if (opts.workflow) {
23727
+ const v = opts.workflow.trim();
23728
+ const defs = await api.getWorkflows({
23729
+ includeDynamic: true
23730
+ });
23731
+ const hit = defs.success && defs.data ? defs.data.workflows.find((w) => w.name === v) ?? defs.data.workflows.find((w) => w.id === v) : void 0;
23732
+ if (hit) workflowId = hit.id;
23733
+ else if (isWorkflowIdShaped(v)) workflowId = v;
23734
+ else {
23735
+ unwrap(defs, "Workflows.list");
23736
+ return [];
23737
+ }
23738
+ }
23476
23739
  const page = unwrap(await api.getRuns({
23477
- workflowId: ref.workflowId,
23740
+ workflowId,
23478
23741
  status: opts.status,
23479
23742
  limit: opts.limit,
23480
23743
  correlationKey: opts.correlationKey,
@@ -23512,7 +23775,10 @@ function createWorkflowsRuntime(getApi) {
23512
23775
  ...opts
23513
23776
  }), "Workflows.signalByKey");
23514
23777
  },
23515
- raiseBudget: unavailable("raiseBudget", "R45"),
23778
+ async raiseBudget(runId, patch) {
23779
+ const api = await getApi();
23780
+ return unwrap(await api.raiseBudget(runId, patch), "Workflows.raiseBudget");
23781
+ },
23516
23782
  // Goals are scoped to the bound agent: the IF-21 `agentId` argument is parity with the HTTP twin
23517
23783
  // (`/workflows/:agentId/goals`), never a way to reach another agent's goals (403 otherwise).
23518
23784
  async setGoal(agentId, goal) {
@@ -23555,7 +23821,7 @@ function createWorkflowsRuntime(getApi) {
23555
23821
  }
23556
23822
  };
23557
23823
  }
23558
- var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, assertBoundAgent, pathId, unavailable, WorkflowApi;
23824
+ var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, isWorkflowIdShaped, assertBoundAgent, pathId, WorkflowApi;
23559
23825
  var init_workflow_api_service = __esm({
23560
23826
  "src/api/workflow.api.service.ts"() {
23561
23827
  "use strict";
@@ -23587,15 +23853,13 @@ var init_workflow_api_service = __esm({
23587
23853
  }
23588
23854
  return res.data;
23589
23855
  }, "unwrap");
23856
+ 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");
23590
23857
  assertBoundAgent = /* @__PURE__ */ __name((api, agentId, member) => {
23591
23858
  if (agentId && agentId !== api.agentId) {
23592
23859
  throw new WorkflowApiError("FORBIDDEN", `Workflows.${member}: goals are scoped to the bound agent ${api.agentId}`, 403);
23593
23860
  }
23594
23861
  }, "assertBoundAgent");
23595
23862
  pathId = /* @__PURE__ */ __name((id2) => encodeURIComponent(id2), "pathId");
23596
- unavailable = /* @__PURE__ */ __name((member, route2) => async () => {
23597
- throw new WorkflowApiError("WORKFLOWS_API_UNAVAILABLE", `Workflows.${member} is not available in this runtime yet (${route2} lands with a later wave)`, 501);
23598
- }, "unavailable");
23599
23863
  __name(createWorkflowsRuntime, "createWorkflowsRuntime");
23600
23864
  WorkflowApi = class extends HttpClient {
23601
23865
  static {
@@ -24035,20 +24299,35 @@ var init_device_api_service = __esm({
24035
24299
  return this.httpDelete(`/developer/devices/${this.agentId}/${deviceId}`, {});
24036
24300
  }
24037
24301
  async sendCommand(deviceName, command, payload, timeout) {
24038
- return this.httpPost(`/developer/devices/${this.agentId}/${deviceName}/command`, {
24302
+ return this.httpPost(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/command`, {
24039
24303
  command,
24040
24304
  payload,
24041
24305
  timeout: timeout || 3e4
24042
24306
  }, {});
24043
24307
  }
24044
24308
  async getDeviceStatus(deviceName) {
24045
- return this.httpGet(`/developer/devices/${this.agentId}/${deviceName}/status`, {});
24309
+ return this.httpGet(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/status`, {});
24046
24310
  }
24047
24311
  async enableDevice(deviceName) {
24048
- return this.httpPatch(`/developer/devices/${this.agentId}/${deviceName}/enable`, {}, {});
24312
+ return this.httpPatch(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/enable`, {}, {});
24049
24313
  }
24050
24314
  async disableDevice(deviceName) {
24051
- return this.httpPatch(`/developer/devices/${this.agentId}/${deviceName}/disable`, {}, {});
24315
+ return this.httpPatch(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/disable`, {}, {});
24316
+ }
24317
+ /** Device instances the agent has seen, with live status; self-describing devices only appear here. */
24318
+ async getConnectedDevices() {
24319
+ return this.httpGet(`/developer/devices/${this.agentId}/connected`, {});
24320
+ }
24321
+ /** Fire a trigger as the named device would; the live handler runs. */
24322
+ async fireTrigger(deviceName, triggerName, payload) {
24323
+ return this.httpPost(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/trigger`, {
24324
+ triggerName,
24325
+ payload
24326
+ }, {});
24327
+ }
24328
+ /** Remove a connected device's instance record (not its definition). */
24329
+ async deleteDeviceInstance(deviceName) {
24330
+ return this.httpDelete(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/instance`, {});
24052
24331
  }
24053
24332
  };
24054
24333
  }
@@ -24424,6 +24703,14 @@ function requireExpectActiveId(opts, what) {
24424
24703
  }
24425
24704
  __name(requireExpectActiveId, "requireExpectActiveId");
24426
24705
  __name2(requireExpectActiveId, "requireExpectActiveId");
24706
+ function optionalCommitHash(opts, what) {
24707
+ const commitHash = opts?.commitHash;
24708
+ if (commitHash === void 0) return void 0;
24709
+ if (typeof commitHash === "string" && commitHash.length > 0) return commitHash;
24710
+ throw typedError("supervision_bad_args", `${what} commitHash must be a non-empty string`);
24711
+ }
24712
+ __name(optionalCommitHash, "optionalCommitHash");
24713
+ __name2(optionalCommitHash, "optionalCommitHash");
24427
24714
  function approvalIdsOf(approval) {
24428
24715
  if (approval === void 0 || approval === null) return void 0;
24429
24716
  if (typeof approval !== "object" || Array.isArray(approval)) return {
@@ -24502,6 +24789,20 @@ function buildSupervisionAgentsApi(call2) {
24502
24789
  delete: /* @__PURE__ */ __name2((version) => call2("versions.delete", agentId, {
24503
24790
  version
24504
24791
  }), "delete"),
24792
+ /**
24793
+ * WD — restore a previously-active, OLDER `version` (watchdog grant; last 7 days; only from a workflow step the
24794
+ * grant names). Compare-and-swap: `expectActive` is the active version number now (required, never null).
24795
+ */
24796
+ rollback: /* @__PURE__ */ __name2(async (version, opts) => {
24797
+ const expectActive = requireExpectActive(opts, "versions.rollback");
24798
+ if (expectActive === null) {
24799
+ throw typedError("supervision_expect_active_required", "versions.rollback requires { expectActive } \u2014 the active version number (a rollback needs one)");
24800
+ }
24801
+ return call2("versions.rollback", agentId, {
24802
+ version,
24803
+ expectActive
24804
+ });
24805
+ }, "rollback"),
24505
24806
  // wave 2 U11
24506
24807
  /**
24507
24808
  * U11 (DOC2 §6.1) — open a TEST SESSION on staged `opts.version`: multi-turn `chat`, `fire`, `effects()` and
@@ -24539,11 +24840,18 @@ function buildSupervisionAgentsApi(call2) {
24539
24840
  }
24540
24841
  }), "push"),
24541
24842
  /** Publish workflow `version`. Compare-and-swap: refused unless `expectActive` is the live version id. */
24542
- deploy: /* @__PURE__ */ __name2(async (workflowId, version, opts) => call2("workflows.deploy", agentId, {
24543
- workflowId,
24544
- version,
24545
- expectActive: requireExpectActiveId(opts, "workflows.deploy")
24546
- }), "deploy")
24843
+ deploy: /* @__PURE__ */ __name2(async (workflowId, version, opts) => {
24844
+ const expectActive = requireExpectActiveId(opts, "workflows.deploy");
24845
+ const commitHash = optionalCommitHash(opts, "workflows.deploy");
24846
+ return call2("workflows.deploy", agentId, {
24847
+ workflowId,
24848
+ version,
24849
+ expectActive,
24850
+ ...commitHash !== void 0 ? {
24851
+ commitHash
24852
+ } : {}
24853
+ });
24854
+ }, "deploy")
24547
24855
  }), "workflows"),
24548
24856
  persona: /* @__PURE__ */ __name2((agentId) => ({
24549
24857
  versions: /* @__PURE__ */ __name2(() => call2("persona.versions", agentId), "versions"),
@@ -24564,6 +24872,12 @@ function buildSupervisionAgentsApi(call2) {
24564
24872
  keys: /* @__PURE__ */ __name2(() => call2("env.keys", agentId), "keys")
24565
24873
  }), "env"),
24566
24874
  /**
24875
+ * SV (LUA-1080) — what `agentId` serves RIGHT NOW: its live skills (with tools), the published persona and its
24876
+ * pre/postprocessors, each with the version id an agent version snapshot would pin. Works with no promoted agent
24877
+ * version, so a release can diff live against a staged version. Metadata and hashes only (`observe`).
24878
+ */
24879
+ deployed: /* @__PURE__ */ __name2((agentId) => call2("primitives.deployed", agentId), "deployed"),
24880
+ /**
24567
24881
  * U25 — supervision events of the target (`observe`): each event of a subscribed kind starts
24568
24882
  * one of the CALLER's own triggers (`triggerName`) with a `source: 'supervision'` body.
24569
24883
  */
@@ -25788,20 +26102,20 @@ init_order_instance();
25788
26102
 
25789
26103
  // src/api/threads.offline.ts
25790
26104
  init_dist();
25791
- function unavailable2(member) {
26105
+ function unavailable(member) {
25792
26106
  return Object.assign(new Error(`Threads.${member} only runs on the Lua platform (deployed or sandbox agents), not in lua test / lua dev`), {
25793
26107
  name: "ThreadFollowUpError",
25794
26108
  code: THREAD_FOLLOW_UP_ERRORS.UNAVAILABLE
25795
26109
  });
25796
26110
  }
25797
- __name(unavailable2, "unavailable");
26111
+ __name(unavailable, "unavailable");
25798
26112
  function createOfflineThreadsApi() {
25799
26113
  return {
25800
26114
  open: /* @__PURE__ */ __name(async () => {
25801
- throw unavailable2("open");
26115
+ throw unavailable("open");
25802
26116
  }, "open"),
25803
26117
  followUp: /* @__PURE__ */ __name(async () => {
25804
- throw unavailable2("followUp");
26118
+ throw unavailable("followUp");
25805
26119
  }, "followUp")
25806
26120
  };
25807
26121
  }