@vtxmacro/cli 2026.9.5 → 2026.9.7
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 +342 -100
- 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.7",
|
|
20
20
|
codex_package_name: "@openai/codex",
|
|
21
21
|
codex_version: "0.147.0",
|
|
22
22
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
package/bin/vtx.js
CHANGED
|
@@ -47,7 +47,7 @@ var init_agent_cli_release = __esm({
|
|
|
47
47
|
"agent-cli-release.json"() {
|
|
48
48
|
agent_cli_release_default = {
|
|
49
49
|
package_name: "@vtxmacro/cli",
|
|
50
|
-
package_version: "2026.9.
|
|
50
|
+
package_version: "2026.9.7",
|
|
51
51
|
codex_package_name: "@openai/codex",
|
|
52
52
|
codex_version: "0.147.0",
|
|
53
53
|
copilot_sdk_package_name: "@github/copilot-sdk",
|
|
@@ -14442,7 +14442,7 @@ var init_zod = __esm({
|
|
|
14442
14442
|
});
|
|
14443
14443
|
|
|
14444
14444
|
// lib/external-inference-contract.ts
|
|
14445
|
-
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_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, agentConnectRequestSchema, agentNextRequestSchema, agentHeartbeatRequestSchema, emptyAgentNextResultSchema, claimedAgentNextResultSchema, agentNextResultSchema, agentCompleteRequestSchema, agentFailRequestSchema, requestedModelSelectionSchema, completedModelProvenanceSchema, attemptModelProvenanceSchema, providerWeeklyQuotaReadSchema, hostHeartbeatRequestSchema, jobClaimRequestSchema, emptyJobClaimSchema, claimedJobSchema, 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;
|
|
14445
|
+
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_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, 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;
|
|
14446
14446
|
var init_external_inference_contract = __esm({
|
|
14447
14447
|
"lib/external-inference-contract.ts"() {
|
|
14448
14448
|
"use strict";
|
|
@@ -15363,8 +15363,7 @@ var init_external_inference_contract = __esm({
|
|
|
15363
15363
|
provider_weekly_quota: providerWeeklyQuotaReadSchema.nullable().optional(),
|
|
15364
15364
|
observed_at: timestampSchema
|
|
15365
15365
|
});
|
|
15366
|
-
|
|
15367
|
-
schema_version: external_exports.literal("external_inference_job_claim_v1"),
|
|
15366
|
+
jobClaimRequestBaseShape = {
|
|
15368
15367
|
contract_version: external_exports.literal(EXTERNAL_INFERENCE_CONTRACT_VERSION),
|
|
15369
15368
|
host_id: identifierSchema,
|
|
15370
15369
|
host_generation: generationSchema,
|
|
@@ -15372,7 +15371,23 @@ var init_external_inference_contract = __esm({
|
|
|
15372
15371
|
key_generation: generationSchema,
|
|
15373
15372
|
claim_request_id: operationIdentifierSchema,
|
|
15374
15373
|
requested_at: timestampSchema
|
|
15375
|
-
}
|
|
15374
|
+
};
|
|
15375
|
+
jobClaimRequestSchema = external_exports.discriminatedUnion("schema_version", [
|
|
15376
|
+
external_exports.strictObject({
|
|
15377
|
+
schema_version: external_exports.literal("external_inference_job_claim_v1"),
|
|
15378
|
+
...jobClaimRequestBaseShape
|
|
15379
|
+
}),
|
|
15380
|
+
external_exports.strictObject({
|
|
15381
|
+
schema_version: external_exports.literal("external_inference_job_claim_v2"),
|
|
15382
|
+
...jobClaimRequestBaseShape,
|
|
15383
|
+
maximum_jobs: external_exports.number().int().min(1).max(32)
|
|
15384
|
+
}),
|
|
15385
|
+
external_exports.strictObject({
|
|
15386
|
+
schema_version: external_exports.literal("external_inference_job_claim_v3"),
|
|
15387
|
+
...jobClaimRequestBaseShape,
|
|
15388
|
+
maximum_jobs: external_exports.number().int().min(1).max(32)
|
|
15389
|
+
})
|
|
15390
|
+
]);
|
|
15376
15391
|
emptyJobClaimSchema = external_exports.strictObject({
|
|
15377
15392
|
schema_version: external_exports.literal("external_inference_job_claim_result_v1"),
|
|
15378
15393
|
claim_state: external_exports.literal("empty"),
|
|
@@ -15415,9 +15430,32 @@ var init_external_inference_contract = __esm({
|
|
|
15415
15430
|
context.addIssue({ code: "custom", message: "claim lease cannot exceed the immutable deadline", path: ["lease_expires_at"] });
|
|
15416
15431
|
}
|
|
15417
15432
|
});
|
|
15418
|
-
|
|
15433
|
+
claimedDispatchIntentSchema = external_exports.strictObject({
|
|
15434
|
+
claim: claimedJobSchema,
|
|
15435
|
+
attempt_id: identifierSchema,
|
|
15436
|
+
started_at: timestampSchema,
|
|
15437
|
+
provider_dispatch_freshness_remaining_ms: nonNegativeSafeIntegerSchema
|
|
15438
|
+
});
|
|
15439
|
+
batchedJobClaimSchema = external_exports.strictObject({
|
|
15440
|
+
schema_version: external_exports.literal("external_inference_job_claim_result_v2"),
|
|
15441
|
+
claim_state: external_exports.literal("batch"),
|
|
15442
|
+
claim_request_id: operationIdentifierSchema,
|
|
15443
|
+
claims: external_exports.array(claimedDispatchIntentSchema).max(32),
|
|
15444
|
+
retry_after_ms: nonNegativeSafeIntegerSchema
|
|
15445
|
+
});
|
|
15446
|
+
timedBatchedJobClaimSchema = external_exports.strictObject({
|
|
15447
|
+
schema_version: external_exports.literal("external_inference_job_claim_result_v3"),
|
|
15448
|
+
claim_state: external_exports.literal("batch"),
|
|
15449
|
+
claim_request_id: operationIdentifierSchema,
|
|
15450
|
+
claims: external_exports.array(claimedDispatchIntentSchema).max(32),
|
|
15451
|
+
retry_after_ms: nonNegativeSafeIntegerSchema,
|
|
15452
|
+
server_processing_ms: nonNegativeSafeIntegerSchema
|
|
15453
|
+
});
|
|
15454
|
+
jobClaimResultSchema = external_exports.union([
|
|
15419
15455
|
emptyJobClaimSchema,
|
|
15420
|
-
claimedJobSchema
|
|
15456
|
+
claimedJobSchema,
|
|
15457
|
+
batchedJobClaimSchema,
|
|
15458
|
+
timedBatchedJobClaimSchema
|
|
15421
15459
|
]);
|
|
15422
15460
|
attemptStartRequestSchema = external_exports.strictObject({
|
|
15423
15461
|
schema_version: external_exports.literal("external_inference_attempt_start_v1"),
|
|
@@ -15501,6 +15539,8 @@ var init_external_inference_contract = __esm({
|
|
|
15501
15539
|
outcome: adapterOutcomeEvidenceSchema,
|
|
15502
15540
|
latency_ms: nonNegativeSafeIntegerSchema,
|
|
15503
15541
|
time_to_first_token_ms: nonNegativeSafeIntegerSchema.nullable(),
|
|
15542
|
+
provider_dispatched_at: timestampSchema.optional(),
|
|
15543
|
+
adapter_result_ready_at: timestampSchema.optional(),
|
|
15504
15544
|
provider_dispatch_freshness_remaining_ms: nonNegativeSafeIntegerSchema.nullable().optional(),
|
|
15505
15545
|
finish_reason: safeCodeSchema.nullable(),
|
|
15506
15546
|
refusal_status: external_exports.enum(["none", "refused", "blocked", "unknown"]),
|
|
@@ -15616,6 +15656,8 @@ var init_external_inference_contract = __esm({
|
|
|
15616
15656
|
failure_category: safeCodeSchema,
|
|
15617
15657
|
failure_code: safeCodeSchema,
|
|
15618
15658
|
retryable: external_exports.boolean(),
|
|
15659
|
+
provider_dispatched_at: timestampSchema.optional(),
|
|
15660
|
+
adapter_result_ready_at: timestampSchema.optional(),
|
|
15619
15661
|
provider_dispatch_freshness_remaining_ms: nonNegativeSafeIntegerSchema.nullable().optional(),
|
|
15620
15662
|
process_exit: codexProcessExitDiagnosticsSchema.nullable().optional(),
|
|
15621
15663
|
membership_disposition: external_exports.enum([
|
|
@@ -15651,6 +15693,9 @@ var init_external_inference_contract = __esm({
|
|
|
15651
15693
|
if (value.usage?.availability === "reported") {
|
|
15652
15694
|
context.addIssue({ code: "custom", message: "not-dispatched failures cannot report token usage", path: ["usage"] });
|
|
15653
15695
|
}
|
|
15696
|
+
if (value.provider_dispatched_at !== void 0 || value.adapter_result_ready_at !== void 0) {
|
|
15697
|
+
context.addIssue({ code: "custom", message: "not-dispatched failures cannot report provider stages", path: ["provider_dispatched_at"] });
|
|
15698
|
+
}
|
|
15654
15699
|
}
|
|
15655
15700
|
});
|
|
15656
15701
|
jobCancelRequestSchema = external_exports.strictObject({
|
|
@@ -18682,6 +18727,19 @@ var init_mcp_client = __esm({
|
|
|
18682
18727
|
if (name === "inference.job.claim") {
|
|
18683
18728
|
if (result2.claim_request_id !== request.claim_request_id) invalidBoundResult(name);
|
|
18684
18729
|
if (result2.claim_state === "claimed" && (result2.host_id !== request.host_id || result2.host_generation !== request.host_generation || result2.advertisement_generation > request.advertisement_generation || result2.key_generation !== request.key_generation)) invalidBoundResult(name);
|
|
18730
|
+
if (result2.claim_state === "batch") {
|
|
18731
|
+
if (request.schema_version !== "external_inference_job_claim_v2" && request.schema_version !== "external_inference_job_claim_v3" || result2.schema_version !== (request.schema_version === "external_inference_job_claim_v3" ? "external_inference_job_claim_result_v3" : "external_inference_job_claim_result_v2") || result2.claims.length > request.maximum_jobs) {
|
|
18732
|
+
invalidBoundResult(name);
|
|
18733
|
+
}
|
|
18734
|
+
const jobIds = /* @__PURE__ */ new Set();
|
|
18735
|
+
const attemptIds = /* @__PURE__ */ new Set();
|
|
18736
|
+
for (const item of result2.claims) {
|
|
18737
|
+
const claim = item.claim;
|
|
18738
|
+
if (claim.host_id !== request.host_id || claim.host_generation !== request.host_generation || claim.advertisement_generation > request.advertisement_generation || claim.key_generation !== request.key_generation || jobIds.has(claim.job_id) || attemptIds.has(item.attempt_id)) invalidBoundResult(name);
|
|
18739
|
+
jobIds.add(claim.job_id);
|
|
18740
|
+
attemptIds.add(item.attempt_id);
|
|
18741
|
+
}
|
|
18742
|
+
}
|
|
18685
18743
|
return;
|
|
18686
18744
|
}
|
|
18687
18745
|
if (name === "inference.job.start") {
|
|
@@ -32501,7 +32559,7 @@ function createDefaultInferenceHostRunnerDependencies(options) {
|
|
|
32501
32559
|
envelopePublicKey: options.envelopePublicKey
|
|
32502
32560
|
};
|
|
32503
32561
|
}
|
|
32504
|
-
var import_ajv, RUNTIME_RECEIPT_SCHEMA_VERSION, ATTEMPT_RECEIPT_SCHEMA_VERSION, DEFAULT_ADVERTISEMENT_TTL_MS, DEFAULT_ADVERTISEMENT_REFRESH_LEAD_MS, DEFAULT_HOST_HEARTBEAT_MS, DEFAULT_PROVIDER_RATE_LIMIT_REFRESH_MS, DEFAULT_ATTEMPT_HEARTBEAT_MS, DEFAULT_DRAIN_TIMEOUT_MS, DEFAULT_REMOTE_RETRY_LIMIT, MIN_SLEEP_MS, MIN_HOST_HEARTBEAT_GAP_DIAGNOSTIC_MS, HOST_HEARTBEAT_GAP_DIAGNOSTIC_FACTOR, DEFAULT_CODEX_ACCOUNT_COOLDOWN_MS, DEFAULT_AGENT_RATE_LIMIT_COOLDOWN_MS, DEFAULT_AGENT_QUOTA_COOLDOWN_MS, DEFAULT_AGENT_TRANSIENT_COOLDOWN_MS, MIN_CLAIM_START_WINDOW_MS, MAX_ATTEMPT_START_RETRY_DELAY_MS, UNBOUNDED_AVAILABLE_SLOTS, buildInferenceAdvertisedModels, summarizeInferenceHostRuntimeRecovery, FileInferenceHostRuntimeReceiptStore, InferenceHostRecoveryRequiredError, InferenceHostRunnerError, defaultSleep, abortError, settlesWithin, defaultRegisterSignalHandlers, safeInteger, exactObjectKeys, validIso, validateAttemptReceipt, validateRuntimeReceipt, sha256, stableOperationId, buildAttemptStartRequest, isoAt, providerWeeklyQuotaFromRateLimits, finitePositiveOption, validateRunnerOptions, assertLocalCredentialIdentity, retryableRemoteError, remoteRetryAfterMs, controlPlaneFatal, defaultValidateOutput, objectRecord, positiveUtf8ByteLimit, assertCompilableOutputSchema, parseOutputContract, serverProviderDispatchNotAfterMs, membershipFailureDisposition, safeFailureCode, publicServerFailureCode, attemptStartRetryFallbackMs, exactJson2, runnerIdentityMismatch, assertAdvertisementResult, assertHostHeartbeatResult, assertClaimResult, assertStartResult, assertJobHeartbeatResult, assertTerminalResult, isDefinitiveCompletionEvidenceExpiry, classifyFailure, ambiguousHeartbeatTransport, reportedTokenUsage, reportedUsage, InferenceHostRunner, createInferenceAgentControlClient, INFERENCE_AGENT_SYSTEM_PROMPT, INFERENCE_AGENT_WAKE_SCHEMA, parseInferenceAgentWake, InferenceAgentRuntime;
|
|
32562
|
+
var import_ajv, RUNTIME_RECEIPT_SCHEMA_VERSION, ATTEMPT_RECEIPT_SCHEMA_VERSION, CLAIM_DISPATCH_BATCH_SIZE, DEFAULT_ADVERTISEMENT_TTL_MS, DEFAULT_ADVERTISEMENT_REFRESH_LEAD_MS, DEFAULT_HOST_HEARTBEAT_MS, DEFAULT_PROVIDER_RATE_LIMIT_REFRESH_MS, DEFAULT_ATTEMPT_HEARTBEAT_MS, DEFAULT_DRAIN_TIMEOUT_MS, DEFAULT_REMOTE_RETRY_LIMIT, MIN_SLEEP_MS, MIN_HOST_HEARTBEAT_GAP_DIAGNOSTIC_MS, HOST_HEARTBEAT_GAP_DIAGNOSTIC_FACTOR, DEFAULT_CODEX_ACCOUNT_COOLDOWN_MS, DEFAULT_AGENT_RATE_LIMIT_COOLDOWN_MS, DEFAULT_AGENT_QUOTA_COOLDOWN_MS, DEFAULT_AGENT_TRANSIENT_COOLDOWN_MS, MIN_CLAIM_START_WINDOW_MS, MAX_ATTEMPT_START_RETRY_DELAY_MS, UNBOUNDED_AVAILABLE_SLOTS, buildInferenceAdvertisedModels, summarizeInferenceHostRuntimeRecovery, FileInferenceHostRuntimeReceiptStore, InferenceHostRecoveryRequiredError, InferenceHostRunnerError, defaultSleep, abortError, settlesWithin, defaultRegisterSignalHandlers, safeInteger, exactObjectKeys, validIso, validateAttemptReceipt, validateRuntimeReceipt, sha256, stableOperationId, buildAttemptStartRequest, isoAt, providerWeeklyQuotaFromRateLimits, finitePositiveOption, validateRunnerOptions, assertLocalCredentialIdentity, retryableRemoteError, remoteRetryAfterMs, controlPlaneFatal, defaultValidateOutput, objectRecord, positiveUtf8ByteLimit, assertCompilableOutputSchema, parseOutputContract, serverProviderDispatchNotAfterMs, membershipFailureDisposition, safeFailureCode, publicServerFailureCode, attemptStartRetryFallbackMs, exactJson2, runnerIdentityMismatch, assertAdvertisementResult, assertHostHeartbeatResult, assertClaimResult, assertStartResult, assertJobHeartbeatResult, assertTerminalResult, isDefinitiveCompletionEvidenceExpiry, classifyFailure, ambiguousHeartbeatTransport, reportedTokenUsage, reportedUsage, InferenceHostRunner, createInferenceAgentControlClient, INFERENCE_AGENT_SYSTEM_PROMPT, INFERENCE_AGENT_WAKE_SCHEMA, parseInferenceAgentWake, InferenceAgentRuntime;
|
|
32505
32563
|
var init_runner = __esm({
|
|
32506
32564
|
"lib/inference-host/runner.ts"() {
|
|
32507
32565
|
"use strict";
|
|
@@ -32516,6 +32574,7 @@ var init_runner = __esm({
|
|
|
32516
32574
|
init_oauth();
|
|
32517
32575
|
RUNTIME_RECEIPT_SCHEMA_VERSION = "vtx_inference_host_runtime_v1";
|
|
32518
32576
|
ATTEMPT_RECEIPT_SCHEMA_VERSION = "vtx_inference_attempt_receipt_v1";
|
|
32577
|
+
CLAIM_DISPATCH_BATCH_SIZE = 16;
|
|
32519
32578
|
DEFAULT_ADVERTISEMENT_TTL_MS = 12e4;
|
|
32520
32579
|
DEFAULT_ADVERTISEMENT_REFRESH_LEAD_MS = 3e4;
|
|
32521
32580
|
DEFAULT_HOST_HEARTBEAT_MS = 3e3;
|
|
@@ -33297,6 +33356,7 @@ var init_runner = __esm({
|
|
|
33297
33356
|
instance_name: this.options.instanceName ?? "default",
|
|
33298
33357
|
host_id: localState.host_id,
|
|
33299
33358
|
display_name: this.options.displayName,
|
|
33359
|
+
host_runtime_version: settings.hostRuntimeVersion,
|
|
33300
33360
|
...fields
|
|
33301
33361
|
});
|
|
33302
33362
|
} catch {
|
|
@@ -33800,28 +33860,47 @@ var init_runner = __esm({
|
|
|
33800
33860
|
let nextClaimAt = Math.max(now(), providerRetryAtMs ?? 0);
|
|
33801
33861
|
let pendingClaimPromotions = 0;
|
|
33802
33862
|
let onceClaimed = false;
|
|
33863
|
+
let batchClaimVersion = 3;
|
|
33803
33864
|
const preparePendingClaim = (current) => {
|
|
33804
33865
|
if (current.pending_claim_request) return current;
|
|
33805
33866
|
const claimSequence = current.claim_sequence + 1;
|
|
33806
33867
|
const requestedAt = now();
|
|
33868
|
+
const claimRequestBase = {
|
|
33869
|
+
contract_version: EXTERNAL_INFERENCE_CONTRACT_VERSION,
|
|
33870
|
+
host_id: localState.host_id,
|
|
33871
|
+
host_generation: localState.host_generation,
|
|
33872
|
+
advertisement_generation: current.advertisement_generation,
|
|
33873
|
+
key_generation: localState.key_generation,
|
|
33874
|
+
claim_request_id: stableOperationId("claim", [
|
|
33875
|
+
localState.host_id,
|
|
33876
|
+
localState.host_generation,
|
|
33877
|
+
current.advertisement_generation,
|
|
33878
|
+
claimSequence
|
|
33879
|
+
]),
|
|
33880
|
+
requested_at: isoAt(requestedAt)
|
|
33881
|
+
};
|
|
33882
|
+
const pendingClaimRequest = batchClaimVersion === 3 ? {
|
|
33883
|
+
schema_version: "external_inference_job_claim_v3",
|
|
33884
|
+
...claimRequestBase,
|
|
33885
|
+
maximum_jobs: Math.min(
|
|
33886
|
+
this.options.once ? 1 : CLAIM_DISPATCH_BATCH_SIZE,
|
|
33887
|
+
settings.maxConcurrency === null ? CLAIM_DISPATCH_BATCH_SIZE : Math.max(1, settings.maxConcurrency - active.size)
|
|
33888
|
+
)
|
|
33889
|
+
} : batchClaimVersion === 2 ? {
|
|
33890
|
+
schema_version: "external_inference_job_claim_v2",
|
|
33891
|
+
...claimRequestBase,
|
|
33892
|
+
maximum_jobs: Math.min(
|
|
33893
|
+
this.options.once ? 1 : CLAIM_DISPATCH_BATCH_SIZE,
|
|
33894
|
+
settings.maxConcurrency === null ? CLAIM_DISPATCH_BATCH_SIZE : Math.max(1, settings.maxConcurrency - active.size)
|
|
33895
|
+
)
|
|
33896
|
+
} : {
|
|
33897
|
+
schema_version: "external_inference_job_claim_v1",
|
|
33898
|
+
...claimRequestBase
|
|
33899
|
+
};
|
|
33807
33900
|
return {
|
|
33808
33901
|
...current,
|
|
33809
33902
|
claim_sequence: claimSequence,
|
|
33810
|
-
pending_claim_request:
|
|
33811
|
-
schema_version: "external_inference_job_claim_v1",
|
|
33812
|
-
contract_version: EXTERNAL_INFERENCE_CONTRACT_VERSION,
|
|
33813
|
-
host_id: localState.host_id,
|
|
33814
|
-
host_generation: localState.host_generation,
|
|
33815
|
-
advertisement_generation: current.advertisement_generation,
|
|
33816
|
-
key_generation: localState.key_generation,
|
|
33817
|
-
claim_request_id: stableOperationId("claim", [
|
|
33818
|
-
localState.host_id,
|
|
33819
|
-
localState.host_generation,
|
|
33820
|
-
current.advertisement_generation,
|
|
33821
|
-
claimSequence
|
|
33822
|
-
]),
|
|
33823
|
-
requested_at: isoAt(requestedAt)
|
|
33824
|
-
},
|
|
33903
|
+
pending_claim_request: pendingClaimRequest,
|
|
33825
33904
|
updated_at: isoAt(requestedAt)
|
|
33826
33905
|
};
|
|
33827
33906
|
};
|
|
@@ -33940,8 +34019,8 @@ var init_runner = __esm({
|
|
|
33940
34019
|
});
|
|
33941
34020
|
const recoveryQueue = [];
|
|
33942
34021
|
const attemptStartRetryCounts = /* @__PURE__ */ new Map();
|
|
33943
|
-
const launchClaim = (claim, recovery, claimRequest) => {
|
|
33944
|
-
if (!recovery) {
|
|
34022
|
+
const launchClaim = (claim, recovery, claimRequest, prestarted) => {
|
|
34023
|
+
if (!recovery || prestarted) {
|
|
33945
34024
|
claimed += 1;
|
|
33946
34025
|
onceClaimed = true;
|
|
33947
34026
|
}
|
|
@@ -34040,6 +34119,7 @@ var init_runner = __esm({
|
|
|
34040
34119
|
},
|
|
34041
34120
|
resumeReceipt: recovery,
|
|
34042
34121
|
claimRequest,
|
|
34122
|
+
prestarted,
|
|
34043
34123
|
onClaimPersisted: settleClaimPromotion,
|
|
34044
34124
|
rolloverClaimRequest: (current) => {
|
|
34045
34125
|
if (drainRequested || this.options.once || settings.maxConcurrency !== null && active.size + 1 >= settings.maxConcurrency) return current;
|
|
@@ -34243,6 +34323,7 @@ var init_runner = __esm({
|
|
|
34243
34323
|
}
|
|
34244
34324
|
const request = receipt.pending_claim_request;
|
|
34245
34325
|
let claim;
|
|
34326
|
+
const claimCallStartedAtMs = now();
|
|
34246
34327
|
try {
|
|
34247
34328
|
claim = await mcp.callTool(
|
|
34248
34329
|
"inference.job.claim",
|
|
@@ -34251,7 +34332,48 @@ var init_runner = __esm({
|
|
|
34251
34332
|
);
|
|
34252
34333
|
assertClaimResult(request, claim);
|
|
34253
34334
|
} catch (error48) {
|
|
34254
|
-
if (!this.options.signal?.aborted &&
|
|
34335
|
+
if (!this.options.signal?.aborted && request.schema_version === "external_inference_job_claim_v3" && error48 instanceof ExternalInferenceMcpError && error48.serverFailureCode === "schema_validation") {
|
|
34336
|
+
batchClaimVersion = 2;
|
|
34337
|
+
await mutateReceipt((current) => ({
|
|
34338
|
+
...current,
|
|
34339
|
+
pending_claim_request: current.pending_claim_request?.claim_request_id === request.claim_request_id ? {
|
|
34340
|
+
schema_version: "external_inference_job_claim_v2",
|
|
34341
|
+
contract_version: request.contract_version,
|
|
34342
|
+
host_id: request.host_id,
|
|
34343
|
+
host_generation: request.host_generation,
|
|
34344
|
+
advertisement_generation: request.advertisement_generation,
|
|
34345
|
+
key_generation: request.key_generation,
|
|
34346
|
+
claim_request_id: stableOperationId("claim-fallback-v2", [
|
|
34347
|
+
request.claim_request_id
|
|
34348
|
+
]),
|
|
34349
|
+
requested_at: isoAt(now()),
|
|
34350
|
+
maximum_jobs: request.maximum_jobs
|
|
34351
|
+
} : current.pending_claim_request,
|
|
34352
|
+
updated_at: isoAt(now())
|
|
34353
|
+
}));
|
|
34354
|
+
nextClaimAt = now();
|
|
34355
|
+
continue;
|
|
34356
|
+
} else if (!this.options.signal?.aborted && request.schema_version === "external_inference_job_claim_v2" && error48 instanceof ExternalInferenceMcpError && error48.serverFailureCode === "schema_validation") {
|
|
34357
|
+
batchClaimVersion = 1;
|
|
34358
|
+
await mutateReceipt((current) => ({
|
|
34359
|
+
...current,
|
|
34360
|
+
pending_claim_request: current.pending_claim_request?.claim_request_id === request.claim_request_id ? {
|
|
34361
|
+
schema_version: "external_inference_job_claim_v1",
|
|
34362
|
+
contract_version: request.contract_version,
|
|
34363
|
+
host_id: request.host_id,
|
|
34364
|
+
host_generation: request.host_generation,
|
|
34365
|
+
advertisement_generation: request.advertisement_generation,
|
|
34366
|
+
key_generation: request.key_generation,
|
|
34367
|
+
claim_request_id: stableOperationId("claim-fallback-v1", [
|
|
34368
|
+
request.claim_request_id
|
|
34369
|
+
]),
|
|
34370
|
+
requested_at: isoAt(now())
|
|
34371
|
+
} : current.pending_claim_request,
|
|
34372
|
+
updated_at: isoAt(now())
|
|
34373
|
+
}));
|
|
34374
|
+
nextClaimAt = now();
|
|
34375
|
+
continue;
|
|
34376
|
+
} else if (!this.options.signal?.aborted && controlPlaneFatal(error48)) {
|
|
34255
34377
|
requestDrain("authority_lost");
|
|
34256
34378
|
} else if (!this.options.signal?.aborted && error48 instanceof ExternalInferenceMcpError && error48.code === "claim_replay_obsolete") {
|
|
34257
34379
|
await mutateReceipt((current) => ({
|
|
@@ -34283,6 +34405,109 @@ var init_runner = __esm({
|
|
|
34283
34405
|
}
|
|
34284
34406
|
break;
|
|
34285
34407
|
}
|
|
34408
|
+
const claimResponseReceivedAtMs = now();
|
|
34409
|
+
const claimCallRoundTripMs = Math.max(
|
|
34410
|
+
0,
|
|
34411
|
+
claimResponseReceivedAtMs - claimCallStartedAtMs
|
|
34412
|
+
);
|
|
34413
|
+
if (claim.claim_state === "batch") {
|
|
34414
|
+
if (request.schema_version === "external_inference_job_claim_v1") {
|
|
34415
|
+
runnerIdentityMismatch("Batched job claim");
|
|
34416
|
+
}
|
|
34417
|
+
const maximumJobs = "maximum_jobs" in request ? request.maximum_jobs : runnerIdentityMismatch("Batched job claim");
|
|
34418
|
+
const expectedBatchResultVersion = request.schema_version === "external_inference_job_claim_v3" ? "external_inference_job_claim_result_v3" : "external_inference_job_claim_result_v2";
|
|
34419
|
+
if (claim.schema_version !== expectedBatchResultVersion || claim.claims.length > maximumJobs) runnerIdentityMismatch("Batched job claim");
|
|
34420
|
+
const claimTransportResidualMs = Math.max(
|
|
34421
|
+
0,
|
|
34422
|
+
claimCallRoundTripMs - (claim.schema_version === "external_inference_job_claim_result_v3" ? claim.server_processing_ms : 0)
|
|
34423
|
+
);
|
|
34424
|
+
if (claim.claims.length === 0) {
|
|
34425
|
+
await mutateReceipt((current) => ({
|
|
34426
|
+
...current,
|
|
34427
|
+
pending_claim_request: current.pending_claim_request?.claim_request_id === request.claim_request_id ? null : current.pending_claim_request,
|
|
34428
|
+
updated_at: isoAt(now())
|
|
34429
|
+
}));
|
|
34430
|
+
nextClaimAt = now() + Math.max(MIN_SLEEP_MS, claim.retry_after_ms);
|
|
34431
|
+
if (this.options.once) requestDrain("once_empty");
|
|
34432
|
+
break;
|
|
34433
|
+
}
|
|
34434
|
+
const decryptClaim = this.dependencies.decryptClaim ?? decryptExternalInferenceClaim;
|
|
34435
|
+
const prepared = claim.claims.map((item) => {
|
|
34436
|
+
const claimedJob = item.claim;
|
|
34437
|
+
if (claimedJob.host_id !== localState.host_id || claimedJob.host_generation !== localState.host_generation || claimedJob.advertisement_generation > receipt.advertisement_generation || claimedJob.key_generation !== localState.key_generation) runnerIdentityMismatch("Batched job claim");
|
|
34438
|
+
const { jobInput } = decryptClaim(
|
|
34439
|
+
credential.x25519_private_key,
|
|
34440
|
+
claimedJob
|
|
34441
|
+
);
|
|
34442
|
+
const expectedAttemptId = stableOperationId("attempt", [
|
|
34443
|
+
claimedJob.host_id,
|
|
34444
|
+
claimedJob.job_id,
|
|
34445
|
+
claimedJob.claim_generation,
|
|
34446
|
+
claimedJob.attempt_index,
|
|
34447
|
+
claimedJob.input_sha256
|
|
34448
|
+
]);
|
|
34449
|
+
if (item.attempt_id !== expectedAttemptId) {
|
|
34450
|
+
runnerIdentityMismatch("Batched attempt");
|
|
34451
|
+
}
|
|
34452
|
+
const startRequest = buildAttemptStartRequest(
|
|
34453
|
+
claimedJob,
|
|
34454
|
+
item.attempt_id,
|
|
34455
|
+
item.started_at
|
|
34456
|
+
);
|
|
34457
|
+
return validateAttemptReceipt({
|
|
34458
|
+
schema_version: ATTEMPT_RECEIPT_SCHEMA_VERSION,
|
|
34459
|
+
attempt_id: item.attempt_id,
|
|
34460
|
+
job_id: claimedJob.job_id,
|
|
34461
|
+
profile_id: jobInput.profile_id,
|
|
34462
|
+
input_sha256: jobInput.input_sha256,
|
|
34463
|
+
claim_generation: claimedJob.claim_generation,
|
|
34464
|
+
attempt_index: claimedJob.attempt_index,
|
|
34465
|
+
phase: "claimed",
|
|
34466
|
+
dispatch_outcome: "not_dispatched",
|
|
34467
|
+
terminal_operation_id: null,
|
|
34468
|
+
job_heartbeat_sequence: 0,
|
|
34469
|
+
claim: claimedJob,
|
|
34470
|
+
start_request: startRequest,
|
|
34471
|
+
terminal_request: null,
|
|
34472
|
+
updated_at: isoAt(now())
|
|
34473
|
+
});
|
|
34474
|
+
});
|
|
34475
|
+
const shouldRollover = !this.options.once && (settings.maxConcurrency === null || active.size + prepared.length < settings.maxConcurrency);
|
|
34476
|
+
await mutateReceipt((current) => {
|
|
34477
|
+
if (current.pending_claim_request?.claim_request_id !== request.claim_request_id) runnerIdentityMismatch("Batched claim receipt");
|
|
34478
|
+
const attempts = { ...current.attempts };
|
|
34479
|
+
for (const attempt of prepared) {
|
|
34480
|
+
if (attempts[attempt.attempt_id]) {
|
|
34481
|
+
runnerIdentityMismatch("Batched attempt receipt");
|
|
34482
|
+
}
|
|
34483
|
+
attempts[attempt.attempt_id] = attempt;
|
|
34484
|
+
}
|
|
34485
|
+
const promoted = {
|
|
34486
|
+
...current,
|
|
34487
|
+
pending_claim_request: null,
|
|
34488
|
+
attempts,
|
|
34489
|
+
updated_at: isoAt(now())
|
|
34490
|
+
};
|
|
34491
|
+
return shouldRollover ? preparePendingClaim(promoted) : promoted;
|
|
34492
|
+
});
|
|
34493
|
+
for (let index = 0; index < prepared.length; index += 1) {
|
|
34494
|
+
const item = claim.claims[index];
|
|
34495
|
+
launchClaim(item.claim, prepared[index], void 0, {
|
|
34496
|
+
result: {
|
|
34497
|
+
job_id: item.claim.job_id,
|
|
34498
|
+
attempt_id: item.attempt_id,
|
|
34499
|
+
attempt_index: item.claim.attempt_index,
|
|
34500
|
+
state: "dispatch_intent",
|
|
34501
|
+
provider_dispatch_freshness_remaining_ms: item.provider_dispatch_freshness_remaining_ms
|
|
34502
|
+
},
|
|
34503
|
+
roundTripMs: claimTransportResidualMs,
|
|
34504
|
+
claimResponseReceivedAtMs
|
|
34505
|
+
});
|
|
34506
|
+
}
|
|
34507
|
+
if (this.options.once) requestDrain("once_complete");
|
|
34508
|
+
nextClaimAt = claim.claims.length >= (request.schema_version !== "external_inference_job_claim_v1" ? request.maximum_jobs : CLAIM_DISPATCH_BATCH_SIZE) ? now() : now() + Math.max(MIN_SLEEP_MS, claim.retry_after_ms);
|
|
34509
|
+
continue;
|
|
34510
|
+
}
|
|
34286
34511
|
if (claim.claim_state === "empty") {
|
|
34287
34512
|
await mutateReceipt((current) => ({
|
|
34288
34513
|
...current,
|
|
@@ -34416,6 +34641,8 @@ var init_runner = __esm({
|
|
|
34416
34641
|
let providerDispatchNotAfterMs = serverProviderDispatchDeadlineMs === void 0 ? void 0 : now() - 1;
|
|
34417
34642
|
let serverReportedFreshnessRemainingMs = null;
|
|
34418
34643
|
let startRoundTripMs = 0;
|
|
34644
|
+
let providerDispatchedAt = null;
|
|
34645
|
+
let adapterResultReadyAt = null;
|
|
34419
34646
|
let providerDispatchFreshnessRemainingMs = null;
|
|
34420
34647
|
const startRequest = options.resumeReceipt?.start_request ?? buildAttemptStartRequest(claim, attemptId, isoAt(now()));
|
|
34421
34648
|
let attemptReceipt = options.resumeReceipt ? validateAttemptReceipt(options.resumeReceipt) : {
|
|
@@ -34526,69 +34753,75 @@ var init_runner = __esm({
|
|
|
34526
34753
|
let startResult;
|
|
34527
34754
|
const startCallStartedAtMs = now();
|
|
34528
34755
|
let startCallCompletedAtMs = startCallStartedAtMs;
|
|
34529
|
-
|
|
34530
|
-
|
|
34531
|
-
"inference.job.start",
|
|
34532
|
-
startRequest,
|
|
34533
|
-
{ signal, deadlineAtMs: attemptDeadlineAtMs }
|
|
34534
|
-
), { signal, deadlineAtMs: attemptDeadlineAtMs }).then((result2) => {
|
|
34756
|
+
if (options.prestarted) {
|
|
34757
|
+
startResult = options.prestarted.result;
|
|
34535
34758
|
startCallCompletedAtMs = now();
|
|
34536
|
-
|
|
34537
|
-
}
|
|
34538
|
-
|
|
34539
|
-
startCallPromise
|
|
34540
|
-
|
|
34541
|
-
|
|
34542
|
-
|
|
34543
|
-
|
|
34544
|
-
|
|
34545
|
-
|
|
34546
|
-
|
|
34547
|
-
|
|
34548
|
-
|
|
34549
|
-
|
|
34550
|
-
|
|
34551
|
-
|
|
34552
|
-
|
|
34553
|
-
|
|
34759
|
+
startRoundTripMs = Math.max(0, options.prestarted.roundTripMs);
|
|
34760
|
+
} else {
|
|
34761
|
+
const claimPromotionPromise = options.resumeReceipt ? Promise.resolve() : persistAttempt({ phase: "claimed" }, true);
|
|
34762
|
+
const startCallPromise = retryExact(() => mcp.callTool(
|
|
34763
|
+
"inference.job.start",
|
|
34764
|
+
startRequest,
|
|
34765
|
+
{ signal, deadlineAtMs: attemptDeadlineAtMs }
|
|
34766
|
+
), { signal, deadlineAtMs: attemptDeadlineAtMs }).then((result2) => {
|
|
34767
|
+
startCallCompletedAtMs = now();
|
|
34768
|
+
return result2;
|
|
34769
|
+
});
|
|
34770
|
+
const [startOutcome, claimPromotionOutcome] = await Promise.allSettled([
|
|
34771
|
+
startCallPromise,
|
|
34772
|
+
claimPromotionPromise
|
|
34773
|
+
]);
|
|
34774
|
+
if (claimPromotionOutcome.status === "rejected") {
|
|
34775
|
+
throw claimPromotionOutcome.reason;
|
|
34776
|
+
}
|
|
34777
|
+
if (startOutcome.status === "rejected") {
|
|
34778
|
+
const error48 = startOutcome.reason;
|
|
34779
|
+
if (error48 instanceof ExternalInferenceMcpError && error48.serverFailureCode === "server_account_context_expired_before_provider_dispatch") {
|
|
34780
|
+
await removeAttempt();
|
|
34781
|
+
options.onAttemptOutcome?.({
|
|
34782
|
+
outcome: "freshness_rejected_before_provider_dispatch",
|
|
34783
|
+
failure_category: "freshness",
|
|
34784
|
+
failure_code: error48.serverFailureCode,
|
|
34785
|
+
dispatch_outcome: "not_dispatched"
|
|
34786
|
+
});
|
|
34787
|
+
return "failed";
|
|
34788
|
+
}
|
|
34789
|
+
if (attemptDeadlineAtMs <= now() + MIN_CLAIM_START_WINDOW_MS) {
|
|
34790
|
+
await removeAttempt();
|
|
34791
|
+
return "failed";
|
|
34792
|
+
}
|
|
34793
|
+
if (signal.aborted) throw error48;
|
|
34794
|
+
if (controlPlaneFatal(error48)) throw error48;
|
|
34795
|
+
const remainingMs = Math.max(
|
|
34796
|
+
MIN_SLEEP_MS,
|
|
34797
|
+
attemptDeadlineAtMs - now() - MIN_CLAIM_START_WINDOW_MS
|
|
34798
|
+
);
|
|
34799
|
+
const retryCount = Math.min(
|
|
34800
|
+
Math.max(1, options.startRetryCount),
|
|
34801
|
+
Number.MAX_SAFE_INTEGER
|
|
34802
|
+
);
|
|
34803
|
+
const retryDelayMs = Math.min(
|
|
34804
|
+
remoteRetryAfterMs(error48, attemptStartRetryFallbackMs(retryCount)),
|
|
34805
|
+
remainingMs
|
|
34806
|
+
);
|
|
34807
|
+
const rawErrorCode = error48 && typeof error48 === "object" && "code" in error48 ? String(error48.code) : "start_acknowledgement_failed";
|
|
34808
|
+
options.onAttemptStartRetry?.({
|
|
34809
|
+
failure_stage: "job_start_acknowledgement",
|
|
34810
|
+
error_code: safeFailureCode(rawErrorCode, "start_acknowledgement_failed"),
|
|
34811
|
+
http_status_code: error48 instanceof ExternalInferenceMcpError ? error48.httpStatusCode : null,
|
|
34812
|
+
retryable: retryableRemoteError(error48),
|
|
34813
|
+
definitively_not_applied: Boolean(
|
|
34814
|
+
error48 && typeof error48 === "object" && "definitivelyNotApplied" in error48 && error48.definitivelyNotApplied === true
|
|
34815
|
+
),
|
|
34816
|
+
retry_after_ms: error48 instanceof ExternalInferenceMcpError ? error48.retryAfterMs : null,
|
|
34817
|
+
retry_count: retryCount,
|
|
34818
|
+
next_delay_ms: retryDelayMs
|
|
34554
34819
|
});
|
|
34555
|
-
|
|
34820
|
+
await options.sleep(retryDelayMs, signal);
|
|
34821
|
+
return "retry_claimed";
|
|
34556
34822
|
}
|
|
34557
|
-
|
|
34558
|
-
await removeAttempt();
|
|
34559
|
-
return "failed";
|
|
34560
|
-
}
|
|
34561
|
-
if (signal.aborted) throw error48;
|
|
34562
|
-
if (controlPlaneFatal(error48)) throw error48;
|
|
34563
|
-
const remainingMs = Math.max(
|
|
34564
|
-
MIN_SLEEP_MS,
|
|
34565
|
-
attemptDeadlineAtMs - now() - MIN_CLAIM_START_WINDOW_MS
|
|
34566
|
-
);
|
|
34567
|
-
const retryCount = Math.min(
|
|
34568
|
-
Math.max(1, options.startRetryCount),
|
|
34569
|
-
Number.MAX_SAFE_INTEGER
|
|
34570
|
-
);
|
|
34571
|
-
const retryDelayMs = Math.min(
|
|
34572
|
-
remoteRetryAfterMs(error48, attemptStartRetryFallbackMs(retryCount)),
|
|
34573
|
-
remainingMs
|
|
34574
|
-
);
|
|
34575
|
-
const rawErrorCode = error48 && typeof error48 === "object" && "code" in error48 ? String(error48.code) : "start_acknowledgement_failed";
|
|
34576
|
-
options.onAttemptStartRetry?.({
|
|
34577
|
-
failure_stage: "job_start_acknowledgement",
|
|
34578
|
-
error_code: safeFailureCode(rawErrorCode, "start_acknowledgement_failed"),
|
|
34579
|
-
http_status_code: error48 instanceof ExternalInferenceMcpError ? error48.httpStatusCode : null,
|
|
34580
|
-
retryable: retryableRemoteError(error48),
|
|
34581
|
-
definitively_not_applied: Boolean(
|
|
34582
|
-
error48 && typeof error48 === "object" && "definitivelyNotApplied" in error48 && error48.definitivelyNotApplied === true
|
|
34583
|
-
),
|
|
34584
|
-
retry_after_ms: error48 instanceof ExternalInferenceMcpError ? error48.retryAfterMs : null,
|
|
34585
|
-
retry_count: retryCount,
|
|
34586
|
-
next_delay_ms: retryDelayMs
|
|
34587
|
-
});
|
|
34588
|
-
await options.sleep(retryDelayMs, signal);
|
|
34589
|
-
return "retry_claimed";
|
|
34823
|
+
startResult = startOutcome.value;
|
|
34590
34824
|
}
|
|
34591
|
-
startResult = startOutcome.value;
|
|
34592
34825
|
assertStartResult(startRequest, startResult);
|
|
34593
34826
|
if (serverProviderDispatchDeadlineMs !== void 0) {
|
|
34594
34827
|
const serverRemaining = startResult.provider_dispatch_freshness_remaining_ms;
|
|
@@ -34598,13 +34831,16 @@ var init_runner = __esm({
|
|
|
34598
34831
|
"The Server provider-dispatch freshness receipt is unavailable."
|
|
34599
34832
|
);
|
|
34600
34833
|
}
|
|
34601
|
-
|
|
34834
|
+
if (!options.prestarted) {
|
|
34835
|
+
startRoundTripMs = Math.max(0, startCallCompletedAtMs - startCallStartedAtMs);
|
|
34836
|
+
}
|
|
34602
34837
|
serverReportedFreshnessRemainingMs = Number(serverRemaining);
|
|
34603
34838
|
const conservativeRemainingMs = Math.max(
|
|
34604
34839
|
0,
|
|
34605
34840
|
serverReportedFreshnessRemainingMs - startRoundTripMs
|
|
34606
34841
|
);
|
|
34607
|
-
|
|
34842
|
+
const freshnessAnchorAtMs = options.prestarted ? options.prestarted.claimResponseReceivedAtMs : startCallCompletedAtMs;
|
|
34843
|
+
providerDispatchNotAfterMs = freshnessAnchorAtMs + conservativeRemainingMs;
|
|
34608
34844
|
}
|
|
34609
34845
|
}
|
|
34610
34846
|
if (attemptReceipt.phase !== "dispatched") {
|
|
@@ -34705,22 +34941,24 @@ var init_runner = __esm({
|
|
|
34705
34941
|
requestedReasoningEffort: jobInput.requested_reasoning_effort,
|
|
34706
34942
|
deadlineAtMs: Date.parse(jobInput.deadline_at),
|
|
34707
34943
|
...providerDispatchNotAfterMs === void 0 ? {} : { providerDispatchNotAfterMs },
|
|
34708
|
-
|
|
34709
|
-
|
|
34710
|
-
|
|
34711
|
-
|
|
34712
|
-
|
|
34713
|
-
|
|
34714
|
-
|
|
34715
|
-
|
|
34716
|
-
|
|
34717
|
-
|
|
34718
|
-
|
|
34719
|
-
|
|
34720
|
-
|
|
34944
|
+
onProviderDispatch: () => {
|
|
34945
|
+
const dispatchedAtMs = now();
|
|
34946
|
+
providerDispatchedAt ??= isoAt(dispatchedAtMs);
|
|
34947
|
+
if (providerDispatchNotAfterMs === void 0) return;
|
|
34948
|
+
providerDispatchFreshnessRemainingMs = Math.max(
|
|
34949
|
+
0,
|
|
34950
|
+
providerDispatchNotAfterMs - dispatchedAtMs
|
|
34951
|
+
);
|
|
34952
|
+
options.onProviderDispatch?.({
|
|
34953
|
+
cycle_id: jobInput.runtime_binding?.cycle_id ?? "unavailable",
|
|
34954
|
+
freshness_remaining_ms: providerDispatchFreshnessRemainingMs,
|
|
34955
|
+
server_reported_remaining_ms: serverReportedFreshnessRemainingMs ?? 0,
|
|
34956
|
+
start_round_trip_ms: startRoundTripMs
|
|
34957
|
+
});
|
|
34721
34958
|
},
|
|
34722
34959
|
signal: attemptAbort.signal
|
|
34723
34960
|
});
|
|
34961
|
+
adapterResultReadyAt = isoAt(now());
|
|
34724
34962
|
await persistAttempt({
|
|
34725
34963
|
phase: "dispatched",
|
|
34726
34964
|
dispatch_outcome: "confirmed_dispatched"
|
|
@@ -34827,6 +35065,8 @@ var init_runner = __esm({
|
|
|
34827
35065
|
},
|
|
34828
35066
|
latency_ms: adapterResult.latencyMs,
|
|
34829
35067
|
time_to_first_token_ms: adapterResult.timeToFirstTokenMs,
|
|
35068
|
+
...providerDispatchedAt === null ? {} : { provider_dispatched_at: providerDispatchedAt },
|
|
35069
|
+
...adapterResultReadyAt === null ? {} : { adapter_result_ready_at: adapterResultReadyAt },
|
|
34830
35070
|
provider_dispatch_freshness_remaining_ms: providerDispatchFreshnessRemainingMs,
|
|
34831
35071
|
finish_reason: finishReason,
|
|
34832
35072
|
refusal_status: refusalStatus,
|
|
@@ -34957,6 +35197,8 @@ var init_runner = __esm({
|
|
|
34957
35197
|
failure_category: failure.category,
|
|
34958
35198
|
failure_code: failure.code,
|
|
34959
35199
|
retryable: failure.retryable,
|
|
35200
|
+
...providerDispatchedAt === null ? {} : { provider_dispatched_at: providerDispatchedAt },
|
|
35201
|
+
...adapterResultReadyAt === null ? {} : { adapter_result_ready_at: adapterResultReadyAt },
|
|
34960
35202
|
provider_dispatch_freshness_remaining_ms: providerDispatchFreshnessRemainingMs,
|
|
34961
35203
|
...processExit ? { process_exit: processExit } : {},
|
|
34962
35204
|
membership_disposition: membershipFailureDisposition({
|