@vtxmacro/cli 2026.9.39 → 2026.9.41
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/bin/vtx-service-bootstrap.js +1 -1
- package/bin/vtx.js +62 -9
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ import { fileURLToPath } from "node:url";
|
|
|
16
16
|
// agent-cli-release.json
|
|
17
17
|
var agent_cli_release_default = {
|
|
18
18
|
package_name: "@vtxmacro/cli",
|
|
19
|
-
package_version: "2026.9.
|
|
19
|
+
package_version: "2026.9.41",
|
|
20
20
|
codex_package_name: "@openai/codex",
|
|
21
21
|
codex_version: "0.153.3",
|
|
22
22
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
package/bin/vtx.js
CHANGED
|
@@ -77,7 +77,7 @@ var init_agent_cli_release = __esm({
|
|
|
77
77
|
"agent-cli-release.json"() {
|
|
78
78
|
agent_cli_release_default = {
|
|
79
79
|
package_name: "@vtxmacro/cli",
|
|
80
|
-
package_version: "2026.9.
|
|
80
|
+
package_version: "2026.9.41",
|
|
81
81
|
codex_package_name: "@openai/codex",
|
|
82
82
|
codex_version: "0.153.3",
|
|
83
83
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
|
@@ -14722,7 +14722,7 @@ var init_zod = __esm({
|
|
|
14722
14722
|
});
|
|
14723
14723
|
|
|
14724
14724
|
// lib/external-inference-contract.ts
|
|
14725
|
-
var EXTERNAL_INFERENCE_CONTRACT_VERSION, EXTERNAL_INFERENCE_CONTROLLER_SCHEMA_VERSION, EXTERNAL_INFERENCE_CONTROLLER_SCHEMA_VERSION_V2, EXTERNAL_INFERENCE_ADVERTISEMENT_SCHEMA_VERSION, EXTERNAL_INFERENCE_ENVELOPE_SCHEMA_VERSION, EXTERNAL_INFERENCE_COMPRESSED_INPUT_ENVELOPE_SCHEMA_VERSION, EXTERNAL_INFERENCE_JOB_INPUT_SCHEMA_VERSION, LEGACY_EXTERNAL_INFERENCE_JOB_INPUT_SCHEMA_VERSION, EXTERNAL_INFERENCE_USAGE_SCHEMA_VERSION, EXTERNAL_INFERENCE_INPUT_HASH_DOMAIN, MAX_EXTERNAL_INFERENCE_STATUS_HOSTS, MAX_PROFILE_EXTERNAL_INFERENCE_FALLBACKS_PER_LANE, MAX_GENERATION, MAX_SAFE_INTEGER, MAX_PROMPT_BYTES, MAX_IMMUTABLE_JOB_INPUT_BYTES, MAX_CANDIDATE_PLAINTEXT_BYTES, MAX_CIPHERTEXT_CHARS, SHA256_INITIAL_STATE, SHA256_ROUND_CONSTANTS, rotateRight, sha256BytesHex, sha256Utf8Hex, computeImmutableJobInputSha256, identifierSchema, operationIdentifierSchema, sha256HexSchema, generationSchema, zeroBasedGenerationSchema, nonNegativeSafeIntegerSchema, positiveSafeIntegerSchema, sqlIntegerTokenCountSchema, timestampSchema, safeCodeSchema, processExitCodeSchema, externalInferenceAdapterIdSchema, reasoningEffortSchema, modelNameSchema, displayNameSchema, authenticatedAccountEmailSchema, protocolVersionSchema, base64UrlAlphabet, isCanonicalBase64Url, base64Url32BytesSchema, base64UrlNonceSchema, base64UrlCiphertextSchema, claimHandleSchema, boundedJsonTextSchema, boundedPromptTextSchema, laneSchema, botModeSchema, executionModeSchema, responseModeSchema, controlModeSchema, dispatchOutcomeSchema, responseOutcomeSchema, nativeModelControllerSchema, legacyExternalAgentModelControllerSchema, externalAgentModelControllerSchema, boundExternalAgentModelControllerSchema, externalAgentUnboundControllerSchema, externalAgentUnboundControllerV2Schema, orderedFallbackHostIdsSchema, externalInferenceFallbackHostIdsSchema, liveModelControllerSchema, snapshotModelControllerSchema, modelIdentityMappingSchema, advertisedModelSchema, hostAdvertisementSchema, envelopeAadSchema, validateEnvelopeAad, commonEnvelopeShape, sealedKeyWrapEnvelopeSchema, sealedInputEnvelopeSchema, sealedCandidateEnvelopeSchema, sealedEnvelopeSchema, screenerCandidateRuntimeBindingSchema, screenerClientLeaseBindingSchema, screenerRuntimeBindingSchema, serverRuntimeBindingSchema, clientRuntimeBindingSchema, runtimeBindingSchema, immutableJobInputSchema, canonicalizeJsonValue, serializeImmutableJobInput, reportedTokenUsageSchema, unavailableTokenUsageSchema, tokenUsageSchema, grokToolValidationDiagnosticSchema, grokResponseIdentityDiagnosticSchema, agentTurnReceiptSchema, agentConnectRequestSchema, agentNextRequestSchema, agentHeartbeatRequestSchema, emptyAgentNextResultSchema, claimedAgentNextResultSchema, agentNextResultSchema, agentCompleteRequestSchema, agentFailRequestSchema, requestedModelSelectionSchema, completedModelProvenanceSchema, attemptModelProvenanceSchema, providerWeeklyQuotaReadSchema, hostHeartbeatRequestSchema, jobClaimRequestBaseShape, jobClaimRequestSchema, emptyJobClaimSchema, claimedJobSchema, claimedDispatchIntentSchema, batchedJobClaimSchema, timedBatchedJobClaimSchema, jobClaimResultSchema, attemptStartRequestSchema, jobHeartbeatRequestSchema, continueHeartbeatDirectiveSchema, cancelHeartbeatDirectiveSchema, jobHeartbeatResultSchema, adapterOutcomeEvidenceSchema, completionBaseShape, validateCompletion, providerResponseCompletionSchema, decisionCandidateCompletionSchema, jobCompleteRequestSchema, codexProcessExitDiagnosticsSchema, jobFailRequestSchema, jobCancelRequestSchema, jobCancellationReceiptSchema, jobDeliveryRequestSchema, deliveryBaseShape, validateDeliveryCandidate, providerResponseDeliverySchema, decisionCandidateDeliverySchema, jobDeliveryResultSchema, jobConsumptionRequestSchema, jobConsumptionReceiptSchema, jobStateSchema, jobStatusReadSchema, hostStatusReadSchema, controllerBindingStatusReadSchema, queueStatusReadSchema, outcomeStatusReadSchema, externalInferenceVolumeWindowReadSchema, externalInferenceFailureCountReadSchema, externalInferenceHostDiagnosticsReadSchema, externalInferenceProfileActivityReadSchema, externalInferenceStatusReadSchema, nativeResearchEvidenceSourceSchema, externalAgentResearchEvidenceSourceSchema, researchEvidenceSourceSchema, reportedResearchTokenUsageSchema, unavailableResearchTokenUsageSchema, researchTokenUsageSchema, externalInferenceProductLineageBaseShape, traderExternalInferenceProductLineageSchema, decisionChatExternalInferenceProductLineageSchema, screenerExternalInferenceProductLineageSchema, externalInferenceProductLineageSchema, normalProductLinkageSchema, evidenceMaterializationMarkerSchema, deliveredExternalAgentSourceIdentitySchema, deliveredRequestEvidenceSchema, researchEvidenceBaseShape, researchEvidenceBaseSchema, validateExactUtf8, validateResearchEvidence, providerResponseResearchEvidenceSchema, decisionCandidateResearchEvidenceSchema, researchEvidenceSchema;
|
|
14725
|
+
var EXTERNAL_INFERENCE_CONTRACT_VERSION, EXTERNAL_INFERENCE_CONTROLLER_SCHEMA_VERSION, EXTERNAL_INFERENCE_CONTROLLER_SCHEMA_VERSION_V2, EXTERNAL_INFERENCE_ADVERTISEMENT_SCHEMA_VERSION, EXTERNAL_INFERENCE_ENVELOPE_SCHEMA_VERSION, EXTERNAL_INFERENCE_COMPRESSED_INPUT_ENVELOPE_SCHEMA_VERSION, EXTERNAL_INFERENCE_JOB_INPUT_SCHEMA_VERSION, LEGACY_EXTERNAL_INFERENCE_JOB_INPUT_SCHEMA_VERSION, EXTERNAL_INFERENCE_USAGE_SCHEMA_VERSION, EXTERNAL_INFERENCE_INPUT_HASH_DOMAIN, MAX_EXTERNAL_INFERENCE_STATUS_HOSTS, MAX_PROFILE_EXTERNAL_INFERENCE_FALLBACKS_PER_LANE, MAX_GENERATION, MAX_SAFE_INTEGER, MAX_PROMPT_BYTES, MAX_IMMUTABLE_JOB_INPUT_BYTES, MAX_CANDIDATE_PLAINTEXT_BYTES, MAX_CIPHERTEXT_CHARS, SHA256_INITIAL_STATE, SHA256_ROUND_CONSTANTS, rotateRight, sha256BytesHex, sha256Utf8Hex, computeImmutableJobInputSha256, identifierSchema, operationIdentifierSchema, sha256HexSchema, generationSchema, zeroBasedGenerationSchema, nonNegativeSafeIntegerSchema, positiveSafeIntegerSchema, sqlIntegerTokenCountSchema, timestampSchema, safeCodeSchema, processExitCodeSchema, externalInferenceAdapterIdSchema, reasoningEffortSchema, modelNameSchema, displayNameSchema, authenticatedAccountEmailSchema, protocolVersionSchema, base64UrlAlphabet, isCanonicalBase64Url, base64Url32BytesSchema, base64UrlNonceSchema, base64UrlCiphertextSchema, claimHandleSchema, boundedJsonTextSchema, boundedPromptTextSchema, laneSchema, botModeSchema, executionModeSchema, responseModeSchema, controlModeSchema, dispatchOutcomeSchema, responseOutcomeSchema, nativeModelControllerSchema, legacyExternalAgentModelControllerSchema, externalAgentModelControllerSchema, boundExternalAgentModelControllerSchema, externalAgentUnboundControllerSchema, externalAgentUnboundControllerV2Schema, orderedFallbackHostIdsSchema, externalInferenceFallbackHostIdsSchema, liveModelControllerSchema, snapshotModelControllerSchema, modelIdentityMappingSchema, advertisedModelSchema, hostAdvertisementSchema, envelopeAadSchema, validateEnvelopeAad, commonEnvelopeShape, sealedKeyWrapEnvelopeSchema, sealedInputEnvelopeSchema, sealedCandidateEnvelopeSchema, sealedEnvelopeSchema, screenerCandidateRuntimeBindingSchema, screenerClientLeaseBindingSchema, screenerRuntimeBindingSchema, serverRuntimeBindingSchema, clientRuntimeBindingSchema, runtimeBindingSchema, immutableJobInputSchema, canonicalizeJsonValue, serializeImmutableJobInput, reportedTokenUsageSchema, unavailableTokenUsageSchema, tokenUsageSchema, grokToolValidationDiagnosticSchema, grokResponseIdentityDiagnosticSchema, agentTurnReceiptSchema, agentConnectRequestSchema, agentNextRequestSchema, agentHeartbeatRequestSchema, emptyAgentNextResultSchema, claimedAgentNextResultSchema, agentNextResultSchema, agentCompleteRequestSchema, agentFailRequestSchema, requestedModelSelectionSchema, completedModelProvenanceSchema, attemptModelProvenanceSchema, providerWeeklyQuotaReadSchema, hostRuntimeRecoverySchema, hostHeartbeatRequestSchema, jobClaimRequestBaseShape, jobClaimRequestSchema, emptyJobClaimSchema, claimedJobSchema, claimedDispatchIntentSchema, batchedJobClaimSchema, timedBatchedJobClaimSchema, jobClaimResultSchema, attemptStartRequestSchema, jobHeartbeatRequestSchema, continueHeartbeatDirectiveSchema, cancelHeartbeatDirectiveSchema, jobHeartbeatResultSchema, adapterOutcomeEvidenceSchema, completionBaseShape, validateCompletion, providerResponseCompletionSchema, decisionCandidateCompletionSchema, jobCompleteRequestSchema, codexProcessExitDiagnosticsSchema, jobFailRequestSchema, jobCancelRequestSchema, jobCancellationReceiptSchema, jobDeliveryRequestSchema, deliveryBaseShape, validateDeliveryCandidate, providerResponseDeliverySchema, decisionCandidateDeliverySchema, jobDeliveryResultSchema, jobConsumptionRequestSchema, jobConsumptionReceiptSchema, jobStateSchema, jobStatusReadSchema, hostStatusReadSchema, controllerBindingStatusReadSchema, queueStatusReadSchema, outcomeStatusReadSchema, externalInferenceVolumeWindowReadSchema, externalInferenceFailureCountReadSchema, externalInferenceHostDiagnosticsReadSchema, externalInferenceProfileActivityReadSchema, externalInferenceStatusReadSchema, nativeResearchEvidenceSourceSchema, externalAgentResearchEvidenceSourceSchema, researchEvidenceSourceSchema, reportedResearchTokenUsageSchema, unavailableResearchTokenUsageSchema, researchTokenUsageSchema, externalInferenceProductLineageBaseShape, traderExternalInferenceProductLineageSchema, decisionChatExternalInferenceProductLineageSchema, screenerExternalInferenceProductLineageSchema, externalInferenceProductLineageSchema, normalProductLinkageSchema, evidenceMaterializationMarkerSchema, deliveredExternalAgentSourceIdentitySchema, deliveredRequestEvidenceSchema, researchEvidenceBaseShape, researchEvidenceBaseSchema, validateExactUtf8, validateResearchEvidence, providerResponseResearchEvidenceSchema, decisionCandidateResearchEvidenceSchema, researchEvidenceSchema;
|
|
14726
14726
|
var init_external_inference_contract = __esm({
|
|
14727
14727
|
"lib/external-inference-contract.ts"() {
|
|
14728
14728
|
"use strict";
|
|
@@ -15738,6 +15738,30 @@ var init_external_inference_contract = __esm({
|
|
|
15738
15738
|
});
|
|
15739
15739
|
}
|
|
15740
15740
|
});
|
|
15741
|
+
hostRuntimeRecoverySchema = external_exports.strictObject({
|
|
15742
|
+
phase: external_exports.enum(["running", "recovering", "draining"]),
|
|
15743
|
+
drain_reason: external_exports.enum([
|
|
15744
|
+
"stopped",
|
|
15745
|
+
"sigint",
|
|
15746
|
+
"sigterm",
|
|
15747
|
+
"aborted",
|
|
15748
|
+
"authority_lost",
|
|
15749
|
+
"attempt_terminal_unconfirmed",
|
|
15750
|
+
"agent_recovery_failed",
|
|
15751
|
+
"host_heartbeat_failed",
|
|
15752
|
+
"advertisement_failed",
|
|
15753
|
+
"claim_failed",
|
|
15754
|
+
"once_empty",
|
|
15755
|
+
"once_complete",
|
|
15756
|
+
"service_update",
|
|
15757
|
+
"drain_timeout",
|
|
15758
|
+
"provider_dispatch_watchdog_expired",
|
|
15759
|
+
"receipt_durability_timeout"
|
|
15760
|
+
]).nullable(),
|
|
15761
|
+
failure_code: external_exports.string().regex(/^[a-z0-9][a-z0-9._-]{0,95}$/u).nullable(),
|
|
15762
|
+
pending_attempts: nonNegativeSafeIntegerSchema,
|
|
15763
|
+
pending_claim: external_exports.boolean()
|
|
15764
|
+
});
|
|
15741
15765
|
hostHeartbeatRequestSchema = external_exports.strictObject({
|
|
15742
15766
|
schema_version: external_exports.literal("external_inference_host_heartbeat_v1"),
|
|
15743
15767
|
contract_version: external_exports.literal(EXTERNAL_INFERENCE_CONTRACT_VERSION),
|
|
@@ -15750,6 +15774,7 @@ var init_external_inference_contract = __esm({
|
|
|
15750
15774
|
active_attempts: nonNegativeSafeIntegerSchema,
|
|
15751
15775
|
available_slots: nonNegativeSafeIntegerSchema,
|
|
15752
15776
|
provider_weekly_quota: providerWeeklyQuotaReadSchema.nullable().optional(),
|
|
15777
|
+
runtime_recovery: hostRuntimeRecoverySchema.optional(),
|
|
15753
15778
|
provider_quota_recovery: external_exports.strictObject({
|
|
15754
15779
|
source: external_exports.literal("codex_app_server"),
|
|
15755
15780
|
observed_at: timestampSchema
|
|
@@ -21011,6 +21036,7 @@ var init_mcp_client = __esm({
|
|
|
21011
21036
|
#requestId = 0;
|
|
21012
21037
|
#initialized = false;
|
|
21013
21038
|
#providerQuotaRecoverySupported = false;
|
|
21039
|
+
#runtimeRecoveryDiagnosticsSupported = false;
|
|
21014
21040
|
#grokToolValidationTools = /* @__PURE__ */ new Set();
|
|
21015
21041
|
#grokResponseIdentityTools = /* @__PURE__ */ new Set();
|
|
21016
21042
|
supportsGrokToolValidationDiagnostics(tool) {
|
|
@@ -21037,6 +21063,9 @@ var init_mcp_client = __esm({
|
|
|
21037
21063
|
}
|
|
21038
21064
|
return this.supportsGrokResponseIdentityDiagnostics(tool);
|
|
21039
21065
|
}
|
|
21066
|
+
supportsRuntimeRecoveryDiagnostics() {
|
|
21067
|
+
return this.#runtimeRecoveryDiagnosticsSupported;
|
|
21068
|
+
}
|
|
21040
21069
|
supportsProviderQuotaRecovery() {
|
|
21041
21070
|
return this.#providerQuotaRecoverySupported;
|
|
21042
21071
|
}
|
|
@@ -21090,6 +21119,10 @@ var init_mcp_client = __esm({
|
|
|
21090
21119
|
const properties = schema.properties;
|
|
21091
21120
|
return properties !== null && typeof properties === "object" && fields.every((field) => Object.hasOwn(properties, field));
|
|
21092
21121
|
};
|
|
21122
|
+
this.#runtimeRecoveryDiagnosticsSupported = advertisesFields(
|
|
21123
|
+
"inference.host.heartbeat",
|
|
21124
|
+
["runtime_recovery"]
|
|
21125
|
+
);
|
|
21093
21126
|
this.#providerQuotaRecoverySupported = advertisesFields(
|
|
21094
21127
|
"inference.host.heartbeat",
|
|
21095
21128
|
["provider_quota_recovery"]
|
|
@@ -31430,6 +31463,8 @@ var init_runner = __esm({
|
|
|
31430
31463
|
});
|
|
31431
31464
|
let drainRequested = false;
|
|
31432
31465
|
let drainReason = "stopped";
|
|
31466
|
+
let terminalRecoveryFailureCode = null;
|
|
31467
|
+
let acknowledgedRecoveryDiagnostic = null;
|
|
31433
31468
|
let receipt;
|
|
31434
31469
|
let mcp;
|
|
31435
31470
|
const active = /* @__PURE__ */ new Map();
|
|
@@ -31508,6 +31543,7 @@ var init_runner = __esm({
|
|
|
31508
31543
|
const emitTerminalRecoveryFailure = (recovery, error48) => {
|
|
31509
31544
|
const cause = error48 instanceof InferenceHostRunnerError && error48.code === "terminal_outcome_unconfirmed" && error48.cause ? error48.cause : error48;
|
|
31510
31545
|
const rawCode = cause instanceof ExternalInferenceMcpError || cause instanceof InferenceHostRunnerError || cause instanceof CodexAppServerError ? cause.code : "terminal_recovery_failed";
|
|
31546
|
+
terminalRecoveryFailureCode = cause instanceof ExternalInferenceMcpError ? publicServerFailureCode(cause.serverFailureCode) ?? safeFailureCode(rawCode, "terminal_recovery_failed") : safeFailureCode(rawCode, "terminal_recovery_failed");
|
|
31511
31547
|
const terminal = recovery.terminal_request;
|
|
31512
31548
|
emitDiagnostic("terminal_recovery_failed", {
|
|
31513
31549
|
job_id: recovery.job_id,
|
|
@@ -32023,7 +32059,17 @@ var init_runner = __esm({
|
|
|
32023
32059
|
let request;
|
|
32024
32060
|
await mutateReceipt((current) => {
|
|
32025
32061
|
const sequence = current.host_heartbeat_sequence + 1;
|
|
32062
|
+
const pendingAttempts = Object.keys(current.attempts).length;
|
|
32063
|
+
const diagnostic = {
|
|
32064
|
+
phase: status === "draining" ? "draining" : pendingAttempts > active.size || current.pending_claim_request ? "recovering" : "running",
|
|
32065
|
+
drain_reason: status === "draining" ? drainReason : null,
|
|
32066
|
+
failure_code: terminalRecoveryFailureCode,
|
|
32067
|
+
pending_attempts: pendingAttempts,
|
|
32068
|
+
pending_claim: Boolean(current.pending_claim_request)
|
|
32069
|
+
};
|
|
32070
|
+
const parsedDiagnostic = hostRuntimeRecoverySchema.safeParse(diagnostic);
|
|
32026
32071
|
request = {
|
|
32072
|
+
...mcp.supportsRuntimeRecoveryDiagnostics?.() === true && parsedDiagnostic.success && JSON.stringify(parsedDiagnostic.data) !== acknowledgedRecoveryDiagnostic ? { runtime_recovery: parsedDiagnostic.data } : {},
|
|
32027
32073
|
schema_version: "external_inference_host_heartbeat_v1",
|
|
32028
32074
|
contract_version: EXTERNAL_INFERENCE_CONTRACT_VERSION,
|
|
32029
32075
|
host_id: localState.host_id,
|
|
@@ -32074,6 +32120,9 @@ var init_runner = __esm({
|
|
|
32074
32120
|
throw error48;
|
|
32075
32121
|
}
|
|
32076
32122
|
assertHostHeartbeatResult(request, result2, settings.adapterId, allowOfflineProjection);
|
|
32123
|
+
if (request.runtime_recovery) {
|
|
32124
|
+
acknowledgedRecoveryDiagnostic = JSON.stringify(request.runtime_recovery);
|
|
32125
|
+
}
|
|
32077
32126
|
if (result2.host.status === "revoked" || result2.host.status === "offline" && !allowOfflineProjection) {
|
|
32078
32127
|
const error48 = new InferenceHostRunnerError(
|
|
32079
32128
|
result2.host.status === "revoked" ? "host_revoked" : "host_offline",
|
|
@@ -34474,9 +34523,18 @@ var init_runner = __esm({
|
|
|
34474
34523
|
};
|
|
34475
34524
|
}
|
|
34476
34525
|
});
|
|
34526
|
+
const wakeScheduledAtMs = this.now();
|
|
34527
|
+
let nextWakeAtMs = null;
|
|
34528
|
+
let wakeError;
|
|
34529
|
+
try {
|
|
34530
|
+
nextWakeAtMs = wakeScheduledAtMs + parseInferenceAgentWake(result2.turn.text, assignment) * 1e3;
|
|
34531
|
+
} catch (error48) {
|
|
34532
|
+
wakeError = error48;
|
|
34533
|
+
}
|
|
34534
|
+
const scheduledWakeAt = nextWakeAtMs === null ? null : new Date(nextWakeAtMs).toISOString();
|
|
34477
34535
|
state = { ...state, pending_turn: {
|
|
34478
34536
|
...state.pending_turn,
|
|
34479
|
-
next_wake_at:
|
|
34537
|
+
next_wake_at: scheduledWakeAt,
|
|
34480
34538
|
terminal_receipt: {
|
|
34481
34539
|
terminal_status: "completed",
|
|
34482
34540
|
failure_code: null,
|
|
@@ -34495,12 +34553,7 @@ var init_runner = __esm({
|
|
|
34495
34553
|
}
|
|
34496
34554
|
}, updated_at: nowIso() };
|
|
34497
34555
|
await writeInferenceAgentRuntimeState(this.options.statePath, state);
|
|
34498
|
-
|
|
34499
|
-
const wakeScheduledAtMs = this.now();
|
|
34500
|
-
const nextWakeAtMs = wakeScheduledAtMs + wakeSeconds * 1e3;
|
|
34501
|
-
const scheduledWakeAt = new Date(nextWakeAtMs).toISOString();
|
|
34502
|
-
state = { ...state, pending_turn: { ...state.pending_turn, next_wake_at: scheduledWakeAt } };
|
|
34503
|
-
await writeInferenceAgentRuntimeState(this.options.statePath, state);
|
|
34556
|
+
if (nextWakeAtMs === null || scheduledWakeAt === null) throw wakeError;
|
|
34504
34557
|
const wakeHeartbeat = await this.options.controlClient.heartbeat({
|
|
34505
34558
|
operation_id: randomUUID(),
|
|
34506
34559
|
host_id: this.options.hostId,
|