@agentvault/grok-bridge 0.4.20 → 0.4.22
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 +349 -59
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11712,11 +11712,11 @@ async function joinWithFirstMatchingKp(welcomeBytes, candidates) {
|
|
|
11712
11712
|
return null;
|
|
11713
11713
|
}
|
|
11714
11714
|
function ownIdentity() {
|
|
11715
|
-
const v2 = true ? "0.23.
|
|
11715
|
+
const v2 = true ? "0.23.51" : FALLBACK;
|
|
11716
11716
|
return `${PACKAGE}@${v2}`;
|
|
11717
11717
|
}
|
|
11718
11718
|
function buildSha() {
|
|
11719
|
-
const raw = true ? "
|
|
11719
|
+
const raw = true ? "753de79" : "";
|
|
11720
11720
|
const cleaned = (raw ?? "").trim();
|
|
11721
11721
|
return !cleaned || cleaned === "unknown" ? null : cleaned;
|
|
11722
11722
|
}
|
|
@@ -12891,14 +12891,27 @@ function migrateHistoryEntries(history) {
|
|
|
12891
12891
|
return { id, ...legacyEntry };
|
|
12892
12892
|
});
|
|
12893
12893
|
}
|
|
12894
|
+
function isTopicId(value) {
|
|
12895
|
+
return typeof value === "string" && TOPIC_ID_RE.test(value);
|
|
12896
|
+
}
|
|
12897
|
+
function migrateDefaultTopics(state) {
|
|
12898
|
+
if (!state.defaultTopicId || !state.groupId) return state;
|
|
12899
|
+
if (state.defaultTopicIds?.[state.groupId]) return state;
|
|
12900
|
+
return {
|
|
12901
|
+
...state,
|
|
12902
|
+
defaultTopicIds: { ...state.defaultTopicIds ?? {}, [state.groupId]: state.defaultTopicId }
|
|
12903
|
+
};
|
|
12904
|
+
}
|
|
12894
12905
|
function migratePersistedState(raw) {
|
|
12895
12906
|
if (raw.sessions && raw.primaryConversationId) {
|
|
12896
12907
|
const history = raw.messageHistory;
|
|
12897
|
-
if (!history?.some((entry) => typeof entry.id !== "string"))
|
|
12898
|
-
|
|
12908
|
+
if (!history?.some((entry) => typeof entry.id !== "string")) {
|
|
12909
|
+
return migrateDefaultTopics(raw);
|
|
12910
|
+
}
|
|
12911
|
+
return migrateDefaultTopics({
|
|
12899
12912
|
...raw,
|
|
12900
12913
|
messageHistory: migrateHistoryEntries(history)
|
|
12901
|
-
};
|
|
12914
|
+
});
|
|
12902
12915
|
}
|
|
12903
12916
|
const legacy = raw;
|
|
12904
12917
|
return {
|
|
@@ -17630,7 +17643,7 @@ function armSseKeepAlive(intervalMs, onTick) {
|
|
|
17630
17643
|
timer.unref?.();
|
|
17631
17644
|
return timer;
|
|
17632
17645
|
}
|
|
17633
|
-
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, url, path, Module, Module, root, window_, crypto_, randomValuesStandard, crypto2, 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, atitle, aobject, aopts, isLE, swap8IfBE, swap32IfBE, hasHexBuiltin, hexes, oidNist, init_utils, BSIGMA, init_blake, U32_MASK64, _32n, fromNumH, fromNumL, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, add3L, add3H, add4L, add4H, add5L, add5H, init_u64, HashMD, SHA256_IV, SHA384_IV, SHA512_IV, init_md, 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, crypto3, 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, ACTIVATION_DOMAIN, UUID_RE2, 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_RE3, 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_RE4, 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, util_exports, Cached, EVALUATING, captureStackTrace, allowsEval, getParsedType2, propertyKeyTypes, primitiveTypes, NUMBER_FORMAT_RANGES, BIGINT_FORMAT_RANGES, highSurrogate, Class, installing, broke, breaker, CONSTANT_CATCH, init_util2, _a2, _zodDesc, _E, $ZodAsyncError, $ZodEncodeError, globalConfig, init_core, _messageDesc, _issuesDesc, _installedToString, initializer, $ZodError, $ZodRealError, init_errors3, _parse, parse, _parseAsync, parseAsync, _safeParse, safeParse, _safeParseAsync, safeParseAsync, COMPILE_INVALID, COMPILE_FALLBACK, validate, validateAsync, _encode, _decode, _encodeAsync, _decodeAsync, _safeEncode, _safeDecode, _safeEncodeAsync, _safeDecodeAsync, init_parse, cuid, cuid2, ulid, xid, ksuid, nanoid, duration, guid, uuid, email, _emoji, ipv4, ipv6, cidrv4, cidrv6, base64, base64url, httpProtocol, e164, dateSource, date, anyString, integer, number, boolean, _null, lowercase, uppercase, init_regexes, $ZodCheck, _whenHasLength, numericOriginMap, $ZodCheckLessThan, $ZodCheckGreaterThan, $ZodCheckMultipleOf, $ZodCheckNumberFormat, $ZodCheckMaxLength, $ZodCheckMinLength, $ZodCheckLengthEquals, $ZodCheckStringFormat, $ZodCheckRegex, $ZodCheckLowerCase, $ZodCheckUpperCase, $ZodCheckIncludes, $ZodCheckStartsWith, $ZodCheckEndsWith, $ZodCheckOverwrite, init_checks, Doc, init_doc, version, init_versions, $ZodType, toStandardResult, $ZodString, $ZodStringFormat, $ZodGUID, $ZodUUID, $ZodEmail, URL_BAD_FORMAT, URL_UNPARSEABLE, asciiTabOrNewline, $ZodURL, $ZodEmoji, $ZodNanoID, $ZodCUID, $ZodCUID2, $ZodULID, $ZodXID, $ZodKSUID, $ZodISODateTime, $ZodISODate, $ZodISOTime, $ZodISODuration, $ZodIPv4, ipv6Alphabet, $ZodIPv6, $ZodCIDRv4, $ZodCIDRv6, base64Charset, $ZodBase64, base64urlCharset, $ZodBase64URL, $ZodE164, $ZodJWT, $ZodNumber, $ZodNumberFormat, $ZodBoolean, $ZodNull, $ZodUnknown, $ZodNever, arraySize, $ZodArray, NO_SYMBOL_KEYS, $ZodObject, $ZodObjectJIT, $ZodUnion, $ZodDiscriminatedUnion, $ZodIntersection, $ZodRecord, $ZodEnum, $ZodLiteral, $ZodTransform, $ZodOptional, $ZodExactOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodNonOptional, $ZodCatch, $ZodPipe, $ZodPreprocess, $ZodReadonly, $ZodCustom, init_schemas, $ZodCyclicError, STATE, NO_ISSUES, recursive, NONE, ASSUMED, PROVEN, handoff, open4, memo, init_memoizer, error, init_en2, init_locales, _a3, $ZodRegistry, globalRegistry, init_registries, init_compile, init_api, FOLDABLE_KEYS, UNION_KEYS, createToJSONSchemaMethod, createStandardJSONSchemaMethod, init_to_json_schema, narrowMin, narrowMax, narrowBoth, addDivisor, addPattern, intersectMime, setFormat, minContributor, maxContributor, formatContributor, contributors, formatMap, exactPatterns, exactPattern, 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, pendingRecords, recordProcessor, nullableProcessor, nonoptionalProcessor, UNREPRESENTABLE_DEFAULT, defaultProcessor, prefaultProcessor, catchProcessor, pipeProcessor, readonlyProcessor, promiseProcessor, optionalProcessor, lazyProcessor, allProcessors, init_json_schema_processors, 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, init_checks3, _installedErrorProtos, initializer2, ZodRealError, init_errors4, parse2, parseAsync2, safeParse3, safeParseAsync3, encode3, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2, init_parse3, ZodType2, _ZodString, ZodString2, ZodStringFormat, ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration, ZodEmail, ZodGUID, ZodUUID, ZodURL, ZodEmoji, ZodNanoID, ZodCUID, ZodCUID2, ZodULID, ZodXID, ZodKSUID, ZodIPv4, ZodIPv6, ZodCIDRv4, ZodCIDRv6, ZodBase64, ZodBase64URL, ZodE164, ZodJWT, ZodNumber2, ZodNumberFormat, ZodBoolean2, ZodNull2, ZodUnknown2, ZodNever2, ZodArray2, ZodObject2, ZodUnion2, ZodDiscriminatedUnion2, ZodIntersection2, ZodRecord2, ZodEnum2, ZodLiteral2, ZodTransform, ZodOptional2, ZodExactOptional, ZodNullable2, ZodDefault2, ZodPrefault, ZodNonOptional, ZodCatch2, ZodPipe, ZodPreprocess, ZodReadonly2, ZodCustom, init_schemas3, ZodFirstPartyTypeKind2, init_compat, iso_exports2, init_iso2, 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, require_content_type, import_content_type, init_mediaType, DEFAULT_MAX_REQUEST_BODY_SIZE, MAX_BATCH_SIZE, init_requestBody, DEFAULT_SSE_KEEP_ALIVE_MS, MAX_TIMER_DELAY_MS, init_sseKeepAlive, 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;
|
|
17646
|
+
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, url, path, Module, Module, root, window_, crypto_, randomValuesStandard, crypto2, 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, atitle, aobject, aopts, isLE, swap8IfBE, swap32IfBE, hasHexBuiltin, hexes, oidNist, init_utils, BSIGMA, init_blake, U32_MASK64, _32n, fromNumH, fromNumL, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, add3L, add3H, add4L, add4H, add5L, add5H, init_u64, HashMD, SHA256_IV, SHA384_IV, SHA512_IV, init_md, 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, crypto3, 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, ACTIVATION_DOMAIN, UUID_RE2, 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_RE3, 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_RE4, 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, TOPIC_ID_RE, 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, util_exports, Cached, EVALUATING, captureStackTrace, allowsEval, getParsedType2, propertyKeyTypes, primitiveTypes, NUMBER_FORMAT_RANGES, BIGINT_FORMAT_RANGES, highSurrogate, Class, installing, broke, breaker, CONSTANT_CATCH, init_util2, _a2, _zodDesc, _E, $ZodAsyncError, $ZodEncodeError, globalConfig, init_core, _messageDesc, _issuesDesc, _installedToString, initializer, $ZodError, $ZodRealError, init_errors3, _parse, parse, _parseAsync, parseAsync, _safeParse, safeParse, _safeParseAsync, safeParseAsync, COMPILE_INVALID, COMPILE_FALLBACK, validate, validateAsync, _encode, _decode, _encodeAsync, _decodeAsync, _safeEncode, _safeDecode, _safeEncodeAsync, _safeDecodeAsync, init_parse, cuid, cuid2, ulid, xid, ksuid, nanoid, duration, guid, uuid, email, _emoji, ipv4, ipv6, cidrv4, cidrv6, base64, base64url, httpProtocol, e164, dateSource, date, anyString, integer, number, boolean, _null, lowercase, uppercase, init_regexes, $ZodCheck, _whenHasLength, numericOriginMap, $ZodCheckLessThan, $ZodCheckGreaterThan, $ZodCheckMultipleOf, $ZodCheckNumberFormat, $ZodCheckMaxLength, $ZodCheckMinLength, $ZodCheckLengthEquals, $ZodCheckStringFormat, $ZodCheckRegex, $ZodCheckLowerCase, $ZodCheckUpperCase, $ZodCheckIncludes, $ZodCheckStartsWith, $ZodCheckEndsWith, $ZodCheckOverwrite, init_checks, Doc, init_doc, version, init_versions, $ZodType, toStandardResult, $ZodString, $ZodStringFormat, $ZodGUID, $ZodUUID, $ZodEmail, URL_BAD_FORMAT, URL_UNPARSEABLE, asciiTabOrNewline, $ZodURL, $ZodEmoji, $ZodNanoID, $ZodCUID, $ZodCUID2, $ZodULID, $ZodXID, $ZodKSUID, $ZodISODateTime, $ZodISODate, $ZodISOTime, $ZodISODuration, $ZodIPv4, ipv6Alphabet, $ZodIPv6, $ZodCIDRv4, $ZodCIDRv6, base64Charset, $ZodBase64, base64urlCharset, $ZodBase64URL, $ZodE164, $ZodJWT, $ZodNumber, $ZodNumberFormat, $ZodBoolean, $ZodNull, $ZodUnknown, $ZodNever, arraySize, $ZodArray, NO_SYMBOL_KEYS, $ZodObject, $ZodObjectJIT, $ZodUnion, $ZodDiscriminatedUnion, $ZodIntersection, $ZodRecord, $ZodEnum, $ZodLiteral, $ZodTransform, $ZodOptional, $ZodExactOptional, $ZodNullable, $ZodDefault, $ZodPrefault, $ZodNonOptional, $ZodCatch, $ZodPipe, $ZodPreprocess, $ZodReadonly, $ZodCustom, init_schemas, $ZodCyclicError, STATE, NO_ISSUES, recursive, NONE, ASSUMED, PROVEN, handoff, open4, memo, init_memoizer, error, init_en2, init_locales, _a3, $ZodRegistry, globalRegistry, init_registries, init_compile, init_api, FOLDABLE_KEYS, UNION_KEYS, createToJSONSchemaMethod, createStandardJSONSchemaMethod, init_to_json_schema, narrowMin, narrowMax, narrowBoth, addDivisor, addPattern, intersectMime, setFormat, minContributor, maxContributor, formatContributor, contributors, formatMap, exactPatterns, exactPattern, 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, pendingRecords, recordProcessor, nullableProcessor, nonoptionalProcessor, UNREPRESENTABLE_DEFAULT, defaultProcessor, prefaultProcessor, catchProcessor, pipeProcessor, readonlyProcessor, promiseProcessor, optionalProcessor, lazyProcessor, allProcessors, init_json_schema_processors, 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, init_checks3, _installedErrorProtos, initializer2, ZodRealError, init_errors4, parse2, parseAsync2, safeParse3, safeParseAsync3, encode3, decode2, encodeAsync2, decodeAsync2, safeEncode2, safeDecode2, safeEncodeAsync2, safeDecodeAsync2, init_parse3, ZodType2, _ZodString, ZodString2, ZodStringFormat, ZodISODateTime, ZodISODate, ZodISOTime, ZodISODuration, ZodEmail, ZodGUID, ZodUUID, ZodURL, ZodEmoji, ZodNanoID, ZodCUID, ZodCUID2, ZodULID, ZodXID, ZodKSUID, ZodIPv4, ZodIPv6, ZodCIDRv4, ZodCIDRv6, ZodBase64, ZodBase64URL, ZodE164, ZodJWT, ZodNumber2, ZodNumberFormat, ZodBoolean2, ZodNull2, ZodUnknown2, ZodNever2, ZodArray2, ZodObject2, ZodUnion2, ZodDiscriminatedUnion2, ZodIntersection2, ZodRecord2, ZodEnum2, ZodLiteral2, ZodTransform, ZodOptional2, ZodExactOptional, ZodNullable2, ZodDefault2, ZodPrefault, ZodNonOptional, ZodCatch2, ZodPipe, ZodPreprocess, ZodReadonly2, ZodCustom, init_schemas3, ZodFirstPartyTypeKind2, init_compat, iso_exports2, init_iso2, 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, require_content_type, import_content_type, init_mediaType, DEFAULT_MAX_REQUEST_BODY_SIZE, MAX_BATCH_SIZE, init_requestBody, DEFAULT_SSE_KEEP_ALIVE_MS, MAX_TIMER_DELAY_MS, init_sseKeepAlive, 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;
|
|
17634
17647
|
var init_dist = __esm({
|
|
17635
17648
|
async "../plugin/dist/index.js"() {
|
|
17636
17649
|
"use strict";
|
|
@@ -69611,6 +69624,34 @@ var init_dist = __esm({
|
|
|
69611
69624
|
}
|
|
69612
69625
|
return null;
|
|
69613
69626
|
}
|
|
69627
|
+
/**
|
|
69628
|
+
* Every occupied leaf of the ratchet tree, with its basic-credential
|
|
69629
|
+
* identity — READ-ONLY (#470 phase 1).
|
|
69630
|
+
*
|
|
69631
|
+
* Stale-leaf detection compares the tree with the server's eligible set, so
|
|
69632
|
+
* it must see EVERY leaf. `memberLeafIndex` cannot: it stops at the first
|
|
69633
|
+
* match, so a device holding two leaves (the duplicate-add shape observed
|
|
69634
|
+
* live 2026-06-18) would show one. Blank leaves (removed members) are
|
|
69635
|
+
* skipped; duplicates are returned once per leaf. Leaves whose credential is
|
|
69636
|
+
* not `basic` carry no comparable identity and are skipped too — the web
|
|
69637
|
+
* client only ever mints basic credentials.
|
|
69638
|
+
*
|
|
69639
|
+
* Identities are COPIES: a caller mutating one cannot reach the tree.
|
|
69640
|
+
*/
|
|
69641
|
+
leafIdentities() {
|
|
69642
|
+
const tree = this._requireState().ratchetTree;
|
|
69643
|
+
const out = [];
|
|
69644
|
+
for (let nodeIndex = 0; nodeIndex < tree.length; nodeIndex += 2) {
|
|
69645
|
+
const node2 = tree[nodeIndex];
|
|
69646
|
+
if (node2 && node2.nodeType === "leaf") {
|
|
69647
|
+
const cred = node2.leaf.credential;
|
|
69648
|
+
if (cred.credentialType === "basic") {
|
|
69649
|
+
out.push({ leafIndex: nodeIndex / 2, identity: new Uint8Array(cred.identity) });
|
|
69650
|
+
}
|
|
69651
|
+
}
|
|
69652
|
+
}
|
|
69653
|
+
return out;
|
|
69654
|
+
}
|
|
69614
69655
|
// -------------------------------------------------------------------------
|
|
69615
69656
|
// Encrypt / Decrypt
|
|
69616
69657
|
// -------------------------------------------------------------------------
|
|
@@ -70564,6 +70605,7 @@ var init_dist = __esm({
|
|
|
70564
70605
|
OUTBOUND_DEDUPE_TYPES = /* @__PURE__ */ new Set(["text", "status_alert", "artifact", "attachment"]);
|
|
70565
70606
|
RETRY_CANDIDATE_TTL_MS = 6e4;
|
|
70566
70607
|
RETRY_CANDIDATE_MAX = 32;
|
|
70608
|
+
TOPIC_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
70567
70609
|
ROOM_FULFIL_COOLDOWN_MS = 6e4;
|
|
70568
70610
|
SecureChannel = class _SecureChannel extends EventEmitter {
|
|
70569
70611
|
constructor(config2) {
|
|
@@ -70617,6 +70659,7 @@ var init_dist = __esm({
|
|
|
70617
70659
|
_trustTier = null;
|
|
70618
70660
|
_trustTokenExpiresAt = null;
|
|
70619
70661
|
_trustTokenInterval = null;
|
|
70662
|
+
_trustTokenUnavailableUntil = 0;
|
|
70620
70663
|
_pendingPollTimer = null;
|
|
70621
70664
|
_syncMessageIds = null;
|
|
70622
70665
|
_deliveryHeartbeat = null;
|
|
@@ -70789,8 +70832,15 @@ ${text}`;
|
|
|
70789
70832
|
_scanEngine = null;
|
|
70790
70833
|
_scanRuleSetVersion = 0;
|
|
70791
70834
|
_telemetryReporter = null;
|
|
70792
|
-
/**
|
|
70793
|
-
|
|
70835
|
+
/**
|
|
70836
|
+
* #1416: topic of the most recent inbound message, PER conversation group —
|
|
70837
|
+
* the fallback for a reply that names no topic. Keyed by `_topicScope()`:
|
|
70838
|
+
* `g:<group>` normally, `c:<conversation>` for a conversation whose group is
|
|
70839
|
+
* not known yet, `*` for a legacy agent that knows no groups at all. It used
|
|
70840
|
+
* to be one value for the whole agent, so a broadcast into person B's group
|
|
70841
|
+
* carried the topic of person A's last message. In memory only, as before.
|
|
70842
|
+
*/
|
|
70843
|
+
_lastIncomingTopics = /* @__PURE__ */ new Map();
|
|
70794
70844
|
/** Room ID from the most recent inbound room message — used as fallback for HTTP /send replies. */
|
|
70795
70845
|
_lastInboundRoomId;
|
|
70796
70846
|
/** Rate-limit: last resync_request timestamp per conversation (5-min cooldown). */
|
|
@@ -70832,6 +70882,7 @@ ${text}`;
|
|
|
70832
70882
|
static SILENCE_TIMEOUT_MS = 9e4;
|
|
70833
70883
|
static POLL_FALLBACK_INTERVAL_MS = 3e4;
|
|
70834
70884
|
// 30s when messages found
|
|
70885
|
+
static TRUST_TOKEN_UNAVAILABLE_BACKOFF_MS = 6 * 60 * 60 * 1e3;
|
|
70835
70886
|
static POLL_FALLBACK_IDLE_MS = 6e4;
|
|
70836
70887
|
// 60s when idle
|
|
70837
70888
|
/**
|
|
@@ -71367,13 +71418,76 @@ ${text}`;
|
|
|
71367
71418
|
}
|
|
71368
71419
|
return `${kind}:${id ?? ""}`;
|
|
71369
71420
|
}
|
|
71421
|
+
/*
|
|
71422
|
+
* #1416 — DM history is partitioned by conversation GROUP.
|
|
71423
|
+
*
|
|
71424
|
+
* Since #1399 every person has their own 1:1 group with the agent, but the
|
|
71425
|
+
* agent kept one DM history pool: a catch-up request or a session_init
|
|
71426
|
+
* replay from person B's group was answered with person A's plaintext too.
|
|
71427
|
+
* A DM entry's context now names its group:
|
|
71428
|
+
*
|
|
71429
|
+
* dm:g:<groupId>:<topicId> — the group is known
|
|
71430
|
+
* dm:c:<convId>:<topicId> — the conversation's group is not known yet
|
|
71431
|
+
* dm:<topicId> — legacy (pre-#1416): the PRIMARY group's
|
|
71432
|
+
*
|
|
71433
|
+
* Every form keeps the `dm:` prefix the archive, the web client and Hermes
|
|
71434
|
+
* test for, and the archive format (`topicId` is a free string) is unchanged.
|
|
71435
|
+
* An agent that knows at most one group selects exactly what it did before.
|
|
71436
|
+
*/
|
|
71437
|
+
/** The DM history context for a message in `gid` (or `convId`'s group). */
|
|
71438
|
+
_dmHistoryContext(topicId, gid, convId) {
|
|
71439
|
+
const g2 = gid ?? (convId ? this._sessionGroupIds.get(convId) : void 0);
|
|
71440
|
+
if (g2) return `dm:g:${g2}:${topicId ?? ""}`;
|
|
71441
|
+
if (convId && this._knownDmGroups().size > 0) return `dm:c:${convId}:${topicId ?? ""}`;
|
|
71442
|
+
const legacyTopic = topicId && /^[gc]:/.test(topicId) ? "" : topicId;
|
|
71443
|
+
return this._historyContext("dm", legacyTopic);
|
|
71444
|
+
}
|
|
71445
|
+
/** Every conversation group this agent knows of. */
|
|
71446
|
+
_knownDmGroups() {
|
|
71447
|
+
const known = new Set(this._sessionGroupIds.values());
|
|
71448
|
+
if (this._persisted?.groupId) known.add(this._persisted.groupId);
|
|
71449
|
+
return known;
|
|
71450
|
+
}
|
|
71451
|
+
/** The group a DM history entry belongs to (see the forms above). */
|
|
71452
|
+
_dmEntryScope(entry, known) {
|
|
71453
|
+
const t2 = entry.topicId ?? "";
|
|
71454
|
+
let scope;
|
|
71455
|
+
if (t2.startsWith("dm:g:")) {
|
|
71456
|
+
scope = t2.slice("dm:g:".length).split(":")[0];
|
|
71457
|
+
} else if (t2.startsWith("dm:c:")) {
|
|
71458
|
+
const conv = t2.slice("dm:c:".length).split(":")[0];
|
|
71459
|
+
scope = this._sessionGroupIds.get(conv) ?? `c:${conv}`;
|
|
71460
|
+
} else {
|
|
71461
|
+
scope = this._persisted?.groupId;
|
|
71462
|
+
}
|
|
71463
|
+
if ((scope === void 0 || scope.startsWith("c:")) && known.size === 1) {
|
|
71464
|
+
return [...known][0];
|
|
71465
|
+
}
|
|
71466
|
+
return scope;
|
|
71467
|
+
}
|
|
71468
|
+
/**
|
|
71469
|
+
* The group a DM history request is answered from, or `null` for "every DM
|
|
71470
|
+
* entry" (an agent that knows no groups at all — the old behaviour). A
|
|
71471
|
+
* request whose group cannot be told fails closed to its own conversation.
|
|
71472
|
+
*/
|
|
71473
|
+
_dmRequestScope(gid, convId, known) {
|
|
71474
|
+
if (known.size === 0) return null;
|
|
71475
|
+
const g2 = gid ?? (convId ? this._sessionGroupIds.get(convId) : void 0);
|
|
71476
|
+
if (g2) return g2;
|
|
71477
|
+
const isPrimaryConv = convId === void 0 || convId === this._primaryConversationId;
|
|
71478
|
+
if (known.size === 1 && isPrimaryConv) return [...known][0];
|
|
71479
|
+
if (convId && convId === this._primaryConversationId && this._persisted?.groupId) {
|
|
71480
|
+
return this._persisted.groupId;
|
|
71481
|
+
}
|
|
71482
|
+
return `c:${convId ?? ""}`;
|
|
71483
|
+
}
|
|
71370
71484
|
/**
|
|
71371
71485
|
* Normalize one accepted application envelope before it enters plaintext
|
|
71372
71486
|
* history. Protocol/control types and empty attachment-only envelopes are
|
|
71373
71487
|
* never archived, and attachment key material can never become the fallback
|
|
71374
71488
|
* text.
|
|
71375
71489
|
*/
|
|
71376
|
-
async _captureHistoryApplication(sender, rawPlaintext, kind, id, transportTimestamp, declaredType = "message") {
|
|
71490
|
+
async _captureHistoryApplication(sender, rawPlaintext, kind, id, transportTimestamp, declaredType = "message", dmScope) {
|
|
71377
71491
|
let messageType = declaredType;
|
|
71378
71492
|
let text = rawPlaintext;
|
|
71379
71493
|
try {
|
|
@@ -71388,14 +71502,14 @@ ${text}`;
|
|
|
71388
71502
|
await this._appendHistory(
|
|
71389
71503
|
sender,
|
|
71390
71504
|
text,
|
|
71391
|
-
this._historyContext(kind, id),
|
|
71505
|
+
kind === "dm" ? this._dmHistoryContext(id, dmScope?.groupId, dmScope?.conversationId) : this._historyContext(kind, id),
|
|
71392
71506
|
transportTimestamp
|
|
71393
71507
|
);
|
|
71394
71508
|
return text;
|
|
71395
71509
|
}
|
|
71396
71510
|
/** Select a context before applying the optional lower bound and final cap. */
|
|
71397
|
-
_historyForCatchup(kind, id, sinceTs) {
|
|
71398
|
-
let filtered = this._selectHistoryContext(kind, id);
|
|
71511
|
+
_historyForCatchup(kind, id, sinceTs, dmScope) {
|
|
71512
|
+
let filtered = this._selectHistoryContext(kind, id, dmScope);
|
|
71399
71513
|
if (sinceTs !== void 0 && sinceTs !== null) {
|
|
71400
71514
|
if (typeof sinceTs !== "string" || !CANONICAL_TIMESTAMP_RE.test(sinceTs) || !Number.isFinite(Date.parse(sinceTs)) || new Date(Date.parse(sinceTs)).toISOString() !== sinceTs) {
|
|
71401
71515
|
throw new Error("Invalid history catch-up timestamp");
|
|
@@ -71405,11 +71519,17 @@ ${text}`;
|
|
|
71405
71519
|
return filtered.sort((a2, b2) => Date.parse(a2.ts) - Date.parse(b2.ts) || a2.id.localeCompare(b2.id)).slice(-100);
|
|
71406
71520
|
}
|
|
71407
71521
|
/** Shared exact routing selector for catch-up and legacy DR replay. */
|
|
71408
|
-
_selectHistoryContext(kind, id) {
|
|
71522
|
+
_selectHistoryContext(kind, id, dmScope) {
|
|
71409
71523
|
const history = this._persisted?.messageHistory ?? [];
|
|
71410
|
-
|
|
71524
|
+
if (kind === "room") {
|
|
71525
|
+
return history.filter((entry) => entry.topicId === this._historyContext("room", id));
|
|
71526
|
+
}
|
|
71527
|
+
const dm = history.filter(
|
|
71411
71528
|
(entry) => entry.topicId?.startsWith("dm:") === true || !entry.topicId?.startsWith("room:") && !entry.topicId?.startsWith("a2a:")
|
|
71412
71529
|
);
|
|
71530
|
+
const known = this._knownDmGroups();
|
|
71531
|
+
const want = this._dmRequestScope(dmScope?.groupId, dmScope?.conversationId, known);
|
|
71532
|
+
return want === null ? dm : dm.filter((entry) => this._dmEntryScope(entry, known) === want);
|
|
71413
71533
|
}
|
|
71414
71534
|
_markHistoryDirty() {
|
|
71415
71535
|
this._historyBackupScheduler.markDirty();
|
|
@@ -71899,7 +72019,9 @@ ${text}`;
|
|
|
71899
72019
|
Promise.resolve().then(() => (init_openclaw_compat(), openclaw_compat_exports)).then(({ requestHeartbeatNow: requestHeartbeatNow2 }) => requestHeartbeatNow2({ reason: "channel-send" })).catch(() => {
|
|
71900
72020
|
});
|
|
71901
72021
|
const targetConvId = options?.conversationId;
|
|
71902
|
-
const
|
|
72022
|
+
const explicitTopicId = options?.topicId;
|
|
72023
|
+
const targeted = targetConvId !== void 0;
|
|
72024
|
+
const frameHistoryContexts = [];
|
|
71903
72025
|
const messageType = options?.messageType ?? "text";
|
|
71904
72026
|
const priority = options?.priority ?? "normal";
|
|
71905
72027
|
const parentSpanId = options?.parentSpanId;
|
|
@@ -71966,11 +72088,12 @@ ${text}`;
|
|
|
71966
72088
|
plaintextBytes
|
|
71967
72089
|
);
|
|
71968
72090
|
await saveMlsState(this.config.dataDir, entry.mlsGroupId, JSON.stringify(mlsGroup.exportState()));
|
|
72091
|
+
const frameTopicId = this._topicForFrame(gid, targetConvId, explicitTopicId, targeted);
|
|
71969
72092
|
const payload = {
|
|
71970
72093
|
group_id: entry.mlsGroupId,
|
|
71971
72094
|
epoch: Number(mlsGroup.epoch),
|
|
71972
72095
|
payload: Buffer.from(cipherBytes).toString("hex"),
|
|
71973
|
-
topic_id:
|
|
72096
|
+
topic_id: frameTopicId,
|
|
71974
72097
|
client_message_id: clientMessageId,
|
|
71975
72098
|
message_type: messageType,
|
|
71976
72099
|
priority,
|
|
@@ -71980,6 +72103,7 @@ ${text}`;
|
|
|
71980
72103
|
if (this._persisted?.hubAddress) payload.hub_address = this._persisted.hubAddress;
|
|
71981
72104
|
if (this._persisted?.hubId) payload.sender_hub_id = this._persisted.hubId;
|
|
71982
72105
|
pendingWsSends.push(JSON.stringify({ event: "message_mls", data: payload }));
|
|
72106
|
+
frameHistoryContexts.push(this._dmHistoryContext(frameTopicId, gid, targetConvId));
|
|
71983
72107
|
addressedMlsGroupIds.push(entry.mlsGroupId);
|
|
71984
72108
|
sentSharedGroupIds.add(gid);
|
|
71985
72109
|
sentCount++;
|
|
@@ -72003,6 +72127,7 @@ ${text}`;
|
|
|
72003
72127
|
continue;
|
|
72004
72128
|
}
|
|
72005
72129
|
try {
|
|
72130
|
+
const topicId = this._topicForFrame(convGroupId, convId, explicitTopicId, targeted);
|
|
72006
72131
|
const mlsGroup = (convGroupId ? this._mlsGroups.get(`1to1-group:${convGroupId}`) : null) ?? this._mlsGroups.get(`conv:${convId}`);
|
|
72007
72132
|
const mlsGroupId = (convGroupId ? this._persisted?.mlsGroups?.[convGroupId]?.mlsGroupId : null) ?? this._persisted?.mlsConversations?.[convId]?.mlsGroupId;
|
|
72008
72133
|
if (convGroupId && mlsGroupId && sentSharedGroupIds.has(convGroupId)) {
|
|
@@ -72044,6 +72169,7 @@ ${text}`;
|
|
|
72044
72169
|
data: payload
|
|
72045
72170
|
})
|
|
72046
72171
|
);
|
|
72172
|
+
frameHistoryContexts.push(this._dmHistoryContext(topicId, convGroupId, convId));
|
|
72047
72173
|
addressedMlsGroupIds.push(mlsGroupId);
|
|
72048
72174
|
if (convGroupId) sentSharedGroupIds.add(convGroupId);
|
|
72049
72175
|
} else if (!options?.bypassMlsHold && this._shouldHoldForMls(convGroupId, mlsGroup, mlsGroupId)) {
|
|
@@ -72063,7 +72189,7 @@ ${text}`;
|
|
|
72063
72189
|
history: {
|
|
72064
72190
|
id: clientMessageId,
|
|
72065
72191
|
text: plaintext,
|
|
72066
|
-
topicId: this.
|
|
72192
|
+
topicId: this._dmHistoryContext(topicId, convGroupId, convId)
|
|
72067
72193
|
}
|
|
72068
72194
|
} : {}
|
|
72069
72195
|
};
|
|
@@ -72092,6 +72218,7 @@ ${text}`;
|
|
|
72092
72218
|
data: payload
|
|
72093
72219
|
})
|
|
72094
72220
|
);
|
|
72221
|
+
frameHistoryContexts.push(this._dmHistoryContext(topicId, convGroupId, convId));
|
|
72095
72222
|
} else {
|
|
72096
72223
|
if (!this._persisted.outboundQueue) {
|
|
72097
72224
|
this._persisted.outboundQueue = [];
|
|
@@ -72123,6 +72250,7 @@ ${text}`;
|
|
|
72123
72250
|
continue;
|
|
72124
72251
|
}
|
|
72125
72252
|
try {
|
|
72253
|
+
const topicId = this._topicForFrame(mlsOnlyConvGroupId, mlsConvId, explicitTopicId, targeted);
|
|
72126
72254
|
const plaintextBytes = new TextEncoder().encode(plaintext);
|
|
72127
72255
|
const mlsOnlyGroupKey = mlsOnlyConvGroupId && this._mlsGroups.has(`1to1-group:${mlsOnlyConvGroupId}`) ? `1to1-group:${mlsOnlyConvGroupId}` : `conv:${mlsConvId}`;
|
|
72128
72256
|
const cipherBytes = await this._encryptWithCatchUp(
|
|
@@ -72148,6 +72276,7 @@ ${text}`;
|
|
|
72148
72276
|
if (this._persisted?.hubAddress) payload.hub_address = this._persisted.hubAddress;
|
|
72149
72277
|
if (this._persisted?.hubId) payload.sender_hub_id = this._persisted.hubId;
|
|
72150
72278
|
pendingWsSends.push(JSON.stringify({ event: "message_mls", data: payload }));
|
|
72279
|
+
frameHistoryContexts.push(this._dmHistoryContext(topicId, mlsOnlyConvGroupId, mlsConvId));
|
|
72151
72280
|
addressedMlsGroupIds.push(resolvedMlsGroupId);
|
|
72152
72281
|
sentCount++;
|
|
72153
72282
|
if (mlsOnlyConvGroupId) sentSharedGroupIds.add(mlsOnlyConvGroupId);
|
|
@@ -72169,11 +72298,15 @@ ${text}`;
|
|
|
72169
72298
|
);
|
|
72170
72299
|
}
|
|
72171
72300
|
let writtenFrames = 0;
|
|
72172
|
-
|
|
72173
|
-
|
|
72301
|
+
let historyContext;
|
|
72302
|
+
for (const [i2, frame] of pendingWsSends.entries()) {
|
|
72303
|
+
if (this._sendApplicationFrame(frame)) {
|
|
72304
|
+
if (writtenFrames === 0) historyContext = frameHistoryContexts[i2];
|
|
72305
|
+
writtenFrames += 1;
|
|
72306
|
+
}
|
|
72174
72307
|
}
|
|
72175
72308
|
if (!options?.isResend && messageType === "text" && writtenFrames > 0) {
|
|
72176
|
-
await this._appendHistory("agent", plaintext, this._historyContext("dm"
|
|
72309
|
+
await this._appendHistory("agent", plaintext, historyContext ?? this._historyContext("dm"), void 0, clientMessageId);
|
|
72177
72310
|
}
|
|
72178
72311
|
if (writtenFrames > 0) {
|
|
72179
72312
|
console.log(
|
|
@@ -72229,7 +72362,7 @@ ${text}`;
|
|
|
72229
72362
|
*/
|
|
72230
72363
|
sendActivitySpan(spanData) {
|
|
72231
72364
|
if (!this._ws || this._ws.readyState !== WebSocket.OPEN) return;
|
|
72232
|
-
const pluginVersion = true ? "0.23.
|
|
72365
|
+
const pluginVersion = true ? "0.23.51" : "0.0.0-dev";
|
|
72233
72366
|
const agentName = this.config.agentName ?? "Agent";
|
|
72234
72367
|
const resource = {
|
|
72235
72368
|
"service.name": "agentvault-agent",
|
|
@@ -72714,6 +72847,16 @@ ${text}`;
|
|
|
72714
72847
|
);
|
|
72715
72848
|
if (mine.length === 0) return false;
|
|
72716
72849
|
const before = this._persisted.groupId;
|
|
72850
|
+
const primaryBefore = this._persisted.primaryConversationId;
|
|
72851
|
+
const knownBefore = this._knownDmGroups();
|
|
72852
|
+
const ownersBefore = /* @__PURE__ */ new Set();
|
|
72853
|
+
if (before) {
|
|
72854
|
+
for (const [convId, gid] of this._sessionGroupIds) {
|
|
72855
|
+
if (gid !== before) continue;
|
|
72856
|
+
const owner = this._sessions.get(convId)?.ownerDeviceId ?? this._persisted.sessions?.[convId]?.ownerDeviceId;
|
|
72857
|
+
if (owner) ownersBefore.add(owner);
|
|
72858
|
+
}
|
|
72859
|
+
}
|
|
72717
72860
|
this._sessionGroupIds = new Map(mine.map((r2) => [r2.id, r2.group_id]));
|
|
72718
72861
|
this._persisted.conversationGroupIds = Object.fromEntries(this._sessionGroupIds);
|
|
72719
72862
|
const joined = mine.find((r2) => this._persisted.mlsGroups?.[r2.group_id]);
|
|
@@ -72725,6 +72868,23 @@ ${text}`;
|
|
|
72725
72868
|
}
|
|
72726
72869
|
this._persisted.groupId = primary.group_id;
|
|
72727
72870
|
this._persisted.primaryConversationId = primary.id;
|
|
72871
|
+
for (const r2 of mine) {
|
|
72872
|
+
if (typeof r2.default_topic_id === "string") this._recordDefaultTopic(r2.group_id, r2.default_topic_id);
|
|
72873
|
+
}
|
|
72874
|
+
const primaryDefault = this._persisted.defaultTopicIds?.[primary.group_id];
|
|
72875
|
+
if (primaryDefault) this._persisted.defaultTopicId = primaryDefault;
|
|
72876
|
+
const primaryOwner = primary.owner_device_id;
|
|
72877
|
+
const samePerson = primary.id === primaryBefore || typeof primaryOwner === "string" && ownersBefore.has(primaryOwner);
|
|
72878
|
+
let retagged = false;
|
|
72879
|
+
if (before && primary.group_id !== before && knownBefore.size === 1 && knownBefore.has(before) && samePerson) {
|
|
72880
|
+
const oldPrefix = `dm:g:${before}:`;
|
|
72881
|
+
for (const entry of this._persisted.messageHistory ?? []) {
|
|
72882
|
+
if (entry.topicId?.startsWith(oldPrefix)) {
|
|
72883
|
+
entry.topicId = `dm:g:${primary.group_id}:${entry.topicId.slice(oldPrefix.length)}`;
|
|
72884
|
+
retagged = true;
|
|
72885
|
+
}
|
|
72886
|
+
}
|
|
72887
|
+
}
|
|
72728
72888
|
const liveGroupIds = new Set(mine.map((r2) => r2.group_id));
|
|
72729
72889
|
if (staleGid && staleMlsGroupId && !liveGroupIds.has(staleGid)) {
|
|
72730
72890
|
try {
|
|
@@ -72739,6 +72899,10 @@ ${text}`;
|
|
|
72739
72899
|
});
|
|
72740
72900
|
}
|
|
72741
72901
|
await this._persistState();
|
|
72902
|
+
if (retagged) {
|
|
72903
|
+
this._markHistoryDirty();
|
|
72904
|
+
await this._saveHistoryState();
|
|
72905
|
+
}
|
|
72742
72906
|
console.log(
|
|
72743
72907
|
`[SecureChannel] Re-resolved conversation groups ${staleMlsGroupId ? `after 'unknown group' ${staleMlsGroupId.slice(0, 8)}` : "on connect (#1034)"}: primary group ${String(before).slice(0, 8)} \u2192 ${this._persisted.groupId.slice(0, 8)} (${mine.length} active conversation(s))`
|
|
72744
72908
|
);
|
|
@@ -73262,6 +73426,7 @@ ${text}`;
|
|
|
73262
73426
|
return this._trustTokenExpiresAt;
|
|
73263
73427
|
}
|
|
73264
73428
|
async refreshTrustToken() {
|
|
73429
|
+
if (Date.now() < this._trustTokenUnavailableUntil) return;
|
|
73265
73430
|
try {
|
|
73266
73431
|
const res = await fetch(`${this.config.apiUrl}/api/v1/gate/token`, {
|
|
73267
73432
|
method: "POST",
|
|
@@ -73275,12 +73440,15 @@ ${text}`;
|
|
|
73275
73440
|
this._trustToken = data.token;
|
|
73276
73441
|
this._trustTier = data.tier;
|
|
73277
73442
|
this._trustTokenExpiresAt = data.expires_at;
|
|
73443
|
+
} else if (res.status === 503 || res.status === 404 || res.status === 403) {
|
|
73444
|
+
this._trustTokenUnavailableUntil = Date.now() + _SecureChannel.TRUST_TOKEN_UNAVAILABLE_BACKOFF_MS;
|
|
73278
73445
|
}
|
|
73279
73446
|
} catch (err) {
|
|
73280
73447
|
console.warn("[AgentVault] Trust token refresh failed:", err);
|
|
73281
73448
|
}
|
|
73282
73449
|
}
|
|
73283
73450
|
startTrustTokenRefresh() {
|
|
73451
|
+
this.stopTrustTokenRefresh();
|
|
73284
73452
|
this.refreshTrustToken();
|
|
73285
73453
|
this._trustTokenInterval = setInterval(
|
|
73286
73454
|
() => this.refreshTrustToken(),
|
|
@@ -73468,15 +73636,105 @@ ${text}`;
|
|
|
73468
73636
|
return this._mcpServer;
|
|
73469
73637
|
}
|
|
73470
73638
|
// --- Topic management ---
|
|
73639
|
+
/*
|
|
73640
|
+
* #1416 — topics are per conversation GROUP.
|
|
73641
|
+
*
|
|
73642
|
+
* Since #1399 every person has their own 1:1 group with the agent, and a
|
|
73643
|
+
* topic belongs to exactly one group (`topics.group_id`). The agent used to
|
|
73644
|
+
* keep ONE default topic (the primary group's) and ONE last-incoming topic,
|
|
73645
|
+
* and stamped both on every frame — so a reply into person B's group could
|
|
73646
|
+
* carry person A's topic, and B's web client (which filters live messages by
|
|
73647
|
+
* the topic it is viewing) dropped it until a reload.
|
|
73648
|
+
*
|
|
73649
|
+
* The rule now: a frame's topic comes from THAT frame's group. A group with
|
|
73650
|
+
* no known topic gets none — the server then files the message under that
|
|
73651
|
+
* conversation's own default topic (`ws.py`, lazily created) — rather than
|
|
73652
|
+
* borrowing another group's.
|
|
73653
|
+
*/
|
|
73654
|
+
/** Scope key for per-group topic state; see `_lastIncomingTopics`. */
|
|
73655
|
+
_topicScope(gid, convId) {
|
|
73656
|
+
if (gid) return `g:${gid}`;
|
|
73657
|
+
if (!this._persisted?.groupId && this._sessionGroupIds.size === 0) return "*";
|
|
73658
|
+
return convId ? `c:${convId}` : void 0;
|
|
73659
|
+
}
|
|
73660
|
+
/** Record the topic of an inbound 1:1 message for its own group (#1416). */
|
|
73661
|
+
_rememberIncomingTopic(convId, gid, topicId) {
|
|
73662
|
+
const scope = this._topicScope(gid ?? (convId ? this._sessionGroupIds.get(convId) : void 0), convId);
|
|
73663
|
+
if (!scope) return;
|
|
73664
|
+
if (topicId && !isTopicId(topicId)) return;
|
|
73665
|
+
if (topicId) this._lastIncomingTopics.set(scope, topicId);
|
|
73666
|
+
else this._lastIncomingTopics.delete(scope);
|
|
73667
|
+
}
|
|
73471
73668
|
/**
|
|
73472
|
-
*
|
|
73473
|
-
*
|
|
73669
|
+
* Record a group's default topic (#1416). The legacy `defaultTopicId` keeps
|
|
73670
|
+
* mirroring the PRIMARY group's entry, for older readers and backups.
|
|
73474
73671
|
*/
|
|
73475
|
-
|
|
73672
|
+
_recordDefaultTopic(gid, topicId) {
|
|
73673
|
+
if (!gid || !topicId || !this._persisted) return;
|
|
73674
|
+
(this._persisted.defaultTopicIds ??= {})[gid] = topicId;
|
|
73675
|
+
if (gid === this._persisted.groupId) this._persisted.defaultTopicId = topicId;
|
|
73676
|
+
}
|
|
73677
|
+
/** The group a topic is known to belong to, if any. */
|
|
73678
|
+
_groupOfTopic(topicId) {
|
|
73679
|
+
const p2 = this._persisted;
|
|
73680
|
+
for (const [gid, tid] of Object.entries(p2?.defaultTopicIds ?? {})) {
|
|
73681
|
+
if (tid === topicId) return gid;
|
|
73682
|
+
}
|
|
73683
|
+
if (p2?.defaultTopicId === topicId && p2.groupId) return p2.groupId;
|
|
73684
|
+
for (const t2 of p2?.topics ?? []) {
|
|
73685
|
+
if (t2.id === topicId) return t2.groupId ?? p2?.groupId;
|
|
73686
|
+
}
|
|
73687
|
+
for (const [scope, tid] of this._lastIncomingTopics) {
|
|
73688
|
+
if (tid === topicId && scope.startsWith("g:")) return scope.slice(2);
|
|
73689
|
+
}
|
|
73690
|
+
return void 0;
|
|
73691
|
+
}
|
|
73692
|
+
/**
|
|
73693
|
+
* The topic one outgoing 1:1 frame carries (#1416), or `undefined` to send
|
|
73694
|
+
* none. `gid` is the frame's conversation group (looked up from `convId`
|
|
73695
|
+
* when not given); `explicit` is the caller's `topicId`; `targeted` is true
|
|
73696
|
+
* when the caller addressed one conversation.
|
|
73697
|
+
*/
|
|
73698
|
+
_topicForFrame(gid, convId, explicit, targeted, useLastIncoming = true) {
|
|
73699
|
+
const p2 = this._persisted;
|
|
73700
|
+
const g2 = gid ?? (convId ? this._sessionGroupIds.get(convId) : void 0);
|
|
73701
|
+
const primaryScope = g2 !== void 0 ? g2 === p2?.groupId : convId === this._primaryConversationId || !p2?.groupId;
|
|
73702
|
+
if (isTopicId(explicit)) {
|
|
73703
|
+
const owner = this._groupOfTopic(explicit);
|
|
73704
|
+
if (owner !== void 0 ? owner === g2 : targeted || primaryScope) return explicit;
|
|
73705
|
+
}
|
|
73706
|
+
const scope = this._topicScope(g2, convId);
|
|
73707
|
+
const last = scope && useLastIncoming ? this._lastIncomingTopics.get(scope) : void 0;
|
|
73708
|
+
if (last) return last;
|
|
73709
|
+
if (g2 && p2?.defaultTopicIds?.[g2]) return p2.defaultTopicIds[g2];
|
|
73710
|
+
if (primaryScope && p2?.defaultTopicId) return p2.defaultTopicId;
|
|
73711
|
+
return void 0;
|
|
73712
|
+
}
|
|
73713
|
+
/**
|
|
73714
|
+
* The conversation group a topic call addresses (#1416): the named
|
|
73715
|
+
* conversation's own group, else the primary group. A named conversation
|
|
73716
|
+
* whose group is unknown is an error — falling back to the primary group
|
|
73717
|
+
* would create/list topics in somebody else's chat.
|
|
73718
|
+
*/
|
|
73719
|
+
_topicGroupFor(conversationId) {
|
|
73720
|
+
if (conversationId) {
|
|
73721
|
+
const gid = this._sessionGroupIds.get(conversationId);
|
|
73722
|
+
if (!gid) throw new Error("Conversation group unknown for topic call");
|
|
73723
|
+
return gid;
|
|
73724
|
+
}
|
|
73476
73725
|
if (!this._persisted?.groupId) {
|
|
73477
73726
|
throw new Error("Channel not initialized or groupId unknown");
|
|
73478
73727
|
}
|
|
73479
|
-
|
|
73728
|
+
return this._persisted.groupId;
|
|
73729
|
+
}
|
|
73730
|
+
/**
|
|
73731
|
+
* Create a new topic within a conversation group — the given conversation's
|
|
73732
|
+
* own group (#1416), or the primary group when none is named.
|
|
73733
|
+
* Requires the channel to be initialized with a groupId (from activation).
|
|
73734
|
+
*/
|
|
73735
|
+
async createTopic(name, options) {
|
|
73736
|
+
const groupId = this._topicGroupFor(options?.conversationId);
|
|
73737
|
+
if (!this._deviceJwt || !this._persisted) {
|
|
73480
73738
|
throw new Error("Channel not authenticated");
|
|
73481
73739
|
}
|
|
73482
73740
|
const res = await fetch(`${this.config.apiUrl}/api/v1/topics`, {
|
|
@@ -73486,7 +73744,7 @@ ${text}`;
|
|
|
73486
73744
|
Authorization: `Bearer ${this._deviceJwt}`
|
|
73487
73745
|
},
|
|
73488
73746
|
body: JSON.stringify({
|
|
73489
|
-
group_id:
|
|
73747
|
+
group_id: groupId,
|
|
73490
73748
|
name,
|
|
73491
73749
|
creator_device_id: this._persisted.deviceId
|
|
73492
73750
|
})
|
|
@@ -73500,23 +73758,23 @@ ${text}`;
|
|
|
73500
73758
|
if (!this._persisted.topics) {
|
|
73501
73759
|
this._persisted.topics = [];
|
|
73502
73760
|
}
|
|
73503
|
-
this._persisted.topics.push(topic);
|
|
73761
|
+
this._persisted.topics.push({ ...topic, groupId });
|
|
73762
|
+
if (topic.isDefault) this._recordDefaultTopic(groupId, topic.id);
|
|
73504
73763
|
await this._persistState();
|
|
73505
73764
|
return topic;
|
|
73506
73765
|
}
|
|
73507
73766
|
/**
|
|
73508
|
-
* List all topics in the conversation
|
|
73767
|
+
* List all topics in a conversation group — the given conversation's own
|
|
73768
|
+
* group (#1416), or the primary group when none is named.
|
|
73509
73769
|
* Requires the channel to be initialized with a groupId (from activation).
|
|
73510
73770
|
*/
|
|
73511
|
-
async listTopics() {
|
|
73512
|
-
|
|
73513
|
-
|
|
73514
|
-
}
|
|
73515
|
-
if (!this._deviceJwt) {
|
|
73771
|
+
async listTopics(options) {
|
|
73772
|
+
const groupId = this._topicGroupFor(options?.conversationId);
|
|
73773
|
+
if (!this._deviceJwt || !this._persisted) {
|
|
73516
73774
|
throw new Error("Channel not authenticated");
|
|
73517
73775
|
}
|
|
73518
73776
|
const res = await fetch(
|
|
73519
|
-
`${this.config.apiUrl}/api/v1/topics?group_id=${encodeURIComponent(
|
|
73777
|
+
`${this.config.apiUrl}/api/v1/topics?group_id=${encodeURIComponent(groupId)}`,
|
|
73520
73778
|
{
|
|
73521
73779
|
headers: {
|
|
73522
73780
|
Authorization: `Bearer ${this._deviceJwt}`
|
|
@@ -73529,7 +73787,13 @@ ${text}`;
|
|
|
73529
73787
|
}
|
|
73530
73788
|
const resp = await res.json();
|
|
73531
73789
|
const topics = resp.map((t2) => ({ id: t2.id, name: t2.name, isDefault: t2.is_default }));
|
|
73532
|
-
this._persisted.
|
|
73790
|
+
const primaryGid = this._persisted.groupId;
|
|
73791
|
+
this._persisted.topics = [
|
|
73792
|
+
...(this._persisted.topics ?? []).filter((t2) => (t2.groupId ?? primaryGid) !== groupId),
|
|
73793
|
+
...topics.map((t2) => ({ ...t2, groupId }))
|
|
73794
|
+
];
|
|
73795
|
+
const def = topics.find((t2) => t2.isDefault);
|
|
73796
|
+
if (def) this._recordDefaultTopic(groupId, def.id);
|
|
73533
73797
|
await this._persistState();
|
|
73534
73798
|
return topics;
|
|
73535
73799
|
}
|
|
@@ -74113,6 +74377,9 @@ ${text}`;
|
|
|
74113
74377
|
this._persisted.defaultTopicId = primary.default_topic_id;
|
|
74114
74378
|
}
|
|
74115
74379
|
}
|
|
74380
|
+
for (const conv of conversations) {
|
|
74381
|
+
this._recordDefaultTopic(conv.group_id, conv.default_topic_id);
|
|
74382
|
+
}
|
|
74116
74383
|
this._sessionGroupIds = /* @__PURE__ */ new Map();
|
|
74117
74384
|
for (const conv of conversations) {
|
|
74118
74385
|
if (conv.group_id) {
|
|
@@ -74225,7 +74492,7 @@ ${text}`;
|
|
|
74225
74492
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
74226
74493
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
74227
74494
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
74228
|
-
pluginVersion: true ? "0.23.
|
|
74495
|
+
pluginVersion: true ? "0.23.51" : "0.0.0-dev"
|
|
74229
74496
|
});
|
|
74230
74497
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
74231
74498
|
}
|
|
@@ -74553,7 +74820,7 @@ ${text}`;
|
|
|
74553
74820
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
74554
74821
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
74555
74822
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
74556
|
-
pluginVersion: true ? "0.23.
|
|
74823
|
+
pluginVersion: true ? "0.23.51" : "0.0.0-dev"
|
|
74557
74824
|
});
|
|
74558
74825
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
74559
74826
|
}
|
|
@@ -75016,11 +75283,15 @@ ${text}`;
|
|
|
75016
75283
|
if (decisionReply) messageType = "decision_response";
|
|
75017
75284
|
} catch {
|
|
75018
75285
|
}
|
|
75286
|
+
const dmGroupId = convGroupId ?? (mgrKey?.startsWith("1to1-group:") ? mgrKey.slice("1to1-group:".length) : void 0);
|
|
75019
75287
|
if (messageType === "history_catchup_request") {
|
|
75020
75288
|
try {
|
|
75021
75289
|
const request = JSON.parse(plaintext);
|
|
75022
75290
|
if (typeof request.requesting_device_id !== "string") return;
|
|
75023
|
-
const filtered = this._historyForCatchup("dm", void 0, request.since_ts
|
|
75291
|
+
const filtered = this._historyForCatchup("dm", void 0, request.since_ts, {
|
|
75292
|
+
groupId: dmGroupId,
|
|
75293
|
+
conversationId: convId
|
|
75294
|
+
});
|
|
75024
75295
|
const responsePayload = JSON.stringify({
|
|
75025
75296
|
type: "history_catchup_response",
|
|
75026
75297
|
target_device_id: request.requesting_device_id,
|
|
@@ -75075,6 +75346,9 @@ ${text}`;
|
|
|
75075
75346
|
console.log(`[SecureChannel] Session ${convId.slice(0, 8)} activated via MLS message`);
|
|
75076
75347
|
}
|
|
75077
75348
|
}
|
|
75349
|
+
if (topicId) {
|
|
75350
|
+
this._rememberIncomingTopic(convId, dmGroupId, topicId);
|
|
75351
|
+
}
|
|
75078
75352
|
if (mlsAttachment) {
|
|
75079
75353
|
text = await this._augmentWithAttachment(mlsAttachment, text);
|
|
75080
75354
|
}
|
|
@@ -75084,7 +75358,8 @@ ${text}`;
|
|
|
75084
75358
|
"dm",
|
|
75085
75359
|
topicId,
|
|
75086
75360
|
data.created_at,
|
|
75087
|
-
messageType
|
|
75361
|
+
messageType,
|
|
75362
|
+
{ groupId: dmGroupId, conversationId: convId }
|
|
75088
75363
|
);
|
|
75089
75364
|
const metadata = {
|
|
75090
75365
|
messageId: data.message_id ?? `mls_${Date.now()}`,
|
|
@@ -75269,7 +75544,7 @@ ${text}`;
|
|
|
75269
75544
|
}
|
|
75270
75545
|
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
75271
75546
|
const topicId = msgData.topic_id;
|
|
75272
|
-
this.
|
|
75547
|
+
this._rememberIncomingTopic(convId, void 0, topicId);
|
|
75273
75548
|
let attachData;
|
|
75274
75549
|
if (attachmentInfo) {
|
|
75275
75550
|
try {
|
|
@@ -75297,7 +75572,8 @@ ${text}`;
|
|
|
75297
75572
|
"dm",
|
|
75298
75573
|
topicId,
|
|
75299
75574
|
msgData.created_at,
|
|
75300
|
-
messageType
|
|
75575
|
+
messageType,
|
|
75576
|
+
{ conversationId: convId }
|
|
75301
75577
|
);
|
|
75302
75578
|
let emitText = messageText;
|
|
75303
75579
|
if (attachData) {
|
|
@@ -75490,18 +75766,19 @@ ${baseText}`;
|
|
|
75490
75766
|
if (this._state !== "ready" || this._sessions.size === 0 || !this._ws) {
|
|
75491
75767
|
throw new Error("Channel is not ready");
|
|
75492
75768
|
}
|
|
75493
|
-
const topicId = options?.topicId ?? this._persisted?.defaultTopicId;
|
|
75494
75769
|
const attachMeta = await this._uploadAttachment(filePath, this._primaryConversationId);
|
|
75495
|
-
const envelope = JSON.stringify({
|
|
75496
|
-
type: "message",
|
|
75497
|
-
text: plaintext,
|
|
75498
|
-
topicId,
|
|
75499
|
-
attachment: attachMeta
|
|
75500
|
-
});
|
|
75501
75770
|
const messageGroupId = randomUUID4();
|
|
75502
75771
|
const pendingWsSends = [];
|
|
75772
|
+
const frameHistoryContexts = [];
|
|
75503
75773
|
for (const [convId, session2] of this._sessions) {
|
|
75504
75774
|
if (!session2.activated) continue;
|
|
75775
|
+
const topicId = this._topicForFrame(void 0, convId, options?.topicId, false, false);
|
|
75776
|
+
const envelope = JSON.stringify({
|
|
75777
|
+
type: "message",
|
|
75778
|
+
text: plaintext,
|
|
75779
|
+
topicId,
|
|
75780
|
+
attachment: attachMeta
|
|
75781
|
+
});
|
|
75505
75782
|
const encrypted = session2.ratchet.encrypt(envelope);
|
|
75506
75783
|
const transport = encryptedMessageToTransport(encrypted);
|
|
75507
75784
|
pendingWsSends.push(
|
|
@@ -75516,14 +75793,19 @@ ${baseText}`;
|
|
|
75516
75793
|
}
|
|
75517
75794
|
})
|
|
75518
75795
|
);
|
|
75796
|
+
frameHistoryContexts.push(this._dmHistoryContext(topicId, void 0, convId));
|
|
75519
75797
|
}
|
|
75520
75798
|
await this._persistState();
|
|
75521
75799
|
let deliveredFrames = 0;
|
|
75522
|
-
|
|
75523
|
-
|
|
75800
|
+
let historyContext;
|
|
75801
|
+
for (const [i2, frame] of pendingWsSends.entries()) {
|
|
75802
|
+
if (this._sendApplicationFrame(frame)) {
|
|
75803
|
+
if (deliveredFrames === 0) historyContext = frameHistoryContexts[i2];
|
|
75804
|
+
deliveredFrames += 1;
|
|
75805
|
+
}
|
|
75524
75806
|
}
|
|
75525
75807
|
if (deliveredFrames > 0) {
|
|
75526
|
-
await this._appendHistory("agent", plaintext, this._historyContext("dm"
|
|
75808
|
+
await this._appendHistory("agent", plaintext, historyContext ?? this._historyContext("dm"), void 0, messageGroupId);
|
|
75527
75809
|
}
|
|
75528
75810
|
}
|
|
75529
75811
|
/**
|
|
@@ -75548,9 +75830,13 @@ ${baseText}`;
|
|
|
75548
75830
|
topicId
|
|
75549
75831
|
});
|
|
75550
75832
|
const pendingWsSends = [];
|
|
75833
|
+
const sourceGid = this._sessionGroupIds.get(sourceConvId);
|
|
75834
|
+
const knowsGroups = this._sessionGroupIds.size > 0;
|
|
75551
75835
|
for (const [siblingConvId, siblingSession] of this._sessions) {
|
|
75552
75836
|
if (siblingConvId === sourceConvId) continue;
|
|
75553
75837
|
if (!siblingSession.activated) continue;
|
|
75838
|
+
const siblingGid = this._sessionGroupIds.get(siblingConvId);
|
|
75839
|
+
if (knowsGroups && !(sourceGid && siblingGid && siblingGid === sourceGid)) continue;
|
|
75554
75840
|
if (roomConvIds.has(siblingConvId)) continue;
|
|
75555
75841
|
const syncEncrypted = siblingSession.ratchet.encrypt(syncPayload);
|
|
75556
75842
|
const syncTransport = encryptedMessageToTransport(syncEncrypted);
|
|
@@ -75631,7 +75917,7 @@ ${baseText}`;
|
|
|
75631
75917
|
async _replayHistoryToSession(convId) {
|
|
75632
75918
|
const session2 = this._sessions.get(convId);
|
|
75633
75919
|
if (!session2 || !session2.activated || !this._ws) return;
|
|
75634
|
-
const history = this._selectHistoryContext("dm");
|
|
75920
|
+
const history = this._selectHistoryContext("dm", void 0, { conversationId: convId });
|
|
75635
75921
|
if (history.length === 0) {
|
|
75636
75922
|
console.log(`[SecureChannel] No history to replay for ${convId.slice(0, 8)}...`);
|
|
75637
75923
|
return;
|
|
@@ -75705,6 +75991,10 @@ ${baseText}`;
|
|
|
75705
75991
|
if (event.owner_hub_id) {
|
|
75706
75992
|
this._persisted.ownerHubId = event.owner_hub_id;
|
|
75707
75993
|
}
|
|
75994
|
+
if (event.group_id && !this._sessionGroupIds.has(event.conversation_id)) {
|
|
75995
|
+
this._sessionGroupIds.set(event.conversation_id, event.group_id);
|
|
75996
|
+
this._persisted.conversationGroupIds = Object.fromEntries(this._sessionGroupIds);
|
|
75997
|
+
}
|
|
75708
75998
|
await this._persistState();
|
|
75709
75999
|
console.log(
|
|
75710
76000
|
`[SecureChannel] Session initialized for device ${event.owner_device_id.slice(0, 8)}... (conv ${event.conversation_id.slice(0, 8)}...)`
|
|
@@ -78003,7 +78293,7 @@ ${baseText}`;
|
|
|
78003
78293
|
}
|
|
78004
78294
|
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
78005
78295
|
const topicId = msg.topic_id;
|
|
78006
|
-
await this._appendHistory("owner", messageText, this.
|
|
78296
|
+
await this._appendHistory("owner", messageText, this._dmHistoryContext(topicId, void 0, msg.conversation_id), msg.created_at, msg.message_id);
|
|
78007
78297
|
const metadata = {
|
|
78008
78298
|
messageId: msg.message_id,
|
|
78009
78299
|
conversationId: msg.conversation_id,
|
|
@@ -78609,7 +78899,7 @@ ${baseText}`;
|
|
|
78609
78899
|
}
|
|
78610
78900
|
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
78611
78901
|
const topicId = msg.topic_id;
|
|
78612
|
-
await this._appendHistory("owner", messageText, this.
|
|
78902
|
+
await this._appendHistory("owner", messageText, this._dmHistoryContext(topicId, void 0, msg.conversation_id), msg.created_at, msg.id);
|
|
78613
78903
|
const metadata = {
|
|
78614
78904
|
messageId: msg.id,
|
|
78615
78905
|
conversationId: msg.conversation_id,
|
|
@@ -78929,7 +79219,7 @@ ${baseText}`;
|
|
|
78929
79219
|
}
|
|
78930
79220
|
if (messageType === "message" || messageType === "decision_response" && decisionReply) {
|
|
78931
79221
|
const topicId = msg.topic_id;
|
|
78932
|
-
await this._appendHistory("owner", messageText, this.
|
|
79222
|
+
await this._appendHistory("owner", messageText, this._dmHistoryContext(topicId, void 0, msg.conversation_id), msg.created_at, msg.id);
|
|
78933
79223
|
const metadata = {
|
|
78934
79224
|
messageId: msg.id,
|
|
78935
79225
|
conversationId: msg.conversation_id,
|
|
@@ -100709,7 +100999,7 @@ data:
|
|
|
100709
100999
|
await init_skill_telemetry();
|
|
100710
101000
|
await init_policy_enforcer();
|
|
100711
101001
|
init_room_protocol();
|
|
100712
|
-
VERSION = true ? "0.23.
|
|
101002
|
+
VERSION = true ? "0.23.51" : "0.0.0-dev";
|
|
100713
101003
|
}
|
|
100714
101004
|
});
|
|
100715
101005
|
await init_index();
|
|
@@ -102810,7 +103100,7 @@ async function main() {
|
|
|
102810
103100
|
const info = parseInfoFlags(process.argv.slice(2));
|
|
102811
103101
|
if (info.showVersion || info.showHelp) {
|
|
102812
103102
|
const version2 = buildClientVersion2(
|
|
102813
|
-
true ? "0.4.
|
|
103103
|
+
true ? "0.4.22" : void 0
|
|
102814
103104
|
);
|
|
102815
103105
|
if (info.showVersion) printLine(version2);
|
|
102816
103106
|
if (info.showHelp) {
|
|
@@ -102849,7 +103139,7 @@ async function main() {
|
|
|
102849
103139
|
process.exit(0);
|
|
102850
103140
|
}
|
|
102851
103141
|
const cfg = loadConfig(process.env, process.argv.slice(2));
|
|
102852
|
-
logLine(`[grok-bridge] version: ${true ? "0.4.
|
|
103142
|
+
logLine(`[grok-bridge] version: ${true ? "0.4.22" : "dev"}`);
|
|
102853
103143
|
mkdirSync7(cfg.workspaceDir, { recursive: true });
|
|
102854
103144
|
mkdirSync7(cfg.fenceHome, { recursive: true });
|
|
102855
103145
|
seedFenceCredential({
|
|
@@ -102864,7 +103154,7 @@ async function main() {
|
|
|
102864
103154
|
agentName: cfg.agentName,
|
|
102865
103155
|
platform: "node",
|
|
102866
103156
|
clientVersion: buildClientVersion2(
|
|
102867
|
-
true ? "0.4.
|
|
103157
|
+
true ? "0.4.22" : void 0
|
|
102868
103158
|
)
|
|
102869
103159
|
});
|
|
102870
103160
|
channelRef = channel;
|
package/package.json
CHANGED