@8wave/ai-elements 0.115.0-beta.47 → 0.115.0-beta.52

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 (147) hide show
  1. package/README.md +1 -0
  2. package/dist/_chunks/{Agent-D3cVY0pk.js → Agent-CJbRpoZG.js} +38 -38
  3. package/dist/_chunks/Agent-CJbRpoZG.js.map +1 -0
  4. package/dist/_chunks/PkChatbotFilePreview-DcqwX9nI.js +256 -0
  5. package/dist/_chunks/PkChatbotFilePreview-DcqwX9nI.js.map +1 -0
  6. package/dist/_chunks/{PkStreamingMarkdown-DyvZ5xKK.js → PkStreamingMarkdown-B_qmgO9_.js} +728 -713
  7. package/dist/_chunks/PkStreamingMarkdown-B_qmgO9_.js.map +1 -0
  8. package/dist/_chunks/PkToolEditSpreadsheet-BSxYLcys.js +41 -0
  9. package/dist/_chunks/PkToolEditSpreadsheet-BSxYLcys.js.map +1 -0
  10. package/dist/_chunks/{PkToolRequestGeolocation-DjRmmYMk.js → PkToolRequestGeolocation-YW0ilIxN.js} +2 -2
  11. package/dist/_chunks/{PkToolRequestGeolocation-DjRmmYMk.js.map → PkToolRequestGeolocation-YW0ilIxN.js.map} +1 -1
  12. package/dist/_chunks/{PkToolRequestOAuthConnection-CJ8dg2RY.js → PkToolRequestOAuthConnection-Cx4aFL5g.js} +2 -2
  13. package/dist/_chunks/{PkToolRequestOAuthConnection-CJ8dg2RY.js.map → PkToolRequestOAuthConnection-Cx4aFL5g.js.map} +1 -1
  14. package/dist/_chunks/{PkToolShowArtifact-Bk-xmGxl.js → PkToolShowArtifact-Bgj02cPe.js} +2 -2
  15. package/dist/_chunks/{PkToolShowArtifact-Bk-xmGxl.js.map → PkToolShowArtifact-Bgj02cPe.js.map} +1 -1
  16. package/dist/_chunks/{PkToolShowContactForm-B0o6CY0Q.js → PkToolShowContactForm-Die8UpNv.js} +2 -2
  17. package/dist/_chunks/{PkToolShowContactForm-B0o6CY0Q.js.map → PkToolShowContactForm-Die8UpNv.js.map} +1 -1
  18. package/dist/_chunks/{PkToolShowForm-C4-KAKPL.js → PkToolShowForm-Dmq95u6b.js} +5 -5
  19. package/dist/_chunks/{PkToolShowForm-C4-KAKPL.js.map → PkToolShowForm-Dmq95u6b.js.map} +1 -1
  20. package/dist/_chunks/{PkToolShowImageGallery-Jdo7p2mZ.js → PkToolShowImageGallery-CKuyTxih.js} +2 -2
  21. package/dist/_chunks/{PkToolShowImageGallery-Jdo7p2mZ.js.map → PkToolShowImageGallery-CKuyTxih.js.map} +1 -1
  22. package/dist/_chunks/{PkToolShowProductList-Cfk865KB.js → PkToolShowProductList-DjS9nvXe.js} +2 -2
  23. package/dist/_chunks/{PkToolShowProductList-Cfk865KB.js.map → PkToolShowProductList-DjS9nvXe.js.map} +1 -1
  24. package/dist/_chunks/{PkToolShowSources-qqUbdWzN.js → PkToolShowSources-MJRFeqMA.js} +3 -3
  25. package/dist/_chunks/{PkToolShowSources-qqUbdWzN.js.map → PkToolShowSources-MJRFeqMA.js.map} +1 -1
  26. package/dist/_chunks/{PkToolShowSuggestedReply-Dk6Nu9cG.js → PkToolShowSuggestedReply-DPVS3C74.js} +2 -2
  27. package/dist/_chunks/{PkToolShowSuggestedReply-Dk6Nu9cG.js.map → PkToolShowSuggestedReply-DPVS3C74.js.map} +1 -1
  28. package/dist/_chunks/{PkToolShowVideo-D07i4hVd.js → PkToolShowVideo-DnvvRE7H.js} +2 -2
  29. package/dist/_chunks/{PkToolShowVideo-D07i4hVd.js.map → PkToolShowVideo-DnvvRE7H.js.map} +1 -1
  30. package/dist/_chunks/{PkToolShowWebPages-ksXRNsDK.js → PkToolShowWebPages-CYbiGa7e.js} +2 -2
  31. package/dist/_chunks/{PkToolShowWebPages-ksXRNsDK.js.map → PkToolShowWebPages-CYbiGa7e.js.map} +1 -1
  32. package/dist/_chunks/{chatImagePolicy-B1iRRLAB.js → chatImagePolicy-C5eH4Cpq.js} +2 -2
  33. package/dist/_chunks/{chatImagePolicy-B1iRRLAB.js.map → chatImagePolicy-C5eH4Cpq.js.map} +1 -1
  34. package/dist/_chunks/{markdown-DOitQ2jz.js → markdown-qIVVfGoX.js} +135 -62
  35. package/dist/_chunks/markdown-qIVVfGoX.js.map +1 -0
  36. package/dist/ai-elements.es.js +2706 -2872
  37. package/dist/ai-elements.es.js.map +1 -1
  38. package/dist-vue/PkChatbot.js +1 -1
  39. package/dist-vue/PkChatbotEmptyState.js +1 -1
  40. package/dist-vue/PkChatbotFilePreview.js +1 -1
  41. package/dist-vue/PkChatbotInput.js +1 -1
  42. package/dist-vue/PkChatbotMessages.js +1 -1
  43. package/dist-vue/PkChatbotStepPayload.js +1 -1
  44. package/dist-vue/PkChatbotStepToolDetail.js +1 -1
  45. package/dist-vue/PkChatbotSteps.js +1 -1
  46. package/dist-vue/PkChatbotViewChat.js +1 -1
  47. package/dist-vue/PkChatbotViewConversations.js +1 -1
  48. package/dist-vue/PkChatbotViewFiles.js +1 -1
  49. package/dist-vue/PkChatbotViewProfile.js +1 -1
  50. package/dist-vue/_chunks/{Agent-C4p46YGt.js → Agent---jwXeaB.js} +69 -69
  51. package/dist-vue/_chunks/Agent---jwXeaB.js.map +1 -0
  52. package/dist-vue/_chunks/{Document-B9QaYHKT.js → Document-DmBTgjd4.js} +157 -84
  53. package/dist-vue/_chunks/Document-DmBTgjd4.js.map +1 -0
  54. package/dist-vue/_chunks/{PkChatbot-BkMe7zxp.js → PkChatbot-W9tO1H9i.js} +8 -8
  55. package/dist-vue/_chunks/{PkChatbot-BkMe7zxp.js.map → PkChatbot-W9tO1H9i.js.map} +1 -1
  56. package/dist-vue/_chunks/{PkChatbotEmptyState-HElKT2OO.js → PkChatbotEmptyState-BY3f3T0T.js} +2 -2
  57. package/dist-vue/_chunks/{PkChatbotEmptyState-HElKT2OO.js.map → PkChatbotEmptyState-BY3f3T0T.js.map} +1 -1
  58. package/dist-vue/_chunks/{PkChatbotFilePreview-CwiVQDF2.js → PkChatbotFilePreview-Dq9JBX9U.js} +5 -3
  59. package/dist-vue/_chunks/PkChatbotFilePreview-Dq9JBX9U.js.map +1 -0
  60. package/dist-vue/_chunks/{PkChatbotInput-BykvFqbm.js → PkChatbotInput-C5l6QDQY.js} +3 -3
  61. package/dist-vue/_chunks/{PkChatbotInput-BykvFqbm.js.map → PkChatbotInput-C5l6QDQY.js.map} +1 -1
  62. package/dist-vue/_chunks/PkChatbotMessages-3RZER9PO.js +769 -0
  63. package/dist-vue/_chunks/PkChatbotMessages-3RZER9PO.js.map +1 -0
  64. package/dist-vue/_chunks/{PkChatbotStepPayload-DY0AzM6s.js → PkChatbotStepPayload-C-xnhmzZ.js} +2 -2
  65. package/dist-vue/_chunks/{PkChatbotStepPayload-DY0AzM6s.js.map → PkChatbotStepPayload-C-xnhmzZ.js.map} +1 -1
  66. package/dist-vue/_chunks/{PkChatbotStepToolDetail-AXtXQVQY.js → PkChatbotStepToolDetail-Cko1vU0N.js} +3 -3
  67. package/dist-vue/_chunks/{PkChatbotStepToolDetail-AXtXQVQY.js.map → PkChatbotStepToolDetail-Cko1vU0N.js.map} +1 -1
  68. package/dist-vue/_chunks/PkChatbotSteps-BkZ3Kq2M.js +191 -0
  69. package/dist-vue/_chunks/{PkChatbotSteps-B-yrfTat.js.map → PkChatbotSteps-BkZ3Kq2M.js.map} +1 -1
  70. package/dist-vue/_chunks/PkChatbotViewChat-BFImSy1X.js +789 -0
  71. package/dist-vue/_chunks/PkChatbotViewChat-BFImSy1X.js.map +1 -0
  72. package/dist-vue/_chunks/{PkChatbotViewConversations-C9h_bBIc.js → PkChatbotViewConversations-C6T4ZxxX.js} +2 -2
  73. package/dist-vue/_chunks/{PkChatbotViewConversations-C9h_bBIc.js.map → PkChatbotViewConversations-C6T4ZxxX.js.map} +1 -1
  74. package/dist-vue/_chunks/PkChatbotViewFiles-CMQdbZN6.js +125 -0
  75. package/dist-vue/_chunks/PkChatbotViewFiles-CMQdbZN6.js.map +1 -0
  76. package/dist-vue/_chunks/{PkChatbotViewProfile-CFR0B99Z.js → PkChatbotViewProfile-CDCy1LEX.js} +2 -2
  77. package/dist-vue/_chunks/{PkChatbotViewProfile-CFR0B99Z.js.map → PkChatbotViewProfile-CDCy1LEX.js.map} +1 -1
  78. package/dist-vue/_chunks/{PkStreamingMarkdown-XJBXdSG2.js → PkStreamingMarkdown-DJG-aPx2.js} +3 -3
  79. package/dist-vue/_chunks/{PkStreamingMarkdown-XJBXdSG2.js.map → PkStreamingMarkdown-DJG-aPx2.js.map} +1 -1
  80. package/dist-vue/_chunks/{PkSvgViewer-D-0M5bqg.js → PkSvgViewer-D1y8hZRW.js} +2 -2
  81. package/dist-vue/_chunks/{PkSvgViewer-D-0M5bqg.js.map → PkSvgViewer-D1y8hZRW.js.map} +1 -1
  82. package/dist-vue/_chunks/PkToolEditSpreadsheet-BHh7NUdR.js +40 -0
  83. package/dist-vue/_chunks/PkToolEditSpreadsheet-BHh7NUdR.js.map +1 -0
  84. package/dist-vue/_chunks/{PkToolRequestGeolocation-DpvsFEga.js → PkToolRequestGeolocation-Ccbhljmn.js} +2 -2
  85. package/dist-vue/_chunks/{PkToolRequestGeolocation-DpvsFEga.js.map → PkToolRequestGeolocation-Ccbhljmn.js.map} +1 -1
  86. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-DRefs-S1.js → PkToolRequestOAuthConnection-BXf5ZRzR.js} +2 -2
  87. package/dist-vue/_chunks/{PkToolRequestOAuthConnection-DRefs-S1.js.map → PkToolRequestOAuthConnection-BXf5ZRzR.js.map} +1 -1
  88. package/dist-vue/_chunks/{PkToolShowArtifact-BopCMkyZ.js → PkToolShowArtifact-BsfbvfVC.js} +2 -2
  89. package/dist-vue/_chunks/{PkToolShowArtifact-BopCMkyZ.js.map → PkToolShowArtifact-BsfbvfVC.js.map} +1 -1
  90. package/dist-vue/_chunks/{PkToolShowContactForm-C6F_DdBu.js → PkToolShowContactForm-C-YbtBlG.js} +2 -2
  91. package/dist-vue/_chunks/{PkToolShowContactForm-C6F_DdBu.js.map → PkToolShowContactForm-C-YbtBlG.js.map} +1 -1
  92. package/dist-vue/_chunks/{PkToolShowDiagram-7-m7VrED.js → PkToolShowDiagram-CIHVrQ3e.js} +3 -3
  93. package/dist-vue/_chunks/{PkToolShowDiagram-7-m7VrED.js.map → PkToolShowDiagram-CIHVrQ3e.js.map} +1 -1
  94. package/dist-vue/_chunks/{PkToolShowForm-DEr8wDJi.js → PkToolShowForm-BwYJhEVO.js} +6 -6
  95. package/dist-vue/_chunks/{PkToolShowForm-DEr8wDJi.js.map → PkToolShowForm-BwYJhEVO.js.map} +1 -1
  96. package/dist-vue/_chunks/{PkToolShowImageGallery-D44wf_u3.js → PkToolShowImageGallery-1A9zyOVn.js} +3 -3
  97. package/dist-vue/_chunks/{PkToolShowImageGallery-D44wf_u3.js.map → PkToolShowImageGallery-1A9zyOVn.js.map} +1 -1
  98. package/dist-vue/_chunks/{PkToolShowProductList-C6CVRUlD.js → PkToolShowProductList-D61i6AMs.js} +2 -2
  99. package/dist-vue/_chunks/{PkToolShowProductList-C6CVRUlD.js.map → PkToolShowProductList-D61i6AMs.js.map} +1 -1
  100. package/dist-vue/_chunks/{PkToolShowSources-DzUNanmK.js → PkToolShowSources-BQpdJE_m.js} +3 -3
  101. package/dist-vue/_chunks/{PkToolShowSources-DzUNanmK.js.map → PkToolShowSources-BQpdJE_m.js.map} +1 -1
  102. package/dist-vue/_chunks/{PkToolShowSuggestedReply-DhNtI5gJ.js → PkToolShowSuggestedReply-D3jLsbKJ.js} +2 -2
  103. package/dist-vue/_chunks/{PkToolShowSuggestedReply-DhNtI5gJ.js.map → PkToolShowSuggestedReply-D3jLsbKJ.js.map} +1 -1
  104. package/dist-vue/_chunks/{PkToolShowVideo-HbQzTMh5.js → PkToolShowVideo-DUdkb3qb.js} +2 -2
  105. package/dist-vue/_chunks/{PkToolShowVideo-HbQzTMh5.js.map → PkToolShowVideo-DUdkb3qb.js.map} +1 -1
  106. package/dist-vue/_chunks/{PkToolShowWebPages-Ct1HaCSq.js → PkToolShowWebPages-BeeBiv9R.js} +2 -2
  107. package/dist-vue/_chunks/{PkToolShowWebPages-Ct1HaCSq.js.map → PkToolShowWebPages-BeeBiv9R.js.map} +1 -1
  108. package/dist-vue/_chunks/{createChatbotApiClient-B2PvUG07.js → createChatbotApiClient-CDrs7NwO.js} +22 -18
  109. package/dist-vue/_chunks/{createChatbotApiClient-B2PvUG07.js.map → createChatbotApiClient-CDrs7NwO.js.map} +1 -1
  110. package/dist-vue/_chunks/{useChatbotStore-Cj_UmNH3.js → useChatbotStore-D6YNk8Rx.js} +6 -4
  111. package/dist-vue/_chunks/useChatbotStore-D6YNk8Rx.js.map +1 -0
  112. package/dist-vue/_chunks/utils-roi6YVNC.js +199 -0
  113. package/dist-vue/_chunks/utils-roi6YVNC.js.map +1 -0
  114. package/dist-vue/api.js +1 -1
  115. package/dist-vue/composables.js +67 -11
  116. package/dist-vue/composables.js.map +1 -1
  117. package/dist-vue/index.js +3483 -3472
  118. package/dist-vue/index.js.map +1 -1
  119. package/dist-vue/locales.js +14 -14
  120. package/dist-vue/packages/components/src/chat/PkChatbotFilePreview.d.ts +5 -0
  121. package/dist-vue/packages/components/src/chat/PkToolEditSpreadsheet.d.ts +14 -0
  122. package/dist-vue/packages/components/src/chat/utils.d.ts +8 -0
  123. package/dist-vue/packages/composable/src/chatbot/api/createChatbotApiClient.d.ts +7 -1
  124. package/dist-vue/packages/composable/src/chatbot/useChatbotStore.d.ts +12 -0
  125. package/dist-vue/packages/composable/src/useFileRow.d.ts +21 -0
  126. package/dist-vue/packages/models/src/schema/Agent.d.ts +14 -0
  127. package/dist-vue/packages/models/src/schema/Document.d.ts +173 -0
  128. package/dist-vue/packages/models/src/schema/Tabular.d.ts +181 -0
  129. package/dist-vue/packages/models/src/schema/index.d.ts +1 -0
  130. package/dist-vue/style.css +1 -1
  131. package/package.json +1 -1
  132. package/dist/_chunks/Agent-D3cVY0pk.js.map +0 -1
  133. package/dist/_chunks/PkStreamingMarkdown-DyvZ5xKK.js.map +0 -1
  134. package/dist/_chunks/markdown-DOitQ2jz.js.map +0 -1
  135. package/dist-vue/_chunks/Agent-C4p46YGt.js.map +0 -1
  136. package/dist-vue/_chunks/Document-B9QaYHKT.js.map +0 -1
  137. package/dist-vue/_chunks/PkChatbotFilePreview-CwiVQDF2.js.map +0 -1
  138. package/dist-vue/_chunks/PkChatbotMessages-wH9wxc6Y.js +0 -769
  139. package/dist-vue/_chunks/PkChatbotMessages-wH9wxc6Y.js.map +0 -1
  140. package/dist-vue/_chunks/PkChatbotSteps-B-yrfTat.js +0 -191
  141. package/dist-vue/_chunks/PkChatbotViewChat-CCcMnVkM.js +0 -784
  142. package/dist-vue/_chunks/PkChatbotViewChat-CCcMnVkM.js.map +0 -1
  143. package/dist-vue/_chunks/PkChatbotViewFiles-BkoXgGE6.js +0 -111
  144. package/dist-vue/_chunks/PkChatbotViewFiles-BkoXgGE6.js.map +0 -1
  145. package/dist-vue/_chunks/useChatbotStore-Cj_UmNH3.js.map +0 -1
  146. package/dist-vue/_chunks/utils-DXXzMVU3.js +0 -184
  147. package/dist-vue/_chunks/utils-DXXzMVU3.js.map +0 -1
