lua-cli 3.39.2 → 3.39.4

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.
@@ -135,6 +135,9 @@ function isInteractiveTurn(turn) {
135
135
  function removeNavigateBlock(input) {
136
136
  return input.replace(/::: navigate[\s\S]*?:::/g, "").trim();
137
137
  }
138
+ function removeHiddenBlocks(input) {
139
+ return input.replace(/::: hide\b[\s\S]*?:::/gi, "").replace(/::: hide\b[\s\S]*$/gi, "").trim();
140
+ }
138
141
  function transformChatHistoryContentParts(parts) {
139
142
  const content = [];
140
143
  for (const rawPart of parts ?? []) {
@@ -764,6 +767,7 @@ function utf8Bytes(value3) {
764
767
  }
765
768
  function isPlainFieldKey(key) {
766
769
  if (!LOG_FIELD_KEY_PATTERN.test(key)) return false;
770
+ if (key === LOG_FIELDS_CLAMPED_KEY) return false;
767
771
  return !LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS.some((pattern) => pattern.test(key));
768
772
  }
769
773
  function describeAgentLogFieldsViolation(value3) {
@@ -1989,7 +1993,44 @@ function parseOnboardingFlow(value3) {
1989
1993
  function parsePublishedOnboardingResponse(value3) {
1990
1994
  return getPublishedOnboardingResponseSchema.parse(value3);
1991
1995
  }
1992
- var __defProp2, __name2, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHANNEL_SEND_CHANNELS, 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_RESOLVE_OUTPUT_MAX_BYTES, WORKFLOW_GOAL_JUDGE_SELF, 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, 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, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema;
1996
+ function isForwardableWebRouteRequestHeader(name) {
1997
+ const n2 = name.toLowerCase();
1998
+ return WEB_ROUTE_REQUEST_HEADER_ALLOWLIST.includes(n2) || n2.startsWith("x-lua-");
1999
+ }
2000
+ function isForwardableWebRouteResponseHeader(name) {
2001
+ const n2 = name.toLowerCase();
2002
+ if (n2 === "set-cookie") return false;
2003
+ return WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST.includes(n2) || n2.startsWith("x-lua-");
2004
+ }
2005
+ function isWebRouteBody(value3) {
2006
+ if (!value3 || typeof value3 !== "object") return false;
2007
+ const b = value3;
2008
+ if (b.kind === "json") return "value" in b;
2009
+ if (b.kind === "text" || b.kind === "base64") return typeof b.value === "string";
2010
+ return false;
2011
+ }
2012
+ function isWebRouteInput(value3) {
2013
+ if (!value3 || typeof value3 !== "object") return false;
2014
+ const v = value3;
2015
+ if (v.v !== WEB_ROUTE_PROTOCOL_VERSION) return false;
2016
+ const r = v.request;
2017
+ if (!r || typeof r !== "object") return false;
2018
+ if (!WEB_ROUTE_METHODS.includes(String(r.method))) return false;
2019
+ if (typeof r.path !== "string" || !r.path.startsWith("/")) return false;
2020
+ if (!r.params || typeof r.params !== "object") return false;
2021
+ if (!r.query || typeof r.query !== "object") return false;
2022
+ if (!r.headers || typeof r.headers !== "object") return false;
2023
+ if (r.body !== void 0) {
2024
+ if (r.method === "GET") return false;
2025
+ if (!isWebRouteBody(r.body)) return false;
2026
+ }
2027
+ const a = v.auth;
2028
+ if (!a || typeof a.userId !== "string" || typeof a.orgId !== "string" || typeof a.agentId !== "string") return false;
2029
+ const app = v.app;
2030
+ if (!app || typeof app.id !== "string" || typeof app.name !== "string" || typeof app.origin !== "string") return false;
2031
+ return true;
2032
+ }
2033
+ var __defProp2, __name2, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHANNEL_SEND_CHANNELS, 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_RESOLVE_OUTPUT_MAX_BYTES, WORKFLOW_GOAL_JUDGE_SELF, 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, 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, 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;
1993
2034
  var init_dist = __esm({
1994
2035
  "../shared-types/dist/index.mjs"() {
1995
2036
  "use strict";
@@ -2098,6 +2139,8 @@ var init_dist = __esm({
2098
2139
  __name2(isInteractiveTurn, "isInteractiveTurn");
2099
2140
  __name(removeNavigateBlock, "removeNavigateBlock");
2100
2141
  __name2(removeNavigateBlock, "removeNavigateBlock");
2142
+ __name(removeHiddenBlocks, "removeHiddenBlocks");
2143
+ __name2(removeHiddenBlocks, "removeHiddenBlocks");
2101
2144
  __name(transformChatHistoryContentParts, "transformChatHistoryContentParts");
2102
2145
  __name2(transformChatHistoryContentParts, "transformChatHistoryContentParts");
2103
2146
  RICH_PARTS_MESSAGE_ID_PREFIX = "rich-parts:";
@@ -2689,6 +2732,7 @@ This text is who you are for this person. As you learn them, their name, their w
2689
2732
  "skill",
2690
2733
  "job",
2691
2734
  "webhook",
2735
+ "web-route",
2692
2736
  "trigger",
2693
2737
  "preprocessor",
2694
2738
  "postprocessor",
@@ -4380,6 +4424,39 @@ listed here; never invent a target.`;
4380
4424
  __name2(parseOnboardingFlow, "parseOnboardingFlow");
4381
4425
  __name(parsePublishedOnboardingResponse, "parsePublishedOnboardingResponse");
4382
4426
  __name2(parsePublishedOnboardingResponse, "parsePublishedOnboardingResponse");
4427
+ WEB_ROUTE_PROTOCOL_VERSION = 1;
4428
+ WEB_ROUTE_METHODS = [
4429
+ "GET",
4430
+ "POST",
4431
+ "PUT",
4432
+ "PATCH",
4433
+ "DELETE"
4434
+ ];
4435
+ WEB_ROUTE_REQUEST_HEADER_ALLOWLIST = [
4436
+ "accept",
4437
+ "accept-language",
4438
+ "content-type",
4439
+ "if-none-match",
4440
+ "idempotency-key"
4441
+ ];
4442
+ WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST = [
4443
+ "content-type",
4444
+ "cache-control",
4445
+ "etag",
4446
+ "location",
4447
+ "content-disposition",
4448
+ "content-language"
4449
+ ];
4450
+ __name(isForwardableWebRouteRequestHeader, "isForwardableWebRouteRequestHeader");
4451
+ __name2(isForwardableWebRouteRequestHeader, "isForwardableWebRouteRequestHeader");
4452
+ __name(isForwardableWebRouteResponseHeader, "isForwardableWebRouteResponseHeader");
4453
+ __name2(isForwardableWebRouteResponseHeader, "isForwardableWebRouteResponseHeader");
4454
+ WEB_ROUTE_MAX_REQUEST_BODY_BYTES = 1 * 1024 * 1024;
4455
+ WEB_ROUTE_MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
4456
+ __name(isWebRouteBody, "isWebRouteBody");
4457
+ __name2(isWebRouteBody, "isWebRouteBody");
4458
+ __name(isWebRouteInput, "isWebRouteInput");
4459
+ __name2(isWebRouteInput, "isWebRouteInput");
4383
4460
  }
4384
4461
  });
4385
4462
 
@@ -9852,8 +9929,8 @@ function uidFromFirebaseIdToken(idToken) {
9852
9929
  if (parsed.success) return parsed.data.sub;
9853
9930
  throw new Error(INVALID_FIREBASE_SESSION);
9854
9931
  }
9855
- function parseFirebaseSession(json, now = Date.now()) {
9856
- const customTokenResponse = customTokenResponseSchema.safeParse(json);
9932
+ function parseFirebaseSession(json2, now = Date.now()) {
9933
+ const customTokenResponse = customTokenResponseSchema.safeParse(json2);
9857
9934
  if (customTokenResponse.success) {
9858
9935
  const { idToken: idToken2, refreshToken: refreshToken2, expiresIn: expiresIn2, localId } = customTokenResponse.data;
9859
9936
  return {
@@ -9863,7 +9940,7 @@ function parseFirebaseSession(json, now = Date.now()) {
9863
9940
  uid: localId ?? uidFromFirebaseIdToken(idToken2)
9864
9941
  };
9865
9942
  }
9866
- const refreshResponse = refreshResponseSchema.safeParse(json);
9943
+ const refreshResponse = refreshResponseSchema.safeParse(json2);
9867
9944
  if (!refreshResponse.success) throw new Error(INVALID_FIREBASE_SESSION);
9868
9945
  const { id_token: idToken, refresh_token: refreshToken, expires_in: expiresIn, user_id: uid } = refreshResponse.data;
9869
9946
  return {
@@ -11345,8 +11422,8 @@ function buildSourceArchive(files) {
11345
11422
  map[entryFile] = source;
11346
11423
  }
11347
11424
  if (Object.keys(map).length === 0) return null;
11348
- const json = JSON.stringify(map);
11349
- const gz = zlib.gzipSync(Buffer.from(json, "utf-8"));
11425
+ const json2 = JSON.stringify(map);
11426
+ const gz = zlib.gzipSync(Buffer.from(json2, "utf-8"));
11350
11427
  return gz.toString("base64");
11351
11428
  }
11352
11429
  function getPrimitivesByKind(manifest, kind) {
@@ -16269,8 +16346,8 @@ var init_workflow_api_service = __esm({
16269
16346
  }
16270
16347
  }, "assertBoundAgent");
16271
16348
  pathId = /* @__PURE__ */ __name((id2) => encodeURIComponent(id2), "pathId");
16272
- unavailable = /* @__PURE__ */ __name((member, route) => async () => {
16273
- throw new WorkflowApiError("WORKFLOWS_API_UNAVAILABLE", `Workflows.${member} is not available in this runtime yet (${route} lands with a later wave)`, 501);
16349
+ unavailable = /* @__PURE__ */ __name((member, route2) => async () => {
16350
+ throw new WorkflowApiError("WORKFLOWS_API_UNAVAILABLE", `Workflows.${member} is not available in this runtime yet (${route2} lands with a later wave)`, 501);
16274
16351
  }, "unavailable");
16275
16352
  __name(createWorkflowsRuntime, "createWorkflowsRuntime");
16276
16353
  WorkflowApi = class extends HttpClient {
@@ -17726,6 +17803,91 @@ function defineVoice(config) {
17726
17803
  }
17727
17804
  __name(defineVoice, "defineVoice");
17728
17805
 
17806
+ // src/types/web-app.ts
17807
+ init_dist();
17808
+ var WEB_APP_NAME_PATTERN = /^[a-z][a-z0-9-]*$/;
17809
+ var ROUTE_KEY_PATTERN = new RegExp(`^(${WEB_ROUTE_METHODS.join("|")}) /\\S*$`);
17810
+ function route(def) {
17811
+ if (typeof def.handler !== "function") {
17812
+ throw new Error("route() requires a `handler` function.");
17813
+ }
17814
+ return def;
17815
+ }
17816
+ __name(route, "route");
17817
+ function json(data, status = 200, headers = {}) {
17818
+ const hasBody = data !== void 0 && status !== 204 && status !== 304;
17819
+ return new Response(hasBody ? JSON.stringify(data) : null, {
17820
+ status,
17821
+ headers: hasBody ? {
17822
+ "content-type": "application/json",
17823
+ ...headers
17824
+ } : headers
17825
+ });
17826
+ }
17827
+ __name(json, "json");
17828
+ var LuaWebApp = class {
17829
+ static {
17830
+ __name(this, "LuaWebApp");
17831
+ }
17832
+ config;
17833
+ constructor(config) {
17834
+ if (!config || typeof config !== "object") {
17835
+ throw new Error("defineWebApp requires a configuration object.");
17836
+ }
17837
+ if (typeof config.name !== "string" || !WEB_APP_NAME_PATTERN.test(config.name)) {
17838
+ throw new Error(`defineWebApp: \`name\` must match ${WEB_APP_NAME_PATTERN} (lower-case letters, digits and dashes, starting with a letter); got ${JSON.stringify(config.name)}.`);
17839
+ }
17840
+ if (!config.pages || typeof config.pages.root !== "string" || !config.pages.root.trim()) {
17841
+ throw new Error(`defineWebApp(${config.name}): \`pages.root\` (the Vite project directory) is required.`);
17842
+ }
17843
+ const hasRoutes = !!config.routes && Object.keys(config.routes).length > 0;
17844
+ const hasFetch = typeof config.fetch === "function";
17845
+ if (!hasRoutes && !hasFetch) {
17846
+ throw new Error(`defineWebApp(${config.name}): declare at least one entry in \`routes\` or a \`fetch\` handler.`);
17847
+ }
17848
+ for (const key of Object.keys(config.routes ?? {})) {
17849
+ if (!ROUTE_KEY_PATTERN.test(key)) {
17850
+ throw new Error(`defineWebApp(${config.name}): route key ${JSON.stringify(key)} must look like 'GET /path' (${WEB_ROUTE_METHODS.join(", ")}, one space, a path starting with /).`);
17851
+ }
17852
+ const def = config.routes[key];
17853
+ if (!def || typeof def.handler !== "function") {
17854
+ throw new Error(`defineWebApp(${config.name}): route ${JSON.stringify(key)} has no \`handler\` function.`);
17855
+ }
17856
+ }
17857
+ for (const item of config.pages.nav ?? []) {
17858
+ if (typeof item?.path !== "string" || !item.path.startsWith("/") || typeof item?.label !== "string") {
17859
+ throw new Error(`defineWebApp(${config.name}): every \`pages.nav\` item needs a \`path\` starting with / and a \`label\`.`);
17860
+ }
17861
+ }
17862
+ this.config = config;
17863
+ }
17864
+ getName() {
17865
+ return this.config.name;
17866
+ }
17867
+ getDescription() {
17868
+ return this.config.description;
17869
+ }
17870
+ getPages() {
17871
+ return this.config.pages;
17872
+ }
17873
+ getBranding() {
17874
+ return this.config.branding;
17875
+ }
17876
+ getRoutes() {
17877
+ return this.config.routes ?? {};
17878
+ }
17879
+ getFetch() {
17880
+ return this.config.fetch;
17881
+ }
17882
+ getConfig() {
17883
+ return this.config;
17884
+ }
17885
+ };
17886
+ function defineWebApp(config) {
17887
+ return new LuaWebApp(config);
17888
+ }
17889
+ __name(defineWebApp, "defineWebApp");
17890
+
17729
17891
  // src/api-exports.ts
17730
17892
  init_workflow();
17731
17893
  init_dist();
@@ -18499,6 +18661,7 @@ export {
18499
18661
  LuaTrigger,
18500
18662
  LuaVoice,
18501
18663
  LuaVoiceTool,
18664
+ LuaWebApp,
18502
18665
  LuaWebhook,
18503
18666
  LuaWorkflow,
18504
18667
  LuaWorkflowBuildError,
@@ -18515,6 +18678,7 @@ export {
18515
18678
  User,
18516
18679
  UserDataInstance,
18517
18680
  Voice,
18681
+ WEB_APP_NAME_PATTERN,
18518
18682
  Workflows,
18519
18683
  and2 as and,
18520
18684
  createStep,
@@ -18523,6 +18687,7 @@ export {
18523
18687
  defineDeviceTrigger,
18524
18688
  defineTrigger,
18525
18689
  defineVoice,
18690
+ defineWebApp,
18526
18691
  defineWorkflow,
18527
18692
  env,
18528
18693
  eq2 as eq,
@@ -18536,6 +18701,7 @@ export {
18536
18701
  gte2 as gte,
18537
18702
  inSet2 as inSet,
18538
18703
  init2 as init,
18704
+ json,
18539
18705
  lit2 as lit,
18540
18706
  log,
18541
18707
  lt2 as lt,
@@ -18545,6 +18711,7 @@ export {
18545
18711
  notExists2 as notExists,
18546
18712
  notIn2 as notIn,
18547
18713
  or2 as or,
18714
+ route,
18548
18715
  rows2 as rows,
18549
18716
  state2 as state,
18550
18717
  step2 as step,