lua-cli 3.36.0 → 3.38.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 +43 -13
- package/dist/api-exports.js +295 -3
- package/dist/api-exports.js.map +1 -1
- package/dist/index.js +2320 -153
- package/dist/index.js.map +1 -1
- package/dist/workflow-builder.js +294 -1
- package/dist/workflow-builder.js.map +1 -1
- package/docs/README.md +2 -2
- package/package.json +1 -1
- package/template/package.json +1 -1
package/dist/api-exports.d.ts
CHANGED
|
@@ -218,19 +218,6 @@ declare interface AgentInvocationInput {
|
|
|
218
218
|
};
|
|
219
219
|
}
|
|
220
220
|
|
|
221
|
-
/**
|
|
222
|
-
* LUA-724 (PR 7) — the billed turn's pricing inputs, exactly as chat's settlement event carries
|
|
223
|
-
* them (`chat.service.trackLlmInferenceUsage`): the model that ACTUALLY served the turn (the
|
|
224
|
-
* resolver's code, not the caller's pin), the de-paged `contextInputTokens` (largest single
|
|
225
|
-
* step's prompt — never the whole-turn sum), the tool-call COUNT, and whether the turn ran on
|
|
226
|
-
* the org's own key. `chargedCredits` echoes the gate's answer (true ⇒ the legacy pool deducted
|
|
227
|
-
* in real time; false ⇒ seat org / free turn — settlement meters it).
|
|
228
|
-
*
|
|
229
|
-
* Stamped by the serving pod ONLY on internal-auth turns that carry a billing `operationId`
|
|
230
|
-
* (the workflow agent-step loopback), as the enumerable `luaMeter` top-level field of the
|
|
231
|
-
* generate envelope — never on a Bearer turn, so the public wire is byte-identical. The
|
|
232
|
-
* workflow executor prices the step's `run.budget.spent` from it with `priceModelCall`.
|
|
233
|
-
*/
|
|
234
221
|
declare interface AgentInvocationMeter {
|
|
235
222
|
model?: string;
|
|
236
223
|
contextInputTokens?: number;
|
|
@@ -1457,6 +1444,18 @@ export declare type ChatMessage = TextMessage | ImageMessage | FileMessage;
|
|
|
1457
1444
|
*/
|
|
1458
1445
|
export declare type ContainerArm = StepRef | [LuaMapConfig, StepRef];
|
|
1459
1446
|
|
|
1447
|
+
/** Teams: resource-specific permissions are granted per chat by whoever adds the app; file access is a tenant-wide grant. */
|
|
1448
|
+
declare interface ConversationAccess {
|
|
1449
|
+
/** False when only messages that mention the agent are delivered. */
|
|
1450
|
+
canReadAllMessages: boolean;
|
|
1451
|
+
/** False when people are known only once they speak. */
|
|
1452
|
+
canReadMembers: boolean;
|
|
1453
|
+
/** False when files attached in the conversation cannot be opened. */
|
|
1454
|
+
canReadFiles: boolean;
|
|
1455
|
+
/** Provider permission names the conversation has not granted, e.g. `ChatMessage.Read.Chat`. */
|
|
1456
|
+
missing: string[];
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1460
1459
|
/**
|
|
1461
1460
|
* Who is in the conversation this turn runs in.
|
|
1462
1461
|
*/
|
|
@@ -1501,6 +1500,11 @@ export declare interface ConversationRef {
|
|
|
1501
1500
|
agentId: string;
|
|
1502
1501
|
name?: string;
|
|
1503
1502
|
}>;
|
|
1503
|
+
/**
|
|
1504
|
+
* What the channel lets the agent do in this conversation. Absent when the
|
|
1505
|
+
* platform could not determine it (a shared bot outside Lua's tenant).
|
|
1506
|
+
*/
|
|
1507
|
+
access?: ConversationAccess;
|
|
1504
1508
|
}
|
|
1505
1509
|
|
|
1506
1510
|
/**
|
|
@@ -7740,6 +7744,14 @@ declare interface WorkflowRun {
|
|
|
7740
7744
|
* `lua workflows status` prints the roll-up when it is there and says nothing when it is not.
|
|
7741
7745
|
*/
|
|
7742
7746
|
byModel?: WorkflowRunModelUsageRow[];
|
|
7747
|
+
/**
|
|
7748
|
+
* [WJB-B5] (BAC-671) — the run's token components, summed by the server from the usage rows its charges
|
|
7749
|
+
* were written from (per-call `workflow:job` rows on the Job tier, `llm:inference` rows off it).
|
|
7750
|
+
* `inputTokens` is the UNCACHED prompt; the two cache figures are read and write. Present only once the
|
|
7751
|
+
* server projects it (a metered run on a server that has this change) — the CLI prints nothing otherwise,
|
|
7752
|
+
* and never adds the members together: cache reads are a SUBSET of input on OpenAI-compatible providers.
|
|
7753
|
+
*/
|
|
7754
|
+
tokens?: WorkflowRunTokensDto;
|
|
7743
7755
|
};
|
|
7744
7756
|
/**
|
|
7745
7757
|
* R4: the run's caps and settled spend. `maxCredits` and `remaining` are both absent on an uncapped run (`0` = unset);
|
|
@@ -7757,6 +7769,12 @@ declare interface WorkflowRun {
|
|
|
7757
7769
|
};
|
|
7758
7770
|
reserved?: number;
|
|
7759
7771
|
remaining?: number;
|
|
7772
|
+
/**
|
|
7773
|
+
* [WJB-B5] (BAC-677): the run went PAST its cap and finished anyway — the crossing step was terminal for
|
|
7774
|
+
* the run, so it completed rather than parking for a raise nobody could act on. `true` or ABSENT on the
|
|
7775
|
+
* wire, never `false`; the CLI prints it and never derives it from `spent > maxCredits`.
|
|
7776
|
+
*/
|
|
7777
|
+
exceeded?: boolean;
|
|
7760
7778
|
};
|
|
7761
7779
|
createdAt: string;
|
|
7762
7780
|
startedAt?: string;
|
|
@@ -7787,6 +7805,18 @@ declare interface WorkflowRunModelUsageRow {
|
|
|
7787
7805
|
/** §02 §2.4 run statuses (one union across every section). */
|
|
7788
7806
|
declare type WorkflowRunStatus = 'queued' | 'running' | 'cancellation_requested' | 'gated' | 'suspended' | 'waiting' | 'completed' | 'failed' | 'cancelled' | 'abandoned' | 'timed_out';
|
|
7789
7807
|
|
|
7808
|
+
/**
|
|
7809
|
+
* [WJB-B5] (BAC-671) — the four token figures the server sums per run and per step (`WorkflowRunTokens` in
|
|
7810
|
+
* `@lua/shared-types`). Every member optional: the CLI is a reader of whatever the server sends, and a figure
|
|
7811
|
+
* a server does not project must print as nothing rather than as a zero the run never reported.
|
|
7812
|
+
*/
|
|
7813
|
+
declare interface WorkflowRunTokensDto {
|
|
7814
|
+
inputTokens?: number;
|
|
7815
|
+
cacheReadTokens?: number;
|
|
7816
|
+
cacheCreationTokens?: number;
|
|
7817
|
+
outputTokens?: number;
|
|
7818
|
+
}
|
|
7819
|
+
|
|
7790
7820
|
export declare type WorkflowRunTrigger = 'chat' | 'sdk' | 'api' | 'schedule' | 'webhook' | 'template' | 'workflow' | 'device';
|
|
7791
7821
|
|
|
7792
7822
|
/**
|
package/dist/api-exports.js
CHANGED
|
@@ -18,6 +18,12 @@ var __export = (target, all) => {
|
|
|
18
18
|
import { z } from "zod";
|
|
19
19
|
import { z as z2 } from "zod";
|
|
20
20
|
import { z as z3 } from "zod";
|
|
21
|
+
function isChannelConversationChannel(channel) {
|
|
22
|
+
return !!channel && CHANNEL_CONVERSATION_CHANNELS.includes(channel);
|
|
23
|
+
}
|
|
24
|
+
function isChannelConversationThread(threadId, channel) {
|
|
25
|
+
return !!threadId && isChannelConversationChannel(channel);
|
|
26
|
+
}
|
|
21
27
|
function isPersonaTextObject(value3) {
|
|
22
28
|
if (value3 === null || typeof value3 !== "object" || Array.isArray(value3)) return false;
|
|
23
29
|
const obj = value3;
|
|
@@ -580,6 +586,101 @@ function buildDefaultPersona(agentName) {
|
|
|
580
586
|
function buildPersonalSpaceStartingPersona(agentName) {
|
|
581
587
|
return PERSONAL_SPACE_STARTING_PERSONA.replace(new RegExp(AGENT_NAME_TOKEN.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "g"), () => agentName || "Your assistant");
|
|
582
588
|
}
|
|
589
|
+
function maxDrainsForTier(tier) {
|
|
590
|
+
return tier === "enterprise" ? LOG_DRAIN_MAX_PER_ORG_ENTERPRISE : LOG_DRAIN_MAX_PER_ORG;
|
|
591
|
+
}
|
|
592
|
+
function resolvePresetEndpoint(type, site) {
|
|
593
|
+
const template3 = LOG_DRAIN_ENDPOINT_TEMPLATES[type];
|
|
594
|
+
if (!template3 || !site) return void 0;
|
|
595
|
+
return template3.replace("{site}", site);
|
|
596
|
+
}
|
|
597
|
+
function nextLogDrainQuotaResetAt(now) {
|
|
598
|
+
return new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate() + 1)).toISOString();
|
|
599
|
+
}
|
|
600
|
+
function logDrainQuotaWindowExpired(usage, now) {
|
|
601
|
+
const resetsAt = Date.parse(usage?.resetsAt ?? "");
|
|
602
|
+
if (!Number.isFinite(resetsAt)) return true;
|
|
603
|
+
return now.getTime() >= resetsAt;
|
|
604
|
+
}
|
|
605
|
+
function logDrainQuotaRatio(usage, now) {
|
|
606
|
+
if (!usage) return 0;
|
|
607
|
+
if (now && logDrainQuotaWindowExpired(usage, now)) return 0;
|
|
608
|
+
const dimension = /* @__PURE__ */ __name2((used, limit) => {
|
|
609
|
+
if (!Number.isFinite(limit) || limit <= 0) return 0;
|
|
610
|
+
if (!Number.isFinite(used) || used <= 0) return 0;
|
|
611
|
+
return used / limit;
|
|
612
|
+
}, "dimension");
|
|
613
|
+
return Math.max(dimension(usage.usedEvents, usage.eventsPerDay), dimension(usage.usedBytes, usage.bytesPerDay));
|
|
614
|
+
}
|
|
615
|
+
function logDrainQuotaDegradationForRatio(ratio) {
|
|
616
|
+
if (!Number.isFinite(ratio)) return "none";
|
|
617
|
+
if (ratio >= LOG_DRAIN_QUOTA_PAUSE_RATIO) return "paused";
|
|
618
|
+
if (ratio >= LOG_DRAIN_QUOTA_DROP_INFO_RATIO) return "info_dropped";
|
|
619
|
+
if (ratio >= LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO) return "debug_dropped";
|
|
620
|
+
return "none";
|
|
621
|
+
}
|
|
622
|
+
function logDrainQuotaDegradation(usage, now) {
|
|
623
|
+
return logDrainQuotaDegradationForRatio(logDrainQuotaRatio(usage, now));
|
|
624
|
+
}
|
|
625
|
+
function logDrainQuotaWarned(usage, now) {
|
|
626
|
+
return logDrainQuotaRatio(usage, now) >= LOG_DRAIN_QUOTA_WARN_RATIO;
|
|
627
|
+
}
|
|
628
|
+
function logDrainQuotaDroppedSeverities(degradation) {
|
|
629
|
+
switch (degradation) {
|
|
630
|
+
case "debug_dropped":
|
|
631
|
+
return [
|
|
632
|
+
5
|
|
633
|
+
];
|
|
634
|
+
case "info_dropped":
|
|
635
|
+
return [
|
|
636
|
+
5,
|
|
637
|
+
9
|
|
638
|
+
];
|
|
639
|
+
default:
|
|
640
|
+
return [];
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
function encodeLogCursor(c) {
|
|
644
|
+
return Buffer.from(JSON.stringify({
|
|
645
|
+
t: c.t,
|
|
646
|
+
id: c.id
|
|
647
|
+
}), "utf8").toString("base64url");
|
|
648
|
+
}
|
|
649
|
+
function decodeLogCursor(raw) {
|
|
650
|
+
if (typeof raw !== "string") return null;
|
|
651
|
+
const trimmed = raw.trim();
|
|
652
|
+
if (!trimmed || trimmed.length > LOG_CURSOR_MAX_LENGTH) return null;
|
|
653
|
+
let parsed;
|
|
654
|
+
try {
|
|
655
|
+
parsed = JSON.parse(Buffer.from(trimmed, "base64url").toString("utf8"));
|
|
656
|
+
} catch {
|
|
657
|
+
return null;
|
|
658
|
+
}
|
|
659
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return null;
|
|
660
|
+
const { t, id } = parsed;
|
|
661
|
+
if (typeof t !== "number" || !Number.isSafeInteger(t) || t < 0) return null;
|
|
662
|
+
if (typeof id !== "string" || !id || id.length > LOG_CURSOR_MAX_ID_LENGTH) return null;
|
|
663
|
+
return {
|
|
664
|
+
t,
|
|
665
|
+
id
|
|
666
|
+
};
|
|
667
|
+
}
|
|
668
|
+
function parseLogTimeBound(raw, now = /* @__PURE__ */ new Date()) {
|
|
669
|
+
if (typeof raw !== "string") return null;
|
|
670
|
+
const value3 = raw.trim();
|
|
671
|
+
if (!value3) return null;
|
|
672
|
+
const relative = LOG_RELATIVE_TIME_PATTERN.exec(value3);
|
|
673
|
+
if (relative) {
|
|
674
|
+
const amount = Number(relative[1]);
|
|
675
|
+
const unitMs = RELATIVE_UNIT_MS[relative[2]];
|
|
676
|
+
if (!Number.isFinite(amount) || unitMs === void 0) return null;
|
|
677
|
+
const at2 = now.getTime() - amount * unitMs;
|
|
678
|
+
return Number.isFinite(at2) ? new Date(at2) : null;
|
|
679
|
+
}
|
|
680
|
+
if (!LOG_ISO_TIME_PATTERN.test(value3)) return null;
|
|
681
|
+
const at = Date.parse(value3);
|
|
682
|
+
return Number.isNaN(at) ? null : new Date(at);
|
|
683
|
+
}
|
|
583
684
|
function isRecord(value3) {
|
|
584
685
|
return typeof value3 === "object" && value3 !== null;
|
|
585
686
|
}
|
|
@@ -944,6 +1045,9 @@ function workflowOccurrenceId(lineageId, stepId) {
|
|
|
944
1045
|
function workflowOrgSlotKey(orgId, kind) {
|
|
945
1046
|
return `wf:org:${orgId}:${kind}`;
|
|
946
1047
|
}
|
|
1048
|
+
function workflowJobModelSourceLabel(source) {
|
|
1049
|
+
return WORKFLOW_JOB_MODEL_SOURCE_LABELS[source];
|
|
1050
|
+
}
|
|
947
1051
|
function scheduledTimeKey(scheduledTime) {
|
|
948
1052
|
return scheduledTime.replace(/[^0-9TZ]/g, "");
|
|
949
1053
|
}
|
|
@@ -1254,12 +1358,39 @@ function effectiveAgentFeatures(base, override, rule) {
|
|
|
1254
1358
|
if (rule === "wholesale") return override || base || void 0;
|
|
1255
1359
|
return effectiveAgentFeatureRows(base, override).rows;
|
|
1256
1360
|
}
|
|
1257
|
-
var __defProp2, __name2, CHANNEL_SEND_CHANNELS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, 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, 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_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, WORKFLOW_GOAL_JUDGE_SELF, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES;
|
|
1361
|
+
var __defProp2, __name2, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, CHANNEL_SEND_CHANNELS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, 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, LOG_DRAIN_SOURCES, LOG_DRAIN_MAX_PER_ORG, LOG_DRAIN_MAX_PER_ORG_ENTERPRISE, LOG_DRAIN_ENDPOINT_TEMPLATES, 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_CURSOR_MAX_LENGTH, LOG_CURSOR_MAX_ID_LENGTH, LOG_RELATIVE_TIME_PATTERN, LOG_ISO_TIME_PATTERN, RELATIVE_UNIT_MS, CORE_DRAINING_CODE, CORE_DRAINING_DEFAULT_RETRY_MS, CORE_DRAINING_MAX_RETRY_MS, VoiceNameSchema, PluginProviderSchema, RealtimeProviderSchema, PluginClassSchema, ModelDescriptorSchema, InferenceModelSchema, PluginModelSchema, RealtimeModelSchema, LuaVoiceModelSchema, TurnDetectionSchema, InterruptionSchema, BuiltinAudioClipSchema, AudioConfigSchema, BackgroundAudioEntrySchema, BackgroundAudioSchema, LuaVoiceConfigInnerSchema, LuaVoiceConfigSchema, LuaVoiceRefSchema, LUA_JOB_DEFAULT_TIMEOUT_SECONDS, LUA_JOB_MIN_TIMEOUT_SECONDS, LUA_JOB_MAX_TIMEOUT_SECONDS, KEYS, MAX_BODY_BYTES, MAX_ID_LENGTH, UTC_ISO, TEMPLATE_TRIGGER_URL_ENV_PREFIX, TEMPLATE_INSTALL_POLICY_PER_WORKSPACE_VALUES, SUBJECT_TYPES, SubjectTypeSchema, CREDENTIAL_TYPES, CredentialTypeSchema, DEVICE_OPERATIONS, DeviceOperationSchema, DEVICE_SCOPE_BY_OPERATION, DeviceBindingSchema, IdSchema, SESSION_AUTH_TIME_MAX_S, PrincipalDescriptorSchema, ActorDescriptorSchema, PrincipalOwnerSchema, CredentialLifecycleSchema, GeneralCredentialDescriptorSchema, DeviceCredentialDescriptorSchema, GeneralPrincipalContextSchema, DeviceCredentialPrincipalContextSchema, RawPrincipalContextSchema, PrincipalContextSchema, DeviceCredentialClaimSchema, LUA_CLIENT_HEADER, LUA_CLIENT_APPS, SEMVER_PATTERN, WEB_RELEASE_PATTERN, CLIENT_HEADER_PATTERN, LUA_SESSION_ID_CLAIM, SESSION_REVOKED_CODE, AUTHZ_PROJECTION_VERSION, ProjectedScopeSchema, DisplayRoleSchema, AuthorizationPrincipalSchema, CredentialContextSchema, ProjectionAnomalySchema, ProjectedOrgSchema, ProjectedResourceSchema, CapabilityProfilesSchema, RoleCatalogSchema, EffectiveAuthorizationSchema, ResourcePageSchema, SYSTEM_USER_PREFIX, WORKFLOW_RUN_IN_FLIGHT, WORKFLOW_RUN_IDLE, WORKFLOW_RUN_TERMINAL, WORKFLOW_RUN_STATUSES, WORKFLOW_RUN_GATE_KINDS, WORKFLOW_STEP_STATUSES, WORKFLOW_STEP_IN_FLIGHT, WORKFLOW_SIGNAL_EVENT_SITES, ARCHIVE_WINDOW_MARGIN_DAYS, WORKFLOW_ORG_PURGING_TTL_S, WORKFLOW_ORG_PURGE_FORCE_AFTER_MS, IDEMPOTENCY_HOLDING_STATUSES, WORKFLOW_SCHEDULED_RUN_ID_PREFIX, CLOUD_TASK_RUN_ID_PREFIX, WORKFLOW_SCHEDULE_KEY_MAX, WORKFLOW_SCHEDULE_IDEMPOTENCY_KEY_PREFIX, WORKFLOW_OPERATION_ID_PREFIX, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, WORKFLOW_GOAL_JUDGE_SELF, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES;
|
|
1258
1362
|
var init_dist = __esm({
|
|
1259
1363
|
"../shared-types/dist/index.mjs"() {
|
|
1260
1364
|
"use strict";
|
|
1261
1365
|
__defProp2 = Object.defineProperty;
|
|
1262
1366
|
__name2 = /* @__PURE__ */ __name((target, value3) => __defProp2(target, "name", { value: value3, configurable: true }), "__name");
|
|
1367
|
+
PLUMBING_THREAD_CHANNELS = [
|
|
1368
|
+
"trigger",
|
|
1369
|
+
"template-install",
|
|
1370
|
+
"template-uninstall"
|
|
1371
|
+
];
|
|
1372
|
+
CHANNEL_CONVERSATION_CHANNELS = [
|
|
1373
|
+
"whatsapp",
|
|
1374
|
+
"slack",
|
|
1375
|
+
"teams",
|
|
1376
|
+
"front",
|
|
1377
|
+
"email",
|
|
1378
|
+
"messagebird",
|
|
1379
|
+
"sms",
|
|
1380
|
+
"mms",
|
|
1381
|
+
"rcs",
|
|
1382
|
+
"instagram",
|
|
1383
|
+
"facebook",
|
|
1384
|
+
"imessage"
|
|
1385
|
+
];
|
|
1386
|
+
HIDDEN_THREAD_CHANNELS = [
|
|
1387
|
+
...PLUMBING_THREAD_CHANNELS,
|
|
1388
|
+
...CHANNEL_CONVERSATION_CHANNELS
|
|
1389
|
+
];
|
|
1390
|
+
__name(isChannelConversationChannel, "isChannelConversationChannel");
|
|
1391
|
+
__name2(isChannelConversationChannel, "isChannelConversationChannel");
|
|
1392
|
+
__name(isChannelConversationThread, "isChannelConversationThread");
|
|
1393
|
+
__name2(isChannelConversationThread, "isChannelConversationThread");
|
|
1263
1394
|
__name(isPersonaTextObject, "isPersonaTextObject");
|
|
1264
1395
|
__name2(isPersonaTextObject, "isPersonaTextObject");
|
|
1265
1396
|
__name(flattenPersonaText, "flattenPersonaText");
|
|
@@ -1879,6 +2010,93 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
1879
2010
|
`;
|
|
1880
2011
|
__name(buildPersonalSpaceStartingPersona, "buildPersonalSpaceStartingPersona");
|
|
1881
2012
|
__name2(buildPersonalSpaceStartingPersona, "buildPersonalSpaceStartingPersona");
|
|
2013
|
+
AGENT_LOG_SOURCES = [
|
|
2014
|
+
"skill",
|
|
2015
|
+
"job",
|
|
2016
|
+
"webhook",
|
|
2017
|
+
"trigger",
|
|
2018
|
+
"preprocessor",
|
|
2019
|
+
"postprocessor",
|
|
2020
|
+
"user_message",
|
|
2021
|
+
"agent_response",
|
|
2022
|
+
"agent_error",
|
|
2023
|
+
"runtime",
|
|
2024
|
+
"mcp",
|
|
2025
|
+
"rag",
|
|
2026
|
+
"device",
|
|
2027
|
+
"device-trigger",
|
|
2028
|
+
"model-resolver",
|
|
2029
|
+
"workflow-step",
|
|
2030
|
+
"workflow-script",
|
|
2031
|
+
"workflow"
|
|
2032
|
+
];
|
|
2033
|
+
LOG_DRAIN_SOURCES = [
|
|
2034
|
+
...AGENT_LOG_SOURCES,
|
|
2035
|
+
"execution",
|
|
2036
|
+
// ── phase 2 ──
|
|
2037
|
+
"delivery",
|
|
2038
|
+
"trigger-execution",
|
|
2039
|
+
"job-execution",
|
|
2040
|
+
"workflow-run",
|
|
2041
|
+
"workflow-audit"
|
|
2042
|
+
];
|
|
2043
|
+
LOG_DRAIN_MAX_PER_ORG = 5;
|
|
2044
|
+
LOG_DRAIN_MAX_PER_ORG_ENTERPRISE = 10;
|
|
2045
|
+
__name(maxDrainsForTier, "maxDrainsForTier");
|
|
2046
|
+
__name2(maxDrainsForTier, "maxDrainsForTier");
|
|
2047
|
+
LOG_DRAIN_ENDPOINT_TEMPLATES = {
|
|
2048
|
+
datadog: "https://http-intake.logs.{site}/api/v2/logs"
|
|
2049
|
+
};
|
|
2050
|
+
__name(resolvePresetEndpoint, "resolvePresetEndpoint");
|
|
2051
|
+
__name2(resolvePresetEndpoint, "resolvePresetEndpoint");
|
|
2052
|
+
LOG_DRAIN_QUOTAS = {
|
|
2053
|
+
team: {
|
|
2054
|
+
eventsPerDay: 1e6,
|
|
2055
|
+
bytesPerDay: 1 * 1024 ** 3
|
|
2056
|
+
},
|
|
2057
|
+
business: {
|
|
2058
|
+
eventsPerDay: 1e7,
|
|
2059
|
+
bytesPerDay: 10 * 1024 ** 3
|
|
2060
|
+
},
|
|
2061
|
+
enterprise: {
|
|
2062
|
+
eventsPerDay: Number.MAX_SAFE_INTEGER,
|
|
2063
|
+
bytesPerDay: Number.MAX_SAFE_INTEGER
|
|
2064
|
+
}
|
|
2065
|
+
};
|
|
2066
|
+
LOG_DRAIN_QUOTA_WARN_RATIO = 0.8;
|
|
2067
|
+
LOG_DRAIN_QUOTA_DROP_DEBUG_RATIO = 1;
|
|
2068
|
+
LOG_DRAIN_QUOTA_DROP_INFO_RATIO = 1.25;
|
|
2069
|
+
LOG_DRAIN_QUOTA_PAUSE_RATIO = 1.5;
|
|
2070
|
+
__name(nextLogDrainQuotaResetAt, "nextLogDrainQuotaResetAt");
|
|
2071
|
+
__name2(nextLogDrainQuotaResetAt, "nextLogDrainQuotaResetAt");
|
|
2072
|
+
__name(logDrainQuotaWindowExpired, "logDrainQuotaWindowExpired");
|
|
2073
|
+
__name2(logDrainQuotaWindowExpired, "logDrainQuotaWindowExpired");
|
|
2074
|
+
__name(logDrainQuotaRatio, "logDrainQuotaRatio");
|
|
2075
|
+
__name2(logDrainQuotaRatio, "logDrainQuotaRatio");
|
|
2076
|
+
__name(logDrainQuotaDegradationForRatio, "logDrainQuotaDegradationForRatio");
|
|
2077
|
+
__name2(logDrainQuotaDegradationForRatio, "logDrainQuotaDegradationForRatio");
|
|
2078
|
+
__name(logDrainQuotaDegradation, "logDrainQuotaDegradation");
|
|
2079
|
+
__name2(logDrainQuotaDegradation, "logDrainQuotaDegradation");
|
|
2080
|
+
__name(logDrainQuotaWarned, "logDrainQuotaWarned");
|
|
2081
|
+
__name2(logDrainQuotaWarned, "logDrainQuotaWarned");
|
|
2082
|
+
__name(logDrainQuotaDroppedSeverities, "logDrainQuotaDroppedSeverities");
|
|
2083
|
+
__name2(logDrainQuotaDroppedSeverities, "logDrainQuotaDroppedSeverities");
|
|
2084
|
+
LOG_CURSOR_MAX_LENGTH = 512;
|
|
2085
|
+
LOG_CURSOR_MAX_ID_LENGTH = 128;
|
|
2086
|
+
LOG_RELATIVE_TIME_PATTERN = /^(\d{1,9})([smhd])$/;
|
|
2087
|
+
LOG_ISO_TIME_PATTERN = /^\d{4}-\d{2}-\d{2}([Tt ]\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?([Zz]|[+-]\d{2}:?\d{2})?)?$/;
|
|
2088
|
+
RELATIVE_UNIT_MS = {
|
|
2089
|
+
s: 1e3,
|
|
2090
|
+
m: 6e4,
|
|
2091
|
+
h: 36e5,
|
|
2092
|
+
d: 864e5
|
|
2093
|
+
};
|
|
2094
|
+
__name(encodeLogCursor, "encodeLogCursor");
|
|
2095
|
+
__name2(encodeLogCursor, "encodeLogCursor");
|
|
2096
|
+
__name(decodeLogCursor, "decodeLogCursor");
|
|
2097
|
+
__name2(decodeLogCursor, "decodeLogCursor");
|
|
2098
|
+
__name(parseLogTimeBound, "parseLogTimeBound");
|
|
2099
|
+
__name2(parseLogTimeBound, "parseLogTimeBound");
|
|
1882
2100
|
CORE_DRAINING_CODE = "CORE_DRAINING";
|
|
1883
2101
|
CORE_DRAINING_DEFAULT_RETRY_MS = 1e3;
|
|
1884
2102
|
CORE_DRAINING_MAX_RETRY_MS = 5e3;
|
|
@@ -2623,6 +2841,16 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
2623
2841
|
__name(workflowOrgSlotKey, "workflowOrgSlotKey");
|
|
2624
2842
|
__name2(workflowOrgSlotKey, "workflowOrgSlotKey");
|
|
2625
2843
|
WORKFLOW_CONNECTION_KEY_RE = /^[a-z][a-z0-9_-]{0,63}$/;
|
|
2844
|
+
WORKFLOW_JOB_MODEL_SOURCE_LABELS = {
|
|
2845
|
+
stamp: "lease stamp",
|
|
2846
|
+
initData: "run input",
|
|
2847
|
+
default: "placeholder default",
|
|
2848
|
+
node: "node.model",
|
|
2849
|
+
env: "platform default",
|
|
2850
|
+
org: "org default"
|
|
2851
|
+
};
|
|
2852
|
+
__name(workflowJobModelSourceLabel, "workflowJobModelSourceLabel");
|
|
2853
|
+
__name2(workflowJobModelSourceLabel, "workflowJobModelSourceLabel");
|
|
2626
2854
|
__name(scheduledTimeKey, "scheduledTimeKey");
|
|
2627
2855
|
__name2(scheduledTimeKey, "scheduledTimeKey");
|
|
2628
2856
|
__name(scheduledWorkflowRunIdForTime, "scheduledWorkflowRunIdForTime");
|
|
@@ -2856,7 +3084,23 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
2856
3084
|
* gated and nobody approved it, and conflating the two would make "who approved this run"
|
|
2857
3085
|
* unanswerable for every run of either kind (§H2 "Audit").
|
|
2858
3086
|
*/
|
|
2859
|
-
"workflow.run.autonomy_applied"
|
|
3087
|
+
"workflow.run.autonomy_applied",
|
|
3088
|
+
// --- run budget cap enforcement (Job-tier billing plan D4; BAC-677) ---
|
|
3089
|
+
/**
|
|
3090
|
+
* The audit twin of the `run.budget_exceeded` run event (WJB-B2a): the run overshot its
|
|
3091
|
+
* `budget.maxCredits` on its LAST step and completed anyway, `budget.exceeded: true`. The budget family
|
|
3092
|
+
* already mirrors run events here — `workflow.run.budget_parked` / `workflow.run.budget_raised` are the
|
|
3093
|
+
* twins of `run.budget_parked` / `run.budget_raised` — and an organisation reviewing what it was charged
|
|
3094
|
+
* needs the overshoot in the audit store beside the raise that preceded it, not only in the run's own
|
|
3095
|
+
* event stream.
|
|
3096
|
+
*
|
|
3097
|
+
* Declared with the run event rather than after it because the emitter port
|
|
3098
|
+
* (`WorkflowAuditPort.action`, typed `workflow.run.${string}`) does not check against this tuple: a name
|
|
3099
|
+
* that is NOT declared here is written to the audit store all the same and no compiler says so.
|
|
3100
|
+
* Declaring it is what makes the later emitter checkable. `workflow.run.budget_parked` is likewise
|
|
3101
|
+
* declared and not yet emitted.
|
|
3102
|
+
*/
|
|
3103
|
+
"workflow.run.budget_exceeded"
|
|
2860
3104
|
];
|
|
2861
3105
|
WORKFLOW_AUDIT_METADATA_MAX_BYTES = 4 * 1024;
|
|
2862
3106
|
__name(isWorkflowAuditEvent, "isWorkflowAuditEvent");
|
|
@@ -6494,6 +6738,49 @@ function graphHasJobTierStep(envelopeOrGraph) {
|
|
|
6494
6738
|
const graph = Array.isArray(envelopeOrGraph) ? envelopeOrGraph : env2.definition?.graph ?? [];
|
|
6495
6739
|
return Array.isArray(graph) && graph.some(entryHasJobTier);
|
|
6496
6740
|
}
|
|
6741
|
+
function jobTierSteps(envelopeOrGraph) {
|
|
6742
|
+
const out = [];
|
|
6743
|
+
if (!envelopeOrGraph || typeof envelopeOrGraph !== "object") return out;
|
|
6744
|
+
const env2 = envelopeOrGraph;
|
|
6745
|
+
const graph = Array.isArray(envelopeOrGraph) ? envelopeOrGraph : env2.definition?.graph ?? [];
|
|
6746
|
+
if (!Array.isArray(graph)) return out;
|
|
6747
|
+
for (const entry of graph) collectJobTierSteps(entry, out);
|
|
6748
|
+
return out;
|
|
6749
|
+
}
|
|
6750
|
+
function jobTierStepIds(envelopeOrGraph) {
|
|
6751
|
+
return jobTierSteps(envelopeOrGraph).map((s) => s.stepId);
|
|
6752
|
+
}
|
|
6753
|
+
function collectJobTierSteps(entry, out) {
|
|
6754
|
+
const n2 = armEntry2(entry);
|
|
6755
|
+
if (!n2 || typeof n2 !== "object") return;
|
|
6756
|
+
const node = n2;
|
|
6757
|
+
const ws = node.workspace;
|
|
6758
|
+
if (node.tier === "job" || ws !== void 0 && ws !== "inherit") {
|
|
6759
|
+
const stepId = typeof node.id === "string" && node.id ? node.id : "(unnamed)";
|
|
6760
|
+
const model = typeof node.model === "string" && node.model.trim() ? node.model.trim() : void 0;
|
|
6761
|
+
out.push(model === void 0 ? {
|
|
6762
|
+
stepId
|
|
6763
|
+
} : {
|
|
6764
|
+
stepId,
|
|
6765
|
+
model
|
|
6766
|
+
});
|
|
6767
|
+
}
|
|
6768
|
+
switch (node.type) {
|
|
6769
|
+
case "parallel":
|
|
6770
|
+
if (Array.isArray(node.steps)) for (const s of node.steps) collectJobTierSteps(s, out);
|
|
6771
|
+
return;
|
|
6772
|
+
case "conditional":
|
|
6773
|
+
if (Array.isArray(node.steps)) for (const s of node.steps) collectJobTierSteps(s, out);
|
|
6774
|
+
if (node.otherwise !== void 0) collectJobTierSteps(node.otherwise, out);
|
|
6775
|
+
return;
|
|
6776
|
+
case "foreach":
|
|
6777
|
+
case "loop":
|
|
6778
|
+
collectJobTierSteps(node.step, out);
|
|
6779
|
+
return;
|
|
6780
|
+
default:
|
|
6781
|
+
return;
|
|
6782
|
+
}
|
|
6783
|
+
}
|
|
6497
6784
|
var __defProp4, __name4, 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, WORKSPACE_TEMPLATE_EXPR_RE, SLEEP_UNTIL_REPLACEMENT, 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_HOURS, 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, 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;
|
|
6498
6785
|
var init_dist2 = __esm({
|
|
6499
6786
|
"../workflow-graph/dist/index.mjs"() {
|
|
@@ -7298,6 +7585,12 @@ var init_dist2 = __esm({
|
|
|
7298
7585
|
__name4(entryHasJobTier, "entryHasJobTier");
|
|
7299
7586
|
__name(graphHasJobTierStep, "graphHasJobTierStep");
|
|
7300
7587
|
__name4(graphHasJobTierStep, "graphHasJobTierStep");
|
|
7588
|
+
__name(jobTierSteps, "jobTierSteps");
|
|
7589
|
+
__name4(jobTierSteps, "jobTierSteps");
|
|
7590
|
+
__name(jobTierStepIds, "jobTierStepIds");
|
|
7591
|
+
__name4(jobTierStepIds, "jobTierStepIds");
|
|
7592
|
+
__name(collectJobTierSteps, "collectJobTierSteps");
|
|
7593
|
+
__name4(collectJobTierSteps, "collectJobTierSteps");
|
|
7301
7594
|
}
|
|
7302
7595
|
});
|
|
7303
7596
|
|
|
@@ -8256,7 +8549,6 @@ var init_constants = __esm({
|
|
|
8256
8549
|
API: process.env.LUA_API_URL || "https://api.heylua.ai",
|
|
8257
8550
|
AUTH: process.env.LUA_AUTH_URL || "https://auth.heylua.ai",
|
|
8258
8551
|
CHAT: process.env.LUA_API_URL || "https://api.heylua.ai",
|
|
8259
|
-
WEBHOOK: process.env.LUA_WEBHOOK_URL || "https://webhook.heylua.ai",
|
|
8260
8552
|
CDN: "https://cdn.heylua.ai"
|
|
8261
8553
|
};
|
|
8262
8554
|
CREDENTIALS_FILE = join(CLI_CONFIG_DIR, "credentials");
|