@@ -154,6 +154,7 @@ var e = {
154
154
  mimeTypeImages: "Images",
155
155
  mimeTypeDocuments: "Documents",
156
156
  mimeTypeText: "Text",
157
+ mimeTypeSpreadsheets: "Spreadsheets (.xlsx)",
157
158
  general: "General",
158
159
  style: "Style",
159
160
  tools: "Tools",
@@ -473,11 +474,9 @@ var e = {
473
474
  },
474
475
  userFiles: {
475
476
  chatFilesTitle: "Files in this chat",
476
- excludeConfirm: "The assistant will not be able to search it any more. It stays in the chat you uploaded it to.",
477
477
  chatFilesEmpty: "No files uploaded in this chat.",
478
478
  open: "Open file",
479
- untitled: "Untitled file",
480
- exclude: "Remove file"
479
+ untitled: "Untitled file"
481
480
  },
482
481
  twoFactor: {
483
482
  challengeBackup: "Enter one of the backup codes you saved.",
@@ -513,6 +512,7 @@ var e = {
513
512
  steps: "Processing",
514
513
  stepCount: "{n} step | {n} steps",
515
514
  stepError: "Error",
515
+ editSpreadsheetCells: "{count} cell changed | {count} cells changed",
516
516
  requestGeolocation: "Requesting location...",
517
517
  requestOAuthConnectionSuccess: "Successfully connected to {name}.",
518
518
  requestOAuthConnection: "Connecting...",
@@ -526,6 +526,9 @@ var e = {
526
526
  searchingDocuments: "Memory search...",
527
527
  expandChunkContext: "Reading more context...",
528
528
  readDocumentFile: "Reading the original document...",
529
+ readSpreadsheet: "Reading the spreadsheet...",
530
+ editSpreadsheet: "Editing the spreadsheet...",
531
+ querySpreadsheet: "Querying the spreadsheet...",
529
532
  geocode: "Looking up a location...",
530
533
  getWeather: "Fetching weather data...",
531
534
  recallUserMemory: "Recalling user memories...",
@@ -554,10 +557,7 @@ var e = {
554
557
  reasoning: "Reasoning...",
555
558
  streaming: "Loading..."
556
559
  },
557
- confirmTitle: {
558
- deleteMyConversations: "Delete all your conversations?",
559
- excludeUserFile: "Remove this file from your files?"
560
- },
560
+ confirmTitle: { deleteMyConversations: "Delete all your conversations?" },
561
561
  toolApproval: {
562
562
  expired: "This request is no longer answerable: the action was not performed.",
563
563
  prompt: "Your confirmation is needed to continue:"
@@ -753,6 +753,7 @@ var e = {
753
753
  mimeTypeImages: "Immagini",
754
754
  mimeTypeDocuments: "Documenti",
755
755
  mimeTypeText: "Testo",
756
+ mimeTypeSpreadsheets: "Fogli di calcolo (.xlsx)",
756
757
  general: "Generale",
757
758
  style: "Stile",
758
759
  tools: "Tool",
@@ -1072,11 +1073,9 @@ var e = {
1072
1073
  },
1073
1074
  userFiles: {
1074
1075
  chatFilesTitle: "File in questa chat",
1075
- excludeConfirm: "L'assistente non potrà più cercarlo. Resta nella chat in cui lo avete caricato.",
1076
1076
  chatFilesEmpty: "Nessun file caricato in questa chat.",
1077
1077
  open: "Apri file",
1078
- untitled: "File senza nome",
1079
- exclude: "Rimuovi file"
1078
+ untitled: "File senza nome"
1080
1079
  },
1081
1080
  twoFactor: {
1082
1081
  challengeBackup: "Scrivi uno dei codici di recupero che hai salvato.",
@@ -1112,6 +1111,7 @@ var e = {
1112
1111
  steps: "Elaborazione",
1113
1112
  stepCount: "{n} passaggio | {n} passaggi",
1114
1113
  stepError: "Errore",
1114
+ editSpreadsheetCells: "{count} cella modificata | {count} celle modificate",
1115
1115
  requestGeolocation: "Richiesta posizione...",
1116
1116
  requestOAuthConnectionSuccess: "Connessione a {name} riuscita.",
1117
1117
  requestOAuthConnection: "Connessione in corso...",
@@ -1125,6 +1125,9 @@ var e = {
1125
1125
  searchingDocuments: "Ricerca nella memoria...",
1126
1126
  expandChunkContext: "Lettura di altro contesto...",
1127
1127
  readDocumentFile: "Lettura del documento originale...",
1128
+ readSpreadsheet: "Lettura del foglio di calcolo...",
1129
+ editSpreadsheet: "Modifica del foglio di calcolo...",
1130
+ querySpreadsheet: "Interrogazione del foglio di calcolo...",
1128
1131
  geocode: "Ricerca della posizione...",
1129
1132
  getWeather: "Recupero dati meteo...",
1130
1133
  recallUserMemory: "Richiamo dei ricordi utente...",
@@ -1153,10 +1156,7 @@ var e = {
1153
1156
  reasoning: "Ragionamento...",
1154
1157
  streaming: "Caricamento..."
1155
1158
  },
1156
- confirmTitle: {
1157
- deleteMyConversations: "Eliminare tutte le vostre conversazioni?",
1158
- excludeUserFile: "Rimuovere questo file dai vostri file?"
1159
- },
1159
+ confirmTitle: { deleteMyConversations: "Eliminare tutte le vostre conversazioni?" },
1160
1160
  toolApproval: {
1161
1161
  expired: "Questa richiesta non è più confermabile: l'azione non è stata eseguita.",
1162
1162
  prompt: "Per continuare serve la tua conferma:"
@@ -14,6 +14,11 @@ type __VLS_Props = {
14
14
  * message log where the details matter.
15
15
  */
16
16
  compact?: boolean;
17
+ /**
18
+ * Keeps the download button visible instead of revealing it on hover:
19
+ * for a file the agent wrote, which the user is there to download.
20
+ */
21
+ showDownload?: boolean;
17
22
  };
18
23
  declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
19
24
  remove: () => any;
@@ -0,0 +1,14 @@
1
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ /**
3
+ * The version an `editSpreadsheet` call wrote, as a file to download.
4
+ * Drawn once the call has an output: while it runs, the feed's activity
5
+ * indicator names it, and a refused edit is explained by the answer.
6
+ */
7
+ type __VLS_Props = {
8
+ part: unknown;
9
+ /** The authenticated download URL of a file stored in this chat. */
10
+ fileUrl: (storedFileName: string) => string;
11
+ };
12
+ declare const __VLS_export: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
@@ -16,6 +16,14 @@ export declare function mergeConsecutiveTextParts(parts: UIMessage['parts']): UI
16
16
  * keeps every call, the refused one included.
17
17
  */
18
18
  export declare function dropCorrectedWidgetErrors(parts: UIMessage['parts']): UIMessage['parts'];
19
+ /** The parts with the file outputs moved last, in their own order. */
20
+ export declare function moveFileOutputsLast(parts: UIMessage['parts']): UIMessage['parts'];
21
+ /**
22
+ * The key of a part in the feed. Its position, except for a file output: that
23
+ * one is always last, so its position moves as the answer grows, and keyed by
24
+ * it the card would be redrawn at every new part.
25
+ */
26
+ export declare function feedPartKey(part: UIMessage['parts'][number], index: number): string | number;
19
27
  export declare function isStreamingPart(part: UIMessage['parts'][number] | null | undefined): part is Extract<UIMessage['parts'][number], {
20
28
  streaming?: boolean;
21
29
  }>;
@@ -19,9 +19,13 @@ export interface SubmitLeadPayload {
19
19
  chatId: string;
20
20
  [key: string]: unknown;
21
21
  }
22
- /** A file from the user's "My files" KB, as listed for a chat. */
22
+ /** A file from the user's "My files" KB, or a spreadsheet of the chat with its
23
+ * versions, as listed for a chat. */
23
24
  export interface ChatbotFile {
24
25
  documentId: string;
26
+ kind: 'document' | 'spreadsheet';
27
+ /** For a spreadsheet version, the attachment it is a version of. */
28
+ sourceAttachmentId: string | null;
25
29
  name: string | null;
26
30
  mimeType: string | null;
27
31
  indexStatus: string;
@@ -38,6 +42,8 @@ export interface ChatbotApiClient {
38
42
  getAgent(orgSlug: string, agentId: string): Promise<AgentPublic>;
39
43
  getAgentAccess(orgSlug: string, agentId: string): Promise<AgentAccess>;
40
44
  getMediaUrl(agentId: string, chatId: string, storedFileName: string): string;
45
+ /** Like {@link getMediaUrl}, served as an attachment: the browser saves it. */
46
+ getMediaDownloadUrl(agentId: string, chatId: string, storedFileName: string): string;
41
47
  appendAuthToken(url: string): string;
42
48
  uploadMedia(agentId: string, chatId: string, file: File): Promise<MediaSource>;
43
49
  getChatEndpoint(agentId: string, type?: 'chat' | 'reasoning'): string;
@@ -1558,12 +1558,16 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
1558
1558
  isLoadingConversations: globalThis.Ref<boolean, boolean>;
1559
1559
  chatFiles: globalThis.Ref<{
1560
1560
  documentId: string;
1561
+ kind: "document" | "spreadsheet";
1562
+ sourceAttachmentId: string | null;
1561
1563
  name: string | null;
1562
1564
  mimeType: string | null;
1563
1565
  indexStatus: string;
1564
1566
  createdAt: string;
1565
1567
  }[], ChatbotFile[] | {
1566
1568
  documentId: string;
1569
+ kind: "document" | "spreadsheet";
1570
+ sourceAttachmentId: string | null;
1567
1571
  name: string | null;
1568
1572
  mimeType: string | null;
1569
1573
  indexStatus: string;
@@ -3304,12 +3308,16 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
3304
3308
  isLoadingConversations: globalThis.Ref<boolean, boolean>;
3305
3309
  chatFiles: globalThis.Ref<{
3306
3310
  documentId: string;
3311
+ kind: "document" | "spreadsheet";
3312
+ sourceAttachmentId: string | null;
3307
3313
  name: string | null;
3308
3314
  mimeType: string | null;
3309
3315
  indexStatus: string;
3310
3316
  createdAt: string;
3311
3317
  }[], ChatbotFile[] | {
3312
3318
  documentId: string;
3319
+ kind: "document" | "spreadsheet";
3320
+ sourceAttachmentId: string | null;
3313
3321
  name: string | null;
3314
3322
  mimeType: string | null;
3315
3323
  indexStatus: string;
@@ -5050,12 +5058,16 @@ export declare function useChatbotStore(agentId: string): Store<`chatbot-${strin
5050
5058
  isLoadingConversations: globalThis.Ref<boolean, boolean>;
5051
5059
  chatFiles: globalThis.Ref<{
5052
5060
  documentId: string;
5061
+ kind: "document" | "spreadsheet";
5062
+ sourceAttachmentId: string | null;
5053
5063
  name: string | null;
5054
5064
  mimeType: string | null;
5055
5065
  indexStatus: string;
5056
5066
  createdAt: string;
5057
5067
  }[], ChatbotFile[] | {
5058
5068
  documentId: string;
5069
+ kind: "document" | "spreadsheet";
5070
+ sourceAttachmentId: string | null;
5059
5071
  name: string | null;
5060
5072
  mimeType: string | null;
5061
5073
  indexStatus: string;
@@ -22,3 +22,24 @@ export declare function useFileRow(urls: {
22
22
  openFile: (file: FileRowLike, download?: boolean) => void;
23
23
  formatDate: (iso: string) => string;
24
24
  };
25
+ /** What tells a spreadsheet row apart from a KB document. */
26
+ export interface FileKindLike {
27
+ kind?: 'document' | 'spreadsheet';
28
+ sourceAttachmentId?: string | null;
29
+ }
30
+ /**
31
+ * The wording that depends on what a "My files" row is. A KB document is a
32
+ * copy of the upload: removing it only takes it out of the assistant's reach.
33
+ * A spreadsheet is the chat attachment itself and never enters the KB: its row
34
+ * says so, and removing it deletes it from its chat with every version the
35
+ * assistant wrote of it.
36
+ */
37
+ export declare function useUserFileKind(): {
38
+ isSpreadsheet: (file: FileKindLike) => boolean;
39
+ kindNote: (file: FileKindLike) => string | undefined;
40
+ removeLabel: (file: FileKindLike) => string;
41
+ removeConfirm: (file: FileKindLike) => {
42
+ title: string;
43
+ questionLabel: string;
44
+ };
45
+ };
@@ -320,6 +320,13 @@ export declare enum AgentBuiltInTool {
320
320
  SearchInKnowledgeBase = "searchInKnowledgeBase",
321
321
  SearchInUserFiles = "searchInUserFiles",
322
322
  UserMemory = "userMemory",
323
+ /**
324
+ * `readSpreadsheet`, `editSpreadsheet` and `querySpreadsheet`, on a chat
325
+ * with an attached .xlsx.
326
+ */
327
+ Spreadsheet = "spreadsheet",
328
+ /** `querySpreadsheet` on the spreadsheets of the knowledge base. */
329
+ QuerySpreadsheet = "querySpreadsheet",
323
330
  RunWorker = "runWorker",
324
331
  FetchTeamsChannelHistory = "fetchTeamsChannelHistory",
325
332
  ShowArtifact = "showArtifact",
@@ -1091,6 +1098,13 @@ export declare const AgentInterfaceSchema: z.ZodObject<{
1091
1098
  export type AgentInterface = z.infer<typeof AgentInterfaceSchema>;
1092
1099
  export declare const CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES: readonly ["image/jpeg", "image/png", "image/gif", "image/webp", "application/pdf", "text/plain", "text/markdown", "text/csv"];
1093
1100
  export type ChatFileUploadMimeType = (typeof CHAT_FILE_UPLOAD_DEFAULT_MIME_TYPES)[number];
1101
+ /**
1102
+ * An Excel workbook (.xlsx). Opt-in, never in the defaults: an agent accepts it
1103
+ * when its admin turns spreadsheets on, and the model then reads and edits it
1104
+ * through the spreadsheet tools instead of receiving the file (spec
1105
+ * `chat-spreadsheet-editing.md`).
1106
+ */
1107
+ export declare const SPREADSHEET_MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
1094
1108
  export declare const CHAT_FILE_UPLOAD_MAX_FILE_SIZE_BYTES = 104857600;
1095
1109
  export declare const AgentFileUploadSchema: z.ZodObject<{
1096
1110
  enabled: z.ZodDefault<z.ZodBoolean>;
@@ -1,4 +1,5 @@
1
1
  import { SupportedLanguage, ExtractionStrategy, BrowserEngine } from './constants';
2
+ import { SpreadsheetConversionJob } from './Tabular';
2
3
  import { StoragePolicy } from './Media';
3
4
  import * as z from 'zod';
4
5
  /**
@@ -41,6 +42,12 @@ export interface SearchIndexFacts {
41
42
  searchIndexFailedAt: string | null | undefined;
42
43
  /** Whether the organization can compute embeddings right now. */
43
44
  canEmbed: boolean;
45
+ /**
46
+ * A spreadsheet read as tables and converted (`metadata.tabular`, index
47
+ * status `success`): the agent queries it with SQL, and it has no chunks
48
+ * by design.
49
+ */
50
+ tabular?: boolean;
44
51
  }
45
52
  /**
46
53
  * The searchability of a document, from its chunk flags.
@@ -70,6 +77,7 @@ export declare const ConversionOptionsSchema: z.ZodObject<{
70
77
  language: z.ZodOptional<z.ZodString>;
71
78
  forceOcr: z.ZodDefault<z.ZodBoolean>;
72
79
  pages: z.ZodOptional<z.ZodString>;
80
+ asTables: z.ZodOptional<z.ZodBoolean>;
73
81
  }, z.core.$strip>;
74
82
  export type ConversionOptions = z.infer<typeof ConversionOptionsSchema>;
75
83
  /**
@@ -478,6 +486,39 @@ export interface DocumentProcessingJob {
478
486
  */
479
487
  sourceId?: string;
480
488
  }
489
+ /** Everything the `document-processing` queue carries. */
490
+ export type DocumentQueueMessage = DocumentProcessingJob | SpreadsheetConversionJob;
491
+ /**
492
+ * Why a document is not processed because of the organization's AI settings,
493
+ * as `DocumentRefusal` in `database/documentAi` says.
494
+ */
495
+ export declare const DOCUMENT_REFUSAL_REASONS: readonly ["gateway-disabled", "endpoint-off", "model-unavailable", "no-model", "format-unsupported", "credit-exhausted"];
496
+ export type DocumentRefusalReason = (typeof DOCUMENT_REFUSAL_REASONS)[number];
497
+ /**
498
+ * Why a file is refused for what it is, as `UnprocessableFileError` in the
499
+ * document processor says.
500
+ */
501
+ export declare const UNPROCESSABLE_FILE_REASONS: readonly ["file-unreadable", "file-protected", "file-type-unsupported", "spreadsheet-protected", "spreadsheet-unreadable", "spreadsheet-macros", "spreadsheet-too-large", "spreadsheet-no-table"];
502
+ export type UnprocessableFileReason = (typeof UNPROCESSABLE_FILE_REASONS)[number];
503
+ /** Every `reason` a failed document can carry in `metadata.lastIndexError`. */
504
+ export declare const DOCUMENT_INDEX_ERROR_REASONS: readonly (DocumentRefusalReason | UnprocessableFileReason)[];
505
+ /**
506
+ * Why the last run of a document failed in a way no other attempt can change,
507
+ * as the processor records it in `metadata.lastIndexError`. A dead source URL
508
+ * carries its HTTP `status` and `url`; anything else one of the
509
+ * {@link DOCUMENT_INDEX_ERROR_REASONS}, with the `limitBytes` it went past
510
+ * when it is too large. `reason` stays a string here, so a row written by a
511
+ * newer processor still reads. `message` is the English one of the logs.
512
+ */
513
+ export declare const DocumentIndexErrorSchema: z.ZodObject<{
514
+ reason: z.ZodOptional<z.ZodString>;
515
+ status: z.ZodOptional<z.ZodNumber>;
516
+ url: z.ZodOptional<z.ZodString>;
517
+ limitBytes: z.ZodOptional<z.ZodNumber>;
518
+ message: z.ZodOptional<z.ZodString>;
519
+ at: z.ZodOptional<z.ZodString>;
520
+ }, z.core.$loose>;
521
+ export type DocumentIndexError = z.infer<typeof DocumentIndexErrorSchema>;
481
522
  /**
482
523
  * Metadata structure for document.metadata column
483
524
  * Consolidates all metadata from converters and source info
@@ -884,7 +925,51 @@ export declare const DocumentMetadataSchema: z.ZodObject<{
884
925
  language: z.ZodOptional<z.ZodString>;
885
926
  forceOcr: z.ZodDefault<z.ZodBoolean>;
886
927
  pages: z.ZodOptional<z.ZodString>;
928
+ asTables: z.ZodOptional<z.ZodBoolean>;
887
929
  }, z.core.$strip>>;
930
+ tabular: z.ZodOptional<z.ZodObject<{
931
+ converterVersion: z.ZodNumber;
932
+ tables: z.ZodArray<z.ZodObject<{
933
+ sheet: z.ZodString;
934
+ table: z.ZodString;
935
+ headerRow: z.ZodOptional<z.ZodNumber>;
936
+ rowCount: z.ZodNumber;
937
+ columns: z.ZodArray<z.ZodObject<{
938
+ name: z.ZodString;
939
+ type: z.ZodString;
940
+ column: z.ZodOptional<z.ZodString>;
941
+ formulas: z.ZodOptional<z.ZodNumber>;
942
+ mostly: z.ZodOptional<z.ZodObject<{
943
+ kind: z.ZodEnum<{
944
+ number: "number";
945
+ boolean: "boolean";
946
+ date: "date";
947
+ }>;
948
+ share: z.ZodString;
949
+ }, z.core.$strip>>;
950
+ }, z.core.$strip>>;
951
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
952
+ }, z.core.$strip>>;
953
+ skipped: z.ZodArray<z.ZodObject<{
954
+ sheet: z.ZodString;
955
+ reason: z.ZodEnum<{
956
+ chart: "chart";
957
+ "no-table": "no-table";
958
+ "too-wide": "too-wide";
959
+ unreadable: "unreadable";
960
+ }>;
961
+ }, z.core.$strip>>;
962
+ staleFormulas: z.ZodBoolean;
963
+ sourceHash: z.ZodString;
964
+ }, z.core.$strip>>;
965
+ lastIndexError: z.ZodCatch<z.ZodOptional<z.ZodObject<{
966
+ reason: z.ZodOptional<z.ZodString>;
967
+ status: z.ZodOptional<z.ZodNumber>;
968
+ url: z.ZodOptional<z.ZodString>;
969
+ limitBytes: z.ZodOptional<z.ZodNumber>;
970
+ message: z.ZodOptional<z.ZodString>;
971
+ at: z.ZodOptional<z.ZodString>;
972
+ }, z.core.$loose>>>;
888
973
  }, z.core.$loose>;
889
974
  export type DocumentMetadata = z.infer<typeof DocumentMetadataSchema>;
890
975
  /**
@@ -1324,7 +1409,51 @@ export declare const DocumentSchema: z.ZodObject<{
1324
1409
  language: z.ZodOptional<z.ZodString>;
1325
1410
  forceOcr: z.ZodDefault<z.ZodBoolean>;
1326
1411
  pages: z.ZodOptional<z.ZodString>;
1412
+ asTables: z.ZodOptional<z.ZodBoolean>;
1327
1413
  }, z.core.$strip>>;
1414
+ tabular: z.ZodOptional<z.ZodObject<{
1415
+ converterVersion: z.ZodNumber;
1416
+ tables: z.ZodArray<z.ZodObject<{
1417
+ sheet: z.ZodString;
1418
+ table: z.ZodString;
1419
+ headerRow: z.ZodOptional<z.ZodNumber>;
1420
+ rowCount: z.ZodNumber;
1421
+ columns: z.ZodArray<z.ZodObject<{
1422
+ name: z.ZodString;
1423
+ type: z.ZodString;
1424
+ column: z.ZodOptional<z.ZodString>;
1425
+ formulas: z.ZodOptional<z.ZodNumber>;
1426
+ mostly: z.ZodOptional<z.ZodObject<{
1427
+ kind: z.ZodEnum<{
1428
+ number: "number";
1429
+ boolean: "boolean";
1430
+ date: "date";
1431
+ }>;
1432
+ share: z.ZodString;
1433
+ }, z.core.$strip>>;
1434
+ }, z.core.$strip>>;
1435
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1436
+ }, z.core.$strip>>;
1437
+ skipped: z.ZodArray<z.ZodObject<{
1438
+ sheet: z.ZodString;
1439
+ reason: z.ZodEnum<{
1440
+ chart: "chart";
1441
+ "no-table": "no-table";
1442
+ "too-wide": "too-wide";
1443
+ unreadable: "unreadable";
1444
+ }>;
1445
+ }, z.core.$strip>>;
1446
+ staleFormulas: z.ZodBoolean;
1447
+ sourceHash: z.ZodString;
1448
+ }, z.core.$strip>>;
1449
+ lastIndexError: z.ZodCatch<z.ZodOptional<z.ZodObject<{
1450
+ reason: z.ZodOptional<z.ZodString>;
1451
+ status: z.ZodOptional<z.ZodNumber>;
1452
+ url: z.ZodOptional<z.ZodString>;
1453
+ limitBytes: z.ZodOptional<z.ZodNumber>;
1454
+ message: z.ZodOptional<z.ZodString>;
1455
+ at: z.ZodOptional<z.ZodString>;
1456
+ }, z.core.$loose>>>;
1328
1457
  }, z.core.$loose>;
1329
1458
  chunksCount: z.ZodOptional<z.ZodNumber>;
1330
1459
  redundantChunksCount: z.ZodOptional<z.ZodNumber>;
@@ -1780,7 +1909,51 @@ export declare const DocumentRestoreResultSchema: z.ZodObject<{
1780
1909
  language: z.ZodOptional<z.ZodString>;
1781
1910
  forceOcr: z.ZodDefault<z.ZodBoolean>;
1782
1911
  pages: z.ZodOptional<z.ZodString>;
1912
+ asTables: z.ZodOptional<z.ZodBoolean>;
1913
+ }, z.core.$strip>>;
1914
+ tabular: z.ZodOptional<z.ZodObject<{
1915
+ converterVersion: z.ZodNumber;
1916
+ tables: z.ZodArray<z.ZodObject<{
1917
+ sheet: z.ZodString;
1918
+ table: z.ZodString;
1919
+ headerRow: z.ZodOptional<z.ZodNumber>;
1920
+ rowCount: z.ZodNumber;
1921
+ columns: z.ZodArray<z.ZodObject<{
1922
+ name: z.ZodString;
1923
+ type: z.ZodString;
1924
+ column: z.ZodOptional<z.ZodString>;
1925
+ formulas: z.ZodOptional<z.ZodNumber>;
1926
+ mostly: z.ZodOptional<z.ZodObject<{
1927
+ kind: z.ZodEnum<{
1928
+ number: "number";
1929
+ boolean: "boolean";
1930
+ date: "date";
1931
+ }>;
1932
+ share: z.ZodString;
1933
+ }, z.core.$strip>>;
1934
+ }, z.core.$strip>>;
1935
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1936
+ }, z.core.$strip>>;
1937
+ skipped: z.ZodArray<z.ZodObject<{
1938
+ sheet: z.ZodString;
1939
+ reason: z.ZodEnum<{
1940
+ chart: "chart";
1941
+ "no-table": "no-table";
1942
+ "too-wide": "too-wide";
1943
+ unreadable: "unreadable";
1944
+ }>;
1945
+ }, z.core.$strip>>;
1946
+ staleFormulas: z.ZodBoolean;
1947
+ sourceHash: z.ZodString;
1783
1948
  }, z.core.$strip>>;
1949
+ lastIndexError: z.ZodCatch<z.ZodOptional<z.ZodObject<{
1950
+ reason: z.ZodOptional<z.ZodString>;
1951
+ status: z.ZodOptional<z.ZodNumber>;
1952
+ url: z.ZodOptional<z.ZodString>;
1953
+ limitBytes: z.ZodOptional<z.ZodNumber>;
1954
+ message: z.ZodOptional<z.ZodString>;
1955
+ at: z.ZodOptional<z.ZodString>;
1956
+ }, z.core.$loose>>>;
1784
1957
  }, z.core.$loose>;
1785
1958
  chunksCount: z.ZodOptional<z.ZodNumber>;
1786
1959
  redundantChunksCount: z.ZodOptional<z.ZodNumber>;
@@ -0,0 +1,181 @@
1
+ import * as z from 'zod';
2
+ export declare const TabularColumnSchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ type: z.ZodString;
5
+ column: z.ZodOptional<z.ZodString>;
6
+ formulas: z.ZodOptional<z.ZodNumber>;
7
+ mostly: z.ZodOptional<z.ZodObject<{
8
+ kind: z.ZodEnum<{
9
+ number: "number";
10
+ boolean: "boolean";
11
+ date: "date";
12
+ }>;
13
+ share: z.ZodString;
14
+ }, z.core.$strip>>;
15
+ }, z.core.$strip>;
16
+ export declare const TabularTableSchema: z.ZodObject<{
17
+ sheet: z.ZodString;
18
+ table: z.ZodString;
19
+ headerRow: z.ZodOptional<z.ZodNumber>;
20
+ rowCount: z.ZodNumber;
21
+ columns: z.ZodArray<z.ZodObject<{
22
+ name: z.ZodString;
23
+ type: z.ZodString;
24
+ column: z.ZodOptional<z.ZodString>;
25
+ formulas: z.ZodOptional<z.ZodNumber>;
26
+ mostly: z.ZodOptional<z.ZodObject<{
27
+ kind: z.ZodEnum<{
28
+ number: "number";
29
+ boolean: "boolean";
30
+ date: "date";
31
+ }>;
32
+ share: z.ZodString;
33
+ }, z.core.$strip>>;
34
+ }, z.core.$strip>>;
35
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
36
+ }, z.core.$strip>;
37
+ export declare const TabularSkippedSheetSchema: z.ZodObject<{
38
+ sheet: z.ZodString;
39
+ reason: z.ZodEnum<{
40
+ chart: "chart";
41
+ "no-table": "no-table";
42
+ "too-wide": "too-wide";
43
+ unreadable: "unreadable";
44
+ }>;
45
+ }, z.core.$strip>;
46
+ export declare const TabularConversionSchema: z.ZodObject<{
47
+ converterVersion: z.ZodNumber;
48
+ tables: z.ZodArray<z.ZodObject<{
49
+ sheet: z.ZodString;
50
+ table: z.ZodString;
51
+ headerRow: z.ZodOptional<z.ZodNumber>;
52
+ rowCount: z.ZodNumber;
53
+ columns: z.ZodArray<z.ZodObject<{
54
+ name: z.ZodString;
55
+ type: z.ZodString;
56
+ column: z.ZodOptional<z.ZodString>;
57
+ formulas: z.ZodOptional<z.ZodNumber>;
58
+ mostly: z.ZodOptional<z.ZodObject<{
59
+ kind: z.ZodEnum<{
60
+ number: "number";
61
+ boolean: "boolean";
62
+ date: "date";
63
+ }>;
64
+ share: z.ZodString;
65
+ }, z.core.$strip>>;
66
+ }, z.core.$strip>>;
67
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
68
+ }, z.core.$strip>>;
69
+ skipped: z.ZodArray<z.ZodObject<{
70
+ sheet: z.ZodString;
71
+ reason: z.ZodEnum<{
72
+ chart: "chart";
73
+ "no-table": "no-table";
74
+ "too-wide": "too-wide";
75
+ unreadable: "unreadable";
76
+ }>;
77
+ }, z.core.$strip>>;
78
+ staleFormulas: z.ZodBoolean;
79
+ }, z.core.$strip>;
80
+ export type TabularColumn = z.infer<typeof TabularColumnSchema>;
81
+ export type TabularTable = z.infer<typeof TabularTableSchema>;
82
+ export type TabularSkippedSheet = z.infer<typeof TabularSkippedSheetSchema>;
83
+ export type TabularConversion = z.infer<typeof TabularConversionSchema>;
84
+ /** The conversion of a chat attachment, in `chat_attachments.tabular`. */
85
+ export declare const TabularStateSchema: z.ZodObject<{
86
+ status: z.ZodEnum<{
87
+ pending: "pending";
88
+ ready: "ready";
89
+ failed: "failed";
90
+ }>;
91
+ requestedAt: z.ZodString;
92
+ conversion: z.ZodOptional<z.ZodObject<{
93
+ converterVersion: z.ZodNumber;
94
+ tables: z.ZodArray<z.ZodObject<{
95
+ sheet: z.ZodString;
96
+ table: z.ZodString;
97
+ headerRow: z.ZodOptional<z.ZodNumber>;
98
+ rowCount: z.ZodNumber;
99
+ columns: z.ZodArray<z.ZodObject<{
100
+ name: z.ZodString;
101
+ type: z.ZodString;
102
+ column: z.ZodOptional<z.ZodString>;
103
+ formulas: z.ZodOptional<z.ZodNumber>;
104
+ mostly: z.ZodOptional<z.ZodObject<{
105
+ kind: z.ZodEnum<{
106
+ number: "number";
107
+ boolean: "boolean";
108
+ date: "date";
109
+ }>;
110
+ share: z.ZodString;
111
+ }, z.core.$strip>>;
112
+ }, z.core.$strip>>;
113
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
114
+ }, z.core.$strip>>;
115
+ skipped: z.ZodArray<z.ZodObject<{
116
+ sheet: z.ZodString;
117
+ reason: z.ZodEnum<{
118
+ chart: "chart";
119
+ "no-table": "no-table";
120
+ "too-wide": "too-wide";
121
+ unreadable: "unreadable";
122
+ }>;
123
+ }, z.core.$strip>>;
124
+ staleFormulas: z.ZodBoolean;
125
+ }, z.core.$strip>>;
126
+ failure: z.ZodOptional<z.ZodString>;
127
+ failedConverterVersion: z.ZodOptional<z.ZodNumber>;
128
+ }, z.core.$strip>;
129
+ export type TabularState = z.infer<typeof TabularStateSchema>;
130
+ /** The conversion of a knowledge-base file, in `documents.metadata.tabular`. */
131
+ export declare const DocumentTabularSchema: z.ZodObject<{
132
+ converterVersion: z.ZodNumber;
133
+ tables: z.ZodArray<z.ZodObject<{
134
+ sheet: z.ZodString;
135
+ table: z.ZodString;
136
+ headerRow: z.ZodOptional<z.ZodNumber>;
137
+ rowCount: z.ZodNumber;
138
+ columns: z.ZodArray<z.ZodObject<{
139
+ name: z.ZodString;
140
+ type: z.ZodString;
141
+ column: z.ZodOptional<z.ZodString>;
142
+ formulas: z.ZodOptional<z.ZodNumber>;
143
+ mostly: z.ZodOptional<z.ZodObject<{
144
+ kind: z.ZodEnum<{
145
+ number: "number";
146
+ boolean: "boolean";
147
+ date: "date";
148
+ }>;
149
+ share: z.ZodString;
150
+ }, z.core.$strip>>;
151
+ }, z.core.$strip>>;
152
+ sample: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
153
+ }, z.core.$strip>>;
154
+ skipped: z.ZodArray<z.ZodObject<{
155
+ sheet: z.ZodString;
156
+ reason: z.ZodEnum<{
157
+ chart: "chart";
158
+ "no-table": "no-table";
159
+ "too-wide": "too-wide";
160
+ unreadable: "unreadable";
161
+ }>;
162
+ }, z.core.$strip>>;
163
+ staleFormulas: z.ZodBoolean;
164
+ sourceHash: z.ZodString;
165
+ }, z.core.$strip>;
166
+ export type DocumentTabular = z.infer<typeof DocumentTabularSchema>;
167
+ /** A knowledge-base spreadsheet an agent can query, with its schema. */
168
+ export interface TabularDocument {
169
+ id: string;
170
+ name: string;
171
+ tabular: DocumentTabular;
172
+ }
173
+ /**
174
+ * The `document-processing` message that asks for the conversion of a chat
175
+ * attachment, an uploaded spreadsheet or a version the agent wrote. It shares
176
+ * the documents' queue, so no new queue is needed in Azure.
177
+ */
178
+ export interface SpreadsheetConversionJob {
179
+ kind: 'spreadsheet';
180
+ attachmentId: string;
181
+ }