@8wave/ai-elements 0.112.0-beta.5 → 0.112.0-beta.8

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.
Files changed (123) hide show
  1. package/dist/_chunks/{Agent-tE7ZJPxG.js → Agent-DTLrWpzX.js} +138 -135
  2. package/dist/_chunks/Agent-DTLrWpzX.js.map +1 -0
  3. package/dist/_chunks/Media-Cft7Pwrh.js.map +1 -1
  4. package/dist/_chunks/{PkStreamingMarkdown-CNI8aV8t.js → PkStreamingMarkdown-CRlRDGYl.js} +3 -3
  5. package/dist/_chunks/PkStreamingMarkdown-CRlRDGYl.js.map +1 -0
  6. package/dist/_chunks/{PkToolRequestGeolocation-65jeiJs8.js → PkToolRequestGeolocation-BbxYKt-9.js} +2 -2
  7. package/dist/_chunks/{PkToolRequestGeolocation-65jeiJs8.js.map → PkToolRequestGeolocation-BbxYKt-9.js.map} +1 -1
  8. package/dist/_chunks/{PkToolRequestOAuthConnection-bHpDAtzu.js → PkToolRequestOAuthConnection-CTp2w60F.js} +2 -2
  9. package/dist/_chunks/{PkToolRequestOAuthConnection-bHpDAtzu.js.map → PkToolRequestOAuthConnection-CTp2w60F.js.map} +1 -1
  10. package/dist/_chunks/{PkToolShowArtifact-6f-Kx9AS.js → PkToolShowArtifact-CNnt82aH.js} +2 -2
  11. package/dist/_chunks/{PkToolShowArtifact-6f-Kx9AS.js.map → PkToolShowArtifact-CNnt82aH.js.map} +1 -1
  12. package/dist/_chunks/{PkToolShowContactForm-BewhenPx.js → PkToolShowContactForm-D77gyjQG.js} +2 -2
  13. package/dist/_chunks/{PkToolShowContactForm-BewhenPx.js.map → PkToolShowContactForm-D77gyjQG.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowForm-KuTsIy5P.js → PkToolShowForm-DP4LLAk3.js} +3 -3
  15. package/dist/_chunks/{PkToolShowForm-KuTsIy5P.js.map → PkToolShowForm-DP4LLAk3.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowSources-CY_q7ANb.js → PkToolShowSources-Bwy0Ptmi.js} +2 -2
  17. package/dist/_chunks/{PkToolShowSources-CY_q7ANb.js.map → PkToolShowSources-Bwy0Ptmi.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowSuggestedReply-D98Atidw.js → PkToolShowSuggestedReply-CFO8wV1b.js} +2 -2
  19. package/dist/_chunks/{PkToolShowSuggestedReply-D98Atidw.js.map → PkToolShowSuggestedReply-CFO8wV1b.js.map} +1 -1
  20. package/dist/_chunks/markdown-BRD-hDrH.js.map +1 -1
  21. package/dist/ai-elements.es.js +164 -62
  22. package/dist/ai-elements.es.js.map +1 -1
  23. package/dist-vue/PkChatbot.js +1 -1
  24. package/dist-vue/PkChatbotEmptyState.js +1 -1
  25. package/dist-vue/PkChatbotError.js +1 -1
  26. package/dist-vue/PkChatbotInput.js +1 -1
  27. package/dist-vue/PkChatbotMessages.js +1 -1
  28. package/dist-vue/PkChatbotStepPayload.js +1 -1
  29. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  30. package/dist-vue/PkChatbotSteps.js +1 -1
  31. package/dist-vue/PkChatbotViewChat.js +1 -1
  32. package/dist-vue/PkChatbotViewConversations.js +1 -1
  33. package/dist-vue/PkChatbotViewFiles.js +1 -1
  34. package/dist-vue/PkChatbotViewProfile.js +1 -1
  35. package/dist-vue/_chunks/{Agent-De2gFNjR.js → Agent-BNlmK-uJ.js} +96 -87
  36. package/dist-vue/_chunks/Agent-BNlmK-uJ.js.map +1 -0
  37. package/dist-vue/_chunks/{Document-9SUVPzht.js → Document-Bjz-CSLq.js} +69 -69
  38. package/dist-vue/_chunks/Document-Bjz-CSLq.js.map +1 -0
  39. package/dist-vue/_chunks/{PkChatbot-BBR2t9R9.js → PkChatbot-BGSXeh04.js} +8 -8
  40. package/dist-vue/_chunks/{PkChatbot-BBR2t9R9.js.map → PkChatbot-BGSXeh04.js.map} +1 -1
  41. package/dist-vue/_chunks/{PkChatbotEmptyState-BtzBYOHJ.js → PkChatbotEmptyState-CacY4o02.js} +2 -2
  42. package/dist-vue/_chunks/{PkChatbotEmptyState-BtzBYOHJ.js.map → PkChatbotEmptyState-CacY4o02.js.map} +1 -1
  43. package/dist-vue/_chunks/PkChatbotError-CuX9C_b9.js +89 -0
  44. package/dist-vue/_chunks/PkChatbotError-CuX9C_b9.js.map +1 -0
  45. package/dist-vue/_chunks/{PkChatbotInput-MSpF6SB6.js → PkChatbotInput-Dkz3SNAk.js} +2 -2
  46. package/dist-vue/_chunks/{PkChatbotInput-MSpF6SB6.js.map → PkChatbotInput-Dkz3SNAk.js.map} +1 -1
  47. package/dist-vue/_chunks/{PkChatbotMessages-9NluDSgJ.js → PkChatbotMessages-BNjbDHgy.js} +181 -181
  48. package/dist-vue/_chunks/{PkChatbotMessages-9NluDSgJ.js.map → PkChatbotMessages-BNjbDHgy.js.map} +1 -1
  49. package/dist-vue/_chunks/{PkChatbotStepPayload-XW4gT9AZ.js → PkChatbotStepPayload-DU0W-eUp.js} +2 -2
  50. package/dist-vue/_chunks/{PkChatbotStepPayload-XW4gT9AZ.js.map → PkChatbotStepPayload-DU0W-eUp.js.map} +1 -1
  51. package/dist-vue/_chunks/{PkChatbotStepToolDetail-C4-K6Glw.js → PkChatbotStepToolDetail-etlBryOg.js} +3 -3
  52. package/dist-vue/_chunks/{PkChatbotStepToolDetail-C4-K6Glw.js.map → PkChatbotStepToolDetail-etlBryOg.js.map} +1 -1
  53. package/dist-vue/_chunks/{PkChatbotSteps-CrqjWpv0.js → PkChatbotSteps-jW07Q-4x.js} +5 -5
  54. package/dist-vue/_chunks/{PkChatbotSteps-CrqjWpv0.js.map → PkChatbotSteps-jW07Q-4x.js.map} +1 -1
  55. package/dist-vue/_chunks/{PkChatbotViewChat-C0fxsO-G.js → PkChatbotViewChat-ZWFtuc-N.js} +7 -7
  56. package/dist-vue/_chunks/{PkChatbotViewChat-C0fxsO-G.js.map → PkChatbotViewChat-ZWFtuc-N.js.map} +1 -1
  57. package/dist-vue/_chunks/{PkChatbotViewConversations-DRKaeLbv.js → PkChatbotViewConversations-BLMzqmXi.js} +2 -2
  58. package/dist-vue/_chunks/{PkChatbotViewConversations-DRKaeLbv.js.map → PkChatbotViewConversations-BLMzqmXi.js.map} +1 -1
  59. package/dist-vue/_chunks/{PkChatbotViewFiles-DPpZHHvK.js → PkChatbotViewFiles-DLkQ7ClA.js} +3 -3
  60. package/dist-vue/_chunks/{PkChatbotViewFiles-DPpZHHvK.js.map → PkChatbotViewFiles-DLkQ7ClA.js.map} +1 -1
  61. package/dist-vue/_chunks/{PkChatbotViewProfile-D2XZ8Czi.js → PkChatbotViewProfile-DZ-Jim4x.js} +2 -2
  62. package/dist-vue/_chunks/{PkChatbotViewProfile-D2XZ8Czi.js.map → PkChatbotViewProfile-DZ-Jim4x.js.map} +1 -1
  63. package/dist-vue/_chunks/{PkStreamingMarkdown-D0IOaETI.js → PkStreamingMarkdown-BoEpwaYQ.js} +2 -2
  64. package/dist-vue/_chunks/{PkStreamingMarkdown-D0IOaETI.js.map → PkStreamingMarkdown-BoEpwaYQ.js.map} +1 -1
  65. package/dist-vue/_chunks/{PkToolRequestGeolocation-Q3N3jlO8.js → PkToolRequestGeolocation-9vfYNaQo.js} +2 -2
  66. package/dist-vue/_chunks/{PkToolRequestGeolocation-Q3N3jlO8.js.map → PkToolRequestGeolocation-9vfYNaQo.js.map} +1 -1
  67. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-lYoTJIF_.js → PkToolRequestOAuthConnection-BorR5NmZ.js} +2 -2
  68. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-lYoTJIF_.js.map → PkToolRequestOAuthConnection-BorR5NmZ.js.map} +1 -1
  69. package/dist-vue/_chunks/{PkToolShowArtifact-DHdJuzDi.js → PkToolShowArtifact-BnwU7CV2.js} +2 -2
  70. package/dist-vue/_chunks/{PkToolShowArtifact-DHdJuzDi.js.map → PkToolShowArtifact-BnwU7CV2.js.map} +1 -1
  71. package/dist-vue/_chunks/{PkToolShowContactForm-CotIwNhi.js → PkToolShowContactForm-_x_dbiHn.js} +2 -2
  72. package/dist-vue/_chunks/{PkToolShowContactForm-CotIwNhi.js.map → PkToolShowContactForm-_x_dbiHn.js.map} +1 -1
  73. package/dist-vue/_chunks/{PkToolShowDiagram-CVHYhfwH.js → PkToolShowDiagram-BXdA_2Na.js} +2 -2
  74. package/dist-vue/_chunks/{PkToolShowDiagram-CVHYhfwH.js.map → PkToolShowDiagram-BXdA_2Na.js.map} +1 -1
  75. package/dist-vue/_chunks/{PkToolShowEmail-DF__nKpR.js → PkToolShowEmail-CRQjoJr1.js} +2 -2
  76. package/dist-vue/_chunks/{PkToolShowEmail-DF__nKpR.js.map → PkToolShowEmail-CRQjoJr1.js.map} +1 -1
  77. package/dist-vue/_chunks/{PkToolShowForm-Dx10jOXm.js → PkToolShowForm-IPAkJIXh.js} +4 -4
  78. package/dist-vue/_chunks/{PkToolShowForm-Dx10jOXm.js.map → PkToolShowForm-IPAkJIXh.js.map} +1 -1
  79. package/dist-vue/_chunks/{PkToolShowMessage-Ck6VP-gw.js → PkToolShowMessage-joTzAg9N.js} +2 -2
  80. package/dist-vue/_chunks/{PkToolShowMessage-Ck6VP-gw.js.map → PkToolShowMessage-joTzAg9N.js.map} +1 -1
  81. package/dist-vue/_chunks/{PkToolShowProductList-zfM8cx-l.js → PkToolShowProductList-tOYjd2bq.js} +2 -2
  82. package/dist-vue/_chunks/{PkToolShowProductList-zfM8cx-l.js.map → PkToolShowProductList-tOYjd2bq.js.map} +1 -1
  83. package/dist-vue/_chunks/{PkToolShowSources-Qq3c8_ZQ.js → PkToolShowSources-B3tBNres.js} +4 -4
  84. package/dist-vue/_chunks/{PkToolShowSources-Qq3c8_ZQ.js.map → PkToolShowSources-B3tBNres.js.map} +1 -1
  85. package/dist-vue/_chunks/{PkToolShowSuggestedReply-DWLkUh2L.js → PkToolShowSuggestedReply-DA4NEjHB.js} +2 -2
  86. package/dist-vue/_chunks/{PkToolShowSuggestedReply-DWLkUh2L.js.map → PkToolShowSuggestedReply-DA4NEjHB.js.map} +1 -1
  87. package/dist-vue/_chunks/{PkToolShowWebPages-CosBYLrE.js → PkToolShowWebPages-D3Xy4iUs.js} +2 -2
  88. package/dist-vue/_chunks/{PkToolShowWebPages-CosBYLrE.js.map → PkToolShowWebPages-D3Xy4iUs.js.map} +1 -1
  89. package/dist-vue/_chunks/{PkUrl-B5CNTQj9.js → PkUrl-BgMBemSz.js} +2 -2
  90. package/dist-vue/_chunks/{PkUrl-B5CNTQj9.js.map → PkUrl-BgMBemSz.js.map} +1 -1
  91. package/dist-vue/_chunks/StreamError-D1AtGgS3.js +22 -0
  92. package/dist-vue/_chunks/StreamError-D1AtGgS3.js.map +1 -0
  93. package/dist-vue/_chunks/{createChatbotApiClient-MkaPbGWB.js → createChatbotApiClient-CaVLm5W9.js} +162 -126
  94. package/dist-vue/_chunks/createChatbotApiClient-CaVLm5W9.js.map +1 -0
  95. package/dist-vue/_chunks/{useChatbotStore-BowmAdfD.js → useChatbotStore-Bc6V5Rv0.js} +3 -3
  96. package/dist-vue/_chunks/{useChatbotStore-BowmAdfD.js.map → useChatbotStore-Bc6V5Rv0.js.map} +1 -1
  97. package/dist-vue/_chunks/{utils-C1666_6C.js → utils-h4C7rRcu.js} +3 -3
  98. package/dist-vue/_chunks/{utils-C1666_6C.js.map → utils-h4C7rRcu.js.map} +1 -1
  99. package/dist-vue/api.js +1 -1
  100. package/dist-vue/composables.js +3 -3
  101. package/dist-vue/index.js +3546 -3426
  102. package/dist-vue/index.js.map +1 -1
  103. package/dist-vue/locales.js +42 -0
  104. package/dist-vue/packages/components/src/chat/PkAgentSettingsPanel.d.ts +6 -3
  105. package/dist-vue/packages/components/src/chat/PkMessageParts.d.ts +6 -6
  106. package/dist-vue/packages/components/src/chat/PkToolSelection.d.ts +8 -0
  107. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +127 -1
  108. package/dist-vue/packages/models/src/schema/Agent.d.ts +38 -0
  109. package/dist-vue/packages/models/src/schema/Chat.d.ts +120 -0
  110. package/dist-vue/packages/models/src/schema/ReasoningChat.d.ts +7 -1
  111. package/dist-vue/packages/models/src/schema/StreamError.d.ts +13 -0
  112. package/dist-vue/packages/models/src/schema/SubAgent.d.ts +7 -1
  113. package/dist-vue/packages/models/src/schema/constants.d.ts +9 -0
  114. package/dist-vue/packages/models/src/utils.d.ts +17 -0
  115. package/dist-vue/style.css +1 -1
  116. package/package.json +1 -1
  117. package/dist/_chunks/Agent-tE7ZJPxG.js.map +0 -1
  118. package/dist/_chunks/PkStreamingMarkdown-CNI8aV8t.js.map +0 -1
  119. package/dist-vue/_chunks/Agent-De2gFNjR.js.map +0 -1
  120. package/dist-vue/_chunks/Document-9SUVPzht.js.map +0 -1
  121. package/dist-vue/_chunks/PkChatbotError-gvDpRcEz.js +0 -106
  122. package/dist-vue/_chunks/PkChatbotError-gvDpRcEz.js.map +0 -1
  123. package/dist-vue/_chunks/createChatbotApiClient-MkaPbGWB.js.map +0 -1
