lua-cli 3.49.1 → 3.50.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.
- package/dist/api-exports.d.ts +180 -22
- package/dist/api-exports.js +375 -27
- package/dist/api-exports.js.map +1 -1
- package/dist/index.js +486 -66
- package/dist/index.js.map +1 -1
- package/dist/workflow-builder.js +220 -20
- package/dist/workflow-builder.js.map +1 -1
- package/docs/CLI_REFERENCE.md +2 -1
- package/docs/README.md +3 -3
- package/docs/api/Agents.md +51 -9
- package/docs/api/Data.md +51 -0
- package/docs/api/Decisions.md +49 -13
- package/docs/api/LuaDecision.md +2 -2
- package/docs/api/Workflows.md +1 -0
- package/docs/workflows/schedules.md +1 -1
- package/package.json +3 -3
- package/template/package.json +1 -1
package/dist/api-exports.js
CHANGED
|
@@ -943,6 +943,17 @@ function aiGenerateInputFromSimplified(prompt, content) {
|
|
|
943
943
|
]
|
|
944
944
|
};
|
|
945
945
|
}
|
|
946
|
+
function directProviderOfOpenRouterModel(model) {
|
|
947
|
+
return OPENROUTER_DIRECT_VENDORS.find((vendor) => vendor.pattern.test(model))?.provider;
|
|
948
|
+
}
|
|
949
|
+
function openRouterModelIssue(options) {
|
|
950
|
+
const model = typeof options.model === "string" && options.model ? options.model : void 0;
|
|
951
|
+
if (options.provider === "openrouter" && !model) return OPENROUTER_NEEDS_MODEL_MESSAGE;
|
|
952
|
+
if (!model || !model.includes("/")) return null;
|
|
953
|
+
const direct = directProviderOfOpenRouterModel(model);
|
|
954
|
+
if (!direct) return null;
|
|
955
|
+
return `model ${model} runs on provider '${direct}': set provider '${direct}' instead of a vendor/model id`;
|
|
956
|
+
}
|
|
946
957
|
function formatDecisionSandboxPrimitive(name, tool) {
|
|
947
958
|
return tool ? `${name}${DECISION_SANDBOX_TOOL_SEPARATOR}${tool}` : name;
|
|
948
959
|
}
|
|
@@ -2650,6 +2661,31 @@ function scrubProviderMessage(raw, max = PROVIDER_MESSAGE_MAX_CHARS) {
|
|
|
2650
2661
|
function scrubStepErrorMessage(raw) {
|
|
2651
2662
|
return scrubProviderMessage(raw, ERROR_MESSAGE_MAX_CHARS);
|
|
2652
2663
|
}
|
|
2664
|
+
function scrubSecretsDeep(value3, options = {}) {
|
|
2665
|
+
return scrubDeep(value3, 0, /* @__PURE__ */ new WeakSet(), options.text !== false);
|
|
2666
|
+
}
|
|
2667
|
+
function isPlainObject2(v) {
|
|
2668
|
+
if (!v || typeof v !== "object") return false;
|
|
2669
|
+
const proto = Object.getPrototypeOf(v);
|
|
2670
|
+
return proto === Object.prototype || proto === null;
|
|
2671
|
+
}
|
|
2672
|
+
function scrubDeep(value3, depth, seen, text2) {
|
|
2673
|
+
if (typeof value3 === "string") return text2 ? scrubSecretText(value3) : value3;
|
|
2674
|
+
if (!value3 || typeof value3 !== "object") return value3;
|
|
2675
|
+
if (!Array.isArray(value3) && !isPlainObject2(value3)) return value3;
|
|
2676
|
+
if (depth >= SCRUB_DEEP_MAX_DEPTH || seen.has(value3)) return REDACTED_PLACEHOLDER;
|
|
2677
|
+
seen.add(value3);
|
|
2678
|
+
try {
|
|
2679
|
+
if (Array.isArray(value3)) return value3.map((v) => scrubDeep(v, depth + 1, seen, text2));
|
|
2680
|
+
const out = {};
|
|
2681
|
+
for (const [k, v] of Object.entries(value3)) {
|
|
2682
|
+
out[k] = isWorkflowSecretKey(k) && v !== null && v !== void 0 && typeof v !== "boolean" ? REDACTED_PLACEHOLDER : scrubDeep(v, depth + 1, seen, text2);
|
|
2683
|
+
}
|
|
2684
|
+
return out;
|
|
2685
|
+
} finally {
|
|
2686
|
+
seen.delete(value3);
|
|
2687
|
+
}
|
|
2688
|
+
}
|
|
2653
2689
|
function isTestSessionId(value3) {
|
|
2654
2690
|
return typeof value3 === "string" && TEST_SESSION_ID_PATTERN.test(value3);
|
|
2655
2691
|
}
|
|
@@ -2774,6 +2810,68 @@ function supervisionAccessBindingViolation(merged) {
|
|
|
2774
2810
|
}
|
|
2775
2811
|
return null;
|
|
2776
2812
|
}
|
|
2813
|
+
function canonicalSupervisedSecretJson(row) {
|
|
2814
|
+
const sorted = {};
|
|
2815
|
+
for (const k of Object.keys(row).sort()) sorted[k] = row[k];
|
|
2816
|
+
return JSON.stringify(sorted);
|
|
2817
|
+
}
|
|
2818
|
+
function validateSupervisedSecretPut(args) {
|
|
2819
|
+
const bad = /* @__PURE__ */ __name4((message) => ({
|
|
2820
|
+
ok: false,
|
|
2821
|
+
code: SUPERVISED_SECRET_ERRORS.BAD_ARGS,
|
|
2822
|
+
message
|
|
2823
|
+
}), "bad");
|
|
2824
|
+
const collection = args?.collection;
|
|
2825
|
+
if (typeof collection !== "string" || !SUPERVISED_SECRET_NAME_RE.test(collection) || collection.startsWith("__")) {
|
|
2826
|
+
return bad("collection must be an explicit collection name (letters, digits, _ . : -; at most 128)");
|
|
2827
|
+
}
|
|
2828
|
+
const key = args?.key;
|
|
2829
|
+
if (typeof key !== "string" || !SUPERVISED_SECRET_NAME_RE.test(key)) {
|
|
2830
|
+
return bad("key must be an explicit row key (letters, digits, _ . : -; at most 128)");
|
|
2831
|
+
}
|
|
2832
|
+
const value3 = args?.value;
|
|
2833
|
+
if (!value3 || typeof value3 !== "object" || Array.isArray(value3) || Object.getPrototypeOf(value3) !== Object.prototype) {
|
|
2834
|
+
return bad("value must be a plain object of scalar fields");
|
|
2835
|
+
}
|
|
2836
|
+
const fields = Object.keys(value3);
|
|
2837
|
+
const row = {};
|
|
2838
|
+
for (const field of fields) {
|
|
2839
|
+
if (!SUPERVISED_SECRET_FIELD_RE.test(field)) {
|
|
2840
|
+
return bad("value field names must be plain identifiers (no $ prefix, no dots; at most 64 characters)");
|
|
2841
|
+
}
|
|
2842
|
+
const v = value3[field];
|
|
2843
|
+
if (typeof v === "string") {
|
|
2844
|
+
if (v.length > SUPERVISED_SECRET_LIMITS.maxStringLength) {
|
|
2845
|
+
return bad(`value.${field} is longer than ${SUPERVISED_SECRET_LIMITS.maxStringLength} characters`);
|
|
2846
|
+
}
|
|
2847
|
+
} else if (typeof v === "number") {
|
|
2848
|
+
if (!Number.isFinite(v)) return bad(`value.${field} must be a finite number`);
|
|
2849
|
+
} else if (typeof v !== "boolean" && v !== null) {
|
|
2850
|
+
return bad(`value.${field} must be a string, a finite number, a boolean or null (no nesting)`);
|
|
2851
|
+
}
|
|
2852
|
+
row[field] = v;
|
|
2853
|
+
}
|
|
2854
|
+
if (Object.prototype.hasOwnProperty.call(row, SUPERVISED_SECRET_KEY_FIELD) && row[SUPERVISED_SECRET_KEY_FIELD] !== key) {
|
|
2855
|
+
return bad(`value.${SUPERVISED_SECRET_KEY_FIELD}, when present, must equal key`);
|
|
2856
|
+
}
|
|
2857
|
+
row[SUPERVISED_SECRET_KEY_FIELD] = key;
|
|
2858
|
+
if (Object.keys(row).length > SUPERVISED_SECRET_LIMITS.maxFields) {
|
|
2859
|
+
return bad(`value has more than ${SUPERVISED_SECRET_LIMITS.maxFields} fields`);
|
|
2860
|
+
}
|
|
2861
|
+
if (Object.keys(row).length < 2) return bad("value must carry at least one field besides _pk");
|
|
2862
|
+
const bytes = new TextEncoder().encode(canonicalSupervisedSecretJson(row)).byteLength;
|
|
2863
|
+
if (bytes > SUPERVISED_SECRET_LIMITS.maxBytes) {
|
|
2864
|
+
return bad(`value is larger than ${SUPERVISED_SECRET_LIMITS.maxBytes} bytes`);
|
|
2865
|
+
}
|
|
2866
|
+
return {
|
|
2867
|
+
ok: true,
|
|
2868
|
+
input: {
|
|
2869
|
+
collection,
|
|
2870
|
+
key,
|
|
2871
|
+
row
|
|
2872
|
+
}
|
|
2873
|
+
};
|
|
2874
|
+
}
|
|
2777
2875
|
function hasFormatCharacters(text2) {
|
|
2778
2876
|
return FORMAT_CHARS.test(text2);
|
|
2779
2877
|
}
|
|
@@ -4659,7 +4757,7 @@ function describeFieldViolation(key, value3, check) {
|
|
|
4659
4757
|
return void 0;
|
|
4660
4758
|
}
|
|
4661
4759
|
function describeBrowserLogEventViolation(value3) {
|
|
4662
|
-
if (!
|
|
4760
|
+
if (!isPlainObject3(value3)) return "event must be an object";
|
|
4663
4761
|
const event = value3;
|
|
4664
4762
|
const base = describeBaseViolation(event);
|
|
4665
4763
|
if (base) return base;
|
|
@@ -4679,7 +4777,7 @@ function isBrowserLogEvent(value3) {
|
|
|
4679
4777
|
}
|
|
4680
4778
|
function describeBrowserLogContextViolation(value3) {
|
|
4681
4779
|
if (value3 === void 0) return void 0;
|
|
4682
|
-
if (!
|
|
4780
|
+
if (!isPlainObject3(value3)) return "logContext must be an object";
|
|
4683
4781
|
for (const [key, entry] of Object.entries(value3)) {
|
|
4684
4782
|
if (!BROWSER_LOG_CONTEXT_KEYS.includes(key)) return `logContext.${key} is not allowed`;
|
|
4685
4783
|
if (entry === void 0) continue;
|
|
@@ -4704,6 +4802,10 @@ function browserLogContextOfWorkerContext(context) {
|
|
|
4704
4802
|
if (context?.primitiveId) out.primitiveId = context.primitiveId;
|
|
4705
4803
|
if (context?.primitiveName) out.primitiveName = context.primitiveName;
|
|
4706
4804
|
if (context?.channel) out.channel = context.channel;
|
|
4805
|
+
if (context?.environment && AGENT_LOG_ENVIRONMENTS.includes(context.environment)) {
|
|
4806
|
+
out.environment = context.environment;
|
|
4807
|
+
}
|
|
4808
|
+
if (context?.agentVersion) out.agentVersion = context.agentVersion;
|
|
4707
4809
|
return out;
|
|
4708
4810
|
}
|
|
4709
4811
|
function browserLogEventOfWorkerEvent(event, mapping = {}) {
|
|
@@ -7507,7 +7609,13 @@ function maskMcpServerHeaders(server) {
|
|
|
7507
7609
|
headersSet: headerNames.length > 0
|
|
7508
7610
|
};
|
|
7509
7611
|
}
|
|
7510
|
-
var __defProp4, __name4, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, DECISION_PROVIDERS, DECISION_QUESTION_TYPES, DECISION_NAME_PATTERN, DECISION_SANDBOX_SITE_HEADER, DECISION_SANDBOX_PRIMITIVE_HEADER, DECISION_SANDBOX_TOOL_SEPARATOR, DECISION_LIMITS, DECISION_ERROR_CODES, MAX_NAME_CHARS, InstructionsSchema, NameSchema, OddsQuestionSchema, ChoiceQuestionSchema, ScoreQuestionSchema, DecisionQuestionSchema, DecisionOptionsSchema, DecisionQuestionsSchema, DecisionDefinitionSchema, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, MESSAGING_CHANNELS, VOICE_CHANNELS, TURN_CATEGORIES, AGENT_TOOL_CATEGORIES, count, AnthropicSseUsageReader, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, SERVER_TRIGGERED_BROWSER_SOURCES, BROWSER_FALLBACKS, DEFAULT_BROWSER_FALLBACK, PROXY_COUNTRY_CODE, BROWSER_LOG_CONTENT_MODES, DEFAULT_BROWSER_LOG_CONTENT, BROWSER_SCREENSHOT_POLICIES, DEFAULT_BROWSER_SCREENSHOT_POLICY, BROWSER_PROFILE_NAME_PATTERN, BROWSER_LIMIT_KEYS, BROWSER_LIMIT_MAX, BROWSER_EXECUTE_METHOD, BROWSER_GLOBAL_METHODS, BROWSER_EXECUTE_DEFAULT_TIMEOUT_MS, BROWSER_EXECUTE_MAX_TIMEOUT_MS, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, BROWSER_READ_FORMATS, BROWSER_READ_DEFAULT_TIMEOUT_MS, BROWSER_READ_MIN_TIMEOUT_MS, BROWSER_READ_MAX_TIMEOUT_MS, BROWSER_READ_MAX_CONTENT_CHARS, BROWSER_READ_DEFAULT_SELECTOR, BROWSER_READ_MATCH_SEPARATOR, BROWSER_READ_LOGIN_BLOCKER, BROWSER_ERROR_NAME, HTTP_STATUS_FAILURE, LOGIN_PATH_SEGMENTS, LOGIN_HOST_LABELS, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, BROWSER_LOG_EVENT_KINDS, BROWSER_LOG_ENGINES, BROWSER_SESSION_OPEN_REASONS, BROWSER_BLOCK_KINDS, BROWSER_WALL_KINDS, BROWSER_WALL_NEXT_ACTIONS, BROWSER_CONFIRM_DECISIONS, BROWSER_SESSION_CLOSE_REASONS, BROWSER_LOG_CONTEXT_KEYS, BROWSER_LOG_ID_MAX_CHARS, BROWSER_LOG_TEXT_MAX_CHARS, isString, isBoolean, isCount, isPlainObject2, oneOf, isLimits, EVENT_SHAPES, BASE_KEYS, BROWSER_WORKER_SESSION_ID_SEPARATOR, BROWSER_WORKER_BLOCK_REASON_MAX_CHARS, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema;
|
|
7612
|
+
function sharedDataOwnerKey(collectionId) {
|
|
7613
|
+
return `${SHARED_DATA_OWNER_PREFIX}${collectionId}`;
|
|
7614
|
+
}
|
|
7615
|
+
function isSharedDataOwnerKey(agentId2) {
|
|
7616
|
+
return typeof agentId2 === "string" && agentId2.startsWith(SHARED_DATA_OWNER_PREFIX);
|
|
7617
|
+
}
|
|
7618
|
+
var __defProp4, __name4, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, DECISION_PROVIDERS, DECISION_FALLBACK_PROVIDERS, OPENROUTER_DIRECT_VENDORS, OPENROUTER_NEEDS_MODEL_MESSAGE, DECISION_QUESTION_TYPES, DECISION_NAME_PATTERN, DECISION_SANDBOX_SITE_HEADER, DECISION_SANDBOX_PRIMITIVE_HEADER, DECISION_SANDBOX_TOOL_SEPARATOR, DECISION_LIMITS, DECISION_ERROR_CODES, MAX_NAME_CHARS, InstructionsSchema, NameSchema, OddsQuestionSchema, ChoiceQuestionSchema, ScoreQuestionSchema, DecisionQuestionSchema, DecisionOptionsSchema, DecisionQuestionsSchema, DecisionDefinitionSchema, DecisionDefinitionWriteSchema, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, MESSAGING_CHANNELS, VOICE_CHANNELS, TURN_CATEGORIES, AGENT_TOOL_CATEGORIES, count, AnthropicSseUsageReader, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, SCRUB_DEEP_MAX_DEPTH, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, SUPERVISED_SECRET_LIMITS, SUPERVISED_SECRET_NAME_RE, SUPERVISED_SECRET_FIELD_RE, SUPERVISED_SECRET_KEY_FIELD, SUPERVISED_SECRET_ERRORS, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, WORK_ITEMS_KEY, MAX_WORK_ITEMS, LIMITS, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, SERVER_TRIGGERED_BROWSER_SOURCES, BROWSER_FALLBACKS, DEFAULT_BROWSER_FALLBACK, PROXY_COUNTRY_CODE, BROWSER_LOG_CONTENT_MODES, DEFAULT_BROWSER_LOG_CONTENT, BROWSER_SCREENSHOT_POLICIES, DEFAULT_BROWSER_SCREENSHOT_POLICY, BROWSER_PROFILE_NAME_PATTERN, BROWSER_LIMIT_KEYS, BROWSER_LIMIT_MAX, BROWSER_EXECUTE_METHOD, BROWSER_GLOBAL_METHODS, BROWSER_EXECUTE_DEFAULT_TIMEOUT_MS, BROWSER_EXECUTE_MAX_TIMEOUT_MS, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, BROWSER_READ_FORMATS, BROWSER_READ_DEFAULT_TIMEOUT_MS, BROWSER_READ_MIN_TIMEOUT_MS, BROWSER_READ_MAX_TIMEOUT_MS, BROWSER_READ_MAX_CONTENT_CHARS, BROWSER_READ_DEFAULT_SELECTOR, BROWSER_READ_MATCH_SEPARATOR, BROWSER_READ_LOGIN_BLOCKER, BROWSER_ERROR_NAME, HTTP_STATUS_FAILURE, LOGIN_PATH_SEGMENTS, LOGIN_HOST_LABELS, AGENT_LOG_SOURCES, AGENT_LOG_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, BROWSER_LOG_EVENT_KINDS, BROWSER_LOG_ENGINES, BROWSER_SESSION_OPEN_REASONS, BROWSER_BLOCK_KINDS, BROWSER_WALL_KINDS, BROWSER_WALL_NEXT_ACTIONS, BROWSER_CONFIRM_DECISIONS, BROWSER_SESSION_CLOSE_REASONS, BROWSER_LOG_CONTEXT_KEYS, BROWSER_LOG_ID_MAX_CHARS, BROWSER_LOG_TEXT_MAX_CHARS, isString, isBoolean, isCount, isPlainObject3, oneOf, isLimits, EVENT_SHAPES, BASE_KEYS, BROWSER_WORKER_SESSION_ID_SEPARATOR, BROWSER_WORKER_BLOCK_REASON_MAX_CHARS, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA, CUSTOM_MCP_CONNECTION_ID_PREFIX, CUSTOM_MCP_SOURCE, CUSTOM_MCP_TRANSPORT, CUSTOM_MCP_CONNECTION_ID_PATTERN, customMcpConnectionIdSchema, CONNECTION_BACKED_MCP_SOURCES, CUSTOM_MCP_REFERENCE_ID_PATTERN, customMcpReferenceIdSchema, CUSTOM_MCP_AUTH_KINDS, customMcpAuthKindSchema, CUSTOM_MCP_OAUTH_REGISTRATIONS, customMcpOAuthRegistrationSchema, CUSTOM_MCP_HEALTH_STATES, customMcpHealthStateSchema, CUSTOM_MCP_FAILURE_STEPS, customMcpFailureStepSchema, CUSTOM_MCP_CONNECT_STEPS, customMcpConnectStepSchema, customMcpFailureCodeSchema, WORKFLOW_KEY_MAX_LENGTH, CUSTOM_MCP_URL_MAX_LENGTH, CUSTOM_MCP_DISPLAY_NAME_MAX_LENGTH, CUSTOM_MCP_MAX_HEADERS, CUSTOM_MCP_HEADER_NAME_MAX_LENGTH, CUSTOM_MCP_HEADER_VALUE_MAX_LENGTH, CUSTOM_MCP_MAX_TOOLS, CUSTOM_MCP_TOOL_NAME_MAX_LENGTH, CUSTOM_MCP_TOOL_TEXT_MAX_LENGTH, CUSTOM_MCP_MIN_TIMEOUT_MS, CUSTOM_MCP_MAX_TIMEOUT_MS, CUSTOM_MCP_OAUTH_PENDING_TTL_MS, isoDateTime, agentId, nonNegativeInt, customMcpUrlInputSchema, customMcpDisplayNameSchema, customMcpTimeoutSchema, CUSTOM_MCP_RESERVED_HEADER_NAMES, HEADER_NAME, HEADER_VALUE_FORBIDDEN, customMcpHeaderNameSchema, headerValue, customMcpHeadersSchema, customMcpHeadersPatchSchema, customMcpToolNameSchema, customMcpToolSchema, customMcpServerInfoSchema, customMcpToolSelectionSchema, customMcpToolsResponseSchema, customMcpFailureSchema, customMcpHealthSchema, customMcpErrorBodySchema, customMcpConnectionBlockSchema, customMcpConnectionViewSchema, customMcpConnectionResponseSchema, customMcpProbeBodySchema, customMcpOAuthDiscoverySchema, customMcpProbeResponseSchema, createFields, mountAgentField, customMcpCreateAgentBodySchema, customMcpCreateUserBodySchema, customMcpOAuthClientSchema, startFields, customMcpOAuthStartAgentBodySchema, customMcpOAuthStartUserBodySchema, customMcpOAuthStartResponseSchema, nonce, customMcpOAuthSuccessRedirectQuerySchema, CUSTOM_MCP_OAUTH_CALLBACK_ERRORS, customMcpOAuthFailureRedirectQuerySchema, customMcpOAuthFinalizeBodySchema, customMcpCimdDocumentSchema, customMcpPatchBodySchema, customMcpCredentialRequestSchema, customMcpCredentialAuthSchema, customMcpCredentialResponseSchema, CUSTOM_MCP_CREDENTIAL_ERRORS, customMcpCredentialErrorBodySchema, customMcpHealthReportSchema, customMcpProbeRequestSchema, customMcpProbeResultSchema, customMcpOriginUrlSchema, customMcpServerProjectionSchema, customMcpMountUpsertBodySchema, SHARED_DATA_NAME_RE, SHARED_DATA_OWNER_PREFIX, SHARED_DATA_ERRORS;
|
|
7511
7619
|
var init_dist = __esm({
|
|
7512
7620
|
"../shared-types/dist/index.mjs"() {
|
|
7513
7621
|
"use strict";
|
|
@@ -7580,9 +7688,29 @@ var init_dist = __esm({
|
|
|
7580
7688
|
__name(aiGenerateInputFromSimplified, "aiGenerateInputFromSimplified");
|
|
7581
7689
|
__name4(aiGenerateInputFromSimplified, "aiGenerateInputFromSimplified");
|
|
7582
7690
|
DECISION_PROVIDERS = [
|
|
7691
|
+
"jev",
|
|
7692
|
+
"openai",
|
|
7693
|
+
"openrouter"
|
|
7694
|
+
];
|
|
7695
|
+
DECISION_FALLBACK_PROVIDERS = [
|
|
7583
7696
|
"jev",
|
|
7584
7697
|
"openai"
|
|
7585
7698
|
];
|
|
7699
|
+
OPENROUTER_DIRECT_VENDORS = [
|
|
7700
|
+
{
|
|
7701
|
+
pattern: /^~?typesafe\//,
|
|
7702
|
+
provider: "jev"
|
|
7703
|
+
},
|
|
7704
|
+
{
|
|
7705
|
+
pattern: /^openai\//,
|
|
7706
|
+
provider: "openai"
|
|
7707
|
+
}
|
|
7708
|
+
];
|
|
7709
|
+
__name(directProviderOfOpenRouterModel, "directProviderOfOpenRouterModel");
|
|
7710
|
+
__name4(directProviderOfOpenRouterModel, "directProviderOfOpenRouterModel");
|
|
7711
|
+
OPENROUTER_NEEDS_MODEL_MESSAGE = "provider openrouter needs a model id, such as liquid/d1";
|
|
7712
|
+
__name(openRouterModelIssue, "openRouterModelIssue");
|
|
7713
|
+
__name4(openRouterModelIssue, "openRouterModelIssue");
|
|
7586
7714
|
DECISION_QUESTION_TYPES = [
|
|
7587
7715
|
"odds",
|
|
7588
7716
|
"choice",
|
|
@@ -7665,7 +7793,7 @@ var init_dist = __esm({
|
|
|
7665
7793
|
]).optional(),
|
|
7666
7794
|
model: z.string().min(1).optional(),
|
|
7667
7795
|
fallback: z.union([
|
|
7668
|
-
z.enum(
|
|
7796
|
+
z.enum(DECISION_FALLBACK_PROVIDERS),
|
|
7669
7797
|
z.literal("none")
|
|
7670
7798
|
]).optional(),
|
|
7671
7799
|
region: z.literal("eu").optional(),
|
|
@@ -7694,6 +7822,16 @@ var init_dist = __esm({
|
|
|
7694
7822
|
description: z.string().max(DECISION_LIMITS.maxInstructionChars).optional(),
|
|
7695
7823
|
questions: DecisionQuestionsSchema
|
|
7696
7824
|
}).strict();
|
|
7825
|
+
DecisionDefinitionWriteSchema = DecisionDefinitionSchema.superRefine((definition, ctx) => {
|
|
7826
|
+
const issue = openRouterModelIssue(definition);
|
|
7827
|
+
if (issue) ctx.addIssue({
|
|
7828
|
+
code: z.ZodIssueCode.custom,
|
|
7829
|
+
path: [
|
|
7830
|
+
"model"
|
|
7831
|
+
],
|
|
7832
|
+
message: issue
|
|
7833
|
+
});
|
|
7834
|
+
});
|
|
7697
7835
|
INTEGRATION_PASSTHROUGH_READ_METHODS = [
|
|
7698
7836
|
"GET",
|
|
7699
7837
|
"HEAD"
|
|
@@ -7938,7 +8076,14 @@ var init_dist = __esm({
|
|
|
7938
8076
|
* the target (`snapshot.jobs[]`) so the promote activates and schedules it. Mongo-only marker write; EventBridge stays
|
|
7939
8077
|
* on the post-promote reconcile. Release-class: needs `register-job` AND `release` on the grant, from a signed step.
|
|
7940
8078
|
*/
|
|
7941
|
-
"jobs.register": "register-job"
|
|
8079
|
+
"jobs.register": "register-job",
|
|
8080
|
+
// [SW]
|
|
8081
|
+
/**
|
|
8082
|
+
* SW — `Agents.secrets(id).put(collection, key, value)`: write ONE secret row into the TARGET's own Data, in a
|
|
8083
|
+
* collection the grant names in `secretWriteCollections` (deny by default), keyed by `data._pk`. The value never
|
|
8084
|
+
* comes back: the answer is `{ ok, id, fingerprint }`, and the audit row carries the fingerprint only.
|
|
8085
|
+
*/
|
|
8086
|
+
"secrets.put": "act"
|
|
7942
8087
|
};
|
|
7943
8088
|
__name(isSupervisionOp, "isSupervisionOp");
|
|
7944
8089
|
__name4(isSupervisionOp, "isSupervisionOp");
|
|
@@ -8134,6 +8279,12 @@ var init_dist = __esm({
|
|
|
8134
8279
|
gate: "register-job",
|
|
8135
8280
|
targeted: true,
|
|
8136
8281
|
item: "JR"
|
|
8282
|
+
},
|
|
8283
|
+
/** SW — `Agents.secrets(id).put(collection, key, value)`: one secret row in a `secretWriteCollections` collection. */
|
|
8284
|
+
"secrets.put": {
|
|
8285
|
+
gate: "act",
|
|
8286
|
+
targeted: true,
|
|
8287
|
+
item: "SW"
|
|
8137
8288
|
}
|
|
8138
8289
|
};
|
|
8139
8290
|
SUPERVISION_WATCHDOG_OPS = {
|
|
@@ -8821,6 +8972,12 @@ var init_dist = __esm({
|
|
|
8821
8972
|
{
|
|
8822
8973
|
re: /\b(npm_)[A-Za-z0-9]{36}\b/g
|
|
8823
8974
|
},
|
|
8975
|
+
// Linear personal API keys (`lin_api_` + 40) and OAuth access / refresh tokens (`lin_oauth_` + 64 hex,
|
|
8976
|
+
// `lin_refresh_`): the fleet's Engineering Manager hands OAuth tokens to agents in a prompt + tool call, and
|
|
8977
|
+
// both landed verbatim in `vmExecutionLogs` (2026-10-11).
|
|
8978
|
+
{
|
|
8979
|
+
re: /\b(lin_(?:api|oauth|refresh)_)[A-Za-z0-9]{16,}/g
|
|
8980
|
+
},
|
|
8824
8981
|
{
|
|
8825
8982
|
re: /\b(sk-ant-)[A-Za-z0-9_-]{16,}/g
|
|
8826
8983
|
},
|
|
@@ -8839,11 +8996,16 @@ var init_dist = __esm({
|
|
|
8839
8996
|
{
|
|
8840
8997
|
re: /\b(ya29\.)[A-Za-z0-9_-]{20,}/g
|
|
8841
8998
|
},
|
|
8999
|
+
// 2026-10-11: `(?<![A-Za-z0-9_-])`, not `\b` — with `\b` every `eyJ` after a `-` / `_` started an attempt that
|
|
9000
|
+
// ran the first segment to the end of the run and failed on the missing `.`, so `eyJabcdefgh-` × 1 MB took
|
|
9001
|
+
// ~115 s (quadratic). Now a run of segment characters admits at most one attempt.
|
|
8842
9002
|
{
|
|
8843
|
-
re:
|
|
9003
|
+
re: /(?<![A-Za-z0-9_-])(eyJ)[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}\.[A-Za-z0-9_-]{8,}/g
|
|
8844
9004
|
},
|
|
9005
|
+
// 2026-10-11: the body stops at the next `-----BEGIN ` — a lazy `[\s\S]*?` let every unterminated BEGIN scan to the
|
|
9006
|
+
// end of the text (quadratic on a repeated header with no END). A key whose END follows is matched as before.
|
|
8845
9007
|
{
|
|
8846
|
-
re: /(-----BEGIN [A-Z ]*PRIVATE KEY-----)[\s\S]*?-----END [A-Z ]*PRIVATE KEY-----/g
|
|
9008
|
+
re: /(-----BEGIN [A-Z ]*PRIVATE KEY-----)(?:(?!-----BEGIN )[\s\S])*?-----END [A-Z ]*PRIVATE KEY-----/g
|
|
8847
9009
|
},
|
|
8848
9010
|
// `https://x-access-token:<token>@github.com/…` (the git credential shape the pod scrubbed already)
|
|
8849
9011
|
{
|
|
@@ -8851,7 +9013,7 @@ var init_dist = __esm({
|
|
|
8851
9013
|
suffix: true
|
|
8852
9014
|
}
|
|
8853
9015
|
];
|
|
8854
|
-
SECRET_NAME = "(?:authorization|proxy-authorization|x-api-key|x-wf-[a-z-]*key|x-internal-auth|api[_-]?key|apikey|access[_-]?key|secret[_-]?key|private[_-]?key|client[_-]?secret|secret|password|passwd|pwd|passphrase|token|credentials?)";
|
|
9016
|
+
SECRET_NAME = "(?:access[_-]?token|refresh[_-]?token|id[_-]?token|auth[_-]?token|authorization|proxy-authorization|x-api-key|x-wf-[a-z-]*key|x-internal-auth|api[_-]?key|apikey|access[_-]?key|secret[_-]?key|private[_-]?key|client[_-]?secret|secret|password|passwd|pwd|passphrase|token|credentials?)";
|
|
8855
9017
|
SECRET_PAIR_PATTERNS = [
|
|
8856
9018
|
// `Authorization: Bearer x`, `x-api-key: x`, `AWS_SECRET_ACCESS_KEY=x`, `SVC_JOB_KEY=x`, `"apiKey": "x"`,
|
|
8857
9019
|
// `FOO_TOKEN=x`, `secretKey=x`, `password=x`. Groups: the char before the name, the name, the separator
|
|
@@ -8927,6 +9089,13 @@ var init_dist = __esm({
|
|
|
8927
9089
|
__name4(scrubProviderMessage, "scrubProviderMessage");
|
|
8928
9090
|
__name(scrubStepErrorMessage, "scrubStepErrorMessage");
|
|
8929
9091
|
__name4(scrubStepErrorMessage, "scrubStepErrorMessage");
|
|
9092
|
+
SCRUB_DEEP_MAX_DEPTH = 12;
|
|
9093
|
+
__name(scrubSecretsDeep, "scrubSecretsDeep");
|
|
9094
|
+
__name4(scrubSecretsDeep, "scrubSecretsDeep");
|
|
9095
|
+
__name(isPlainObject2, "isPlainObject2");
|
|
9096
|
+
__name4(isPlainObject2, "isPlainObject");
|
|
9097
|
+
__name(scrubDeep, "scrubDeep");
|
|
9098
|
+
__name4(scrubDeep, "scrubDeep");
|
|
8930
9099
|
TEST_SESSION_ID_PATTERN = /^tsn_[0-9a-f-]{36}$/;
|
|
8931
9100
|
__name(isTestSessionId, "isTestSessionId");
|
|
8932
9101
|
__name4(isTestSessionId, "isTestSessionId");
|
|
@@ -8978,6 +9147,27 @@ var init_dist = __esm({
|
|
|
8978
9147
|
__name4(sameSupervisionAccessFields, "sameSupervisionAccessFields");
|
|
8979
9148
|
__name(supervisionAccessBindingViolation, "supervisionAccessBindingViolation");
|
|
8980
9149
|
__name4(supervisionAccessBindingViolation, "supervisionAccessBindingViolation");
|
|
9150
|
+
SUPERVISED_SECRET_LIMITS = {
|
|
9151
|
+
/** Fields in `value` (the `_pk` field included). */
|
|
9152
|
+
maxFields: 32,
|
|
9153
|
+
/** One string field's length. */
|
|
9154
|
+
maxStringLength: 8192,
|
|
9155
|
+
/** The canonical JSON of the whole row. */
|
|
9156
|
+
maxBytes: 16384
|
|
9157
|
+
};
|
|
9158
|
+
SUPERVISED_SECRET_NAME_RE = /^[A-Za-z0-9_.:-]{1,128}$/;
|
|
9159
|
+
SUPERVISED_SECRET_FIELD_RE = /^[A-Za-z_][A-Za-z0-9_]{0,63}$/;
|
|
9160
|
+
SUPERVISED_SECRET_KEY_FIELD = "_pk";
|
|
9161
|
+
SUPERVISED_SECRET_ERRORS = {
|
|
9162
|
+
BAD_ARGS: "supervision_secret_bad_args",
|
|
9163
|
+
NOT_GRANTED: "supervision_secret_write_not_granted",
|
|
9164
|
+
/** A collection named for secret writes is write-only for the supervisor: `data.get` / `data.query` refuse it. */
|
|
9165
|
+
WRITE_ONLY: "supervision_secret_collection_write_only"
|
|
9166
|
+
};
|
|
9167
|
+
__name(canonicalSupervisedSecretJson, "canonicalSupervisedSecretJson");
|
|
9168
|
+
__name4(canonicalSupervisedSecretJson, "canonicalSupervisedSecretJson");
|
|
9169
|
+
__name(validateSupervisedSecretPut, "validateSupervisedSecretPut");
|
|
9170
|
+
__name4(validateSupervisedSecretPut, "validateSupervisedSecretPut");
|
|
8981
9171
|
CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY = "connectionAssignment";
|
|
8982
9172
|
CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS = 1200;
|
|
8983
9173
|
CONNECTION_HANDOVER_LIMITS = {
|
|
@@ -9867,7 +10057,7 @@ var init_dist = __esm({
|
|
|
9867
10057
|
},
|
|
9868
10058
|
{
|
|
9869
10059
|
name: "find",
|
|
9870
|
-
description: "Act by semantic locator. Args: by(role|text|label|placeholder|alt|title|testid), query, action(click|fill|
|
|
10060
|
+
description: "Act by semantic locator. Args: by(role|text|label|placeholder|alt|title|testid), query, action(click|fill|hover|check|text), value?, name?, exact?."
|
|
9871
10061
|
},
|
|
9872
10062
|
// AI fallbacks
|
|
9873
10063
|
{
|
|
@@ -9881,7 +10071,7 @@ var init_dist = __esm({
|
|
|
9881
10071
|
// wait
|
|
9882
10072
|
{
|
|
9883
10073
|
name: "wait",
|
|
9884
|
-
description: "Wait for a condition. Provide one of: selector(
|
|
10074
|
+
description: "Wait for a condition. Provide one of: selector (waits until it is visible), ms, text, url, load, fn."
|
|
9885
10075
|
},
|
|
9886
10076
|
// tabs / frames
|
|
9887
10077
|
{
|
|
@@ -9916,7 +10106,7 @@ var init_dist = __esm({
|
|
|
9916
10106
|
},
|
|
9917
10107
|
{
|
|
9918
10108
|
name: "set",
|
|
9919
|
-
description: "Configure the browser. Args: setting(viewport|device|geo|headers|credentials|media), args[]."
|
|
10109
|
+
description: "Configure the browser. Args: setting(viewport|device|geo|headers|credentials|media|offline), args[]."
|
|
9920
10110
|
},
|
|
9921
10111
|
// files / clipboard
|
|
9922
10112
|
{
|
|
@@ -9960,7 +10150,7 @@ var init_dist = __esm({
|
|
|
9960
10150
|
},
|
|
9961
10151
|
{
|
|
9962
10152
|
name: "keyboard",
|
|
9963
|
-
description: "Low-level keyboard at focus. Args: action(type|inserttext
|
|
10153
|
+
description: "Low-level keyboard at focus. Args: action(type|inserttext), text. Use press for single keys and chords."
|
|
9964
10154
|
},
|
|
9965
10155
|
{
|
|
9966
10156
|
name: "state",
|
|
@@ -10249,7 +10439,11 @@ var init_dist = __esm({
|
|
|
10249
10439
|
"max-steps",
|
|
10250
10440
|
"cost-cap",
|
|
10251
10441
|
"error",
|
|
10252
|
-
"reaped"
|
|
10442
|
+
"reaped",
|
|
10443
|
+
"cancelled",
|
|
10444
|
+
"confirmation",
|
|
10445
|
+
"blocked",
|
|
10446
|
+
"stopped"
|
|
10253
10447
|
];
|
|
10254
10448
|
BROWSER_LOG_CONTEXT_KEYS = [
|
|
10255
10449
|
"runId",
|
|
@@ -10266,9 +10460,9 @@ var init_dist = __esm({
|
|
|
10266
10460
|
isString = /* @__PURE__ */ __name4((value3) => typeof value3 === "string", "isString");
|
|
10267
10461
|
isBoolean = /* @__PURE__ */ __name4((value3) => typeof value3 === "boolean", "isBoolean");
|
|
10268
10462
|
isCount = /* @__PURE__ */ __name4((value3) => typeof value3 === "number" && Number.isFinite(value3) && value3 >= 0, "isCount");
|
|
10269
|
-
|
|
10463
|
+
isPlainObject3 = /* @__PURE__ */ __name4((value3) => typeof value3 === "object" && value3 !== null && !Array.isArray(value3), "isPlainObject");
|
|
10270
10464
|
oneOf = /* @__PURE__ */ __name4((values) => (value3) => typeof value3 === "string" && values.includes(value3), "oneOf");
|
|
10271
|
-
isLimits = /* @__PURE__ */ __name4((value3) =>
|
|
10465
|
+
isLimits = /* @__PURE__ */ __name4((value3) => isPlainObject3(value3) && Object.values(value3).every((entry) => isCount(entry)), "isLimits");
|
|
10272
10466
|
EVENT_SHAPES = {
|
|
10273
10467
|
"session.opened": {
|
|
10274
10468
|
required: {
|
|
@@ -10277,7 +10471,8 @@ var init_dist = __esm({
|
|
|
10277
10471
|
optional: {
|
|
10278
10472
|
limits: isLimits,
|
|
10279
10473
|
region: isString,
|
|
10280
|
-
liveUrl: isString
|
|
10474
|
+
liveUrl: isString,
|
|
10475
|
+
browser: isString
|
|
10281
10476
|
}
|
|
10282
10477
|
},
|
|
10283
10478
|
command: {
|
|
@@ -10287,7 +10482,7 @@ var init_dist = __esm({
|
|
|
10287
10482
|
ok: isBoolean
|
|
10288
10483
|
},
|
|
10289
10484
|
optional: {
|
|
10290
|
-
args:
|
|
10485
|
+
args: isPlainObject3,
|
|
10291
10486
|
urlBefore: isString,
|
|
10292
10487
|
urlAfter: isString,
|
|
10293
10488
|
resultBytes: isCount,
|
|
@@ -13189,6 +13384,66 @@ listed here; never invent a target.`;
|
|
|
13189
13384
|
}).strict();
|
|
13190
13385
|
__name(maskMcpServerHeaders, "maskMcpServerHeaders");
|
|
13191
13386
|
__name4(maskMcpServerHeaders, "maskMcpServerHeaders");
|
|
13387
|
+
SHARED_DATA_NAME_RE = /^[A-Za-z0-9_.-]{1,128}$/;
|
|
13388
|
+
SHARED_DATA_OWNER_PREFIX = "shared:";
|
|
13389
|
+
__name(sharedDataOwnerKey, "sharedDataOwnerKey");
|
|
13390
|
+
__name4(sharedDataOwnerKey, "sharedDataOwnerKey");
|
|
13391
|
+
__name(isSharedDataOwnerKey, "isSharedDataOwnerKey");
|
|
13392
|
+
__name4(isSharedDataOwnerKey, "isSharedDataOwnerKey");
|
|
13393
|
+
SHARED_DATA_ERRORS = {
|
|
13394
|
+
/** Not in the ACL for this access, the collection does not exist, or it belongs to another org: one answer. */
|
|
13395
|
+
FORBIDDEN: "shared_data_forbidden",
|
|
13396
|
+
/** A test session may read a shared collection but never write it (no shadow namespace for shared rows). */
|
|
13397
|
+
TEST_SESSION_WRITE_REFUSED: "shared_data_test_session_write_refused",
|
|
13398
|
+
/** `lua test` / offline runs have no server-side ACL to consult. */
|
|
13399
|
+
UNAVAILABLE_OFFLINE: "shared_data_unavailable_offline",
|
|
13400
|
+
/** A private Data route was called with a shared-collection owner key. */
|
|
13401
|
+
RESERVED_OWNER_KEY: "shared_data_reserved_owner_key",
|
|
13402
|
+
INVALID_NAME: "shared_data_invalid_name"
|
|
13403
|
+
};
|
|
13404
|
+
}
|
|
13405
|
+
});
|
|
13406
|
+
|
|
13407
|
+
// src/api/shared-data.offline.ts
|
|
13408
|
+
function assertSharedName(name) {
|
|
13409
|
+
if (typeof name !== "string" || !SHARED_DATA_NAME_RE.test(name)) {
|
|
13410
|
+
throw new SharedDataError(SHARED_DATA_ERRORS.INVALID_NAME, "Data.shared(name): name must be 1-128 of [A-Za-z0-9_.-]");
|
|
13411
|
+
}
|
|
13412
|
+
}
|
|
13413
|
+
function offlineSharedData(name) {
|
|
13414
|
+
assertSharedName(name);
|
|
13415
|
+
const refuse = /* @__PURE__ */ __name(async () => {
|
|
13416
|
+
throw new SharedDataError(SHARED_DATA_ERRORS.UNAVAILABLE_OFFLINE, `Data.shared('${name}') is only available to a deployed agent (the org ACL is checked on the platform); it is not available in local test runs`);
|
|
13417
|
+
}, "refuse");
|
|
13418
|
+
return {
|
|
13419
|
+
collections: refuse,
|
|
13420
|
+
create: refuse,
|
|
13421
|
+
get: refuse,
|
|
13422
|
+
getEntry: refuse,
|
|
13423
|
+
update: refuse,
|
|
13424
|
+
patch: refuse,
|
|
13425
|
+
increment: refuse,
|
|
13426
|
+
search: refuse,
|
|
13427
|
+
delete: refuse
|
|
13428
|
+
};
|
|
13429
|
+
}
|
|
13430
|
+
var SharedDataError;
|
|
13431
|
+
var init_shared_data_offline = __esm({
|
|
13432
|
+
"src/api/shared-data.offline.ts"() {
|
|
13433
|
+
"use strict";
|
|
13434
|
+
init_dist();
|
|
13435
|
+
SharedDataError = class extends Error {
|
|
13436
|
+
static {
|
|
13437
|
+
__name(this, "SharedDataError");
|
|
13438
|
+
}
|
|
13439
|
+
code;
|
|
13440
|
+
name = "SharedDataError";
|
|
13441
|
+
constructor(code, message) {
|
|
13442
|
+
super(message), this.code = code;
|
|
13443
|
+
}
|
|
13444
|
+
};
|
|
13445
|
+
__name(assertSharedName, "assertSharedName");
|
|
13446
|
+
__name(offlineSharedData, "offlineSharedData");
|
|
13192
13447
|
}
|
|
13193
13448
|
});
|
|
13194
13449
|
|
|
@@ -13646,6 +13901,9 @@ function apiErrorDetail(error) {
|
|
|
13646
13901
|
keyOwner: error?.keyOwner
|
|
13647
13902
|
};
|
|
13648
13903
|
}
|
|
13904
|
+
function isLuaErrorBody(body) {
|
|
13905
|
+
return typeof body.message === "string" || typeof body.statusCode === "number" || typeof body.code === "string";
|
|
13906
|
+
}
|
|
13649
13907
|
function isAccessDeniedError(error) {
|
|
13650
13908
|
if (CliError.isCliError(error)) return error.statusCode === 403;
|
|
13651
13909
|
return error instanceof Error && error.message.startsWith("Access denied (403)");
|
|
@@ -13800,7 +14058,7 @@ function classifyCliError(error) {
|
|
|
13800
14058
|
message
|
|
13801
14059
|
};
|
|
13802
14060
|
}
|
|
13803
|
-
var CLI_EXIT, CliError, NETWORK_ERRNO, NETWORK_MESSAGE, UNAVAILABLE_HINT, VENDOR_RETRY_SOON_SECONDS, VENDOR_LABELS, PROVIDER_REJECTED_SERVER_CODE, PROVIDER_REJECTED_HTTP_STATUS, PROVIDER_REJECTION_REASONS, PROVIDER_REJECTED_NO_RETRY, PROVIDER_REJECTED_LUA_SIDE, MODEL_SETTINGS_URL, DECISION_STATUS;
|
|
14061
|
+
var CLI_EXIT, CliError, EDGE_BLOCKED_CODE, NETWORK_ERRNO, NETWORK_MESSAGE, UNAVAILABLE_HINT, VENDOR_RETRY_SOON_SECONDS, VENDOR_LABELS, PROVIDER_REJECTED_SERVER_CODE, PROVIDER_REJECTED_HTTP_STATUS, PROVIDER_REJECTION_REASONS, PROVIDER_REJECTED_NO_RETRY, PROVIDER_REJECTED_LUA_SIDE, MODEL_SETTINGS_URL, DECISION_STATUS;
|
|
13804
14062
|
var init_cli_error = __esm({
|
|
13805
14063
|
"src/errors/cli.error.ts"() {
|
|
13806
14064
|
"use strict";
|
|
@@ -13913,6 +14171,8 @@ var init_cli_error = __esm({
|
|
|
13913
14171
|
return error instanceof _CliError || typeof error === "object" && error !== null && error.isCliError === true;
|
|
13914
14172
|
}
|
|
13915
14173
|
};
|
|
14174
|
+
EDGE_BLOCKED_CODE = "EDGE_BLOCKED";
|
|
14175
|
+
__name(isLuaErrorBody, "isLuaErrorBody");
|
|
13916
14176
|
__name(isAccessDeniedError, "isAccessDeniedError");
|
|
13917
14177
|
NETWORK_ERRNO = /* @__PURE__ */ new Set([
|
|
13918
14178
|
"ECONNREFUSED",
|
|
@@ -14620,6 +14880,14 @@ async function classifyErrorResponse(response) {
|
|
|
14620
14880
|
}
|
|
14621
14881
|
throw new AuthenticationError(`Authentication failed: ${serverMessage}`, "unknown", serverMessage);
|
|
14622
14882
|
}
|
|
14883
|
+
if (response.status === 403 && !isLuaErrorBody(errorData) && isHtmlResponse(response)) {
|
|
14884
|
+
throw new CliError("forbidden", "The request was blocked before it reached Lua (HTTP 403 from the network firewall), not by your credentials.", {
|
|
14885
|
+
exitCode: CLI_EXIT.FORBIDDEN,
|
|
14886
|
+
statusCode: 403,
|
|
14887
|
+
serverCode: EDGE_BLOCKED_CODE,
|
|
14888
|
+
hint: "Something in the request looked like an attack to the firewall, for example a URL that contains a system path. Change the request and try again."
|
|
14889
|
+
});
|
|
14890
|
+
}
|
|
14623
14891
|
if (response.status === 403) {
|
|
14624
14892
|
const detail = errorData.message || "You do not have permission to access this resource.";
|
|
14625
14893
|
const serverCode = serverCodeOf(errorData.code, errorData.error);
|
|
@@ -14712,6 +14980,9 @@ async function* parseSseStream(body, signal) {
|
|
|
14712
14980
|
}
|
|
14713
14981
|
}
|
|
14714
14982
|
}
|
|
14983
|
+
function isHtmlResponse(response) {
|
|
14984
|
+
return (response.headers.get("content-type") ?? "").toLowerCase().includes("text/html");
|
|
14985
|
+
}
|
|
14715
14986
|
function parseRetryAfter(raw) {
|
|
14716
14987
|
if (!raw) return void 0;
|
|
14717
14988
|
const seconds = Number.parseInt(raw, 10);
|
|
@@ -15129,6 +15400,7 @@ var init_http_client = __esm({
|
|
|
15129
15400
|
__name(classifyErrorResponse, "classifyErrorResponse");
|
|
15130
15401
|
__name(serverCodeOf, "serverCodeOf");
|
|
15131
15402
|
__name(parseSseStream, "parseSseStream");
|
|
15403
|
+
__name(isHtmlResponse, "isHtmlResponse");
|
|
15132
15404
|
__name(parseRetryAfter, "parseRetryAfter");
|
|
15133
15405
|
__name(isCoreDrainApiError, "isCoreDrainApiError");
|
|
15134
15406
|
__name(coreDrainApiRetryDelayMs, "coreDrainApiRetryDelayMs");
|
|
@@ -17633,7 +17905,7 @@ function resolvePlacements(calls) {
|
|
|
17633
17905
|
function isConditionalJoinId(stepId) {
|
|
17634
17906
|
return CONDITIONAL_JOIN_ID.test(stepId);
|
|
17635
17907
|
}
|
|
17636
|
-
function
|
|
17908
|
+
function isPlainObject4(v) {
|
|
17637
17909
|
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
17638
17910
|
}
|
|
17639
17911
|
function leafValue(row) {
|
|
@@ -17654,7 +17926,7 @@ function deriveRunOutput(steps) {
|
|
|
17654
17926
|
if (leaves.length === 1) {
|
|
17655
17927
|
const leaf = leaves[0];
|
|
17656
17928
|
const value22 = leafValue(leaf);
|
|
17657
|
-
if (isConditionalJoinId(leaf.stepId) &&
|
|
17929
|
+
if (isConditionalJoinId(leaf.stepId) && isPlainObject4(value22)) {
|
|
17658
17930
|
const keys = Object.keys(value22);
|
|
17659
17931
|
if (keys.length === 1) return {
|
|
17660
17932
|
output: value22[keys[0]],
|
|
@@ -19644,8 +19916,8 @@ var init_dist2 = __esm({
|
|
|
19644
19916
|
CONDITIONAL_JOIN_ID = /^conditional@\d+\.join$/;
|
|
19645
19917
|
__name(isConditionalJoinId, "isConditionalJoinId");
|
|
19646
19918
|
__name8(isConditionalJoinId, "isConditionalJoinId");
|
|
19647
|
-
__name(
|
|
19648
|
-
__name8(
|
|
19919
|
+
__name(isPlainObject4, "isPlainObject");
|
|
19920
|
+
__name8(isPlainObject4, "isPlainObject");
|
|
19649
19921
|
__name(leafValue, "leafValue");
|
|
19650
19922
|
__name8(leafValue, "leafValue");
|
|
19651
19923
|
__name(runOutputLeaves, "runOutputLeaves");
|
|
@@ -22661,6 +22933,7 @@ var init_cli = __esm({
|
|
|
22661
22933
|
init_analytics();
|
|
22662
22934
|
init_hints();
|
|
22663
22935
|
init_write_info();
|
|
22936
|
+
init_write_info();
|
|
22664
22937
|
}
|
|
22665
22938
|
});
|
|
22666
22939
|
|
|
@@ -24683,6 +24956,7 @@ var init_custom_data_api_service = __esm({
|
|
|
24683
24956
|
init_http_client();
|
|
24684
24957
|
init_custom_data();
|
|
24685
24958
|
init_data_entry_instance();
|
|
24959
|
+
init_shared_data_offline();
|
|
24686
24960
|
CustomDataApi = class extends HttpClient {
|
|
24687
24961
|
static {
|
|
24688
24962
|
__name(this, "CustomDataApi");
|
|
@@ -24883,6 +25157,10 @@ var init_custom_data_api_service = __esm({
|
|
|
24883
25157
|
}
|
|
24884
25158
|
throw new Error(response.error?.message || "Failed to delete custom data entry");
|
|
24885
25159
|
}
|
|
25160
|
+
/** Org-shared Data. Local runs have no org ACL to consult, so every call of the handle rejects (offline). */
|
|
25161
|
+
shared(name) {
|
|
25162
|
+
return offlineSharedData(name);
|
|
25163
|
+
}
|
|
24886
25164
|
};
|
|
24887
25165
|
}
|
|
24888
25166
|
});
|
|
@@ -25778,7 +26056,7 @@ var init_agents_api_service = __esm({
|
|
|
25778
26056
|
if (op === "lease.acquire" || op === "lease.release") {
|
|
25779
26057
|
refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
|
|
25780
26058
|
}
|
|
25781
|
-
if (op === "lifecycle.archive" || op === "lifecycle.delete" || op === "config.set" || op === "secrets.attach") {
|
|
26059
|
+
if (op === "lifecycle.archive" || op === "lifecycle.delete" || op === "config.set" || op === "secrets.attach" || op === "secrets.put") {
|
|
25782
26060
|
refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
|
|
25783
26061
|
}
|
|
25784
26062
|
if (op === "agents.directory" || op === "access.request" || op === "access.requests" || op === "access.cancel") {
|
|
@@ -25830,7 +26108,9 @@ var init_agents_api_service = __esm({
|
|
|
25830
26108
|
return runSummary(await get(`/workflows/${id2}/runs/${encodeURIComponent(String(args.runId ?? ""))}`));
|
|
25831
26109
|
case "versions.list":
|
|
25832
26110
|
return get(`/developer/agents/${id2}/versions${q({
|
|
25833
|
-
limit: args.limit
|
|
26111
|
+
limit: args.limit,
|
|
26112
|
+
status: Array.isArray(args.status) ? args.status.join(",") : args.status,
|
|
26113
|
+
offset: args.offset
|
|
25834
26114
|
})}`);
|
|
25835
26115
|
case "versions.get":
|
|
25836
26116
|
return get(`/developer/agents/${id2}/versions/${encodeURIComponent(String(args.version))}`);
|
|
@@ -26695,10 +26975,32 @@ function createWorkflowsRuntime(getApi) {
|
|
|
26695
26975
|
assertBoundAgent(api, agentId2, "goals.close");
|
|
26696
26976
|
return unwrap(await api.closeGoal(goalId, opts), "Workflows.goals.close");
|
|
26697
26977
|
}
|
|
26978
|
+
},
|
|
26979
|
+
// Lua Apps — off the platform (`lua apps dev`, `lua test webapp`) a route runs as you, so the viewer IS the
|
|
26980
|
+
// CLI's own credential; on the platform the sandbox global routes these through the gateway-sealed viewer.
|
|
26981
|
+
viewer: {
|
|
26982
|
+
async decideApproval(runId, approvalId, decision) {
|
|
26983
|
+
const api = viewerApi(await getApi(), decision.agentId);
|
|
26984
|
+
return unwrap(await api.resolveApproval(runId, approvalId, {
|
|
26985
|
+
decision: decision.decision,
|
|
26986
|
+
...decision.note !== void 0 ? {
|
|
26987
|
+
note: decision.note
|
|
26988
|
+
} : {},
|
|
26989
|
+
...decision.expectedFingerprint !== void 0 ? {
|
|
26990
|
+
expectedFingerprint: decision.expectedFingerprint
|
|
26991
|
+
} : {}
|
|
26992
|
+
}), "Workflows.viewer.decideApproval");
|
|
26993
|
+
},
|
|
26994
|
+
async resume(runId, stepId, resumeData, opts = {}) {
|
|
26995
|
+
const api = viewerApi(await getApi(), opts.agentId);
|
|
26996
|
+
return unwrap(await api.resumeRun(runId, stepId, {
|
|
26997
|
+
resumeData
|
|
26998
|
+
}), "Workflows.viewer.resume");
|
|
26999
|
+
}
|
|
26698
27000
|
}
|
|
26699
27001
|
};
|
|
26700
27002
|
}
|
|
26701
|
-
var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, isWorkflowIdShaped, assertBoundAgent, pathId, WorkflowApi;
|
|
27003
|
+
var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, isWorkflowIdShaped, viewerApi, assertBoundAgent, pathId, WorkflowApi;
|
|
26702
27004
|
var init_workflow_api_service = __esm({
|
|
26703
27005
|
"src/api/workflow.api.service.ts"() {
|
|
26704
27006
|
"use strict";
|
|
@@ -26731,6 +27033,7 @@ var init_workflow_api_service = __esm({
|
|
|
26731
27033
|
return res.data;
|
|
26732
27034
|
}, "unwrap");
|
|
26733
27035
|
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");
|
|
27036
|
+
viewerApi = /* @__PURE__ */ __name((api, agentId2) => agentId2 && agentId2 !== api.agentId ? api.forAgent(agentId2) : api, "viewerApi");
|
|
26734
27037
|
assertBoundAgent = /* @__PURE__ */ __name((api, agentId2, member) => {
|
|
26735
27038
|
if (agentId2 && agentId2 !== api.agentId) {
|
|
26736
27039
|
throw new WorkflowApiError("FORBIDDEN", `Workflows.${member}: goals are scoped to the bound agent ${api.agentId}`, 403);
|
|
@@ -26738,7 +27041,7 @@ var init_workflow_api_service = __esm({
|
|
|
26738
27041
|
}, "assertBoundAgent");
|
|
26739
27042
|
pathId = /* @__PURE__ */ __name((id2) => encodeURIComponent(id2), "pathId");
|
|
26740
27043
|
__name(createWorkflowsRuntime, "createWorkflowsRuntime");
|
|
26741
|
-
WorkflowApi = class extends HttpClient {
|
|
27044
|
+
WorkflowApi = class _WorkflowApi extends HttpClient {
|
|
26742
27045
|
static {
|
|
26743
27046
|
__name(this, "WorkflowApi");
|
|
26744
27047
|
}
|
|
@@ -26749,6 +27052,10 @@ var init_workflow_api_service = __esm({
|
|
|
26749
27052
|
this.credential = credential;
|
|
26750
27053
|
this.agentId = agentId2;
|
|
26751
27054
|
}
|
|
27055
|
+
/** The same client and credential, bound to another agent's workflow tree (`Workflows.viewer` with `agentId`). */
|
|
27056
|
+
forAgent(agentId2) {
|
|
27057
|
+
return new _WorkflowApi(this.baseUrl, this.credential, agentId2);
|
|
27058
|
+
}
|
|
26752
27059
|
/** PRO-1434 (main sync): auth rides the renewable request credential — resolve a current bearer per call. */
|
|
26753
27060
|
async auth() {
|
|
26754
27061
|
return {
|
|
@@ -28000,7 +28307,20 @@ function buildSupervisionAgentsApi(call2) {
|
|
|
28000
28307
|
secrets: /* @__PURE__ */ __name2((agentId2) => ({
|
|
28001
28308
|
attach: /* @__PURE__ */ __name2((requestIds) => call2("secrets.attach", agentId2, {
|
|
28002
28309
|
requestIds: copyList(requestIds)
|
|
28003
|
-
}), "attach")
|
|
28310
|
+
}), "attach"),
|
|
28311
|
+
/**
|
|
28312
|
+
* SW — write ONE secret row into `agentId`'s own Data: the row of `collection` whose `_pk` is `key`, replaced
|
|
28313
|
+
* whole by `value` (flat: string / number / boolean / null fields), created when absent. Needs `act` and the
|
|
28314
|
+
* collection in the grant's `secretWriteCollections`. Answers `{ ok, id, fingerprint }`, never the value; call it
|
|
28315
|
+
* from code (a workflow step, a job), so the secret never passes through a model.
|
|
28316
|
+
*/
|
|
28317
|
+
put: /* @__PURE__ */ __name2((collection, key, value3) => call2("secrets.put", agentId2, {
|
|
28318
|
+
collection,
|
|
28319
|
+
key,
|
|
28320
|
+
value: value3 && typeof value3 === "object" && !Array.isArray(value3) ? {
|
|
28321
|
+
...value3
|
|
28322
|
+
} : value3
|
|
28323
|
+
}), "put")
|
|
28004
28324
|
}), "secrets")
|
|
28005
28325
|
};
|
|
28006
28326
|
}
|
|
@@ -28065,6 +28385,7 @@ var offlineMetrics = {
|
|
|
28065
28385
|
};
|
|
28066
28386
|
|
|
28067
28387
|
// src/api-exports.ts
|
|
28388
|
+
init_shared_data_offline();
|
|
28068
28389
|
init_connection_requests_api_service();
|
|
28069
28390
|
init_decisions_api_service();
|
|
28070
28391
|
init_decisions_api();
|
|
@@ -29161,6 +29482,7 @@ function createOfflineProgressApi() {
|
|
|
29161
29482
|
__name(createOfflineProgressApi, "createOfflineProgressApi");
|
|
29162
29483
|
|
|
29163
29484
|
// src/api-exports.ts
|
|
29485
|
+
init_shared_data_offline();
|
|
29164
29486
|
var User = {
|
|
29165
29487
|
/**
|
|
29166
29488
|
* Retrieves user data by userId, email, or phone.
|
|
@@ -29414,6 +29736,31 @@ var Data = {
|
|
|
29414
29736
|
async delete(collectionName, entryId) {
|
|
29415
29737
|
const instance2 = await getDataInstance();
|
|
29416
29738
|
return instance2.delete(collectionName, entryId);
|
|
29739
|
+
},
|
|
29740
|
+
/**
|
|
29741
|
+
* An org-shared Data collection (namespace). An org admin creates it and names which agents of the org may read
|
|
29742
|
+
* and which may write it (`POST /admin/orgs/:orgId/shared-collections`); agents never create one. The handle has
|
|
29743
|
+
* the same methods as `Data`, scoped to the namespace, so a namespace can hold several collections:
|
|
29744
|
+
*
|
|
29745
|
+
* ```typescript
|
|
29746
|
+
* const map = Data.shared('fleet_map');
|
|
29747
|
+
* await map.create('repos', { repo: 'lua-core-services', tier: 1 }, { searchText: 'backend monorepo' }); // writers
|
|
29748
|
+
* const { data } = await map.get('repos', { tier: 1 }); // readers
|
|
29749
|
+
* const hits = await map.search('edges', 'who calls lua-agents', 10);
|
|
29750
|
+
* ```
|
|
29751
|
+
*
|
|
29752
|
+
* - Readers may `collections`, `get`, `getEntry`, `search`; writers may also `create`, `update`, `patch`,
|
|
29753
|
+
* `increment`, `delete` (a writer can read). Anything else rejects with `code === 'shared_data_forbidden'`
|
|
29754
|
+
* (403) — also when the name does not exist or belongs to another org.
|
|
29755
|
+
* - Same limits, filters, managed indexes, compare-and-swap and vector search as `Data`. Every write is audited
|
|
29756
|
+
* (agent, collection, entry id; never the value).
|
|
29757
|
+
* - A test session may read but not write (`shared_data_test_session_write_refused`, 409).
|
|
29758
|
+
* - Deployed agents only: under `lua test` every call rejects with `code === 'shared_data_unavailable_offline'`.
|
|
29759
|
+
*
|
|
29760
|
+
* @param name - The shared collection name the org admin created (1-128 of `[A-Za-z0-9_.-]`)
|
|
29761
|
+
*/
|
|
29762
|
+
shared(name) {
|
|
29763
|
+
return offlineSharedData(name);
|
|
29417
29764
|
}
|
|
29418
29765
|
};
|
|
29419
29766
|
var Products = {
|
|
@@ -30079,6 +30426,7 @@ export {
|
|
|
30079
30426
|
Products,
|
|
30080
30427
|
Progress,
|
|
30081
30428
|
Secrets,
|
|
30429
|
+
SharedDataError,
|
|
30082
30430
|
Team,
|
|
30083
30431
|
Templates,
|
|
30084
30432
|
Threads,
|