lua-cli 3.39.3 → 3.39.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-exports.d.ts +198 -0
- package/dist/api-exports.js +174 -8
- package/dist/api-exports.js.map +1 -1
- package/dist/index.js +132 -20
- package/dist/index.js.map +1 -1
- package/dist/workflow-builder.js +76 -0
- package/dist/workflow-builder.js.map +1 -1
- package/package.json +6 -4
- package/template/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -957,6 +957,9 @@ function isInteractiveTurn(turn) {
|
|
|
957
957
|
function removeNavigateBlock(input) {
|
|
958
958
|
return input.replace(/::: navigate[\s\S]*?:::/g, "").trim();
|
|
959
959
|
}
|
|
960
|
+
function removeHiddenBlocks(input) {
|
|
961
|
+
return input.replace(/::: hide\b[\s\S]*?:::/gi, "").replace(/::: hide\b[\s\S]*$/gi, "").trim();
|
|
962
|
+
}
|
|
960
963
|
function transformChatHistoryContentParts(parts) {
|
|
961
964
|
const content = [];
|
|
962
965
|
for (const rawPart of parts ?? []) {
|
|
@@ -2812,7 +2815,44 @@ function parseOnboardingFlow(value3) {
|
|
|
2812
2815
|
function parsePublishedOnboardingResponse(value3) {
|
|
2813
2816
|
return getPublishedOnboardingResponseSchema.parse(value3);
|
|
2814
2817
|
}
|
|
2815
|
-
|
|
2818
|
+
function isForwardableWebRouteRequestHeader(name) {
|
|
2819
|
+
const n2 = name.toLowerCase();
|
|
2820
|
+
return WEB_ROUTE_REQUEST_HEADER_ALLOWLIST.includes(n2) || n2.startsWith("x-lua-");
|
|
2821
|
+
}
|
|
2822
|
+
function isForwardableWebRouteResponseHeader(name) {
|
|
2823
|
+
const n2 = name.toLowerCase();
|
|
2824
|
+
if (n2 === "set-cookie") return false;
|
|
2825
|
+
return WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST.includes(n2) || n2.startsWith("x-lua-");
|
|
2826
|
+
}
|
|
2827
|
+
function isWebRouteBody(value3) {
|
|
2828
|
+
if (!value3 || typeof value3 !== "object") return false;
|
|
2829
|
+
const b = value3;
|
|
2830
|
+
if (b.kind === "json") return "value" in b;
|
|
2831
|
+
if (b.kind === "text" || b.kind === "base64") return typeof b.value === "string";
|
|
2832
|
+
return false;
|
|
2833
|
+
}
|
|
2834
|
+
function isWebRouteInput(value3) {
|
|
2835
|
+
if (!value3 || typeof value3 !== "object") return false;
|
|
2836
|
+
const v = value3;
|
|
2837
|
+
if (v.v !== WEB_ROUTE_PROTOCOL_VERSION) return false;
|
|
2838
|
+
const r = v.request;
|
|
2839
|
+
if (!r || typeof r !== "object") return false;
|
|
2840
|
+
if (!WEB_ROUTE_METHODS.includes(String(r.method))) return false;
|
|
2841
|
+
if (typeof r.path !== "string" || !r.path.startsWith("/")) return false;
|
|
2842
|
+
if (!r.params || typeof r.params !== "object") return false;
|
|
2843
|
+
if (!r.query || typeof r.query !== "object") return false;
|
|
2844
|
+
if (!r.headers || typeof r.headers !== "object") return false;
|
|
2845
|
+
if (r.body !== void 0) {
|
|
2846
|
+
if (r.method === "GET") return false;
|
|
2847
|
+
if (!isWebRouteBody(r.body)) return false;
|
|
2848
|
+
}
|
|
2849
|
+
const a = v.auth;
|
|
2850
|
+
if (!a || typeof a.userId !== "string" || typeof a.orgId !== "string" || typeof a.agentId !== "string") return false;
|
|
2851
|
+
const app = v.app;
|
|
2852
|
+
if (!app || typeof app.id !== "string" || typeof app.name !== "string" || typeof app.origin !== "string") return false;
|
|
2853
|
+
return true;
|
|
2854
|
+
}
|
|
2855
|
+
var __defProp2, __name2, PLUMBING_THREAD_CHANNELS, CHANNEL_CONVERSATION_CHANNELS, HIDDEN_THREAD_CHANNELS, REVIEWABLE_ACTION_EXECUTE_TOOL_ALLOWLIST, REVIEWABLE_STANDING_START_TOOLS, REVIEWABLE_MCP_SEND_TOOL_SUFFIX, MCP_TOOL_READ_VERB_RE, MCP_DRAFT_CREATE_VERBS, NON_INTERACTIVE_CHANNELS, RICH_PARTS_MESSAGE_ID_PREFIX, SCREENSHOT_MESSAGE_ID_PREFIX, BROWSER_COMMANDS, BROWSER_COMMAND_NAMES, LOG_FIELDS_MAX_KEYS, LOG_FIELD_MAX_VALUE_BYTES, LOG_FIELDS_MAX_BYTES, LOG_FIELD_KEY_PATTERN, LOG_FIELD_SECRET_SHAPED_KEY_PATTERNS, LOG_FIELDS_CLAMPED_KEY, LOG_FIELD_ARRAY_COUNT_SUFFIX, LuaLogFieldsError, DESKTOP_FILE_COMMANDS, DESKTOP_FILE_COMMAND_SET, WORKFLOW_RETRY_BACKOFFS, WORKFLOW_RETRY_MIN_ATTEMPTS, WORKFLOW_RETRY_POLICY_KEYS, WORKFLOW_RETRY_MAX_ATTEMPTS, WORKFLOW_RETRY_ENGINE_KEYS, WORKFLOW_JOB_RESOURCES, WORKFLOW_SIDE_EFFECTS, WORKFLOW_AGENT_EFFORTS, WORKFLOW_MODEL_CLASSES, WORKFLOW_TASK_CLASSES, WORKFLOW_MODEL_TRAITS, WORKFLOW_MODEL_REASON_MAX_LENGTH, WORKFLOW_MODELS_COMPOSE_MODES, WORKFLOW_MODELS_PIN_MODES, WORKFLOW_MODELS_FALLBACK_MODES, WORKFLOW_MODELS_CONSENT_ACTIONS_MIN, WORKFLOW_DEFAULT_TASK_CLASS_MAP, WORKFLOW_MODELS_MAX_CLASS_DEFAULT, WORKFLOW_AUTONOMY_FORMS, WORKFLOW_AUTONOMY_NUMERIC_KEYS, WORKFLOW_AUTONOMY_ENVELOPE_KEYS, WORKFLOW_AUTONOMY_ENABLED_DEFAULT, 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_ENVIRONMENTS, AGENT_LOG_FIELDS_MAX_WIRE_KEYS, LOG_DRAIN_TYPES_PHASE1, LOG_DRAIN_TYPES_PHASE2, LOG_DRAIN_TYPES_IMPLEMENTED, LOG_DRAIN_FORMATS, LOG_DRAIN_SEVERITIES, LOG_DRAIN_SOURCES, LOG_DRAIN_CONTENT_SOURCES, LOG_DRAIN_DEFAULT_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, EventType, 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, TYPED_API_KEY, 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_JOURNAL_PROTOCOL_VERSION, WORKFLOW_CONNECTION_KEY_RE, WORKFLOW_JOB_MODEL_SOURCE_LABELS, WORKFLOW_SUSPEND_KINDS, WORKFLOW_RUN_NOTIFICATION_SUSPENDED_KINDS, WORKFLOW_SIGNAL_PAYLOAD_MAX_BYTES, WORKFLOW_RESOLVE_OUTPUT_MAX_BYTES, WORKFLOW_GOAL_JUDGE_SELF, REDACTED_PLACEHOLDER, PROVIDER_MESSAGE_MAX_CHARS, ERROR_MESSAGE_MAX_CHARS, SECRET_LITERAL_PATTERNS, SECRET_NAME, SECRET_PAIR_PATTERNS, GROUP_COUNT, WORKFLOW_SECRET_KEY_RE, WORKFLOW_RESERVED_SECRET_KEYS, SCRUB_INPUT_MAX_CHARS, SCRUB_CUT_BACKOFF_CHARS, WORKFLOW_AUDIT_EVENTS, WORKFLOW_AUDIT_METADATA_MAX_BYTES, INDENT, WRAP_WIDTH, NOUNS, GET_TOOL_NAMES, PREAMBLE, WORKFLOW_APPROVAL_OUTPUT_DECISIONS, WORKFLOW_APPROVAL_OUTPUT_SCHEMA, JSON_FENCE_RE, DEFAULT_ON_AGENT_FEATURES, SUBAGENT_PER_KEY_FLAG_ENV, PER_KEY_FLAG_VALUES, ONBOARDING_FLOW_KEY, ONBOARDING_SCHEMA_VERSION, id, copy, onboardingHeadingSchema, onboardingRichTextInlineSchema, onboardingRichTextSchema, onboardingDestinationSchema, onboardingArtworkSchema, onboardingAnswerSchema, onboardingQuestionSchema, onboardingTemplateSectionSchema, onboardingTemplateContentSchema, onboardingUnavailableOutcomeSchema, onboardingFlowSchema, onboardingActorSchema, onboardingEditorSchema, onboardingPublicationSummarySchema, onboardingValidationIssueSchema, onboardingValidationResponseSchema, onboardingAssetSchema, onboardingPublicAssetSchema, getOnboardingConfigResponseSchema, saveOnboardingDraftRequestSchema, validateOnboardingRequestSchema, publishOnboardingRequestSchema, rollbackOnboardingRequestSchema, onboardingTemplateCatalogItemSchema, getPublishedOnboardingResponseSchema, WEB_ROUTE_PROTOCOL_VERSION, WEB_ROUTE_METHODS, WEB_ROUTE_REQUEST_HEADER_ALLOWLIST, WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST, WEB_ROUTE_MAX_REQUEST_BODY_BYTES, WEB_ROUTE_MAX_RESPONSE_BYTES;
|
|
2816
2856
|
var init_dist = __esm({
|
|
2817
2857
|
"../shared-types/dist/index.mjs"() {
|
|
2818
2858
|
"use strict";
|
|
@@ -2912,6 +2952,8 @@ var init_dist = __esm({
|
|
|
2912
2952
|
__name2(isInteractiveTurn, "isInteractiveTurn");
|
|
2913
2953
|
__name(removeNavigateBlock, "removeNavigateBlock");
|
|
2914
2954
|
__name2(removeNavigateBlock, "removeNavigateBlock");
|
|
2955
|
+
__name(removeHiddenBlocks, "removeHiddenBlocks");
|
|
2956
|
+
__name2(removeHiddenBlocks, "removeHiddenBlocks");
|
|
2915
2957
|
__name(transformChatHistoryContentParts, "transformChatHistoryContentParts");
|
|
2916
2958
|
__name2(transformChatHistoryContentParts, "transformChatHistoryContentParts");
|
|
2917
2959
|
RICH_PARTS_MESSAGE_ID_PREFIX = "rich-parts:";
|
|
@@ -3544,6 +3586,7 @@ This text is who you are for this person. As you learn them, their name, their w
|
|
|
3544
3586
|
"skill",
|
|
3545
3587
|
"job",
|
|
3546
3588
|
"webhook",
|
|
3589
|
+
"web-route",
|
|
3547
3590
|
"trigger",
|
|
3548
3591
|
"preprocessor",
|
|
3549
3592
|
"postprocessor",
|
|
@@ -5309,6 +5352,39 @@ listed here; never invent a target.`;
|
|
|
5309
5352
|
__name2(parseOnboardingFlow, "parseOnboardingFlow");
|
|
5310
5353
|
__name(parsePublishedOnboardingResponse, "parsePublishedOnboardingResponse");
|
|
5311
5354
|
__name2(parsePublishedOnboardingResponse, "parsePublishedOnboardingResponse");
|
|
5355
|
+
WEB_ROUTE_PROTOCOL_VERSION = 1;
|
|
5356
|
+
WEB_ROUTE_METHODS = [
|
|
5357
|
+
"GET",
|
|
5358
|
+
"POST",
|
|
5359
|
+
"PUT",
|
|
5360
|
+
"PATCH",
|
|
5361
|
+
"DELETE"
|
|
5362
|
+
];
|
|
5363
|
+
WEB_ROUTE_REQUEST_HEADER_ALLOWLIST = [
|
|
5364
|
+
"accept",
|
|
5365
|
+
"accept-language",
|
|
5366
|
+
"content-type",
|
|
5367
|
+
"if-none-match",
|
|
5368
|
+
"idempotency-key"
|
|
5369
|
+
];
|
|
5370
|
+
WEB_ROUTE_RESPONSE_HEADER_ALLOWLIST = [
|
|
5371
|
+
"content-type",
|
|
5372
|
+
"cache-control",
|
|
5373
|
+
"etag",
|
|
5374
|
+
"location",
|
|
5375
|
+
"content-disposition",
|
|
5376
|
+
"content-language"
|
|
5377
|
+
];
|
|
5378
|
+
__name(isForwardableWebRouteRequestHeader, "isForwardableWebRouteRequestHeader");
|
|
5379
|
+
__name2(isForwardableWebRouteRequestHeader, "isForwardableWebRouteRequestHeader");
|
|
5380
|
+
__name(isForwardableWebRouteResponseHeader, "isForwardableWebRouteResponseHeader");
|
|
5381
|
+
__name2(isForwardableWebRouteResponseHeader, "isForwardableWebRouteResponseHeader");
|
|
5382
|
+
WEB_ROUTE_MAX_REQUEST_BODY_BYTES = 1 * 1024 * 1024;
|
|
5383
|
+
WEB_ROUTE_MAX_RESPONSE_BYTES = 4 * 1024 * 1024;
|
|
5384
|
+
__name(isWebRouteBody, "isWebRouteBody");
|
|
5385
|
+
__name2(isWebRouteBody, "isWebRouteBody");
|
|
5386
|
+
__name(isWebRouteInput, "isWebRouteInput");
|
|
5387
|
+
__name2(isWebRouteInput, "isWebRouteInput");
|
|
5312
5388
|
}
|
|
5313
5389
|
});
|
|
5314
5390
|
|
|
@@ -30995,17 +31071,34 @@ var PersonaApi = class extends HttpClient {
|
|
|
30995
31071
|
return this.httpGet(`/developer/agents/${this.agentId}/persona/versions${statusParam}`, {});
|
|
30996
31072
|
}
|
|
30997
31073
|
/**
|
|
30998
|
-
* Creates a new persona version
|
|
31074
|
+
* Creates a new persona version.
|
|
31075
|
+
*
|
|
31076
|
+
* PRO-2170: the route STAGES by default — creating a version does not change
|
|
31077
|
+
* what the agent serves. `options.publish` is sent only when the caller
|
|
31078
|
+
* passes it, so an omitted flag means "whatever the server's default is" and
|
|
31079
|
+
* an explicit `false` pins the stage-only intent on the wire (what `lua push`
|
|
31080
|
+
* sends, so a server that ever flips its default cannot silently publish a
|
|
31081
|
+
* push again). Activation is `deployVersion`.
|
|
31082
|
+
*
|
|
30999
31083
|
* @param persona - The persona content (string or channel-aware object)
|
|
31084
|
+
* @param options.publish - `true` = create and serve in one call; `false` = stage only
|
|
31000
31085
|
* @returns Promise resolving to an ApiResponse with the created version
|
|
31001
31086
|
*/
|
|
31002
|
-
async createVersion(persona) {
|
|
31087
|
+
async createVersion(persona, options = {}) {
|
|
31003
31088
|
return this.httpPost(`/developer/agents/${this.agentId}/persona/version`, {
|
|
31004
|
-
persona
|
|
31089
|
+
persona,
|
|
31090
|
+
...options.publish === void 0 ? {} : {
|
|
31091
|
+
publish: options.publish
|
|
31092
|
+
}
|
|
31005
31093
|
}, {});
|
|
31006
31094
|
}
|
|
31007
31095
|
/**
|
|
31008
|
-
* Deploys/activates a persona version to production
|
|
31096
|
+
* Deploys/activates a persona version to production.
|
|
31097
|
+
*
|
|
31098
|
+
* PRO-2170: this is the ONLY path that changes the persona the agent serves.
|
|
31099
|
+
* It re-points the agent, marks the version `published` and demotes the
|
|
31100
|
+
* previously-published one to `staged`.
|
|
31101
|
+
*
|
|
31009
31102
|
* @param version - The version number to deploy
|
|
31010
31103
|
* @returns Promise resolving to an ApiResponse with confirmation
|
|
31011
31104
|
*/
|
|
@@ -31025,9 +31118,15 @@ var PersonaApi = class extends HttpClient {
|
|
|
31025
31118
|
return sorted[0];
|
|
31026
31119
|
}
|
|
31027
31120
|
/**
|
|
31028
|
-
* Gets the latest published persona version
|
|
31029
|
-
*
|
|
31030
|
-
*
|
|
31121
|
+
* Gets the latest published persona version.
|
|
31122
|
+
*
|
|
31123
|
+
* PRO-2170 changed what this means. It used to be "the most recently pushed
|
|
31124
|
+
* version", because a push published every version it created. Now a push
|
|
31125
|
+
* STAGES, so `published` is the version production SERVES, and a local
|
|
31126
|
+
* persona ahead of it is genuine drift (`checkPersonaDrift`) — the same
|
|
31127
|
+
* reading as a pushed-but-not-activated skill. Use `getLatestVersion` (all
|
|
31128
|
+
* statuses) when you want the most recent push instead.
|
|
31129
|
+
*
|
|
31031
31130
|
* @returns Promise resolving to the latest published PersonaVersion or null if none exist
|
|
31032
31131
|
*/
|
|
31033
31132
|
async getLatestPublishedVersion() {
|
|
@@ -31790,7 +31889,9 @@ var AgentHandler = class {
|
|
|
31790
31889
|
}
|
|
31791
31890
|
async pushPersona(ctx, persona) {
|
|
31792
31891
|
const personaApi = new PersonaApi(BASE_URLS.API, ctx.apiKey, ctx.agentId);
|
|
31793
|
-
const result = await personaApi.createVersion(persona
|
|
31892
|
+
const result = await personaApi.createVersion(persona, {
|
|
31893
|
+
publish: false
|
|
31894
|
+
});
|
|
31794
31895
|
return {
|
|
31795
31896
|
success: result.success,
|
|
31796
31897
|
version: result.data?.version
|
|
@@ -33537,6 +33638,7 @@ async function executePushMode(context, drift, primitiveDrift) {
|
|
|
33537
33638
|
const result = await agentHandler.pushPersona(context, drift.persona.localPersona);
|
|
33538
33639
|
if (result.success) {
|
|
33539
33640
|
writeSuccess(`\u2705 Persona version ${result.version} created on server`);
|
|
33641
|
+
writeInfo(` Staged, NOT activated \u2014 activate it with \`lua deploy persona --set-version ${result.version}\`.`);
|
|
33540
33642
|
} else {
|
|
33541
33643
|
console.error("\u274C Failed to push persona");
|
|
33542
33644
|
syncFullySucceeded = false;
|
|
@@ -33745,6 +33847,7 @@ async function handlePersonaDriftInteractive(context, drift) {
|
|
|
33745
33847
|
const result = await agentHandler.pushPersona(context, drift.localPersona);
|
|
33746
33848
|
if (result.success) {
|
|
33747
33849
|
writeSuccess(`\u2705 Persona version ${result.version} created on server`);
|
|
33850
|
+
writeInfo(` Staged, NOT activated \u2014 activate it with \`lua deploy persona --set-version ${result.version}\`.`);
|
|
33748
33851
|
} else {
|
|
33749
33852
|
console.error("\u274C Failed to push persona");
|
|
33750
33853
|
}
|
|
@@ -42575,11 +42678,11 @@ function getDeployHint(type) {
|
|
|
42575
42678
|
};
|
|
42576
42679
|
}
|
|
42577
42680
|
__name(getDeployHint, "getDeployHint");
|
|
42578
|
-
function
|
|
42579
|
-
writeInfo(`\u{1F4A1} Persona v${version}
|
|
42580
|
-
writeInfo(
|
|
42681
|
+
function writePersonaStagedHint(version) {
|
|
42682
|
+
writeInfo(`\u{1F4A1} Persona v${version} staged \u2014 NOT activated. What the agent serves is unchanged.`);
|
|
42683
|
+
writeInfo(` Activate it with \`lua deploy persona --set-version ${version}\` (asks for confirmation first).`);
|
|
42581
42684
|
}
|
|
42582
|
-
__name(
|
|
42685
|
+
__name(writePersonaStagedHint, "writePersonaStagedHint");
|
|
42583
42686
|
async function promptVersionConfirmOrUpdate(currentVersion) {
|
|
42584
42687
|
console.log(`
|
|
42585
42688
|
Current version: ${currentVersion || "(none - first push)"}`);
|
|
@@ -43165,7 +43268,7 @@ Model: ${model}`);
|
|
|
43165
43268
|
personaDeployWasAttempted = true;
|
|
43166
43269
|
productionDeployedWithAutoDeploy = await deployPersonaVersionAfterPush(apiKey, agentId, result.persona.version, options.autoDeploy || false);
|
|
43167
43270
|
} else {
|
|
43168
|
-
|
|
43271
|
+
writePersonaStagedHint(result.persona.version);
|
|
43169
43272
|
}
|
|
43170
43273
|
}
|
|
43171
43274
|
const personaAutoDeployFailed = Boolean(options.autoDeploy && personaDeployEligible && personaDeployWasAttempted && !productionDeployedWithAutoDeploy);
|
|
@@ -43479,7 +43582,7 @@ ${icon} Pushing ${items.length} ${handler.displayName}(s)...`);
|
|
|
43479
43582
|
};
|
|
43480
43583
|
}
|
|
43481
43584
|
if (personaPushResult && !options.autoDeploy) {
|
|
43482
|
-
|
|
43585
|
+
writePersonaStagedHint(personaPushResult.version);
|
|
43483
43586
|
}
|
|
43484
43587
|
if (toDeploy.length > 0) {
|
|
43485
43588
|
writeProgress("\n\u{1F680} Deploying all pushed versions to production...");
|
|
@@ -44125,7 +44228,9 @@ async function deployPersonaVersion(apiKey, agentId, options) {
|
|
|
44125
44228
|
name: "version",
|
|
44126
44229
|
message: "Select a persona version to deploy:",
|
|
44127
44230
|
choices: sortedVersions.map((v) => ({
|
|
44128
|
-
|
|
44231
|
+
// PRO-2170: a push stages, so the list now contains versions that are
|
|
44232
|
+
// NOT served. Mark them, or the only clue is the absence of (CURRENT).
|
|
44233
|
+
name: `v${v.version}${v.isCurrent ? " (CURRENT)" : ""}${v.status === "staged" ? " (STAGED)" : v.status === "draft" ? " (DRAFT)" : ""} \u2014 ${new Date(v.createdDate).toLocaleDateString()}`,
|
|
44129
44234
|
value: v.version
|
|
44130
44235
|
}))
|
|
44131
44236
|
}
|
|
@@ -46434,6 +46539,12 @@ init_compiler2();
|
|
|
46434
46539
|
init_artifact_loader();
|
|
46435
46540
|
init_analytics();
|
|
46436
46541
|
init_cli_error();
|
|
46542
|
+
function versionStatusMarker(status) {
|
|
46543
|
+
if (status === "draft") return "[DRAFT]";
|
|
46544
|
+
if (status === "staged") return "[STAGED]";
|
|
46545
|
+
return "";
|
|
46546
|
+
}
|
|
46547
|
+
__name(versionStatusMarker, "versionStatusMarker");
|
|
46437
46548
|
async function personaCommand(env, action, cmdObj) {
|
|
46438
46549
|
return withErrorHandling(async () => {
|
|
46439
46550
|
const options = {
|
|
@@ -46550,7 +46661,8 @@ function displayVersionsCore(versions) {
|
|
|
46550
46661
|
const dateStr = date.toLocaleDateString();
|
|
46551
46662
|
const timeStr = date.toLocaleTimeString();
|
|
46552
46663
|
const currentMark = v.isCurrent ? " \u2B50 CURRENT" : "";
|
|
46553
|
-
const
|
|
46664
|
+
const marker = versionStatusMarker(v.status);
|
|
46665
|
+
const status = marker ? ` ${marker}` : "";
|
|
46554
46666
|
console.log(` Version ${v.version}${status} - ${dateStr} ${timeStr}${currentMark}`);
|
|
46555
46667
|
});
|
|
46556
46668
|
console.log("\n" + "=".repeat(60));
|
|
@@ -46808,7 +46920,7 @@ async function listPersonaVersionsInteractive(context) {
|
|
|
46808
46920
|
const date = new Date(version.createdDate);
|
|
46809
46921
|
const dateStr = date.toLocaleDateString();
|
|
46810
46922
|
const timeStr = date.toLocaleTimeString();
|
|
46811
|
-
const status = version.status
|
|
46923
|
+
const status = versionStatusMarker(version.status);
|
|
46812
46924
|
const currentMark = version.isCurrent ? " \u2B50 CURRENT" : "";
|
|
46813
46925
|
return {
|
|
46814
46926
|
name: `Version ${version.version} ${status} - (${dateStr}) ${timeStr} ${currentMark}`,
|
|
@@ -46827,7 +46939,7 @@ async function viewVersionDetailsInteractive(version) {
|
|
|
46827
46939
|
console.log(`Persona Version ${version.version}`);
|
|
46828
46940
|
console.log("=".repeat(60));
|
|
46829
46941
|
console.log(`Created: ${date.toLocaleString()}`);
|
|
46830
|
-
const versionStatus = version.status === "draft" ? "\u{1F528} DRAFT" : "";
|
|
46942
|
+
const versionStatus = version.status === "draft" ? "\u{1F528} DRAFT" : version.status === "staged" ? "\u{1F4E4} STAGED (not served)" : "\u2B50 PUBLISHED";
|
|
46831
46943
|
console.log(`Version Status: ${versionStatus}`);
|
|
46832
46944
|
console.log(`Active Status: ${version.isCurrent ? "\u2B50 CURRENT" : "Available"}`);
|
|
46833
46945
|
if (version.createdBy) {
|
|
@@ -46910,7 +47022,7 @@ async function deployPersonaVersionInteractive(context) {
|
|
|
46910
47022
|
const dateStr = date.toLocaleDateString();
|
|
46911
47023
|
const timeStr = date.toLocaleTimeString();
|
|
46912
47024
|
const currentMark = v.isCurrent ? " \u2B50 CURRENTLY DEPLOYED" : "";
|
|
46913
|
-
const status = v.status
|
|
47025
|
+
const status = versionStatusMarker(v.status);
|
|
46914
47026
|
return {
|
|
46915
47027
|
name: `Version ${v.version} ${status} - (${dateStr}) ${timeStr} ${currentMark}`,
|
|
46916
47028
|
value: v.version
|