@@ -228,6 +228,8 @@ var e = {
228
228
  fileUploadMaxFilesPerMessage: "Max files per message",
229
229
  fileUploadMaxFilesPerChat: "Max files per chat",
230
230
  webSearch: "Web search",
231
+ toolWorkingSet: "Tool selection",
232
+ toolWorkingSetMode: "Show the agent only the tools a message needs",
231
233
  deprecated: "Deprecated",
232
234
  whatsapp: "WhatsApp",
233
235
  teams: "Microsoft Teams",
@@ -395,6 +397,7 @@ var e = {
395
397
  dismissableNotice: "It will be hidden after the first message.",
396
398
  privacyPolicyNotice: "Displayed at the bottom of the contact form. Supports Markdown.",
397
399
  fileUploadEnabled: "Allow users to attach files to their messages.",
400
+ toolWorkingSetMode: "Before each reply, an evaluation model (TypeSafe Jev, through the AI gateway) picks the MCP servers, API tools and sub-agents the message needs, and the agent sees only those: a shorter context and quicker replies. When the agent needs another one, it brings it back on its own. In shadow mode the choice is only recorded, to compare it with the tools the agent actually uses.",
398
401
  approvalChannels: "A tool can ask the user to confirm before it runs: expand a tool to turn it on. On API endpoints and scheduled runs the call is refused.",
399
402
  platformSupported: "Renders natively on WhatsApp and Teams",
400
403
  tool: {
@@ -499,6 +502,7 @@ var e = {
499
502
  runSubagent: "Delegating to a sub-agent...",
500
503
  runWorker: "Delegating to a worker...",
501
504
  fetchTeamsChannelHistory: "Reading channel history...",
505
+ enableTools: "Enabling tools...",
502
506
  searchingDocuments: "Memory search...",
503
507
  expandChunkContext: "Reading more context...",
504
508
  readDocumentFile: "Reading the original document...",
@@ -537,6 +541,23 @@ var e = {
537
541
  expired: "This request is no longer answerable: the action was not performed.",
538
542
  prompt: "Your confirmation is needed to continue:"
539
543
  },
544
+ toolSelection: {
545
+ title: "Tool selection",
546
+ failed: "Failed",
547
+ exposed: "Exposed",
548
+ threshold: "threshold {threshold}",
549
+ latency: "Time",
550
+ budget: "limit {budget} ms",
551
+ cost: "Cost",
552
+ notCharged: "Not charged",
553
+ inputTokens: "Input tokens",
554
+ tools: "{n} tool | {n} tools",
555
+ missed: "Missed",
556
+ used: "Used",
557
+ enabled: "Brought back",
558
+ seeded: "From the conversation",
559
+ probability: "Probability that the message needs the group; exposed from {threshold}"
560
+ },
540
561
  validation: { invalidPhoneNumber: "The number entered is incorrect" },
541
562
  showForm: {
542
563
  step: "Step {current} of {total}",
@@ -778,6 +799,8 @@ var e = {
778
799
  fileUploadMaxFilesPerMessage: "File massimi per messaggio",
779
800
  fileUploadMaxFilesPerChat: "File massimi per chat",
780
801
  webSearch: "Ricerca web",
802
+ toolWorkingSet: "Selezione dei tool",
803
+ toolWorkingSetMode: "Mostra all’agente solo i tool che servono al messaggio",
781
804
  deprecated: "Deprecato",
782
805
  whatsapp: "WhatsApp",
783
806
  teams: "Microsoft Teams",
@@ -945,6 +968,7 @@ var e = {
945
968
  dismissableNotice: "Verrà nascosto dopo il primo messaggio.",
946
969
  privacyPolicyNotice: "Visibile del modulo di contatto.",
947
970
  fileUploadEnabled: "Permetti agli utenti di allegare file ai messaggi.",
971
+ toolWorkingSetMode: "Prima di ogni risposta un modello di valutazione (TypeSafe Jev, tramite il gateway AI) sceglie i server MCP, gli API Tools e i sotto-agenti che servono al messaggio, e l’agente vede solo quelli: contesto più corto e risposte più rapide. Quando gliene serve un altro, l’agente lo riattiva da solo. In modalità ombra la scelta viene solo registrata, per confrontarla con i tool che l’agente usa davvero.",
948
972
  approvalChannels: "Un tool può chiedere conferma all'utente prima di eseguire: espandi il tool per attivarla. Via API o in esecuzioni schedulate la chiamata viene rifiutata.",
949
973
  platformSupported: "Resa nativa su WhatsApp e Teams",
950
974
  tool: {
@@ -1049,6 +1073,7 @@ var e = {
1049
1073
  runSubagent: "Delega a un sotto-agente...",
1050
1074
  runWorker: "Delega a un worker...",
1051
1075
  fetchTeamsChannelHistory: "Lettura cronologia canale...",
1076
+ enableTools: "Attivazione dei tool...",
1052
1077
  searchingDocuments: "Ricerca nella memoria...",
1053
1078
  expandChunkContext: "Lettura di altro contesto...",
1054
1079
  readDocumentFile: "Lettura del documento originale...",
@@ -1087,6 +1112,23 @@ var e = {
1087
1112
  expired: "Questa richiesta non è più confermabile: l'azione non è stata eseguita.",
1088
1113
  prompt: "Per continuare serve la tua conferma:"
1089
1114
  },
1115
+ toolSelection: {
1116
+ title: "Selezione dei tool",
1117
+ failed: "Non riuscita",
1118
+ exposed: "Esposti",
1119
+ threshold: "soglia {threshold}",
1120
+ latency: "Tempo",
1121
+ budget: "limite {budget} ms",
1122
+ cost: "Costo",
1123
+ notCharged: "Non addebitata",
1124
+ inputTokens: "Token in ingresso",
1125
+ tools: "{n} tool | {n} tool",
1126
+ missed: "Mancato",
1127
+ used: "Usato",
1128
+ enabled: "Riattivato",
1129
+ seeded: "Dalla conversazione",
1130
+ probability: "Probabilità che il messaggio abbia bisogno del gruppo; esposto da {threshold}"
1131
+ },
1090
1132
  validation: { invalidPhoneNumber: "Il numero inserito non è corretto" },
1091
1133
  showForm: {
1092
1134
  step: "Domanda {current} di {total}",
@@ -1,4 +1,4 @@
1
- import { AgentFormSettings, AgentReasoning, AgentWebSearch, LocalizedString, Media, ModelCatalogEntry, OrganizationFeature, VoiceOption, AgentBuiltInTool, AgentChannel, AgentLoaderStrategy, AgentType, WebSearchProvider, StoragePolicy } from '../../../models/src';
1
+ import { AgentFormSettings, AgentReasoning, AgentWebSearch, LocalizedString, Media, ModelCatalogEntry, OrganizationFeature, VoiceOption, AgentBuiltInTool, AgentChannel, AgentToolWorkingSetMode, AgentLoaderStrategy, AgentType, WebSearchProvider, StoragePolicy } from '../../../models/src';
2
2
  import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
3
  type __VLS_Props = {
4
4
  organizationSlug?: string;
@@ -76,6 +76,7 @@ type __VLS_ModelProps = {
76
76
  'loadDelay'?: number | undefined;
77
77
  'loaderStrategy'?: AgentLoaderStrategy | undefined;
78
78
  'fileUploadEnabled'?: boolean;
79
+ 'toolWorkingSetMode'?: AgentToolWorkingSetMode;
79
80
  'voiceEnabled'?: boolean;
80
81
  'voiceMaxSessionSeconds'?: number;
81
82
  'voiceId'?: string | undefined;
@@ -118,9 +119,9 @@ type __VLS_ModelProps = {
118
119
  } | undefined;
119
120
  };
120
121
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
121
- declare var __VLS_749: {};
122
+ declare var __VLS_760: {};
122
123
  type __VLS_Slots = {} & {
123
- default?: (props: typeof __VLS_749) => any;
124
+ default?: (props: typeof __VLS_760) => any;
124
125
  };
125
126
  declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
126
127
  "update:reasoning": (value: {
@@ -320,6 +321,7 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
320
321
  "update:loadDelay": (value: number | undefined) => any;
321
322
  "update:loaderStrategy": (value: AgentLoaderStrategy | undefined) => any;
322
323
  "update:fileUploadEnabled": (value: boolean) => any;
324
+ "update:toolWorkingSetMode": (value: AgentToolWorkingSetMode) => any;
323
325
  "update:voiceEnabled": (value: boolean) => any;
324
326
  "update:voiceMaxSessionSeconds": (value: number) => any;
325
327
  "update:voiceId": (value: string | undefined) => any;
@@ -558,6 +560,7 @@ declare const __VLS_base: DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, Com
558
560
  "onUpdate:loadDelay"?: ((value: number | undefined) => any) | undefined;
559
561
  "onUpdate:loaderStrategy"?: ((value: AgentLoaderStrategy | undefined) => any) | undefined;
560
562
  "onUpdate:fileUploadEnabled"?: ((value: boolean) => any) | undefined;
563
+ "onUpdate:toolWorkingSetMode"?: ((value: AgentToolWorkingSetMode) => any) | undefined;
561
564
  "onUpdate:voiceEnabled"?: ((value: boolean) => any) | undefined;
562
565
  "onUpdate:voiceMaxSessionSeconds"?: ((value: number) => any) | undefined;
563
566
  "onUpdate:voiceId"?: ((value: string | undefined) => any) | undefined;
@@ -14,21 +14,21 @@ interface SubAgentSlotPart {
14
14
  type __VLS_Props = {
15
15
  message: UIChatMessage;
16
16
  };
17
- declare var __VLS_107: {
17
+ declare var __VLS_112: {
18
18
  part: SubAgentSlotPart;
19
- }, __VLS_110: string, __VLS_111: {
19
+ }, __VLS_115: string, __VLS_116: {
20
20
  part: {
21
21
  type: `tool-${string}`;
22
22
  } & UIToolInvocation<UITool>;
23
- }, __VLS_119: {
23
+ }, __VLS_124: {
24
24
  part: TextUIPart | ReasoningUIPart;
25
25
  };
26
26
  type __VLS_Slots = {} & {
27
- [K in NonNullable<typeof __VLS_110>]?: (props: typeof __VLS_111) => any;
27
+ [K in NonNullable<typeof __VLS_115>]?: (props: typeof __VLS_116) => any;
28
28
  } & {
29
- subagent?: (props: typeof __VLS_107) => any;
29
+ subagent?: (props: typeof __VLS_112) => any;
30
30
  } & {
31
- text?: (props: typeof __VLS_119) => any;
31
+ text?: (props: typeof __VLS_124) => any;
32
32
  };
33
33
  declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
34
34
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -0,0 +1,8 @@
1
+ import { UIChatMessage } from '../../../models/src';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ type __VLS_Props = {
4
+ message: UIChatMessage;
5
+ };
6
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -1,5 +1,5 @@
1
1
  import { Chat } from '@ai-sdk/vue';
2
- import { ChatMessageActions, UIChatMessage, AgentLoaderStrategy, StoragePolicy, AgentSearchMode, AgentBuiltInTool, WebSearchProvider, PlatformType, BlockedReasonCode, ConversationAnalysisTrigger, Sentiment, SentimentTrend, UserTone, AbuseCategory, LlmIssueCategory, UserEngagement, AbuseConfidence } from '../../../models/src';
2
+ import { ChatMessageActions, UIChatMessage, AgentLoaderStrategy, StoragePolicy, AgentSearchMode, AgentBuiltInTool, WebSearchProvider, PlatformType, ToolGroupKind, BlockedReasonCode, ConversationAnalysisTrigger, Sentiment, SentimentTrend, UserTone, AbuseCategory, LlmIssueCategory, UserEngagement, AbuseConfidence } from '../../../models/src';
3
3
  import { ChatbotFile } from './api';
4
4
  import { PendingAttachment } from './types';
5
5
  import { Store } from 'pinia';
@@ -612,6 +612,27 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
612
612
  cachedTokens?: number | undefined;
613
613
  trafficType?: string | undefined;
614
614
  transport?: string | undefined;
615
+ toolCatalogue?: {
616
+ fingerprint: string;
617
+ groups: {
618
+ id: string;
619
+ kind: ToolGroupKind;
620
+ name: string;
621
+ keys: string[];
622
+ }[];
623
+ workingSet?: {
624
+ mode: "shadow" | "active";
625
+ selected: string[];
626
+ seeded: string[];
627
+ probabilities: Record<string, number>;
628
+ latencyMs: number;
629
+ budgetMs: number;
630
+ threshold: number;
631
+ cost?: number | undefined;
632
+ inputTokens?: number | undefined;
633
+ failed?: boolean | undefined;
634
+ } | undefined;
635
+ } | undefined;
615
636
  } | undefined;
616
637
  parts: ({
617
638
  type: "text";
@@ -1095,6 +1116,27 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1095
1116
  cachedTokens?: number | undefined;
1096
1117
  trafficType?: string | undefined;
1097
1118
  transport?: string | undefined;
1119
+ toolCatalogue?: {
1120
+ fingerprint: string;
1121
+ groups: {
1122
+ id: string;
1123
+ kind: ToolGroupKind;
1124
+ name: string;
1125
+ keys: string[];
1126
+ }[];
1127
+ workingSet?: {
1128
+ mode: "shadow" | "active";
1129
+ selected: string[];
1130
+ seeded: string[];
1131
+ probabilities: Record<string, number>;
1132
+ latencyMs: number;
1133
+ budgetMs: number;
1134
+ threshold: number;
1135
+ cost?: number | undefined;
1136
+ inputTokens?: number | undefined;
1137
+ failed?: boolean | undefined;
1138
+ } | undefined;
1139
+ } | undefined;
1098
1140
  } | undefined;
1099
1141
  parts: ({
1100
1142
  type: "text";
@@ -2276,6 +2318,27 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
2276
2318
  cachedTokens?: number | undefined;
2277
2319
  trafficType?: string | undefined;
2278
2320
  transport?: string | undefined;
2321
+ toolCatalogue?: {
2322
+ fingerprint: string;
2323
+ groups: {
2324
+ id: string;
2325
+ kind: ToolGroupKind;
2326
+ name: string;
2327
+ keys: string[];
2328
+ }[];
2329
+ workingSet?: {
2330
+ mode: "shadow" | "active";
2331
+ selected: string[];
2332
+ seeded: string[];
2333
+ probabilities: Record<string, number>;
2334
+ latencyMs: number;
2335
+ budgetMs: number;
2336
+ threshold: number;
2337
+ cost?: number | undefined;
2338
+ inputTokens?: number | undefined;
2339
+ failed?: boolean | undefined;
2340
+ } | undefined;
2341
+ } | undefined;
2279
2342
  } | undefined;
2280
2343
  parts: ({
2281
2344
  type: "text";
@@ -2759,6 +2822,27 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
2759
2822
  cachedTokens?: number | undefined;
2760
2823
  trafficType?: string | undefined;
2761
2824
  transport?: string | undefined;
2825
+ toolCatalogue?: {
2826
+ fingerprint: string;
2827
+ groups: {
2828
+ id: string;
2829
+ kind: ToolGroupKind;
2830
+ name: string;
2831
+ keys: string[];
2832
+ }[];
2833
+ workingSet?: {
2834
+ mode: "shadow" | "active";
2835
+ selected: string[];
2836
+ seeded: string[];
2837
+ probabilities: Record<string, number>;
2838
+ latencyMs: number;
2839
+ budgetMs: number;
2840
+ threshold: number;
2841
+ cost?: number | undefined;
2842
+ inputTokens?: number | undefined;
2843
+ failed?: boolean | undefined;
2844
+ } | undefined;
2845
+ } | undefined;
2762
2846
  } | undefined;
2763
2847
  parts: ({
2764
2848
  type: "text";
@@ -3940,6 +4024,27 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
3940
4024
  cachedTokens?: number | undefined;
3941
4025
  trafficType?: string | undefined;
3942
4026
  transport?: string | undefined;
4027
+ toolCatalogue?: {
4028
+ fingerprint: string;
4029
+ groups: {
4030
+ id: string;
4031
+ kind: ToolGroupKind;
4032
+ name: string;
4033
+ keys: string[];
4034
+ }[];
4035
+ workingSet?: {
4036
+ mode: "shadow" | "active";
4037
+ selected: string[];
4038
+ seeded: string[];
4039
+ probabilities: Record<string, number>;
4040
+ latencyMs: number;
4041
+ budgetMs: number;
4042
+ threshold: number;
4043
+ cost?: number | undefined;
4044
+ inputTokens?: number | undefined;
4045
+ failed?: boolean | undefined;
4046
+ } | undefined;
4047
+ } | undefined;
3943
4048
  } | undefined;
3944
4049
  parts: ({
3945
4050
  type: "text";
@@ -4423,6 +4528,27 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
4423
4528
  cachedTokens?: number | undefined;
4424
4529
  trafficType?: string | undefined;
4425
4530
  transport?: string | undefined;
4531
+ toolCatalogue?: {
4532
+ fingerprint: string;
4533
+ groups: {
4534
+ id: string;
4535
+ kind: ToolGroupKind;
4536
+ name: string;
4537
+ keys: string[];
4538
+ }[];
4539
+ workingSet?: {
4540
+ mode: "shadow" | "active";
4541
+ selected: string[];
4542
+ seeded: string[];
4543
+ probabilities: Record<string, number>;
4544
+ latencyMs: number;
4545
+ budgetMs: number;
4546
+ threshold: number;
4547
+ cost?: number | undefined;
4548
+ inputTokens?: number | undefined;
4549
+ failed?: boolean | undefined;
4550
+ } | undefined;
4551
+ } | undefined;
4426
4552
  } | undefined;
4427
4553
  parts: ({
4428
4554
  type: "text";
@@ -357,6 +357,12 @@ export declare const mcpToolKey: (toolName: string) => string;
357
357
  export declare const apiToolKey: (toolName: string) => string;
358
358
  /** Tool-set key of a sub-agent, from its camel-cased name. */
359
359
  export declare const subAgentToolKey: (subAgentName: string) => string;
360
+ /**
361
+ * The tool that brings back a group the working set hid (spec
362
+ * tool-catalogue-working-set, F4). Not a built-in the agent switches: it
363
+ * exists exactly when the working set is active and hid something.
364
+ */
365
+ export declare const ENABLE_TOOLS_TOOL = "enableTools";
360
366
  /**
361
367
  * Returns true if the tool can be put behind the user-approval gate
362
368
  * (`settings.tools.approval.tools`, see docs/specs/tool-approval-interface.md).
@@ -1103,6 +1109,29 @@ export declare const AgentOpenAiApiSchema: z.ZodObject<{
1103
1109
  enabled: z.ZodDefault<z.ZodBoolean>;
1104
1110
  }, z.core.$strip>;
1105
1111
  export type AgentOpenAiApi = z.infer<typeof AgentOpenAiApiSchema>;
1112
+ /**
1113
+ * Working set of the tool catalogue (spec tool-catalogue-working-set, F4):
1114
+ * before the first step an evaluation model decides which MCP servers, API
1115
+ * tools and sub-agents the turn needs, and the model sees only those plus a
1116
+ * tool to enable the others.
1117
+ * - `off`: every tool is exposed, as before;
1118
+ * - `shadow`: the decision is taken and recorded on the message, every tool
1119
+ * is still exposed, so it can be read against the tools the model called;
1120
+ * - `active`: the decision is applied.
1121
+ *
1122
+ * The evaluation model is served only by the gateway: the setting needs the
1123
+ * organization's `gateway` feature, and an agent on the organization's own
1124
+ * endpoint keeps it off.
1125
+ */
1126
+ export declare enum AgentToolWorkingSetMode {
1127
+ Off = "off",
1128
+ Shadow = "shadow",
1129
+ Active = "active"
1130
+ }
1131
+ export declare const AgentToolWorkingSetSchema: z.ZodObject<{
1132
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
1133
+ }, z.core.$strip>;
1134
+ export type AgentToolWorkingSet = z.infer<typeof AgentToolWorkingSetSchema>;
1106
1135
  /**
1107
1136
  * Shortest first-token deadline the provider actually honours. Below it the
1108
1137
  * turn does not fall back on their model, it fails outright with "LLM Cascade
@@ -1595,6 +1624,9 @@ export declare const AgentSettingsSchema: z.ZodObject<{
1595
1624
  providerSecretId: z.ZodOptional<z.ZodString>;
1596
1625
  providerApiKeyId: z.ZodOptional<z.ZodString>;
1597
1626
  }, z.core.$strip>>>;
1627
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1628
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
1629
+ }, z.core.$strip>>>;
1598
1630
  }, z.core.$strip>;
1599
1631
  export type AgentSettings = z.infer<typeof AgentSettingsSchema>;
1600
1632
  export declare const AgentSecuritySchema: z.ZodObject<{
@@ -1987,6 +2019,9 @@ export declare const AgentDtoSchema: z.ZodObject<{
1987
2019
  providerSecretId: z.ZodOptional<z.ZodString>;
1988
2020
  providerApiKeyId: z.ZodOptional<z.ZodString>;
1989
2021
  }, z.core.$strip>>>;
2022
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2023
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
2024
+ }, z.core.$strip>>>;
1990
2025
  }, z.core.$strip>;
1991
2026
  security: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1992
2027
  rateLimits: z.ZodObject<{
@@ -2380,6 +2415,9 @@ export declare const AgentSchema: z.ZodLazy<z.ZodObject<{
2380
2415
  providerSecretId: z.ZodOptional<z.ZodString>;
2381
2416
  providerApiKeyId: z.ZodOptional<z.ZodString>;
2382
2417
  }, z.core.$strip>>>;
2418
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
2419
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
2420
+ }, z.core.$strip>>>;
2383
2421
  }, z.core.$strip>;
2384
2422
  security: z.ZodNullable<z.ZodObject<{
2385
2423
  rateLimits: z.ZodObject<{
@@ -334,6 +334,112 @@ export type ChatMessageActions = 'show-info' | 'revise' | 'regenerate' | 'upvote
334
334
  export type Chat = z.infer<typeof ChatSchema>;
335
335
  export type ChatsQuerystring = z.infer<typeof ChatsQuerystringSchema>;
336
336
  export type UIChatMessageDeviceContext = DeviceContext;
337
+ /** Kinds of tool group the working set decides on, one group per MCP server. */
338
+ export type ToolGroupKind = 'mcp' | 'api' | 'subagent';
339
+ /**
340
+ * What the working set decided for a turn (spec tool-catalogue-working-set,
341
+ * F4). Group ids are those of {@link ToolCatalogueRecord}; the groups the model
342
+ * enabled later in the turn are read from its `enableTools` calls.
343
+ */
344
+ export type ToolWorkingSetRecord = {
345
+ /** `shadow` recorded the decision and exposed everything, `active` applied it. */
346
+ mode: 'shadow' | 'active';
347
+ /** Groups exposed from the first step: the judged ones and the seed. */
348
+ selected: string[];
349
+ /** Groups the conversation seeded, exposed whatever the judgment. */
350
+ seeded: string[];
351
+ /** Probability the evaluation model gave each judged group, two decimals. */
352
+ probabilities: Record<string, number>;
353
+ latencyMs: number;
354
+ /**
355
+ * Time the evaluation was given: short in active mode, where the turn
356
+ * waits for it, longer in shadow mode, where it runs alongside.
357
+ */
358
+ budgetMs: number;
359
+ /** Probability from which a judged group is exposed. */
360
+ threshold: number;
361
+ /**
362
+ * What the evaluation cost in USD, the amount charged to the organization.
363
+ * Absent when it failed: nothing is charged then.
364
+ */
365
+ cost?: number;
366
+ inputTokens?: number;
367
+ /**
368
+ * The evaluation answered with an error or not within the budget, and
369
+ * every group stayed exposed.
370
+ */
371
+ failed?: boolean;
372
+ };
373
+ /**
374
+ * The part of a turn's tool catalogue the working set acts on (spec
375
+ * tool-catalogue-working-set, F2): which MCP servers, API tools and sub-agents
376
+ * were eligible, identified by id and not by the public keys, which collide
377
+ * across servers. Enough to make a measurement repeatable without storing the
378
+ * schemas.
379
+ */
380
+ export type ToolCatalogueRecord = {
381
+ /** Short hash of the eligible keys and their groups: two turns with the same set agree on it. */
382
+ fingerprint: string;
383
+ groups: Array<{
384
+ id: string;
385
+ kind: ToolGroupKind;
386
+ name: string;
387
+ /**
388
+ * Keys of the group offered this turn: what attributes a call in the
389
+ * message to its group, since a key names a different server's tool
390
+ * in another turn.
391
+ */
392
+ keys: string[];
393
+ }>;
394
+ workingSet?: ToolWorkingSetRecord;
395
+ };
396
+ /** One group of a turn's catalogue, read against what the turn did with it. */
397
+ export type ToolSelectionGroup = {
398
+ id: string;
399
+ kind: ToolGroupKind;
400
+ name: string;
401
+ tools: number;
402
+ /** Absent when the evaluation failed. */
403
+ probability?: number;
404
+ /** Exposed from the first step in active mode, or would have been in shadow mode. */
405
+ selected: boolean;
406
+ seeded: boolean;
407
+ /**
408
+ * Brought back during the turn, by `enableTools` or by a direct call to
409
+ * one of its tools that the model was refused as unavailable.
410
+ */
411
+ enabled: boolean;
412
+ /**
413
+ * The model called one of its tools, whatever came of the call (an error,
414
+ * a denied approval): the turn needed the group.
415
+ */
416
+ used: boolean;
417
+ };
418
+ export type ToolSelectionSummary = {
419
+ decision: ToolWorkingSetRecord;
420
+ /** Most probable first, then by name. */
421
+ groups: ToolSelectionGroup[];
422
+ /**
423
+ * Groups the turn used that the decision left out. In active mode the
424
+ * model had to bring each one back, in shadow mode it would have had to:
425
+ * the working set's miss, the figure F3 of the spec counts.
426
+ */
427
+ missed: number;
428
+ };
429
+ /**
430
+ * The working set's decision on a turn next to what the turn did: which
431
+ * groups it exposed, which the model brought back and which it used. Read
432
+ * from the stored answer, whose metadata carries the record and whose parts
433
+ * carry the calls, the way the backend read them during the turn: a call
434
+ * counts under the name the repair would give it, and an `enableTools` call
435
+ * only once it ran. Undefined when the working set did not decide.
436
+ */
437
+ export declare function summarizeToolSelection(message: {
438
+ parts?: ReadonlyArray<unknown>;
439
+ metadata?: {
440
+ toolCatalogue?: ToolCatalogueRecord;
441
+ };
442
+ }): ToolSelectionSummary | undefined;
337
443
  export type UIChatMessageMetadata = {
338
444
  /** Unix timestamp (ms) when the stream started */
339
445
  createdAt?: number;
@@ -378,10 +484,24 @@ export type UIChatMessageMetadata = {
378
484
  * `openai-api` an API turn. Absent on plain web messages.
379
485
  */
380
486
  transport?: string;
487
+ /**
488
+ * The MCP servers, API tools and sub-agents this turn could use, and the
489
+ * working set's decision on them. Absent when the agent has none. Kept
490
+ * from a public reader: streamed only to the organization's own audiences
491
+ * (on the closing finish), and removed from whatever else leaves the
492
+ * organization ({@link withoutToolCatalogue}).
493
+ */
494
+ toolCatalogue?: ToolCatalogueRecord;
381
495
  };
382
496
  export type UIChatMessage = UIMessage & {
383
497
  metadata?: UIChatMessageMetadata;
384
498
  };
499
+ /**
500
+ * The history without the tool catalogue records, for a reader outside the
501
+ * organization (a public chat read, the data export): a record names every
502
+ * group the agent has, used or not.
503
+ */
504
+ export declare function withoutToolCatalogue(messages: UIChatMessage[]): UIChatMessage[];
385
505
  /**
386
506
  * States in which a tool invocation part waits for nothing more.
387
507
  *
@@ -1,6 +1,6 @@
1
1
  import { UIChatMessage, BlockedReasonCode } from './Chat';
2
2
  import { LanguageModelUsage } from 'ai';
3
- import { AgentStatus, AgentVisibility, AgentSearchMode, AgentLoaderStrategy, AgentBuiltInTool, WebSearchProvider, AgentChannel, AgentType } from './Agent';
3
+ import { AgentStatus, AgentVisibility, AgentSearchMode, AgentLoaderStrategy, AgentBuiltInTool, WebSearchProvider, AgentChannel, AgentToolWorkingSetMode, AgentType } from './Agent';
4
4
  import { StoragePolicy } from './Media';
5
5
  import { ConversationAnalysisTrigger, Sentiment, SentimentTrend, UserTone, AbuseCategory, AbuseConfidence, LlmIssueCategory, UserEngagement } from './ConversationAnalysis';
6
6
  import * as z from 'zod';
@@ -397,6 +397,9 @@ export declare const ReasoningChatSchema: z.ZodObject<{
397
397
  providerSecretId: z.ZodOptional<z.ZodString>;
398
398
  providerApiKeyId: z.ZodOptional<z.ZodString>;
399
399
  }, z.core.$strip>>>;
400
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
401
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
402
+ }, z.core.$strip>>>;
400
403
  }, z.core.$strip>;
401
404
  security: z.ZodNullable<z.ZodObject<{
402
405
  rateLimits: z.ZodObject<{
@@ -841,6 +844,9 @@ export declare const ReasoningChatSchema: z.ZodObject<{
841
844
  providerSecretId: z.ZodOptional<z.ZodString>;
842
845
  providerApiKeyId: z.ZodOptional<z.ZodString>;
843
846
  }, z.core.$strip>>>;
847
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
848
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
849
+ }, z.core.$strip>>>;
844
850
  }, z.core.$strip>;
845
851
  security: z.ZodNullable<z.ZodObject<{
846
852
  rateLimits: z.ZodObject<{
@@ -14,3 +14,16 @@ export declare function parseStreamError(message: string | undefined): {
14
14
  payload: StreamErrorPayload;
15
15
  } | undefined;
16
16
  export declare function matchesStreamErrorCode(message: string | undefined, code: string): boolean;
17
+ /**
18
+ * The SDK refusing a call to a tool the step did not offer
19
+ * (AI_NoSuchToolError), capturing the tool name. One pattern for the backend,
20
+ * which reads the refusal from the step, and for the message detail, which
21
+ * reads it from the stored part (`summarizeToolSelection`).
22
+ */
23
+ export declare const UNAVAILABLE_TOOL_ERROR_PATTERN: RegExp;
24
+ /**
25
+ * The text a refused call is stored and streamed with: the SDK's own first
26
+ * sentence, without its list of the step's tools, so it still matches the
27
+ * pattern above.
28
+ */
29
+ export declare const unavailableToolErrorText: (toolName: string) => string;
@@ -1,4 +1,4 @@
1
- import { AgentStatus, AgentVisibility, AgentSearchMode, AgentLoaderStrategy, AgentBuiltInTool, WebSearchProvider, AgentChannel, AgentType } from './Agent';
1
+ import { AgentStatus, AgentVisibility, AgentSearchMode, AgentLoaderStrategy, AgentBuiltInTool, WebSearchProvider, AgentChannel, AgentToolWorkingSetMode, AgentType } from './Agent';
2
2
  import { StoragePolicy } from './Media';
3
3
  import * as z from 'zod';
4
4
  export declare enum SubAgentStatus {
@@ -397,6 +397,9 @@ export declare const SubAgentSchema: z.ZodObject<{
397
397
  providerSecretId: z.ZodOptional<z.ZodString>;
398
398
  providerApiKeyId: z.ZodOptional<z.ZodString>;
399
399
  }, z.core.$strip>>>;
400
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
401
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
402
+ }, z.core.$strip>>>;
400
403
  }, z.core.$strip>;
401
404
  security: z.ZodNullable<z.ZodObject<{
402
405
  rateLimits: z.ZodObject<{
@@ -799,6 +802,9 @@ export declare const SubAgentSchema: z.ZodObject<{
799
802
  providerSecretId: z.ZodOptional<z.ZodString>;
800
803
  providerApiKeyId: z.ZodOptional<z.ZodString>;
801
804
  }, z.core.$strip>>>;
805
+ toolWorkingSet: z.ZodDefault<z.ZodOptional<z.ZodObject<{
806
+ mode: z.ZodDefault<z.ZodEnum<typeof AgentToolWorkingSetMode>>;
807
+ }, z.core.$strip>>>;
802
808
  }, z.core.$strip>;
803
809
  security: z.ZodNullable<z.ZodObject<{
804
810
  rateLimits: z.ZodObject<{
@@ -51,6 +51,15 @@ export declare enum EmbeddingModel {
51
51
  geminiEmbedding2 = "google/gemini-embedding-2"
52
52
  }
53
53
  export declare const EMBED_MODEL = EmbeddingModel.geminiEmbedding2;
54
+ /**
55
+ * Model that answers typed questions (yes/no, choice, score) with calibrated
56
+ * probabilities instead of text, through the gateway's `experimental_evaluate`
57
+ * (TypeSafe Jev). Out of the catalog like the embeddings: it decides for the
58
+ * platform, it never answers the user. Its gateway listing reports no ZDR,
59
+ * yet a ZDR request is served, routed to TypeSafe alone (measured
60
+ * 2026-09-28, scripts/spikeJevEvaluation.ts).
61
+ */
62
+ export declare const EVALUATION_MODEL = "typesafe-ai/jev";
54
63
  /**
55
64
  * Supported languages for documents and revised answers
56
65
  */