@agentvault/openai-bridge 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.d.ts +1 -1
- package/dist/index.js +622 -89
- package/package.json +1 -1
package/dist/cli.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type HistoryRecoveryCommandInput } from "@agentvault/agentvault";
|
|
2
2
|
import { type Layout } from "./driver.js";
|
|
3
|
-
export declare const VERSION = "0.1.
|
|
3
|
+
export declare const VERSION = "0.1.7";
|
|
4
4
|
export interface RunConfig {
|
|
5
5
|
name: string;
|
|
6
6
|
apiUrl: string;
|
package/dist/index.js
CHANGED
|
@@ -94,6 +94,7 @@ import { readdir as readdir2, readFile as readFile4, writeFile as writeFile2, re
|
|
|
94
94
|
import { join as join5 } from "node:path";
|
|
95
95
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
96
96
|
import { EventEmitter } from "node:events";
|
|
97
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
97
98
|
import { createServer } from "node:http";
|
|
98
99
|
import { randomUUID as randomUUID4, createHash } from "node:crypto";
|
|
99
100
|
import { readFileSync } from "node:fs";
|
|
@@ -103,7 +104,7 @@ import { join as join6 } from "node:path";
|
|
|
103
104
|
import { readFile as readFile5 } from "node:fs/promises";
|
|
104
105
|
import WebSocket from "ws";
|
|
105
106
|
import { resolve as resolve2 } from "node:path";
|
|
106
|
-
import { AsyncLocalStorage } from "node:async_hooks";
|
|
107
|
+
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
107
108
|
import { Http2ServerRequest as Http2ServerRequest2 } from "http2";
|
|
108
109
|
import { Http2ServerRequest } from "http2";
|
|
109
110
|
import { Readable as Readable2 } from "stream";
|
|
@@ -11787,11 +11788,11 @@ async function joinWithFirstMatchingKp(welcomeBytes, candidates) {
|
|
|
11787
11788
|
return null;
|
|
11788
11789
|
}
|
|
11789
11790
|
function ownIdentity() {
|
|
11790
|
-
const v2 = true ? "0.23.
|
|
11791
|
+
const v2 = true ? "0.23.52" : FALLBACK;
|
|
11791
11792
|
return `${PACKAGE}@${v2}`;
|
|
11792
11793
|
}
|
|
11793
11794
|
function buildSha() {
|
|
11794
|
-
const raw = true ? "
|
|
11795
|
+
const raw = true ? "d7143c3" : "";
|
|
11795
11796
|
const cleaned = (raw ?? "").trim();
|
|
11796
11797
|
return !cleaned || cleaned === "unknown" ? null : cleaned;
|
|
11797
11798
|
}
|
|
@@ -12595,11 +12596,38 @@ function _resetCompatCacheForTest() {
|
|
|
12595
12596
|
_agentEventFn = null;
|
|
12596
12597
|
_transcriptFn = null;
|
|
12597
12598
|
}
|
|
12599
|
+
function ownerRoutingFrom(parsed) {
|
|
12600
|
+
const out = {};
|
|
12601
|
+
if (parsed.conversation_id !== void 0) {
|
|
12602
|
+
if (typeof parsed.conversation_id !== "string" || !parsed.conversation_id) return "'conversation_id' must be a string";
|
|
12603
|
+
out.conversationId = parsed.conversation_id;
|
|
12604
|
+
}
|
|
12605
|
+
if (parsed.audience !== void 0) {
|
|
12606
|
+
if (parsed.audience !== "person" && parsed.audience !== "everyone") {
|
|
12607
|
+
return `'audience' must be "person" or "everyone"`;
|
|
12608
|
+
}
|
|
12609
|
+
out.audience = parsed.audience;
|
|
12610
|
+
}
|
|
12611
|
+
return out;
|
|
12612
|
+
}
|
|
12613
|
+
function ambiguousOwnerRequest(channel, routing) {
|
|
12614
|
+
const check = channel.isUntargetedOwnerAmbiguous;
|
|
12615
|
+
if (typeof check !== "function" || !check.call(channel, routing)) return null;
|
|
12616
|
+
return { status: 409, body: { ok: false, error: AMBIGUOUS_OWNER_ERROR } };
|
|
12617
|
+
}
|
|
12618
|
+
function statusOf(receipt) {
|
|
12619
|
+
if (receipt.ambiguous) return 409;
|
|
12620
|
+
return receipt.ok ? 200 : 500;
|
|
12621
|
+
}
|
|
12598
12622
|
async function handleSendRequest(parsed, channel) {
|
|
12599
12623
|
const text = parsed.text;
|
|
12600
12624
|
if (!text || typeof text !== "string") {
|
|
12601
12625
|
return { status: 400, body: { ok: false, error: "Missing 'text' field" } };
|
|
12602
12626
|
}
|
|
12627
|
+
const routing = ownerRoutingFrom(parsed);
|
|
12628
|
+
if (typeof routing === "string") {
|
|
12629
|
+
return { status: 400, body: { ok: false, error: routing } };
|
|
12630
|
+
}
|
|
12603
12631
|
try {
|
|
12604
12632
|
let target;
|
|
12605
12633
|
let a2aTarget = parsed.hub_address ?? parsed.a2a_address ?? parsed.a2aAddress;
|
|
@@ -12617,10 +12645,10 @@ async function handleSendRequest(parsed, channel) {
|
|
|
12617
12645
|
const receipt2 = await channel.deliver(
|
|
12618
12646
|
{ kind: "owner" },
|
|
12619
12647
|
{ type: "attachment", text, filePath: parsed.file_path },
|
|
12620
|
-
{ topicId: parsed.topicId }
|
|
12648
|
+
{ topicId: parsed.topicId, ...routing, refuseIfAmbiguous: true }
|
|
12621
12649
|
);
|
|
12622
12650
|
return {
|
|
12623
|
-
status: receipt2
|
|
12651
|
+
status: statusOf(receipt2),
|
|
12624
12652
|
body: {
|
|
12625
12653
|
ok: receipt2.ok,
|
|
12626
12654
|
destination: receipt2.destination,
|
|
@@ -12634,6 +12662,8 @@ async function handleSendRequest(parsed, channel) {
|
|
|
12634
12662
|
target,
|
|
12635
12663
|
{ type: "text", text },
|
|
12636
12664
|
{
|
|
12665
|
+
...routing,
|
|
12666
|
+
refuseIfAmbiguous: true,
|
|
12637
12667
|
topicId: parsed.topicId,
|
|
12638
12668
|
priority: parsed.priority,
|
|
12639
12669
|
metadata: {
|
|
@@ -12643,7 +12673,7 @@ async function handleSendRequest(parsed, channel) {
|
|
|
12643
12673
|
}
|
|
12644
12674
|
);
|
|
12645
12675
|
return {
|
|
12646
|
-
status: receipt
|
|
12676
|
+
status: statusOf(receipt),
|
|
12647
12677
|
body: {
|
|
12648
12678
|
ok: receipt.ok,
|
|
12649
12679
|
destination: receipt.destination,
|
|
@@ -12658,6 +12688,10 @@ async function handleActionRequest(parsed, channel) {
|
|
|
12658
12688
|
if (!parsed.action || typeof parsed.action !== "string") {
|
|
12659
12689
|
return { status: 400, body: { ok: false, error: "Missing 'action' field" } };
|
|
12660
12690
|
}
|
|
12691
|
+
const routing = ownerRoutingFrom(parsed);
|
|
12692
|
+
if (typeof routing === "string") {
|
|
12693
|
+
return { status: 400, body: { ok: false, error: routing } };
|
|
12694
|
+
}
|
|
12661
12695
|
try {
|
|
12662
12696
|
const confirmation = {
|
|
12663
12697
|
action: parsed.action,
|
|
@@ -12667,12 +12701,10 @@ async function handleActionRequest(parsed, channel) {
|
|
|
12667
12701
|
estimated_cost: parsed.estimated_cost
|
|
12668
12702
|
};
|
|
12669
12703
|
const target = parsed.room_id && typeof parsed.room_id === "string" ? { kind: "room", roomId: parsed.room_id } : { kind: "owner" };
|
|
12670
|
-
const
|
|
12671
|
-
|
|
12672
|
-
{ type: "action_confirmation", confirmation }
|
|
12673
|
-
);
|
|
12704
|
+
const content = { type: "action_confirmation", confirmation };
|
|
12705
|
+
const receipt = await channel.deliver(target, content, { ...routing, refuseIfAmbiguous: true });
|
|
12674
12706
|
return {
|
|
12675
|
-
status: receipt
|
|
12707
|
+
status: statusOf(receipt),
|
|
12676
12708
|
body: {
|
|
12677
12709
|
ok: receipt.ok,
|
|
12678
12710
|
destination: receipt.destination,
|
|
@@ -12697,6 +12729,12 @@ async function handleDecisionRequest(parsed, channel) {
|
|
|
12697
12729
|
return { status: 400, body: { ok: false, error: "Each option must have 'option_id' and 'label'" } };
|
|
12698
12730
|
}
|
|
12699
12731
|
}
|
|
12732
|
+
const routing = ownerRoutingFrom(parsed);
|
|
12733
|
+
if (typeof routing === "string") {
|
|
12734
|
+
return { status: 400, body: { ok: false, error: routing } };
|
|
12735
|
+
}
|
|
12736
|
+
const ambiguous = ambiguousOwnerRequest(channel, routing);
|
|
12737
|
+
if (ambiguous) return ambiguous;
|
|
12700
12738
|
try {
|
|
12701
12739
|
const decision_id = await channel.sendDecisionRequest({
|
|
12702
12740
|
title,
|
|
@@ -12705,7 +12743,7 @@ async function handleDecisionRequest(parsed, channel) {
|
|
|
12705
12743
|
context_refs: parsed.context_refs,
|
|
12706
12744
|
deadline: parsed.deadline,
|
|
12707
12745
|
auto_action: parsed.auto_action
|
|
12708
|
-
});
|
|
12746
|
+
}, routing);
|
|
12709
12747
|
return { status: 200, body: { ok: true, decision_id } };
|
|
12710
12748
|
} catch (err) {
|
|
12711
12749
|
return { status: 500, body: { ok: false, error: String(err) } };
|
|
@@ -13240,7 +13278,7 @@ async function _handleInbound(params) {
|
|
|
13240
13278
|
core.error?.(`[AgentVault] session record failed: ${String(err)}`);
|
|
13241
13279
|
}
|
|
13242
13280
|
});
|
|
13243
|
-
await core.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
|
|
13281
|
+
await channel.runForConversation(metadata.conversationId, () => core.channel.reply.dispatchReplyWithBufferedBlockDispatcher({
|
|
13244
13282
|
ctx: ctxPayload,
|
|
13245
13283
|
cfg,
|
|
13246
13284
|
dispatcherOptions: {
|
|
@@ -13257,7 +13295,7 @@ async function _handleInbound(params) {
|
|
|
13257
13295
|
}
|
|
13258
13296
|
},
|
|
13259
13297
|
replyOptions: {}
|
|
13260
|
-
});
|
|
13298
|
+
}), { groupId: metadata.conversationGroupId });
|
|
13261
13299
|
}
|
|
13262
13300
|
function resolveBaseUrl(options) {
|
|
13263
13301
|
const host = options?.host ?? "127.0.0.1";
|
|
@@ -18333,7 +18371,7 @@ function reportSkillInvocation(opts) {
|
|
|
18333
18371
|
spanBuffer.push(span);
|
|
18334
18372
|
return span;
|
|
18335
18373
|
}
|
|
18336
|
-
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_exports2, 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;
|
|
18374
|
+
var __create, __defProp2, __getOwnPropDesc, __getOwnPropNames2, __getProtoOf, __hasOwnProp, __esm2, __commonJS, __export2, __copyProps, __toESM, SENTINEL, WRAPPERS, INSTRUCTION, init_abstention, AMBIGUOUS_OWNER_ERROR, init_owner_routing, 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_exports2, 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, _turnConversation, PERSON_INVOLVED_WINDOW_MS, ATTESTED_INBOUND_MAX, UNMAPPED_RECONCILE_COOLDOWN_MS, 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;
|
|
18337
18375
|
var init_dist = __esm({
|
|
18338
18376
|
async "../plugin/dist/index.js"() {
|
|
18339
18377
|
"use strict";
|
|
@@ -18386,6 +18424,12 @@ var init_dist = __esm({
|
|
|
18386
18424
|
INSTRUCTION = "not every message needs an answer from you: if this one is not addressed to you and asks nothing of you, reply with exactly " + SENTINEL + " and nothing else \u2014 that is discarded, not posted, and is how you stay quiet; never post a message SAYING that you are staying quiet";
|
|
18387
18425
|
}
|
|
18388
18426
|
});
|
|
18427
|
+
init_owner_routing = __esm2({
|
|
18428
|
+
"src/owner-routing.ts"() {
|
|
18429
|
+
"use strict";
|
|
18430
|
+
AMBIGUOUS_OWNER_ERROR = `More than one person is talking to this agent right now, so it can't tell who this is for. Add 'conversation_id' to say which conversation, or send audience "everyone" to reach them all.`;
|
|
18431
|
+
}
|
|
18432
|
+
});
|
|
18389
18433
|
init_envelope_text = __esm2({
|
|
18390
18434
|
"src/envelope-text.ts"() {
|
|
18391
18435
|
"use strict";
|
|
@@ -71217,6 +71261,7 @@ var init_dist = __esm({
|
|
|
71217
71261
|
init_http_handlers = __esm2({
|
|
71218
71262
|
"src/http-handlers.ts"() {
|
|
71219
71263
|
"use strict";
|
|
71264
|
+
init_owner_routing();
|
|
71220
71265
|
}
|
|
71221
71266
|
});
|
|
71222
71267
|
mcp_proxy_helpers_exports = {};
|
|
@@ -71246,6 +71291,7 @@ var init_dist = __esm({
|
|
|
71246
71291
|
async "src/channel.ts"() {
|
|
71247
71292
|
"use strict";
|
|
71248
71293
|
init_abstention();
|
|
71294
|
+
init_owner_routing();
|
|
71249
71295
|
init_envelope_text();
|
|
71250
71296
|
init_mls_commit_classify();
|
|
71251
71297
|
init_room_protocol();
|
|
@@ -71295,6 +71341,10 @@ var init_dist = __esm({
|
|
|
71295
71341
|
OUTBOUND_DEDUPE_TYPES = /* @__PURE__ */ new Set(["text", "status_alert", "artifact", "attachment"]);
|
|
71296
71342
|
RETRY_CANDIDATE_TTL_MS = 6e4;
|
|
71297
71343
|
RETRY_CANDIDATE_MAX = 32;
|
|
71344
|
+
_turnConversation = new AsyncLocalStorage();
|
|
71345
|
+
PERSON_INVOLVED_WINDOW_MS = 5 * 6e4;
|
|
71346
|
+
ATTESTED_INBOUND_MAX = 64;
|
|
71347
|
+
UNMAPPED_RECONCILE_COOLDOWN_MS = 6e4;
|
|
71298
71348
|
TOPIC_ID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
71299
71349
|
ROOM_FULFIL_COOLDOWN_MS = 6e4;
|
|
71300
71350
|
SecureChannel = class _SecureChannel extends EventEmitter {
|
|
@@ -71533,6 +71583,31 @@ ${text}`;
|
|
|
71533
71583
|
_lastIncomingTopics = /* @__PURE__ */ new Map();
|
|
71534
71584
|
/** Room ID from the most recent inbound room message — used as fallback for HTTP /send replies. */
|
|
71535
71585
|
_lastInboundRoomId;
|
|
71586
|
+
/**
|
|
71587
|
+
* #1418: the most recent owner 1:1 message that reached the agent — the
|
|
71588
|
+
* person involved in whatever the agent says next without naming a
|
|
71589
|
+
* conversation (see `_involvedPerson`). In memory only: after a restart
|
|
71590
|
+
* there is no trigger, so untargeted content goes to the primary person.
|
|
71591
|
+
*/
|
|
71592
|
+
_lastInboundDm;
|
|
71593
|
+
/** #1418: turns in progress (`runForConversation`). */
|
|
71594
|
+
_activeTurns = /* @__PURE__ */ new Set();
|
|
71595
|
+
/**
|
|
71596
|
+
* #1418: recent owner 1:1 messages that decrypted, keyed by
|
|
71597
|
+
* conversation|group — evidence of which conversation, group and browser
|
|
71598
|
+
* belong together (one person). In memory only, bounded.
|
|
71599
|
+
*/
|
|
71600
|
+
_attestedInbound = /* @__PURE__ */ new Map();
|
|
71601
|
+
/** #1418: per UNMAPPED group (or conversation), the last time it asked for a reconcile. */
|
|
71602
|
+
_unmappedReconcileAt = /* @__PURE__ */ new Map();
|
|
71603
|
+
/**
|
|
71604
|
+
* #1418: 1:1 groups joined by a Welcome IN THIS PROCESS while no
|
|
71605
|
+
* conversation mapped them — a person who has not been learned yet, counted
|
|
71606
|
+
* as one until the next successful reconcile. Persisted husks never are.
|
|
71607
|
+
*/
|
|
71608
|
+
_welcomedUnmapped = /* @__PURE__ */ new Map();
|
|
71609
|
+
/** #1418: what the last SUCCESSFUL reconcile reported live, and when it started. */
|
|
71610
|
+
_lastReconcile;
|
|
71536
71611
|
/** Rate-limit: last resync_request timestamp per conversation (5-min cooldown). */
|
|
71537
71612
|
_lastResyncRequest = /* @__PURE__ */ new Map();
|
|
71538
71613
|
/** Dedup: last room/group welcome self-heal request timestamp per group (30s window). */
|
|
@@ -72138,6 +72213,379 @@ ${text}`;
|
|
|
72138
72213
|
if (this._persisted?.groupId) known.add(this._persisted.groupId);
|
|
72139
72214
|
return known;
|
|
72140
72215
|
}
|
|
72216
|
+
// --- #1418: only the person involved ----------------------------------
|
|
72217
|
+
/**
|
|
72218
|
+
* Run `fn` as the work an inbound 1:1 message from `conversationId`
|
|
72219
|
+
* triggered. Untargeted owner content sent while it runs — from inside its
|
|
72220
|
+
* async call chain, or from anywhere while it is the only turn in progress —
|
|
72221
|
+
* goes to that conversation's person only.
|
|
72222
|
+
*
|
|
72223
|
+
* `opts.groupId` is the group that message DECRYPTED under
|
|
72224
|
+
* (`metadata.conversationGroupId`). Pass it: it outranks the local
|
|
72225
|
+
* conversation→group map, which can be stale, and it is all there is for a
|
|
72226
|
+
* frame whose conversation is not mapped yet. With neither an id nor a
|
|
72227
|
+
* group, `fn` runs unchanged.
|
|
72228
|
+
*/
|
|
72229
|
+
async runForConversation(conversationId, fn, opts) {
|
|
72230
|
+
const groupId = typeof opts?.groupId === "string" && opts.groupId ? opts.groupId : void 0;
|
|
72231
|
+
if (!conversationId && !groupId) return fn();
|
|
72232
|
+
const store = { convId: conversationId || void 0, groupId, ended: false };
|
|
72233
|
+
this._activeTurns.add(store);
|
|
72234
|
+
try {
|
|
72235
|
+
return await _turnConversation.run(store, fn);
|
|
72236
|
+
} finally {
|
|
72237
|
+
store.ended = true;
|
|
72238
|
+
store.endedAt = Date.now();
|
|
72239
|
+
this._activeTurns.delete(store);
|
|
72240
|
+
}
|
|
72241
|
+
}
|
|
72242
|
+
/**
|
|
72243
|
+
* The turn this call chain belongs to (#1418) — running, or ended but
|
|
72244
|
+
* still within the window in which work it left behind is for its person.
|
|
72245
|
+
* `"expired"` once that window is over: the work is proactive now.
|
|
72246
|
+
*/
|
|
72247
|
+
_currentTurn() {
|
|
72248
|
+
const store = _turnConversation.getStore();
|
|
72249
|
+
if (!store) return void 0;
|
|
72250
|
+
if (!store.ended) return store;
|
|
72251
|
+
return Date.now() - (store.endedAt ?? 0) < PERSON_INVOLVED_WINDOW_MS ? store : "expired";
|
|
72252
|
+
}
|
|
72253
|
+
/**
|
|
72254
|
+
* Record an owner 1:1 message that just decrypted (#1418).
|
|
72255
|
+
*
|
|
72256
|
+
* Always kept as evidence of which conversation, group and browser belong
|
|
72257
|
+
* together (see `_dmPeople`). It makes its person "the person involved" only
|
|
72258
|
+
* when it is RECENT by the server's `createdAt`: a frame replayed from
|
|
72259
|
+
* backlog on reconnect is not something anyone is waiting on an answer to.
|
|
72260
|
+
*/
|
|
72261
|
+
_noteInboundDm(convId, groupId, opts = {}) {
|
|
72262
|
+
if (!convId && !groupId) return;
|
|
72263
|
+
const now = Date.now();
|
|
72264
|
+
const sentAt = opts.createdAt ? Date.parse(opts.createdAt) : NaN;
|
|
72265
|
+
const at = Number.isFinite(sentAt) ? Math.min(now, sentAt) : now;
|
|
72266
|
+
const sender = opts.senderDeviceId && opts.senderDeviceId !== this._deviceId ? opts.senderDeviceId : void 0;
|
|
72267
|
+
const key = `${convId ?? ""}|${groupId ?? ""}|${sender ?? ""}`;
|
|
72268
|
+
const prior = this._attestedInbound.get(key);
|
|
72269
|
+
this._attestedInbound.delete(key);
|
|
72270
|
+
this._attestedInbound.set(key, { convId, groupId, senderDeviceId: sender, at: Math.max(prior?.at ?? 0, at) });
|
|
72271
|
+
while (this._attestedInbound.size > ATTESTED_INBOUND_MAX) {
|
|
72272
|
+
const oldest = this._attestedInbound.keys().next().value;
|
|
72273
|
+
if (oldest === void 0) break;
|
|
72274
|
+
this._attestedInbound.delete(oldest);
|
|
72275
|
+
}
|
|
72276
|
+
if (this._lastInboundDm && this._lastInboundDm.at > at) return;
|
|
72277
|
+
this._lastInboundDm = {
|
|
72278
|
+
convId,
|
|
72279
|
+
groupId: groupId ?? (convId ? this._sessionGroupIds.get(convId) : void 0),
|
|
72280
|
+
at
|
|
72281
|
+
};
|
|
72282
|
+
}
|
|
72283
|
+
/** The group `convId`'s most recent inbound decrypted under, if any. */
|
|
72284
|
+
_attestedGroupOf(convId) {
|
|
72285
|
+
if (!convId) return void 0;
|
|
72286
|
+
let gid;
|
|
72287
|
+
for (const a2 of this._attestedInbound.values()) {
|
|
72288
|
+
if (a2.convId === convId && a2.groupId) gid = a2.groupId;
|
|
72289
|
+
}
|
|
72290
|
+
return gid;
|
|
72291
|
+
}
|
|
72292
|
+
/** Does some mapped conversation point at `groupId`? */
|
|
72293
|
+
_isMappedGroup(groupId) {
|
|
72294
|
+
for (const gid of this._sessionGroupIds.values()) if (gid === groupId) return true;
|
|
72295
|
+
return false;
|
|
72296
|
+
}
|
|
72297
|
+
/**
|
|
72298
|
+
* An owner message decrypted under a group no mapped conversation points at
|
|
72299
|
+
* (#1418): the map is stale — a Welcome landed before its conversation was
|
|
72300
|
+
* learned, or a conversation was recreated. Re-resolve it from the server.
|
|
72301
|
+
* Fire-and-forget and rate-limited per group: never awaited on the receive
|
|
72302
|
+
* or Welcome path, so it can never hold up MLS processing.
|
|
72303
|
+
*/
|
|
72304
|
+
_reconcileForUnmappedGroup(groupId) {
|
|
72305
|
+
if (!groupId || this._isMappedGroup(groupId)) return;
|
|
72306
|
+
this._reconcileSoon(`g:${groupId}`);
|
|
72307
|
+
}
|
|
72308
|
+
/** The same for a Double Ratchet message on a conversation the map does not know. */
|
|
72309
|
+
_reconcileForUnmappedConversation(convId) {
|
|
72310
|
+
if (!convId || this._sessionGroupIds.size === 0 || this._sessionGroupIds.has(convId)) return;
|
|
72311
|
+
this._reconcileSoon(`c:${convId}`);
|
|
72312
|
+
}
|
|
72313
|
+
_reconcileSoon(key) {
|
|
72314
|
+
const now = Date.now();
|
|
72315
|
+
if (now - (this._unmappedReconcileAt.get(key) ?? 0) < UNMAPPED_RECONCILE_COOLDOWN_MS) return;
|
|
72316
|
+
this._unmappedReconcileAt.set(key, now);
|
|
72317
|
+
void Promise.resolve().then(() => this._reconcileConversationGroups()).catch((err) => console.warn("[SecureChannel] Conversation-group reconcile (unmapped group) failed:", err));
|
|
72318
|
+
}
|
|
72319
|
+
/** A conversation of `groupId`, for an MLS frame that named only its group. */
|
|
72320
|
+
_conversationOfGroup(groupId) {
|
|
72321
|
+
if (!groupId) return void 0;
|
|
72322
|
+
if (this._primaryConversationId && this._sessionGroupIds.get(this._primaryConversationId) === groupId) {
|
|
72323
|
+
return this._primaryConversationId;
|
|
72324
|
+
}
|
|
72325
|
+
for (const [convId, gid] of this._sessionGroupIds) {
|
|
72326
|
+
if (gid === groupId) return convId;
|
|
72327
|
+
}
|
|
72328
|
+
return void 0;
|
|
72329
|
+
}
|
|
72330
|
+
/** Is `convId` one of this agent's own 1:1 conversations (never a room's or an A2A channel's)? */
|
|
72331
|
+
_isOwnDmConversation(convId) {
|
|
72332
|
+
if (this._isNonDmConversation(convId)) return false;
|
|
72333
|
+
return this._sessions.has(convId) || this._sessionGroupIds.has(convId) || !!this._persisted?.mlsConversations?.[convId] || convId === this._primaryConversationId;
|
|
72334
|
+
}
|
|
72335
|
+
/**
|
|
72336
|
+
* #1418 — the PEOPLE this agent has a 1:1 with, or `undefined` when it
|
|
72337
|
+
* cannot tell (no conversation is mapped: then it behaves as before #1418).
|
|
72338
|
+
*
|
|
72339
|
+
* People, not groups. Since #1399 one person has one group, but an agent
|
|
72340
|
+
* also keeps joined groups that are nobody's any more — husks of deleted or
|
|
72341
|
+
* recreated conversations. Measured 2026-10-24: wren held 13 joined groups
|
|
72342
|
+
* for 1 mapped, loopita 2 for 1, wowzer 2 for 1. Counting joined groups made
|
|
72343
|
+
* all three single-person agents look like several people, and their
|
|
72344
|
+
* replies could go only to a dead group.
|
|
72345
|
+
*
|
|
72346
|
+
* So a person is built from the conversations the server mapped, joined by
|
|
72347
|
+
* evidence that two things are the same person:
|
|
72348
|
+
* - the same group (a legacy group shared by several people cannot be told
|
|
72349
|
+
* apart, so it stays one — exactly the pre-#1418 behaviour);
|
|
72350
|
+
* - the same owner browser (a browser belongs to exactly one person);
|
|
72351
|
+
* - a message that decrypted under a group, from a conversation and browser.
|
|
72352
|
+
* A joined group nothing maps and nobody has spoken in is not a person. A
|
|
72353
|
+
* message on an unmapped group from a browser nobody knows IS someone —
|
|
72354
|
+
* that fails closed, toward "only them".
|
|
72355
|
+
*/
|
|
72356
|
+
_dmPeople() {
|
|
72357
|
+
if (this._sessionGroupIds.size === 0) return void 0;
|
|
72358
|
+
const parent2 = /* @__PURE__ */ new Map();
|
|
72359
|
+
const add4 = (x2) => {
|
|
72360
|
+
if (!parent2.has(x2)) parent2.set(x2, x2);
|
|
72361
|
+
};
|
|
72362
|
+
const find = (x2) => {
|
|
72363
|
+
let root3 = x2;
|
|
72364
|
+
while (parent2.get(root3) !== root3) root3 = parent2.get(root3);
|
|
72365
|
+
return root3;
|
|
72366
|
+
};
|
|
72367
|
+
const union2 = (a2, b2) => {
|
|
72368
|
+
if (!a2 || !b2) return;
|
|
72369
|
+
add4(a2);
|
|
72370
|
+
add4(b2);
|
|
72371
|
+
const ra2 = find(a2), rb = find(b2);
|
|
72372
|
+
if (ra2 !== rb) parent2.set(ra2, rb);
|
|
72373
|
+
};
|
|
72374
|
+
const ownerOf = (convId) => {
|
|
72375
|
+
const owner = this._sessions.get(convId)?.ownerDeviceId ?? this._persisted?.sessions?.[convId]?.ownerDeviceId;
|
|
72376
|
+
return owner ? `d:${owner}` : void 0;
|
|
72377
|
+
};
|
|
72378
|
+
for (const [convId, gid] of this._sessionGroupIds) {
|
|
72379
|
+
add4(`c:${convId}`);
|
|
72380
|
+
union2(`c:${convId}`, `g:${gid}`);
|
|
72381
|
+
union2(`c:${convId}`, ownerOf(convId));
|
|
72382
|
+
}
|
|
72383
|
+
const primary = this._primaryConversationId || this._persisted?.primaryConversationId;
|
|
72384
|
+
const primaryGid = this._persisted?.groupId;
|
|
72385
|
+
if (primary && primaryGid && (parent2.has(`c:${primary}`) || parent2.has(`g:${primaryGid}`))) {
|
|
72386
|
+
union2(`c:${primary}`, `g:${primaryGid}`);
|
|
72387
|
+
}
|
|
72388
|
+
for (const gid of this._welcomedUnmapped.keys()) add4(`g:${gid}`);
|
|
72389
|
+
const records = [...this._attestedInbound.values()].map((a2) => ({
|
|
72390
|
+
a: a2,
|
|
72391
|
+
nodes: [
|
|
72392
|
+
a2.convId ? `c:${a2.convId}` : void 0,
|
|
72393
|
+
a2.groupId ? `g:${a2.groupId}` : void 0,
|
|
72394
|
+
a2.senderDeviceId ? `d:${a2.senderDeviceId}` : void 0
|
|
72395
|
+
].filter((n2) => !!n2)
|
|
72396
|
+
}));
|
|
72397
|
+
const placed = /* @__PURE__ */ new Set();
|
|
72398
|
+
const place = (i2) => {
|
|
72399
|
+
const { a: a2, nodes } = records[i2];
|
|
72400
|
+
for (const n2 of nodes) add4(n2);
|
|
72401
|
+
for (const n2 of nodes.slice(1)) union2(nodes[0], n2);
|
|
72402
|
+
if (a2.convId && this._sessionGroupIds.has(a2.convId)) union2(`c:${a2.convId}`, ownerOf(a2.convId));
|
|
72403
|
+
placed.add(i2);
|
|
72404
|
+
};
|
|
72405
|
+
const linkKnown = () => {
|
|
72406
|
+
for (let progress = true; progress; ) {
|
|
72407
|
+
progress = false;
|
|
72408
|
+
records.forEach((r2, i2) => {
|
|
72409
|
+
if (!placed.has(i2) && r2.nodes.some((n2) => parent2.has(n2))) {
|
|
72410
|
+
place(i2);
|
|
72411
|
+
progress = true;
|
|
72412
|
+
}
|
|
72413
|
+
});
|
|
72414
|
+
}
|
|
72415
|
+
};
|
|
72416
|
+
linkKnown();
|
|
72417
|
+
records.forEach((r2, i2) => {
|
|
72418
|
+
if (!placed.has(i2) && this._mayBeNewPerson(r2.a)) place(i2);
|
|
72419
|
+
});
|
|
72420
|
+
linkKnown();
|
|
72421
|
+
const roots = /* @__PURE__ */ new Set();
|
|
72422
|
+
for (const node2 of parent2.keys()) {
|
|
72423
|
+
if (!node2.startsWith("d:")) roots.add(find(node2));
|
|
72424
|
+
}
|
|
72425
|
+
return {
|
|
72426
|
+
count: roots.size,
|
|
72427
|
+
keyOf: (convId, groupId) => {
|
|
72428
|
+
if (convId && parent2.has(`c:${convId}`)) return find(`c:${convId}`);
|
|
72429
|
+
if (groupId && parent2.has(`g:${groupId}`)) return find(`g:${groupId}`);
|
|
72430
|
+
return void 0;
|
|
72431
|
+
}
|
|
72432
|
+
};
|
|
72433
|
+
}
|
|
72434
|
+
/**
|
|
72435
|
+
* May this inbound evidence stand for a person nobody knows yet (#1418)?
|
|
72436
|
+
* Only if it was sent recently, and the last successful reconcile — when it
|
|
72437
|
+
* started after the message was sent — listed its conversation or group.
|
|
72438
|
+
*/
|
|
72439
|
+
_mayBeNewPerson(a2) {
|
|
72440
|
+
if (Date.now() - a2.at >= PERSON_INVOLVED_WINDOW_MS) return false;
|
|
72441
|
+
const r2 = this._lastReconcile;
|
|
72442
|
+
if (r2 && a2.at <= r2.at && !(a2.convId && r2.convs.has(a2.convId)) && !(a2.groupId && r2.groups.has(a2.groupId))) return false;
|
|
72443
|
+
return true;
|
|
72444
|
+
}
|
|
72445
|
+
/** More than one person has a 1:1 with this agent (#1418). Unknown counts as one: the old behaviour. */
|
|
72446
|
+
_isMultiPerson() {
|
|
72447
|
+
return (this._dmPeople()?.count ?? 0) > 1;
|
|
72448
|
+
}
|
|
72449
|
+
/**
|
|
72450
|
+
* The group a turn's message decrypted under, for placing the turn when its
|
|
72451
|
+
* conversation is not mapped (a mapped conversation already names its person).
|
|
72452
|
+
*/
|
|
72453
|
+
_turnGroup(turn) {
|
|
72454
|
+
return turn.groupId ?? this._attestedGroupOf(turn.convId);
|
|
72455
|
+
}
|
|
72456
|
+
/** The people with a 1:1 turn in progress, one turn each (#1418). */
|
|
72457
|
+
_activeTurnPeople() {
|
|
72458
|
+
const people = this._dmPeople();
|
|
72459
|
+
const out = /* @__PURE__ */ new Map();
|
|
72460
|
+
for (const turn of this._activeTurns) {
|
|
72461
|
+
if (turn.convId && (turn.groupId ? this._isNonDmConversation(turn.convId) : !this._isOwnDmConversation(turn.convId))) continue;
|
|
72462
|
+
const gid = this._turnGroup(turn);
|
|
72463
|
+
const key = people?.keyOf(turn.convId, gid) ?? (gid ? `g:${gid}` : `c:${turn.convId}`);
|
|
72464
|
+
if (!out.has(key)) out.set(key, turn);
|
|
72465
|
+
}
|
|
72466
|
+
return out;
|
|
72467
|
+
}
|
|
72468
|
+
/**
|
|
72469
|
+
* The person an untargeted owner message is for (#1418), in order:
|
|
72470
|
+
*
|
|
72471
|
+
* 1. the turn this call chain belongs to — always, and only, that
|
|
72472
|
+
* conversation, reached on the group its message decrypted under. A turn
|
|
72473
|
+
* never borrows another conversation's turn: one it cannot place fails
|
|
72474
|
+
* closed to its own conversation. Work the turn left running (a timer, a
|
|
72475
|
+
* dispatch orphaned by the turn budget) stays with that person for
|
|
72476
|
+
* `PERSON_INVOLVED_WINDOW_MS` after the turn, then is proactive (4);
|
|
72477
|
+
* 2. with no turn context (a skill's HTTP call), the one person with a turn
|
|
72478
|
+
* in progress;
|
|
72479
|
+
* 3. the last inbound 1:1 message, if it is recent — a reply produced in
|
|
72480
|
+
* response to it;
|
|
72481
|
+
* 4. otherwise the content is proactive: the PRIMARY conversation's person.
|
|
72482
|
+
*/
|
|
72483
|
+
_involvedPerson() {
|
|
72484
|
+
const person = (convId, groupId, reason) => ({
|
|
72485
|
+
convId,
|
|
72486
|
+
groupId: groupId ?? this._attestedGroupOf(convId) ?? (convId ? this._sessionGroupIds.get(convId) : void 0),
|
|
72487
|
+
reason
|
|
72488
|
+
});
|
|
72489
|
+
const turn = this._currentTurn();
|
|
72490
|
+
if (turn && turn !== "expired") {
|
|
72491
|
+
return person(turn.convId ?? this._conversationOfGroup(turn.groupId), turn.groupId, turn.ended ? "outlived-turn" : "turn");
|
|
72492
|
+
}
|
|
72493
|
+
if (turn === "expired") return this._primaryPerson();
|
|
72494
|
+
const active = this._activeTurnPeople();
|
|
72495
|
+
if (active.size === 1) {
|
|
72496
|
+
const [only] = active.values();
|
|
72497
|
+
return person(only.convId ?? this._conversationOfGroup(only.groupId), only.groupId, "active-turn");
|
|
72498
|
+
}
|
|
72499
|
+
const last = this._lastInboundDm;
|
|
72500
|
+
if (active.size === 0 && last && Date.now() - last.at < PERSON_INVOLVED_WINDOW_MS) {
|
|
72501
|
+
return person(last.convId ?? this._conversationOfGroup(last.groupId), last.groupId, "last-inbound");
|
|
72502
|
+
}
|
|
72503
|
+
return this._primaryPerson();
|
|
72504
|
+
}
|
|
72505
|
+
/** The PRIMARY conversation's person — where proactive content goes. */
|
|
72506
|
+
_primaryPerson() {
|
|
72507
|
+
const primary = this._primaryConversationId || this._persisted?.primaryConversationId || void 0;
|
|
72508
|
+
const primaryGroup = (primary ? this._sessionGroupIds.get(primary) : void 0) ?? this._persisted?.groupId;
|
|
72509
|
+
return {
|
|
72510
|
+
convId: primary,
|
|
72511
|
+
groupId: primaryGroup ?? this._attestedGroupOf(primary),
|
|
72512
|
+
reason: "primary"
|
|
72513
|
+
};
|
|
72514
|
+
}
|
|
72515
|
+
/**
|
|
72516
|
+
* #1418 — would an untargeted owner send right now have to GUESS between
|
|
72517
|
+
* people? True only with no turn context while two or more people have a
|
|
72518
|
+
* turn in progress. The local HTTP API refuses such a request (409) and
|
|
72519
|
+
* asks for a conversation instead of picking one.
|
|
72520
|
+
*/
|
|
72521
|
+
isUntargetedOwnerAmbiguous(options) {
|
|
72522
|
+
if (options?.conversationId !== void 0 || options?.audience === "everyone") return false;
|
|
72523
|
+
if (this._currentTurn()) return false;
|
|
72524
|
+
if (!this._isMultiPerson()) return false;
|
|
72525
|
+
return this._activeTurnPeople().size > 1;
|
|
72526
|
+
}
|
|
72527
|
+
/**
|
|
72528
|
+
* Who an UNTARGETED owner send reaches, or `null` for "every session, as
|
|
72529
|
+
* before". `null` when the caller chose `audience: "everyone"`, and when the
|
|
72530
|
+
* agent has one person (or cannot tell how many) — nothing to choose
|
|
72531
|
+
* between, so its recipients are exactly what they always were.
|
|
72532
|
+
*/
|
|
72533
|
+
_untargetedAudience(options) {
|
|
72534
|
+
if (options?.conversationId !== void 0) return null;
|
|
72535
|
+
if (options?.audience === "everyone") return null;
|
|
72536
|
+
if (!this._isMultiPerson()) return null;
|
|
72537
|
+
return this._involvedPerson();
|
|
72538
|
+
}
|
|
72539
|
+
/** A stable name for who an untargeted owner send reaches right now, or undefined when that is "everyone, as before". */
|
|
72540
|
+
_audienceTag(options) {
|
|
72541
|
+
if (options?.audience === "everyone") return "everyone";
|
|
72542
|
+
const person = this._untargetedAudience(options);
|
|
72543
|
+
return person ? `person:${person.groupId ?? person.convId ?? ""}` : void 0;
|
|
72544
|
+
}
|
|
72545
|
+
/** Does conversation `convId` belong to `person`? A conversation nothing ties to them fails closed. */
|
|
72546
|
+
_isPersonsConversation(person, convId) {
|
|
72547
|
+
if (convId === person.convId) return true;
|
|
72548
|
+
const gid = this._sessionGroupIds.get(convId);
|
|
72549
|
+
if (gid !== void 0 && gid === person.groupId) return true;
|
|
72550
|
+
const people = this._dmPeople();
|
|
72551
|
+
const theirs = people?.keyOf(person.convId, person.groupId);
|
|
72552
|
+
return theirs !== void 0 && people.keyOf(convId, gid) === theirs;
|
|
72553
|
+
}
|
|
72554
|
+
/**
|
|
72555
|
+
* #1418: the Double Ratchet sessions an owner-bound FILE (attachment or
|
|
72556
|
+
* artifact) goes to, bucketed by the conversation its blob is uploaded
|
|
72557
|
+
* under. The blob is uploaded under a conversation of the person who gets
|
|
72558
|
+
* it — the backend only lets that conversation's participants download it —
|
|
72559
|
+
* so an explicit "everyone" uploads once per person.
|
|
72560
|
+
*/
|
|
72561
|
+
_ownerFileRecipients(routing) {
|
|
72562
|
+
const roomConvIds = /* @__PURE__ */ new Set();
|
|
72563
|
+
for (const room of Object.values(this._persisted?.rooms ?? {})) {
|
|
72564
|
+
for (const cid of room.conversationIds ?? []) roomConvIds.add(cid);
|
|
72565
|
+
}
|
|
72566
|
+
const live = [...this._sessions].filter(([convId, session]) => session.activated && !roomConvIds.has(convId)).map(([convId]) => convId);
|
|
72567
|
+
const person = routing?.conversationId !== void 0 ? { convId: routing.conversationId, groupId: this._sessionGroupIds.get(routing.conversationId), reason: "target" } : this._untargetedAudience(routing);
|
|
72568
|
+
if (person) {
|
|
72569
|
+
const convIds = live.filter((convId) => this._isPersonsConversation(person, convId));
|
|
72570
|
+
const uploadConvId = person.convId ?? convIds[0];
|
|
72571
|
+
return uploadConvId && convIds.length > 0 ? [{ uploadConvId, convIds }] : [];
|
|
72572
|
+
}
|
|
72573
|
+
if (live.length === 0) return [];
|
|
72574
|
+
if (!this._isMultiPerson()) {
|
|
72575
|
+
return [{ uploadConvId: this._primaryConversationId, convIds: live }];
|
|
72576
|
+
}
|
|
72577
|
+
const people = this._dmPeople();
|
|
72578
|
+
const buckets = /* @__PURE__ */ new Map();
|
|
72579
|
+
for (const convId of live) {
|
|
72580
|
+
const gid = this._sessionGroupIds.get(convId);
|
|
72581
|
+
const key = people?.keyOf(convId, gid) ?? gid ?? `c:${convId}`;
|
|
72582
|
+
buckets.set(key, [...buckets.get(key) ?? [], convId]);
|
|
72583
|
+
}
|
|
72584
|
+
return [...buckets.values()].map((convIds) => ({
|
|
72585
|
+
uploadConvId: convIds.includes(this._primaryConversationId) ? this._primaryConversationId : convIds[0],
|
|
72586
|
+
convIds
|
|
72587
|
+
}));
|
|
72588
|
+
}
|
|
72141
72589
|
/** The group a DM history entry belongs to (see the forms above). */
|
|
72142
72590
|
_dmEntryScope(entry, known) {
|
|
72143
72591
|
const t2 = entry.topicId ?? "";
|
|
@@ -72709,6 +73157,7 @@ ${text}`;
|
|
|
72709
73157
|
Promise.resolve().then(() => (init_openclaw_compat(), openclaw_compat_exports)).then(({ requestHeartbeatNow: requestHeartbeatNow2 }) => requestHeartbeatNow2({ reason: "channel-send" })).catch(() => {
|
|
72710
73158
|
});
|
|
72711
73159
|
const targetConvId = options?.conversationId;
|
|
73160
|
+
const audience = this._untargetedAudience(options);
|
|
72712
73161
|
const explicitTopicId = options?.topicId;
|
|
72713
73162
|
const targeted = targetConvId !== void 0;
|
|
72714
73163
|
const frameHistoryContexts = [];
|
|
@@ -72747,7 +73196,7 @@ ${text}`;
|
|
|
72747
73196
|
if (this._persisted?.mlsGroups && this._state === "ready" && this._ws) {
|
|
72748
73197
|
const targetSharedGid = targetConvId ? this._sessionGroupIds?.get(targetConvId) : void 0;
|
|
72749
73198
|
console.log(
|
|
72750
|
-
`[SecureChannel] send(): considering ${Object.keys(this._persisted.mlsGroups).length} shared group(s); targetConvId=${targetConvId ? targetConvId.slice(0, 8) : "(none \u2014
|
|
73199
|
+
`[SecureChannel] send(): considering ${Object.keys(this._persisted.mlsGroups).length} shared group(s); targetConvId=${targetConvId ? targetConvId.slice(0, 8) : audience ? `(none \u2014 person involved: ${audience.reason})` : "(none \u2014 everyone)"} targetSharedGid=${targetSharedGid ? targetSharedGid.slice(0, 8) : audience?.groupId ? audience.groupId.slice(0, 8) : "(none)"}`
|
|
72751
73200
|
);
|
|
72752
73201
|
const skipped = [];
|
|
72753
73202
|
for (const [gid, entry] of Object.entries(this._persisted.mlsGroups)) {
|
|
@@ -72755,6 +73204,10 @@ ${text}`;
|
|
|
72755
73204
|
skipped.push(`${gid.slice(0, 8)}:not-target`);
|
|
72756
73205
|
continue;
|
|
72757
73206
|
}
|
|
73207
|
+
if (audience && gid !== audience.groupId) {
|
|
73208
|
+
skipped.push(`${gid.slice(0, 8)}:not-involved`);
|
|
73209
|
+
continue;
|
|
73210
|
+
}
|
|
72758
73211
|
if (!entry.mlsGroupId) {
|
|
72759
73212
|
skipped.push(`${gid.slice(0, 8)}:no-mlsGroupId`);
|
|
72760
73213
|
continue;
|
|
@@ -72811,6 +73264,7 @@ ${text}`;
|
|
|
72811
73264
|
if (!session.activated) continue;
|
|
72812
73265
|
if (roomConvIds.has(convId)) continue;
|
|
72813
73266
|
if (targetConvId && convId !== targetConvId) continue;
|
|
73267
|
+
if (audience && !this._isPersonsConversation(audience, convId)) continue;
|
|
72814
73268
|
const convGroupId = this._sessionGroupIds?.get(convId);
|
|
72815
73269
|
if (convGroupId && sentSharedGroupIds.has(convGroupId)) {
|
|
72816
73270
|
sentCount++;
|
|
@@ -72929,6 +73383,7 @@ ${text}`;
|
|
|
72929
73383
|
if (this._persisted?.mlsConversations && this._state === "ready" && this._ws) {
|
|
72930
73384
|
for (const [mlsConvId, entry] of Object.entries(this._persisted.mlsConversations)) {
|
|
72931
73385
|
if (targetConvId && mlsConvId !== targetConvId) continue;
|
|
73386
|
+
if (audience && !this._isPersonsConversation(audience, mlsConvId)) continue;
|
|
72932
73387
|
if (this._sessions.has(mlsConvId)) continue;
|
|
72933
73388
|
if (roomConvIds.has(mlsConvId)) continue;
|
|
72934
73389
|
const mlsOnlyConvGroupId = this._sessionGroupIds?.get(mlsConvId);
|
|
@@ -73052,7 +73507,7 @@ ${text}`;
|
|
|
73052
73507
|
*/
|
|
73053
73508
|
sendActivitySpan(spanData) {
|
|
73054
73509
|
if (!this._ws || this._ws.readyState !== WebSocket.OPEN) return;
|
|
73055
|
-
const pluginVersion = true ? "0.23.
|
|
73510
|
+
const pluginVersion = true ? "0.23.52" : "0.0.0-dev";
|
|
73056
73511
|
const agentName = this.config.agentName ?? "Agent";
|
|
73057
73512
|
const resource = {
|
|
73058
73513
|
"service.name": "agentvault-agent",
|
|
@@ -73104,7 +73559,7 @@ ${text}`;
|
|
|
73104
73559
|
* Builds a structured envelope with decision metadata and sends it
|
|
73105
73560
|
* as a high-priority message. Returns the generated decision_id.
|
|
73106
73561
|
*/
|
|
73107
|
-
async sendDecisionRequest(request) {
|
|
73562
|
+
async sendDecisionRequest(request, routing) {
|
|
73108
73563
|
const decision_id = `dec_${randomUUID4().replace(/-/g, "").slice(0, 16)}`;
|
|
73109
73564
|
const payload = JSON.stringify({
|
|
73110
73565
|
type: "message",
|
|
@@ -73115,6 +73570,8 @@ ${text}`;
|
|
|
73115
73570
|
}
|
|
73116
73571
|
});
|
|
73117
73572
|
await this.send(payload, {
|
|
73573
|
+
conversationId: routing?.conversationId,
|
|
73574
|
+
audience: routing?.audience,
|
|
73118
73575
|
messageType: "decision_request",
|
|
73119
73576
|
priority: "high",
|
|
73120
73577
|
metadata: {
|
|
@@ -73521,6 +73978,7 @@ ${text}`;
|
|
|
73521
73978
|
const jwt = this._deviceJwt ?? this._persisted?.deviceJwt;
|
|
73522
73979
|
if (!jwt || !this._persisted) return false;
|
|
73523
73980
|
let rows;
|
|
73981
|
+
const reconcileStartedAt = Date.now();
|
|
73524
73982
|
try {
|
|
73525
73983
|
const res = await fetch(`${this.config.apiUrl}/api/v1/conversations`, {
|
|
73526
73984
|
headers: { Authorization: `Bearer ${jwt}` }
|
|
@@ -73549,6 +74007,19 @@ ${text}`;
|
|
|
73549
74007
|
}
|
|
73550
74008
|
this._sessionGroupIds = new Map(mine.map((r2) => [r2.id, r2.group_id]));
|
|
73551
74009
|
this._persisted.conversationGroupIds = Object.fromEntries(this._sessionGroupIds);
|
|
74010
|
+
{
|
|
74011
|
+
const convs = new Set(mine.map((r2) => r2.id));
|
|
74012
|
+
const groups = new Set(mine.map((r2) => r2.group_id));
|
|
74013
|
+
this._lastReconcile = { at: reconcileStartedAt, convs, groups };
|
|
74014
|
+
for (const [key, a2] of this._attestedInbound) {
|
|
74015
|
+
if (a2.at > reconcileStartedAt) continue;
|
|
74016
|
+
if (a2.convId && convs.has(a2.convId) || a2.groupId && groups.has(a2.groupId)) continue;
|
|
74017
|
+
this._attestedInbound.delete(key);
|
|
74018
|
+
}
|
|
74019
|
+
for (const [gid, at] of this._welcomedUnmapped) {
|
|
74020
|
+
if (at <= reconcileStartedAt) this._welcomedUnmapped.delete(gid);
|
|
74021
|
+
}
|
|
74022
|
+
}
|
|
73552
74023
|
const joined = mine.find((r2) => this._persisted.mlsGroups?.[r2.group_id]);
|
|
73553
74024
|
const primary = mine.find((r2) => r2.id === this._persisted.primaryConversationId) ?? joined ?? mine[0];
|
|
73554
74025
|
if (!mine.some((r2) => r2.id === this._persisted.primaryConversationId)) {
|
|
@@ -73742,7 +74213,7 @@ ${text}`;
|
|
|
73742
74213
|
}
|
|
73743
74214
|
this._heartbeatCallback = null;
|
|
73744
74215
|
}
|
|
73745
|
-
async sendStatusAlert(alert) {
|
|
74216
|
+
async sendStatusAlert(alert, routing) {
|
|
73746
74217
|
const priority = alert.severity === "error" || alert.severity === "critical" ? "high" : "normal";
|
|
73747
74218
|
const envelope = {
|
|
73748
74219
|
title: alert.title,
|
|
@@ -73756,52 +74227,61 @@ ${text}`;
|
|
|
73756
74227
|
await this.send(
|
|
73757
74228
|
JSON.stringify(envelope),
|
|
73758
74229
|
{
|
|
74230
|
+
conversationId: routing?.conversationId,
|
|
74231
|
+
audience: routing?.audience,
|
|
73759
74232
|
messageType: "status_alert",
|
|
73760
74233
|
priority,
|
|
73761
74234
|
metadata: { severity: alert.severity }
|
|
73762
74235
|
}
|
|
73763
74236
|
);
|
|
73764
74237
|
}
|
|
73765
|
-
async sendArtifact(artifact) {
|
|
74238
|
+
async sendArtifact(artifact, routing) {
|
|
73766
74239
|
if (this._state !== "ready" || this._sessions.size === 0 || !this._ws) {
|
|
73767
74240
|
throw new Error("Channel is not ready");
|
|
73768
74241
|
}
|
|
73769
|
-
const attachMeta = await this._uploadAttachment(artifact.filePath, this._primaryConversationId);
|
|
73770
|
-
const envelope = JSON.stringify({
|
|
73771
|
-
type: "artifact",
|
|
73772
|
-
blob_id: attachMeta.blobId,
|
|
73773
|
-
blob_url: attachMeta.blobUrl,
|
|
73774
|
-
filename: artifact.filename,
|
|
73775
|
-
mime_type: artifact.mimeType,
|
|
73776
|
-
size_bytes: attachMeta.size,
|
|
73777
|
-
description: artifact.description,
|
|
73778
|
-
attachment: attachMeta
|
|
73779
|
-
});
|
|
73780
74242
|
const messageGroupId = randomUUID4();
|
|
73781
74243
|
const pendingWsSends = [];
|
|
73782
|
-
|
|
73783
|
-
|
|
73784
|
-
|
|
73785
|
-
|
|
73786
|
-
|
|
73787
|
-
|
|
73788
|
-
|
|
73789
|
-
|
|
73790
|
-
|
|
73791
|
-
|
|
73792
|
-
|
|
73793
|
-
|
|
73794
|
-
|
|
73795
|
-
|
|
73796
|
-
|
|
73797
|
-
|
|
74244
|
+
const buckets = this._ownerFileRecipients(routing);
|
|
74245
|
+
if (buckets.length === 0) {
|
|
74246
|
+
console.warn("[SecureChannel] sendArtifact(): no live session for the person involved \u2014 nothing sent");
|
|
74247
|
+
throw new Error("No conversation is ready to receive this file");
|
|
74248
|
+
}
|
|
74249
|
+
for (const bucket of buckets) {
|
|
74250
|
+
const attachMeta = await this._uploadAttachment(artifact.filePath, bucket.uploadConvId);
|
|
74251
|
+
const envelope = JSON.stringify({
|
|
74252
|
+
type: "artifact",
|
|
74253
|
+
blob_id: attachMeta.blobId,
|
|
74254
|
+
blob_url: attachMeta.blobUrl,
|
|
74255
|
+
filename: artifact.filename,
|
|
74256
|
+
mime_type: artifact.mimeType,
|
|
74257
|
+
size_bytes: attachMeta.size,
|
|
74258
|
+
description: artifact.description,
|
|
74259
|
+
attachment: attachMeta
|
|
74260
|
+
});
|
|
74261
|
+
for (const convId of bucket.convIds) {
|
|
74262
|
+
const session = this._sessions.get(convId);
|
|
74263
|
+
const encrypted = session.ratchet.encrypt(envelope);
|
|
74264
|
+
const transport = encryptedMessageToTransport(encrypted);
|
|
74265
|
+
pendingWsSends.push(
|
|
74266
|
+
JSON.stringify({
|
|
74267
|
+
event: "message",
|
|
74268
|
+
data: {
|
|
74269
|
+
conversation_id: convId,
|
|
74270
|
+
header_blob: transport.header_blob,
|
|
74271
|
+
ciphertext: transport.ciphertext,
|
|
74272
|
+
message_group_id: messageGroupId,
|
|
74273
|
+
message_type: "artifact_share"
|
|
74274
|
+
}
|
|
74275
|
+
})
|
|
74276
|
+
);
|
|
74277
|
+
}
|
|
73798
74278
|
}
|
|
73799
74279
|
await this._persistState();
|
|
73800
74280
|
for (const frame of pendingWsSends) {
|
|
73801
74281
|
this._ws.send(frame);
|
|
73802
74282
|
}
|
|
73803
74283
|
}
|
|
73804
|
-
async sendActionConfirmation(confirmation) {
|
|
74284
|
+
async sendActionConfirmation(confirmation, routing) {
|
|
73805
74285
|
const envelope = {
|
|
73806
74286
|
type: "action_confirmation",
|
|
73807
74287
|
action: confirmation.action,
|
|
@@ -73812,6 +74292,8 @@ ${text}`;
|
|
|
73812
74292
|
await this.send(
|
|
73813
74293
|
JSON.stringify(envelope),
|
|
73814
74294
|
{
|
|
74295
|
+
conversationId: routing?.conversationId,
|
|
74296
|
+
audience: routing?.audience,
|
|
73815
74297
|
messageType: "action_confirmation",
|
|
73816
74298
|
metadata: { status: confirmation.status }
|
|
73817
74299
|
}
|
|
@@ -73917,9 +74399,23 @@ ${text}`;
|
|
|
73917
74399
|
} else {
|
|
73918
74400
|
return { ok: false, destination: { kind: "owner" }, error: "Unknown target kind", timestamp: ts };
|
|
73919
74401
|
}
|
|
74402
|
+
if (resolved.kind === "owner" && options?.refuseIfAmbiguous && this.isUntargetedOwnerAmbiguous(options)) {
|
|
74403
|
+
console.log(`[deliver] target=owner content=${content.type} result=REFUSED: ambiguous (several people mid-turn)`);
|
|
74404
|
+
return { ok: false, ambiguous: true, destination: resolved, error: AMBIGUOUS_OWNER_ERROR, timestamp: ts };
|
|
74405
|
+
}
|
|
73920
74406
|
let dedupeKey = null;
|
|
73921
74407
|
try {
|
|
73922
|
-
|
|
74408
|
+
let audienceTag;
|
|
74409
|
+
try {
|
|
74410
|
+
audienceTag = resolved.kind === "owner" && options?.conversationId === void 0 ? this._audienceTag(options) : void 0;
|
|
74411
|
+
} catch {
|
|
74412
|
+
audienceTag = void 0;
|
|
74413
|
+
}
|
|
74414
|
+
dedupeKey = outboundDedupeKey(
|
|
74415
|
+
resolved,
|
|
74416
|
+
content,
|
|
74417
|
+
audienceTag ? { ...options, conversationId: audienceTag } : options
|
|
74418
|
+
);
|
|
73923
74419
|
if (dedupeKey) {
|
|
73924
74420
|
const now = Date.now();
|
|
73925
74421
|
const recent = this._recentDeliveries ??= /* @__PURE__ */ new Map();
|
|
@@ -73939,6 +74435,10 @@ ${text}`;
|
|
|
73939
74435
|
}
|
|
73940
74436
|
try {
|
|
73941
74437
|
let decisionId;
|
|
74438
|
+
const ownerRouting = {
|
|
74439
|
+
conversationId: options?.conversationId,
|
|
74440
|
+
audience: options?.audience
|
|
74441
|
+
};
|
|
73942
74442
|
if (content.type === "text") {
|
|
73943
74443
|
if (resolved.kind === "room") {
|
|
73944
74444
|
await this.sendToRoom(resolved.id, content.text, {
|
|
@@ -73957,6 +74457,7 @@ ${text}`;
|
|
|
73957
74457
|
} else {
|
|
73958
74458
|
await this.send(content.text, {
|
|
73959
74459
|
conversationId: options?.conversationId,
|
|
74460
|
+
audience: options?.audience,
|
|
73960
74461
|
topicId: options?.topicId,
|
|
73961
74462
|
messageType: options?.metadata?.message_type,
|
|
73962
74463
|
priority: options?.priority,
|
|
@@ -73969,7 +74470,7 @@ ${text}`;
|
|
|
73969
74470
|
console.log(`[deliver] target=${resolved.kind}:${resolved.id} content=decision_request result=FAIL: ${err}`);
|
|
73970
74471
|
return { ok: false, destination: resolved, error: err, timestamp: ts };
|
|
73971
74472
|
}
|
|
73972
|
-
decisionId = await this.sendDecisionRequest(content.request);
|
|
74473
|
+
decisionId = await this.sendDecisionRequest(content.request, ownerRouting);
|
|
73973
74474
|
} else if (content.type === "status_alert") {
|
|
73974
74475
|
if (resolved.kind === "room") {
|
|
73975
74476
|
const envelope = {
|
|
@@ -73987,7 +74488,7 @@ ${text}`;
|
|
|
73987
74488
|
metadata: { severity: content.alert.severity }
|
|
73988
74489
|
});
|
|
73989
74490
|
} else if (resolved.kind === "owner") {
|
|
73990
|
-
await this.sendStatusAlert(content.alert);
|
|
74491
|
+
await this.sendStatusAlert(content.alert, ownerRouting);
|
|
73991
74492
|
} else {
|
|
73992
74493
|
return { ok: false, destination: resolved, error: "Status alerts cannot be sent to A2A targets", timestamp: ts };
|
|
73993
74494
|
}
|
|
@@ -73995,7 +74496,7 @@ ${text}`;
|
|
|
73995
74496
|
if (resolved.kind === "room") {
|
|
73996
74497
|
await this.sendActionConfirmationToRoom(resolved.id, content.confirmation);
|
|
73997
74498
|
} else if (resolved.kind === "owner") {
|
|
73998
|
-
await this.sendActionConfirmation(content.confirmation);
|
|
74499
|
+
await this.sendActionConfirmation(content.confirmation, ownerRouting);
|
|
73999
74500
|
} else {
|
|
74000
74501
|
return { ok: false, destination: resolved, error: "Action confirmations cannot be sent to A2A targets", timestamp: ts };
|
|
74001
74502
|
}
|
|
@@ -74003,13 +74504,14 @@ ${text}`;
|
|
|
74003
74504
|
if (resolved.kind !== "owner") {
|
|
74004
74505
|
return { ok: false, destination: resolved, error: "Artifacts can only be sent to owner", timestamp: ts };
|
|
74005
74506
|
}
|
|
74006
|
-
await this.sendArtifact(content.artifact);
|
|
74507
|
+
await this.sendArtifact(content.artifact, ownerRouting);
|
|
74007
74508
|
} else if (content.type === "attachment") {
|
|
74008
74509
|
if (resolved.kind !== "owner") {
|
|
74009
74510
|
return { ok: false, destination: resolved, error: "Attachments can only be sent to owner", timestamp: ts };
|
|
74010
74511
|
}
|
|
74011
74512
|
await this.sendWithAttachment(content.text, content.filePath, {
|
|
74012
|
-
topicId: options?.topicId
|
|
74513
|
+
topicId: options?.topicId,
|
|
74514
|
+
...ownerRouting
|
|
74013
74515
|
});
|
|
74014
74516
|
}
|
|
74015
74517
|
const targetLabel = resolved.kind === "owner" ? "owner" : `${resolved.kind}:${resolved.id?.slice(0, 8)}...`;
|
|
@@ -75182,7 +75684,7 @@ ${text}`;
|
|
|
75182
75684
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
75183
75685
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
75184
75686
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
75185
|
-
pluginVersion: true ? "0.23.
|
|
75687
|
+
pluginVersion: true ? "0.23.52" : "0.0.0-dev"
|
|
75186
75688
|
});
|
|
75187
75689
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
75188
75690
|
}
|
|
@@ -75510,7 +76012,7 @@ ${text}`;
|
|
|
75510
76012
|
agentVersion: this.config.agentVersion ?? "0.0.0",
|
|
75511
76013
|
// __AV_VERSION__ is injected by esbuild from package.json at build time.
|
|
75512
76014
|
// Falls back to "0.0.0-dev" in non-bundled contexts (tests).
|
|
75513
|
-
pluginVersion: true ? "0.23.
|
|
76015
|
+
pluginVersion: true ? "0.23.52" : "0.0.0-dev"
|
|
75514
76016
|
});
|
|
75515
76017
|
this._telemetryReporter.startAutoFlush(3e4);
|
|
75516
76018
|
}
|
|
@@ -76051,9 +76553,18 @@ ${text}`;
|
|
|
76051
76553
|
messageType,
|
|
76052
76554
|
{ groupId: dmGroupId, conversationId: convId }
|
|
76053
76555
|
);
|
|
76556
|
+
const dmConvId = convId ?? this._conversationOfGroup(dmGroupId);
|
|
76557
|
+
this._noteInboundDm(dmConvId, dmGroupId, { createdAt: data.created_at, senderDeviceId });
|
|
76558
|
+
this._reconcileForUnmappedGroup(dmGroupId);
|
|
76054
76559
|
const metadata = {
|
|
76055
76560
|
messageId: data.message_id ?? `mls_${Date.now()}`,
|
|
76056
|
-
|
|
76561
|
+
// A frame on a KNOWN group that no conversation maps yet is not the
|
|
76562
|
+
// primary person's: leave the conversation unnamed rather than hand
|
|
76563
|
+
// the reply to someone else; `conversationGroupId` still places it.
|
|
76564
|
+
conversationId: dmConvId ?? (dmGroupId ? void 0 : this._primaryConversationId),
|
|
76565
|
+
// #1418: the group this message decrypted under — attested, so a turn
|
|
76566
|
+
// answers here even when the local map is stale.
|
|
76567
|
+
conversationGroupId: dmGroupId,
|
|
76057
76568
|
timestamp: data.created_at ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
76058
76569
|
topicId,
|
|
76059
76570
|
// #621: positive attestation that this decrypted under the OWNER'S 1:1
|
|
@@ -76308,6 +76819,13 @@ ${messageText}`;
|
|
|
76308
76819
|
// envelope text before the fold; `emitText` is the folded copy.
|
|
76309
76820
|
caption: messageText
|
|
76310
76821
|
};
|
|
76822
|
+
if (!roomId) {
|
|
76823
|
+
this._noteInboundDm(convId, void 0, {
|
|
76824
|
+
createdAt: msgData.created_at,
|
|
76825
|
+
senderDeviceId: msgData.sender_device_id
|
|
76826
|
+
});
|
|
76827
|
+
this._reconcileForUnmappedConversation(convId);
|
|
76828
|
+
}
|
|
76311
76829
|
this.emit("message", emitText, metadata);
|
|
76312
76830
|
Promise.resolve(this.config.onMessage?.(emitText, metadata)).catch((err) => {
|
|
76313
76831
|
console.error("[SecureChannel] onMessage callback error:", err);
|
|
@@ -76456,34 +76974,41 @@ ${baseText}`;
|
|
|
76456
76974
|
if (this._state !== "ready" || this._sessions.size === 0 || !this._ws) {
|
|
76457
76975
|
throw new Error("Channel is not ready");
|
|
76458
76976
|
}
|
|
76459
|
-
const attachMeta = await this._uploadAttachment(filePath, this._primaryConversationId);
|
|
76460
76977
|
const messageGroupId = randomUUID4();
|
|
76461
76978
|
const pendingWsSends = [];
|
|
76462
76979
|
const frameHistoryContexts = [];
|
|
76463
|
-
|
|
76464
|
-
|
|
76465
|
-
|
|
76466
|
-
|
|
76467
|
-
|
|
76468
|
-
|
|
76469
|
-
|
|
76470
|
-
|
|
76471
|
-
|
|
76472
|
-
|
|
76473
|
-
|
|
76474
|
-
|
|
76475
|
-
|
|
76476
|
-
|
|
76477
|
-
|
|
76478
|
-
|
|
76479
|
-
|
|
76480
|
-
|
|
76481
|
-
|
|
76482
|
-
|
|
76483
|
-
|
|
76484
|
-
|
|
76485
|
-
|
|
76486
|
-
|
|
76980
|
+
const buckets = this._ownerFileRecipients(options);
|
|
76981
|
+
if (buckets.length === 0) {
|
|
76982
|
+
console.warn("[SecureChannel] sendWithAttachment(): no live session for the person involved \u2014 nothing sent");
|
|
76983
|
+
throw new Error("No conversation is ready to receive this file");
|
|
76984
|
+
}
|
|
76985
|
+
for (const bucket of buckets) {
|
|
76986
|
+
const attachMeta = await this._uploadAttachment(filePath, bucket.uploadConvId);
|
|
76987
|
+
for (const convId of bucket.convIds) {
|
|
76988
|
+
const session = this._sessions.get(convId);
|
|
76989
|
+
const topicId = this._topicForFrame(void 0, convId, options?.topicId, false, false);
|
|
76990
|
+
const envelope = JSON.stringify({
|
|
76991
|
+
type: "message",
|
|
76992
|
+
text: plaintext,
|
|
76993
|
+
topicId,
|
|
76994
|
+
attachment: attachMeta
|
|
76995
|
+
});
|
|
76996
|
+
const encrypted = session.ratchet.encrypt(envelope);
|
|
76997
|
+
const transport = encryptedMessageToTransport(encrypted);
|
|
76998
|
+
pendingWsSends.push(
|
|
76999
|
+
JSON.stringify({
|
|
77000
|
+
event: "message",
|
|
77001
|
+
data: {
|
|
77002
|
+
conversation_id: convId,
|
|
77003
|
+
header_blob: transport.header_blob,
|
|
77004
|
+
ciphertext: transport.ciphertext,
|
|
77005
|
+
message_group_id: messageGroupId,
|
|
77006
|
+
topic_id: topicId
|
|
77007
|
+
}
|
|
77008
|
+
})
|
|
77009
|
+
);
|
|
77010
|
+
frameHistoryContexts.push(this._dmHistoryContext(topicId, void 0, convId));
|
|
77011
|
+
}
|
|
76487
77012
|
}
|
|
76488
77013
|
await this._persistState();
|
|
76489
77014
|
let deliveredFrames = 0;
|
|
@@ -76643,10 +77168,15 @@ ${baseText}`;
|
|
|
76643
77168
|
`[SecureChannel] New owner device linked: ${event.owner_device_id.slice(0, 8)}...`
|
|
76644
77169
|
);
|
|
76645
77170
|
try {
|
|
77171
|
+
if (event.group_id && !this._sessionGroupIds.has(event.conversation_id)) {
|
|
77172
|
+
this._sessionGroupIds.set(event.conversation_id, event.group_id);
|
|
77173
|
+
this._persisted.conversationGroupIds = Object.fromEntries(this._sessionGroupIds);
|
|
77174
|
+
}
|
|
76646
77175
|
if (!event.owner_identity_public_key) {
|
|
76647
77176
|
console.error(
|
|
76648
77177
|
`[SecureChannel] device_linked event missing owner keys for conv ${event.conversation_id.slice(0, 8)}...`
|
|
76649
77178
|
);
|
|
77179
|
+
await this._persistState();
|
|
76650
77180
|
return;
|
|
76651
77181
|
}
|
|
76652
77182
|
const identity = this._persisted.identityKeypair;
|
|
@@ -76681,10 +77211,6 @@ ${baseText}`;
|
|
|
76681
77211
|
if (event.owner_hub_id) {
|
|
76682
77212
|
this._persisted.ownerHubId = event.owner_hub_id;
|
|
76683
77213
|
}
|
|
76684
|
-
if (event.group_id && !this._sessionGroupIds.has(event.conversation_id)) {
|
|
76685
|
-
this._sessionGroupIds.set(event.conversation_id, event.group_id);
|
|
76686
|
-
this._persisted.conversationGroupIds = Object.fromEntries(this._sessionGroupIds);
|
|
76687
|
-
}
|
|
76688
77214
|
await this._persistState();
|
|
76689
77215
|
console.log(
|
|
76690
77216
|
`[SecureChannel] Session initialized for device ${event.owner_device_id.slice(0, 8)}... (conv ${event.conversation_id.slice(0, 8)}...)`
|
|
@@ -78354,6 +78880,10 @@ ${baseText}`;
|
|
|
78354
78880
|
await this._persistState();
|
|
78355
78881
|
}
|
|
78356
78882
|
console.log(`[SecureChannel] Joined shared 1:1 MLS group for group ${conversationGroupId.slice(0, 8)} via Welcome (epoch=${mgr.epoch})`);
|
|
78883
|
+
if (!this._isMappedGroup(conversationGroupId)) {
|
|
78884
|
+
this._welcomedUnmapped.set(conversationGroupId, Date.now());
|
|
78885
|
+
}
|
|
78886
|
+
this._reconcileForUnmappedGroup(conversationGroupId);
|
|
78357
78887
|
await this._flushMlsHold(conversationGroupId);
|
|
78358
78888
|
return;
|
|
78359
78889
|
}
|
|
@@ -78995,6 +79525,7 @@ ${baseText}`;
|
|
|
78995
79525
|
ownerDm1to1: true,
|
|
78996
79526
|
...decisionReply ? { messageType: "decision_response", decision: decisionReply } : {}
|
|
78997
79527
|
};
|
|
79528
|
+
this._noteInboundDm(msg.conversation_id, void 0, { createdAt: msg.created_at, senderDeviceId: msg.sender_device_id });
|
|
78998
79529
|
this.emit("message", messageText, metadata);
|
|
78999
79530
|
Promise.resolve(this.config.onMessage?.(messageText, metadata)).catch((err) => {
|
|
79000
79531
|
console.error("[SecureChannel] onMessage callback error:", err);
|
|
@@ -79601,6 +80132,7 @@ ${baseText}`;
|
|
|
79601
80132
|
ownerDm1to1: true,
|
|
79602
80133
|
...decisionReply ? { messageType: "decision_response", decision: decisionReply } : {}
|
|
79603
80134
|
};
|
|
80135
|
+
this._noteInboundDm(msg.conversation_id, void 0, { createdAt: msg.created_at, senderDeviceId: msg.sender_device_id });
|
|
79604
80136
|
this.emit("message", messageText, metadata);
|
|
79605
80137
|
Promise.resolve(this.config.onMessage?.(messageText, metadata)).catch((err) => {
|
|
79606
80138
|
console.error("[SecureChannel] onMessage callback error:", err);
|
|
@@ -79921,6 +80453,7 @@ ${baseText}`;
|
|
|
79921
80453
|
ownerDm1to1: true,
|
|
79922
80454
|
...decisionReply ? { messageType: "decision_response", decision: decisionReply } : {}
|
|
79923
80455
|
};
|
|
80456
|
+
this._noteInboundDm(msg.conversation_id, void 0, { createdAt: msg.created_at, senderDeviceId: msg.sender_device_id });
|
|
79924
80457
|
this.emit("message", messageText, metadata);
|
|
79925
80458
|
Promise.resolve(this.config.onMessage?.(messageText, metadata)).catch((err) => {
|
|
79926
80459
|
console.error("[SecureChannel] onMessage callback error:", err);
|
|
@@ -80941,7 +81474,7 @@ ${actionsText}`);
|
|
|
80941
81474
|
"use strict";
|
|
80942
81475
|
init_llm_response_parser();
|
|
80943
81476
|
init_llm_cost();
|
|
80944
|
-
traceStore = new
|
|
81477
|
+
traceStore = new AsyncLocalStorage2();
|
|
80945
81478
|
}
|
|
80946
81479
|
});
|
|
80947
81480
|
init_tool_audit = __esm2({
|
|
@@ -101689,7 +102222,7 @@ data:
|
|
|
101689
102222
|
await init_skill_telemetry();
|
|
101690
102223
|
await init_policy_enforcer();
|
|
101691
102224
|
init_room_protocol();
|
|
101692
|
-
VERSION = true ? "0.23.
|
|
102225
|
+
VERSION = true ? "0.23.52" : "0.0.0-dev";
|
|
101693
102226
|
}
|
|
101694
102227
|
});
|
|
101695
102228
|
await init_index();
|
|
@@ -102341,7 +102874,7 @@ var init_cli = __esm({
|
|
|
102341
102874
|
"use strict";
|
|
102342
102875
|
await init_dist();
|
|
102343
102876
|
init_driver();
|
|
102344
|
-
VERSION2 = "0.1.
|
|
102877
|
+
VERSION2 = "0.1.7";
|
|
102345
102878
|
HELP = `AgentVault OpenAI Bridge ${VERSION2}
|
|
102346
102879
|
Usage: AV_AGENT_NAME=<name> agentvault-openai-bridge <command>
|
|
102347
102880
|
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"name": "@agentvault/openai-bridge", "version": "0.1.
|
|
2
|
+
"name": "@agentvault/openai-bridge", "version": "0.1.7", "type": "module",
|
|
3
3
|
"description": "AgentVault OpenAI Codex bridge for encrypted owner messages and rooms",
|
|
4
4
|
"main": "dist/index.js", "types": "dist/index.d.ts",
|
|
5
5
|
"bin": { "agentvault-openai-bridge": "dist/index.js" },
|