@agentvault/grok-bridge 0.4.18 → 0.4.19
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/index.js
CHANGED
|
@@ -3398,7 +3398,10 @@ function buildLlmSpan(opts) {
|
|
|
3398
3398
|
"gen_ai.request.model": opts.model,
|
|
3399
3399
|
"gen_ai.usage.input_tokens": opts.tokensInput,
|
|
3400
3400
|
"gen_ai.usage.output_tokens": opts.tokensOutput,
|
|
3401
|
-
"gen_ai.operation.name": "chat"
|
|
3401
|
+
"gen_ai.operation.name": "chat",
|
|
3402
|
+
// AgentVault extensions the backend ledger reads (telemetry_service.py
|
|
3403
|
+
// _fan_in_genai_ledger) — the same names the Hermes plugin sends.
|
|
3404
|
+
"av.genai.latency_ms": opts.latencyMs
|
|
3402
3405
|
};
|
|
3403
3406
|
if (opts.provider !== void 0) {
|
|
3404
3407
|
attributes["ai.agent.llm.provider"] = opts.provider;
|
|
@@ -3407,6 +3410,7 @@ function buildLlmSpan(opts) {
|
|
|
3407
3410
|
if (opts.costUsd !== void 0) {
|
|
3408
3411
|
attributes["ai.agent.llm.cost_usd"] = opts.costUsd;
|
|
3409
3412
|
attributes["gen_ai.usage.cost_usd"] = opts.costUsd;
|
|
3413
|
+
attributes["av.genai.cost_usd"] = opts.costUsd;
|
|
3410
3414
|
}
|
|
3411
3415
|
applySkillName(attributes, opts.skillName);
|
|
3412
3416
|
const isError = opts.status === "error";
|
|
@@ -4018,6 +4022,9 @@ function spanToOtlp(span) {
|
|
|
4018
4022
|
}
|
|
4019
4023
|
return otlp;
|
|
4020
4024
|
}
|
|
4025
|
+
function isRetryableStatus(status) {
|
|
4026
|
+
return status >= 500 || status === 408 || status === 429;
|
|
4027
|
+
}
|
|
4021
4028
|
async function generateBackupCode() {
|
|
4022
4029
|
await libsodium_wrappers_default.ready;
|
|
4023
4030
|
const bytes = libsodium_wrappers_default.randombytes_buf(13);
|
|
@@ -11662,11 +11669,11 @@ async function joinWithFirstMatchingKp(welcomeBytes, candidates) {
|
|
|
11662
11669
|
return null;
|
|
11663
11670
|
}
|
|
11664
11671
|
function ownIdentity() {
|
|
11665
|
-
const v2 = true ? "0.23.
|
|
11672
|
+
const v2 = true ? "0.23.47" : FALLBACK;
|
|
11666
11673
|
return `${PACKAGE}@${v2}`;
|
|
11667
11674
|
}
|
|
11668
11675
|
function buildSha() {
|
|
11669
|
-
const raw = true ? "
|
|
11676
|
+
const raw = true ? "f1debc4" : "";
|
|
11670
11677
|
const cleaned = (raw ?? "").trim();
|
|
11671
11678
|
return !cleaned || cleaned === "unknown" ? null : cleaned;
|
|
11672
11679
|
}
|
|
@@ -12172,6 +12179,25 @@ async function runHistoryRecoveryCommand(input) {
|
|
|
12172
12179
|
});
|
|
12173
12180
|
output("Agent history recovery: configured");
|
|
12174
12181
|
}
|
|
12182
|
+
function decisionReplyFromEnvelope(parsed) {
|
|
12183
|
+
if (parsed === null || typeof parsed !== "object") return void 0;
|
|
12184
|
+
const decision = parsed.decision;
|
|
12185
|
+
if (decision === null || typeof decision !== "object") return void 0;
|
|
12186
|
+
const d2 = decision;
|
|
12187
|
+
if (typeof d2.decision_id !== "string" || d2.decision_id.length === 0) return void 0;
|
|
12188
|
+
if (Array.isArray(d2.options)) return void 0;
|
|
12189
|
+
const selected = typeof d2.selected_option_id === "string" ? d2.selected_option_id : void 0;
|
|
12190
|
+
const action = typeof d2.action === "string" && ACTIONS.has(d2.action) ? d2.action : void 0;
|
|
12191
|
+
if (selected === void 0 && action === void 0) return void 0;
|
|
12192
|
+
const reply = { decision_id: d2.decision_id };
|
|
12193
|
+
if (selected !== void 0) reply.selected_option_id = selected;
|
|
12194
|
+
if (action !== void 0) reply.action = action;
|
|
12195
|
+
if (typeof d2.resolved_at === "string") reply.resolved_at = d2.resolved_at;
|
|
12196
|
+
if (typeof d2.defer_until === "string") reply.defer_until = d2.defer_until;
|
|
12197
|
+
if (typeof d2.defer_reason === "string") reply.defer_reason = d2.defer_reason;
|
|
12198
|
+
if (typeof d2.reason === "string") reply.reason = d2.reason;
|
|
12199
|
+
return reply;
|
|
12200
|
+
}
|
|
12175
12201
|
async function readBoundedRestoreJson(response, signal, checkpoint) {
|
|
12176
12202
|
const contentLength = response.headers?.get("content-length");
|
|
12177
12203
|
if (contentLength && /^\d+$/.test(contentLength)) {
|
|
@@ -17160,7 +17186,7 @@ function writeFromReadableStream(stream, writable) {
|
|
|
17160
17186
|
}
|
|
17161
17187
|
return writeFromReadableStreamDefaultReader(stream.getReader(), writable);
|
|
17162
17188
|
}
|
|
17163
|
-
var __create, __defProp2, __getOwnPropDesc, __getOwnPropNames2, __getProtoOf, __hasOwnProp, __esm2, __commonJS, __export2, __copyProps, __toESM, SENTINEL, WRAPPERS, INSTRUCTION, init_abstention, init_envelope_text, init_mls_commit_classify, MENTION_RE, BROADCAST_NAMES, init_room_protocol, __filename, __dirname, url2, path, Module, Module, root, window_, crypto_, randomValuesStandard, crypto4, randomValueNodeJS, _Module, libsodium_sumo_default, init_libsodium_sumo, a, r, t, c, libsodium_wrappers_default, init_libsodium_wrappers, init_keys, init_x3dh, MAX_SKIP, CHAIN_KEY_SEED, MSG_KEY_SEED, HEADER_KEY_SEED, DoubleRatchet, init_ratchet, init_file_crypto, DOMAIN_DID_DOCUMENT, DOMAIN_TRANSFER_INTENT, DOMAIN_TRANSFER_ACCEPT, BASE58_ALPHABET, init_did, BUILTIN_PATTERNS, ScanEngine, init_scan_engine, init_merkle, VC_CONTEXT_V2, AV_CREDENTIAL_CONTEXT, CRYPTOSUITE, BASE58_ALPHABET2, init_vc, init_transport, init_telemetry, TelemetryReporter, init_telemetry_reporter, CROCKFORD, ARGON2_OPSLIMIT, ARGON2_MEMLIMIT, SALT_BYTES, NONCE_BYTES, KEY_BYTES, BACKUP_VERSION, MAX_BACKUP_SIZE, init_backup, isLE, swap8IfBE, swap32IfBE, hasHexBuiltin, hexes, oidNist, init_utils, BSIGMA, init_blake, HashMD, SHA256_IV, SHA384_IV, SHA512_IV, init_md, U32_MASK64, _32n, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, add3L, add3H, add4L, add4H, add5L, add5H, init_u64, B2B_IV, BBUF, _BLAKE2, _BLAKE2b, blake2b, init_blake2, CROCKFORD2, SALT_BYTES2, NONCE_BYTES2, KEY_BYTES2, TAG_BYTES, ENVELOPE_OVERHEAD, AAD_PREFIX, UUID_RE, UUID_V4_RE, DIGEST_ID_RE, TIMESTAMP_RE, encoder, decoder, HISTORY_MAGIC, HISTORY_ARCHIVE_VERSION, HISTORY_MAX_ENTRIES, HISTORY_MAX_BLOB_BYTES, HISTORY_KDF_OPSLIMIT, HISTORY_KDF_MEMLIMIT, HistoryEntryTooLargeError, init_history_backup, init_approval, encVoid, init_tlsEncoder, uint8Encoder, encodeUint8, decodeUint8, uint16Encoder, encodeUint16, decodeUint16, uint32Encoder, encodeUint32, decodeUint32, uint64Encoder, encodeUint64, decodeUint64, init_number, init_tlsDecoder, init_enumHelpers, defaultProposalTypes, defaultProposalTypeEncoder, encodeDefaultProposalType, decodeDefaultProposalType, init_defaultProposalType, defaultExtensionTypes, defaultExtensionTypeEncoder, encodeDefaultExtensionType, decodeDefaultExtensionType, init_defaultExtensionType, acceptAll, init_incomingMessageAction, MlsError, ValidationError, CodecError, UsageError, DependencyError, CryptoVerificationError, CryptoError, InternalError, init_mlsError, init_byteArray, varLenDataEncoder, decodeVarLenData, init_variableLength, init_constantTimeCompare, extensionTypeEncoder, encodeExtensionType, decodeExtensionType, extensionEncoder, encodeExtension, decodeExtension, init_extension, credentialTypes, credentialTypeEncoder, encodeCredentialType, decodeCredentialType, init_credentialType, credentialBasicEncoder, encodeCredentialBasic, credentialX509Encoder, encodeCredentialX509, credentialCustomEncoder, encodeCredentialCustom, credentialEncoder, encodeCredential, decodeCredentialBasic, decodeCredentialX509, decodeCredential, init_credential, externalSenderEncoder, encodeExternalSender, decodeExternalSender, init_externalSender, init_hash, init_optional, ciphersuites, ciphersuiteEncoder, encodeCiphersuite, decodeCiphersuite, ciphersuiteValues, init_ciphersuite, init_signature, protocolVersions, protocolVersionEncoder, encodeProtocolVersion, decodeProtocolVersion, init_protocolVersion, capabilitiesEncoder, encodeCapabilities, decodeCapabilities, init_capabilities, leafNodeSources, leafNodeSourceEncoder, encodeLeafNodeSource, decodeLeafNodeSource, init_leafNodeSource, lifetimeEncoder, encodeLifetime, decodeLifetime, defaultLifetime, init_lifetime, leafNodeDataEncoder, encodeLeafNodeData, decodeLeafNodeData, leafNodeInfoKeyPackageEncoder, encodeLeafNodeInfoKeyPackage, leafNodeInfoUpdateOmittedEncoder, encodeLeafNodeInfoUpdateOmitted, leafNodeInfoCommitOmittedEncoder, encodeLeafNodeInfoCommitOmitted, leafNodeInfoOmittedEncoder, encodeLeafNodeInfoOmitted, decodeLeafNodeInfoKeyPackage, decodeLeafNodeInfoUpdateOmitted, decodeLeafNodeInfoCommitOmitted, decodeLeafNodeInfoOmitted, leafNodeInfoUpdateEncoder, encodeLeafNodeInfoUpdate, leafNodeInfoCommitEncoder, encodeLeafNodeInfoCommit, leafNodeInfoEncoder, encodeLeafNodeInfo, decodeLeafNodeInfoUpdate, decodeLeafNodeInfoCommit, decodeLeafNodeInfo, leafNodeTBSEncoder, encodeLeafNodeTBS, leafNodeEncoder, encodeLeafNode, decodeLeafNode, decodeLeafNodeKeyPackage, decodeLeafNodeCommit, decodeLeafNodeUpdate, init_leafNode, keyPackageTBSEncoder, encodeKeyPackageTBS, decodeKeyPackageTBS, keyPackageEncoder, encodeKeyPackage, decodeKeyPackage, init_keyPackage, init_kdf, pskTypes, pskTypeEncoder, encodePskType, decodePskType, resumptionPSKUsages, resumptionPSKUsageEncoder, encodeResumptionPSKUsage, decodeResumptionPSKUsage, encodePskInfoExternal, encodePskInfoResumption, decodePskInfoResumption, pskInfoEncoder, encodePskInfo, decodePskInfo, pskIdEncoder, encodePskId, decodePskId, pskLabelEncoder, encodePskLabel, decodePskLabel, init_presharedkey, addEncoder, encodeAdd, decodeAdd, updateEncoder, encodeUpdate, decodeUpdate, removeEncoder, encodeRemove, decodeRemove, pskEncoder, encodePSK, decodePSK, reinitEncoder, encodeReinit, decodeReinit, externalInitEncoder, encodeExternalInit, decodeExternalInit, groupContextExtensionsEncoder, encodeGroupContextExtensions, decodeGroupContextExtensions, proposalAddEncoder, encodeProposalAdd, proposalUpdateEncoder, encodeProposalUpdate, proposalRemoveEncoder, encodeProposalRemove, proposalPSKEncoder, encodeProposalPSK, proposalReinitEncoder, encodeProposalReinit, proposalExternalInitEncoder, encodeProposalExternalInit, proposalGroupContextExtensionsEncoder, encodeProposalGroupContextExtensions, proposalCustomEncoder, encodeProposalCustom, proposalEncoder, encodeProposal, decodeProposalAdd, decodeProposalUpdate, decodeProposalRemove, decodeProposalPSK, decodeProposalReinit, decodeProposalExternalInit, decodeProposalGroupContextExtensions, decodeProposal, init_proposal, proposalOrRefTypes, proposalOrRefTypeEncoder, encodeProposalOrRefType, decodeProposalOrRefType, proposalOrRefProposalEncoder, encodeProposalOrRefProposal, proposalOrRefProposalRefEncoder, encodeProposalOrRefProposalRef, proposalOrRefEncoder, encodeProposalOrRef, decodeProposalOrRef, init_proposalOrRefType, init_hpke, groupContextEncoder, encodeGroupContext, decodeGroupContext, init_groupContext, nodeTypes, nodeTypeEncoder, encodeNodeType, decodeNodeType, init_nodeType, parentNodeEncoder, encodeParentNode, decodeParentNode, init_parentNode, init_treemath, nodeEncoder, encodeNode, decodeNode, ratchetTreeEncoder, encodeRatchetTree, decodeRatchetTree, init_ratchetTree, leafNodeHashInputEncoder, encodeLeafNodeHashInput, decodeLeafNodeHashInput, parentNodeHashInputEncoder, encodeParentNodeHashInput, decodeParentNodeHashInput, treeHashInputEncoder, encodeTreeHashInput, decodeTreeHashInput, init_treeHash, parentHashInputEncoder, encodeParentHashInput, decodeParentHashInput, init_parentHash, hpkeCiphertextEncoder, encodeHpkeCiphertext, decodeHpkeCiphertext, init_hpkeCiphertext, updatePathNodeEncoder, encodeUpdatePathNode, decodeUpdatePathNode, updatePathEncoder, encodeUpdatePath, decodeUpdatePath, init_updatePath, commitEncoder, encodeCommit, decodeCommit, init_commit, contentTypes, contentTypeEncoder, encodeContentType, decodeContentType, init_contentType, wireformats, wireformatEncoder, encodeWireformat, decodeWireformat, init_wireformat, senderTypes, senderTypeEncoder, encodeSenderType, decodeSenderType, senderEncoder, encodeSender, decodeSender, reuseGuardEncoder, encodeReuseGuard, decodeReuseGuard, senderDataEncoder, encodeSenderData, decodeSenderData, senderDataAADEncoder, encodeSenderDataAAD, decodeSenderDataAAD, init_sender, framedContentApplicationDataEncoder, encodeFramedContentApplicationData, framedContentProposalDataEncoder, encodeFramedContentProposalData, framedContentCommitDataEncoder, encodeFramedContentCommitData, framedContentInfoEncoder, encodeFramedContentInfo, decodeFramedContentApplicationData, decodeFramedContentProposalData, decodeFramedContentCommitData, decodeFramedContentInfo, framedContentEncoder, encodeFramedContent, decodeFramedContent, senderInfoEncoder, encodeSenderInfo, framedContentTBSEncoder, encodeFramedContentTBS, encodeFramedContentAuthDataContent, encodeFramedContentAuthDataCommit, framedContentAuthDataEncoder, encodeFramedContentAuthData, decodeFramedContentAuthDataCommit, init_framedContent, authenticatedContentEncoder, encodeAuthenticatedContent, decodeAuthenticatedContent, authenticatedContentTBMEncoder, encodeAuthenticatedContentTBM, init_authenticatedContent, publicMessageInfoEncoder, encodePublicMessageInfo, publicMessageEncoder, encodePublicMessage, decodePublicMessage, init_publicMessage, init_messageProtectionPublic, init_externalProposal, requiredCapabilitiesEncoder, encodeRequiredCapabilities, decodeRequiredCapabilities, init_requiredCapabilities, defaultAuthenticationService, init_authenticationService, defaultPaddingConfig, init_paddingConfig, defaultKeyPackageEqualityConfig, init_keyPackageEqualityConfig, defaultLifetimeConfig, init_lifetimeConfig, defaultKeyRetentionConfig, init_keyRetentionConfig, groupInfoTBSEncoder, encodeGroupInfoTBS, decodeGroupInfoTBS, groupInfoEncoder, encodeGroupInfo, decodeGroupInfo, init_groupInfo, keyScheduleEncoder, encodeKeySchedule, decodeKeySchedule, init_keySchedule, generationSecretEncoder, decodeGenerationSecret, secretTreeNodeEncoder, decodeSecretTreeNode, secretTreeEncoder, decodeSecretTree, init_secretTree, confirmedTranscriptHashInputEncoder, encodeConfirmedTranscriptHashInput, decodeConfirmedTranscriptHashInput, init_transcriptHash, groupSecretsEncoder, encodeGroupSecrets, decodeGroupSecrets, init_groupSecrets, encryptedGroupSecretsEncoder, encodeEncryptedGroupSecrets, decodeEncryptedGroupSecrets, welcomeEncoder, encodeWelcome, decodeWelcome, init_welcome, init_pathSecrets, privateKeyPathEncoder, decodePrivateKeyPath, init_privateKeyPath, proposalWithSenderEncoder, decodeProposalWithSender, unappliedProposalsEncoder, decodeUnappliedProposals, init_unappliedProposals, emptyPskIndex, init_pskIndex, init_addToMap, defaultClientConfig, init_clientConfig, init_array, stringEncoder, encodeString, decodeString, init_string, activeEncoder, suspendedPendingReinitEncoder, removedFromGroupEncoder, groupActiveStateEncoder, decodeGroupActiveState, init_groupActiveState, epochReceiverDataEncoder, decodeEpochReceiverData, init_epochReceiverData, groupStateEncoder, encodeGroupState, decodeGroupState, groupStateEncoderWithoutTree, encodeGroupStateWithoutTree, emptyProposals, init_clientState, privateMessageEncoder, encodePrivateMessage, decodePrivateMessage, privateContentAADEncoder, encodePrivateContentAAD, decodePrivateContentAAD, init_privateMessage, init_messageProtection, init_createMessage, init_createCommit, init_processMessages, init_makeHashImpl, HpkeError, InvalidParamError, SerializeError, DeserializeError, EncapError, DecapError, ExportError, SealError, OpenError, MessageLimitReachedError, DeriveKeyPairError, NotSupportedError, init_errors, dntGlobals, dntGlobalThis, init_dnt_shims, NativeAlgorithm, init_algorithm, Mode, KemId, KdfId, AeadId, init_identifiers, INPUT_LENGTH_LIMIT, INFO_LENGTH_LIMIT, MINIMUM_PSK_LENGTH, EMPTY, BYTE_TO_BIGINT_256, init_consts, SUITE_ID_HEADER_KEM, init_kemInterface, HPKE_VERSION, HkdfNative, HkdfSha256Native, HkdfSha384Native, HkdfSha512Native, init_hkdf, isCryptoKeyPair, init_misc, LABEL_EAE_PRK, LABEL_SHARED_SECRET, Dhkem, init_dhkem, KEM_USAGES, LABEL_DKP_PRK, LABEL_SK, init_dhkemPrimitives, Bignum, init_bignum, LABEL_CANDIDATE, ORDER_P_256, ORDER_P_384, ORDER_P_521, PKCS8_ALG_ID_P_256, PKCS8_ALG_ID_P_384, PKCS8_ALG_ID_P_521, EC_P_256_PARAMS, EC_P_384_PARAMS, EC_P_521_PARAMS, Ec, init_ec, init_xCryptoKey, init_xCurve, init_hybridkem, AEAD_USAGES, init_aeadEncryptionContext, _endianTestBuffer, _endianTestBytes, isLE2, init_noble, init_hash2, _HMAC, hmac, init_hmac, init_md2, U32_MASK642, _32n2, init_u642, init_sha2, _0n, _1n, _2n, _7n, _256n, _0x71n, SHA3_PI, SHA3_ROTL, _SHA3_IOTA, IOTAS, SHA3_IOTA_H, SHA3_IOTA_L, init_sha3, init_modular, init_curve, init_montgomery, init_mod, AesGcmContext, Aes128Gcm, Aes256Gcm, init_aesGcm, init_exportOnly, init_emitNotSupported, LABEL_SEC, ExporterContextImpl, RecipientExporterContextImpl, SenderExporterContextImpl, init_exporterContext, EncryptionContextImpl, init_encryptionContext, __classPrivateFieldGet, __classPrivateFieldSet, _Mutex_locked, Mutex, init_mutex, __classPrivateFieldGet2, __classPrivateFieldSet2, _RecipientContextImpl_mutex, RecipientContextImpl, init_recipientContext, __classPrivateFieldGet3, __classPrivateFieldSet3, _SenderContextImpl_mutex, SenderContextImpl, init_senderContext, LABEL_BASE_NONCE, LABEL_EXP, LABEL_INFO_HASH, LABEL_KEY, LABEL_PSK_ID_HASH, LABEL_SECRET, SUITE_ID_HEADER_HPKE, CipherSuiteNative, init_cipherSuiteNative, DhkemP256HkdfSha256Native, DhkemP384HkdfSha384Native, DhkemP521HkdfSha512Native, init_dhkemNative, CipherSuite, DhkemP256HkdfSha256, DhkemP384HkdfSha384, DhkemP521HkdfSha512, HkdfSha256, HkdfSha384, HkdfSha512, init_native, ALG_NAME, PKCS8_ALG_ID_X25519, BASE_POINT_X25519, X25519, init_x25519, DhkemX25519HkdfSha256, init_dhkemX25519, PKCS8_ALG_ID_X448, init_x448, init_dhkemX448, init_mod2, init_hpke2, isLE3, wrapCipher, init_utils2, encodeStr, sigma16, sigma32, sigma16_32, sigma32_32, BLOCK_LEN, BLOCK_LEN32, MAX_COUNTER, U32_EMPTY, _XorStreamPRG, createPRG, init_arx, Poly1305, poly1305, init_poly1305, chacha_exports, chacha20orig, chacha20, xchacha20, chacha8, chacha12, ZEROS16, updatePadded, ZEROS32, _poly1305_aead, chacha20poly1305, xchacha20poly1305, rngChacha20, rngChacha8, init_chacha, init_makeAead, init_makeKdfImpl, init_makeDhKem, init_makeHpke, defaultRng, init_rng, crypto2, init_cryptoNode, isLE4, swap32IfBE3, hasHexBuiltin2, hexes2, asciis, Hash, init_utils3, HashMD3, SHA256_IV3, SHA384_IV3, SHA512_IV3, init_md3, U32_MASK643, _32n3, shrSH3, shrSL3, rotrSH3, rotrSL3, rotrBH3, rotrBL3, rotlSH2, rotlSL2, rotlBH2, rotlBL2, add3L3, add3H3, add4L3, add4H3, add5L3, add5H3, init_u643, SHA256_K, SHA256_W, SHA256, K512, SHA512_Kh, SHA512_Kl, SHA512_W_H, SHA512_W_L, SHA512, SHA384, sha2563, sha5122, sha3842, init_sha22, _0n2, _1n2, isPosBig, bitMask, notImplemented, init_utils4, _0n3, _1n3, _2n2, _3n, _4n, _5n, _7n2, _8n, _9n, _16n, isNegativeLE, FIELD_FIELDS, init_modular2, _0n4, _1n4, pointPrecomputes, pointWindowSizes, wNAF, init_curve2, _0n5, _1n5, _2n3, _8n2, PrimeEdwardsPoint, init_edwards, os2ip, _DST_scalar, init_hash_to_curve, _0n6, _1n6, _2n4, init_montgomery2, ed25519_exports, _0n7, _1n7, _2n5, _3n2, _5n2, _8n3, ed25519_CURVE_p, ed25519_CURVE, ED25519_SQRT_M1, Fp, Fn, ed25519Defaults, ed25519, ed25519ctx, ed25519ph, x25519, ELL2_C1, ELL2_C2, ELL2_C3, ELL2_C1_EDWARDS, ed25519_hasher, SQRT_M1, SQRT_AD_MINUS_ONE, INVSQRT_A_MINUS_D, ONE_MINUS_D_SQ, D_MINUS_ONE_SQ, invertSqrt, MAX_255B, bytes255ToNumberLE, _RistrettoPoint, ristretto255, ristretto255_hasher, ED25519_TORSION_SUBGROUP, edwardsToMontgomery, RistrettoPoint, hashToCurve, encodeToCurve, hashToRistretto255, hash_to_ristretto255, init_ed25519, _0n8, _1n8, _2n6, _7n3, _256n2, _0x71n2, SHA3_PI2, SHA3_ROTL2, _SHA3_IOTA2, IOTAS2, SHA3_IOTA_H2, SHA3_IOTA_L2, rotlH, rotlL, Keccak, genShake, shake2562, init_sha32, ed448_exports, ed448_CURVE, E448_CURVE, shake256_114, shake256_64, _1n9, _2n7, _3n3, _4n2, _11n, _22n, _44n, _88n, _223n, Fp2, Fn2, Fp448, Fn448, ED448_DEF, ed448, ed448ph, E448, x448, ELL2_C12, ELL2_J, ed448_hasher, ONE_MINUS_D, ONE_MINUS_TWO_D, SQRT_MINUS_D, INVSQRT_MINUS_D, invertSqrt2, _DecafPoint, decaf448, decaf448_hasher, ED448_TORSION_SUBGROUP, DecafPoint, hashToCurve2, encodeToCurve2, hashToDecaf448, hash_to_decaf448, edwardsToMontgomery2, init_ed448, HMAC, hmac2, init_hmac2, divNearest, DERErr, DER, _0n9, _1n10, _2n8, _3n4, _4n3, init_weierstrass, init_shortw_utils, nist_exports, p256_CURVE, p384_CURVE, p521_CURVE, Fp256, Fp384, Fp521, p256, p256_hasher, p384, p384_hasher, p521, secp256r1, secp384r1, secp521r1, p521_hasher, init_nist, init_makeNobleSignatureImpl, defaultCryptoProvider, init_provider, init_getCiphersuiteImpl, init_resumption, SHA256_K2, SHA256_W2, SHA2_32B, _SHA256, K5122, SHA512_Kh2, SHA512_Kl2, SHA512_W_H2, SHA512_W_L2, SHA2_64B, _SHA512, _SHA384, sha2564, sha5123, sha3843, init_sha23, _HMAC2, hmac3, init_hmac3, init_makeHashImpl2, init_makeNobleSignatureImpl2, BLOCK_SIZE, ZEROS162, ZEROS322, POLY, mul2, swapLE, estimateWindow, GHASH, Polyval, ghash, polyval, init_polyval, BLOCK_SIZE2, BLOCK_SIZE32, EMPTY_BLOCK, POLY2, sbox, rotr32_8, rotl32_8, tableEncoding, xPowers, gcm, _CMAC, cmac, init_aes, init_makeAead2, init_makeKdfImpl2, init_makeDhKem2, init_makeHpke2, init_rng2, nobleCryptoProvider, init_provider2, mlsPublicMessageEncoder, encodeMlsPublicMessage, mlsWelcomeEncoder, encodeMlsWelcome, mlsPrivateMessageEncoder, encodeMlsPrivateMessage, mlsGroupInfoEncoder, encodeMlsGroupInfo, mlsKeyPackageEncoder, encodeMlsKeyPackage, mlsMessageContentEncoder, encodeMlsMessageContent, decodeMlsMessageContent, mlsMessageEncoder, encodeMlsMessage, decodeMlsMessage, init_message, greaseValues, defaultGreaseConfig, init_grease, init_defaultCapabilities, init_src, DEFAULT_CIPHERSUITE, MLSGroupManager, init_mls_group, DOMAIN, NONCE_BYTES3, init_owner_sync, init_mls_delivery_order, init_mls_presend_epoch, dist_exports, init_dist2, DIR_MODE, FILE_MODE, init_secure_file, SYNC_LOCK_STALE_MS, pendingKpPath, init_mls_state, init_mls_kp_pool, PACKAGE, FALLBACK, MAX_LEN, DISALLOWED, init_client_version, CredentialStore, init_credential_store, init_crypto_helpers, STATE_FILE, LEGACY_STATE_FILE, init_state, init_transport2, A2ALogGate, init_a2a_log_gate, init_mls_membership_probe, FIRST_DIRTY_DELAY_MS, RETRY_BASE_DELAYS_MS, MAX_RETRY_DELAY_MS, JITTER_FRACTION, HistoryBackupScheduler, init_history_backup_scheduler, FILE_MODE2, init_history_recovery_file, TENANT_ID_PATTERN, DIR_MODE2, FILE_MODE3, HISTORY_RECOVERY_VERIFY_TIMEOUT_MS, VERIFY_TIMEOUT_MESSAGE, HistoryRecoveryVerificationTimeoutError, init_history_recovery_code, history_backup_client_exports, HISTORY_RESTORE_TIMEOUT_MS, HISTORY_RESTORE_RESPONSE_MAX_BYTES, HISTORY_ENVELOPE_MIN_BYTES, HISTORY_AAD_PREFIX, UUID_RE2, GENERATION_RESPONSE_KEYS, utf8Encoder, utf8Decoder, HistoryBackupClient, init_history_backup_client, openclaw_compat_exports, defaultImporter, HEARTBEAT_CANDIDATES, AGENT_EVENT_CANDIDATES, TRANSCRIPT_CANDIDATES, _heartbeatFn, _agentEventFn, _transcriptFn, init_openclaw_compat, http_handlers_exports, init_http_handlers, mcp_proxy_helpers_exports, init_mcp_proxy_helpers, workspace_handlers_exports, MAX_FILE_SIZE, init_workspace_handlers, ROOM_AGENT_TYPES, CREDENTIAL_MESSAGE_TYPES, CATCHUP_MESSAGE_TYPES, POLL_INTERVAL_MS, RECONNECT_BASE_MS, UUID_RE3, RECONNECT_MAX_MS, PENDING_POLL_INTERVAL_MS, HISTORY_RESTORE_TIMEOUT_MS2, HISTORY_UPLOAD_TIMEOUT_MS, CANONICAL_TIMESTAMP_RE, OUTBOUND_DEDUPE_WINDOW_MS, OUTBOUND_DEDUPE_MAX_SUPPRESS_MS, OUTBOUND_DEDUPE_MAX, OUTBOUND_DEDUPE_TYPES, RETRY_CANDIDATE_TTL_MS, RETRY_CANDIDATE_MAX, ROOM_FULFIL_COOLDOWN_MS, SecureChannel, init_channel, init_types, DEFAULT_API_URL, DEFAULT_HTTP_PORT, init_account_config, init_lifecycle, _ocRuntime, _channels, agentVaultPlugin, init_openclaw_plugin, init_gateway_send, init_llm_response_parser, init_llm_cost, traceStore, init_fetch_interceptor, init_tool_audit, init_harness_compat, managedRoutesRequested, init_openclaw_entry, util, objectUtil, ZodParsedType, getParsedType, init_util, ZodIssueCode, ZodError, init_ZodError, errorMap, en_default, init_en, overrideErrorMap, init_errors2, makeIssue, ParseStatus, INVALID, DIRTY, OK, isAborted, isDirty, isValid, isAsync, init_parseUtil, init_typeAliases, errorUtil, init_errorUtil, ParseInputLazyPath, handleResult, ZodType, cuidRegex, cuid2Regex, ulidRegex, uuidRegex, nanoidRegex, jwtRegex, durationRegex, emailRegex, _emojiRegex, emojiRegex, ipv4Regex, ipv4CidrRegex, ipv6Regex, ipv6CidrRegex, base64Regex, base64urlRegex, dateRegexSource, dateRegex, ZodString, ZodNumber, ZodBigInt, ZodBoolean, ZodDate, ZodSymbol, ZodUndefined, ZodNull, ZodAny, ZodUnknown, ZodNever, ZodVoid, ZodArray, ZodObject, ZodUnion, getDiscriminator, ZodDiscriminatedUnion, ZodIntersection, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodFunction, ZodLazy, ZodLiteral, ZodEnum, ZodNativeEnum, ZodPromise, ZodEffects, ZodOptional, ZodNullable, ZodDefault, ZodCatch, ZodNaN, ZodBranded, ZodPipeline, ZodReadonly, late, ZodFirstPartyTypeKind, stringType, numberType, nanType, bigIntType, booleanType, dateType, symbolType, undefinedType, nullType, anyType, unknownType, neverType, voidType, arrayType, objectType, strictObjectType, unionType, discriminatedUnionType, intersectionType, tupleType, recordType, mapType, setType, functionType, lazyType, literalType, enumType, nativeEnumType, promiseType, effectsType, optionalType, nullableType, preprocessType, pipelineType, init_types2, init_external, init_v3, NEVER, $ZodAsyncError, $ZodEncodeError, globalConfig, init_core, util_exports, EVALUATING, captureStackTrace, allowsEval, getParsedType2, propertyKeyTypes, primitiveTypes, NUMBER_FORMAT_RANGES, BIGINT_FORMAT_RANGES, Class, init_util2, initializer, $ZodError, $ZodRealError, init_errors3, _parse, parse, _parseAsync, parseAsync, _safeParse, safeParse, _safeParseAsync, safeParseAsync, _encode, _decode, _encodeAsync, _decodeAsync, _safeEncode, _safeDecode, _safeEncodeAsync, _safeDecodeAsync, init_parse, regexes_exports, cuid, cuid2, ulid, xid, ksuid, nanoid, duration, extendedDuration, guid, uuid, uuid4, uuid6, uuid7, email, html5Email, rfc5322Email, unicodeEmail, idnEmail, browserEmail, _emoji, ipv4, ipv6, mac, cidrv4, cidrv6, base64, base64url, hostname, domain, e164, dateSource, date, string, bigint, integer, number, boolean, _null, _undefined, lowercase, uppercase, hex, md5_hex, md5_base64, md5_base64url, sha1_hex, sha1_base64, sha1_base64url, sha256_hex, sha256_base64, sha256_base64url, sha384_hex, sha384_base64, sha384_base64url, sha512_hex, sha512_base64, sha512_base64url, init_regexes, $ZodCheck, numericOriginMap, $ZodCheckLessThan, $ZodCheckGreaterThan, $ZodCheckMultipleOf, $ZodCheckNumberFormat, $ZodCheckBigIntFormat, $ZodCheckMaxSize, $ZodCheckMinSize, $ZodCheckSizeEquals, $ZodCheckMaxLength, $ZodCheckMinLength, $ZodCheckLengthEquals, $ZodCheckStringFormat, $ZodCheckRegex, $ZodCheckLowerCase, $ZodCheckUpperCase, $ZodCheckIncludes, $ZodCheckStartsWith, $ZodCheckEndsWith, $ZodCheckProperty, $ZodCheckMimeType, $ZodCheckOverwrite, init_checks, Doc, init_doc, version, init_versions, $ZodType, $ZodString, $ZodStringFormat, $ZodGUID, $ZodUUID, $ZodEmail, $ZodURL, $ZodEmoji, $ZodNanoID, $ZodCUID, $ZodCUID2, $ZodULID, $ZodXID, $ZodKSUID, $ZodISODateTime, $ZodISODate, $ZodISOTime, $ZodISODuration, $ZodIPv4, $ZodIPv6, $ZodMAC, $ZodCIDRv4, $ZodCIDRv6, $ZodBase64, $ZodBase64URL, $ZodE164, $ZodJWT, $ZodCustomStringFormat, $ZodNumber, $ZodNumberFormat, $ZodBoolean, $ZodBigInt, $ZodBigIntFormat, $ZodSymbol, $ZodUndefined, $ZodNull, $ZodAny, $ZodUnknown, $ZodNever, $ZodVoid, $ZodDate, $ZodArray, $ZodObject, $ZodObjectJIT, $ZodUnion, $ZodXor, $ZodDiscriminatedUnion, $ZodIntersection, $ZodTuple, $ZodRecord, $ZodMap, $ZodSet, $ZodEnum, $ZodLiteral, $ZodFile, $ZodTransform, $ZodOptional, $ZodExactOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodNonOptional, $ZodSuccess, $ZodCatch, $ZodNaN, $ZodPipe, $ZodCodec, $ZodReadonly, $ZodTemplateLiteral, $ZodFunction, $ZodPromise, $ZodLazy, $ZodCustom, init_schemas, init_ar, init_az, init_be, init_bg, init_ca, init_cs, init_da, init_de, error, init_en2, init_eo, init_es, init_fa, init_fi, init_fr, init_fr_CA, init_he, init_hu, init_hy, init_id, init_is, init_it, init_ja, init_ka, init_km, init_kh, init_ko, init_lt, init_mk, init_ms, init_nl, init_no, init_ota, init_ps, init_pl, init_pt, init_ru, init_sl, init_sv, init_ta, init_th, init_tr, init_uk, init_ua, init_ur, init_uz, init_vi, init_zh_CN, init_zh_TW, init_yo, init_locales, _a2, $ZodRegistry, globalRegistry, init_registries, init_api, createToJSONSchemaMethod, createStandardJSONSchemaMethod, init_to_json_schema, formatMap, stringProcessor, numberProcessor, booleanProcessor, bigintProcessor, symbolProcessor, nullProcessor, undefinedProcessor, voidProcessor, neverProcessor, anyProcessor, unknownProcessor, dateProcessor, enumProcessor, literalProcessor, nanProcessor, templateLiteralProcessor, fileProcessor, successProcessor, customProcessor, functionProcessor, transformProcessor, mapProcessor, setProcessor, arrayProcessor, objectProcessor, unionProcessor, intersectionProcessor, tupleProcessor, recordProcessor, nullableProcessor, nonoptionalProcessor, defaultProcessor, prefaultProcessor, catchProcessor, pipeProcessor, readonlyProcessor, promiseProcessor, optionalProcessor, lazyProcessor, allProcessors, init_json_schema_processors, init_json_schema_generator, init_json_schema, init_core2, init_parse2, ZodMiniType, ZodMiniObject, init_schemas2, init_checks2, init_iso, init_coerce, init_external2, init_v4_mini, init_zod_compat, checks_exports2, init_checks3, iso_exports2, ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration, init_iso2, initializer2, ZodError2, ZodRealError, init_errors4, parse2, parseAsync2, safeParse3, safeParseAsync3, encode3, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2, init_parse3, schemas_exports3, ZodType2, _ZodString, ZodString2, ZodStringFormat, ZodEmail, ZodGUID, ZodUUID, ZodURL, ZodEmoji, ZodNanoID, ZodCUID, ZodCUID2, ZodULID, ZodXID, ZodKSUID, ZodIPv4, ZodMAC, ZodIPv6, ZodCIDRv4, ZodCIDRv6, ZodBase64, ZodBase64URL, ZodE164, ZodJWT, ZodCustomStringFormat, ZodNumber2, ZodNumberFormat, ZodBoolean2, ZodBigInt2, ZodBigIntFormat, ZodSymbol2, ZodUndefined2, ZodNull2, ZodAny2, ZodUnknown2, ZodNever2, ZodVoid2, ZodDate2, ZodArray2, ZodObject2, ZodUnion2, ZodXor, ZodDiscriminatedUnion2, ZodIntersection2, ZodTuple2, ZodRecord2, ZodMap2, ZodSet2, ZodEnum2, ZodLiteral2, ZodFile, ZodTransform, ZodOptional2, ZodExactOptional, ZodNullable2, ZodDefault2, ZodPrefault, ZodNonOptional, ZodSuccess, ZodCatch2, ZodNaN2, ZodPipe, ZodCodec, ZodReadonly2, ZodTemplateLiteral, ZodLazy2, ZodPromise2, ZodFunction2, ZodCustom, describe2, meta2, stringbool, init_schemas3, ZodFirstPartyTypeKind2, init_compat, z2, init_from_json_schema, init_coerce2, init_external3, init_classic, init_v4, LATEST_PROTOCOL_VERSION, DEFAULT_NEGOTIATED_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, RELATED_TASK_META_KEY, JSONRPC_VERSION, AssertObjectSchema, ProgressTokenSchema, CursorSchema, TaskCreationParamsSchema, TaskMetadataSchema, RelatedTaskMetadataSchema, RequestMetaSchema, BaseRequestParamsSchema, TaskAugmentedRequestParamsSchema, isTaskAugmentedRequestParams, RequestSchema, NotificationsParamsSchema, NotificationSchema, ResultSchema, RequestIdSchema, JSONRPCRequestSchema, isJSONRPCRequest, JSONRPCNotificationSchema, isJSONRPCNotification, JSONRPCResultResponseSchema, isJSONRPCResultResponse, ErrorCode, JSONRPCErrorResponseSchema, isJSONRPCErrorResponse, JSONRPCMessageSchema, JSONRPCResponseSchema, EmptyResultSchema, CancelledNotificationParamsSchema, CancelledNotificationSchema, IconSchema, IconsSchema, BaseMetadataSchema, ImplementationSchema, FormElicitationCapabilitySchema, ElicitationCapabilitySchema, ClientTasksCapabilitySchema, ServerTasksCapabilitySchema, ClientCapabilitiesSchema, InitializeRequestParamsSchema, InitializeRequestSchema, isInitializeRequest, ServerCapabilitiesSchema, InitializeResultSchema, InitializedNotificationSchema, PingRequestSchema, ProgressSchema, ProgressNotificationParamsSchema, ProgressNotificationSchema, PaginatedRequestParamsSchema, PaginatedRequestSchema, PaginatedResultSchema, TaskStatusSchema, TaskSchema, CreateTaskResultSchema, TaskStatusNotificationParamsSchema, TaskStatusNotificationSchema, GetTaskRequestSchema, GetTaskResultSchema, GetTaskPayloadRequestSchema, GetTaskPayloadResultSchema, ListTasksRequestSchema, ListTasksResultSchema, CancelTaskRequestSchema, CancelTaskResultSchema, ResourceContentsSchema, TextResourceContentsSchema, Base64Schema, BlobResourceContentsSchema, RoleSchema, AnnotationsSchema, ResourceSchema, ResourceTemplateSchema, ListResourcesRequestSchema, ListResourcesResultSchema, ListResourceTemplatesRequestSchema, ListResourceTemplatesResultSchema, ResourceRequestParamsSchema, ReadResourceRequestParamsSchema, ReadResourceRequestSchema, ReadResourceResultSchema, ResourceListChangedNotificationSchema, SubscribeRequestParamsSchema, SubscribeRequestSchema, UnsubscribeRequestParamsSchema, UnsubscribeRequestSchema, ResourceUpdatedNotificationParamsSchema, ResourceUpdatedNotificationSchema, PromptArgumentSchema, PromptSchema, ListPromptsRequestSchema, ListPromptsResultSchema, GetPromptRequestParamsSchema, GetPromptRequestSchema, TextContentSchema, ImageContentSchema, AudioContentSchema, ToolUseContentSchema, EmbeddedResourceSchema, ResourceLinkSchema, ContentBlockSchema, PromptMessageSchema, GetPromptResultSchema, PromptListChangedNotificationSchema, ToolAnnotationsSchema, ToolExecutionSchema, ToolSchema, ListToolsRequestSchema, ListToolsResultSchema, CallToolResultSchema, CompatibilityCallToolResultSchema, CallToolRequestParamsSchema, CallToolRequestSchema, ToolListChangedNotificationSchema, ListChangedOptionsBaseSchema, LoggingLevelSchema, SetLevelRequestParamsSchema, SetLevelRequestSchema, LoggingMessageNotificationParamsSchema, LoggingMessageNotificationSchema, ModelHintSchema, ModelPreferencesSchema, ToolChoiceSchema, ToolResultContentSchema, SamplingContentSchema, SamplingMessageContentBlockSchema, SamplingMessageSchema, CreateMessageRequestParamsSchema, CreateMessageRequestSchema, CreateMessageResultSchema, CreateMessageResultWithToolsSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema, UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema, LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema, EnumSchemaSchema, PrimitiveSchemaDefinitionSchema, ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema, ElicitRequestParamsSchema, ElicitRequestSchema, ElicitationCompleteNotificationParamsSchema, ElicitationCompleteNotificationSchema, ElicitResultSchema, ResourceTemplateReferenceSchema, PromptReferenceSchema, CompleteRequestParamsSchema, CompleteRequestSchema, CompleteResultSchema, RootSchema, ListRootsRequestSchema, ListRootsResultSchema, RootsListChangedNotificationSchema, ClientRequestSchema, ClientNotificationSchema, ClientResultSchema, ServerRequestSchema, ServerNotificationSchema, ServerResultSchema, McpError, UrlElicitationRequiredError, init_types3, init_interfaces, ignoreOverride, defaultOptions, getDefaultOptions, init_Options, getRefs, init_Refs, init_errorMessages, getRelativePath, init_getRelativePath, init_any, init_array2, init_bigint, init_boolean, init_branded, parseCatchDef, init_catch, integerDateParser, init_date, init_default, init_effects, init_enum, isJsonSchema7AllOfType, init_intersection, init_literal, emojiRegex2, zodPatterns, ALPHA_NUMERIC, init_string2, init_record, init_map, init_nativeEnum, init_never, init_null, primitiveMappings, asAnyOf, init_union, init_nullable, init_number2, init_object, parseOptionalDef, init_optional2, parsePipelineDef, init_pipeline, init_promise, init_set, init_tuple, init_undefined, init_unknown, parseReadonlyDef, init_readonly, selectParser, init_selectParser, get$ref, addMeta, init_parseDef, init_parseTypes, zodToJsonSchema, init_zodToJsonSchema, init_esm, init_zod_json_schema_compat, DEFAULT_REQUEST_TIMEOUT_MSEC, Protocol, init_protocol, require_code, require_scope, require_codegen, require_util, require_names, require_errors, require_boolSchema, require_rules, require_applicability, require_dataType, require_defaults, require_code2, require_keyword, require_subschema, require_fast_deep_equal, require_json_schema_traverse, require_resolve, require_validate, require_validation_error, require_ref_error, require_compile, require_data, require_utils, require_schemes, require_fast_uri, require_uri, require_core, require_id, require_ref, require_core2, require_limitNumber, require_multipleOf, require_ucs2length, require_limitLength, require_pattern, require_limitProperties, require_required, require_limitItems, require_equal, require_uniqueItems, require_const, require_enum, require_validation, require_additionalItems, require_items, require_prefixItems, require_items2020, require_contains, require_dependencies, require_propertyNames, require_additionalProperties, require_properties, require_patternProperties, require_not, require_anyOf, require_oneOf, require_allOf, require_if, require_thenElse, require_applicator, require_format, require_format2, require_metadata, require_draft7, require_types, require_discriminator, require_json_schema_draft_07, require_ajv, require_formats, require_limit, require_dist, import_ajv, import_ajv_formats, AjvJsonSchemaValidator, init_ajv_provider, ExperimentalServerTasks, init_server, init_helpers, Server, init_server2, COMPLETABLE_SYMBOL, McpZodTypeKind, init_completable, init_uriTemplate, TOOL_NAME_REGEX, init_toolNameValidation, ExperimentalMcpServerTasks, init_mcp_server, init_zod, McpServer, EMPTY_OBJECT_JSON_SCHEMA, EMPTY_COMPLETION_RESULT, init_mcp, RequestError, toRequestError, GlobalRequest, Request2, newHeadersFromIncoming, wrapBodyStream, newRequestFromIncoming, getRequestCache, requestCache, incomingKey, urlKey, headersKey, abortControllerKey, getAbortController, requestPrototype, newRequest, responseCache, getResponseCache, cacheKey, GlobalResponse, Response2, buildOutgoingHttpHeaders, X_ALREADY_SENT, outgoingEnded, handleRequestError, handleFetchError, handleResponseError, flushHeaders, responseViaCache, isPromise, responseViaResponseObject, getRequestListener, init_dist22, WebStandardStreamableHTTPServerTransport, init_webStandardStreamableHttp, StreamableHTTPServerTransport, init_streamableHttp, AgentVaultMcpServer, init_mcp_server2, init_mcp_handlers, init_skill_manifest, init_skill_invoker, spanBuffer, init_skill_telemetry, PolicyEnforcer, init_policy_enforcer, VERSION, init_index;
|
|
17189
|
+
var __create, __defProp2, __getOwnPropDesc, __getOwnPropNames2, __getProtoOf, __hasOwnProp, __esm2, __commonJS, __export2, __copyProps, __toESM, SENTINEL, WRAPPERS, INSTRUCTION, init_abstention, init_envelope_text, init_mls_commit_classify, MENTION_RE, BROADCAST_NAMES, init_room_protocol, __filename, __dirname, url2, path, Module, Module, root, window_, crypto_, randomValuesStandard, crypto4, randomValueNodeJS, _Module, libsodium_sumo_default, init_libsodium_sumo, a, r, t, c, libsodium_wrappers_default, init_libsodium_wrappers, init_keys, init_x3dh, MAX_SKIP, CHAIN_KEY_SEED, MSG_KEY_SEED, HEADER_KEY_SEED, DoubleRatchet, init_ratchet, init_file_crypto, DOMAIN_DID_DOCUMENT, DOMAIN_TRANSFER_INTENT, DOMAIN_TRANSFER_ACCEPT, BASE58_ALPHABET, init_did, BUILTIN_PATTERNS, ScanEngine, init_scan_engine, init_merkle, VC_CONTEXT_V2, AV_CREDENTIAL_CONTEXT, CRYPTOSUITE, BASE58_ALPHABET2, init_vc, init_transport, init_telemetry, TelemetryReporter, init_telemetry_reporter, CROCKFORD, ARGON2_OPSLIMIT, ARGON2_MEMLIMIT, SALT_BYTES, NONCE_BYTES, KEY_BYTES, BACKUP_VERSION, MAX_BACKUP_SIZE, init_backup, isLE, swap8IfBE, swap32IfBE, hasHexBuiltin, hexes, oidNist, init_utils, BSIGMA, init_blake, HashMD, SHA256_IV, SHA384_IV, SHA512_IV, init_md, U32_MASK64, _32n, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, add3L, add3H, add4L, add4H, add5L, add5H, init_u64, B2B_IV, BBUF, _BLAKE2, _BLAKE2b, blake2b, init_blake2, CROCKFORD2, SALT_BYTES2, NONCE_BYTES2, KEY_BYTES2, TAG_BYTES, ENVELOPE_OVERHEAD, AAD_PREFIX, UUID_RE, UUID_V4_RE, DIGEST_ID_RE, TIMESTAMP_RE, encoder, decoder, HISTORY_MAGIC, HISTORY_ARCHIVE_VERSION, HISTORY_MAX_ENTRIES, HISTORY_MAX_BLOB_BYTES, HISTORY_KDF_OPSLIMIT, HISTORY_KDF_MEMLIMIT, HistoryEntryTooLargeError, init_history_backup, init_approval, encVoid, init_tlsEncoder, uint8Encoder, encodeUint8, decodeUint8, uint16Encoder, encodeUint16, decodeUint16, uint32Encoder, encodeUint32, decodeUint32, uint64Encoder, encodeUint64, decodeUint64, init_number, init_tlsDecoder, init_enumHelpers, defaultProposalTypes, defaultProposalTypeEncoder, encodeDefaultProposalType, decodeDefaultProposalType, init_defaultProposalType, defaultExtensionTypes, defaultExtensionTypeEncoder, encodeDefaultExtensionType, decodeDefaultExtensionType, init_defaultExtensionType, acceptAll, init_incomingMessageAction, MlsError, ValidationError, CodecError, UsageError, DependencyError, CryptoVerificationError, CryptoError, InternalError, init_mlsError, init_byteArray, varLenDataEncoder, decodeVarLenData, init_variableLength, init_constantTimeCompare, extensionTypeEncoder, encodeExtensionType, decodeExtensionType, extensionEncoder, encodeExtension, decodeExtension, init_extension, credentialTypes, credentialTypeEncoder, encodeCredentialType, decodeCredentialType, init_credentialType, credentialBasicEncoder, encodeCredentialBasic, credentialX509Encoder, encodeCredentialX509, credentialCustomEncoder, encodeCredentialCustom, credentialEncoder, encodeCredential, decodeCredentialBasic, decodeCredentialX509, decodeCredential, init_credential, externalSenderEncoder, encodeExternalSender, decodeExternalSender, init_externalSender, init_hash, init_optional, ciphersuites, ciphersuiteEncoder, encodeCiphersuite, decodeCiphersuite, ciphersuiteValues, init_ciphersuite, init_signature, protocolVersions, protocolVersionEncoder, encodeProtocolVersion, decodeProtocolVersion, init_protocolVersion, capabilitiesEncoder, encodeCapabilities, decodeCapabilities, init_capabilities, leafNodeSources, leafNodeSourceEncoder, encodeLeafNodeSource, decodeLeafNodeSource, init_leafNodeSource, lifetimeEncoder, encodeLifetime, decodeLifetime, defaultLifetime, init_lifetime, leafNodeDataEncoder, encodeLeafNodeData, decodeLeafNodeData, leafNodeInfoKeyPackageEncoder, encodeLeafNodeInfoKeyPackage, leafNodeInfoUpdateOmittedEncoder, encodeLeafNodeInfoUpdateOmitted, leafNodeInfoCommitOmittedEncoder, encodeLeafNodeInfoCommitOmitted, leafNodeInfoOmittedEncoder, encodeLeafNodeInfoOmitted, decodeLeafNodeInfoKeyPackage, decodeLeafNodeInfoUpdateOmitted, decodeLeafNodeInfoCommitOmitted, decodeLeafNodeInfoOmitted, leafNodeInfoUpdateEncoder, encodeLeafNodeInfoUpdate, leafNodeInfoCommitEncoder, encodeLeafNodeInfoCommit, leafNodeInfoEncoder, encodeLeafNodeInfo, decodeLeafNodeInfoUpdate, decodeLeafNodeInfoCommit, decodeLeafNodeInfo, leafNodeTBSEncoder, encodeLeafNodeTBS, leafNodeEncoder, encodeLeafNode, decodeLeafNode, decodeLeafNodeKeyPackage, decodeLeafNodeCommit, decodeLeafNodeUpdate, init_leafNode, keyPackageTBSEncoder, encodeKeyPackageTBS, decodeKeyPackageTBS, keyPackageEncoder, encodeKeyPackage, decodeKeyPackage, init_keyPackage, init_kdf, pskTypes, pskTypeEncoder, encodePskType, decodePskType, resumptionPSKUsages, resumptionPSKUsageEncoder, encodeResumptionPSKUsage, decodeResumptionPSKUsage, encodePskInfoExternal, encodePskInfoResumption, decodePskInfoResumption, pskInfoEncoder, encodePskInfo, decodePskInfo, pskIdEncoder, encodePskId, decodePskId, pskLabelEncoder, encodePskLabel, decodePskLabel, init_presharedkey, addEncoder, encodeAdd, decodeAdd, updateEncoder, encodeUpdate, decodeUpdate, removeEncoder, encodeRemove, decodeRemove, pskEncoder, encodePSK, decodePSK, reinitEncoder, encodeReinit, decodeReinit, externalInitEncoder, encodeExternalInit, decodeExternalInit, groupContextExtensionsEncoder, encodeGroupContextExtensions, decodeGroupContextExtensions, proposalAddEncoder, encodeProposalAdd, proposalUpdateEncoder, encodeProposalUpdate, proposalRemoveEncoder, encodeProposalRemove, proposalPSKEncoder, encodeProposalPSK, proposalReinitEncoder, encodeProposalReinit, proposalExternalInitEncoder, encodeProposalExternalInit, proposalGroupContextExtensionsEncoder, encodeProposalGroupContextExtensions, proposalCustomEncoder, encodeProposalCustom, proposalEncoder, encodeProposal, decodeProposalAdd, decodeProposalUpdate, decodeProposalRemove, decodeProposalPSK, decodeProposalReinit, decodeProposalExternalInit, decodeProposalGroupContextExtensions, decodeProposal, init_proposal, proposalOrRefTypes, proposalOrRefTypeEncoder, encodeProposalOrRefType, decodeProposalOrRefType, proposalOrRefProposalEncoder, encodeProposalOrRefProposal, proposalOrRefProposalRefEncoder, encodeProposalOrRefProposalRef, proposalOrRefEncoder, encodeProposalOrRef, decodeProposalOrRef, init_proposalOrRefType, init_hpke, groupContextEncoder, encodeGroupContext, decodeGroupContext, init_groupContext, nodeTypes, nodeTypeEncoder, encodeNodeType, decodeNodeType, init_nodeType, parentNodeEncoder, encodeParentNode, decodeParentNode, init_parentNode, init_treemath, nodeEncoder, encodeNode, decodeNode, ratchetTreeEncoder, encodeRatchetTree, decodeRatchetTree, init_ratchetTree, leafNodeHashInputEncoder, encodeLeafNodeHashInput, decodeLeafNodeHashInput, parentNodeHashInputEncoder, encodeParentNodeHashInput, decodeParentNodeHashInput, treeHashInputEncoder, encodeTreeHashInput, decodeTreeHashInput, init_treeHash, parentHashInputEncoder, encodeParentHashInput, decodeParentHashInput, init_parentHash, hpkeCiphertextEncoder, encodeHpkeCiphertext, decodeHpkeCiphertext, init_hpkeCiphertext, updatePathNodeEncoder, encodeUpdatePathNode, decodeUpdatePathNode, updatePathEncoder, encodeUpdatePath, decodeUpdatePath, init_updatePath, commitEncoder, encodeCommit, decodeCommit, init_commit, contentTypes, contentTypeEncoder, encodeContentType, decodeContentType, init_contentType, wireformats, wireformatEncoder, encodeWireformat, decodeWireformat, init_wireformat, senderTypes, senderTypeEncoder, encodeSenderType, decodeSenderType, senderEncoder, encodeSender, decodeSender, reuseGuardEncoder, encodeReuseGuard, decodeReuseGuard, senderDataEncoder, encodeSenderData, decodeSenderData, senderDataAADEncoder, encodeSenderDataAAD, decodeSenderDataAAD, init_sender, framedContentApplicationDataEncoder, encodeFramedContentApplicationData, framedContentProposalDataEncoder, encodeFramedContentProposalData, framedContentCommitDataEncoder, encodeFramedContentCommitData, framedContentInfoEncoder, encodeFramedContentInfo, decodeFramedContentApplicationData, decodeFramedContentProposalData, decodeFramedContentCommitData, decodeFramedContentInfo, framedContentEncoder, encodeFramedContent, decodeFramedContent, senderInfoEncoder, encodeSenderInfo, framedContentTBSEncoder, encodeFramedContentTBS, encodeFramedContentAuthDataContent, encodeFramedContentAuthDataCommit, framedContentAuthDataEncoder, encodeFramedContentAuthData, decodeFramedContentAuthDataCommit, init_framedContent, authenticatedContentEncoder, encodeAuthenticatedContent, decodeAuthenticatedContent, authenticatedContentTBMEncoder, encodeAuthenticatedContentTBM, init_authenticatedContent, publicMessageInfoEncoder, encodePublicMessageInfo, publicMessageEncoder, encodePublicMessage, decodePublicMessage, init_publicMessage, init_messageProtectionPublic, init_externalProposal, requiredCapabilitiesEncoder, encodeRequiredCapabilities, decodeRequiredCapabilities, init_requiredCapabilities, defaultAuthenticationService, init_authenticationService, defaultPaddingConfig, init_paddingConfig, defaultKeyPackageEqualityConfig, init_keyPackageEqualityConfig, defaultLifetimeConfig, init_lifetimeConfig, defaultKeyRetentionConfig, init_keyRetentionConfig, groupInfoTBSEncoder, encodeGroupInfoTBS, decodeGroupInfoTBS, groupInfoEncoder, encodeGroupInfo, decodeGroupInfo, init_groupInfo, keyScheduleEncoder, encodeKeySchedule, decodeKeySchedule, init_keySchedule, generationSecretEncoder, decodeGenerationSecret, secretTreeNodeEncoder, decodeSecretTreeNode, secretTreeEncoder, decodeSecretTree, init_secretTree, confirmedTranscriptHashInputEncoder, encodeConfirmedTranscriptHashInput, decodeConfirmedTranscriptHashInput, init_transcriptHash, groupSecretsEncoder, encodeGroupSecrets, decodeGroupSecrets, init_groupSecrets, encryptedGroupSecretsEncoder, encodeEncryptedGroupSecrets, decodeEncryptedGroupSecrets, welcomeEncoder, encodeWelcome, decodeWelcome, init_welcome, init_pathSecrets, privateKeyPathEncoder, decodePrivateKeyPath, init_privateKeyPath, proposalWithSenderEncoder, decodeProposalWithSender, unappliedProposalsEncoder, decodeUnappliedProposals, init_unappliedProposals, emptyPskIndex, init_pskIndex, init_addToMap, defaultClientConfig, init_clientConfig, init_array, stringEncoder, encodeString, decodeString, init_string, activeEncoder, suspendedPendingReinitEncoder, removedFromGroupEncoder, groupActiveStateEncoder, decodeGroupActiveState, init_groupActiveState, epochReceiverDataEncoder, decodeEpochReceiverData, init_epochReceiverData, groupStateEncoder, encodeGroupState, decodeGroupState, groupStateEncoderWithoutTree, encodeGroupStateWithoutTree, emptyProposals, init_clientState, privateMessageEncoder, encodePrivateMessage, decodePrivateMessage, privateContentAADEncoder, encodePrivateContentAAD, decodePrivateContentAAD, init_privateMessage, init_messageProtection, init_createMessage, init_createCommit, init_processMessages, init_makeHashImpl, HpkeError, InvalidParamError, SerializeError, DeserializeError, EncapError, DecapError, ExportError, SealError, OpenError, MessageLimitReachedError, DeriveKeyPairError, NotSupportedError, init_errors, dntGlobals, dntGlobalThis, init_dnt_shims, NativeAlgorithm, init_algorithm, Mode, KemId, KdfId, AeadId, init_identifiers, INPUT_LENGTH_LIMIT, INFO_LENGTH_LIMIT, MINIMUM_PSK_LENGTH, EMPTY, BYTE_TO_BIGINT_256, init_consts, SUITE_ID_HEADER_KEM, init_kemInterface, HPKE_VERSION, HkdfNative, HkdfSha256Native, HkdfSha384Native, HkdfSha512Native, init_hkdf, isCryptoKeyPair, init_misc, LABEL_EAE_PRK, LABEL_SHARED_SECRET, Dhkem, init_dhkem, KEM_USAGES, LABEL_DKP_PRK, LABEL_SK, init_dhkemPrimitives, Bignum, init_bignum, LABEL_CANDIDATE, ORDER_P_256, ORDER_P_384, ORDER_P_521, PKCS8_ALG_ID_P_256, PKCS8_ALG_ID_P_384, PKCS8_ALG_ID_P_521, EC_P_256_PARAMS, EC_P_384_PARAMS, EC_P_521_PARAMS, Ec, init_ec, init_xCryptoKey, init_xCurve, init_hybridkem, AEAD_USAGES, init_aeadEncryptionContext, _endianTestBuffer, _endianTestBytes, isLE2, init_noble, init_hash2, _HMAC, hmac, init_hmac, init_md2, U32_MASK642, _32n2, init_u642, init_sha2, _0n, _1n, _2n, _7n, _256n, _0x71n, SHA3_PI, SHA3_ROTL, _SHA3_IOTA, IOTAS, SHA3_IOTA_H, SHA3_IOTA_L, init_sha3, init_modular, init_curve, init_montgomery, init_mod, AesGcmContext, Aes128Gcm, Aes256Gcm, init_aesGcm, init_exportOnly, init_emitNotSupported, LABEL_SEC, ExporterContextImpl, RecipientExporterContextImpl, SenderExporterContextImpl, init_exporterContext, EncryptionContextImpl, init_encryptionContext, __classPrivateFieldGet, __classPrivateFieldSet, _Mutex_locked, Mutex, init_mutex, __classPrivateFieldGet2, __classPrivateFieldSet2, _RecipientContextImpl_mutex, RecipientContextImpl, init_recipientContext, __classPrivateFieldGet3, __classPrivateFieldSet3, _SenderContextImpl_mutex, SenderContextImpl, init_senderContext, LABEL_BASE_NONCE, LABEL_EXP, LABEL_INFO_HASH, LABEL_KEY, LABEL_PSK_ID_HASH, LABEL_SECRET, SUITE_ID_HEADER_HPKE, CipherSuiteNative, init_cipherSuiteNative, DhkemP256HkdfSha256Native, DhkemP384HkdfSha384Native, DhkemP521HkdfSha512Native, init_dhkemNative, CipherSuite, DhkemP256HkdfSha256, DhkemP384HkdfSha384, DhkemP521HkdfSha512, HkdfSha256, HkdfSha384, HkdfSha512, init_native, ALG_NAME, PKCS8_ALG_ID_X25519, BASE_POINT_X25519, X25519, init_x25519, DhkemX25519HkdfSha256, init_dhkemX25519, PKCS8_ALG_ID_X448, init_x448, init_dhkemX448, init_mod2, init_hpke2, isLE3, wrapCipher, init_utils2, encodeStr, sigma16, sigma32, sigma16_32, sigma32_32, BLOCK_LEN, BLOCK_LEN32, MAX_COUNTER, U32_EMPTY, _XorStreamPRG, createPRG, init_arx, Poly1305, poly1305, init_poly1305, chacha_exports, chacha20orig, chacha20, xchacha20, chacha8, chacha12, ZEROS16, updatePadded, ZEROS32, _poly1305_aead, chacha20poly1305, xchacha20poly1305, rngChacha20, rngChacha8, init_chacha, init_makeAead, init_makeKdfImpl, init_makeDhKem, init_makeHpke, defaultRng, init_rng, crypto2, init_cryptoNode, isLE4, swap32IfBE3, hasHexBuiltin2, hexes2, asciis, Hash, init_utils3, HashMD3, SHA256_IV3, SHA384_IV3, SHA512_IV3, init_md3, U32_MASK643, _32n3, shrSH3, shrSL3, rotrSH3, rotrSL3, rotrBH3, rotrBL3, rotlSH2, rotlSL2, rotlBH2, rotlBL2, add3L3, add3H3, add4L3, add4H3, add5L3, add5H3, init_u643, SHA256_K, SHA256_W, SHA256, K512, SHA512_Kh, SHA512_Kl, SHA512_W_H, SHA512_W_L, SHA512, SHA384, sha2563, sha5122, sha3842, init_sha22, _0n2, _1n2, isPosBig, bitMask, notImplemented, init_utils4, _0n3, _1n3, _2n2, _3n, _4n, _5n, _7n2, _8n, _9n, _16n, isNegativeLE, FIELD_FIELDS, init_modular2, _0n4, _1n4, pointPrecomputes, pointWindowSizes, wNAF, init_curve2, _0n5, _1n5, _2n3, _8n2, PrimeEdwardsPoint, init_edwards, os2ip, _DST_scalar, init_hash_to_curve, _0n6, _1n6, _2n4, init_montgomery2, ed25519_exports, _0n7, _1n7, _2n5, _3n2, _5n2, _8n3, ed25519_CURVE_p, ed25519_CURVE, ED25519_SQRT_M1, Fp, Fn, ed25519Defaults, ed25519, ed25519ctx, ed25519ph, x25519, ELL2_C1, ELL2_C2, ELL2_C3, ELL2_C1_EDWARDS, ed25519_hasher, SQRT_M1, SQRT_AD_MINUS_ONE, INVSQRT_A_MINUS_D, ONE_MINUS_D_SQ, D_MINUS_ONE_SQ, invertSqrt, MAX_255B, bytes255ToNumberLE, _RistrettoPoint, ristretto255, ristretto255_hasher, ED25519_TORSION_SUBGROUP, edwardsToMontgomery, RistrettoPoint, hashToCurve, encodeToCurve, hashToRistretto255, hash_to_ristretto255, init_ed25519, _0n8, _1n8, _2n6, _7n3, _256n2, _0x71n2, SHA3_PI2, SHA3_ROTL2, _SHA3_IOTA2, IOTAS2, SHA3_IOTA_H2, SHA3_IOTA_L2, rotlH, rotlL, Keccak, genShake, shake2562, init_sha32, ed448_exports, ed448_CURVE, E448_CURVE, shake256_114, shake256_64, _1n9, _2n7, _3n3, _4n2, _11n, _22n, _44n, _88n, _223n, Fp2, Fn2, Fp448, Fn448, ED448_DEF, ed448, ed448ph, E448, x448, ELL2_C12, ELL2_J, ed448_hasher, ONE_MINUS_D, ONE_MINUS_TWO_D, SQRT_MINUS_D, INVSQRT_MINUS_D, invertSqrt2, _DecafPoint, decaf448, decaf448_hasher, ED448_TORSION_SUBGROUP, DecafPoint, hashToCurve2, encodeToCurve2, hashToDecaf448, hash_to_decaf448, edwardsToMontgomery2, init_ed448, HMAC, hmac2, init_hmac2, divNearest, DERErr, DER, _0n9, _1n10, _2n8, _3n4, _4n3, init_weierstrass, init_shortw_utils, nist_exports, p256_CURVE, p384_CURVE, p521_CURVE, Fp256, Fp384, Fp521, p256, p256_hasher, p384, p384_hasher, p521, secp256r1, secp384r1, secp521r1, p521_hasher, init_nist, init_makeNobleSignatureImpl, defaultCryptoProvider, init_provider, init_getCiphersuiteImpl, init_resumption, SHA256_K2, SHA256_W2, SHA2_32B, _SHA256, K5122, SHA512_Kh2, SHA512_Kl2, SHA512_W_H2, SHA512_W_L2, SHA2_64B, _SHA512, _SHA384, sha2564, sha5123, sha3843, init_sha23, _HMAC2, hmac3, init_hmac3, init_makeHashImpl2, init_makeNobleSignatureImpl2, BLOCK_SIZE, ZEROS162, ZEROS322, POLY, mul2, swapLE, estimateWindow, GHASH, Polyval, ghash, polyval, init_polyval, BLOCK_SIZE2, BLOCK_SIZE32, EMPTY_BLOCK, POLY2, sbox, rotr32_8, rotl32_8, tableEncoding, xPowers, gcm, _CMAC, cmac, init_aes, init_makeAead2, init_makeKdfImpl2, init_makeDhKem2, init_makeHpke2, init_rng2, nobleCryptoProvider, init_provider2, mlsPublicMessageEncoder, encodeMlsPublicMessage, mlsWelcomeEncoder, encodeMlsWelcome, mlsPrivateMessageEncoder, encodeMlsPrivateMessage, mlsGroupInfoEncoder, encodeMlsGroupInfo, mlsKeyPackageEncoder, encodeMlsKeyPackage, mlsMessageContentEncoder, encodeMlsMessageContent, decodeMlsMessageContent, mlsMessageEncoder, encodeMlsMessage, decodeMlsMessage, init_message, greaseValues, defaultGreaseConfig, init_grease, init_defaultCapabilities, init_src, DEFAULT_CIPHERSUITE, MLSGroupManager, init_mls_group, DOMAIN, NONCE_BYTES3, init_owner_sync, init_mls_delivery_order, init_mls_presend_epoch, dist_exports, init_dist2, DIR_MODE, FILE_MODE, init_secure_file, SYNC_LOCK_STALE_MS, pendingKpPath, init_mls_state, init_mls_kp_pool, PACKAGE, FALLBACK, MAX_LEN, DISALLOWED, init_client_version, CredentialStore, init_credential_store, init_crypto_helpers, STATE_FILE, LEGACY_STATE_FILE, init_state, init_transport2, A2ALogGate, init_a2a_log_gate, init_mls_membership_probe, FIRST_DIRTY_DELAY_MS, RETRY_BASE_DELAYS_MS, MAX_RETRY_DELAY_MS, JITTER_FRACTION, HistoryBackupScheduler, init_history_backup_scheduler, FILE_MODE2, init_history_recovery_file, TENANT_ID_PATTERN, DIR_MODE2, FILE_MODE3, HISTORY_RECOVERY_VERIFY_TIMEOUT_MS, VERIFY_TIMEOUT_MESSAGE, HistoryRecoveryVerificationTimeoutError, init_history_recovery_code, ACTIONS, init_decision_reply, history_backup_client_exports, HISTORY_RESTORE_TIMEOUT_MS, HISTORY_RESTORE_RESPONSE_MAX_BYTES, HISTORY_ENVELOPE_MIN_BYTES, HISTORY_AAD_PREFIX, UUID_RE2, GENERATION_RESPONSE_KEYS, utf8Encoder, utf8Decoder, HistoryBackupClient, init_history_backup_client, openclaw_compat_exports, defaultImporter, HEARTBEAT_CANDIDATES, AGENT_EVENT_CANDIDATES, TRANSCRIPT_CANDIDATES, _heartbeatFn, _agentEventFn, _transcriptFn, init_openclaw_compat, http_handlers_exports, init_http_handlers, mcp_proxy_helpers_exports, init_mcp_proxy_helpers, workspace_handlers_exports, MAX_FILE_SIZE, init_workspace_handlers, ROOM_AGENT_TYPES, CREDENTIAL_MESSAGE_TYPES, CATCHUP_MESSAGE_TYPES, POLL_INTERVAL_MS, RECONNECT_BASE_MS, UUID_RE3, RECONNECT_MAX_MS, PENDING_POLL_INTERVAL_MS, HISTORY_RESTORE_TIMEOUT_MS2, HISTORY_UPLOAD_TIMEOUT_MS, CANONICAL_TIMESTAMP_RE, OUTBOUND_DEDUPE_WINDOW_MS, OUTBOUND_DEDUPE_MAX_SUPPRESS_MS, OUTBOUND_DEDUPE_MAX, OUTBOUND_DEDUPE_TYPES, RETRY_CANDIDATE_TTL_MS, RETRY_CANDIDATE_MAX, ROOM_FULFIL_COOLDOWN_MS, SecureChannel, init_channel, init_types, DEFAULT_API_URL, DEFAULT_HTTP_PORT, init_account_config, init_lifecycle, _ocRuntime, _channels, agentVaultPlugin, init_openclaw_plugin, init_gateway_send, init_llm_response_parser, OPENROUTER_PRICING, init_llm_pricing_openrouter, LEGACY_PRICING, PRICING, init_llm_cost, traceStore, init_fetch_interceptor, init_tool_audit, init_harness_compat, managedRoutesRequested, init_openclaw_entry, util, objectUtil, ZodParsedType, getParsedType, init_util, ZodIssueCode, ZodError, init_ZodError, errorMap, en_default, init_en, overrideErrorMap, init_errors2, makeIssue, ParseStatus, INVALID, DIRTY, OK, isAborted, isDirty, isValid, isAsync, init_parseUtil, init_typeAliases, errorUtil, init_errorUtil, ParseInputLazyPath, handleResult, ZodType, cuidRegex, cuid2Regex, ulidRegex, uuidRegex, nanoidRegex, jwtRegex, durationRegex, emailRegex, _emojiRegex, emojiRegex, ipv4Regex, ipv4CidrRegex, ipv6Regex, ipv6CidrRegex, base64Regex, base64urlRegex, dateRegexSource, dateRegex, ZodString, ZodNumber, ZodBigInt, ZodBoolean, ZodDate, ZodSymbol, ZodUndefined, ZodNull, ZodAny, ZodUnknown, ZodNever, ZodVoid, ZodArray, ZodObject, ZodUnion, getDiscriminator, ZodDiscriminatedUnion, ZodIntersection, ZodTuple, ZodRecord, ZodMap, ZodSet, ZodFunction, ZodLazy, ZodLiteral, ZodEnum, ZodNativeEnum, ZodPromise, ZodEffects, ZodOptional, ZodNullable, ZodDefault, ZodCatch, ZodNaN, ZodBranded, ZodPipeline, ZodReadonly, late, ZodFirstPartyTypeKind, stringType, numberType, nanType, bigIntType, booleanType, dateType, symbolType, undefinedType, nullType, anyType, unknownType, neverType, voidType, arrayType, objectType, strictObjectType, unionType, discriminatedUnionType, intersectionType, tupleType, recordType, mapType, setType, functionType, lazyType, literalType, enumType, nativeEnumType, promiseType, effectsType, optionalType, nullableType, preprocessType, pipelineType, init_types2, init_external, init_v3, NEVER, $ZodAsyncError, $ZodEncodeError, globalConfig, init_core, util_exports, EVALUATING, captureStackTrace, allowsEval, getParsedType2, propertyKeyTypes, primitiveTypes, NUMBER_FORMAT_RANGES, BIGINT_FORMAT_RANGES, Class, init_util2, initializer, $ZodError, $ZodRealError, init_errors3, _parse, parse, _parseAsync, parseAsync, _safeParse, safeParse, _safeParseAsync, safeParseAsync, _encode, _decode, _encodeAsync, _decodeAsync, _safeEncode, _safeDecode, _safeEncodeAsync, _safeDecodeAsync, init_parse, regexes_exports, cuid, cuid2, ulid, xid, ksuid, nanoid, duration, extendedDuration, guid, uuid, uuid4, uuid6, uuid7, email, html5Email, rfc5322Email, unicodeEmail, idnEmail, browserEmail, _emoji, ipv4, ipv6, mac, cidrv4, cidrv6, base64, base64url, hostname, domain, e164, dateSource, date, string, bigint, integer, number, boolean, _null, _undefined, lowercase, uppercase, hex, md5_hex, md5_base64, md5_base64url, sha1_hex, sha1_base64, sha1_base64url, sha256_hex, sha256_base64, sha256_base64url, sha384_hex, sha384_base64, sha384_base64url, sha512_hex, sha512_base64, sha512_base64url, init_regexes, $ZodCheck, numericOriginMap, $ZodCheckLessThan, $ZodCheckGreaterThan, $ZodCheckMultipleOf, $ZodCheckNumberFormat, $ZodCheckBigIntFormat, $ZodCheckMaxSize, $ZodCheckMinSize, $ZodCheckSizeEquals, $ZodCheckMaxLength, $ZodCheckMinLength, $ZodCheckLengthEquals, $ZodCheckStringFormat, $ZodCheckRegex, $ZodCheckLowerCase, $ZodCheckUpperCase, $ZodCheckIncludes, $ZodCheckStartsWith, $ZodCheckEndsWith, $ZodCheckProperty, $ZodCheckMimeType, $ZodCheckOverwrite, init_checks, Doc, init_doc, version, init_versions, $ZodType, $ZodString, $ZodStringFormat, $ZodGUID, $ZodUUID, $ZodEmail, $ZodURL, $ZodEmoji, $ZodNanoID, $ZodCUID, $ZodCUID2, $ZodULID, $ZodXID, $ZodKSUID, $ZodISODateTime, $ZodISODate, $ZodISOTime, $ZodISODuration, $ZodIPv4, $ZodIPv6, $ZodMAC, $ZodCIDRv4, $ZodCIDRv6, $ZodBase64, $ZodBase64URL, $ZodE164, $ZodJWT, $ZodCustomStringFormat, $ZodNumber, $ZodNumberFormat, $ZodBoolean, $ZodBigInt, $ZodBigIntFormat, $ZodSymbol, $ZodUndefined, $ZodNull, $ZodAny, $ZodUnknown, $ZodNever, $ZodVoid, $ZodDate, $ZodArray, $ZodObject, $ZodObjectJIT, $ZodUnion, $ZodXor, $ZodDiscriminatedUnion, $ZodIntersection, $ZodTuple, $ZodRecord, $ZodMap, $ZodSet, $ZodEnum, $ZodLiteral, $ZodFile, $ZodTransform, $ZodOptional, $ZodExactOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodNonOptional, $ZodSuccess, $ZodCatch, $ZodNaN, $ZodPipe, $ZodCodec, $ZodReadonly, $ZodTemplateLiteral, $ZodFunction, $ZodPromise, $ZodLazy, $ZodCustom, init_schemas, init_ar, init_az, init_be, init_bg, init_ca, init_cs, init_da, init_de, error, init_en2, init_eo, init_es, init_fa, init_fi, init_fr, init_fr_CA, init_he, init_hu, init_hy, init_id, init_is, init_it, init_ja, init_ka, init_km, init_kh, init_ko, init_lt, init_mk, init_ms, init_nl, init_no, init_ota, init_ps, init_pl, init_pt, init_ru, init_sl, init_sv, init_ta, init_th, init_tr, init_uk, init_ua, init_ur, init_uz, init_vi, init_zh_CN, init_zh_TW, init_yo, init_locales, _a2, $ZodRegistry, globalRegistry, init_registries, init_api, createToJSONSchemaMethod, createStandardJSONSchemaMethod, init_to_json_schema, formatMap, stringProcessor, numberProcessor, booleanProcessor, bigintProcessor, symbolProcessor, nullProcessor, undefinedProcessor, voidProcessor, neverProcessor, anyProcessor, unknownProcessor, dateProcessor, enumProcessor, literalProcessor, nanProcessor, templateLiteralProcessor, fileProcessor, successProcessor, customProcessor, functionProcessor, transformProcessor, mapProcessor, setProcessor, arrayProcessor, objectProcessor, unionProcessor, intersectionProcessor, tupleProcessor, recordProcessor, nullableProcessor, nonoptionalProcessor, defaultProcessor, prefaultProcessor, catchProcessor, pipeProcessor, readonlyProcessor, promiseProcessor, optionalProcessor, lazyProcessor, allProcessors, init_json_schema_processors, init_json_schema_generator, init_json_schema, init_core2, init_parse2, ZodMiniType, ZodMiniObject, init_schemas2, init_checks2, init_iso, init_coerce, init_external2, init_v4_mini, init_zod_compat, checks_exports2, init_checks3, iso_exports2, ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration, init_iso2, initializer2, ZodError2, ZodRealError, init_errors4, parse2, parseAsync2, safeParse3, safeParseAsync3, encode3, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2, init_parse3, schemas_exports3, ZodType2, _ZodString, ZodString2, ZodStringFormat, ZodEmail, ZodGUID, ZodUUID, ZodURL, ZodEmoji, ZodNanoID, ZodCUID, ZodCUID2, ZodULID, ZodXID, ZodKSUID, ZodIPv4, ZodMAC, ZodIPv6, ZodCIDRv4, ZodCIDRv6, ZodBase64, ZodBase64URL, ZodE164, ZodJWT, ZodCustomStringFormat, ZodNumber2, ZodNumberFormat, ZodBoolean2, ZodBigInt2, ZodBigIntFormat, ZodSymbol2, ZodUndefined2, ZodNull2, ZodAny2, ZodUnknown2, ZodNever2, ZodVoid2, ZodDate2, ZodArray2, ZodObject2, ZodUnion2, ZodXor, ZodDiscriminatedUnion2, ZodIntersection2, ZodTuple2, ZodRecord2, ZodMap2, ZodSet2, ZodEnum2, ZodLiteral2, ZodFile, ZodTransform, ZodOptional2, ZodExactOptional, ZodNullable2, ZodDefault2, ZodPrefault, ZodNonOptional, ZodSuccess, ZodCatch2, ZodNaN2, ZodPipe, ZodCodec, ZodReadonly2, ZodTemplateLiteral, ZodLazy2, ZodPromise2, ZodFunction2, ZodCustom, describe2, meta2, stringbool, init_schemas3, ZodFirstPartyTypeKind2, init_compat, z2, init_from_json_schema, init_coerce2, init_external3, init_classic, init_v4, LATEST_PROTOCOL_VERSION, DEFAULT_NEGOTIATED_PROTOCOL_VERSION, SUPPORTED_PROTOCOL_VERSIONS, RELATED_TASK_META_KEY, JSONRPC_VERSION, AssertObjectSchema, ProgressTokenSchema, CursorSchema, TaskCreationParamsSchema, TaskMetadataSchema, RelatedTaskMetadataSchema, RequestMetaSchema, BaseRequestParamsSchema, TaskAugmentedRequestParamsSchema, isTaskAugmentedRequestParams, RequestSchema, NotificationsParamsSchema, NotificationSchema, ResultSchema, RequestIdSchema, JSONRPCRequestSchema, isJSONRPCRequest, JSONRPCNotificationSchema, isJSONRPCNotification, JSONRPCResultResponseSchema, isJSONRPCResultResponse, ErrorCode, JSONRPCErrorResponseSchema, isJSONRPCErrorResponse, JSONRPCMessageSchema, JSONRPCResponseSchema, EmptyResultSchema, CancelledNotificationParamsSchema, CancelledNotificationSchema, IconSchema, IconsSchema, BaseMetadataSchema, ImplementationSchema, FormElicitationCapabilitySchema, ElicitationCapabilitySchema, ClientTasksCapabilitySchema, ServerTasksCapabilitySchema, ClientCapabilitiesSchema, InitializeRequestParamsSchema, InitializeRequestSchema, isInitializeRequest, ServerCapabilitiesSchema, InitializeResultSchema, InitializedNotificationSchema, PingRequestSchema, ProgressSchema, ProgressNotificationParamsSchema, ProgressNotificationSchema, PaginatedRequestParamsSchema, PaginatedRequestSchema, PaginatedResultSchema, TaskStatusSchema, TaskSchema, CreateTaskResultSchema, TaskStatusNotificationParamsSchema, TaskStatusNotificationSchema, GetTaskRequestSchema, GetTaskResultSchema, GetTaskPayloadRequestSchema, GetTaskPayloadResultSchema, ListTasksRequestSchema, ListTasksResultSchema, CancelTaskRequestSchema, CancelTaskResultSchema, ResourceContentsSchema, TextResourceContentsSchema, Base64Schema, BlobResourceContentsSchema, RoleSchema, AnnotationsSchema, ResourceSchema, ResourceTemplateSchema, ListResourcesRequestSchema, ListResourcesResultSchema, ListResourceTemplatesRequestSchema, ListResourceTemplatesResultSchema, ResourceRequestParamsSchema, ReadResourceRequestParamsSchema, ReadResourceRequestSchema, ReadResourceResultSchema, ResourceListChangedNotificationSchema, SubscribeRequestParamsSchema, SubscribeRequestSchema, UnsubscribeRequestParamsSchema, UnsubscribeRequestSchema, ResourceUpdatedNotificationParamsSchema, ResourceUpdatedNotificationSchema, PromptArgumentSchema, PromptSchema, ListPromptsRequestSchema, ListPromptsResultSchema, GetPromptRequestParamsSchema, GetPromptRequestSchema, TextContentSchema, ImageContentSchema, AudioContentSchema, ToolUseContentSchema, EmbeddedResourceSchema, ResourceLinkSchema, ContentBlockSchema, PromptMessageSchema, GetPromptResultSchema, PromptListChangedNotificationSchema, ToolAnnotationsSchema, ToolExecutionSchema, ToolSchema, ListToolsRequestSchema, ListToolsResultSchema, CallToolResultSchema, CompatibilityCallToolResultSchema, CallToolRequestParamsSchema, CallToolRequestSchema, ToolListChangedNotificationSchema, ListChangedOptionsBaseSchema, LoggingLevelSchema, SetLevelRequestParamsSchema, SetLevelRequestSchema, LoggingMessageNotificationParamsSchema, LoggingMessageNotificationSchema, ModelHintSchema, ModelPreferencesSchema, ToolChoiceSchema, ToolResultContentSchema, SamplingContentSchema, SamplingMessageContentBlockSchema, SamplingMessageSchema, CreateMessageRequestParamsSchema, CreateMessageRequestSchema, CreateMessageResultSchema, CreateMessageResultWithToolsSchema, BooleanSchemaSchema, StringSchemaSchema, NumberSchemaSchema, UntitledSingleSelectEnumSchemaSchema, TitledSingleSelectEnumSchemaSchema, LegacyTitledEnumSchemaSchema, SingleSelectEnumSchemaSchema, UntitledMultiSelectEnumSchemaSchema, TitledMultiSelectEnumSchemaSchema, MultiSelectEnumSchemaSchema, EnumSchemaSchema, PrimitiveSchemaDefinitionSchema, ElicitRequestFormParamsSchema, ElicitRequestURLParamsSchema, ElicitRequestParamsSchema, ElicitRequestSchema, ElicitationCompleteNotificationParamsSchema, ElicitationCompleteNotificationSchema, ElicitResultSchema, ResourceTemplateReferenceSchema, PromptReferenceSchema, CompleteRequestParamsSchema, CompleteRequestSchema, CompleteResultSchema, RootSchema, ListRootsRequestSchema, ListRootsResultSchema, RootsListChangedNotificationSchema, ClientRequestSchema, ClientNotificationSchema, ClientResultSchema, ServerRequestSchema, ServerNotificationSchema, ServerResultSchema, McpError, UrlElicitationRequiredError, init_types3, init_interfaces, ignoreOverride, defaultOptions, getDefaultOptions, init_Options, getRefs, init_Refs, init_errorMessages, getRelativePath, init_getRelativePath, init_any, init_array2, init_bigint, init_boolean, init_branded, parseCatchDef, init_catch, integerDateParser, init_date, init_default, init_effects, init_enum, isJsonSchema7AllOfType, init_intersection, init_literal, emojiRegex2, zodPatterns, ALPHA_NUMERIC, init_string2, init_record, init_map, init_nativeEnum, init_never, init_null, primitiveMappings, asAnyOf, init_union, init_nullable, init_number2, init_object, parseOptionalDef, init_optional2, parsePipelineDef, init_pipeline, init_promise, init_set, init_tuple, init_undefined, init_unknown, parseReadonlyDef, init_readonly, selectParser, init_selectParser, get$ref, addMeta, init_parseDef, init_parseTypes, zodToJsonSchema, init_zodToJsonSchema, init_esm, init_zod_json_schema_compat, DEFAULT_REQUEST_TIMEOUT_MSEC, Protocol, init_protocol, require_code, require_scope, require_codegen, require_util, require_names, require_errors, require_boolSchema, require_rules, require_applicability, require_dataType, require_defaults, require_code2, require_keyword, require_subschema, require_fast_deep_equal, require_json_schema_traverse, require_resolve, require_validate, require_validation_error, require_ref_error, require_compile, require_data, require_utils, require_schemes, require_fast_uri, require_uri, require_core, require_id, require_ref, require_core2, require_limitNumber, require_multipleOf, require_ucs2length, require_limitLength, require_pattern, require_limitProperties, require_required, require_limitItems, require_equal, require_uniqueItems, require_const, require_enum, require_validation, require_additionalItems, require_items, require_prefixItems, require_items2020, require_contains, require_dependencies, require_propertyNames, require_additionalProperties, require_properties, require_patternProperties, require_not, require_anyOf, require_oneOf, require_allOf, require_if, require_thenElse, require_applicator, require_format, require_format2, require_metadata, require_draft7, require_types, require_discriminator, require_json_schema_draft_07, require_ajv, require_formats, require_limit, require_dist, import_ajv, import_ajv_formats, AjvJsonSchemaValidator, init_ajv_provider, ExperimentalServerTasks, init_server, init_helpers, Server, init_server2, COMPLETABLE_SYMBOL, McpZodTypeKind, init_completable, init_uriTemplate, TOOL_NAME_REGEX, init_toolNameValidation, ExperimentalMcpServerTasks, init_mcp_server, init_zod, McpServer, EMPTY_OBJECT_JSON_SCHEMA, EMPTY_COMPLETION_RESULT, init_mcp, RequestError, toRequestError, GlobalRequest, Request2, newHeadersFromIncoming, wrapBodyStream, newRequestFromIncoming, getRequestCache, requestCache, incomingKey, urlKey, headersKey, abortControllerKey, getAbortController, requestPrototype, newRequest, responseCache, getResponseCache, cacheKey, GlobalResponse, Response2, buildOutgoingHttpHeaders, X_ALREADY_SENT, outgoingEnded, handleRequestError, handleFetchError, handleResponseError, flushHeaders, responseViaCache, isPromise, responseViaResponseObject, getRequestListener, init_dist22, WebStandardStreamableHTTPServerTransport, init_webStandardStreamableHttp, StreamableHTTPServerTransport, init_streamableHttp, AgentVaultMcpServer, init_mcp_server2, init_mcp_handlers, init_skill_manifest, init_skill_invoker, spanBuffer, init_skill_telemetry, PolicyEnforcer, init_policy_enforcer, VERSION, init_index;
|
|
17164
17190
|
var init_dist = __esm({
|
|
17165
17191
|
async "../plugin/dist/index.js"() {
|
|
17166
17192
|
"use strict";
|
|
@@ -59983,7 +60009,11 @@ var init_dist = __esm({
|
|
|
59983
60009
|
_agentName;
|
|
59984
60010
|
_agentVersion;
|
|
59985
60011
|
_pluginVersion;
|
|
60012
|
+
_maxRetries;
|
|
60013
|
+
_maxBufferedSpans;
|
|
59986
60014
|
_buffer = [];
|
|
60015
|
+
/** Failed send attempts per buffered span. */
|
|
60016
|
+
_attempts = /* @__PURE__ */ new WeakMap();
|
|
59987
60017
|
_timer = null;
|
|
59988
60018
|
constructor(config2) {
|
|
59989
60019
|
this._apiBase = config2.apiBase.replace(/\/+$/, "");
|
|
@@ -59993,6 +60023,8 @@ var init_dist = __esm({
|
|
|
59993
60023
|
this._agentName = config2.agentName ?? "unknown";
|
|
59994
60024
|
this._agentVersion = config2.agentVersion ?? "0.0.0";
|
|
59995
60025
|
this._pluginVersion = config2.pluginVersion ?? "0.0.0";
|
|
60026
|
+
this._maxRetries = Math.max(1, config2.maxRetries ?? 5);
|
|
60027
|
+
this._maxBufferedSpans = Math.max(1, config2.maxBufferedSpans ?? 1e3);
|
|
59996
60028
|
}
|
|
59997
60029
|
/** Number of spans waiting to be flushed. */
|
|
59998
60030
|
get pendingCount() {
|
|
@@ -60040,7 +60072,9 @@ var init_dist = __esm({
|
|
|
60040
60072
|
* POST all buffered spans to the backend ingest endpoint.
|
|
60041
60073
|
*
|
|
60042
60074
|
* - On success (HTTP 2xx): clears the buffer.
|
|
60043
|
-
* - On failure: keeps spans
|
|
60075
|
+
* - On a retryable failure (network, 5xx, 408, 429): keeps spans for retry,
|
|
60076
|
+
* bounded by `maxRetries` per span and `maxBufferedSpans` overall.
|
|
60077
|
+
* - On any other 4xx: drops the batch (it can never be accepted).
|
|
60044
60078
|
* - Never throws — telemetry is best-effort.
|
|
60045
60079
|
*/
|
|
60046
60080
|
async flush() {
|
|
@@ -60069,13 +60103,23 @@ var init_dist = __esm({
|
|
|
60069
60103
|
spans: spans.map(spanToOtlp)
|
|
60070
60104
|
})
|
|
60071
60105
|
});
|
|
60072
|
-
if (!response.ok) {
|
|
60073
|
-
this.
|
|
60106
|
+
if (!response.ok && isRetryableStatus(response.status)) {
|
|
60107
|
+
this._requeue(spans);
|
|
60074
60108
|
}
|
|
60075
60109
|
} catch {
|
|
60076
|
-
this.
|
|
60110
|
+
this._requeue(spans);
|
|
60077
60111
|
}
|
|
60078
60112
|
}
|
|
60113
|
+
/** Put a failed batch back in front of newer spans, within both caps. */
|
|
60114
|
+
_requeue(spans) {
|
|
60115
|
+
const retained = spans.filter((span) => {
|
|
60116
|
+
const attempts = (this._attempts.get(span) ?? 0) + 1;
|
|
60117
|
+
this._attempts.set(span, attempts);
|
|
60118
|
+
return attempts < this._maxRetries;
|
|
60119
|
+
});
|
|
60120
|
+
const merged = retained.concat(this._buffer);
|
|
60121
|
+
this._buffer = merged.length > this._maxBufferedSpans ? merged.slice(merged.length - this._maxBufferedSpans) : merged;
|
|
60122
|
+
}
|
|
60079
60123
|
// -- Auto-flush -------------------------------------------------------------
|
|
60080
60124
|
/**
|
|
60081
60125
|
* Start a periodic flush timer.
|
|
@@ -69597,6 +69641,12 @@ var init_dist = __esm({
|
|
|
69597
69641
|
};
|
|
69598
69642
|
}
|
|
69599
69643
|
});
|
|
69644
|
+
init_decision_reply = __esm2({
|
|
69645
|
+
"src/decision-reply.ts"() {
|
|
69646
|
+
"use strict";
|
|
69647
|
+
ACTIONS = /* @__PURE__ */ new Set(["approve", "deny", "defer", "cancel"]);
|
|
69648
|
+
}
|
|
69649
|
+
});
|
|
69600
69650
|
history_backup_client_exports = {};
|
|
69601
69651
|
__export2(history_backup_client_exports, {
|
|
69602
69652
|
HISTORY_RESTORE_RESPONSE_MAX_BYTES: () => HISTORY_RESTORE_RESPONSE_MAX_BYTES,
|
|
@@ -69940,6 +69990,7 @@ var init_dist = __esm({
|
|
|
69940
69990
|
init_mls_membership_probe();
|
|
69941
69991
|
init_history_backup_scheduler();
|
|
69942
69992
|
await init_history_recovery_code();
|
|
69993
|
+
init_decision_reply();
|
|
69943
69994
|
ROOM_AGENT_TYPES = /* @__PURE__ */ new Set([
|
|
69944
69995
|
"message",
|
|
69945
69996
|
"text",
|
|
@@ -70225,9 +70276,12 @@ ${text}`;
|
|
|
70225
70276
|
// Reset at the start of every `_connect`.
|
|
70226
70277
|
_authFailedThisSession = false;
|
|
70227
70278
|
// Last observed WebSocket close code, captured by the ws.on("close", ...)
|
|
70228
|
-
// handler. Used by the rapid-disconnect classifier
|
|
70229
|
-
//
|
|
70279
|
+
// handler. Used by the rapid-disconnect classifier: 4001 = server rejected
|
|
70280
|
+
// the credentials (auth_failed); 4000 = reserved "session_replaced".
|
|
70230
70281
|
_lastCloseCode = null;
|
|
70282
|
+
// True while a once("ready") listener is waiting to honour config.httpPort,
|
|
70283
|
+
// so repeated start() calls do not stack listeners.
|
|
70284
|
+
_httpPortListenerArmed = false;
|
|
70231
70285
|
// Liveness detection: server sends app-level {"event":"ping"} every 30s.
|
|
70232
70286
|
// We check every 30s; if no data received in 90s (3 missed pings), connection is dead.
|
|
70233
70287
|
static PING_INTERVAL_MS = 3e4;
|
|
@@ -70529,10 +70583,19 @@ ${text}`;
|
|
|
70529
70583
|
async start() {
|
|
70530
70584
|
await this._stateSaveQueue;
|
|
70531
70585
|
this._stopped = false;
|
|
70586
|
+
this._clearSuspendedWait();
|
|
70532
70587
|
this._lifecycleGeneration += 1;
|
|
70533
70588
|
this._historyBackupScheduler.stop();
|
|
70534
70589
|
this._historyBackupScheduler = this._createHistoryBackupScheduler();
|
|
70535
70590
|
await libsodium_wrappers_default.ready;
|
|
70591
|
+
const httpPort = this.config.httpPort;
|
|
70592
|
+
if (typeof httpPort === "number" && !this._httpPortListenerArmed) {
|
|
70593
|
+
this._httpPortListenerArmed = true;
|
|
70594
|
+
this.once("ready", () => {
|
|
70595
|
+
this._httpPortListenerArmed = false;
|
|
70596
|
+
if (!this._stopped) this.startHttpServer(httpPort);
|
|
70597
|
+
});
|
|
70598
|
+
}
|
|
70536
70599
|
if (this._forceReEnroll) {
|
|
70537
70600
|
console.log("[SecureChannel] forceReEnroll set \u2014 clearing cached credentials, will enroll fresh");
|
|
70538
70601
|
await clearState(this.config.dataDir);
|
|
@@ -70875,7 +70938,24 @@ ${text}`;
|
|
|
70875
70938
|
salt = libsodium_wrappers_default.randombytes_buf(16);
|
|
70876
70939
|
}
|
|
70877
70940
|
checkpoint();
|
|
70878
|
-
const
|
|
70941
|
+
const history = state.messageHistory ?? [];
|
|
70942
|
+
if (!Array.isArray(history)) throw new Error("entries must be an array");
|
|
70943
|
+
const snapshotEntries = /* @__PURE__ */ new Map();
|
|
70944
|
+
for (let index = 0; index < history.length; index += 1) {
|
|
70945
|
+
if (!(index in history)) throw new Error("entries must not be sparse");
|
|
70946
|
+
const entry = history[index];
|
|
70947
|
+
const legacyId = legacyHistoryEntryId(entry);
|
|
70948
|
+
const id = entry.id ?? legacyId;
|
|
70949
|
+
const previous = snapshotEntries.get(id);
|
|
70950
|
+
if (previous) {
|
|
70951
|
+
if (previous.sender !== entry.sender || previous.text !== entry.text || previous.ts !== entry.ts || previous.topicId !== entry.topicId) {
|
|
70952
|
+
throw new Error("History archive contains duplicate entry IDs");
|
|
70953
|
+
}
|
|
70954
|
+
continue;
|
|
70955
|
+
}
|
|
70956
|
+
snapshotEntries.set(id, { ...entry, id });
|
|
70957
|
+
}
|
|
70958
|
+
const archive = buildHistoryArchive(state.hubId, [...snapshotEntries.values()]);
|
|
70879
70959
|
const requestedSaltHex = Buffer.from(salt).toString("hex");
|
|
70880
70960
|
const cacheIdentity = `${state.hubId}:${codeHashHex}:${requestedSaltHex}`;
|
|
70881
70961
|
checkpoint();
|
|
@@ -71605,7 +71685,7 @@ ${text}`;
|
|
|
71605
71685
|
*/
|
|
71606
71686
|
sendActivitySpan(spanData) {
|
|
71607
71687
|
if (!this._ws || this._ws.readyState !== WebSocket.OPEN) return;
|
|
71608
|
-
const pluginVersion = true ? "0.23.
|
|
71688
|
+
const pluginVersion = true ? "0.23.47" : "0.0.0-dev";
|
|
71609
71689
|
const agentName = this.config.agentName ?? "Agent";
|
|
71610
71690
|
const resource = {
|
|
71611
71691
|
"service.name": "agentvault-agent",
|
|
@@ -71684,16 +71764,27 @@ ${text}`;
|
|
|
71684
71764
|
}
|
|
71685
71765
|
/**
|
|
71686
71766
|
* Wait for a decision response matching the given decisionId.
|
|
71687
|
-
* Listens on the "message" event
|
|
71688
|
-
* metadata.
|
|
71689
|
-
*
|
|
71767
|
+
* Listens on the "message" event. Resolves when either:
|
|
71768
|
+
* - metadata.decision carries an answer for this decisionId — what every
|
|
71769
|
+
* receive path now lifts out of the app's envelope (an option selected,
|
|
71770
|
+
* or action "defer" / "cancel"); or
|
|
71771
|
+
* - legacy: metadata.messageType === "decision_response" and the
|
|
71772
|
+
* plaintext is the JSON envelope with a matching decision.decision_id.
|
|
71690
71773
|
* Optional timeout rejects with an Error.
|
|
71691
71774
|
*/
|
|
71692
71775
|
waitForDecision(decisionId, timeoutMs) {
|
|
71693
71776
|
return new Promise((resolve4, reject) => {
|
|
71694
71777
|
let timer = null;
|
|
71695
71778
|
const handler = (plaintext, metadata) => {
|
|
71696
|
-
if (metadata
|
|
71779
|
+
if (metadata?.roomId) return;
|
|
71780
|
+
const reply = metadata?.decision;
|
|
71781
|
+
if (reply && reply.decision_id === decisionId) {
|
|
71782
|
+
if (timer) clearTimeout(timer);
|
|
71783
|
+
this.removeListener("message", handler);
|
|
71784
|
+
resolve4(reply);
|
|
71785
|
+
return;
|
|
71786
|
+
}
|
|
71787
|
+
if (metadata?.messageType !== "decision_response") return;
|
|
71697
71788
|
try {
|
|
71698
71789
|
const parsed = JSON.parse(plaintext);
|
|
71699
71790
|
if (parsed.decision?.decision_id === decisionId) {
|
|
@@ -72692,6 +72783,7 @@ ${text}`;
|
|
|
72692
72783
|
clearTimeout(this._reconnectTimer);
|
|
72693
72784
|
this._reconnectTimer = null;
|
|
72694
72785
|
}
|
|
72786
|
+
this._clearSuspendedWait();
|
|
72695
72787
|
if (this._telemetryReporter) {
|
|
72696
72788
|
this._telemetryReporter.stopAutoFlush();
|
|
72697
72789
|
await this._telemetryReporter.flush();
|
|
@@ -72805,7 +72897,12 @@ ${text}`;
|
|
|
72805
72897
|
res.end(JSON.stringify({ ok: false, error: "Not found. Use POST /send, POST /decision, POST /action, GET /status, GET /targets, or /mcp" }));
|
|
72806
72898
|
}
|
|
72807
72899
|
});
|
|
72808
|
-
this._httpServer
|
|
72900
|
+
const server = this._httpServer;
|
|
72901
|
+
server.on("error", (err) => {
|
|
72902
|
+
console.error(`[SecureChannel] local HTTP server on 127.0.0.1:${port} failed: ${err.message}`);
|
|
72903
|
+
if (this._httpServer === server) this._httpServer = null;
|
|
72904
|
+
});
|
|
72905
|
+
server.listen(port, "127.0.0.1", () => {
|
|
72809
72906
|
this.emit("http-ready", port);
|
|
72810
72907
|
});
|
|
72811
72908
|
}
|
|
@@ -73345,8 +73442,13 @@ ${text}`;
|
|
|
73345
73442
|
this.config.platform,
|
|
73346
73443
|
this.config.expectedFramework
|
|
73347
73444
|
);
|
|
73445
|
+
if (result.fingerprint && result.fingerprint !== fingerprint) {
|
|
73446
|
+
throw new Error(
|
|
73447
|
+
`Enrollment fingerprint mismatch: this agent's key is ${fingerprint} but the server reported ${result.fingerprint}. Not continuing \u2014 do not approve this device.`
|
|
73448
|
+
);
|
|
73449
|
+
}
|
|
73348
73450
|
this._deviceId = result.device_id;
|
|
73349
|
-
this._fingerprint =
|
|
73451
|
+
this._fingerprint = fingerprint;
|
|
73350
73452
|
this._persisted = {
|
|
73351
73453
|
deviceId: result.device_id,
|
|
73352
73454
|
deviceJwt: "",
|
|
@@ -73363,7 +73465,7 @@ ${text}`;
|
|
|
73363
73465
|
publicKey: bytesToHex2(ephemeral.publicKey),
|
|
73364
73466
|
privateKey: bytesToHex2(ephemeral.privateKey)
|
|
73365
73467
|
},
|
|
73366
|
-
fingerprint
|
|
73468
|
+
fingerprint,
|
|
73367
73469
|
messageHistory: []
|
|
73368
73470
|
};
|
|
73369
73471
|
this._poll();
|
|
@@ -73578,7 +73680,7 @@ ${text}`;
|
|
|
73578
73680
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
73579
73681
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
73580
73682
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
73581
|
-
pluginVersion: true ? "0.23.
|
|
73683
|
+
pluginVersion: true ? "0.23.47" : "0.0.0-dev"
|
|
73582
73684
|
});
|
|
73583
73685
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
73584
73686
|
}
|
|
@@ -73663,6 +73765,10 @@ ${text}`;
|
|
|
73663
73765
|
await this._handleDeviceRevoked();
|
|
73664
73766
|
return;
|
|
73665
73767
|
}
|
|
73768
|
+
if (data.event === "device_suspended") {
|
|
73769
|
+
await this._handleDeviceSuspended();
|
|
73770
|
+
return;
|
|
73771
|
+
}
|
|
73666
73772
|
if (data.event === "connection_rejected") {
|
|
73667
73773
|
await this._handleConnectionRejected(data);
|
|
73668
73774
|
return;
|
|
@@ -73902,7 +74008,7 @@ ${text}`;
|
|
|
73902
74008
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
73903
74009
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
73904
74010
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
73905
|
-
pluginVersion: true ? "0.23.
|
|
74011
|
+
pluginVersion: true ? "0.23.47" : "0.0.0-dev"
|
|
73906
74012
|
});
|
|
73907
74013
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
73908
74014
|
}
|
|
@@ -74354,12 +74460,15 @@ ${text}`;
|
|
|
74354
74460
|
let messageType = "text";
|
|
74355
74461
|
let topicId = data.topic_id;
|
|
74356
74462
|
let mlsAttachment = null;
|
|
74463
|
+
let decisionReply;
|
|
74357
74464
|
try {
|
|
74358
74465
|
const parsed = JSON.parse(plaintext);
|
|
74359
74466
|
text = envelopeText(parsed, plaintext);
|
|
74360
74467
|
messageType = parsed.type ?? "text";
|
|
74361
74468
|
topicId = parsed.topicId ?? topicId;
|
|
74362
74469
|
if (parsed.attachment) mlsAttachment = parsed.attachment;
|
|
74470
|
+
decisionReply = decisionReplyFromEnvelope(parsed);
|
|
74471
|
+
if (decisionReply) messageType = "decision_response";
|
|
74363
74472
|
} catch {
|
|
74364
74473
|
}
|
|
74365
74474
|
if (messageType === "history_catchup_request") {
|
|
@@ -74441,7 +74550,8 @@ ${text}`;
|
|
|
74441
74550
|
// material (MLS 1to1-group map, or a Double Ratchet session), NOT merely
|
|
74442
74551
|
// that a roomId was absent. The bridge's full-access DM lane requires it.
|
|
74443
74552
|
ownerDm1to1: true,
|
|
74444
|
-
messageType
|
|
74553
|
+
messageType,
|
|
74554
|
+
...decisionReply ? { decision: decisionReply } : {}
|
|
74445
74555
|
};
|
|
74446
74556
|
this.emit("message", text, metadata);
|
|
74447
74557
|
if (this.config.onMessage) {
|
|
@@ -74551,6 +74661,7 @@ ${text}`;
|
|
|
74551
74661
|
let messageText;
|
|
74552
74662
|
let messageType;
|
|
74553
74663
|
let attachmentInfo = null;
|
|
74664
|
+
let decisionReply;
|
|
74554
74665
|
try {
|
|
74555
74666
|
const parsed = JSON.parse(plaintext);
|
|
74556
74667
|
messageType = parsed.type || "message";
|
|
@@ -74558,6 +74669,7 @@ ${text}`;
|
|
|
74558
74669
|
if (parsed.attachment) {
|
|
74559
74670
|
attachmentInfo = parsed.attachment;
|
|
74560
74671
|
}
|
|
74672
|
+
decisionReply = decisionReplyFromEnvelope(parsed);
|
|
74561
74673
|
} catch {
|
|
74562
74674
|
messageType = "message";
|
|
74563
74675
|
messageText = plaintext;
|
|
@@ -74610,7 +74722,7 @@ ${text}`;
|
|
|
74610
74722
|
return;
|
|
74611
74723
|
}
|
|
74612
74724
|
}
|
|
74613
|
-
if (messageType === "message") {
|
|
74725
|
+
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
74614
74726
|
const topicId = msgData.topic_id;
|
|
74615
74727
|
this._lastIncomingTopicId = topicId;
|
|
74616
74728
|
let attachData;
|
|
@@ -74672,10 +74784,12 @@ ${messageText}`;
|
|
|
74672
74784
|
attachment: attachData,
|
|
74673
74785
|
spanId: msgData.span_id,
|
|
74674
74786
|
parentSpanId: msgData.parent_span_id,
|
|
74675
|
-
|
|
74787
|
+
// A decision answer only counts from the owner's 1:1 — never a room.
|
|
74788
|
+
messageType: decisionReply && !roomId ? "decision_response" : msgData.message_type ?? "text",
|
|
74676
74789
|
priority: msgData.priority ?? "normal",
|
|
74677
74790
|
envelopeVersion: msgData.envelope_version ?? "1.0.0",
|
|
74678
74791
|
roomId,
|
|
74792
|
+
...decisionReply && !roomId ? { decision: decisionReply } : {},
|
|
74679
74793
|
// #1223 — the pre-fold text. This DR `message` path also sets `roomId`
|
|
74680
74794
|
// and folds an attachment into `emitText`, so without this a room
|
|
74681
74795
|
// message that reaches the gate here would fall back to the folded
|
|
@@ -77325,10 +77439,12 @@ ${baseText}`;
|
|
|
77325
77439
|
}
|
|
77326
77440
|
let messageText;
|
|
77327
77441
|
let messageType;
|
|
77442
|
+
let decisionReply;
|
|
77328
77443
|
try {
|
|
77329
77444
|
const parsed = JSON.parse(plaintext);
|
|
77330
77445
|
messageType = parsed.type || "message";
|
|
77331
77446
|
messageText = envelopeText(parsed, plaintext);
|
|
77447
|
+
decisionReply = decisionReplyFromEnvelope(parsed);
|
|
77332
77448
|
} catch {
|
|
77333
77449
|
messageType = "message";
|
|
77334
77450
|
messageText = plaintext;
|
|
@@ -77340,7 +77456,7 @@ ${baseText}`;
|
|
|
77340
77456
|
ackedIds.push(msg.queue_id);
|
|
77341
77457
|
continue;
|
|
77342
77458
|
}
|
|
77343
|
-
if (messageType === "message") {
|
|
77459
|
+
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
77344
77460
|
const topicId = msg.topic_id;
|
|
77345
77461
|
await this._appendHistory("owner", messageText, this._historyContext("dm", topicId), msg.created_at, msg.message_id);
|
|
77346
77462
|
const metadata = {
|
|
@@ -77351,7 +77467,8 @@ ${baseText}`;
|
|
|
77351
77467
|
// #621: positive attestation that this decrypted under the OWNER'S 1:1
|
|
77352
77468
|
// material (MLS 1to1-group map, or a Double Ratchet session), NOT merely
|
|
77353
77469
|
// that a roomId was absent. The bridge's full-access DM lane requires it.
|
|
77354
|
-
ownerDm1to1: true
|
|
77470
|
+
ownerDm1to1: true,
|
|
77471
|
+
...decisionReply ? { messageType: "decision_response", decision: decisionReply } : {}
|
|
77355
77472
|
};
|
|
77356
77473
|
this.emit("message", messageText, metadata);
|
|
77357
77474
|
Promise.resolve(this.config.onMessage?.(messageText, metadata)).catch((err) => {
|
|
@@ -77935,15 +78052,17 @@ ${baseText}`;
|
|
|
77935
78052
|
}
|
|
77936
78053
|
let messageText;
|
|
77937
78054
|
let messageType;
|
|
78055
|
+
let decisionReply;
|
|
77938
78056
|
try {
|
|
77939
78057
|
const parsed = JSON.parse(plaintext);
|
|
77940
78058
|
messageType = parsed.type || "message";
|
|
77941
78059
|
messageText = envelopeText(parsed, plaintext);
|
|
78060
|
+
decisionReply = decisionReplyFromEnvelope(parsed);
|
|
77942
78061
|
} catch {
|
|
77943
78062
|
messageType = "message";
|
|
77944
78063
|
messageText = plaintext;
|
|
77945
78064
|
}
|
|
77946
|
-
if (messageType === "message") {
|
|
78065
|
+
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
77947
78066
|
const topicId = msg.topic_id;
|
|
77948
78067
|
await this._appendHistory("owner", messageText, this._historyContext("dm", topicId), msg.created_at, msg.id);
|
|
77949
78068
|
const metadata = {
|
|
@@ -77954,7 +78073,8 @@ ${baseText}`;
|
|
|
77954
78073
|
// #621: positive attestation that this decrypted under the OWNER'S 1:1
|
|
77955
78074
|
// material (MLS 1to1-group map, or a Double Ratchet session), NOT merely
|
|
77956
78075
|
// that a roomId was absent. The bridge's full-access DM lane requires it.
|
|
77957
|
-
ownerDm1to1: true
|
|
78076
|
+
ownerDm1to1: true,
|
|
78077
|
+
...decisionReply ? { messageType: "decision_response", decision: decisionReply } : {}
|
|
77958
78078
|
};
|
|
77959
78079
|
this.emit("message", messageText, metadata);
|
|
77960
78080
|
Promise.resolve(this.config.onMessage?.(messageText, metadata)).catch((err) => {
|
|
@@ -78130,6 +78250,7 @@ ${baseText}`;
|
|
|
78130
78250
|
}
|
|
78131
78251
|
_scheduleReconnect() {
|
|
78132
78252
|
if (this._stopped) return;
|
|
78253
|
+
if (this._suspended) return;
|
|
78133
78254
|
if (this._reconnectTimer) return;
|
|
78134
78255
|
const sinceOpen = Date.now() - this._lastWsOpenTime;
|
|
78135
78256
|
if (this._lastWsOpenTime > 0 && sinceOpen < 1e4) {
|
|
@@ -78150,7 +78271,16 @@ ${baseText}`;
|
|
|
78150
78271
|
return;
|
|
78151
78272
|
}
|
|
78152
78273
|
const lastCode = this._lastCloseCode;
|
|
78153
|
-
if (lastCode ===
|
|
78274
|
+
if (lastCode === 4001) {
|
|
78275
|
+
console.log(
|
|
78276
|
+
"[SecureChannel] Server rejected our credentials on every reconnect (close code 4001). Stopping; the device needs re-enrolling or a fresh token."
|
|
78277
|
+
);
|
|
78278
|
+
this._authFailedThisSession = true;
|
|
78279
|
+
this._setState("error");
|
|
78280
|
+
this.emit("auth_failed", { reason: "ws_auth_rejected" });
|
|
78281
|
+
return;
|
|
78282
|
+
}
|
|
78283
|
+
if (lastCode === 4e3) {
|
|
78154
78284
|
console.log(
|
|
78155
78285
|
`[SecureChannel] Server reports our session was replaced by a newer one (close code ${lastCode}). Stopping reconnect.`
|
|
78156
78286
|
);
|
|
@@ -78242,15 +78372,17 @@ ${baseText}`;
|
|
|
78242
78372
|
}
|
|
78243
78373
|
let messageText;
|
|
78244
78374
|
let messageType;
|
|
78375
|
+
let decisionReply;
|
|
78245
78376
|
try {
|
|
78246
78377
|
const parsed = JSON.parse(plaintext);
|
|
78247
78378
|
messageType = parsed.type || "message";
|
|
78248
78379
|
messageText = envelopeText(parsed, plaintext);
|
|
78380
|
+
decisionReply = decisionReplyFromEnvelope(parsed);
|
|
78249
78381
|
} catch {
|
|
78250
78382
|
messageType = "message";
|
|
78251
78383
|
messageText = plaintext;
|
|
78252
78384
|
}
|
|
78253
|
-
if (messageType === "message") {
|
|
78385
|
+
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
78254
78386
|
const topicId = msg.topic_id;
|
|
78255
78387
|
await this._appendHistory("owner", messageText, this._historyContext("dm", topicId), msg.created_at, msg.id);
|
|
78256
78388
|
const metadata = {
|
|
@@ -78261,7 +78393,8 @@ ${baseText}`;
|
|
|
78261
78393
|
// #621: positive attestation that this decrypted under the OWNER'S 1:1
|
|
78262
78394
|
// material (MLS 1to1-group map, or a Double Ratchet session), NOT merely
|
|
78263
78395
|
// that a roomId was absent. The bridge's full-access DM lane requires it.
|
|
78264
|
-
ownerDm1to1: true
|
|
78396
|
+
ownerDm1to1: true,
|
|
78397
|
+
...decisionReply ? { messageType: "decision_response", decision: decisionReply } : {}
|
|
78265
78398
|
};
|
|
78266
78399
|
this.emit("message", messageText, metadata);
|
|
78267
78400
|
Promise.resolve(this.config.onMessage?.(messageText, metadata)).catch((err) => {
|
|
@@ -78350,6 +78483,10 @@ ${baseText}`;
|
|
|
78350
78483
|
* `retryable` rejection is transient — fall through to a normal reconnect.
|
|
78351
78484
|
*/
|
|
78352
78485
|
async _handleConnectionRejected(data) {
|
|
78486
|
+
if (data?.reason === "device_suspended") {
|
|
78487
|
+
this._enterSuspendedWait("connection_rejected");
|
|
78488
|
+
return;
|
|
78489
|
+
}
|
|
78353
78490
|
if (data?.retryable === true) {
|
|
78354
78491
|
this._scheduleReconnect();
|
|
78355
78492
|
return;
|
|
@@ -78361,6 +78498,79 @@ ${baseText}`;
|
|
|
78361
78498
|
);
|
|
78362
78499
|
this.emit("auth_failed", { reason: authReason });
|
|
78363
78500
|
}
|
|
78501
|
+
// --- Owner pause (device SUSPENDED) — NON-final ---------------------------
|
|
78502
|
+
//
|
|
78503
|
+
// Suspension is reversible ("Agent active" off/on in the app). While
|
|
78504
|
+
// suspended the server will not serve this device (it rejects the handshake
|
|
78505
|
+
// with a retryable `device_suspended`), so reconnecting is pointless and,
|
|
78506
|
+
// through the rapid-disconnect classifier, used to end in a terminal error.
|
|
78507
|
+
// Instead: stay in "disconnected", poll the public status endpoint, and
|
|
78508
|
+
// reconnect as soon as the device is ACTIVE again. REVOKED ends the wait as
|
|
78509
|
+
// terminal; anything inconclusive (rate limit, network) keeps waiting.
|
|
78510
|
+
static SUSPENDED_POLL_MS = 3e4;
|
|
78511
|
+
_suspended = false;
|
|
78512
|
+
_suspendedPollTimer = null;
|
|
78513
|
+
/** Handle a WS `device_suspended` frame (owner paused this agent). */
|
|
78514
|
+
async _handleDeviceSuspended() {
|
|
78515
|
+
this._enterSuspendedWait("device_suspended");
|
|
78516
|
+
}
|
|
78517
|
+
_enterSuspendedWait(source) {
|
|
78518
|
+
if (this._stopped) return;
|
|
78519
|
+
if (this._reconnectTimer) {
|
|
78520
|
+
clearTimeout(this._reconnectTimer);
|
|
78521
|
+
this._reconnectTimer = null;
|
|
78522
|
+
}
|
|
78523
|
+
this._rapidDisconnects = 0;
|
|
78524
|
+
if (!this._suspended) {
|
|
78525
|
+
this._suspended = true;
|
|
78526
|
+
console.log(
|
|
78527
|
+
`[SecureChannel] Agent paused by its owner (${source}) \u2014 idling; will reconnect when resumed`
|
|
78528
|
+
);
|
|
78529
|
+
this._setState("disconnected");
|
|
78530
|
+
this.emit("suspended", { source });
|
|
78531
|
+
}
|
|
78532
|
+
this._scheduleSuspendedPoll();
|
|
78533
|
+
}
|
|
78534
|
+
_scheduleSuspendedPoll() {
|
|
78535
|
+
if (this._stopped || !this._suspended || this._suspendedPollTimer) return;
|
|
78536
|
+
this._suspendedPollTimer = setTimeout(() => {
|
|
78537
|
+
this._suspendedPollTimer = null;
|
|
78538
|
+
void this._pollWhileSuspended();
|
|
78539
|
+
}, _SecureChannel.SUSPENDED_POLL_MS);
|
|
78540
|
+
}
|
|
78541
|
+
_clearSuspendedWait() {
|
|
78542
|
+
this._suspended = false;
|
|
78543
|
+
if (this._suspendedPollTimer) {
|
|
78544
|
+
clearTimeout(this._suspendedPollTimer);
|
|
78545
|
+
this._suspendedPollTimer = null;
|
|
78546
|
+
}
|
|
78547
|
+
}
|
|
78548
|
+
async _pollWhileSuspended() {
|
|
78549
|
+
if (this._stopped || !this._suspended) return;
|
|
78550
|
+
const deviceId = this._deviceId ?? this._persisted?.deviceId;
|
|
78551
|
+
if (deviceId) {
|
|
78552
|
+
try {
|
|
78553
|
+
const st = await pollDeviceStatus(this.config.apiUrl, deviceId);
|
|
78554
|
+
if (this._stopped || !this._suspended) return;
|
|
78555
|
+
if (!st.rateLimited && (st.status === "ACTIVE" || st.status === "APPROVED")) {
|
|
78556
|
+
this._clearSuspendedWait();
|
|
78557
|
+
this._reconnectAttempt = 0;
|
|
78558
|
+
console.log("[SecureChannel] Agent resumed by its owner \u2014 reconnecting");
|
|
78559
|
+
this.emit("resumed");
|
|
78560
|
+
this._connect();
|
|
78561
|
+
return;
|
|
78562
|
+
}
|
|
78563
|
+
if (!st.rateLimited && st.status === "REVOKED") {
|
|
78564
|
+
this._clearSuspendedWait();
|
|
78565
|
+
this._handleError(new Error("Device was revoked"));
|
|
78566
|
+
return;
|
|
78567
|
+
}
|
|
78568
|
+
} catch (err) {
|
|
78569
|
+
console.warn("[SecureChannel] status check while paused failed; still waiting:", err);
|
|
78570
|
+
}
|
|
78571
|
+
}
|
|
78572
|
+
this._scheduleSuspendedPoll();
|
|
78573
|
+
}
|
|
78364
78574
|
async _handleDeviceRevoked() {
|
|
78365
78575
|
const now = Date.now();
|
|
78366
78576
|
this._revokeRecoveries = this._revokeRecoveries.filter(
|
|
@@ -78381,6 +78591,10 @@ ${baseText}`;
|
|
|
78381
78591
|
let reconnect;
|
|
78382
78592
|
try {
|
|
78383
78593
|
const status = await pollDeviceStatus(this.config.apiUrl, deviceId);
|
|
78594
|
+
if (status.status === "SUSPENDED") {
|
|
78595
|
+
this._enterSuspendedWait("device_revoked");
|
|
78596
|
+
return;
|
|
78597
|
+
}
|
|
78384
78598
|
reconnect = status.rateLimited === true || status.status === "ACTIVE";
|
|
78385
78599
|
if (!reconnect) {
|
|
78386
78600
|
console.warn(
|
|
@@ -78462,7 +78676,7 @@ ${baseText}`;
|
|
|
78462
78676
|
label: "AgentVault",
|
|
78463
78677
|
selectionLabel: "AgentVault (E2E Encrypted)",
|
|
78464
78678
|
docsPath: "https://agentvault.chat/docs",
|
|
78465
|
-
blurb: "
|
|
78679
|
+
blurb: "End-to-end encrypted messaging between owners and their AI agents.",
|
|
78466
78680
|
aliases: ["av", "agent-vault"]
|
|
78467
78681
|
},
|
|
78468
78682
|
capabilities: {
|
|
@@ -78661,9 +78875,540 @@ ${actionsText}`);
|
|
|
78661
78875
|
"use strict";
|
|
78662
78876
|
}
|
|
78663
78877
|
});
|
|
78878
|
+
init_llm_pricing_openrouter = __esm2({
|
|
78879
|
+
"src/llm-pricing-openrouter.ts"() {
|
|
78880
|
+
"use strict";
|
|
78881
|
+
OPENROUTER_PRICING = {
|
|
78882
|
+
anthropic: {
|
|
78883
|
+
"claude-fable-5": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78884
|
+
"claude-fable-5-1": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78885
|
+
"claude-haiku-4-5": { inputPerMtoken: 1, outputPerMtoken: 5 },
|
|
78886
|
+
"claude-haiku-5-5": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
78887
|
+
"claude-opus-4-1": { inputPerMtoken: 15, outputPerMtoken: 75 },
|
|
78888
|
+
"claude-opus-4-5": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78889
|
+
"claude-opus-4-6": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78890
|
+
"claude-opus-4-7": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78891
|
+
"claude-opus-4-8": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78892
|
+
"claude-opus-5": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78893
|
+
"claude-opus-5-5": { inputPerMtoken: 4, outputPerMtoken: 20 },
|
|
78894
|
+
"claude-sonnet-4": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
78895
|
+
"claude-sonnet-4-5": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
78896
|
+
"claude-sonnet-4-6": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
78897
|
+
"claude-sonnet-5": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78898
|
+
"claude-sonnet-5-5": { inputPerMtoken: 2, outputPerMtoken: 10 }
|
|
78899
|
+
},
|
|
78900
|
+
openai: {
|
|
78901
|
+
"gpt-3.5-turbo": { inputPerMtoken: 0.5, outputPerMtoken: 1.5 },
|
|
78902
|
+
"gpt-3.5-turbo-0613": { inputPerMtoken: 1, outputPerMtoken: 2 },
|
|
78903
|
+
"gpt-3.5-turbo-16k": { inputPerMtoken: 3, outputPerMtoken: 4 },
|
|
78904
|
+
"gpt-3.5-turbo-instruct": { inputPerMtoken: 1.5, outputPerMtoken: 2 },
|
|
78905
|
+
"gpt-4": { inputPerMtoken: 30, outputPerMtoken: 60 },
|
|
78906
|
+
"gpt-4-turbo": { inputPerMtoken: 10, outputPerMtoken: 30 },
|
|
78907
|
+
"gpt-4.1": { inputPerMtoken: 2, outputPerMtoken: 8 },
|
|
78908
|
+
"gpt-4.1-mini": { inputPerMtoken: 0.4, outputPerMtoken: 1.6 },
|
|
78909
|
+
"gpt-4.1-nano": { inputPerMtoken: 0.1, outputPerMtoken: 0.4 },
|
|
78910
|
+
"gpt-4o": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
78911
|
+
"gpt-4o-2024-05-13": { inputPerMtoken: 5, outputPerMtoken: 15 },
|
|
78912
|
+
"gpt-4o-2024-08-06": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
78913
|
+
"gpt-4o-2024-11-20": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
78914
|
+
"gpt-4o-mini": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
78915
|
+
"gpt-4o-mini-2024-07-18": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
78916
|
+
"gpt-5": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
78917
|
+
"gpt-5-image": { inputPerMtoken: 10, outputPerMtoken: 10 },
|
|
78918
|
+
"gpt-5-image-mini": { inputPerMtoken: 2.5, outputPerMtoken: 2 },
|
|
78919
|
+
"gpt-5-mini": { inputPerMtoken: 0.25, outputPerMtoken: 2 },
|
|
78920
|
+
"gpt-5-nano": { inputPerMtoken: 0.05, outputPerMtoken: 0.4 },
|
|
78921
|
+
"gpt-5-pro": { inputPerMtoken: 15, outputPerMtoken: 120 },
|
|
78922
|
+
"gpt-5.1": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
78923
|
+
"gpt-5.1-codex": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
78924
|
+
"gpt-5.1-codex-max": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
78925
|
+
"gpt-5.1-codex-mini": { inputPerMtoken: 0.25, outputPerMtoken: 2 },
|
|
78926
|
+
"gpt-5.2": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
78927
|
+
"gpt-5.2-chat": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
78928
|
+
"gpt-5.2-codex": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
78929
|
+
"gpt-5.2-pro": { inputPerMtoken: 21, outputPerMtoken: 168 },
|
|
78930
|
+
"gpt-5.3-codex": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
78931
|
+
"gpt-5.4": { inputPerMtoken: 2.5, outputPerMtoken: 15 },
|
|
78932
|
+
"gpt-5.4-image-2": { inputPerMtoken: 8, outputPerMtoken: 15 },
|
|
78933
|
+
"gpt-5.4-mini": { inputPerMtoken: 0.75, outputPerMtoken: 4.5 },
|
|
78934
|
+
"gpt-5.4-nano": { inputPerMtoken: 0.2, outputPerMtoken: 1.25 },
|
|
78935
|
+
"gpt-5.4-pro": { inputPerMtoken: 30, outputPerMtoken: 180 },
|
|
78936
|
+
"gpt-5.5": { inputPerMtoken: 5, outputPerMtoken: 30 },
|
|
78937
|
+
"gpt-5.5-pro": { inputPerMtoken: 30, outputPerMtoken: 180 },
|
|
78938
|
+
"gpt-5.6-luna": { inputPerMtoken: 0.2, outputPerMtoken: 1.2 },
|
|
78939
|
+
"gpt-5.6-luna-pro": { inputPerMtoken: 0.2, outputPerMtoken: 1.2 },
|
|
78940
|
+
"gpt-5.6-sol": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78941
|
+
"gpt-5.6-sol-pro": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78942
|
+
"gpt-5.6-terra": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
78943
|
+
"gpt-5.6-terra-pro": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
78944
|
+
"gpt-6-astra": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78945
|
+
"gpt-6-astra-pro": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78946
|
+
"gpt-6-luna": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
78947
|
+
"gpt-6-luna-pro": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
78948
|
+
"gpt-6-sol": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78949
|
+
"gpt-6-sol-pro": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78950
|
+
"gpt-6.1-sol": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78951
|
+
"gpt-6.1-sol-pro": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78952
|
+
"gpt-audio": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
78953
|
+
"gpt-audio-mini": { inputPerMtoken: 0.6, outputPerMtoken: 2.4 },
|
|
78954
|
+
"gpt-chat-latest": { inputPerMtoken: 5, outputPerMtoken: 30 },
|
|
78955
|
+
"gpt-oss-120b": { inputPerMtoken: 0.037, outputPerMtoken: 0.17 },
|
|
78956
|
+
"gpt-oss-20b": { inputPerMtoken: 0.018, outputPerMtoken: 0.09 },
|
|
78957
|
+
"gpt-oss-safeguard-20b": { inputPerMtoken: 0.075, outputPerMtoken: 0.3 },
|
|
78958
|
+
"o1": { inputPerMtoken: 15, outputPerMtoken: 60 },
|
|
78959
|
+
"o1-pro": { inputPerMtoken: 150, outputPerMtoken: 600 },
|
|
78960
|
+
"o3": { inputPerMtoken: 2, outputPerMtoken: 8 },
|
|
78961
|
+
"o3-mini": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
78962
|
+
"o3-mini-high": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
78963
|
+
"o3-pro": { inputPerMtoken: 20, outputPerMtoken: 80 },
|
|
78964
|
+
"o4-mini": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
78965
|
+
"o4-mini-high": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 }
|
|
78966
|
+
},
|
|
78967
|
+
openrouter: {
|
|
78968
|
+
"aion-2.0": { inputPerMtoken: 0.8, outputPerMtoken: 1.6 },
|
|
78969
|
+
"aion-3.0": { inputPerMtoken: 3, outputPerMtoken: 6 },
|
|
78970
|
+
"aion-3.0-mini": { inputPerMtoken: 0.7, outputPerMtoken: 1.4 },
|
|
78971
|
+
"aion-3.5": { inputPerMtoken: 3, outputPerMtoken: 6 },
|
|
78972
|
+
"aion-3.5-mini": { inputPerMtoken: 0.7, outputPerMtoken: 1.4 },
|
|
78973
|
+
"aion-rp-llama-3.1-8b": { inputPerMtoken: 0.8, outputPerMtoken: 1.6 },
|
|
78974
|
+
"claude-fable-5": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78975
|
+
"claude-fable-5.1": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78976
|
+
"claude-fable-latest": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
78977
|
+
"claude-haiku-4.5": { inputPerMtoken: 1, outputPerMtoken: 5 },
|
|
78978
|
+
"claude-haiku-5.5": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
78979
|
+
"claude-haiku-latest": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
78980
|
+
"claude-opus-4.1": { inputPerMtoken: 15, outputPerMtoken: 75 },
|
|
78981
|
+
"claude-opus-4.5": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78982
|
+
"claude-opus-4.6": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78983
|
+
"claude-opus-4.7": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78984
|
+
"claude-opus-4.8": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78985
|
+
"claude-opus-5": { inputPerMtoken: 5, outputPerMtoken: 25 },
|
|
78986
|
+
"claude-opus-5.5": { inputPerMtoken: 4, outputPerMtoken: 20 },
|
|
78987
|
+
"claude-opus-latest": { inputPerMtoken: 4, outputPerMtoken: 20 },
|
|
78988
|
+
"claude-sonnet-4": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
78989
|
+
"claude-sonnet-4.5": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
78990
|
+
"claude-sonnet-4.6": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
78991
|
+
"claude-sonnet-5": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78992
|
+
"claude-sonnet-5.5": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78993
|
+
"claude-sonnet-latest": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
78994
|
+
"codestral-2508": { inputPerMtoken: 0.3, outputPerMtoken: 0.9 },
|
|
78995
|
+
"command-a": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
78996
|
+
"command-a-plus": { inputPerMtoken: 0.3, outputPerMtoken: 1.5 },
|
|
78997
|
+
"command-r-08-2024": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
78998
|
+
"command-r-plus-08-2024": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
78999
|
+
"command-r7b-12-2024": { inputPerMtoken: 0.0375, outputPerMtoken: 0.15 },
|
|
79000
|
+
"cydonia-24b-v4.1": { inputPerMtoken: 0.3, outputPerMtoken: 0.5 },
|
|
79001
|
+
"deepseek-chat": { inputPerMtoken: 0.32, outputPerMtoken: 0.89 },
|
|
79002
|
+
"deepseek-chat-v3-0324": { inputPerMtoken: 0.29, outputPerMtoken: 1.14 },
|
|
79003
|
+
"deepseek-chat-v3.1": { inputPerMtoken: 0.25, outputPerMtoken: 0.95 },
|
|
79004
|
+
"deepseek-flash-latest": { inputPerMtoken: 0.02016, outputPerMtoken: 0.891 },
|
|
79005
|
+
"deepseek-pro-latest": { inputPerMtoken: 0.1461, outputPerMtoken: 8 },
|
|
79006
|
+
"deepseek-r1": { inputPerMtoken: 0.7, outputPerMtoken: 2.5 },
|
|
79007
|
+
"deepseek-r1-0528": { inputPerMtoken: 0.5, outputPerMtoken: 2.15 },
|
|
79008
|
+
"deepseek-v3.1-terminus": { inputPerMtoken: 0.27, outputPerMtoken: 1 },
|
|
79009
|
+
"deepseek-v3.2": { inputPerMtoken: 0.259, outputPerMtoken: 0.8 },
|
|
79010
|
+
"deepseek-v3.2-exp": { inputPerMtoken: 0.27, outputPerMtoken: 0.41 },
|
|
79011
|
+
"deepseek-v4-flash": { inputPerMtoken: 0.091, outputPerMtoken: 0.182 },
|
|
79012
|
+
"deepseek-v4-flash-0731": { inputPerMtoken: 0.016, outputPerMtoken: 0.64 },
|
|
79013
|
+
"deepseek-v4-flash-latest": { inputPerMtoken: 0.0144, outputPerMtoken: 0.576 },
|
|
79014
|
+
"deepseek-v4-flash-vision-exp": { inputPerMtoken: 0.2156, outputPerMtoken: 0.6468 },
|
|
79015
|
+
"deepseek-v4-pro": { inputPerMtoken: 0.430824, outputPerMtoken: 0.861648 },
|
|
79016
|
+
"deepseek-v4-pro-0813": { inputPerMtoken: 0.66, outputPerMtoken: 1.98 },
|
|
79017
|
+
"deepseek-v4.1-flash": { inputPerMtoken: 0.02016, outputPerMtoken: 0.891 },
|
|
79018
|
+
"devstral-2512": { inputPerMtoken: 0.4, outputPerMtoken: 2 },
|
|
79019
|
+
"dolphin-mistral-24b-venice-edition": { inputPerMtoken: 0.2, outputPerMtoken: 0.9 },
|
|
79020
|
+
"dots-3-note-preview:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79021
|
+
"ember-1": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79022
|
+
"extract": { inputPerMtoken: 0.04, outputPerMtoken: 0 },
|
|
79023
|
+
"free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79024
|
+
"fugu-max": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79025
|
+
"fugu-ultra": { inputPerMtoken: 5, outputPerMtoken: 30 },
|
|
79026
|
+
"fugu-ultra-v2": { inputPerMtoken: 5, outputPerMtoken: 30 },
|
|
79027
|
+
"gemini-2.5-flash": { inputPerMtoken: 0.3, outputPerMtoken: 2.5 },
|
|
79028
|
+
"gemini-2.5-flash-image": { inputPerMtoken: 0.3, outputPerMtoken: 2.5 },
|
|
79029
|
+
"gemini-2.5-flash-lite": { inputPerMtoken: 0.1, outputPerMtoken: 0.4 },
|
|
79030
|
+
"gemini-2.5-pro": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
79031
|
+
"gemini-2.5-pro-preview": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
79032
|
+
"gemini-3-flash-preview": { inputPerMtoken: 0.5, outputPerMtoken: 3 },
|
|
79033
|
+
"gemini-3-pro-image": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79034
|
+
"gemini-3-pro-image-preview": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79035
|
+
"gemini-3.1-flash-image": { inputPerMtoken: 0.5, outputPerMtoken: 3 },
|
|
79036
|
+
"gemini-3.1-flash-image-preview": { inputPerMtoken: 0.5, outputPerMtoken: 3 },
|
|
79037
|
+
"gemini-3.1-flash-lite": { inputPerMtoken: 0.25, outputPerMtoken: 1.5 },
|
|
79038
|
+
"gemini-3.1-flash-lite-image": { inputPerMtoken: 0.25, outputPerMtoken: 1.5 },
|
|
79039
|
+
"gemini-3.1-flash-lite-preview": { inputPerMtoken: 0.25, outputPerMtoken: 1.5 },
|
|
79040
|
+
"gemini-3.1-pro-preview": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79041
|
+
"gemini-3.1-pro-preview-customtools": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79042
|
+
"gemini-3.5-flash": { inputPerMtoken: 1.5, outputPerMtoken: 9 },
|
|
79043
|
+
"gemini-3.5-flash-lite": { inputPerMtoken: 0.3, outputPerMtoken: 2.5 },
|
|
79044
|
+
"gemini-3.6-flash": { inputPerMtoken: 0.75, outputPerMtoken: 3.75 },
|
|
79045
|
+
"gemini-3.7-flash": { inputPerMtoken: 0.75, outputPerMtoken: 3.75 },
|
|
79046
|
+
"gemini-3.8-flash": { inputPerMtoken: 0.75, outputPerMtoken: 3.75 },
|
|
79047
|
+
"gemini-4-argon": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79048
|
+
"gemini-flash-latest": { inputPerMtoken: 0.75, outputPerMtoken: 3.75 },
|
|
79049
|
+
"gemini-nano-banana-2.1": { inputPerMtoken: 1.5, outputPerMtoken: 7.5 },
|
|
79050
|
+
"gemini-pro-latest": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79051
|
+
"gemma-2-27b-it": { inputPerMtoken: 0.65, outputPerMtoken: 0.65 },
|
|
79052
|
+
"gemma-3-12b-it": { inputPerMtoken: 0.05, outputPerMtoken: 0.15 },
|
|
79053
|
+
"gemma-3-27b-it": { inputPerMtoken: 0.08, outputPerMtoken: 0.45 },
|
|
79054
|
+
"gemma-3-4b-it": { inputPerMtoken: 0.05, outputPerMtoken: 0.1 },
|
|
79055
|
+
"gemma-4-26b-a4b-it": { inputPerMtoken: 0.09, outputPerMtoken: 0.3 },
|
|
79056
|
+
"gemma-4-26b-a4b-it:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79057
|
+
"gemma-4-31b-it": { inputPerMtoken: 0.09, outputPerMtoken: 0.34 },
|
|
79058
|
+
"gemma-4-31b-it:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79059
|
+
"glm-4.5": { inputPerMtoken: 0.6, outputPerMtoken: 2.2 },
|
|
79060
|
+
"glm-4.5-air": { inputPerMtoken: 0.13, outputPerMtoken: 0.85 },
|
|
79061
|
+
"glm-4.5v": { inputPerMtoken: 0.6, outputPerMtoken: 1.8 },
|
|
79062
|
+
"glm-4.6": { inputPerMtoken: 0.5, outputPerMtoken: 2 },
|
|
79063
|
+
"glm-4.6v": { inputPerMtoken: 0.3, outputPerMtoken: 0.9 },
|
|
79064
|
+
"glm-4.7": { inputPerMtoken: 0.6, outputPerMtoken: 2.2 },
|
|
79065
|
+
"glm-4.7-flash": { inputPerMtoken: 0.0605, outputPerMtoken: 0.4 },
|
|
79066
|
+
"glm-5": { inputPerMtoken: 0.6, outputPerMtoken: 1.92 },
|
|
79067
|
+
"glm-5-turbo": { inputPerMtoken: 1.2, outputPerMtoken: 4 },
|
|
79068
|
+
"glm-5.1": { inputPerMtoken: 1.33, outputPerMtoken: 4.18 },
|
|
79069
|
+
"glm-5.2": { inputPerMtoken: 0.05, outputPerMtoken: 7 },
|
|
79070
|
+
"glm-5.3": { inputPerMtoken: 0.079, outputPerMtoken: 4.8 },
|
|
79071
|
+
"glm-5.3-flash": { inputPerMtoken: 0.036, outputPerMtoken: 0.9 },
|
|
79072
|
+
"glm-5.3-flashx": { inputPerMtoken: 0.37, outputPerMtoken: 1.25 },
|
|
79073
|
+
"glm-5.3-prime": { inputPerMtoken: 2.8, outputPerMtoken: 8.8 },
|
|
79074
|
+
"glm-5v-turbo": { inputPerMtoken: 1.2, outputPerMtoken: 4 },
|
|
79075
|
+
"glm-flash-latest": { inputPerMtoken: 0.036, outputPerMtoken: 0.9 },
|
|
79076
|
+
"glm-latest": { inputPerMtoken: 0.0576, outputPerMtoken: 4.4 },
|
|
79077
|
+
"gpt-3.5-turbo": { inputPerMtoken: 0.5, outputPerMtoken: 1.5 },
|
|
79078
|
+
"gpt-3.5-turbo-0613": { inputPerMtoken: 1, outputPerMtoken: 2 },
|
|
79079
|
+
"gpt-3.5-turbo-16k": { inputPerMtoken: 3, outputPerMtoken: 4 },
|
|
79080
|
+
"gpt-3.5-turbo-instruct": { inputPerMtoken: 1.5, outputPerMtoken: 2 },
|
|
79081
|
+
"gpt-4": { inputPerMtoken: 30, outputPerMtoken: 60 },
|
|
79082
|
+
"gpt-4-turbo": { inputPerMtoken: 10, outputPerMtoken: 30 },
|
|
79083
|
+
"gpt-4.1": { inputPerMtoken: 2, outputPerMtoken: 8 },
|
|
79084
|
+
"gpt-4.1-mini": { inputPerMtoken: 0.4, outputPerMtoken: 1.6 },
|
|
79085
|
+
"gpt-4.1-nano": { inputPerMtoken: 0.1, outputPerMtoken: 0.4 },
|
|
79086
|
+
"gpt-4o": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
79087
|
+
"gpt-4o-2024-05-13": { inputPerMtoken: 5, outputPerMtoken: 15 },
|
|
79088
|
+
"gpt-4o-2024-08-06": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
79089
|
+
"gpt-4o-2024-11-20": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
79090
|
+
"gpt-4o-mini": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
79091
|
+
"gpt-4o-mini-2024-07-18": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
79092
|
+
"gpt-5": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
79093
|
+
"gpt-5-image": { inputPerMtoken: 10, outputPerMtoken: 10 },
|
|
79094
|
+
"gpt-5-image-mini": { inputPerMtoken: 2.5, outputPerMtoken: 2 },
|
|
79095
|
+
"gpt-5-mini": { inputPerMtoken: 0.25, outputPerMtoken: 2 },
|
|
79096
|
+
"gpt-5-nano": { inputPerMtoken: 0.05, outputPerMtoken: 0.4 },
|
|
79097
|
+
"gpt-5-pro": { inputPerMtoken: 15, outputPerMtoken: 120 },
|
|
79098
|
+
"gpt-5.1": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
79099
|
+
"gpt-5.1-codex": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
79100
|
+
"gpt-5.1-codex-max": { inputPerMtoken: 1.25, outputPerMtoken: 10 },
|
|
79101
|
+
"gpt-5.1-codex-mini": { inputPerMtoken: 0.25, outputPerMtoken: 2 },
|
|
79102
|
+
"gpt-5.2": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
79103
|
+
"gpt-5.2-chat": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
79104
|
+
"gpt-5.2-codex": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
79105
|
+
"gpt-5.2-pro": { inputPerMtoken: 21, outputPerMtoken: 168 },
|
|
79106
|
+
"gpt-5.3-codex": { inputPerMtoken: 1.75, outputPerMtoken: 14 },
|
|
79107
|
+
"gpt-5.4": { inputPerMtoken: 2.5, outputPerMtoken: 15 },
|
|
79108
|
+
"gpt-5.4-image-2": { inputPerMtoken: 8, outputPerMtoken: 15 },
|
|
79109
|
+
"gpt-5.4-mini": { inputPerMtoken: 0.75, outputPerMtoken: 4.5 },
|
|
79110
|
+
"gpt-5.4-nano": { inputPerMtoken: 0.2, outputPerMtoken: 1.25 },
|
|
79111
|
+
"gpt-5.4-pro": { inputPerMtoken: 30, outputPerMtoken: 180 },
|
|
79112
|
+
"gpt-5.5": { inputPerMtoken: 5, outputPerMtoken: 30 },
|
|
79113
|
+
"gpt-5.5-pro": { inputPerMtoken: 30, outputPerMtoken: 180 },
|
|
79114
|
+
"gpt-5.6-luna": { inputPerMtoken: 0.2, outputPerMtoken: 1.2 },
|
|
79115
|
+
"gpt-5.6-luna-pro": { inputPerMtoken: 0.2, outputPerMtoken: 1.2 },
|
|
79116
|
+
"gpt-5.6-sol": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79117
|
+
"gpt-5.6-sol-pro": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79118
|
+
"gpt-5.6-terra": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79119
|
+
"gpt-5.6-terra-pro": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79120
|
+
"gpt-6-astra": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
79121
|
+
"gpt-6-astra-pro": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
79122
|
+
"gpt-6-luna": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
79123
|
+
"gpt-6-luna-pro": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
79124
|
+
"gpt-6-sol": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79125
|
+
"gpt-6-sol-pro": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79126
|
+
"gpt-6.1-sol": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79127
|
+
"gpt-6.1-sol-pro": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79128
|
+
"gpt-astra-latest": { inputPerMtoken: 10, outputPerMtoken: 50 },
|
|
79129
|
+
"gpt-audio": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
79130
|
+
"gpt-audio-mini": { inputPerMtoken: 0.6, outputPerMtoken: 2.4 },
|
|
79131
|
+
"gpt-chat-latest": { inputPerMtoken: 5, outputPerMtoken: 30 },
|
|
79132
|
+
"gpt-luna-latest": { inputPerMtoken: 0.1, outputPerMtoken: 0.5 },
|
|
79133
|
+
"gpt-mini-latest": { inputPerMtoken: 0.75, outputPerMtoken: 4.5 },
|
|
79134
|
+
"gpt-oss-120b": { inputPerMtoken: 0.037, outputPerMtoken: 0.17 },
|
|
79135
|
+
"gpt-oss-20b": { inputPerMtoken: 0.018, outputPerMtoken: 0.09 },
|
|
79136
|
+
"gpt-oss-safeguard-20b": { inputPerMtoken: 0.075, outputPerMtoken: 0.3 },
|
|
79137
|
+
"gpt-sol-latest": { inputPerMtoken: 2, outputPerMtoken: 10 },
|
|
79138
|
+
"gpt-terra-latest": { inputPerMtoken: 2, outputPerMtoken: 12 },
|
|
79139
|
+
"granite-4.0-h-micro": { inputPerMtoken: 0.017, outputPerMtoken: 0.112 },
|
|
79140
|
+
"granite-4.2-8b": { inputPerMtoken: 0.06, outputPerMtoken: 0.25 },
|
|
79141
|
+
"grok-4.20": { inputPerMtoken: 1.25, outputPerMtoken: 2.5 },
|
|
79142
|
+
"grok-4.20-multi-agent": { inputPerMtoken: 1.25, outputPerMtoken: 2.5 },
|
|
79143
|
+
"grok-4.3": { inputPerMtoken: 1.25, outputPerMtoken: 2.5 },
|
|
79144
|
+
"grok-4.5": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79145
|
+
"grok-4.6": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79146
|
+
"grok-4.7": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79147
|
+
"grok-build-0.1": { inputPerMtoken: 1, outputPerMtoken: 2 },
|
|
79148
|
+
"grok-latest": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79149
|
+
"hermes-3-llama-3.1-405b": { inputPerMtoken: 1, outputPerMtoken: 1 },
|
|
79150
|
+
"hermes-3-llama-3.1-70b": { inputPerMtoken: 0.7, outputPerMtoken: 0.7 },
|
|
79151
|
+
"hermes-4-405b": { inputPerMtoken: 1, outputPerMtoken: 3 },
|
|
79152
|
+
"hunyuan-a13b-instruct": { inputPerMtoken: 0.14, outputPerMtoken: 0.57 },
|
|
79153
|
+
"hy-mt2-1.8b": { inputPerMtoken: 0.044, outputPerMtoken: 0.177 },
|
|
79154
|
+
"hy-mt2-30b-a3b": { inputPerMtoken: 0.074, outputPerMtoken: 0.295 },
|
|
79155
|
+
"hy-mt2-7b": { inputPerMtoken: 0.074, outputPerMtoken: 0.295 },
|
|
79156
|
+
"hy3": { inputPerMtoken: 0.132, outputPerMtoken: 0.528 },
|
|
79157
|
+
"hy3-preview": { inputPerMtoken: 0.18, outputPerMtoken: 0.6 },
|
|
79158
|
+
"hy4-preview": { inputPerMtoken: 0.834, outputPerMtoken: 2.501 },
|
|
79159
|
+
"inkling": { inputPerMtoken: 1, outputPerMtoken: 4.05 },
|
|
79160
|
+
"inkling-small": { inputPerMtoken: 0.45, outputPerMtoken: 1.2 },
|
|
79161
|
+
"inkling-small:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79162
|
+
"inkling:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79163
|
+
"kimi-k2": { inputPerMtoken: 0.57, outputPerMtoken: 2.3 },
|
|
79164
|
+
"kimi-k2-0905": { inputPerMtoken: 0.6, outputPerMtoken: 2.5 },
|
|
79165
|
+
"kimi-k2-thinking": { inputPerMtoken: 0.6, outputPerMtoken: 2.5 },
|
|
79166
|
+
"kimi-k2.5": { inputPerMtoken: 0.5, outputPerMtoken: 2.5 },
|
|
79167
|
+
"kimi-k2.6": { inputPerMtoken: 0.65, outputPerMtoken: 3.41 },
|
|
79168
|
+
"kimi-k2.7-code": { inputPerMtoken: 0.6712, outputPerMtoken: 3.35 },
|
|
79169
|
+
"kimi-k3": { inputPerMtoken: 0.7, outputPerMtoken: 15 },
|
|
79170
|
+
"kimi-latest": { inputPerMtoken: 0.536, outputPerMtoken: 14 },
|
|
79171
|
+
"l3-lunaris-8b": { inputPerMtoken: 0.04, outputPerMtoken: 0.05 },
|
|
79172
|
+
"l3.1-euryale-70b": { inputPerMtoken: 0.85, outputPerMtoken: 0.85 },
|
|
79173
|
+
"l3.3-euryale-70b": { inputPerMtoken: 0.65, outputPerMtoken: 0.75 },
|
|
79174
|
+
"laguna-s-2.1": { inputPerMtoken: 0.09, outputPerMtoken: 0.18 },
|
|
79175
|
+
"laguna-s-2.1:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79176
|
+
"laguna-xs-2.1": { inputPerMtoken: 0.06, outputPerMtoken: 0.12 },
|
|
79177
|
+
"laguna-xs-2.1:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79178
|
+
"lfm-2.5-2.6b:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79179
|
+
"lfm-2.5-24b-a2b": { inputPerMtoken: 0.05, outputPerMtoken: 0.7 },
|
|
79180
|
+
"ling-3.0-flash": { inputPerMtoken: 0.021, outputPerMtoken: 0.063 },
|
|
79181
|
+
"ling-3.0-flash-vl": { inputPerMtoken: 0.06, outputPerMtoken: 0.18 },
|
|
79182
|
+
"ling-3.1-flash": { inputPerMtoken: 0.075, outputPerMtoken: 0.225 },
|
|
79183
|
+
"llama-3.1-70b-instruct": { inputPerMtoken: 0.4, outputPerMtoken: 0.4 },
|
|
79184
|
+
"llama-3.1-8b-instruct": { inputPerMtoken: 0.05, outputPerMtoken: 0.08 },
|
|
79185
|
+
"llama-3.2-1b-instruct": { inputPerMtoken: 0.027, outputPerMtoken: 0.201 },
|
|
79186
|
+
"llama-3.2-3b-instruct": { inputPerMtoken: 0.05, outputPerMtoken: 0.33 },
|
|
79187
|
+
"llama-3.3-70b-instruct": { inputPerMtoken: 0.59, outputPerMtoken: 0.79 },
|
|
79188
|
+
"llama-4-maverick": { inputPerMtoken: 0.1875, outputPerMtoken: 0.6525 },
|
|
79189
|
+
"llama-4-scout": { inputPerMtoken: 0.18, outputPerMtoken: 0.59 },
|
|
79190
|
+
"llama-guard-4-12b": { inputPerMtoken: 0.18, outputPerMtoken: 0.18 },
|
|
79191
|
+
"longcat-2.0": { inputPerMtoken: 0.3, outputPerMtoken: 1.2 },
|
|
79192
|
+
"lyria-3-clip-preview": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79193
|
+
"lyria-3-pro-preview": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79194
|
+
"magnum-v4-72b": { inputPerMtoken: 2.5, outputPerMtoken: 5 },
|
|
79195
|
+
"mercury-2": { inputPerMtoken: 0.25, outputPerMtoken: 0.75 },
|
|
79196
|
+
"mercury-2.5": { inputPerMtoken: 0.04, outputPerMtoken: 0.15 },
|
|
79197
|
+
"mimo-v2.5": { inputPerMtoken: 0.14, outputPerMtoken: 0.28 },
|
|
79198
|
+
"mimo-v2.5-pro": { inputPerMtoken: 0.435, outputPerMtoken: 0.87 },
|
|
79199
|
+
"mimo-v2.6-flash": { inputPerMtoken: 0.14, outputPerMtoken: 0.28 },
|
|
79200
|
+
"mimo-v2.6-pro": { inputPerMtoken: 0.435, outputPerMtoken: 0.87 },
|
|
79201
|
+
"mimo-v2.6-pro-ultraspeed": { inputPerMtoken: 4.35, outputPerMtoken: 8.7 },
|
|
79202
|
+
"minimax-01": { inputPerMtoken: 0.2, outputPerMtoken: 1.1 },
|
|
79203
|
+
"minimax-m1": { inputPerMtoken: 0.55, outputPerMtoken: 2.2 },
|
|
79204
|
+
"minimax-m2": { inputPerMtoken: 0.255, outputPerMtoken: 1.02 },
|
|
79205
|
+
"minimax-m2-her": { inputPerMtoken: 0.3, outputPerMtoken: 1.2 },
|
|
79206
|
+
"minimax-m2.1": { inputPerMtoken: 0.3, outputPerMtoken: 1.2 },
|
|
79207
|
+
"minimax-m2.5": { inputPerMtoken: 0.27, outputPerMtoken: 1.08 },
|
|
79208
|
+
"minimax-m2.7": { inputPerMtoken: 0.3, outputPerMtoken: 1.2 },
|
|
79209
|
+
"minimax-m3": { inputPerMtoken: 0.3, outputPerMtoken: 1.2 },
|
|
79210
|
+
"ministral-14b-2512": { inputPerMtoken: 0.2, outputPerMtoken: 0.2 },
|
|
79211
|
+
"ministral-3b-2512": { inputPerMtoken: 0.1, outputPerMtoken: 0.1 },
|
|
79212
|
+
"ministral-8b-2512": { inputPerMtoken: 0.15, outputPerMtoken: 0.15 },
|
|
79213
|
+
"mistral-large": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79214
|
+
"mistral-large-2407": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79215
|
+
"mistral-large-2512": { inputPerMtoken: 0.5, outputPerMtoken: 1.5 },
|
|
79216
|
+
"mistral-large-4-0": { inputPerMtoken: 0.68, outputPerMtoken: 2.09 },
|
|
79217
|
+
"mistral-medium-3": { inputPerMtoken: 0.4, outputPerMtoken: 2 },
|
|
79218
|
+
"mistral-medium-3-5": { inputPerMtoken: 1.5, outputPerMtoken: 7.5 },
|
|
79219
|
+
"mistral-medium-3.1": { inputPerMtoken: 0.4, outputPerMtoken: 2 },
|
|
79220
|
+
"mistral-nemo": { inputPerMtoken: 0.029, outputPerMtoken: 0.03 },
|
|
79221
|
+
"mistral-saba": { inputPerMtoken: 0.2, outputPerMtoken: 0.6 },
|
|
79222
|
+
"mistral-small-24b-instruct-2501": { inputPerMtoken: 0.05, outputPerMtoken: 0.08 },
|
|
79223
|
+
"mistral-small-2603": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
79224
|
+
"mistral-small-3.1-24b-instruct": { inputPerMtoken: 0.351, outputPerMtoken: 0.555 },
|
|
79225
|
+
"mistral-small-3.2-24b-instruct": { inputPerMtoken: 0.09375, outputPerMtoken: 0.25 },
|
|
79226
|
+
"mixtral-8x22b-instruct": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79227
|
+
"morph-v3-fast": { inputPerMtoken: 0.8, outputPerMtoken: 1.2 },
|
|
79228
|
+
"morph-v3-large": { inputPerMtoken: 0.9, outputPerMtoken: 1.9 },
|
|
79229
|
+
"muse-glimmer-30b": { inputPerMtoken: 0.3, outputPerMtoken: 1.2 },
|
|
79230
|
+
"muse-spark-1.1": { inputPerMtoken: 1.25, outputPerMtoken: 4.25 },
|
|
79231
|
+
"muse-spark-1.2": { inputPerMtoken: 1.25, outputPerMtoken: 4.25 },
|
|
79232
|
+
"muse-spark-1.2-contributor": { inputPerMtoken: 0.1, outputPerMtoken: 0.2 },
|
|
79233
|
+
"muse-spark-1.3": { inputPerMtoken: 1.25, outputPerMtoken: 4.25 },
|
|
79234
|
+
"muse-spark-1.3-contributor": { inputPerMtoken: 0.1, outputPerMtoken: 0.2 },
|
|
79235
|
+
"muse-wonder": { inputPerMtoken: 4, outputPerMtoken: 20 },
|
|
79236
|
+
"mythomax-l2-13b": { inputPerMtoken: 0.08, outputPerMtoken: 0.11 },
|
|
79237
|
+
"nemotron-3-nano-30b-a3b": { inputPerMtoken: 0.06, outputPerMtoken: 0.24 },
|
|
79238
|
+
"nemotron-3-nano-omni-30b-a3b-reasoning:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79239
|
+
"nemotron-3-super-120b-a12b": { inputPerMtoken: 0.08, outputPerMtoken: 0.45 },
|
|
79240
|
+
"nemotron-3-super-120b-a12b:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79241
|
+
"nemotron-3-ultra-550b-a55b": { inputPerMtoken: 0.6, outputPerMtoken: 2.4 },
|
|
79242
|
+
"nemotron-3-ultra-550b-a55b:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79243
|
+
"nemotron-3.5-content-safety": { inputPerMtoken: 0.2, outputPerMtoken: 0.2 },
|
|
79244
|
+
"nemotron-3.5-content-safety:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79245
|
+
"nemotron-3.5-lightning": { inputPerMtoken: 0.07, outputPerMtoken: 0.2 },
|
|
79246
|
+
"nemotron-3.5-lightning:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79247
|
+
"nex-n2.5-mini": { inputPerMtoken: 0.025, outputPerMtoken: 0.1 },
|
|
79248
|
+
"nex-n2.5-pro": { inputPerMtoken: 0.075, outputPerMtoken: 0.25 },
|
|
79249
|
+
"north-mini-code:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79250
|
+
"nova-2-lite-v1": { inputPerMtoken: 0.3, outputPerMtoken: 2.5 },
|
|
79251
|
+
"nova-lite-v1": { inputPerMtoken: 0.06, outputPerMtoken: 0.24 },
|
|
79252
|
+
"nova-micro-v1": { inputPerMtoken: 0.035, outputPerMtoken: 0.14 },
|
|
79253
|
+
"nova-premier-v1": { inputPerMtoken: 2.5, outputPerMtoken: 12.5 },
|
|
79254
|
+
"nova-pro-v1": { inputPerMtoken: 0.8, outputPerMtoken: 3.2 },
|
|
79255
|
+
"o1": { inputPerMtoken: 15, outputPerMtoken: 60 },
|
|
79256
|
+
"o1-pro": { inputPerMtoken: 150, outputPerMtoken: 600 },
|
|
79257
|
+
"o3": { inputPerMtoken: 2, outputPerMtoken: 8 },
|
|
79258
|
+
"o3-mini": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
79259
|
+
"o3-mini-high": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
79260
|
+
"o3-pro": { inputPerMtoken: 20, outputPerMtoken: 80 },
|
|
79261
|
+
"o4-mini": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
79262
|
+
"o4-mini-high": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 },
|
|
79263
|
+
"palmyra-x5": { inputPerMtoken: 0.6, outputPerMtoken: 6 },
|
|
79264
|
+
"pareto-26.10-preview": { inputPerMtoken: 0.8, outputPerMtoken: 3.2 },
|
|
79265
|
+
"pareto-26.9": { inputPerMtoken: 2.5, outputPerMtoken: 7.5 },
|
|
79266
|
+
"pareto-latest": { inputPerMtoken: 2.5, outputPerMtoken: 7.5 },
|
|
79267
|
+
"perceptron-mk1": { inputPerMtoken: 0.15, outputPerMtoken: 1.5 },
|
|
79268
|
+
"perceptron-mk1.5": { inputPerMtoken: 0.15, outputPerMtoken: 1.5 },
|
|
79269
|
+
"phi-4": { inputPerMtoken: 0.07, outputPerMtoken: 0.14 },
|
|
79270
|
+
"qwen-2.5-72b-instruct": { inputPerMtoken: 0.36, outputPerMtoken: 0.4 },
|
|
79271
|
+
"qwen-2.5-7b-instruct": { inputPerMtoken: 0.1, outputPerMtoken: 0.2 },
|
|
79272
|
+
"qwen-2.5-coder-32b-instruct": { inputPerMtoken: 0.66, outputPerMtoken: 1 },
|
|
79273
|
+
"qwen-plus": { inputPerMtoken: 0.26, outputPerMtoken: 0.78 },
|
|
79274
|
+
"qwen2.5-vl-72b-instruct": { inputPerMtoken: 0.8, outputPerMtoken: 1 },
|
|
79275
|
+
"qwen3-14b": { inputPerMtoken: 0.12, outputPerMtoken: 0.24 },
|
|
79276
|
+
"qwen3-235b-a22b-2507": { inputPerMtoken: 0.09, outputPerMtoken: 0.55 },
|
|
79277
|
+
"qwen3-235b-a22b-thinking-2507": { inputPerMtoken: 0.45, outputPerMtoken: 3.5 },
|
|
79278
|
+
"qwen3-30b-a3b": { inputPerMtoken: 0.12, outputPerMtoken: 0.5 },
|
|
79279
|
+
"qwen3-30b-a3b-instruct-2507": { inputPerMtoken: 0.1, outputPerMtoken: 0.3 },
|
|
79280
|
+
"qwen3-32b": { inputPerMtoken: 0.08, outputPerMtoken: 0.28 },
|
|
79281
|
+
"qwen3-coder": { inputPerMtoken: 0.3, outputPerMtoken: 1 },
|
|
79282
|
+
"qwen3-coder-30b-a3b-instruct": { inputPerMtoken: 0.07, outputPerMtoken: 0.28 },
|
|
79283
|
+
"qwen3-coder-flash": { inputPerMtoken: 0.195, outputPerMtoken: 0.975 },
|
|
79284
|
+
"qwen3-coder-next": { inputPerMtoken: 0.12, outputPerMtoken: 0.8 },
|
|
79285
|
+
"qwen3-next-80b-a3b-instruct": { inputPerMtoken: 0.1, outputPerMtoken: 1.1 },
|
|
79286
|
+
"qwen3-next-80b-a3b-thinking": { inputPerMtoken: 0.15, outputPerMtoken: 1.2 },
|
|
79287
|
+
"qwen3-vl-235b-a22b-instruct": { inputPerMtoken: 0.21, outputPerMtoken: 1.9 },
|
|
79288
|
+
"qwen3-vl-30b-a3b-instruct": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
79289
|
+
"qwen3-vl-30b-a3b-thinking": { inputPerMtoken: 0.29, outputPerMtoken: 1 },
|
|
79290
|
+
"qwen3-vl-8b-instruct": { inputPerMtoken: 0.25, outputPerMtoken: 0.75 },
|
|
79291
|
+
"qwen3.5-122b-a10b": { inputPerMtoken: 0.26, outputPerMtoken: 2.08 },
|
|
79292
|
+
"qwen3.5-27b": { inputPerMtoken: 0.26, outputPerMtoken: 2.6 },
|
|
79293
|
+
"qwen3.5-35b-a3b": { inputPerMtoken: 0.15, outputPerMtoken: 1 },
|
|
79294
|
+
"qwen3.5-397b-a17b": { inputPerMtoken: 0.5, outputPerMtoken: 3.6 },
|
|
79295
|
+
"qwen3.5-9b": { inputPerMtoken: 0.1, outputPerMtoken: 0.15 },
|
|
79296
|
+
"qwen3.5-flash-02-23": { inputPerMtoken: 0.065, outputPerMtoken: 0.26 },
|
|
79297
|
+
"qwen3.5-plus-02-15": { inputPerMtoken: 0.26, outputPerMtoken: 1.56 },
|
|
79298
|
+
"qwen3.5-plus-20260420": { inputPerMtoken: 0.3, outputPerMtoken: 1.8 },
|
|
79299
|
+
"qwen3.6-27b": { inputPerMtoken: 0.32, outputPerMtoken: 3.2 },
|
|
79300
|
+
"qwen3.6-35b-a3b": { inputPerMtoken: 0.1, outputPerMtoken: 0.95 },
|
|
79301
|
+
"qwen3.6-flash": { inputPerMtoken: 0.1875, outputPerMtoken: 1.125 },
|
|
79302
|
+
"qwen3.6-plus": { inputPerMtoken: 0.325, outputPerMtoken: 1.95 },
|
|
79303
|
+
"qwen3.7-flash": { inputPerMtoken: 0.03, outputPerMtoken: 0.13 },
|
|
79304
|
+
"qwen3.7-max": { inputPerMtoken: 1.475, outputPerMtoken: 4.425 },
|
|
79305
|
+
"qwen3.7-plus": { inputPerMtoken: 0.32, outputPerMtoken: 1.28 },
|
|
79306
|
+
"qwen3.8-2.4t-a95b": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79307
|
+
"qwen3.8-27b": { inputPerMtoken: 0.04, outputPerMtoken: 2.3 },
|
|
79308
|
+
"qwen3.8-flash": { inputPerMtoken: 0.15, outputPerMtoken: 0.47 },
|
|
79309
|
+
"qwen3.8-max-0902": { inputPerMtoken: 2, outputPerMtoken: 6 },
|
|
79310
|
+
"qwen3.8-max-prime": { inputPerMtoken: 4, outputPerMtoken: 12 },
|
|
79311
|
+
"qwen3.8-omni-flash": { inputPerMtoken: 0.15, outputPerMtoken: 0.47 },
|
|
79312
|
+
"reka-edge": { inputPerMtoken: 0.1, outputPerMtoken: 0.1 },
|
|
79313
|
+
"reka-flash-3": { inputPerMtoken: 0.1, outputPerMtoken: 0.2 },
|
|
79314
|
+
"relace-apply-3": { inputPerMtoken: 0.85, outputPerMtoken: 1.25 },
|
|
79315
|
+
"relace-search": { inputPerMtoken: 1, outputPerMtoken: 3 },
|
|
79316
|
+
"remm-slerp-l2-13b": { inputPerMtoken: 0.35, outputPerMtoken: 0.65 },
|
|
79317
|
+
"sakana-namazu": { inputPerMtoken: 0.95, outputPerMtoken: 4 },
|
|
79318
|
+
"schematron-v2-small": { inputPerMtoken: 0.05, outputPerMtoken: 0.23 },
|
|
79319
|
+
"schematron-v2-turbo": { inputPerMtoken: 0.03, outputPerMtoken: 0.15 },
|
|
79320
|
+
"seed-1.6": { inputPerMtoken: 0.25, outputPerMtoken: 2 },
|
|
79321
|
+
"seed-1.6-flash": { inputPerMtoken: 0.075, outputPerMtoken: 0.3 },
|
|
79322
|
+
"seed-2-1-turbo": { inputPerMtoken: 0.5, outputPerMtoken: 2.5 },
|
|
79323
|
+
"seed-2.0-code": { inputPerMtoken: 0.5, outputPerMtoken: 3 },
|
|
79324
|
+
"seed-2.0-lite": { inputPerMtoken: 0.25, outputPerMtoken: 2 },
|
|
79325
|
+
"seed-2.0-mini": { inputPerMtoken: 0.1, outputPerMtoken: 0.4 },
|
|
79326
|
+
"skyfall-36b-v2": { inputPerMtoken: 0.55, outputPerMtoken: 0.8 },
|
|
79327
|
+
"solar-mini4": { inputPerMtoken: 0.05, outputPerMtoken: 0.2 },
|
|
79328
|
+
"solar-pro-3": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
79329
|
+
"solar-pro4": { inputPerMtoken: 0.09, outputPerMtoken: 0.36 },
|
|
79330
|
+
"sonar": { inputPerMtoken: 1, outputPerMtoken: 1 },
|
|
79331
|
+
"sonar-deep-research": { inputPerMtoken: 2, outputPerMtoken: 8 },
|
|
79332
|
+
"sonar-pro": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79333
|
+
"sonar-pro-search": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79334
|
+
"sonar-reasoning-pro": { inputPerMtoken: 2, outputPerMtoken: 8 },
|
|
79335
|
+
"step-3.5-flash": { inputPerMtoken: 0.1, outputPerMtoken: 0.3 },
|
|
79336
|
+
"step-3.7-flash": { inputPerMtoken: 0.2, outputPerMtoken: 1.15 },
|
|
79337
|
+
"step-5-preview": { inputPerMtoken: 1, outputPerMtoken: 2.7 },
|
|
79338
|
+
"summarize": { inputPerMtoken: 0.04, outputPerMtoken: 0 },
|
|
79339
|
+
"ternary-bonsai-2-27b": { inputPerMtoken: 0.075, outputPerMtoken: 0.5 },
|
|
79340
|
+
"trinity-large-thinking": { inputPerMtoken: 0.25, outputPerMtoken: 0.8 },
|
|
79341
|
+
"ui-tars-1.5-7b": { inputPerMtoken: 0.1, outputPerMtoken: 0.2 },
|
|
79342
|
+
"unslopnemo-12b": { inputPerMtoken: 0.4, outputPerMtoken: 0.4 },
|
|
79343
|
+
"voxtral-small-24b-2507": { inputPerMtoken: 0.1, outputPerMtoken: 0.3 },
|
|
79344
|
+
"weaver": { inputPerMtoken: 0.4, outputPerMtoken: 0.75 },
|
|
79345
|
+
"wizardlm-2-8x22b": { inputPerMtoken: 0.62, outputPerMtoken: 0.62 }
|
|
79346
|
+
}
|
|
79347
|
+
};
|
|
79348
|
+
}
|
|
79349
|
+
});
|
|
78664
79350
|
init_llm_cost = __esm2({
|
|
78665
79351
|
"src/llm-cost.ts"() {
|
|
78666
79352
|
"use strict";
|
|
79353
|
+
init_llm_pricing_openrouter();
|
|
79354
|
+
LEGACY_PRICING = {
|
|
79355
|
+
// Superseded by OPENROUTER_PRICING wherever OpenRouter lists the model.
|
|
79356
|
+
anthropic: {
|
|
79357
|
+
"claude-opus-4-7": { inputPerMtoken: 15, outputPerMtoken: 75 },
|
|
79358
|
+
"claude-opus-4": { inputPerMtoken: 15, outputPerMtoken: 75 },
|
|
79359
|
+
"claude-sonnet-4-6": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79360
|
+
"claude-sonnet-4": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79361
|
+
"claude-haiku-4-5": { inputPerMtoken: 0.8, outputPerMtoken: 4 },
|
|
79362
|
+
"claude-3-5-sonnet": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79363
|
+
"claude-3-5-haiku": { inputPerMtoken: 0.8, outputPerMtoken: 4 },
|
|
79364
|
+
"claude-3-opus": { inputPerMtoken: 15, outputPerMtoken: 75 },
|
|
79365
|
+
"claude-3-sonnet": { inputPerMtoken: 3, outputPerMtoken: 15 },
|
|
79366
|
+
"claude-3-haiku": { inputPerMtoken: 0.25, outputPerMtoken: 1.25 }
|
|
79367
|
+
},
|
|
79368
|
+
openai: {
|
|
79369
|
+
"gpt-4o": { inputPerMtoken: 2.5, outputPerMtoken: 10 },
|
|
79370
|
+
"gpt-4o-mini": { inputPerMtoken: 0.15, outputPerMtoken: 0.6 },
|
|
79371
|
+
"gpt-4-turbo": { inputPerMtoken: 10, outputPerMtoken: 30 },
|
|
79372
|
+
"gpt-4": { inputPerMtoken: 30, outputPerMtoken: 60 },
|
|
79373
|
+
"gpt-3.5-turbo": { inputPerMtoken: 0.5, outputPerMtoken: 1.5 },
|
|
79374
|
+
"o1-preview": { inputPerMtoken: 15, outputPerMtoken: 60 },
|
|
79375
|
+
"o1-mini": { inputPerMtoken: 3, outputPerMtoken: 12 },
|
|
79376
|
+
"o3-mini": { inputPerMtoken: 1.1, outputPerMtoken: 4.4 }
|
|
79377
|
+
},
|
|
79378
|
+
openrouter: {
|
|
79379
|
+
// Qwen via OpenRouter — keys are post-prefix-strip canonical names.
|
|
79380
|
+
"qwen3.5-397b-a17b": { inputPerMtoken: 0.39, outputPerMtoken: 2.34 },
|
|
79381
|
+
"qwen3.6-plus": { inputPerMtoken: 0.26, outputPerMtoken: 1.56 },
|
|
79382
|
+
"qwen3-max-thinking": { inputPerMtoken: 1e-3, outputPerMtoken: 4e-3 },
|
|
79383
|
+
"qwen3-coder:free": { inputPerMtoken: 0, outputPerMtoken: 0 },
|
|
79384
|
+
// Grok via OpenRouter
|
|
79385
|
+
"grok-4.20-multi-agent": { inputPerMtoken: 2, outputPerMtoken: 2 },
|
|
79386
|
+
// DeepSeek routed through OpenRouter (cheaper than direct on output tokens).
|
|
79387
|
+
"deepseek-v3.2": { inputPerMtoken: 0.28, outputPerMtoken: 0.42 },
|
|
79388
|
+
"deepseek-v3.2-speciale": { inputPerMtoken: 0.4, outputPerMtoken: 1.2 },
|
|
79389
|
+
"deepseek-v4-pro": { inputPerMtoken: 0.28, outputPerMtoken: 0.42 },
|
|
79390
|
+
"deepseek-v4-flash": { inputPerMtoken: 0.14, outputPerMtoken: 0.28 }
|
|
79391
|
+
},
|
|
79392
|
+
// DeepSeek direct (deepseek.com) — different pricing than via-OR.
|
|
79393
|
+
// Output prices are noticeably higher on the direct API.
|
|
79394
|
+
deepseek: {
|
|
79395
|
+
"deepseek-v3.2": { inputPerMtoken: 0.27, outputPerMtoken: 1.1 },
|
|
79396
|
+
"deepseek-v3.2-speciale": { inputPerMtoken: 0.55, outputPerMtoken: 2.19 },
|
|
79397
|
+
"deepseek-v4-pro": { inputPerMtoken: 0.27, outputPerMtoken: 1.1 },
|
|
79398
|
+
"deepseek-v4-flash": { inputPerMtoken: 0.14, outputPerMtoken: 0.55 }
|
|
79399
|
+
},
|
|
79400
|
+
// Empty for now — add as we onboard customers using these providers.
|
|
79401
|
+
groq: {},
|
|
79402
|
+
together: {},
|
|
79403
|
+
mistral: {},
|
|
79404
|
+
azure: {}
|
|
79405
|
+
};
|
|
79406
|
+
PRICING = {
|
|
79407
|
+
...LEGACY_PRICING,
|
|
79408
|
+
anthropic: { ...LEGACY_PRICING.anthropic, ...OPENROUTER_PRICING.anthropic },
|
|
79409
|
+
openai: { ...LEGACY_PRICING.openai, ...OPENROUTER_PRICING.openai },
|
|
79410
|
+
openrouter: { ...LEGACY_PRICING.openrouter, ...OPENROUTER_PRICING.openrouter }
|
|
79411
|
+
};
|
|
78667
79412
|
}
|
|
78668
79413
|
});
|
|
78669
79414
|
init_fetch_interceptor = __esm2({
|
|
@@ -99912,7 +100657,7 @@ data:
|
|
|
99912
100657
|
await init_skill_telemetry();
|
|
99913
100658
|
await init_policy_enforcer();
|
|
99914
100659
|
init_room_protocol();
|
|
99915
|
-
VERSION = true ? "0.23.
|
|
100660
|
+
VERSION = true ? "0.23.47" : "0.0.0-dev";
|
|
99916
100661
|
}
|
|
99917
100662
|
});
|
|
99918
100663
|
await init_index();
|
|
@@ -100122,6 +100867,77 @@ var init_config = __esm({
|
|
|
100122
100867
|
}
|
|
100123
100868
|
});
|
|
100124
100869
|
|
|
100870
|
+
// src/enrollment-fingerprint.ts
|
|
100871
|
+
import { existsSync as existsSync3, mkdirSync as mkdirSync3, readFileSync as readFileSync4, rmSync as rmSync2, writeFileSync as writeFileSync2 } from "node:fs";
|
|
100872
|
+
import { join as join9 } from "node:path";
|
|
100873
|
+
function fingerprintLines(fingerprint) {
|
|
100874
|
+
return [
|
|
100875
|
+
`Fingerprint: ${fingerprint}`,
|
|
100876
|
+
"Verify this fingerprint matches the one shown in your AgentVault dashboard before clicking Approve."
|
|
100877
|
+
];
|
|
100878
|
+
}
|
|
100879
|
+
function pendingFingerprintPath(dataDir) {
|
|
100880
|
+
return join9(dataDir, PENDING_FINGERPRINT_FILE);
|
|
100881
|
+
}
|
|
100882
|
+
function writePendingFingerprint(dataDir, fingerprint) {
|
|
100883
|
+
try {
|
|
100884
|
+
mkdirSync3(dataDir, { recursive: true, mode: 448 });
|
|
100885
|
+
writeFileSync2(pendingFingerprintPath(dataDir), fingerprint, { mode: 384 });
|
|
100886
|
+
} catch {
|
|
100887
|
+
}
|
|
100888
|
+
}
|
|
100889
|
+
function readPendingFingerprint(dataDir) {
|
|
100890
|
+
const p2 = pendingFingerprintPath(dataDir);
|
|
100891
|
+
if (!existsSync3(p2)) return void 0;
|
|
100892
|
+
try {
|
|
100893
|
+
const raw = readFileSync4(p2, "utf-8").trim();
|
|
100894
|
+
return raw.length > 0 ? raw : void 0;
|
|
100895
|
+
} catch {
|
|
100896
|
+
return void 0;
|
|
100897
|
+
}
|
|
100898
|
+
}
|
|
100899
|
+
function clearPendingFingerprint(dataDir) {
|
|
100900
|
+
try {
|
|
100901
|
+
rmSync2(pendingFingerprintPath(dataDir), { force: true });
|
|
100902
|
+
} catch {
|
|
100903
|
+
}
|
|
100904
|
+
}
|
|
100905
|
+
function sleepSync(ms) {
|
|
100906
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms);
|
|
100907
|
+
}
|
|
100908
|
+
function waitForPendingFingerprint(dataDir, opts = {}) {
|
|
100909
|
+
const timeoutMs = opts.timeoutMs ?? 3e4;
|
|
100910
|
+
const intervalMs = opts.intervalMs ?? 250;
|
|
100911
|
+
const sleep = opts.sleep ?? sleepSync;
|
|
100912
|
+
const now = opts.now ?? Date.now;
|
|
100913
|
+
const deadline = now() + timeoutMs;
|
|
100914
|
+
for (; ; ) {
|
|
100915
|
+
const fp = readPendingFingerprint(dataDir);
|
|
100916
|
+
if (fp) return fp;
|
|
100917
|
+
if (now() >= deadline) return void 0;
|
|
100918
|
+
sleep(intervalMs);
|
|
100919
|
+
}
|
|
100920
|
+
}
|
|
100921
|
+
function watchEnrollmentFingerprint(channel, dataDir, log) {
|
|
100922
|
+
channel.on("state", (s2) => {
|
|
100923
|
+
if (s2 === "polling") {
|
|
100924
|
+
const fp = channel.fingerprint;
|
|
100925
|
+
if (!fp) return;
|
|
100926
|
+
for (const line of fingerprintLines(fp)) log(line);
|
|
100927
|
+
writePendingFingerprint(dataDir, fp);
|
|
100928
|
+
} else if (s2 === "ready") {
|
|
100929
|
+
clearPendingFingerprint(dataDir);
|
|
100930
|
+
}
|
|
100931
|
+
});
|
|
100932
|
+
}
|
|
100933
|
+
var PENDING_FINGERPRINT_FILE;
|
|
100934
|
+
var init_enrollment_fingerprint = __esm({
|
|
100935
|
+
"src/enrollment-fingerprint.ts"() {
|
|
100936
|
+
"use strict";
|
|
100937
|
+
PENDING_FINGERPRINT_FILE = "pending-fingerprint";
|
|
100938
|
+
}
|
|
100939
|
+
});
|
|
100940
|
+
|
|
100125
100941
|
// src/service/launcher.ts
|
|
100126
100942
|
import { dirname as dirname3 } from "node:path";
|
|
100127
100943
|
function sq(s2) {
|
|
@@ -100174,7 +100990,7 @@ var init_launcher = __esm({
|
|
|
100174
100990
|
});
|
|
100175
100991
|
|
|
100176
100992
|
// src/service/spec.ts
|
|
100177
|
-
import { join as
|
|
100993
|
+
import { join as join13 } from "node:path";
|
|
100178
100994
|
function buildServiceSpec(cfg, opts) {
|
|
100179
100995
|
const env = {
|
|
100180
100996
|
AV_AGENT_NAME: cfg.agentName,
|
|
@@ -100186,7 +101002,7 @@ function buildServiceSpec(cfg, opts) {
|
|
|
100186
101002
|
if (cfg.workspaceDir) env.AV_WORKSPACE_DIR = cfg.workspaceDir;
|
|
100187
101003
|
if (cfg.roomFilter) env.AV_ROOM_ID = cfg.roomFilter;
|
|
100188
101004
|
if (cfg.grokPath) env.AV_GROK_PATH = cfg.grokPath;
|
|
100189
|
-
const launcherPath =
|
|
101005
|
+
const launcherPath = join13(cfg.dataDir, "launch-grok-bridge.sh");
|
|
100190
101006
|
return {
|
|
100191
101007
|
label: `dev.agentvault.grok-${slugify2(cfg.agentName)}`,
|
|
100192
101008
|
programArgs: [launcherPath],
|
|
@@ -100194,8 +101010,8 @@ function buildServiceSpec(cfg, opts) {
|
|
|
100194
101010
|
launcherScript: renderLauncher({ installPath: opts.path, entrypoint: opts.entrypoint }),
|
|
100195
101011
|
env,
|
|
100196
101012
|
workingDir: cfg.workspaceDir ? cfg.workspaceDir : opts.home,
|
|
100197
|
-
logOut:
|
|
100198
|
-
logErr:
|
|
101013
|
+
logOut: join13(cfg.dataDir, "logs", "grok-bridge.log"),
|
|
101014
|
+
logErr: join13(cfg.dataDir, "logs", "grok-bridge.error.log"),
|
|
100199
101015
|
keepAliveUnlessCleanExit: true,
|
|
100200
101016
|
runAtLoad: true
|
|
100201
101017
|
};
|
|
@@ -100209,7 +101025,7 @@ var init_spec = __esm({
|
|
|
100209
101025
|
});
|
|
100210
101026
|
|
|
100211
101027
|
// src/service/launchd.ts
|
|
100212
|
-
import { dirname as dirname4, join as
|
|
101028
|
+
import { dirname as dirname4, join as join14 } from "node:path";
|
|
100213
101029
|
function esc2(s2) {
|
|
100214
101030
|
return s2.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");
|
|
100215
101031
|
}
|
|
@@ -100287,7 +101103,7 @@ var init_launchd = __esm({
|
|
|
100287
101103
|
}
|
|
100288
101104
|
deps;
|
|
100289
101105
|
plistPath(label) {
|
|
100290
|
-
return
|
|
101106
|
+
return join14(this.deps.home, "Library", "LaunchAgents", `${label}.plist`);
|
|
100291
101107
|
}
|
|
100292
101108
|
domain() {
|
|
100293
101109
|
return `gui/${this.deps.uid}`;
|
|
@@ -100337,11 +101153,11 @@ var init_launchd = __esm({
|
|
|
100337
101153
|
* KeepAlive leaves it down. `launchctl list` would not show the very thing
|
|
100338
101154
|
* doctor exists to find. */
|
|
100339
101155
|
list(prefix) {
|
|
100340
|
-
const dir =
|
|
101156
|
+
const dir = join14(this.deps.home, "Library", "LaunchAgents");
|
|
100341
101157
|
const out = [];
|
|
100342
101158
|
for (const name of this.deps.readdir(dir)) {
|
|
100343
101159
|
if (!name.startsWith(prefix) || !name.endsWith(".plist")) continue;
|
|
100344
|
-
const path2 =
|
|
101160
|
+
const path2 = join14(dir, name);
|
|
100345
101161
|
out.push({
|
|
100346
101162
|
label: name.slice(0, -".plist".length),
|
|
100347
101163
|
path: path2,
|
|
@@ -100355,7 +101171,7 @@ var init_launchd = __esm({
|
|
|
100355
101171
|
});
|
|
100356
101172
|
|
|
100357
101173
|
// src/service/systemd.ts
|
|
100358
|
-
import { dirname as dirname5, join as
|
|
101174
|
+
import { dirname as dirname5, join as join15 } from "node:path";
|
|
100359
101175
|
function q2(s2) {
|
|
100360
101176
|
const esc3 = s2.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t").replace(/%/g, "%%");
|
|
100361
101177
|
return `"${esc3}"`;
|
|
@@ -100410,7 +101226,7 @@ var init_systemd = __esm({
|
|
|
100410
101226
|
}
|
|
100411
101227
|
deps;
|
|
100412
101228
|
unitPath(label) {
|
|
100413
|
-
return
|
|
101229
|
+
return join15(this.deps.home, ".config", "systemd", "user", `${label}.service`);
|
|
100414
101230
|
}
|
|
100415
101231
|
install(spec) {
|
|
100416
101232
|
const path2 = this.unitPath(spec.label);
|
|
@@ -100446,11 +101262,11 @@ var init_systemd = __esm({
|
|
|
100446
101262
|
* SuccessExitStatus=0 treats as success, so it is never restarted. A
|
|
100447
101263
|
* running-units listing would not show the thing doctor exists to find. */
|
|
100448
101264
|
list(prefix) {
|
|
100449
|
-
const dir =
|
|
101265
|
+
const dir = join15(this.deps.home, ".config", "systemd", "user");
|
|
100450
101266
|
const out = [];
|
|
100451
101267
|
for (const name of this.deps.readdir(dir)) {
|
|
100452
101268
|
if (!name.startsWith(prefix) || !name.endsWith(".service")) continue;
|
|
100453
|
-
const path2 =
|
|
101269
|
+
const path2 = join15(dir, name);
|
|
100454
101270
|
out.push({
|
|
100455
101271
|
label: name.slice(0, -".service".length),
|
|
100456
101272
|
path: path2,
|
|
@@ -100465,7 +101281,7 @@ var init_systemd = __esm({
|
|
|
100465
101281
|
|
|
100466
101282
|
// src/service/backend.ts
|
|
100467
101283
|
import { spawnSync } from "node:child_process";
|
|
100468
|
-
import { mkdirSync as
|
|
101284
|
+
import { mkdirSync as mkdirSync6, writeFileSync as writeFileSync4, rmSync as rmSync3, existsSync as existsSync5, chmodSync as chmodSync5, readdirSync, readFileSync as readFileSync5 } from "node:fs";
|
|
100469
101285
|
import { userInfo } from "node:os";
|
|
100470
101286
|
function defaultDeps() {
|
|
100471
101287
|
return {
|
|
@@ -100476,11 +101292,11 @@ function defaultDeps() {
|
|
|
100476
101292
|
const r2 = spawnSync(cmd, args, { encoding: "utf8" });
|
|
100477
101293
|
return { code: r2.status ?? 1, stdout: r2.stdout ?? "" };
|
|
100478
101294
|
},
|
|
100479
|
-
writeFile: (p2, d2) =>
|
|
100480
|
-
mkdir: (p2) =>
|
|
101295
|
+
writeFile: (p2, d2) => writeFileSync4(p2, d2),
|
|
101296
|
+
mkdir: (p2) => mkdirSync6(p2, { recursive: true }),
|
|
100481
101297
|
chmod: (p2, m2) => chmodSync5(p2, m2),
|
|
100482
|
-
rm: (p2) =>
|
|
100483
|
-
exists: (p2) =>
|
|
101298
|
+
rm: (p2) => rmSync3(p2, { force: true }),
|
|
101299
|
+
exists: (p2) => existsSync5(p2),
|
|
100484
101300
|
readdir: (p2) => {
|
|
100485
101301
|
try {
|
|
100486
101302
|
return readdirSync(p2);
|
|
@@ -100490,7 +101306,7 @@ function defaultDeps() {
|
|
|
100490
101306
|
},
|
|
100491
101307
|
readFile: (p2) => {
|
|
100492
101308
|
try {
|
|
100493
|
-
return
|
|
101309
|
+
return readFileSync5(p2, "utf8");
|
|
100494
101310
|
} catch {
|
|
100495
101311
|
return "";
|
|
100496
101312
|
}
|
|
@@ -100558,6 +101374,7 @@ function maybeRunServiceSubcommand(argv, env, deps) {
|
|
|
100558
101374
|
const firstBoot = !hasPersistedCreds(cfg.dataDir) && !!cfg.inviteToken;
|
|
100559
101375
|
if (firstBoot) {
|
|
100560
101376
|
writePendingInvite(cfg.dataDir, cfg.inviteToken);
|
|
101377
|
+
clearPendingFingerprint(cfg.dataDir);
|
|
100561
101378
|
}
|
|
100562
101379
|
const spec = buildServiceSpec(cfg, {
|
|
100563
101380
|
entrypoint,
|
|
@@ -100570,6 +101387,15 @@ function maybeRunServiceSubcommand(argv, env, deps) {
|
|
|
100570
101387
|
backend.install(spec);
|
|
100571
101388
|
log(`installed service ${spec.label} \u2014 logs: ${spec.logErr}`);
|
|
100572
101389
|
if (firstBoot) {
|
|
101390
|
+
const waitFp = deps?.waitForFingerprint ?? (deps?.backend ? () => void 0 : waitForPendingFingerprint);
|
|
101391
|
+
const fp = waitFp(cfg.dataDir);
|
|
101392
|
+
if (fp) {
|
|
101393
|
+
for (const line of fingerprintLines(fp)) log(line);
|
|
101394
|
+
} else {
|
|
101395
|
+
log(
|
|
101396
|
+
`the device fingerprint is not available yet \u2014 see it with: AV_AGENT_NAME=${cfg.agentName} agentvault-grok-bridge status`
|
|
101397
|
+
);
|
|
101398
|
+
}
|
|
100573
101399
|
log("now APPROVE the device in AgentVault \u2014 the service is waiting to enrol");
|
|
100574
101400
|
log("if it does not connect within a minute, the log above says why");
|
|
100575
101401
|
}
|
|
@@ -100588,6 +101414,15 @@ function maybeRunServiceSubcommand(argv, env, deps) {
|
|
|
100588
101414
|
const label = labelFor(env);
|
|
100589
101415
|
const st = backend.status(label);
|
|
100590
101416
|
log(`${label}: ${st.loaded ? "loaded" : "not loaded"}`);
|
|
101417
|
+
let pendingFp;
|
|
101418
|
+
try {
|
|
101419
|
+
pendingFp = readPendingFingerprint(resolveDataDir(env).dataDir);
|
|
101420
|
+
} catch {
|
|
101421
|
+
pendingFp = void 0;
|
|
101422
|
+
}
|
|
101423
|
+
if (pendingFp) {
|
|
101424
|
+
for (const line of fingerprintLines(pendingFp)) log(line);
|
|
101425
|
+
}
|
|
100591
101426
|
} else if (cmd === "logs") {
|
|
100592
101427
|
const label = labelFor(env);
|
|
100593
101428
|
log(`logs for ${label} are at <dataDir>/logs/grok-bridge.log (tail -f it)`);
|
|
@@ -100604,6 +101439,7 @@ var init_subcommand = __esm({
|
|
|
100604
101439
|
"use strict";
|
|
100605
101440
|
init_config();
|
|
100606
101441
|
init_pending_invite();
|
|
101442
|
+
init_enrollment_fingerprint();
|
|
100607
101443
|
init_log();
|
|
100608
101444
|
init_spec();
|
|
100609
101445
|
init_backend();
|
|
@@ -100840,7 +101676,7 @@ __export(doctor_cli_exports, {
|
|
|
100840
101676
|
maybeRunDoctorSubcommand: () => maybeRunDoctorSubcommand,
|
|
100841
101677
|
realDoctorDeps: () => realDoctorDeps
|
|
100842
101678
|
});
|
|
100843
|
-
import { join as
|
|
101679
|
+
import { join as join16 } from "node:path";
|
|
100844
101680
|
import { readdirSync as readdirSync2 } from "node:fs";
|
|
100845
101681
|
async function fetchDeviceStatus(apiUrl, deviceId, doFetch = fetch) {
|
|
100846
101682
|
const res = await doFetch(`${apiUrl}/api/v1/devices/${deviceId}/status`, {
|
|
@@ -100876,7 +101712,7 @@ function listCredDirs(base) {
|
|
|
100876
101712
|
return out;
|
|
100877
101713
|
}
|
|
100878
101714
|
for (const name of names) {
|
|
100879
|
-
const dir =
|
|
101715
|
+
const dir = join16(base, name);
|
|
100880
101716
|
if (hasPersistedCreds(dir)) out.push(dir);
|
|
100881
101717
|
}
|
|
100882
101718
|
return out;
|
|
@@ -100893,7 +101729,7 @@ function otherFamilyLabels(backend) {
|
|
|
100893
101729
|
}
|
|
100894
101730
|
function realDoctorDeps(env) {
|
|
100895
101731
|
const backend = selectBackend(process.platform);
|
|
100896
|
-
const base =
|
|
101732
|
+
const base = join16(env.HOME ?? "", ".agentvault", "grok-room-bridge");
|
|
100897
101733
|
return {
|
|
100898
101734
|
backend,
|
|
100899
101735
|
labelPrefixes: [LABEL_PREFIX],
|
|
@@ -100951,29 +101787,30 @@ var init_doctor_cli = __esm({
|
|
|
100951
101787
|
await init_dist();
|
|
100952
101788
|
init_config();
|
|
100953
101789
|
init_pending_invite();
|
|
101790
|
+
init_enrollment_fingerprint();
|
|
100954
101791
|
init_log();
|
|
100955
101792
|
import { spawn } from "node:child_process";
|
|
100956
|
-
import { mkdirSync as
|
|
100957
|
-
import { join as
|
|
101793
|
+
import { mkdirSync as mkdirSync7 } from "node:fs";
|
|
101794
|
+
import { join as join17 } from "node:path";
|
|
100958
101795
|
|
|
100959
101796
|
// src/fence-auth.ts
|
|
100960
|
-
import { copyFileSync, chmodSync as chmodSync3, existsSync as
|
|
100961
|
-
import { join as
|
|
101797
|
+
import { copyFileSync, chmodSync as chmodSync3, existsSync as existsSync4, mkdirSync as mkdirSync4 } from "node:fs";
|
|
101798
|
+
import { join as join10 } from "node:path";
|
|
100962
101799
|
function seedFenceCredential(opts) {
|
|
100963
101800
|
const log = opts.log ?? (() => {
|
|
100964
101801
|
});
|
|
100965
|
-
const fenceGrok =
|
|
100966
|
-
const fenceAuth =
|
|
100967
|
-
if (
|
|
101802
|
+
const fenceGrok = join10(opts.fenceHome, ".grok");
|
|
101803
|
+
const fenceAuth = join10(fenceGrok, "auth.json");
|
|
101804
|
+
if (existsSync4(fenceAuth)) {
|
|
100968
101805
|
log("[grok-bridge] fence credential already present; leaving it untouched");
|
|
100969
101806
|
return "already-present";
|
|
100970
101807
|
}
|
|
100971
|
-
const hostAuth =
|
|
100972
|
-
if (!
|
|
101808
|
+
const hostAuth = join10(opts.hostHome, ".grok", "auth.json");
|
|
101809
|
+
if (!existsSync4(hostAuth)) {
|
|
100973
101810
|
log("[grok-bridge] no host credential to seed (run `grok login`, or set XAI_API_KEY)");
|
|
100974
101811
|
return "no-host-credential";
|
|
100975
101812
|
}
|
|
100976
|
-
|
|
101813
|
+
mkdirSync4(fenceGrok, { recursive: true });
|
|
100977
101814
|
copyFileSync(hostAuth, fenceAuth);
|
|
100978
101815
|
chmodSync3(fenceAuth, 384);
|
|
100979
101816
|
log("[grok-bridge] seeded fence credential from the host grok login");
|
|
@@ -101307,14 +102144,14 @@ var AcpConnection = class {
|
|
|
101307
102144
|
};
|
|
101308
102145
|
|
|
101309
102146
|
// src/grok-room-plugin.ts
|
|
101310
|
-
import { mkdirSync as
|
|
101311
|
-
import { join as
|
|
102147
|
+
import { mkdirSync as mkdirSync5, writeFileSync as writeFileSync3, chmodSync as chmodSync4 } from "node:fs";
|
|
102148
|
+
import { join as join11 } from "node:path";
|
|
101312
102149
|
var SERVER_KEY = "room";
|
|
101313
102150
|
var GROK_ROOM_SAY_TOOL_NAME = `${SERVER_KEY}__say`;
|
|
101314
102151
|
function writeRoomPluginHttp(dir, url3) {
|
|
101315
|
-
|
|
101316
|
-
|
|
101317
|
-
|
|
102152
|
+
mkdirSync5(join11(dir, ".claude-plugin"), { recursive: true });
|
|
102153
|
+
writeFileSync3(
|
|
102154
|
+
join11(dir, ".claude-plugin", "plugin.json"),
|
|
101318
102155
|
JSON.stringify(
|
|
101319
102156
|
{
|
|
101320
102157
|
name: "avroom",
|
|
@@ -101326,12 +102163,12 @@ function writeRoomPluginHttp(dir, url3) {
|
|
|
101326
102163
|
2
|
|
101327
102164
|
) + "\n"
|
|
101328
102165
|
);
|
|
101329
|
-
|
|
101330
|
-
|
|
102166
|
+
writeFileSync3(
|
|
102167
|
+
join11(dir, ".mcp.json"),
|
|
101331
102168
|
JSON.stringify({ mcpServers: { [SERVER_KEY]: { type: "http", url: url3 } } }, null, 2) + "\n",
|
|
101332
102169
|
{ mode: 384 }
|
|
101333
102170
|
);
|
|
101334
|
-
chmodSync4(
|
|
102171
|
+
chmodSync4(join11(dir, ".mcp.json"), 384);
|
|
101335
102172
|
}
|
|
101336
102173
|
|
|
101337
102174
|
// src/grok-driver.ts
|
|
@@ -101474,7 +102311,7 @@ var GrokDriver = class {
|
|
|
101474
102311
|
};
|
|
101475
102312
|
|
|
101476
102313
|
// src/grok-spawn.ts
|
|
101477
|
-
import { join as
|
|
102314
|
+
import { join as join12 } from "node:path";
|
|
101478
102315
|
function grokSpawnArgs(opts) {
|
|
101479
102316
|
const args = ["agent", "--no-leader"];
|
|
101480
102317
|
if (opts.model) args.push("--model", opts.model);
|
|
@@ -101483,7 +102320,7 @@ function grokSpawnArgs(opts) {
|
|
|
101483
102320
|
const env = {
|
|
101484
102321
|
PATH: process.env.PATH,
|
|
101485
102322
|
HOME: opts.fenceHome,
|
|
101486
|
-
GROK_HOME:
|
|
102323
|
+
GROK_HOME: join12(opts.fenceHome, ".grok")
|
|
101487
102324
|
};
|
|
101488
102325
|
if (opts.apiKey) env.XAI_API_KEY = opts.apiKey;
|
|
101489
102326
|
return { command: opts.grokPath ?? "grok", args, env, cwd: opts.workspaceDir };
|
|
@@ -101921,7 +102758,7 @@ async function main() {
|
|
|
101921
102758
|
const info = parseInfoFlags(process.argv.slice(2));
|
|
101922
102759
|
if (info.showVersion || info.showHelp) {
|
|
101923
102760
|
const version2 = buildClientVersion2(
|
|
101924
|
-
true ? "0.4.
|
|
102761
|
+
true ? "0.4.19" : void 0
|
|
101925
102762
|
);
|
|
101926
102763
|
if (info.showVersion) printLine(version2);
|
|
101927
102764
|
if (info.showHelp) {
|
|
@@ -101960,9 +102797,9 @@ async function main() {
|
|
|
101960
102797
|
process.exit(0);
|
|
101961
102798
|
}
|
|
101962
102799
|
const cfg = loadConfig(process.env, process.argv.slice(2));
|
|
101963
|
-
logLine(`[grok-bridge] version: ${true ? "0.4.
|
|
101964
|
-
|
|
101965
|
-
|
|
102800
|
+
logLine(`[grok-bridge] version: ${true ? "0.4.19" : "dev"}`);
|
|
102801
|
+
mkdirSync7(cfg.workspaceDir, { recursive: true });
|
|
102802
|
+
mkdirSync7(cfg.fenceHome, { recursive: true });
|
|
101966
102803
|
seedFenceCredential({
|
|
101967
102804
|
fenceHome: cfg.fenceHome,
|
|
101968
102805
|
hostHome: process.env.HOME ?? "",
|
|
@@ -101975,7 +102812,7 @@ async function main() {
|
|
|
101975
102812
|
agentName: cfg.agentName,
|
|
101976
102813
|
platform: "node",
|
|
101977
102814
|
clientVersion: buildClientVersion2(
|
|
101978
|
-
true ? "0.4.
|
|
102815
|
+
true ? "0.4.19" : void 0
|
|
101979
102816
|
)
|
|
101980
102817
|
});
|
|
101981
102818
|
channelRef = channel;
|
|
@@ -101995,7 +102832,7 @@ async function main() {
|
|
|
101995
102832
|
},
|
|
101996
102833
|
log: (m2) => logLine(m2)
|
|
101997
102834
|
});
|
|
101998
|
-
const pluginDir =
|
|
102835
|
+
const pluginDir = join17(cfg.fenceHome, "av-room-plugin");
|
|
101999
102836
|
writeRoomPluginHttp(pluginDir, mcp.url);
|
|
102000
102837
|
const spawnSpec = grokSpawnArgs({
|
|
102001
102838
|
grokPath: cfg.grokPath,
|
|
@@ -102072,6 +102909,7 @@ async function main() {
|
|
|
102072
102909
|
logLine("[grok-bridge] enrolled \u2014 pending invite consumed and removed");
|
|
102073
102910
|
}
|
|
102074
102911
|
});
|
|
102912
|
+
watchEnrollmentFingerprint(channel, cfg.dataDir, (m2) => logLine(`[grok-bridge] ${m2}`));
|
|
102075
102913
|
await channel.start();
|
|
102076
102914
|
}
|
|
102077
102915
|
main().catch(async (err) => {
|