lua-cli 3.43.0 → 3.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-exports.d.ts +227 -40
- package/dist/api-exports.js +474 -39
- package/dist/api-exports.js.map +1 -1
- package/dist/index.js +1065 -343
- package/dist/index.js.map +1 -1
- package/dist/workflow-builder.d.ts +9 -2
- package/dist/workflow-builder.js +238 -4
- package/dist/workflow-builder.js.map +1 -1
- package/docs/API_REFERENCE.md +1 -1
- package/docs/api/Agents.md +23 -9
- package/docs/api/Baskets.md +11 -1
- package/docs/api/LuaJob.md +117 -87
- package/docs/api/PostProcessor.md +73 -42
- package/docs/api/User.md +104 -74
- package/docs/api/Workflows.md +12 -4
- package/docs/workflows/approvals.md +2 -0
- package/docs/workflows/workspaces-and-long-steps.md +1 -1
- package/package.json +5 -5
- package/template/examples/postprocessors/modifyResponse.ts +4 -3
- package/template/package.json +1 -1
- package/template-web-app/web/src/lua/client.ts +12 -7
package/dist/api-exports.js
CHANGED
|
@@ -162,6 +162,106 @@ function supervisionSubjectId(agentId) {
|
|
|
162
162
|
function isSupervisionOp(op) {
|
|
163
163
|
return typeof op === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_OPS, op);
|
|
164
164
|
}
|
|
165
|
+
function isSupervisionWatchdogOp(op) {
|
|
166
|
+
return typeof op === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_WATCHDOG_OPS, op);
|
|
167
|
+
}
|
|
168
|
+
function isSupervisionRollbackRefusalReason(v) {
|
|
169
|
+
return typeof v === "string" && Object.prototype.hasOwnProperty.call(SUPERVISION_ROLLBACK_REFUSAL_CODES, v);
|
|
170
|
+
}
|
|
171
|
+
function supervisionRollbackTargetRefusal(target, expectActive, window) {
|
|
172
|
+
if (target.status !== "superseded" || !target.promotedAt || target.compensationFailed === true) {
|
|
173
|
+
return {
|
|
174
|
+
reason: "never_active",
|
|
175
|
+
message: `Version ${target.version} was never fully the active version (status ${target.status ?? "unknown"})`
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if (typeof expectActive !== "number" || !(target.version < expectActive)) {
|
|
179
|
+
return {
|
|
180
|
+
reason: "not_older",
|
|
181
|
+
message: `Version ${target.version} is not older than the active version ${expectActive ?? "none"}`
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
if (window) {
|
|
185
|
+
if (target.supersededVia === "rollback" || target.promotedVia === "rollback") {
|
|
186
|
+
return {
|
|
187
|
+
reason: "after_rollback",
|
|
188
|
+
message: `Version ${target.version} was retired or restored by a rollback`
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
if (target.supersededVia !== "promote" && target.supersededVia !== "scoped") {
|
|
192
|
+
return {
|
|
193
|
+
reason: "not_in_lineage",
|
|
194
|
+
message: `Version ${target.version} has no forward-promote history`
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
const ended = target.supersededAt ? new Date(target.supersededAt).getTime() : NaN;
|
|
198
|
+
if (!Number.isFinite(ended) || ended < window.now - window.windowMs) {
|
|
199
|
+
return {
|
|
200
|
+
reason: "too_old",
|
|
201
|
+
message: `Version ${target.version} was last active outside the ${Math.round(window.windowMs / 864e5)}-day window`
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
}
|
|
207
|
+
function supervisionRollbackRefusal(input) {
|
|
208
|
+
const { target, active, lineage, expectActive, windowMs, now } = input;
|
|
209
|
+
const pre = supervisionRollbackTargetRefusal(target, expectActive);
|
|
210
|
+
if (pre) return pre;
|
|
211
|
+
if (!active || active.version !== expectActive) {
|
|
212
|
+
return {
|
|
213
|
+
reason: "not_older",
|
|
214
|
+
message: `Version ${expectActive ?? "none"} is not the active version`
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
if (active.promotedVia === "rollback") {
|
|
218
|
+
return {
|
|
219
|
+
reason: "after_rollback",
|
|
220
|
+
message: `The active version ${active.version} was restored by a rollback; a watchdog does not roll back twice in a row`
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
let previous = active;
|
|
224
|
+
for (const step3 of lineage.slice(0, SUPERVISION_ROLLBACK_LINEAGE_MAX)) {
|
|
225
|
+
const label = `version ${step3.version}`;
|
|
226
|
+
if (step3.supersededVia === "rollback" || step3.promotedVia === "rollback") {
|
|
227
|
+
return {
|
|
228
|
+
reason: "after_rollback",
|
|
229
|
+
message: `The rollback lineage crosses ${label}, which a rollback retired or restored`
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
if (step3.supersededVia !== "promote" && step3.supersededVia !== "scoped") {
|
|
233
|
+
return {
|
|
234
|
+
reason: "not_in_lineage",
|
|
235
|
+
message: `The rollback lineage stops at ${label} (no forward-promote history)`
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
if (step3.compensationFailed === true || step3.status !== "superseded" || !step3.promotedAt) {
|
|
239
|
+
return {
|
|
240
|
+
reason: "not_in_lineage",
|
|
241
|
+
message: `The rollback lineage stops at ${label} (not fully served)`
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
if (!(step3.version < previous.version)) {
|
|
245
|
+
return {
|
|
246
|
+
reason: "after_backward_promote",
|
|
247
|
+
message: `Version ${previous.version} was promoted BACK over ${label}; a watchdog never reaches behind that`
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
const ended = step3.supersededAt ? new Date(step3.supersededAt).getTime() : NaN;
|
|
251
|
+
if (!Number.isFinite(ended) || ended < now - windowMs) {
|
|
252
|
+
return {
|
|
253
|
+
reason: "too_old",
|
|
254
|
+
message: `The rollback lineage reaches ${label}, last active outside the ${Math.round(windowMs / 864e5)}-day window`
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
if (step3.version === target.version && (!target.id || !step3.id || step3.id === target.id)) return null;
|
|
258
|
+
previous = step3;
|
|
259
|
+
}
|
|
260
|
+
return {
|
|
261
|
+
reason: "not_in_lineage",
|
|
262
|
+
message: `Version ${target.version} is not in the active version's recent forward-promote lineage`
|
|
263
|
+
};
|
|
264
|
+
}
|
|
165
265
|
function isUntargetedSupervisionOp(op) {
|
|
166
266
|
return typeof op === "string" && SUPERVISION_UNTARGETED_OPS.includes(op);
|
|
167
267
|
}
|
|
@@ -2462,6 +2562,19 @@ function resolveSlackReactionName(value3) {
|
|
|
2462
2562
|
}
|
|
2463
2563
|
return slackEmojiName(trimmed);
|
|
2464
2564
|
}
|
|
2565
|
+
function threadScopingSetting(type) {
|
|
2566
|
+
const noun = THREAD_SCOPING_NOUN[type];
|
|
2567
|
+
return {
|
|
2568
|
+
key: `${type}.threadScoping`,
|
|
2569
|
+
group: "conversations",
|
|
2570
|
+
label: `One conversation per ${noun}`,
|
|
2571
|
+
help: `Each ${noun} is its own conversation with its own history.`,
|
|
2572
|
+
effect: "Off: every message from the same person shares one conversation.",
|
|
2573
|
+
type: "boolean",
|
|
2574
|
+
default: false,
|
|
2575
|
+
confirm: "Changing this starts fresh conversations for ones that are already open. Earlier history isn't carried over."
|
|
2576
|
+
};
|
|
2577
|
+
}
|
|
2465
2578
|
function takeoverSettings(type) {
|
|
2466
2579
|
const variants = type === "email" ? [
|
|
2467
2580
|
"ses"
|
|
@@ -2817,13 +2930,13 @@ function channelSettingsGroups(channel, config) {
|
|
|
2817
2930
|
const groups = [];
|
|
2818
2931
|
for (const def of channelSettingDefinitions(channel, config)) {
|
|
2819
2932
|
const { tunableDefault: _tunable, ...shown } = def;
|
|
2820
|
-
const
|
|
2933
|
+
const unavailable2 = channelSettingUnavailable(channel, def);
|
|
2821
2934
|
const view = {
|
|
2822
2935
|
...shown,
|
|
2823
2936
|
...effectiveChannelSetting(channel, def),
|
|
2824
2937
|
resettable: channelSettingResettable(def),
|
|
2825
|
-
...
|
|
2826
|
-
unavailable:
|
|
2938
|
+
...unavailable2 && {
|
|
2939
|
+
unavailable: unavailable2
|
|
2827
2940
|
}
|
|
2828
2941
|
};
|
|
2829
2942
|
const group = groups.find((candidate) => candidate.key === def.group);
|
|
@@ -4435,6 +4548,9 @@ function workflowOccurrenceId(lineageId, stepId) {
|
|
|
4435
4548
|
function workflowOrgSlotKey(orgId, kind) {
|
|
4436
4549
|
return `wf:org:${orgId}:${kind}`;
|
|
4437
4550
|
}
|
|
4551
|
+
function isWorkflowAgentAppConnectionId(id2) {
|
|
4552
|
+
return typeof id2 === "string" && id2.startsWith(WORKFLOW_AGENT_APP_CONNECTION_PREFIX) && /^[A-Za-z0-9_-]{1,128}$/.test(id2);
|
|
4553
|
+
}
|
|
4438
4554
|
function workflowJobModelSourceLabel(source) {
|
|
4439
4555
|
return WORKFLOW_JOB_MODEL_SOURCE_LABELS[source];
|
|
4440
4556
|
}
|
|
@@ -5990,7 +6106,7 @@ function isPaymentRequiredChatErrorEnvelope(data) {
|
|
|
5990
6106
|
if (d.type !== "error") return false;
|
|
5991
6107
|
return d.textDelta === BILLING_REJECTION_TEXT_CREDITS || d.textDelta === BILLING_REJECTION_TEXT_SEAT || d.textDelta === BILLING_REJECTION_TEXT_USER_QUOTA;
|
|
5992
6108
|
}
|
|
5993
|
-
var __defProp3, __name3, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA;
|
|
6109
|
+
var __defProp3, __name3, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHOICE_PERSON_TURN_CHANNELS, CHOICE_REPLAY_CLIENT_CAPABILITIES, CHOICE_REPLAY_CLIENT_SURFACES, INTEGRATION_PASSTHROUGH_READ_METHODS, URL_REINTERPRETED_PATH_CHARACTERS, PERCENT_ENCODED_DOT, PERCENT_ESCAPE, DECODED_PATH_SEPARATORS, DECODED_LEADING_SEPARATOR, MAX_PERCENT_DECODE_ROUNDS, URL_RESOLUTION_PROBE_BASE, PLATFORM_INVOCATION_CALLERS, SUPERVISION_OPS, SUPERVISION_OPS_WAVE2, SUPERVISION_WATCHDOG_OPS, SUPERVISION_WATCHDOG_ERRORS, SUPERVISION_ROLLBACK_REFUSAL_CODES, SUPERVISION_ROLLBACK_LINEAGE_MAX, SUPERVISION_UNTARGETED_OPS, SUPERVISED_WORKFLOW_VERSIONS_MAX, SUPERVISION_EVENT_KINDS, AGENT_PROVISIONING_LIMITS, AGENT_PROVISIONING_APPROVAL_PAYLOAD_KEY, AGENT_PROVISIONING_ERRORS, PROVISIONED_SUPERVISION_ACTIONS, isNonEmptyString, uniqueStrings, sameSet, AGENT_PROVISIONING_APPROVAL_CARD_MAX_CHARS, APPROVAL_PAYLOAD_MEMBERS, AGENT_CONNECTION_POLICIES, AGENT_CONNECTION_POLICY_DEFAULT, AGENT_CONNECTION_MOUNT_MODES, AGENT_CONNECTION_GOVERNANCE_ERRORS, AGENT_CONNECTION_OPERATION_RULES_MAX, AGENT_CONNECTION_OPERATION_PATTERN_MAX_LENGTH, OPERATION_RULE_METHODS, PATH_SEPARATOR, PATH_SINGLE_SEGMENT_WILDCARD, PATH_REST_WILDCARD, METHOD_OVERRIDE_HEADER_NAMES, METHOD_OVERRIDE_QUERY_NAMES, ODATA_BATCH_SEGMENT, GOOGLE_BATCH_FIRST_SEGMENT, CONNECTION_CHECK_RESULTS, CONNECTION_CHECK_CATALOGUE_V1, CONNECTION_CHECK_NAME_PATTERN, CONNECTION_CHECK_NAME_MAX, CONNECT_OUTCOME_STATUSES, SECRET_TEST_RESULTS, SECRET_DATADOG_REGIONS, SECRET_PROVIDER_CATALOGUE_V1, SECRET_TEST_MAX_RESPONSE_BYTES, SECRET_ENV_KEY_PATTERN, SECRET_REQUEST_ERRORS, SECRET_OUTCOME_STATUSES, CLIENT_OUTCOME_TURNS_MAX, SHORT_TEXT_MAX, SLUG_MAX, shortText, optionalShortText, CONNECTION_REQUEST_TERMINAL_STATES, CONNECTION_USE_ORIGINS, AGENT_CONNECTION_OPERATION_LIMITS_BOUNDS, CURRENCY_CODE, LIMITS_KEYS, CAPS_KEYS, EXCLUSIONS_KEYS, EMAIL_IN_TEXT, MAX_EXCLUSION_DEPTH, PROJECTION_PARAMETER_KEYS, CHANNEL_PARAMETER_KEYS, GMAIL_SYSTEM_LABEL_IDS, ZERO_DECIMAL_CURRENCIES, THREE_DECIMAL_CURRENCIES, DECIMAL_AMOUNT, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, TEST_SESSION_ID_PATTERN, TEST_SESSION_COLLECTION_PREFIX, TEST_EFFECT_BODY_MAX_BYTES, TEST_EFFECT_DROPPED_HEADERS, EVAL_CREDITS_PER_1K_TOKENS, EVAL_RESERVED_TOOL_ID_PREFIXES, CONNECTION_HANDOVER_APPROVAL_PAYLOAD_KEY, CONNECTION_HANDOVER_APPROVAL_CARD_MAX_CHARS, CONNECTION_HANDOVER_LIMITS, MEMBERS, FORMAT_CHARS, oneLine, boundedString, AGENT_METRIC_NAME_PATTERN, AGENT_METRIC_LIMITS, AGENT_OBJECTIVE_ERRORS, CHANGE_LEASE_TTL_MINUTES_MIN, CHANGE_LEASE_TTL_MINUTES_MAX, CHANGE_LEASE_REASON_MAX, CHANGE_LEASE_ERRORS, AGENT_CONFIG_SET_LIMITS, SECRET_ENV_KEY_SUFFIXES, DEFAULT_OWNER_DEPARTURE_POLICY, AGENT_LIFECYCLE_ERRORS, USER_COST_COUNTER_TTL_SECONDS, USER_COST_ATTRIBUTION_CHANNELS, CALLER_DEDUPE_KEY_MAX, FOLLOW_UP_IDEMPOTENCY_TTL_SECONDS, THREAD_FOLLOW_UP_LIMITS, THREAD_FOLLOW_UP_ERRORS, PROGRESS_UPDATE_LIMITS, PAUSABLE_CAPABILITY_KINDS, UNIFIED_CATCH_UP_MAX_WINDOW_HOURS, UNIFIED_CATCH_UP_EVENTS, UNIFIED_CATCH_UP_FILTERABLE_OBJECT_TYPES, AGENT_NEVER_RULES_MAX, AGENT_NEVER_RULE_FIELD_MAX, AGENT_NEVER_RULE_INPUT_MATCH_MAX, NEVER_RULE_ID_PATTERN, NEVER_RULE_HTTP_METHODS, TEMPLATE_DISTRIBUTION_MODES, CHANNEL_SEND_CHANNELS, TAKEOVER_MAX_IDLE_MINUTES, MINUTES_PER_DAY, DEFAULT_IDLE_RELEASE_MINUTES, FALLBACK_IDLE_RELEASE_MINUTES, VARIATION_SELECTORS, SLACK_EMOJI_NAMES, SLACK_SHORTCODE, PLAIN_EMAIL_ADDRESS, DOMAIN, UNSAFE_TEXT, SLACK_CONVERSATION_ID, CHANNEL_SETTING_GROUPS, THREAD_SCOPING_NOUN, TAKEOVER_CHANNEL_TYPES, EMAIL_SETTINGS, SLACK_SETTING_DEFAULTS, SLACK_REACTION_MAX, SLACK_INTRO_MAX, SLACK_EXAMPLE_PROMPTS_MAX, SLACK_EXAMPLE_PROMPT_MAX, SLACK_SUPPORT_CONTACT_MAX, SLACK_SETTINGS, CHANNEL_SETTINGS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_DEFAULTS, WORKFLOW_AUTONOMY_CEILINGS, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_ENV, WORKFLOW_AUTONOMY_MAX_RUNS_PER_HOUR_CEILING, WORKFLOW_AUTONOMY_FORMS_DEFAULT, WORKFLOW_AUTONOMY_MIN_VALUE, WORKFLOW_JOB_RANGES, WORKFLOW_JOB_RANGE_MEMBERS, WORKFLOW_SINGLE_STEP_TYPES, WORKFLOW_HITL_ENTRY_TYPES, WORKFLOW_ARM_ENTRY_TYPES, WORKFLOW_HITL_ARM_CONTAINERS, WORKFLOW_GRAPH_ENTRY_STEP_KINDS, WORKFLOW_ARM_ENTRY_STEP_KINDS, WORKFLOW_BUDGET_MAX_DURATION_SECONDS, MODEL_ID_BYOK_PROVIDERS, MODEL_CLASS_REF_PREFIX, MODEL_SNAPSHOT_SUFFIX, REASONING_EFFORT_VALUES, IMPLICIT_MODEL_SELECTION_SOURCES, PLATFORM_FALLBACK_MODEL_SOURCE, AGENT_NAME_TOKEN, DEFAULT_PERSONA_GUIDE, PERSONAL_SPACE_STARTING_PERSONA, AGENT_LOG_SOURCES, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_DATADOG_SITES, LOG_DRAIN_NEWRELIC_SITES, LOG_DRAIN_ENDPOINT_TEMPLATES, LOG_DRAIN_PRESET_SITES, LOG_DRAIN_BUCKET_NAME_PATTERN, LOG_DRAIN_BUCKET_HOST_PATTERNS, LOG_DRAIN_PRESET_HOST_SUFFIXES, DRAIN_CONTENT_ACK_ERROR_CODE, DRAIN_CONTENT_ACK_FIELD, DrainContentAckRequiredError, LOG_DRAIN_PRESET_PATHS, PRESET_SEGMENT_RE, LOG_DRAIN_QUOTAS, LOG_DRAIN_QUOTA_WARN_RATIO, LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO, LOG_DRAIN_QUOTA_DROP_INFO_RATIO, LOG_DRAIN_QUOTA_PAUSE_RATIO, LOG_EXPORT_SOURCES, LOG_EXPORT_MAX_WINDOW_DAYS, LOG_EXPORT_MAX_WINDOW_MS, LOG_EXPORT_URL_TTL_SECONDS, LOG_EXPORT_FILE_RETENTION_DAYS, LOG_EXPORT_FILE_RETENTION_MS, LOG_EXPORT_PART_MAX_BYTES, LOG_DRAIN_NOTICE_RATE_LIMIT_MS, LOG_DRAIN_VERIFICATION_STALE_MS, LOG_DRAIN_DIGEST_INTERVAL_MS, LOG_DRAIN_DIGEST_MAX_ENTRIES, LOG_DRAIN_NOTICE_ERROR_MAX_CHARS, LOG_DRAIN_USAGE_LINE_ITEM, LOG_DRAIN_BYTES_PER_GIB, DEFAULT_LOG_DRAIN_PLAN_CONFIG, TIERS, LOG_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_AGENT_APP_CONNECTION_PREFIX, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_SIGNAL_NAME_RE, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, SCHEDULE_HEALTH_NOTIFY_CHANNELS, SCHEDULE_HEALTH_DEFAULT_NOTIFY, SCHEDULE_HEALTH_LIMITS, KNOWN_KEYS, WORKFLOW_GOAL_JUDGE_SELF, APPROVAL_ARGS_MAX_CHARS, APPROVAL_ARG_STRING_MAX_CHARS, APPROVAL_ARGS_SUMMARY_MAX_CHARS, MAX_DEPTH, MAX_KEYS, MAX_ITEMS, MAX_NODES, MAX_KEY_CHARS, KEY_SCRUB_INPUT_MAX_CHARS, STRING_SCRUB_INPUT_MAX_CHARS, ELLIPSIS, SKIP, SCRUB_SECRETS_BEFORE_PERSIST_ENV, PERSIST_SCRUB_MAX_CHARS, PERSIST_SCRUB_REF_MAX_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingInstallScreenSchema, onboardingResultScreenSchema, onboardingConnectScreenSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES, WEB_APP_NAME_PATTERN, WEB_APP_ENTRY_HTML_MAX_CHARS, WEB_APP_MAX_ASSET_BYTES, EVIDENCE_SESSION_IDLE_MS, EVIDENCE_MIN_CONVERSATIONS, EVIDENCE_LOW_CONFIDENCE_N, EVIDENCE_SNIPPET_MAX_CHARS, EVIDENCE_EXAMPLES_PER_ITEM, EVIDENCE_SHOWN_ITEMS, EVIDENCE_LATENCY_BOUNDS_MS, EVIDENCE_WORD_BOUNDS, BAD_CONVERSATION_REASONS, ATTACHMENT_LINES, REVIEW_VERDICT_REASON_ORDER, ENV_TEMPLATE_SECRET_KEY_RE, CONNECTION_SEND_NOT_ALLOWED, CONNECTION_RECIPIENT_NOT_ALLOWED, NOT_SEND, PLAIN_ADDRESS, RecipientSet, MCP_MESSAGING_CREATE, MCP_CALENDAR_EVENT_WRITE, REPLY_KEYS, DEDICATED_MAIL_SLUGS, FULL_SUITE_SLUGS, WELL_KNOWN_MAIL_FOLDERS, MEMBER_KEYS, CANONICAL_ORIGIN, CANONICAL_PREFIX, STRICT_BASE64, GMAIL_PREFIX, GMAIL_MESSAGES_SEND, GMAIL_DRAFTS_SEND, GOOGLE_BATCH, GRAPH_VERSION, GRAPH_PRINCIPAL, GRAPH_SEND_MAIL, GRAPH_MESSAGE_ACTION, GRAPH_OWNER, GRAPH_EVENTS, GRAPH_EVENT_COLLECTION, GRAPH_EVENT_ID, GRAPH_EVENT_ITEM, GRAPH_EVENT_ACTION, GRAPH_BATCH, GRAPH_TEAMS_MESSAGE, GRAPH_ACTIVITY_NOTIFICATION, GRAPH_GROUP_CONVERSATION, GCAL_EVENTS, GRAPH_READ_KEYS, MALFORMED_POLICY, BILLING_REJECTION_TEXT_CREDITS, BILLING_REJECTION_TEXT_SEAT, BILLING_REJECTION_TEXT_USER_QUOTA;
|
|
5994
6110
|
var init_dist = __esm({
|
|
5995
6111
|
"../shared-types/dist/index.mjs"() {
|
|
5996
6112
|
"use strict";
|
|
@@ -6206,7 +6322,20 @@ var init_dist = __esm({
|
|
|
6206
6322
|
* agentId }`) to its env. `act`, on a turn whose platform-picked user is the target's owner, never overwriting a
|
|
6207
6323
|
* key (`LUA_SECRET_ATTACH_EXISTING_ENABLED`).
|
|
6208
6324
|
*/
|
|
6209
|
-
"secrets.attach": "act"
|
|
6325
|
+
"secrets.attach": "act",
|
|
6326
|
+
/**
|
|
6327
|
+
* SV (LUA-1080) — `Agents.deployed(id)`: what the target serves RIGHT NOW, read from each primitive's live pointer
|
|
6328
|
+
* (skills with their tools, the published persona, pre/postprocessors), with version ids comparable to an agent
|
|
6329
|
+
* version snapshot. Works whether or not the target has a promoted agent version. Metadata and hashes only.
|
|
6330
|
+
*/
|
|
6331
|
+
"primitives.deployed": "observe",
|
|
6332
|
+
// [WD]
|
|
6333
|
+
/**
|
|
6334
|
+
* WD (watchdog grant) — `Agents.versions(id).rollback(version, { expectActive })`: restore a version of the target
|
|
6335
|
+
* that was ACTIVE before, is OLDER than the active one and was active within the last 7 days. CAS on the active
|
|
6336
|
+
* version; only from a workflow step the watchdog grant names. Held only by a watchdog grant.
|
|
6337
|
+
*/
|
|
6338
|
+
"versions.rollback": "rollback"
|
|
6210
6339
|
};
|
|
6211
6340
|
__name(isSupervisionOp, "isSupervisionOp");
|
|
6212
6341
|
__name3(isSupervisionOp, "isSupervisionOp");
|
|
@@ -6384,8 +6513,65 @@ var init_dist = __esm({
|
|
|
6384
6513
|
gate: "act",
|
|
6385
6514
|
targeted: true,
|
|
6386
6515
|
item: "SV"
|
|
6516
|
+
},
|
|
6517
|
+
/** SV (LUA-1080) — `Agents.deployed(id)`: the target's deployed primitives (live pointers, no agent version needed). */
|
|
6518
|
+
"primitives.deployed": {
|
|
6519
|
+
gate: "observe",
|
|
6520
|
+
targeted: true,
|
|
6521
|
+
item: "SV"
|
|
6522
|
+
},
|
|
6523
|
+
/** WD — `Agents.versions(id).rollback(version, { expectActive })` (watchdog grant only). */
|
|
6524
|
+
"versions.rollback": {
|
|
6525
|
+
gate: "rollback",
|
|
6526
|
+
targeted: true,
|
|
6527
|
+
item: "WD"
|
|
6387
6528
|
}
|
|
6388
6529
|
};
|
|
6530
|
+
SUPERVISION_WATCHDOG_OPS = {
|
|
6531
|
+
logs: "observe",
|
|
6532
|
+
"runs.list": "observe",
|
|
6533
|
+
"runs.get": "observe",
|
|
6534
|
+
"data.get": "observe",
|
|
6535
|
+
"data.query": "observe",
|
|
6536
|
+
"versions.list": "observe",
|
|
6537
|
+
"versions.get": "observe",
|
|
6538
|
+
"versions.diff": "observe",
|
|
6539
|
+
"versions.rollback": "rollback"
|
|
6540
|
+
};
|
|
6541
|
+
__name(isSupervisionWatchdogOp, "isSupervisionWatchdogOp");
|
|
6542
|
+
__name3(isSupervisionWatchdogOp, "isSupervisionWatchdogOp");
|
|
6543
|
+
SUPERVISION_WATCHDOG_ERRORS = {
|
|
6544
|
+
/** A watchdog holder called an op outside {@link SUPERVISION_WATCHDOG_OPS}. */
|
|
6545
|
+
OP_REFUSED: "supervision_watchdog_op_refused",
|
|
6546
|
+
/** See {@link SupervisionRollbackRefusalReason}. */
|
|
6547
|
+
ROLLBACK_NEVER_ACTIVE: "supervision_rollback_never_active",
|
|
6548
|
+
ROLLBACK_NOT_OLDER: "supervision_rollback_not_older",
|
|
6549
|
+
ROLLBACK_NOT_IN_LINEAGE: "supervision_rollback_not_in_lineage",
|
|
6550
|
+
ROLLBACK_AFTER_ROLLBACK: "supervision_rollback_after_rollback",
|
|
6551
|
+
ROLLBACK_AFTER_BACKWARD_PROMOTE: "supervision_rollback_after_backward_promote",
|
|
6552
|
+
ROLLBACK_TOO_OLD: "supervision_rollback_too_old",
|
|
6553
|
+
/** `expectActive` is not the active version (CAS). */
|
|
6554
|
+
ROLLBACK_CONFLICT: "supervision_rollback_conflict",
|
|
6555
|
+
/** The promote failed part-way and its compensation restored the previous active version. */
|
|
6556
|
+
ROLLBACK_INCOMPLETE: "supervision_rollback_incomplete",
|
|
6557
|
+
/** The promote failed part-way AND its compensation failed: the Agents DB may have moved (manual triage). */
|
|
6558
|
+
ROLLBACK_INCOMPLETE_UNCOMPENSATED: "supervision_rollback_incomplete_uncompensated"
|
|
6559
|
+
};
|
|
6560
|
+
SUPERVISION_ROLLBACK_REFUSAL_CODES = {
|
|
6561
|
+
never_active: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_NEVER_ACTIVE,
|
|
6562
|
+
not_older: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_NOT_OLDER,
|
|
6563
|
+
not_in_lineage: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_NOT_IN_LINEAGE,
|
|
6564
|
+
after_rollback: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_AFTER_ROLLBACK,
|
|
6565
|
+
after_backward_promote: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_AFTER_BACKWARD_PROMOTE,
|
|
6566
|
+
too_old: SUPERVISION_WATCHDOG_ERRORS.ROLLBACK_TOO_OLD
|
|
6567
|
+
};
|
|
6568
|
+
__name(isSupervisionRollbackRefusalReason, "isSupervisionRollbackRefusalReason");
|
|
6569
|
+
__name3(isSupervisionRollbackRefusalReason, "isSupervisionRollbackRefusalReason");
|
|
6570
|
+
SUPERVISION_ROLLBACK_LINEAGE_MAX = 25;
|
|
6571
|
+
__name(supervisionRollbackTargetRefusal, "supervisionRollbackTargetRefusal");
|
|
6572
|
+
__name3(supervisionRollbackTargetRefusal, "supervisionRollbackTargetRefusal");
|
|
6573
|
+
__name(supervisionRollbackRefusal, "supervisionRollbackRefusal");
|
|
6574
|
+
__name3(supervisionRollbackRefusal, "supervisionRollbackRefusal");
|
|
6389
6575
|
SUPERVISION_UNTARGETED_OPS = [
|
|
6390
6576
|
"agents.list",
|
|
6391
6577
|
...Object.entries(SUPERVISION_OPS_WAVE2).filter(([, contract]) => !contract.targeted).map(([op]) => op)
|
|
@@ -6821,7 +7007,9 @@ var init_dist = __esm({
|
|
|
6821
7007
|
/** `secrets.attach` would set an env key the agent already has: never overwritten (remove or rotate it first). */
|
|
6822
7008
|
KEY_EXISTS: "secret_key_exists",
|
|
6823
7009
|
/** A request held for an existing agent submitted on the public token page: its owner submits it signed in. */
|
|
6824
|
-
OWNER_SUBMIT_REQUIRED: "secret_submit_requires_owner"
|
|
7010
|
+
OWNER_SUBMIT_REQUIRED: "secret_submit_requires_owner",
|
|
7011
|
+
/** LUA-1079 — `requestSecret` with `pendingFor` on a client that did not declare the pending card capability. */
|
|
7012
|
+
PENDING_CARD_UNSUPPORTED: "secret_pending_card_unsupported"
|
|
6825
7013
|
};
|
|
6826
7014
|
SECRET_OUTCOME_STATUSES = [
|
|
6827
7015
|
...SECRET_TEST_RESULTS,
|
|
@@ -7546,6 +7734,13 @@ var init_dist = __esm({
|
|
|
7546
7734
|
welcome: "Welcome and Home page",
|
|
7547
7735
|
takeover: "Human takeover"
|
|
7548
7736
|
};
|
|
7737
|
+
THREAD_SCOPING_NOUN = {
|
|
7738
|
+
front: "Front conversation",
|
|
7739
|
+
messagebird: "MessageBird conversation",
|
|
7740
|
+
imessage: "iMessage chat"
|
|
7741
|
+
};
|
|
7742
|
+
__name(threadScopingSetting, "threadScopingSetting");
|
|
7743
|
+
__name3(threadScopingSetting, "threadScopingSetting");
|
|
7549
7744
|
TAKEOVER_CHANNEL_TYPES = [
|
|
7550
7745
|
"whatsapp",
|
|
7551
7746
|
"instagram",
|
|
@@ -7819,7 +8014,10 @@ var init_dist = __esm({
|
|
|
7819
8014
|
CHANNEL_SETTINGS = {
|
|
7820
8015
|
...Object.fromEntries(TAKEOVER_CHANNEL_TYPES.map((type) => [
|
|
7821
8016
|
type,
|
|
7822
|
-
type === "email" ? EMAIL_SETTINGS :
|
|
8017
|
+
type === "email" ? EMAIL_SETTINGS : type === "front" || type === "messagebird" || type === "imessage" ? [
|
|
8018
|
+
...takeoverSettings(type),
|
|
8019
|
+
threadScopingSetting(type)
|
|
8020
|
+
] : takeoverSettings(type)
|
|
7823
8021
|
])),
|
|
7824
8022
|
slack: SLACK_SETTINGS
|
|
7825
8023
|
};
|
|
@@ -9566,6 +9764,9 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
9566
9764
|
__name(workflowOrgSlotKey, "workflowOrgSlotKey");
|
|
9567
9765
|
__name3(workflowOrgSlotKey, "workflowOrgSlotKey");
|
|
9568
9766
|
WORKFLOW_CONNECTION_KEY_RE = /^[a-z][a-z0-9_-]{0,63}$/;
|
|
9767
|
+
WORKFLOW_AGENT_APP_CONNECTION_PREFIX = "agentapp_";
|
|
9768
|
+
__name(isWorkflowAgentAppConnectionId, "isWorkflowAgentAppConnectionId");
|
|
9769
|
+
__name3(isWorkflowAgentAppConnectionId, "isWorkflowAgentAppConnectionId");
|
|
9569
9770
|
WORKFLOW_JOB_MODEL_SOURCE_LABELS = {
|
|
9570
9771
|
stamp: "lease stamp",
|
|
9571
9772
|
initData: "run input",
|
|
@@ -9591,6 +9792,7 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
9591
9792
|
...WORKFLOW_RUN_GATE_KINDS
|
|
9592
9793
|
];
|
|
9593
9794
|
WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES = 64 * 1024;
|
|
9795
|
+
WORKFLOW_SIGNAL_NAME_RE = /^[a-zA-Z0-9_.-]{1,64}$/;
|
|
9594
9796
|
WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS = 168;
|
|
9595
9797
|
WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES = 256 * 1024;
|
|
9596
9798
|
SCHEDULE_HEALTH_NOTIFY_CHANNELS = [
|
|
@@ -11694,6 +11896,19 @@ var init_request_credential = __esm({
|
|
|
11694
11896
|
|
|
11695
11897
|
// src/api/http.client.ts
|
|
11696
11898
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
11899
|
+
function abortedResponse() {
|
|
11900
|
+
return {
|
|
11901
|
+
success: false,
|
|
11902
|
+
error: {
|
|
11903
|
+
message: "Request aborted",
|
|
11904
|
+
code: REQUEST_ABORTED_CODE,
|
|
11905
|
+
statusCode: 0
|
|
11906
|
+
}
|
|
11907
|
+
};
|
|
11908
|
+
}
|
|
11909
|
+
function isAborted(signal) {
|
|
11910
|
+
return !!signal && signal.aborted === true;
|
|
11911
|
+
}
|
|
11697
11912
|
async function classifyErrorResponse(response) {
|
|
11698
11913
|
let errorData;
|
|
11699
11914
|
try {
|
|
@@ -11826,7 +12041,7 @@ function coreDrainApiRetryDelayMs(error) {
|
|
|
11826
12041
|
const delayMs = retryAfterSeconds * 1e3;
|
|
11827
12042
|
return Math.min(Math.max(0, delayMs), CORE_DRAINING_MAX_RETRY_MS);
|
|
11828
12043
|
}
|
|
11829
|
-
var DEFAULT_REQUEST_TIMEOUT_MS, HttpClient;
|
|
12044
|
+
var DEFAULT_REQUEST_TIMEOUT_MS, REQUEST_ABORTED_CODE, HttpClient;
|
|
11830
12045
|
var init_http_client = __esm({
|
|
11831
12046
|
"src/api/http.client.ts"() {
|
|
11832
12047
|
"use strict";
|
|
@@ -11837,6 +12052,9 @@ var init_http_client = __esm({
|
|
|
11837
12052
|
init_lua_fetch();
|
|
11838
12053
|
init_request_credential();
|
|
11839
12054
|
DEFAULT_REQUEST_TIMEOUT_MS = 3e4;
|
|
12055
|
+
REQUEST_ABORTED_CODE = "REQUEST_ABORTED";
|
|
12056
|
+
__name(abortedResponse, "abortedResponse");
|
|
12057
|
+
__name(isAborted, "isAborted");
|
|
11840
12058
|
HttpClient = class {
|
|
11841
12059
|
static {
|
|
11842
12060
|
__name(this, "HttpClient");
|
|
@@ -11859,9 +12077,17 @@ var init_http_client = __esm({
|
|
|
11859
12077
|
* @private
|
|
11860
12078
|
*/
|
|
11861
12079
|
async request(url, options = {}, overrides) {
|
|
12080
|
+
const callerSignal = overrides?.signal;
|
|
12081
|
+
if (isAborted(callerSignal)) return abortedResponse();
|
|
11862
12082
|
const controller = new AbortController();
|
|
11863
12083
|
const timeoutMs = overrides?.timeoutMs ?? DEFAULT_REQUEST_TIMEOUT_MS;
|
|
11864
12084
|
const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
|
|
12085
|
+
const onCallerAbort = /* @__PURE__ */ __name(() => controller.abort(), "onCallerAbort");
|
|
12086
|
+
if (typeof callerSignal?.addEventListener === "function") {
|
|
12087
|
+
callerSignal.addEventListener("abort", onCallerAbort, {
|
|
12088
|
+
once: true
|
|
12089
|
+
});
|
|
12090
|
+
}
|
|
11865
12091
|
try {
|
|
11866
12092
|
const authorization = this.requestCredential ? `Bearer ${await bearerFor(this.requestCredential)}` : void 0;
|
|
11867
12093
|
const response = await luaFetch(url, {
|
|
@@ -11883,6 +12109,7 @@ var init_http_client = __esm({
|
|
|
11883
12109
|
try {
|
|
11884
12110
|
data = await response.json();
|
|
11885
12111
|
} catch (jsonError) {
|
|
12112
|
+
if (isAborted(callerSignal)) throw jsonError;
|
|
11886
12113
|
data = {};
|
|
11887
12114
|
}
|
|
11888
12115
|
if (typeof data === "object" && data !== null && "success" in data) {
|
|
@@ -11900,6 +12127,9 @@ var init_http_client = __esm({
|
|
|
11900
12127
|
if (isAccessDeniedError(error)) {
|
|
11901
12128
|
throw error;
|
|
11902
12129
|
}
|
|
12130
|
+
if (isAborted(callerSignal)) {
|
|
12131
|
+
return abortedResponse();
|
|
12132
|
+
}
|
|
11903
12133
|
if (error instanceof DOMException && error.name === "AbortError") {
|
|
11904
12134
|
return {
|
|
11905
12135
|
success: false,
|
|
@@ -11916,9 +12146,36 @@ var init_http_client = __esm({
|
|
|
11916
12146
|
statusCode: 0
|
|
11917
12147
|
}
|
|
11918
12148
|
};
|
|
12149
|
+
} finally {
|
|
12150
|
+
clearTimeout(timeoutId);
|
|
12151
|
+
if (typeof callerSignal?.removeEventListener === "function") {
|
|
12152
|
+
callerSignal.removeEventListener("abort", onCallerAbort);
|
|
12153
|
+
}
|
|
11919
12154
|
}
|
|
11920
12155
|
}
|
|
11921
12156
|
/**
|
|
12157
|
+
* A backoff wait the caller's signal can cut short (BAC-1097): resolves at `ms` or on abort, whichever is
|
|
12158
|
+
* first, and never leaves the timer or the listener behind. The caller re-checks `signal.aborted` afterwards.
|
|
12159
|
+
* @private
|
|
12160
|
+
*/
|
|
12161
|
+
sleep(ms, signal) {
|
|
12162
|
+
if (isAborted(signal)) return Promise.resolve();
|
|
12163
|
+
const listenable = typeof signal?.addEventListener === "function";
|
|
12164
|
+
return new Promise((resolve3) => {
|
|
12165
|
+
const onAbort = /* @__PURE__ */ __name(() => {
|
|
12166
|
+
clearTimeout(timer);
|
|
12167
|
+
resolve3();
|
|
12168
|
+
}, "onAbort");
|
|
12169
|
+
const timer = setTimeout(() => {
|
|
12170
|
+
if (listenable) signal.removeEventListener("abort", onAbort);
|
|
12171
|
+
resolve3();
|
|
12172
|
+
}, ms);
|
|
12173
|
+
if (listenable) signal.addEventListener("abort", onAbort, {
|
|
12174
|
+
once: true
|
|
12175
|
+
});
|
|
12176
|
+
});
|
|
12177
|
+
}
|
|
12178
|
+
/**
|
|
11922
12179
|
* Non-2xx classification shared by `request` and `httpStream` (WF-204): 401s become
|
|
11923
12180
|
* `AuthenticationError` (ownership vs credential), 403s throw, everything else returns the
|
|
11924
12181
|
* `{ success:false, error }` envelope with the server body spread in.
|
|
@@ -11986,19 +12243,22 @@ var init_http_client = __esm({
|
|
|
11986
12243
|
}
|
|
11987
12244
|
}
|
|
11988
12245
|
let lastResult = null;
|
|
12246
|
+
const signal = overrides?.signal;
|
|
11989
12247
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
12248
|
+
if (isAborted(signal)) return abortedResponse();
|
|
11990
12249
|
try {
|
|
11991
12250
|
const result = await this.request(url, options, overrides);
|
|
11992
12251
|
if (result.success || !result.error || !this.isRetryableStatus(result.error.statusCode || 0)) {
|
|
11993
12252
|
return result;
|
|
11994
12253
|
}
|
|
12254
|
+
if (isAborted(signal)) return result;
|
|
11995
12255
|
lastResult = result;
|
|
11996
12256
|
} catch (error) {
|
|
11997
12257
|
throw error;
|
|
11998
12258
|
}
|
|
11999
12259
|
if (attempt < maxRetries) {
|
|
12000
12260
|
const backoff = this.retryDelayMs(attempt, lastResult?.error, options.method);
|
|
12001
|
-
await
|
|
12261
|
+
await this.sleep(backoff, signal);
|
|
12002
12262
|
}
|
|
12003
12263
|
}
|
|
12004
12264
|
return lastResult;
|
|
@@ -12047,7 +12307,8 @@ var init_http_client = __esm({
|
|
|
12047
12307
|
async httpPostCoreDrainRetry(url, data, headers, overrides) {
|
|
12048
12308
|
const first = await this.httpPostOnce(url, data, headers, overrides);
|
|
12049
12309
|
if (!isCoreDrainApiError(first.error)) return first;
|
|
12050
|
-
await
|
|
12310
|
+
await this.sleep(coreDrainApiRetryDelayMs(first.error), overrides?.signal);
|
|
12311
|
+
if (isAborted(overrides?.signal)) return abortedResponse();
|
|
12051
12312
|
return this.httpPostOnce(url, data, headers, overrides);
|
|
12052
12313
|
}
|
|
12053
12314
|
/**
|
|
@@ -12927,6 +13188,19 @@ function validateApprovalReminder(node, path3) {
|
|
|
12927
13188
|
}
|
|
12928
13189
|
return [];
|
|
12929
13190
|
}
|
|
13191
|
+
function validateHitlTimeoutHours(node, path3) {
|
|
13192
|
+
const h = node.timeoutHours;
|
|
13193
|
+
if (typeof h !== "number") return [];
|
|
13194
|
+
if (Number.isFinite(h) && h >= APPROVAL_TIMEOUT_HOURS_MIN && h <= APPROVAL_TIMEOUT_HOURS_MAX) return [];
|
|
13195
|
+
return [
|
|
13196
|
+
{
|
|
13197
|
+
code: "timeout-hours-out-of-range",
|
|
13198
|
+
path: `${path3}.timeoutHours`,
|
|
13199
|
+
severity: "error",
|
|
13200
|
+
message: `timeoutHours must be a number of hours in [${APPROVAL_TIMEOUT_HOURS_MIN}, ${APPROVAL_TIMEOUT_HOURS_MAX}] (got ${h})`
|
|
13201
|
+
}
|
|
13202
|
+
];
|
|
13203
|
+
}
|
|
12930
13204
|
function firstAskDeadline(node) {
|
|
12931
13205
|
const head = Array.isArray(node.onTimeout) ? node.onTimeout[0] : node.onTimeout;
|
|
12932
13206
|
if (typeof head === "object" && head !== null && "escalateTo" in head) {
|
|
@@ -12998,6 +13272,9 @@ function retryBackoffs() {
|
|
|
12998
13272
|
function sleepUntilUnsupportedMessage(id2) {
|
|
12999
13273
|
return `the engine does not execute \`sleepUntil\` yet (node "${id2}") \u2014 replace it with a \`sleep\` node with a \`duration\` in ms, e.g. { type: 'sleep', id: '${id2}', duration: ${SLEEP_UNTIL_REPLACEMENT.duration} }`;
|
|
13000
13274
|
}
|
|
13275
|
+
function signalNameInvalidMessage(id2, name) {
|
|
13276
|
+
return `waitForSignal "${id2}" signal "${name}" must match /${WORKFLOW_SIGNAL_NAME_RE.source}/ (the names a delivery accepts)`;
|
|
13277
|
+
}
|
|
13001
13278
|
function armSubrunUnsupportedMessage(id2, workflowId) {
|
|
13002
13279
|
return `the engine does not execute the implicit \`${workflowId}\` arm subrun (node "${id2}") \u2014 a [map, step] container arm is the step itself with the map as its \`input\` since lua-cli 3.32.4; re-run \`lua compile\` with the current CLI (a hand-written artifact: put the map on the arm node's \`input\` and drop the \`workflow\` wrapper)`;
|
|
13003
13280
|
}
|
|
@@ -13590,10 +13867,13 @@ function validateLuaExtensions(g, caps = WORKFLOW_CAPS_DEFAULT, opts = {
|
|
|
13590
13867
|
const w = node;
|
|
13591
13868
|
checkId(w.id, path3);
|
|
13592
13869
|
if (typeof w.signal !== "string" || w.signal.length === 0) err("invalid-envelope", "waitForSignal.signal is required", `${path3}.signal`, w.id);
|
|
13870
|
+
else if (!WORKFLOW_SIGNAL_NAME_RE.test(w.signal)) err("signal-name-invalid", signalNameInvalidMessage(w.id, w.signal), `${path3}.signal`, w.id);
|
|
13871
|
+
for (const r of validateHitlTimeoutHours(w, path3)) err(r.code, r.message, r.path, w.id);
|
|
13593
13872
|
return;
|
|
13594
13873
|
}
|
|
13595
13874
|
const a = node;
|
|
13596
13875
|
checkId(a.id, path3);
|
|
13876
|
+
for (const r of validateHitlTimeoutHours(a, path3)) err(r.code, r.message, r.path, a.id);
|
|
13597
13877
|
if ((a.approver ?? "creator") === "creator" && a.excludeInitiator === true) {
|
|
13598
13878
|
err("approver-excludes-only-candidate", "approver:'creator' with excludeInitiator:true always excludes the only candidate", path3, a.id);
|
|
13599
13879
|
}
|
|
@@ -16061,7 +16341,7 @@ function collectJobTierSteps(entry, out) {
|
|
|
16061
16341
|
return;
|
|
16062
16342
|
}
|
|
16063
16343
|
}
|
|
16064
|
-
var __defProp6, __name6, WorkflowTemplateError, TEMPLATE_PLACEHOLDER, TEMPLATE_NAMESPACES, MAP_DESCRIPTOR_KEYS, MAP_MEMBER_MALFORMED_CODE, fromInit, fromStep, value, template, fromRequest, rows, fromKnowledge, SideEffectsSchema, JobResourcesSchema, WORKFLOW_MODEL_TEMPLATE_ROOT, WORKFLOW_MODEL_TEMPLATE_RE, PATH_SEGMENT_RE, APPROVER_SPEC_MAX_USERS, ESCALATION_MAX_HOPS, TemplateBindingSchema, ApproverSpecSchema, FourEyesSchema, EscalationHopSchema, TerminalOutcomeSchema, ApprovalOnTimeoutSchema, APPROVER_SPEC_SHAPES, APPROVER_WRITTEN_MAX, USER_ID_SHAPED_RE, BINDING_ROOTS, APPROVAL_REMIND_AFTER_HOURS_MIN, APPROVAL_REMIND_AFTER_HOURS_MAX, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT, WORKFLOW_CAPS_DEFAULT, WORKFLOW_STEP_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_AGENT_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_JOB_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_FOREACH_DEFAULT_CONCURRENCY, WORKFLOW_FOREACH_DEFAULT_MAX_ITEMS, WORKFLOW_LOOP_DEFAULT_MAX_ITERATIONS, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS2, WORKFLOW_SIGNAL_DEFAULT_SOURCES, clone, CONNECTION_ID_HEX_RE, WORKFLOW_JOB_MAX_WORKTREE_ARMS, workspaceOf, mountsWorkspace, isJobTier, jobToolsOf, schemaIsArray, isHitlNode, isSingleStep, singleId, armId, TEMPLATE_STEP_REF, EDITABLE_PATH_RE, PREDICATE_OPS, isPredicateScalar, GRAPH_HASH_PREFIX, WorkflowPlanError, isArmStep, armStepId, armStepKind, joinIdOf, containerIdOf, PATH_PLACEHOLDER, MISSING, stepIdOf, cmp, eq, ne, gt, gte, lt, lte, inSet, notIn, exists, notExists, truthy, falsy, and, or, not, CONTINUED_FAILURE_TAG, CONTINUED_FAILURE_DEFAULT_CODE, CONTINUED_FAILURE_OUTPUT_SCHEMA, CONTINUED_FAILURE_LEAF_PATHS, isHitlNode2, nodeIdOf, GOAL_JUDGE_STEP_ID, NON_LEAF_KINDS, CONDITIONAL_JOIN_ID, branchArmId, canonical, sortKeys, JOIN, entryOfJoin, FORCE_CANCEL_STALE_MS, TERMINAL, WORKFLOW_INLINE_RUN_TAG, RUN_ERROR_ISSUES_MAX, IN_FLIGHT, n, SUSPENDED_FOR_DIMENSIONS, STEP_ERROR_DETAIL_KEYS, STEP_ERROR_DETAIL_MAX_BYTES, DETAIL_MAX_DEPTH, DETAIL_MAX_ITEMS, MAX_HOLIDAYS, MAX_WALK_DAYS, HHMM, YMD, MS_PER_MIN, MS_PER_DAY, MON_FRI, supportedTz, fmtCache, WEEKDAYS, JSON_PATCH_OPS, JSON_PATCH_MAX_OPS, JSON_PATCH_MAX_VALUE_BYTES, JSON_PATCH_MAX_TOTAL_BYTES, SEGMENT_RE, WORKFLOW_SCHEDULE_TYPES, WORKFLOW_SCHEDULE_SHAPE_ISSUE, WORKFLOW_SCHEDULE_SHAPES_HINT, WORKFLOW_SCHEDULE_RUN_AS, isObject, WORKFLOW_ENV_OVERLAY_MAX_KEYS, WORKFLOW_ENV_OVERLAY_MAX_VALUE_BYTES, WORKFLOW_ENV_TEMPLATE_SECRET_KEY_RE, isEnvRef, looksLikeEmbeddedJson, ZERO, isRecord2;
|
|
16344
|
+
var __defProp6, __name6, WorkflowTemplateError, TEMPLATE_PLACEHOLDER, TEMPLATE_NAMESPACES, MAP_DESCRIPTOR_KEYS, MAP_MEMBER_MALFORMED_CODE, fromInit, fromStep, value, template, fromRequest, rows, fromKnowledge, SideEffectsSchema, JobResourcesSchema, WORKFLOW_MODEL_TEMPLATE_ROOT, WORKFLOW_MODEL_TEMPLATE_RE, PATH_SEGMENT_RE, APPROVER_SPEC_MAX_USERS, ESCALATION_MAX_HOPS, TemplateBindingSchema, ApproverSpecSchema, FourEyesSchema, EscalationHopSchema, TerminalOutcomeSchema, ApprovalOnTimeoutSchema, APPROVER_SPEC_SHAPES, APPROVER_WRITTEN_MAX, USER_ID_SHAPED_RE, BINDING_ROOTS, APPROVAL_REMIND_AFTER_HOURS_MIN, APPROVAL_REMIND_AFTER_HOURS_MAX, APPROVAL_TIMEOUT_HOURS_MIN, APPROVAL_TIMEOUT_HOURS_MAX, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT, WORKFLOW_CAPS_DEFAULT, WORKFLOW_STEP_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_AGENT_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_JOB_DEFAULT_TIMEOUT_SECONDS, WORKFLOW_FOREACH_DEFAULT_CONCURRENCY, WORKFLOW_FOREACH_DEFAULT_MAX_ITEMS, WORKFLOW_LOOP_DEFAULT_MAX_ITERATIONS, WORKFLOW_SUSPEND_DEFAULT_TIMEOUT_HOURS2, WORKFLOW_SIGNAL_DEFAULT_SOURCES, clone, CONNECTION_ID_HEX_RE, WORKFLOW_JOB_MAX_WORKTREE_ARMS, workspaceOf, mountsWorkspace, isJobTier, jobToolsOf, schemaIsArray, isHitlNode, isSingleStep, singleId, armId, TEMPLATE_STEP_REF, EDITABLE_PATH_RE, PREDICATE_OPS, isPredicateScalar, GRAPH_HASH_PREFIX, WorkflowPlanError, isArmStep, armStepId, armStepKind, joinIdOf, containerIdOf, PATH_PLACEHOLDER, MISSING, stepIdOf, cmp, eq, ne, gt, gte, lt, lte, inSet, notIn, exists, notExists, truthy, falsy, and, or, not, CONTINUED_FAILURE_TAG, CONTINUED_FAILURE_DEFAULT_CODE, CONTINUED_FAILURE_OUTPUT_SCHEMA, CONTINUED_FAILURE_LEAF_PATHS, isHitlNode2, nodeIdOf, GOAL_JUDGE_STEP_ID, NON_LEAF_KINDS, CONDITIONAL_JOIN_ID, branchArmId, canonical, sortKeys, JOIN, entryOfJoin, FORCE_CANCEL_STALE_MS, TERMINAL, WORKFLOW_INLINE_RUN_TAG, RUN_ERROR_ISSUES_MAX, IN_FLIGHT, n, SUSPENDED_FOR_DIMENSIONS, STEP_ERROR_DETAIL_KEYS, STEP_ERROR_DETAIL_MAX_BYTES, DETAIL_MAX_DEPTH, DETAIL_MAX_ITEMS, MAX_HOLIDAYS, MAX_WALK_DAYS, HHMM, YMD, MS_PER_MIN, MS_PER_DAY, MON_FRI, supportedTz, fmtCache, WEEKDAYS, JSON_PATCH_OPS, JSON_PATCH_MAX_OPS, JSON_PATCH_MAX_VALUE_BYTES, JSON_PATCH_MAX_TOTAL_BYTES, SEGMENT_RE, WORKFLOW_SCHEDULE_TYPES, WORKFLOW_SCHEDULE_SHAPE_ISSUE, WORKFLOW_SCHEDULE_SHAPES_HINT, WORKFLOW_SCHEDULE_RUN_AS, isObject, WORKFLOW_ENV_OVERLAY_MAX_KEYS, WORKFLOW_ENV_OVERLAY_MAX_VALUE_BYTES, WORKFLOW_ENV_TEMPLATE_SECRET_KEY_RE, isEnvRef, looksLikeEmbeddedJson, ZERO, isRecord2;
|
|
16065
16345
|
var init_dist2 = __esm({
|
|
16066
16346
|
"../workflow-graph/dist/index.mjs"() {
|
|
16067
16347
|
"use strict";
|
|
@@ -16270,8 +16550,12 @@ var init_dist2 = __esm({
|
|
|
16270
16550
|
__name6(validateApproverBlock, "validateApproverBlock");
|
|
16271
16551
|
APPROVAL_REMIND_AFTER_HOURS_MIN = 1;
|
|
16272
16552
|
APPROVAL_REMIND_AFTER_HOURS_MAX = 720;
|
|
16553
|
+
APPROVAL_TIMEOUT_HOURS_MIN = 1;
|
|
16554
|
+
APPROVAL_TIMEOUT_HOURS_MAX = 720;
|
|
16273
16555
|
__name(validateApprovalReminder, "validateApprovalReminder");
|
|
16274
16556
|
__name6(validateApprovalReminder, "validateApprovalReminder");
|
|
16557
|
+
__name(validateHitlTimeoutHours, "validateHitlTimeoutHours");
|
|
16558
|
+
__name6(validateHitlTimeoutHours, "validateHitlTimeoutHours");
|
|
16275
16559
|
__name(firstAskDeadline, "firstAskDeadline");
|
|
16276
16560
|
__name6(firstAskDeadline, "firstAskDeadline");
|
|
16277
16561
|
__name(liftRenderedApprover, "liftRenderedApprover");
|
|
@@ -16289,6 +16573,8 @@ var init_dist2 = __esm({
|
|
|
16289
16573
|
});
|
|
16290
16574
|
__name(sleepUntilUnsupportedMessage, "sleepUntilUnsupportedMessage");
|
|
16291
16575
|
__name6(sleepUntilUnsupportedMessage, "sleepUntilUnsupportedMessage");
|
|
16576
|
+
__name(signalNameInvalidMessage, "signalNameInvalidMessage");
|
|
16577
|
+
__name6(signalNameInvalidMessage, "signalNameInvalidMessage");
|
|
16292
16578
|
__name(armSubrunUnsupportedMessage, "armSubrunUnsupportedMessage");
|
|
16293
16579
|
__name6(armSubrunUnsupportedMessage, "armSubrunUnsupportedMessage");
|
|
16294
16580
|
WORKFLOW_WORKSPACE_TTL_MAX_HOURS_DEFAULT = 168;
|
|
@@ -17698,6 +17984,9 @@ var init_workflow = __esm({
|
|
|
17698
17984
|
for (const r of validateApprovalReminder(opts, `approval("${id2}")`)) {
|
|
17699
17985
|
if (r.severity === "error") throw new LuaWorkflowBuildError("remind-after-invalid", `"${id2}": ${r.message}`);
|
|
17700
17986
|
}
|
|
17987
|
+
for (const r of validateHitlTimeoutHours(opts, `approval("${id2}")`)) {
|
|
17988
|
+
throw new LuaWorkflowBuildError("timeout-hours-out-of-range", `"${id2}": ${r.message}`);
|
|
17989
|
+
}
|
|
17701
17990
|
if (typeof opts.details === "function") throw new LuaWorkflowBuildError("closure-binding", `approval("${id2}").details must be template(...)`);
|
|
17702
17991
|
this.recordEnvRefs(opts.details, opts.timeoutHours, opts.approver);
|
|
17703
17992
|
const node = defined({
|
|
@@ -17728,6 +18017,10 @@ var init_workflow = __esm({
|
|
|
17728
18017
|
waitForSignal(id2, opts) {
|
|
17729
18018
|
this.assertId(id2, "waitForSignal()");
|
|
17730
18019
|
if (!opts || typeof opts.signal !== "string" || opts.signal.length === 0) throw new LuaWorkflowBuildError("invalid-envelope", `waitForSignal("${id2}") needs a signal name`);
|
|
18020
|
+
if (!WORKFLOW_SIGNAL_NAME_RE.test(opts.signal)) throw new LuaWorkflowBuildError("signal-name-invalid", signalNameInvalidMessage(id2, opts.signal));
|
|
18021
|
+
for (const r of validateHitlTimeoutHours(opts, `waitForSignal("${id2}")`)) {
|
|
18022
|
+
throw new LuaWorkflowBuildError("timeout-hours-out-of-range", `"${id2}": ${r.message}`);
|
|
18023
|
+
}
|
|
17731
18024
|
this.recordEnvRefs(opts.timeoutHours);
|
|
17732
18025
|
const node = defined({
|
|
17733
18026
|
type: "waitForSignal",
|
|
@@ -17790,7 +18083,7 @@ var init_workflow = __esm({
|
|
|
17790
18083
|
if (this.mapCount >= 2 && this.unnamedMaps > 0) {
|
|
17791
18084
|
this.warnings.push({
|
|
17792
18085
|
code: "map-id-required",
|
|
17793
|
-
message: `${this.unnamedMaps} of ${this.mapCount} map() calls have no explicit id \u2014 positional ids renumber on insert; pass { id } (
|
|
18086
|
+
message: `${this.unnamedMaps} of ${this.mapCount} map() calls have no explicit id \u2014 positional ids renumber on insert; pass { id } to every map() to keep step ids stable`
|
|
17794
18087
|
});
|
|
17795
18088
|
}
|
|
17796
18089
|
if (graphHasHitl(graph, this.steps) && this.config.budget?.maxDurationSeconds === void 0) {
|
|
@@ -20897,10 +21190,15 @@ var init_basket_api_service = __esm({
|
|
|
20897
21190
|
});
|
|
20898
21191
|
|
|
20899
21192
|
// src/instances/user.instance.ts
|
|
21193
|
+
function omit(source, key) {
|
|
21194
|
+
const { [key]: _dropped, ...rest } = source;
|
|
21195
|
+
return rest;
|
|
21196
|
+
}
|
|
20900
21197
|
var UserDataInstance;
|
|
20901
21198
|
var init_user_instance = __esm({
|
|
20902
21199
|
"src/instances/user.instance.ts"() {
|
|
20903
21200
|
"use strict";
|
|
21201
|
+
__name(omit, "omit");
|
|
20904
21202
|
UserDataInstance = class {
|
|
20905
21203
|
static {
|
|
20906
21204
|
__name(this, "UserDataInstance");
|
|
@@ -20916,7 +21214,12 @@ var init_user_instance = __esm({
|
|
|
20916
21214
|
* @returns Proxied instance that allows direct access to data properties
|
|
20917
21215
|
*/
|
|
20918
21216
|
constructor(api, data, profile) {
|
|
20919
|
-
this
|
|
21217
|
+
Object.defineProperty(this, "data", {
|
|
21218
|
+
value: data && typeof data === "object" ? data : {},
|
|
21219
|
+
writable: true,
|
|
21220
|
+
enumerable: false,
|
|
21221
|
+
configurable: true
|
|
21222
|
+
});
|
|
20920
21223
|
Object.defineProperty(this, "userAPI", {
|
|
20921
21224
|
value: api,
|
|
20922
21225
|
writable: true,
|
|
@@ -21028,7 +21331,8 @@ var init_user_instance = __esm({
|
|
|
21028
21331
|
*/
|
|
21029
21332
|
async update(data) {
|
|
21030
21333
|
try {
|
|
21031
|
-
const
|
|
21334
|
+
const payload = data && data.data === this.data ? omit(data, "data") : data;
|
|
21335
|
+
const response = await this.userAPI.update(payload);
|
|
21032
21336
|
this.data = response;
|
|
21033
21337
|
return this.data;
|
|
21034
21338
|
} catch (error) {
|
|
@@ -22279,6 +22583,29 @@ var init_ai_api_service = __esm({
|
|
|
22279
22583
|
}
|
|
22280
22584
|
return result.data;
|
|
22281
22585
|
}
|
|
22586
|
+
async image(body) {
|
|
22587
|
+
return this.httpPost(`/developer/ai/${this.agentId}/image`, body, {});
|
|
22588
|
+
}
|
|
22589
|
+
/**
|
|
22590
|
+
* Handles the simplified-vs-full-options branching for `AI.image`.
|
|
22591
|
+
* Simplified (`AI.image(prompt, options?)`) returns the hosted CDN url string; the options overload
|
|
22592
|
+
* (`AI.image({ prompt, ... })`) returns the full `{ url, model, provider }`.
|
|
22593
|
+
*/
|
|
22594
|
+
async imageForSandbox(promptOrOptions, options) {
|
|
22595
|
+
const simplified = typeof promptOrOptions === "string";
|
|
22596
|
+
const body = simplified ? {
|
|
22597
|
+
prompt: promptOrOptions,
|
|
22598
|
+
...options
|
|
22599
|
+
} : promptOrOptions;
|
|
22600
|
+
const result = await this.image(body);
|
|
22601
|
+
if (!result.success) {
|
|
22602
|
+
throw new Error(result.error?.message || "AI image generation failed");
|
|
22603
|
+
}
|
|
22604
|
+
if (!result.data) {
|
|
22605
|
+
throw new Error("AI image generation failed: empty response");
|
|
22606
|
+
}
|
|
22607
|
+
return simplified ? result.data.url : result.data;
|
|
22608
|
+
}
|
|
22282
22609
|
};
|
|
22283
22610
|
}
|
|
22284
22611
|
});
|
|
@@ -22389,6 +22716,12 @@ var init_integrations_api_service = __esm({
|
|
|
22389
22716
|
});
|
|
22390
22717
|
|
|
22391
22718
|
// src/api/agents.api.service.ts
|
|
22719
|
+
function isAborted2(signal) {
|
|
22720
|
+
return !!signal && signal.aborted === true;
|
|
22721
|
+
}
|
|
22722
|
+
function abortReason(signal) {
|
|
22723
|
+
return signal.reason ?? new DOMException("The operation was aborted", "AbortError");
|
|
22724
|
+
}
|
|
22392
22725
|
function toInvocationOutput(data, callerThreadId) {
|
|
22393
22726
|
const toolNames = /* @__PURE__ */ new Set();
|
|
22394
22727
|
for (const step3 of Array.isArray(data.steps) ? data.steps : []) {
|
|
@@ -22474,9 +22807,15 @@ var init_agents_api_service = __esm({
|
|
|
22474
22807
|
});
|
|
22475
22808
|
if (body.identifier) query.set("identifier", body.identifier);
|
|
22476
22809
|
const chatBody = this.toChatGenerateBody(body);
|
|
22477
|
-
|
|
22478
|
-
|
|
22479
|
-
|
|
22810
|
+
const overrides = {
|
|
22811
|
+
...typeof body.timeoutMs === "number" ? {
|
|
22812
|
+
timeoutMs: body.timeoutMs
|
|
22813
|
+
} : {},
|
|
22814
|
+
...body.signal ? {
|
|
22815
|
+
signal: body.signal
|
|
22816
|
+
} : {}
|
|
22817
|
+
};
|
|
22818
|
+
return this.httpPostCoreDrainRetry(`/chat/generate/${targetAgentId}?${query.toString()}`, chatBody, {}, Object.keys(overrides).length > 0 ? overrides : void 0);
|
|
22480
22819
|
}
|
|
22481
22820
|
/**
|
|
22482
22821
|
* Sandbox overload: mirrors the `AI.generate` pattern where the simplified
|
|
@@ -22487,15 +22826,29 @@ var init_agents_api_service = __esm({
|
|
|
22487
22826
|
const input = typeof promptOrInput === "string" ? {
|
|
22488
22827
|
prompt: promptOrInput
|
|
22489
22828
|
} : promptOrInput;
|
|
22829
|
+
if (isAborted2(input.signal)) throw abortReason(input.signal);
|
|
22490
22830
|
const result = await this.invoke(targetAgentId, input);
|
|
22491
22831
|
if (!result.success) {
|
|
22832
|
+
if (isAborted2(input.signal)) throw abortReason(input.signal);
|
|
22492
22833
|
throw new Error(result.error?.message || "Agent invocation failed");
|
|
22493
22834
|
}
|
|
22494
22835
|
if (!result.data) {
|
|
22495
22836
|
throw new Error("Agent invocation failed: empty response");
|
|
22496
22837
|
}
|
|
22497
|
-
if (typeof promptOrInput === "string") return result.data.text ?? "";
|
|
22498
22838
|
const data = result.data;
|
|
22839
|
+
if (data?.type === "error") {
|
|
22840
|
+
if (isPaymentRequiredChatErrorEnvelope(data)) {
|
|
22841
|
+
throw Object.assign(new Error(data.error || "Payment required"), {
|
|
22842
|
+
name: "AgentInvocationError",
|
|
22843
|
+
code: "PAYMENT_REQUIRED",
|
|
22844
|
+
statusCode: 402
|
|
22845
|
+
});
|
|
22846
|
+
}
|
|
22847
|
+
throw Object.assign(new Error(data.error || "Agent invocation failed"), {
|
|
22848
|
+
name: "AgentInvocationError",
|
|
22849
|
+
code: "AGENT_ERROR"
|
|
22850
|
+
});
|
|
22851
|
+
}
|
|
22499
22852
|
if (data?.type === "preprocessor_blocked") {
|
|
22500
22853
|
throw Object.assign(new Error(data.text || "Agent invocation blocked by preprocessor"), {
|
|
22501
22854
|
name: "AgentInvocationError",
|
|
@@ -22510,6 +22863,7 @@ var init_agents_api_service = __esm({
|
|
|
22510
22863
|
stage: data.governanceBlock?.stage
|
|
22511
22864
|
});
|
|
22512
22865
|
}
|
|
22866
|
+
if (typeof promptOrInput === "string") return data.text ?? "";
|
|
22513
22867
|
return toInvocationOutput(data, input.threadId);
|
|
22514
22868
|
}
|
|
22515
22869
|
/**
|
|
@@ -22530,7 +22884,8 @@ var init_agents_api_service = __esm({
|
|
|
22530
22884
|
code
|
|
22531
22885
|
});
|
|
22532
22886
|
}, "refuse");
|
|
22533
|
-
if (op === "versions.promote" ||
|
|
22887
|
+
if (op === "versions.promote" || // WD — a watchdog rollback changes what a live agent serves, like a promote.
|
|
22888
|
+
op === "versions.rollback" || op === "persona.activate" || op === "versions.delete" || op === "workflows.create" || op === "workflows.push" || op === "workflows.deploy") {
|
|
22534
22889
|
refuse("supervision_release_offline_refused", `${op} is refused offline: a local test never changes a live agent`);
|
|
22535
22890
|
}
|
|
22536
22891
|
if (op === "versions.preview" || op === "agents.list" || op === "agents.get" || op === "source.get" || // U25 — a subscription is live platform state (it starts a deployed trigger): never from a local test.
|
|
@@ -22698,6 +23053,8 @@ var init_agents_api_service = __esm({
|
|
|
22698
23053
|
case "evals.cancel":
|
|
22699
23054
|
case "owner.notify":
|
|
22700
23055
|
case "connections.assign":
|
|
23056
|
+
// SV (LUA-1080) — the live pointers are not exposed on a developer route: platform only.
|
|
23057
|
+
case "primitives.deployed":
|
|
22701
23058
|
return refuse("supervision_offline_unsupported", `${op} is not available offline; run it on the platform`);
|
|
22702
23059
|
default:
|
|
22703
23060
|
return refuse("supervision_unknown_op", `Unknown supervision operation ${String(op)}`);
|
|
@@ -22734,6 +23091,8 @@ var init_agents_api_service = __esm({
|
|
|
22734
23091
|
};
|
|
22735
23092
|
}
|
|
22736
23093
|
};
|
|
23094
|
+
__name(isAborted2, "isAborted");
|
|
23095
|
+
__name(abortReason, "abortReason");
|
|
22737
23096
|
__name(toInvocationOutput, "toInvocationOutput");
|
|
22738
23097
|
__name(runSummary, "runSummary");
|
|
22739
23098
|
__name(supervisedCheck, "supervisedCheck");
|
|
@@ -23363,9 +23722,22 @@ function createWorkflowsRuntime(getApi) {
|
|
|
23363
23722
|
},
|
|
23364
23723
|
async list(opts = {}) {
|
|
23365
23724
|
const api = await getApi();
|
|
23366
|
-
|
|
23725
|
+
let workflowId;
|
|
23726
|
+
if (opts.workflow) {
|
|
23727
|
+
const v = opts.workflow.trim();
|
|
23728
|
+
const defs = await api.getWorkflows({
|
|
23729
|
+
includeDynamic: true
|
|
23730
|
+
});
|
|
23731
|
+
const hit = defs.success && defs.data ? defs.data.workflows.find((w) => w.name === v) ?? defs.data.workflows.find((w) => w.id === v) : void 0;
|
|
23732
|
+
if (hit) workflowId = hit.id;
|
|
23733
|
+
else if (isWorkflowIdShaped(v)) workflowId = v;
|
|
23734
|
+
else {
|
|
23735
|
+
unwrap(defs, "Workflows.list");
|
|
23736
|
+
return [];
|
|
23737
|
+
}
|
|
23738
|
+
}
|
|
23367
23739
|
const page = unwrap(await api.getRuns({
|
|
23368
|
-
workflowId
|
|
23740
|
+
workflowId,
|
|
23369
23741
|
status: opts.status,
|
|
23370
23742
|
limit: opts.limit,
|
|
23371
23743
|
correlationKey: opts.correlationKey,
|
|
@@ -23403,7 +23775,10 @@ function createWorkflowsRuntime(getApi) {
|
|
|
23403
23775
|
...opts
|
|
23404
23776
|
}), "Workflows.signalByKey");
|
|
23405
23777
|
},
|
|
23406
|
-
raiseBudget
|
|
23778
|
+
async raiseBudget(runId, patch) {
|
|
23779
|
+
const api = await getApi();
|
|
23780
|
+
return unwrap(await api.raiseBudget(runId, patch), "Workflows.raiseBudget");
|
|
23781
|
+
},
|
|
23407
23782
|
// Goals are scoped to the bound agent: the IF-21 `agentId` argument is parity with the HTTP twin
|
|
23408
23783
|
// (`/workflows/:agentId/goals`), never a way to reach another agent's goals (403 otherwise).
|
|
23409
23784
|
async setGoal(agentId, goal) {
|
|
@@ -23446,7 +23821,7 @@ function createWorkflowsRuntime(getApi) {
|
|
|
23446
23821
|
}
|
|
23447
23822
|
};
|
|
23448
23823
|
}
|
|
23449
|
-
var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, assertBoundAgent, pathId,
|
|
23824
|
+
var WORKFLOW_START_MAX_WAIT_SECONDS, WORKFLOW_START_CLIENT_DEADLINE_SLACK_MS, WorkflowApiError, unwrap, isWorkflowIdShaped, assertBoundAgent, pathId, WorkflowApi;
|
|
23450
23825
|
var init_workflow_api_service = __esm({
|
|
23451
23826
|
"src/api/workflow.api.service.ts"() {
|
|
23452
23827
|
"use strict";
|
|
@@ -23478,15 +23853,13 @@ var init_workflow_api_service = __esm({
|
|
|
23478
23853
|
}
|
|
23479
23854
|
return res.data;
|
|
23480
23855
|
}, "unwrap");
|
|
23856
|
+
isWorkflowIdShaped = /* @__PURE__ */ __name((v) => /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(v) || /^wfc?_[A-Za-z0-9]/.test(v), "isWorkflowIdShaped");
|
|
23481
23857
|
assertBoundAgent = /* @__PURE__ */ __name((api, agentId, member) => {
|
|
23482
23858
|
if (agentId && agentId !== api.agentId) {
|
|
23483
23859
|
throw new WorkflowApiError("FORBIDDEN", `Workflows.${member}: goals are scoped to the bound agent ${api.agentId}`, 403);
|
|
23484
23860
|
}
|
|
23485
23861
|
}, "assertBoundAgent");
|
|
23486
23862
|
pathId = /* @__PURE__ */ __name((id2) => encodeURIComponent(id2), "pathId");
|
|
23487
|
-
unavailable = /* @__PURE__ */ __name((member, route2) => async () => {
|
|
23488
|
-
throw new WorkflowApiError("WORKFLOWS_API_UNAVAILABLE", `Workflows.${member} is not available in this runtime yet (${route2} lands with a later wave)`, 501);
|
|
23489
|
-
}, "unavailable");
|
|
23490
23863
|
__name(createWorkflowsRuntime, "createWorkflowsRuntime");
|
|
23491
23864
|
WorkflowApi = class extends HttpClient {
|
|
23492
23865
|
static {
|
|
@@ -23926,20 +24299,35 @@ var init_device_api_service = __esm({
|
|
|
23926
24299
|
return this.httpDelete(`/developer/devices/${this.agentId}/${deviceId}`, {});
|
|
23927
24300
|
}
|
|
23928
24301
|
async sendCommand(deviceName, command, payload, timeout) {
|
|
23929
|
-
return this.httpPost(`/developer/devices/${this.agentId}/${deviceName}/command`, {
|
|
24302
|
+
return this.httpPost(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/command`, {
|
|
23930
24303
|
command,
|
|
23931
24304
|
payload,
|
|
23932
24305
|
timeout: timeout || 3e4
|
|
23933
24306
|
}, {});
|
|
23934
24307
|
}
|
|
23935
24308
|
async getDeviceStatus(deviceName) {
|
|
23936
|
-
return this.httpGet(`/developer/devices/${this.agentId}/${deviceName}/status`, {});
|
|
24309
|
+
return this.httpGet(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/status`, {});
|
|
23937
24310
|
}
|
|
23938
24311
|
async enableDevice(deviceName) {
|
|
23939
|
-
return this.httpPatch(`/developer/devices/${this.agentId}/${deviceName}/enable`, {}, {});
|
|
24312
|
+
return this.httpPatch(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/enable`, {}, {});
|
|
23940
24313
|
}
|
|
23941
24314
|
async disableDevice(deviceName) {
|
|
23942
|
-
return this.httpPatch(`/developer/devices/${this.agentId}/${deviceName}/disable`, {}, {});
|
|
24315
|
+
return this.httpPatch(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/disable`, {}, {});
|
|
24316
|
+
}
|
|
24317
|
+
/** Device instances the agent has seen, with live status; self-describing devices only appear here. */
|
|
24318
|
+
async getConnectedDevices() {
|
|
24319
|
+
return this.httpGet(`/developer/devices/${this.agentId}/connected`, {});
|
|
24320
|
+
}
|
|
24321
|
+
/** Fire a trigger as the named device would; the live handler runs. */
|
|
24322
|
+
async fireTrigger(deviceName, triggerName, payload) {
|
|
24323
|
+
return this.httpPost(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/trigger`, {
|
|
24324
|
+
triggerName,
|
|
24325
|
+
payload
|
|
24326
|
+
}, {});
|
|
24327
|
+
}
|
|
24328
|
+
/** Remove a connected device's instance record (not its definition). */
|
|
24329
|
+
async deleteDeviceInstance(deviceName) {
|
|
24330
|
+
return this.httpDelete(`/developer/devices/${this.agentId}/${encodeURIComponent(deviceName)}/instance`, {});
|
|
23943
24331
|
}
|
|
23944
24332
|
};
|
|
23945
24333
|
}
|
|
@@ -24315,6 +24703,14 @@ function requireExpectActiveId(opts, what) {
|
|
|
24315
24703
|
}
|
|
24316
24704
|
__name(requireExpectActiveId, "requireExpectActiveId");
|
|
24317
24705
|
__name2(requireExpectActiveId, "requireExpectActiveId");
|
|
24706
|
+
function optionalCommitHash(opts, what) {
|
|
24707
|
+
const commitHash = opts?.commitHash;
|
|
24708
|
+
if (commitHash === void 0) return void 0;
|
|
24709
|
+
if (typeof commitHash === "string" && commitHash.length > 0) return commitHash;
|
|
24710
|
+
throw typedError("supervision_bad_args", `${what} commitHash must be a non-empty string`);
|
|
24711
|
+
}
|
|
24712
|
+
__name(optionalCommitHash, "optionalCommitHash");
|
|
24713
|
+
__name2(optionalCommitHash, "optionalCommitHash");
|
|
24318
24714
|
function approvalIdsOf(approval) {
|
|
24319
24715
|
if (approval === void 0 || approval === null) return void 0;
|
|
24320
24716
|
if (typeof approval !== "object" || Array.isArray(approval)) return {
|
|
@@ -24393,6 +24789,20 @@ function buildSupervisionAgentsApi(call2) {
|
|
|
24393
24789
|
delete: /* @__PURE__ */ __name2((version) => call2("versions.delete", agentId, {
|
|
24394
24790
|
version
|
|
24395
24791
|
}), "delete"),
|
|
24792
|
+
/**
|
|
24793
|
+
* WD — restore a previously-active, OLDER `version` (watchdog grant; last 7 days; only from a workflow step the
|
|
24794
|
+
* grant names). Compare-and-swap: `expectActive` is the active version number now (required, never null).
|
|
24795
|
+
*/
|
|
24796
|
+
rollback: /* @__PURE__ */ __name2(async (version, opts) => {
|
|
24797
|
+
const expectActive = requireExpectActive(opts, "versions.rollback");
|
|
24798
|
+
if (expectActive === null) {
|
|
24799
|
+
throw typedError("supervision_expect_active_required", "versions.rollback requires { expectActive } \u2014 the active version number (a rollback needs one)");
|
|
24800
|
+
}
|
|
24801
|
+
return call2("versions.rollback", agentId, {
|
|
24802
|
+
version,
|
|
24803
|
+
expectActive
|
|
24804
|
+
});
|
|
24805
|
+
}, "rollback"),
|
|
24396
24806
|
// wave 2 U11
|
|
24397
24807
|
/**
|
|
24398
24808
|
* U11 (DOC2 §6.1) — open a TEST SESSION on staged `opts.version`: multi-turn `chat`, `fire`, `effects()` and
|
|
@@ -24430,11 +24840,18 @@ function buildSupervisionAgentsApi(call2) {
|
|
|
24430
24840
|
}
|
|
24431
24841
|
}), "push"),
|
|
24432
24842
|
/** Publish workflow `version`. Compare-and-swap: refused unless `expectActive` is the live version id. */
|
|
24433
|
-
deploy: /* @__PURE__ */ __name2(async (workflowId, version, opts) =>
|
|
24434
|
-
|
|
24435
|
-
|
|
24436
|
-
|
|
24437
|
-
|
|
24843
|
+
deploy: /* @__PURE__ */ __name2(async (workflowId, version, opts) => {
|
|
24844
|
+
const expectActive = requireExpectActiveId(opts, "workflows.deploy");
|
|
24845
|
+
const commitHash = optionalCommitHash(opts, "workflows.deploy");
|
|
24846
|
+
return call2("workflows.deploy", agentId, {
|
|
24847
|
+
workflowId,
|
|
24848
|
+
version,
|
|
24849
|
+
expectActive,
|
|
24850
|
+
...commitHash !== void 0 ? {
|
|
24851
|
+
commitHash
|
|
24852
|
+
} : {}
|
|
24853
|
+
});
|
|
24854
|
+
}, "deploy")
|
|
24438
24855
|
}), "workflows"),
|
|
24439
24856
|
persona: /* @__PURE__ */ __name2((agentId) => ({
|
|
24440
24857
|
versions: /* @__PURE__ */ __name2(() => call2("persona.versions", agentId), "versions"),
|
|
@@ -24455,6 +24872,12 @@ function buildSupervisionAgentsApi(call2) {
|
|
|
24455
24872
|
keys: /* @__PURE__ */ __name2(() => call2("env.keys", agentId), "keys")
|
|
24456
24873
|
}), "env"),
|
|
24457
24874
|
/**
|
|
24875
|
+
* SV (LUA-1080) — what `agentId` serves RIGHT NOW: its live skills (with tools), the published persona and its
|
|
24876
|
+
* pre/postprocessors, each with the version id an agent version snapshot would pin. Works with no promoted agent
|
|
24877
|
+
* version, so a release can diff live against a staged version. Metadata and hashes only (`observe`).
|
|
24878
|
+
*/
|
|
24879
|
+
deployed: /* @__PURE__ */ __name2((agentId) => call2("primitives.deployed", agentId), "deployed"),
|
|
24880
|
+
/**
|
|
24458
24881
|
* U25 — supervision events of the target (`observe`): each event of a subscribed kind starts
|
|
24459
24882
|
* one of the CALLER's own triggers (`triggerName`) with a `source: 'supervision'` body.
|
|
24460
24883
|
*/
|
|
@@ -25189,6 +25612,12 @@ var PreProcessor = class {
|
|
|
25189
25612
|
return this.executeFunction(user, messages, channel);
|
|
25190
25613
|
}
|
|
25191
25614
|
};
|
|
25615
|
+
function messageText2(message) {
|
|
25616
|
+
if (typeof message === "string") return message;
|
|
25617
|
+
if (!Array.isArray(message)) return "";
|
|
25618
|
+
return message.filter((p) => !!p && p.type === "text" && typeof p.text === "string").map((p) => p.text).join("\n");
|
|
25619
|
+
}
|
|
25620
|
+
__name(messageText2, "messageText");
|
|
25192
25621
|
var PostProcessor = class {
|
|
25193
25622
|
static {
|
|
25194
25623
|
__name(this, "PostProcessor");
|
|
@@ -25673,20 +26102,20 @@ init_order_instance();
|
|
|
25673
26102
|
|
|
25674
26103
|
// src/api/threads.offline.ts
|
|
25675
26104
|
init_dist();
|
|
25676
|
-
function
|
|
26105
|
+
function unavailable(member) {
|
|
25677
26106
|
return Object.assign(new Error(`Threads.${member} only runs on the Lua platform (deployed or sandbox agents), not in lua test / lua dev`), {
|
|
25678
26107
|
name: "ThreadFollowUpError",
|
|
25679
26108
|
code: THREAD_FOLLOW_UP_ERRORS.UNAVAILABLE
|
|
25680
26109
|
});
|
|
25681
26110
|
}
|
|
25682
|
-
__name(
|
|
26111
|
+
__name(unavailable, "unavailable");
|
|
25683
26112
|
function createOfflineThreadsApi() {
|
|
25684
26113
|
return {
|
|
25685
26114
|
open: /* @__PURE__ */ __name(async () => {
|
|
25686
|
-
throw
|
|
26115
|
+
throw unavailable("open");
|
|
25687
26116
|
}, "open"),
|
|
25688
26117
|
followUp: /* @__PURE__ */ __name(async () => {
|
|
25689
|
-
throw
|
|
26118
|
+
throw unavailable("followUp");
|
|
25690
26119
|
}, "followUp")
|
|
25691
26120
|
};
|
|
25692
26121
|
}
|
|
@@ -26291,6 +26720,11 @@ var AI = {
|
|
|
26291
26720
|
const { getAiInstance: getAiInstance2 } = await Promise.resolve().then(() => (init_lazy_instances(), lazy_instances_exports));
|
|
26292
26721
|
const ai = await getAiInstance2();
|
|
26293
26722
|
return ai.generateForSandbox(promptOrOptions, content);
|
|
26723
|
+
},
|
|
26724
|
+
async image(promptOrOptions, options) {
|
|
26725
|
+
const { getAiInstance: getAiInstance2 } = await Promise.resolve().then(() => (init_lazy_instances(), lazy_instances_exports));
|
|
26726
|
+
const ai = await getAiInstance2();
|
|
26727
|
+
return ai.imageForSandbox(promptOrOptions, options);
|
|
26294
26728
|
}
|
|
26295
26729
|
};
|
|
26296
26730
|
var Integrations = {
|
|
@@ -26634,6 +27068,7 @@ export {
|
|
|
26634
27068
|
log,
|
|
26635
27069
|
lt2 as lt,
|
|
26636
27070
|
lte2 as lte,
|
|
27071
|
+
messageText2 as messageText,
|
|
26637
27072
|
ne2 as ne,
|
|
26638
27073
|
not2 as not,
|
|
26639
27074
|
notExists2 as notExists,
|