@anuma/sdk 10.4.1 → 10.4.3
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/expo/index.cjs +31 -6
- package/dist/expo/index.mjs +31 -6
- package/dist/react/index.cjs +31 -6
- package/dist/react/index.mjs +31 -6
- package/dist/server/index.cjs +27 -5
- package/dist/server/index.mjs +27 -5
- package/package.json +1 -1
package/dist/expo/index.cjs
CHANGED
|
@@ -1846,10 +1846,13 @@ async function refreshNotionAccessToken(params) {
|
|
|
1846
1846
|
var HEADER = "[Tool Execution Results]\n\n";
|
|
1847
1847
|
var FOOTER = "\n\nBased on these results, continue with the task.";
|
|
1848
1848
|
var ENTRY_SEPARATOR = "\n\n";
|
|
1849
|
-
var
|
|
1849
|
+
var TRUNCATION_MARKER_HEAD = "... (tool output truncated, ";
|
|
1850
|
+
var TRUNCATION_MARKER_TAIL = " characters omitted)";
|
|
1850
1851
|
var MAX_PERSISTED_TOOL_RESULT_CHARS = 1e5;
|
|
1851
1852
|
function buildToolResultContent(results) {
|
|
1852
|
-
const entries = results.map(
|
|
1853
|
+
const entries = results.map(
|
|
1854
|
+
(r) => `Tool "${r.name}" returned: ${JSON.stringify(r.result)}`.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029")
|
|
1855
|
+
);
|
|
1853
1856
|
const framing = HEADER.length + FOOTER.length + ENTRY_SEPARATOR.length * Math.max(0, entries.length - 1);
|
|
1854
1857
|
const summary = capEntries(entries, MAX_PERSISTED_TOOL_RESULT_CHARS - framing).join(
|
|
1855
1858
|
ENTRY_SEPARATOR
|
|
@@ -1880,7 +1883,13 @@ function truncateEntry(entry, allowance) {
|
|
|
1880
1883
|
function truncationMarker(omitted) {
|
|
1881
1884
|
return `
|
|
1882
1885
|
|
|
1883
|
-
|
|
1886
|
+
${TRUNCATION_MARKER_HEAD}${omitted}${TRUNCATION_MARKER_TAIL}`;
|
|
1887
|
+
}
|
|
1888
|
+
function isTruncationMarkerLine(line) {
|
|
1889
|
+
const head = TRUNCATION_MARKER_HEAD;
|
|
1890
|
+
const tail = TRUNCATION_MARKER_TAIL;
|
|
1891
|
+
if (!line.startsWith(head) || !line.endsWith(tail)) return false;
|
|
1892
|
+
return /^\d+$/.test(line.slice(head.length, line.length - tail.length));
|
|
1884
1893
|
}
|
|
1885
1894
|
|
|
1886
1895
|
// src/lib/tools/toolCatalog.ts
|
|
@@ -1986,7 +1995,7 @@ ${neutralised}
|
|
|
1986
1995
|
// src/lib/chat/toolResults.ts
|
|
1987
1996
|
var TOOL_RESULTS_PREFIX = "[Tool Execution Results]";
|
|
1988
1997
|
var DISPLAY_CARD_PLACEHOLDER = "[displayed a card to the user with the tool result]";
|
|
1989
|
-
var TOOL_LINE = /^Tool "([^"]+)" returned: (
|
|
1998
|
+
var TOOL_LINE = /^Tool "([^"]+)" returned: ([\s\S]*)$/;
|
|
1990
1999
|
var TOOL_RESULT_ORIGIN = "tool_result";
|
|
1991
2000
|
function isToolResultsRow(row) {
|
|
1992
2001
|
if (row.origin === TOOL_RESULT_ORIGIN) return true;
|
|
@@ -2004,8 +2013,7 @@ function parseToolResultSegments(content) {
|
|
|
2004
2013
|
continue;
|
|
2005
2014
|
}
|
|
2006
2015
|
const current = segments[segments.length - 1];
|
|
2007
|
-
if (!current || line
|
|
2008
|
-
if (line === TOOL_RESULTS_PREFIX) continue;
|
|
2016
|
+
if (!current || !isTruncationMarkerLine(line)) continue;
|
|
2009
2017
|
current.line = `${current.line}
|
|
2010
2018
|
${line}`;
|
|
2011
2019
|
}
|
|
@@ -2157,6 +2165,7 @@ function notifyKeyAvailable(address) {
|
|
|
2157
2165
|
}
|
|
2158
2166
|
}
|
|
2159
2167
|
var keyPairStore = /* @__PURE__ */ new Map();
|
|
2168
|
+
var pendingKeyPairRequests = /* @__PURE__ */ new Map();
|
|
2160
2169
|
function getStoredKeyByVersion(address, version) {
|
|
2161
2170
|
const keys = encryptionKeyStore.get(address);
|
|
2162
2171
|
if (!keys) return null;
|
|
@@ -2179,6 +2188,7 @@ function clearAllEncryptionState() {
|
|
|
2179
2188
|
cryptoKeyCache.clear();
|
|
2180
2189
|
keyAvailableCallbacks.clear();
|
|
2181
2190
|
pendingKeyRequests.clear();
|
|
2191
|
+
pendingKeyPairRequests.clear();
|
|
2182
2192
|
pendingCandidateDerives.clear();
|
|
2183
2193
|
refreshCandidatesByAddress.clear();
|
|
2184
2194
|
divergentDeriveAddresses.clear();
|
|
@@ -2795,6 +2805,21 @@ async function requestKeyPair(walletAddress, signMessage, embeddedWalletSigner)
|
|
|
2795
2805
|
if (existingKeyPair) {
|
|
2796
2806
|
return;
|
|
2797
2807
|
}
|
|
2808
|
+
const pending = pendingKeyPairRequests.get(walletAddress);
|
|
2809
|
+
if (pending) {
|
|
2810
|
+
return pending;
|
|
2811
|
+
}
|
|
2812
|
+
const promise = loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner);
|
|
2813
|
+
pendingKeyPairRequests.set(walletAddress, promise);
|
|
2814
|
+
try {
|
|
2815
|
+
await promise;
|
|
2816
|
+
} finally {
|
|
2817
|
+
if (pendingKeyPairRequests.get(walletAddress) === promise) {
|
|
2818
|
+
pendingKeyPairRequests.delete(walletAddress);
|
|
2819
|
+
}
|
|
2820
|
+
}
|
|
2821
|
+
}
|
|
2822
|
+
async function loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner) {
|
|
2798
2823
|
const startEpoch = sessionEpoch;
|
|
2799
2824
|
try {
|
|
2800
2825
|
const persistedKeyPair = await loadPersistedKeyPair(walletAddress);
|
package/dist/expo/index.mjs
CHANGED
|
@@ -210,10 +210,13 @@ async function refreshNotionAccessToken(params) {
|
|
|
210
210
|
var HEADER = "[Tool Execution Results]\n\n";
|
|
211
211
|
var FOOTER = "\n\nBased on these results, continue with the task.";
|
|
212
212
|
var ENTRY_SEPARATOR = "\n\n";
|
|
213
|
-
var
|
|
213
|
+
var TRUNCATION_MARKER_HEAD = "... (tool output truncated, ";
|
|
214
|
+
var TRUNCATION_MARKER_TAIL = " characters omitted)";
|
|
214
215
|
var MAX_PERSISTED_TOOL_RESULT_CHARS = 1e5;
|
|
215
216
|
function buildToolResultContent(results) {
|
|
216
|
-
const entries = results.map(
|
|
217
|
+
const entries = results.map(
|
|
218
|
+
(r) => `Tool "${r.name}" returned: ${JSON.stringify(r.result)}`.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029")
|
|
219
|
+
);
|
|
217
220
|
const framing = HEADER.length + FOOTER.length + ENTRY_SEPARATOR.length * Math.max(0, entries.length - 1);
|
|
218
221
|
const summary = capEntries(entries, MAX_PERSISTED_TOOL_RESULT_CHARS - framing).join(
|
|
219
222
|
ENTRY_SEPARATOR
|
|
@@ -244,7 +247,13 @@ function truncateEntry(entry, allowance) {
|
|
|
244
247
|
function truncationMarker(omitted) {
|
|
245
248
|
return `
|
|
246
249
|
|
|
247
|
-
|
|
250
|
+
${TRUNCATION_MARKER_HEAD}${omitted}${TRUNCATION_MARKER_TAIL}`;
|
|
251
|
+
}
|
|
252
|
+
function isTruncationMarkerLine(line) {
|
|
253
|
+
const head = TRUNCATION_MARKER_HEAD;
|
|
254
|
+
const tail = TRUNCATION_MARKER_TAIL;
|
|
255
|
+
if (!line.startsWith(head) || !line.endsWith(tail)) return false;
|
|
256
|
+
return /^\d+$/.test(line.slice(head.length, line.length - tail.length));
|
|
248
257
|
}
|
|
249
258
|
|
|
250
259
|
// src/lib/tools/toolCatalog.ts
|
|
@@ -350,7 +359,7 @@ ${neutralised}
|
|
|
350
359
|
// src/lib/chat/toolResults.ts
|
|
351
360
|
var TOOL_RESULTS_PREFIX = "[Tool Execution Results]";
|
|
352
361
|
var DISPLAY_CARD_PLACEHOLDER = "[displayed a card to the user with the tool result]";
|
|
353
|
-
var TOOL_LINE = /^Tool "([^"]+)" returned: (
|
|
362
|
+
var TOOL_LINE = /^Tool "([^"]+)" returned: ([\s\S]*)$/;
|
|
354
363
|
var TOOL_RESULT_ORIGIN = "tool_result";
|
|
355
364
|
function isToolResultsRow(row) {
|
|
356
365
|
if (row.origin === TOOL_RESULT_ORIGIN) return true;
|
|
@@ -368,8 +377,7 @@ function parseToolResultSegments(content) {
|
|
|
368
377
|
continue;
|
|
369
378
|
}
|
|
370
379
|
const current = segments[segments.length - 1];
|
|
371
|
-
if (!current || line
|
|
372
|
-
if (line === TOOL_RESULTS_PREFIX) continue;
|
|
380
|
+
if (!current || !isTruncationMarkerLine(line)) continue;
|
|
373
381
|
current.line = `${current.line}
|
|
374
382
|
${line}`;
|
|
375
383
|
}
|
|
@@ -520,6 +528,7 @@ function notifyKeyAvailable(address) {
|
|
|
520
528
|
}
|
|
521
529
|
}
|
|
522
530
|
var keyPairStore = /* @__PURE__ */ new Map();
|
|
531
|
+
var pendingKeyPairRequests = /* @__PURE__ */ new Map();
|
|
523
532
|
function getStoredKeyByVersion(address, version) {
|
|
524
533
|
const keys = encryptionKeyStore.get(address);
|
|
525
534
|
if (!keys) return null;
|
|
@@ -542,6 +551,7 @@ function clearAllEncryptionState() {
|
|
|
542
551
|
cryptoKeyCache.clear();
|
|
543
552
|
keyAvailableCallbacks.clear();
|
|
544
553
|
pendingKeyRequests.clear();
|
|
554
|
+
pendingKeyPairRequests.clear();
|
|
545
555
|
pendingCandidateDerives.clear();
|
|
546
556
|
refreshCandidatesByAddress.clear();
|
|
547
557
|
divergentDeriveAddresses.clear();
|
|
@@ -1158,6 +1168,21 @@ async function requestKeyPair(walletAddress, signMessage, embeddedWalletSigner)
|
|
|
1158
1168
|
if (existingKeyPair) {
|
|
1159
1169
|
return;
|
|
1160
1170
|
}
|
|
1171
|
+
const pending = pendingKeyPairRequests.get(walletAddress);
|
|
1172
|
+
if (pending) {
|
|
1173
|
+
return pending;
|
|
1174
|
+
}
|
|
1175
|
+
const promise = loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner);
|
|
1176
|
+
pendingKeyPairRequests.set(walletAddress, promise);
|
|
1177
|
+
try {
|
|
1178
|
+
await promise;
|
|
1179
|
+
} finally {
|
|
1180
|
+
if (pendingKeyPairRequests.get(walletAddress) === promise) {
|
|
1181
|
+
pendingKeyPairRequests.delete(walletAddress);
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
async function loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner) {
|
|
1161
1186
|
const startEpoch = sessionEpoch;
|
|
1162
1187
|
try {
|
|
1163
1188
|
const persistedKeyPair = await loadPersistedKeyPair(walletAddress);
|
package/dist/react/index.cjs
CHANGED
|
@@ -1924,6 +1924,7 @@ function notifyKeyAvailable(address) {
|
|
|
1924
1924
|
}
|
|
1925
1925
|
}
|
|
1926
1926
|
var keyPairStore = /* @__PURE__ */ new Map();
|
|
1927
|
+
var pendingKeyPairRequests = /* @__PURE__ */ new Map();
|
|
1927
1928
|
function getStoredKeyByVersion(address, version) {
|
|
1928
1929
|
const keys = encryptionKeyStore.get(address);
|
|
1929
1930
|
if (!keys) return null;
|
|
@@ -1946,6 +1947,7 @@ function clearAllEncryptionState() {
|
|
|
1946
1947
|
cryptoKeyCache.clear();
|
|
1947
1948
|
keyAvailableCallbacks.clear();
|
|
1948
1949
|
pendingKeyRequests.clear();
|
|
1950
|
+
pendingKeyPairRequests.clear();
|
|
1949
1951
|
pendingCandidateDerives.clear();
|
|
1950
1952
|
refreshCandidatesByAddress.clear();
|
|
1951
1953
|
divergentDeriveAddresses.clear();
|
|
@@ -2613,6 +2615,21 @@ async function requestKeyPair(walletAddress, signMessage, embeddedWalletSigner)
|
|
|
2613
2615
|
if (existingKeyPair) {
|
|
2614
2616
|
return;
|
|
2615
2617
|
}
|
|
2618
|
+
const pending = pendingKeyPairRequests.get(walletAddress);
|
|
2619
|
+
if (pending) {
|
|
2620
|
+
return pending;
|
|
2621
|
+
}
|
|
2622
|
+
const promise = loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner);
|
|
2623
|
+
pendingKeyPairRequests.set(walletAddress, promise);
|
|
2624
|
+
try {
|
|
2625
|
+
await promise;
|
|
2626
|
+
} finally {
|
|
2627
|
+
if (pendingKeyPairRequests.get(walletAddress) === promise) {
|
|
2628
|
+
pendingKeyPairRequests.delete(walletAddress);
|
|
2629
|
+
}
|
|
2630
|
+
}
|
|
2631
|
+
}
|
|
2632
|
+
async function loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner) {
|
|
2616
2633
|
const startEpoch = sessionEpoch;
|
|
2617
2634
|
try {
|
|
2618
2635
|
const persistedKeyPair = await loadPersistedKeyPair(walletAddress);
|
|
@@ -3321,10 +3338,13 @@ function getNotionMCPUrl() {
|
|
|
3321
3338
|
var HEADER = "[Tool Execution Results]\n\n";
|
|
3322
3339
|
var FOOTER = "\n\nBased on these results, continue with the task.";
|
|
3323
3340
|
var ENTRY_SEPARATOR = "\n\n";
|
|
3324
|
-
var
|
|
3341
|
+
var TRUNCATION_MARKER_HEAD = "... (tool output truncated, ";
|
|
3342
|
+
var TRUNCATION_MARKER_TAIL = " characters omitted)";
|
|
3325
3343
|
var MAX_PERSISTED_TOOL_RESULT_CHARS = 1e5;
|
|
3326
3344
|
function buildToolResultContent(results) {
|
|
3327
|
-
const entries = results.map(
|
|
3345
|
+
const entries = results.map(
|
|
3346
|
+
(r) => `Tool "${r.name}" returned: ${JSON.stringify(r.result)}`.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029")
|
|
3347
|
+
);
|
|
3328
3348
|
const framing = HEADER.length + FOOTER.length + ENTRY_SEPARATOR.length * Math.max(0, entries.length - 1);
|
|
3329
3349
|
const summary = capEntries(entries, MAX_PERSISTED_TOOL_RESULT_CHARS - framing).join(
|
|
3330
3350
|
ENTRY_SEPARATOR
|
|
@@ -3355,7 +3375,13 @@ function truncateEntry(entry, allowance) {
|
|
|
3355
3375
|
function truncationMarker(omitted) {
|
|
3356
3376
|
return `
|
|
3357
3377
|
|
|
3358
|
-
|
|
3378
|
+
${TRUNCATION_MARKER_HEAD}${omitted}${TRUNCATION_MARKER_TAIL}`;
|
|
3379
|
+
}
|
|
3380
|
+
function isTruncationMarkerLine(line) {
|
|
3381
|
+
const head = TRUNCATION_MARKER_HEAD;
|
|
3382
|
+
const tail = TRUNCATION_MARKER_TAIL;
|
|
3383
|
+
if (!line.startsWith(head) || !line.endsWith(tail)) return false;
|
|
3384
|
+
return /^\d+$/.test(line.slice(head.length, line.length - tail.length));
|
|
3359
3385
|
}
|
|
3360
3386
|
|
|
3361
3387
|
// src/lib/tools/toolCatalog.ts
|
|
@@ -3461,7 +3487,7 @@ ${neutralised}
|
|
|
3461
3487
|
// src/lib/chat/toolResults.ts
|
|
3462
3488
|
var TOOL_RESULTS_PREFIX = "[Tool Execution Results]";
|
|
3463
3489
|
var DISPLAY_CARD_PLACEHOLDER = "[displayed a card to the user with the tool result]";
|
|
3464
|
-
var TOOL_LINE = /^Tool "([^"]+)" returned: (
|
|
3490
|
+
var TOOL_LINE = /^Tool "([^"]+)" returned: ([\s\S]*)$/;
|
|
3465
3491
|
var TOOL_RESULT_ORIGIN = "tool_result";
|
|
3466
3492
|
function isToolResultsRow(row) {
|
|
3467
3493
|
if (row.origin === TOOL_RESULT_ORIGIN) return true;
|
|
@@ -3479,8 +3505,7 @@ function parseToolResultSegments(content) {
|
|
|
3479
3505
|
continue;
|
|
3480
3506
|
}
|
|
3481
3507
|
const current = segments[segments.length - 1];
|
|
3482
|
-
if (!current || line
|
|
3483
|
-
if (line === TOOL_RESULTS_PREFIX) continue;
|
|
3508
|
+
if (!current || !isTruncationMarkerLine(line)) continue;
|
|
3484
3509
|
current.line = `${current.line}
|
|
3485
3510
|
${line}`;
|
|
3486
3511
|
}
|
package/dist/react/index.mjs
CHANGED
|
@@ -86,6 +86,7 @@ function notifyKeyAvailable(address) {
|
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
88
|
var keyPairStore = /* @__PURE__ */ new Map();
|
|
89
|
+
var pendingKeyPairRequests = /* @__PURE__ */ new Map();
|
|
89
90
|
function getStoredKeyByVersion(address, version) {
|
|
90
91
|
const keys = encryptionKeyStore.get(address);
|
|
91
92
|
if (!keys) return null;
|
|
@@ -108,6 +109,7 @@ function clearAllEncryptionState() {
|
|
|
108
109
|
cryptoKeyCache.clear();
|
|
109
110
|
keyAvailableCallbacks.clear();
|
|
110
111
|
pendingKeyRequests.clear();
|
|
112
|
+
pendingKeyPairRequests.clear();
|
|
111
113
|
pendingCandidateDerives.clear();
|
|
112
114
|
refreshCandidatesByAddress.clear();
|
|
113
115
|
divergentDeriveAddresses.clear();
|
|
@@ -775,6 +777,21 @@ async function requestKeyPair(walletAddress, signMessage, embeddedWalletSigner)
|
|
|
775
777
|
if (existingKeyPair) {
|
|
776
778
|
return;
|
|
777
779
|
}
|
|
780
|
+
const pending = pendingKeyPairRequests.get(walletAddress);
|
|
781
|
+
if (pending) {
|
|
782
|
+
return pending;
|
|
783
|
+
}
|
|
784
|
+
const promise = loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner);
|
|
785
|
+
pendingKeyPairRequests.set(walletAddress, promise);
|
|
786
|
+
try {
|
|
787
|
+
await promise;
|
|
788
|
+
} finally {
|
|
789
|
+
if (pendingKeyPairRequests.get(walletAddress) === promise) {
|
|
790
|
+
pendingKeyPairRequests.delete(walletAddress);
|
|
791
|
+
}
|
|
792
|
+
}
|
|
793
|
+
}
|
|
794
|
+
async function loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner) {
|
|
778
795
|
const startEpoch = sessionEpoch;
|
|
779
796
|
try {
|
|
780
797
|
const persistedKeyPair = await loadPersistedKeyPair(walletAddress);
|
|
@@ -1480,10 +1497,13 @@ function getNotionMCPUrl() {
|
|
|
1480
1497
|
var HEADER = "[Tool Execution Results]\n\n";
|
|
1481
1498
|
var FOOTER = "\n\nBased on these results, continue with the task.";
|
|
1482
1499
|
var ENTRY_SEPARATOR = "\n\n";
|
|
1483
|
-
var
|
|
1500
|
+
var TRUNCATION_MARKER_HEAD = "... (tool output truncated, ";
|
|
1501
|
+
var TRUNCATION_MARKER_TAIL = " characters omitted)";
|
|
1484
1502
|
var MAX_PERSISTED_TOOL_RESULT_CHARS = 1e5;
|
|
1485
1503
|
function buildToolResultContent(results) {
|
|
1486
|
-
const entries = results.map(
|
|
1504
|
+
const entries = results.map(
|
|
1505
|
+
(r) => `Tool "${r.name}" returned: ${JSON.stringify(r.result)}`.replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029")
|
|
1506
|
+
);
|
|
1487
1507
|
const framing = HEADER.length + FOOTER.length + ENTRY_SEPARATOR.length * Math.max(0, entries.length - 1);
|
|
1488
1508
|
const summary = capEntries(entries, MAX_PERSISTED_TOOL_RESULT_CHARS - framing).join(
|
|
1489
1509
|
ENTRY_SEPARATOR
|
|
@@ -1514,7 +1534,13 @@ function truncateEntry(entry, allowance) {
|
|
|
1514
1534
|
function truncationMarker(omitted) {
|
|
1515
1535
|
return `
|
|
1516
1536
|
|
|
1517
|
-
|
|
1537
|
+
${TRUNCATION_MARKER_HEAD}${omitted}${TRUNCATION_MARKER_TAIL}`;
|
|
1538
|
+
}
|
|
1539
|
+
function isTruncationMarkerLine(line) {
|
|
1540
|
+
const head = TRUNCATION_MARKER_HEAD;
|
|
1541
|
+
const tail = TRUNCATION_MARKER_TAIL;
|
|
1542
|
+
if (!line.startsWith(head) || !line.endsWith(tail)) return false;
|
|
1543
|
+
return /^\d+$/.test(line.slice(head.length, line.length - tail.length));
|
|
1518
1544
|
}
|
|
1519
1545
|
|
|
1520
1546
|
// src/lib/tools/toolCatalog.ts
|
|
@@ -1620,7 +1646,7 @@ ${neutralised}
|
|
|
1620
1646
|
// src/lib/chat/toolResults.ts
|
|
1621
1647
|
var TOOL_RESULTS_PREFIX = "[Tool Execution Results]";
|
|
1622
1648
|
var DISPLAY_CARD_PLACEHOLDER = "[displayed a card to the user with the tool result]";
|
|
1623
|
-
var TOOL_LINE = /^Tool "([^"]+)" returned: (
|
|
1649
|
+
var TOOL_LINE = /^Tool "([^"]+)" returned: ([\s\S]*)$/;
|
|
1624
1650
|
var TOOL_RESULT_ORIGIN = "tool_result";
|
|
1625
1651
|
function isToolResultsRow(row) {
|
|
1626
1652
|
if (row.origin === TOOL_RESULT_ORIGIN) return true;
|
|
@@ -1638,8 +1664,7 @@ function parseToolResultSegments(content) {
|
|
|
1638
1664
|
continue;
|
|
1639
1665
|
}
|
|
1640
1666
|
const current = segments[segments.length - 1];
|
|
1641
|
-
if (!current || line
|
|
1642
|
-
if (line === TOOL_RESULTS_PREFIX) continue;
|
|
1667
|
+
if (!current || !isTruncationMarkerLine(line)) continue;
|
|
1643
1668
|
current.line = `${current.line}
|
|
1644
1669
|
${line}`;
|
|
1645
1670
|
}
|
package/dist/server/index.cjs
CHANGED
|
@@ -16631,8 +16631,14 @@ __export(index_exports, {
|
|
|
16631
16631
|
module.exports = __toCommonJS(index_exports);
|
|
16632
16632
|
|
|
16633
16633
|
// src/lib/chat/toolResultMessage.ts
|
|
16634
|
-
var
|
|
16635
|
-
var
|
|
16634
|
+
var TRUNCATION_MARKER_HEAD = "... (tool output truncated, ";
|
|
16635
|
+
var TRUNCATION_MARKER_TAIL = " characters omitted)";
|
|
16636
|
+
function isTruncationMarkerLine(line) {
|
|
16637
|
+
const head = TRUNCATION_MARKER_HEAD;
|
|
16638
|
+
const tail = TRUNCATION_MARKER_TAIL;
|
|
16639
|
+
if (!line.startsWith(head) || !line.endsWith(tail)) return false;
|
|
16640
|
+
return /^\d+$/.test(line.slice(head.length, line.length - tail.length));
|
|
16641
|
+
}
|
|
16636
16642
|
|
|
16637
16643
|
// src/lib/tools/toolCatalog.ts
|
|
16638
16644
|
var TOOL_CATALOG = {
|
|
@@ -16811,7 +16817,7 @@ ${neutralised}
|
|
|
16811
16817
|
|
|
16812
16818
|
// src/lib/chat/toolResults.ts
|
|
16813
16819
|
var TOOL_RESULTS_PREFIX = "[Tool Execution Results]";
|
|
16814
|
-
var TOOL_LINE = /^Tool "([^"]+)" returned: (
|
|
16820
|
+
var TOOL_LINE = /^Tool "([^"]+)" returned: ([\s\S]*)$/;
|
|
16815
16821
|
var TOOL_RESULT_ORIGIN = "tool_result";
|
|
16816
16822
|
function isToolResultsRow(row) {
|
|
16817
16823
|
if (row.origin === TOOL_RESULT_ORIGIN) return true;
|
|
@@ -16829,8 +16835,7 @@ function parseToolResultSegments(content) {
|
|
|
16829
16835
|
continue;
|
|
16830
16836
|
}
|
|
16831
16837
|
const current = segments[segments.length - 1];
|
|
16832
|
-
if (!current || line
|
|
16833
|
-
if (line === TOOL_RESULTS_PREFIX) continue;
|
|
16838
|
+
if (!current || !isTruncationMarkerLine(line)) continue;
|
|
16834
16839
|
current.line = `${current.line}
|
|
16835
16840
|
${line}`;
|
|
16836
16841
|
}
|
|
@@ -16901,6 +16906,7 @@ function notifyKeyAvailable(address) {
|
|
|
16901
16906
|
}
|
|
16902
16907
|
}
|
|
16903
16908
|
var keyPairStore = /* @__PURE__ */ new Map();
|
|
16909
|
+
var pendingKeyPairRequests = /* @__PURE__ */ new Map();
|
|
16904
16910
|
function getStoredKeyByVersion(address, version) {
|
|
16905
16911
|
const keys = encryptionKeyStore.get(address);
|
|
16906
16912
|
if (!keys) return null;
|
|
@@ -16923,6 +16929,7 @@ function clearAllEncryptionState() {
|
|
|
16923
16929
|
cryptoKeyCache.clear();
|
|
16924
16930
|
keyAvailableCallbacks.clear();
|
|
16925
16931
|
pendingKeyRequests.clear();
|
|
16932
|
+
pendingKeyPairRequests.clear();
|
|
16926
16933
|
pendingCandidateDerives.clear();
|
|
16927
16934
|
refreshCandidatesByAddress.clear();
|
|
16928
16935
|
divergentDeriveAddresses.clear();
|
|
@@ -17590,6 +17597,21 @@ async function requestKeyPair(walletAddress, signMessage, embeddedWalletSigner)
|
|
|
17590
17597
|
if (existingKeyPair) {
|
|
17591
17598
|
return;
|
|
17592
17599
|
}
|
|
17600
|
+
const pending = pendingKeyPairRequests.get(walletAddress);
|
|
17601
|
+
if (pending) {
|
|
17602
|
+
return pending;
|
|
17603
|
+
}
|
|
17604
|
+
const promise = loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner);
|
|
17605
|
+
pendingKeyPairRequests.set(walletAddress, promise);
|
|
17606
|
+
try {
|
|
17607
|
+
await promise;
|
|
17608
|
+
} finally {
|
|
17609
|
+
if (pendingKeyPairRequests.get(walletAddress) === promise) {
|
|
17610
|
+
pendingKeyPairRequests.delete(walletAddress);
|
|
17611
|
+
}
|
|
17612
|
+
}
|
|
17613
|
+
}
|
|
17614
|
+
async function loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner) {
|
|
17593
17615
|
const startEpoch = sessionEpoch;
|
|
17594
17616
|
try {
|
|
17595
17617
|
const persistedKeyPair = await loadPersistedKeyPair(walletAddress);
|
package/dist/server/index.mjs
CHANGED
|
@@ -14929,8 +14929,14 @@ var require_stepsForMigration = __commonJS({
|
|
|
14929
14929
|
});
|
|
14930
14930
|
|
|
14931
14931
|
// src/lib/chat/toolResultMessage.ts
|
|
14932
|
-
var
|
|
14933
|
-
var
|
|
14932
|
+
var TRUNCATION_MARKER_HEAD = "... (tool output truncated, ";
|
|
14933
|
+
var TRUNCATION_MARKER_TAIL = " characters omitted)";
|
|
14934
|
+
function isTruncationMarkerLine(line) {
|
|
14935
|
+
const head = TRUNCATION_MARKER_HEAD;
|
|
14936
|
+
const tail = TRUNCATION_MARKER_TAIL;
|
|
14937
|
+
if (!line.startsWith(head) || !line.endsWith(tail)) return false;
|
|
14938
|
+
return /^\d+$/.test(line.slice(head.length, line.length - tail.length));
|
|
14939
|
+
}
|
|
14934
14940
|
|
|
14935
14941
|
// src/lib/tools/toolCatalog.ts
|
|
14936
14942
|
var TOOL_CATALOG = {
|
|
@@ -15109,7 +15115,7 @@ ${neutralised}
|
|
|
15109
15115
|
|
|
15110
15116
|
// src/lib/chat/toolResults.ts
|
|
15111
15117
|
var TOOL_RESULTS_PREFIX = "[Tool Execution Results]";
|
|
15112
|
-
var TOOL_LINE = /^Tool "([^"]+)" returned: (
|
|
15118
|
+
var TOOL_LINE = /^Tool "([^"]+)" returned: ([\s\S]*)$/;
|
|
15113
15119
|
var TOOL_RESULT_ORIGIN = "tool_result";
|
|
15114
15120
|
function isToolResultsRow(row) {
|
|
15115
15121
|
if (row.origin === TOOL_RESULT_ORIGIN) return true;
|
|
@@ -15127,8 +15133,7 @@ function parseToolResultSegments(content) {
|
|
|
15127
15133
|
continue;
|
|
15128
15134
|
}
|
|
15129
15135
|
const current = segments[segments.length - 1];
|
|
15130
|
-
if (!current || line
|
|
15131
|
-
if (line === TOOL_RESULTS_PREFIX) continue;
|
|
15136
|
+
if (!current || !isTruncationMarkerLine(line)) continue;
|
|
15132
15137
|
current.line = `${current.line}
|
|
15133
15138
|
${line}`;
|
|
15134
15139
|
}
|
|
@@ -15198,6 +15203,7 @@ function notifyKeyAvailable(address) {
|
|
|
15198
15203
|
}
|
|
15199
15204
|
}
|
|
15200
15205
|
var keyPairStore = /* @__PURE__ */ new Map();
|
|
15206
|
+
var pendingKeyPairRequests = /* @__PURE__ */ new Map();
|
|
15201
15207
|
function getStoredKeyByVersion(address, version) {
|
|
15202
15208
|
const keys = encryptionKeyStore.get(address);
|
|
15203
15209
|
if (!keys) return null;
|
|
@@ -15220,6 +15226,7 @@ function clearAllEncryptionState() {
|
|
|
15220
15226
|
cryptoKeyCache.clear();
|
|
15221
15227
|
keyAvailableCallbacks.clear();
|
|
15222
15228
|
pendingKeyRequests.clear();
|
|
15229
|
+
pendingKeyPairRequests.clear();
|
|
15223
15230
|
pendingCandidateDerives.clear();
|
|
15224
15231
|
refreshCandidatesByAddress.clear();
|
|
15225
15232
|
divergentDeriveAddresses.clear();
|
|
@@ -15887,6 +15894,21 @@ async function requestKeyPair(walletAddress, signMessage, embeddedWalletSigner)
|
|
|
15887
15894
|
if (existingKeyPair) {
|
|
15888
15895
|
return;
|
|
15889
15896
|
}
|
|
15897
|
+
const pending = pendingKeyPairRequests.get(walletAddress);
|
|
15898
|
+
if (pending) {
|
|
15899
|
+
return pending;
|
|
15900
|
+
}
|
|
15901
|
+
const promise = loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner);
|
|
15902
|
+
pendingKeyPairRequests.set(walletAddress, promise);
|
|
15903
|
+
try {
|
|
15904
|
+
await promise;
|
|
15905
|
+
} finally {
|
|
15906
|
+
if (pendingKeyPairRequests.get(walletAddress) === promise) {
|
|
15907
|
+
pendingKeyPairRequests.delete(walletAddress);
|
|
15908
|
+
}
|
|
15909
|
+
}
|
|
15910
|
+
}
|
|
15911
|
+
async function loadOrCreateKeyPair(walletAddress, signMessage, embeddedWalletSigner) {
|
|
15890
15912
|
const startEpoch = sessionEpoch;
|
|
15891
15913
|
try {
|
|
15892
15914
|
const persistedKeyPair = await loadPersistedKeyPair(walletAddress);
|