@anuma/sdk 3.13.0 → 3.13.1

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.
@@ -19588,6 +19588,31 @@ function useChatStorage(options) {
19588
19588
  };
19589
19589
  }
19590
19590
  const { callRedactor, callPiiRedaction, maskForCall } = resolvePiiForCall(convId);
19591
+ const effectiveApiType = resolveApiType(requestApiType ?? apiType ?? "auto", model);
19592
+ const isServerToolsFunction = typeof serverToolsFilter === "function";
19593
+ const fetchServerToolsSettled = async (token) => {
19594
+ try {
19595
+ return {
19596
+ tools: await getServerTools({
19597
+ baseUrl,
19598
+ cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
19599
+ getToken: token,
19600
+ cache: serverToolsConfig?.cache
19601
+ })
19602
+ };
19603
+ } catch (error) {
19604
+ return { error };
19605
+ }
19606
+ };
19607
+ const embedForToolsSettled = async (token) => {
19608
+ try {
19609
+ return { embedding: await embedToolText(contentForStorage, maskForCall, token) };
19610
+ } catch (error) {
19611
+ return { error };
19612
+ }
19613
+ };
19614
+ const serverToolsPromise = getTokenRef.current && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0) ? fetchServerToolsSettled(getTokenRef.current) : null;
19615
+ const userMessageEmbeddingPromise = getTokenRef.current && contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS && (isServerToolsFunction && !(serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") || !!clientTools?.length) ? embedForToolsSettled(getTokenRef.current) : null;
19591
19616
  let messagesToSend;
19592
19617
  const storedMessages = await getMessages(convId);
19593
19618
  const knownToolCallEventIds = /* @__PURE__ */ new Set();
@@ -19662,29 +19687,26 @@ function useChatStorage(options) {
19662
19687
  };
19663
19688
  }
19664
19689
  const startTime = Date.now();
19665
- const effectiveApiType = resolveApiType(requestApiType ?? apiType ?? "auto", model);
19666
19690
  let mergedTools = clientTools;
19667
19691
  let userMessageEmbedding;
19668
19692
  let userMessageEmbeddingFailed = false;
19693
+ let serverFilterEmbeddingFailed = false;
19669
19694
  let filteredServerTools = [];
19670
- const isServerToolsFunction = typeof serverToolsFilter === "function";
19671
19695
  if (getTokenRef.current && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0)) {
19672
19696
  try {
19673
- const allServerTools = await getServerTools({
19674
- baseUrl,
19675
- cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
19676
- getToken: getTokenRef.current,
19677
- cache: serverToolsConfig?.cache
19678
- });
19697
+ const settledTools = await (serverToolsPromise ?? fetchServerToolsSettled(getTokenRef.current));
19698
+ if ("error" in settledTools) throw settledTools.error;
19699
+ const allServerTools = settledTools.tools;
19679
19700
  if (serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") {
19680
19701
  filteredServerTools = allServerTools;
19681
19702
  } else if (isServerToolsFunction) {
19682
19703
  if (contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
19683
- userMessageEmbedding = await embedToolText(
19684
- contentForStorage,
19685
- maskForCall,
19686
- getTokenRef.current
19687
- );
19704
+ const settledEmbedding = await (userMessageEmbeddingPromise ?? embedForToolsSettled(getTokenRef.current));
19705
+ if ("error" in settledEmbedding) {
19706
+ serverFilterEmbeddingFailed = true;
19707
+ throw settledEmbedding.error;
19708
+ }
19709
+ userMessageEmbedding = settledEmbedding.embedding;
19688
19710
  const toolNames = serverToolsFilter(userMessageEmbedding, allServerTools);
19689
19711
  filteredServerTools = filterServerTools(allServerTools, toolNames);
19690
19712
  }
@@ -19708,14 +19730,11 @@ function useChatStorage(options) {
19708
19730
  if (clientTools?.length) {
19709
19731
  try {
19710
19732
  if (!userMessageEmbedding && getTokenRef.current && contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
19711
- try {
19712
- userMessageEmbedding = await embedToolText(
19713
- contentForStorage,
19714
- maskForCall,
19715
- getTokenRef.current
19716
- );
19717
- } catch {
19733
+ const settledEmbedding = !userMessageEmbeddingPromise || serverFilterEmbeddingFailed ? await embedForToolsSettled(getTokenRef.current) : await userMessageEmbeddingPromise;
19734
+ if ("error" in settledEmbedding) {
19718
19735
  userMessageEmbeddingFailed = true;
19736
+ } else {
19737
+ userMessageEmbedding = settledEmbedding.embedding;
19719
19738
  }
19720
19739
  }
19721
19740
  if (typeof clientToolsFilter === "function") {
@@ -10839,6 +10839,31 @@ function useChatStorage(options) {
10839
10839
  };
10840
10840
  }
10841
10841
  const { callRedactor, callPiiRedaction, maskForCall } = resolvePiiForCall(convId);
10842
+ const effectiveApiType = resolveApiType(requestApiType ?? apiType ?? "auto", model);
10843
+ const isServerToolsFunction = typeof serverToolsFilter === "function";
10844
+ const fetchServerToolsSettled = async (token) => {
10845
+ try {
10846
+ return {
10847
+ tools: await getServerTools({
10848
+ baseUrl,
10849
+ cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
10850
+ getToken: token,
10851
+ cache: serverToolsConfig?.cache
10852
+ })
10853
+ };
10854
+ } catch (error) {
10855
+ return { error };
10856
+ }
10857
+ };
10858
+ const embedForToolsSettled = async (token) => {
10859
+ try {
10860
+ return { embedding: await embedToolText(contentForStorage, maskForCall, token) };
10861
+ } catch (error) {
10862
+ return { error };
10863
+ }
10864
+ };
10865
+ const serverToolsPromise = getTokenRef.current && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0) ? fetchServerToolsSettled(getTokenRef.current) : null;
10866
+ const userMessageEmbeddingPromise = getTokenRef.current && contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS && (isServerToolsFunction && !(serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") || !!clientTools?.length) ? embedForToolsSettled(getTokenRef.current) : null;
10842
10867
  let messagesToSend;
10843
10868
  const storedMessages = await getMessages(convId);
10844
10869
  const knownToolCallEventIds = /* @__PURE__ */ new Set();
@@ -10913,29 +10938,26 @@ function useChatStorage(options) {
10913
10938
  };
10914
10939
  }
10915
10940
  const startTime = Date.now();
10916
- const effectiveApiType = resolveApiType(requestApiType ?? apiType ?? "auto", model);
10917
10941
  let mergedTools = clientTools;
10918
10942
  let userMessageEmbedding;
10919
10943
  let userMessageEmbeddingFailed = false;
10944
+ let serverFilterEmbeddingFailed = false;
10920
10945
  let filteredServerTools = [];
10921
- const isServerToolsFunction = typeof serverToolsFilter === "function";
10922
10946
  if (getTokenRef.current && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0)) {
10923
10947
  try {
10924
- const allServerTools = await getServerTools({
10925
- baseUrl,
10926
- cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
10927
- getToken: getTokenRef.current,
10928
- cache: serverToolsConfig?.cache
10929
- });
10948
+ const settledTools = await (serverToolsPromise ?? fetchServerToolsSettled(getTokenRef.current));
10949
+ if ("error" in settledTools) throw settledTools.error;
10950
+ const allServerTools = settledTools.tools;
10930
10951
  if (serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") {
10931
10952
  filteredServerTools = allServerTools;
10932
10953
  } else if (isServerToolsFunction) {
10933
10954
  if (contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
10934
- userMessageEmbedding = await embedToolText(
10935
- contentForStorage,
10936
- maskForCall,
10937
- getTokenRef.current
10938
- );
10955
+ const settledEmbedding = await (userMessageEmbeddingPromise ?? embedForToolsSettled(getTokenRef.current));
10956
+ if ("error" in settledEmbedding) {
10957
+ serverFilterEmbeddingFailed = true;
10958
+ throw settledEmbedding.error;
10959
+ }
10960
+ userMessageEmbedding = settledEmbedding.embedding;
10939
10961
  const toolNames = serverToolsFilter(userMessageEmbedding, allServerTools);
10940
10962
  filteredServerTools = filterServerTools(allServerTools, toolNames);
10941
10963
  }
@@ -10959,14 +10981,11 @@ function useChatStorage(options) {
10959
10981
  if (clientTools?.length) {
10960
10982
  try {
10961
10983
  if (!userMessageEmbedding && getTokenRef.current && contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
10962
- try {
10963
- userMessageEmbedding = await embedToolText(
10964
- contentForStorage,
10965
- maskForCall,
10966
- getTokenRef.current
10967
- );
10968
- } catch {
10984
+ const settledEmbedding = !userMessageEmbeddingPromise || serverFilterEmbeddingFailed ? await embedForToolsSettled(getTokenRef.current) : await userMessageEmbeddingPromise;
10985
+ if ("error" in settledEmbedding) {
10969
10986
  userMessageEmbeddingFailed = true;
10987
+ } else {
10988
+ userMessageEmbedding = settledEmbedding.embedding;
10970
10989
  }
10971
10990
  }
10972
10991
  if (typeof clientToolsFilter === "function") {
@@ -22274,6 +22274,45 @@ function useChatStorage(options) {
22274
22274
  }
22275
22275
  }
22276
22276
  const { callRedactor, callPiiRedaction, maskForCall } = resolvePiiForCall(convId);
22277
+ const isServerToolsFunction = typeof serverToolsFilter === "function";
22278
+ const needsEmbeddings = isServerToolsFunction || !!clientToolsFilter || !!clientTools?.length;
22279
+ const embeddingsPromise = needsEmbeddings && getToken ? (async () => {
22280
+ try {
22281
+ const embeddingOptions = { getToken, baseUrl, model: embeddingModel };
22282
+ if (shouldChunkMessage(contentForStorage, DEFAULT_CHUNK_SIZE)) {
22283
+ const textChunks = chunkText(contentForStorage);
22284
+ const chunkTexts = textChunks.map((c) => maskForCall(c.text));
22285
+ return {
22286
+ embeddings: await generateEmbeddings(chunkTexts, embeddingOptions),
22287
+ failed: false
22288
+ };
22289
+ }
22290
+ if (contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
22291
+ return {
22292
+ embeddings: await generateEmbedding(
22293
+ maskForCall(contentForStorage),
22294
+ embeddingOptions
22295
+ ),
22296
+ failed: false
22297
+ };
22298
+ }
22299
+ return { failed: false };
22300
+ } catch {
22301
+ return { failed: true };
22302
+ }
22303
+ })() : null;
22304
+ const serverToolsPromise = getToken && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0) ? (async () => {
22305
+ try {
22306
+ return await getServerTools({
22307
+ baseUrl,
22308
+ cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
22309
+ getToken,
22310
+ cache: serverToolsConfig?.cache
22311
+ });
22312
+ } catch {
22313
+ return null;
22314
+ }
22315
+ })() : null;
22277
22316
  let messagesToSend;
22278
22317
  const storedMessages = await getMessagesOp(storageCtx, convId);
22279
22318
  const knownToolCallEventIds = /* @__PURE__ */ new Set();
@@ -22453,44 +22492,27 @@ function useChatStorage(options) {
22453
22492
  let filteredServerTools = [];
22454
22493
  let userMessageEmbeddings;
22455
22494
  let userMessageEmbeddingsFailed = false;
22456
- const isServerToolsFunction = typeof serverToolsFilter === "function";
22457
- const needsEmbeddings = isServerToolsFunction || !!clientToolsFilter || !!clientTools?.length;
22458
- if (needsEmbeddings && getToken) {
22459
- try {
22460
- const embeddingOptions = { getToken, baseUrl, model: embeddingModel };
22461
- if (shouldChunkMessage(contentForStorage, DEFAULT_CHUNK_SIZE)) {
22462
- const textChunks = chunkText(contentForStorage);
22463
- const chunkTexts = textChunks.map((c) => maskForCall(c.text));
22464
- userMessageEmbeddings = await generateEmbeddings(chunkTexts, embeddingOptions);
22465
- } else if (contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
22466
- userMessageEmbeddings = await generateEmbedding(
22467
- maskForCall(contentForStorage),
22468
- embeddingOptions
22469
- );
22470
- }
22471
- } catch {
22472
- userMessageEmbeddingsFailed = true;
22473
- }
22474
- }
22475
- if (getToken && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0)) {
22476
- try {
22477
- const allServerTools = await getServerTools({
22478
- baseUrl,
22479
- cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
22480
- getToken,
22481
- cache: serverToolsConfig?.cache
22482
- });
22483
- if (serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") {
22484
- filteredServerTools = allServerTools;
22485
- } else if (isServerToolsFunction) {
22486
- if (userMessageEmbeddings) {
22487
- const toolNames = serverToolsFilter(userMessageEmbeddings, allServerTools);
22488
- filteredServerTools = filterServerTools(allServerTools, toolNames);
22495
+ if (embeddingsPromise) {
22496
+ const embeddingsResult = await embeddingsPromise;
22497
+ userMessageEmbeddings = embeddingsResult.embeddings;
22498
+ userMessageEmbeddingsFailed = embeddingsResult.failed;
22499
+ }
22500
+ if (serverToolsPromise) {
22501
+ const allServerTools = await serverToolsPromise;
22502
+ if (allServerTools) {
22503
+ try {
22504
+ if (serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") {
22505
+ filteredServerTools = allServerTools;
22506
+ } else if (isServerToolsFunction) {
22507
+ if (userMessageEmbeddings) {
22508
+ const toolNames = serverToolsFilter(userMessageEmbeddings, allServerTools);
22509
+ filteredServerTools = filterServerTools(allServerTools, toolNames);
22510
+ }
22511
+ } else {
22512
+ filteredServerTools = filterServerTools(allServerTools, serverToolsFilter);
22489
22513
  }
22490
- } else {
22491
- filteredServerTools = filterServerTools(allServerTools, serverToolsFilter);
22514
+ } catch {
22492
22515
  }
22493
- } catch {
22494
22516
  }
22495
22517
  }
22496
22518
  let filteredClientTools = clientTools;
@@ -13001,6 +13001,45 @@ function useChatStorage(options) {
13001
13001
  }
13002
13002
  }
13003
13003
  const { callRedactor, callPiiRedaction, maskForCall } = resolvePiiForCall(convId);
13004
+ const isServerToolsFunction = typeof serverToolsFilter === "function";
13005
+ const needsEmbeddings = isServerToolsFunction || !!clientToolsFilter || !!clientTools?.length;
13006
+ const embeddingsPromise = needsEmbeddings && getToken ? (async () => {
13007
+ try {
13008
+ const embeddingOptions = { getToken, baseUrl, model: embeddingModel };
13009
+ if (shouldChunkMessage(contentForStorage, DEFAULT_CHUNK_SIZE)) {
13010
+ const textChunks = chunkText(contentForStorage);
13011
+ const chunkTexts = textChunks.map((c) => maskForCall(c.text));
13012
+ return {
13013
+ embeddings: await generateEmbeddings(chunkTexts, embeddingOptions),
13014
+ failed: false
13015
+ };
13016
+ }
13017
+ if (contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
13018
+ return {
13019
+ embeddings: await generateEmbedding(
13020
+ maskForCall(contentForStorage),
13021
+ embeddingOptions
13022
+ ),
13023
+ failed: false
13024
+ };
13025
+ }
13026
+ return { failed: false };
13027
+ } catch {
13028
+ return { failed: true };
13029
+ }
13030
+ })() : null;
13031
+ const serverToolsPromise = getToken && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0) ? (async () => {
13032
+ try {
13033
+ return await getServerTools({
13034
+ baseUrl,
13035
+ cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
13036
+ getToken,
13037
+ cache: serverToolsConfig?.cache
13038
+ });
13039
+ } catch {
13040
+ return null;
13041
+ }
13042
+ })() : null;
13004
13043
  let messagesToSend;
13005
13044
  const storedMessages = await getMessagesOp(storageCtx, convId);
13006
13045
  const knownToolCallEventIds = /* @__PURE__ */ new Set();
@@ -13180,44 +13219,27 @@ function useChatStorage(options) {
13180
13219
  let filteredServerTools = [];
13181
13220
  let userMessageEmbeddings;
13182
13221
  let userMessageEmbeddingsFailed = false;
13183
- const isServerToolsFunction = typeof serverToolsFilter === "function";
13184
- const needsEmbeddings = isServerToolsFunction || !!clientToolsFilter || !!clientTools?.length;
13185
- if (needsEmbeddings && getToken) {
13186
- try {
13187
- const embeddingOptions = { getToken, baseUrl, model: embeddingModel };
13188
- if (shouldChunkMessage(contentForStorage, DEFAULT_CHUNK_SIZE)) {
13189
- const textChunks = chunkText(contentForStorage);
13190
- const chunkTexts = textChunks.map((c) => maskForCall(c.text));
13191
- userMessageEmbeddings = await generateEmbeddings(chunkTexts, embeddingOptions);
13192
- } else if (contentForStorage.length >= MIN_CONTENT_LENGTH_FOR_TOOLS) {
13193
- userMessageEmbeddings = await generateEmbedding(
13194
- maskForCall(contentForStorage),
13195
- embeddingOptions
13196
- );
13197
- }
13198
- } catch {
13199
- userMessageEmbeddingsFailed = true;
13200
- }
13201
- }
13202
- if (getToken && !(Array.isArray(serverToolsFilter) && serverToolsFilter.length === 0)) {
13203
- try {
13204
- const allServerTools = await getServerTools({
13205
- baseUrl,
13206
- cacheExpirationMs: serverToolsConfig?.cacheExpirationMs,
13207
- getToken,
13208
- cache: serverToolsConfig?.cache
13209
- });
13210
- if (serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") {
13211
- filteredServerTools = allServerTools;
13212
- } else if (isServerToolsFunction) {
13213
- if (userMessageEmbeddings) {
13214
- const toolNames = serverToolsFilter(userMessageEmbeddings, allServerTools);
13215
- filteredServerTools = filterServerTools(allServerTools, toolNames);
13222
+ if (embeddingsPromise) {
13223
+ const embeddingsResult = await embeddingsPromise;
13224
+ userMessageEmbeddings = embeddingsResult.embeddings;
13225
+ userMessageEmbeddingsFailed = embeddingsResult.failed;
13226
+ }
13227
+ if (serverToolsPromise) {
13228
+ const allServerTools = await serverToolsPromise;
13229
+ if (allServerTools) {
13230
+ try {
13231
+ if (serverToolsConfig?.deferLoading?.enabled && effectiveApiType === "responses") {
13232
+ filteredServerTools = allServerTools;
13233
+ } else if (isServerToolsFunction) {
13234
+ if (userMessageEmbeddings) {
13235
+ const toolNames = serverToolsFilter(userMessageEmbeddings, allServerTools);
13236
+ filteredServerTools = filterServerTools(allServerTools, toolNames);
13237
+ }
13238
+ } else {
13239
+ filteredServerTools = filterServerTools(allServerTools, serverToolsFilter);
13216
13240
  }
13217
- } else {
13218
- filteredServerTools = filterServerTools(allServerTools, serverToolsFilter);
13241
+ } catch {
13219
13242
  }
13220
- } catch {
13221
13243
  }
13222
13244
  }
13223
13245
  let filteredClientTools = clientTools;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anuma/sdk",
3
- "version": "3.13.0",
3
+ "version": "3.13.1",
4
4
  "description": "",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
@@ -136,7 +136,8 @@
136
136
  "lint:fix": "eslint . --fix",
137
137
  "format": "prettier --write .",
138
138
  "format:check": "prettier --check .",
139
- "typecheck": "tsc --noEmit",
139
+ "typecheck": "tsc --noEmit && pnpm run typecheck:test",
140
+ "typecheck:test": "tsc -p tsconfig.test.json",
140
141
  "knip": "knip",
141
142
  "check:export-consumers": "node scripts/assert-export-consumers.mjs",
142
143
  "check-exports": "publint && attw --pack --ignore-rules no-resolution false-cjs && node scripts/assert-no-client-self-import.mjs",