@ottocode/web-sdk 0.1.278 → 0.1.280

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 (48) hide show
  1. package/dist/components/chat/ChatInput.d.ts.map +1 -1
  2. package/dist/components/chat/ChatInputContainer.d.ts.map +1 -1
  3. package/dist/components/chat/NewSessionLanding.d.ts.map +1 -1
  4. package/dist/components/dashboard/UsageDashboard.d.ts +6 -0
  5. package/dist/components/dashboard/UsageDashboard.d.ts.map +1 -0
  6. package/dist/components/file-browser/FileViewerPanel.d.ts.map +1 -1
  7. package/dist/components/index.d.ts +1 -0
  8. package/dist/components/index.d.ts.map +1 -1
  9. package/dist/components/index.js +4201 -2669
  10. package/dist/components/index.js.map +25 -21
  11. package/dist/components/messages/MessagePartItem.d.ts.map +1 -1
  12. package/dist/components/messages/UserMessageGroup.d.ts.map +1 -1
  13. package/dist/components/messages/renderers/CopyAttachmentRenderer.d.ts +3 -0
  14. package/dist/components/messages/renderers/CopyAttachmentRenderer.d.ts.map +1 -0
  15. package/dist/components/messages/renderers/ReadImageRenderer.d.ts +3 -0
  16. package/dist/components/messages/renderers/ReadImageRenderer.d.ts.map +1 -0
  17. package/dist/components/messages/renderers/index.d.ts.map +1 -1
  18. package/dist/components/messages/renderers/types.d.ts +8 -0
  19. package/dist/components/messages/renderers/types.d.ts.map +1 -1
  20. package/dist/components/onboarding/OnboardingModal.d.ts.map +1 -1
  21. package/dist/components/settings/SettingsSidebar.d.ts +11 -1
  22. package/dist/components/settings/SettingsSidebar.d.ts.map +1 -1
  23. package/dist/components/workspace/ViewerTabs.d.ts.map +1 -1
  24. package/dist/hooks/index.js +113 -39
  25. package/dist/hooks/index.js.map +8 -7
  26. package/dist/hooks/useFileUpload.d.ts +19 -2
  27. package/dist/hooks/useFileUpload.d.ts.map +1 -1
  28. package/dist/hooks/usePreferences.d.ts +1 -0
  29. package/dist/hooks/usePreferences.d.ts.map +1 -1
  30. package/dist/index.js +4403 -2859
  31. package/dist/index.js.map +26 -21
  32. package/dist/lib/api-client/index.d.ts +2 -0
  33. package/dist/lib/api-client/index.d.ts.map +1 -1
  34. package/dist/lib/api-client/usage.d.ts +8 -0
  35. package/dist/lib/api-client/usage.d.ts.map +1 -0
  36. package/dist/lib/index.js +37 -1
  37. package/dist/lib/index.js.map +6 -5
  38. package/dist/lib/platform.d.ts +1 -0
  39. package/dist/lib/platform.d.ts.map +1 -1
  40. package/dist/stores/index.d.ts +1 -0
  41. package/dist/stores/index.d.ts.map +1 -1
  42. package/dist/stores/index.js +12 -1
  43. package/dist/stores/index.js.map +5 -4
  44. package/dist/stores/rightRailStore.d.ts +20 -0
  45. package/dist/stores/rightRailStore.d.ts.map +1 -0
  46. package/dist/types/api.d.ts +9 -2
  47. package/dist/types/api.d.ts.map +1 -1
  48. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"MessagePartItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessagePartItem.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAwInD,UAAU,oBAAoB;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,4DAif3B,CAAC"}
1
+ {"version":3,"file":"MessagePartItem.d.ts","sourceRoot":"","sources":["../../../src/components/messages/MessagePartItem.tsx"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAI1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAwInD,UAAU,oBAAoB;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,eAAO,MAAM,eAAe,4DAqf3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C,UAAU,qBAAqB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAeD,eAAO,MAAM,gBAAgB,6DAoT5B,CAAC"}
1
+ {"version":3,"file":"UserMessageGroup.d.ts","sourceRoot":"","sources":["../../../src/components/messages/UserMessageGroup.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAM/C,UAAU,qBAAqB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC;AAgBD,eAAO,MAAM,gBAAgB,6DAsT5B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { RendererProps } from './types';
2
+ export declare function CopyAttachmentRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }: RendererProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=CopyAttachmentRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyAttachmentRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/CopyAttachmentRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAoC7C,wBAAgB,sBAAsB,CAAC,EACtC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,OAAO,GACP,EAAE,aAAa,2CAkHf"}
@@ -0,0 +1,3 @@
1
+ import type { RendererProps } from './types';
2
+ export declare function ReadImageRenderer({ contentJson, toolDurationMs, isExpanded, onToggle, compact, }: RendererProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=ReadImageRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReadImageRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/ReadImageRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiC7C,wBAAgB,iBAAiB,CAAC,EACjC,WAAW,EACX,cAAc,EACd,UAAU,EACV,QAAQ,EACR,OAAO,GACP,EAAE,aAAa,2CAiGf"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAwB3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAyDD,wBAAgB,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CA2FzB;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AA0B3C,UAAU,uBAAuB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AA4DD,wBAAgB,kBAAkB,CAAC,EAClC,QAAQ,EACR,WAAW,EACX,cAAc,EACd,KAAK,EACL,mBAAmB,EACnB,OAAO,EACP,SAAS,EACT,OAAO,EACP,SAAS,GACT,EAAE,uBAAuB,2CA+FzB;AAED,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -67,6 +67,14 @@ export interface ToolResultData {
67
67
  lineRange?: string;
68
68
  content?: string;
69
69
  bytes?: number;
70
+ mediaType?: string;
71
+ data?: string;
72
+ size?: number;
73
+ transmittedSize?: number;
74
+ sha256?: string;
75
+ compressed?: boolean;
76
+ width?: number;
77
+ height?: number;
70
78
  artifact?: {
71
79
  patch?: string;
72
80
  summary?: {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/renderers/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingModal.d.ts","sourceRoot":"","sources":["../../../src/components/onboarding/OnboardingModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAO5D,UAAU,oBAAoB;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,4DA2F1B,CAAC"}
1
+ {"version":3,"file":"OnboardingModal.d.ts","sourceRoot":"","sources":["../../../src/components/onboarding/OnboardingModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAQ5D,UAAU,oBAAoB;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,eAAO,MAAM,eAAe,4DA+G1B,CAAC"}
@@ -1,2 +1,12 @@
1
- export declare const SettingsSidebar: import("react").NamedExoticComponent<object>;
1
+ interface SettingsSidebarProps {
2
+ /**
3
+ * Override navigation for the "Usage Dashboard" button. When provided,
4
+ * this is called instead of `window.location.assign('/dashboard')` so
5
+ * embedders (e.g. the Tauri desktop app, which has no URL routing) can
6
+ * render the dashboard inline.
7
+ */
8
+ onOpenDashboard?: () => void;
9
+ }
10
+ export declare const SettingsSidebar: import("react").NamedExoticComponent<SettingsSidebarProps>;
11
+ export {};
2
12
  //# sourceMappingURL=SettingsSidebar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/settings/SettingsSidebar.tsx"],"names":[],"mappings":"AAoqBA,eAAO,MAAM,eAAe,8CA+L1B,CAAC"}
1
+ {"version":3,"file":"SettingsSidebar.d.ts","sourceRoot":"","sources":["../../../src/components/settings/SettingsSidebar.tsx"],"names":[],"mappings":"AA8qBA,UAAU,oBAAoB;IAC7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,4DAyN1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ViewerTabs.d.ts","sourceRoot":"","sources":["../../../src/components/workspace/ViewerTabs.tsx"],"names":[],"mappings":"AAyVA,eAAO,MAAM,UAAU,8CAkFrB,CAAC"}
1
+ {"version":3,"file":"ViewerTabs.d.ts","sourceRoot":"","sources":["../../../src/components/workspace/ViewerTabs.tsx"],"names":[],"mappings":"AAyVA,eAAO,MAAM,UAAU,8CA8FrB,CAAC"}
@@ -907,6 +907,30 @@ var skillsMixin = {
907
907
  }
908
908
  };
909
909
 
910
+ // src/lib/api-client/usage.ts
911
+ import {
912
+ getUsageStats as apiGetUsageStats,
913
+ getGlobalUsageStats as apiGetGlobalUsageStats
914
+ } from "@ottocode/api";
915
+ var usageMixin = {
916
+ async getUsageStats() {
917
+ const { data, error } = await apiGetUsageStats();
918
+ if (error)
919
+ throw new Error(extractErrorMessage(error));
920
+ if (!data)
921
+ throw new Error("Empty response from /v1/usage/stats");
922
+ return data;
923
+ },
924
+ async getGlobalUsageStats() {
925
+ const { data, error } = await apiGetGlobalUsageStats();
926
+ if (error)
927
+ throw new Error(extractErrorMessage(error));
928
+ if (!data)
929
+ throw new Error("Empty response from /v1/usage/stats/global");
930
+ return data;
931
+ }
932
+ };
933
+
910
934
  // src/lib/api-client/index.ts
911
935
  class ApiClient {
912
936
  getSessions = sessionsMixin.getSessions;
@@ -997,6 +1021,8 @@ class ApiClient {
997
1021
  getSkillFileContent = skillsMixin.getSkillFileContent;
998
1022
  getSkillsConfig = skillsMixin.getSkillsConfig;
999
1023
  updateSkillsConfig = skillsMixin.updateSkillsConfig;
1024
+ getUsageStats = usageMixin.getUsageStats;
1025
+ getGlobalUsageStats = usageMixin.getGlobalUsageStats;
1000
1026
  }
1001
1027
  var apiClient = new ApiClient;
1002
1028
 
@@ -1105,6 +1131,15 @@ function hasPlatformOpenUrl() {
1105
1131
  function hasPlatformSystemFonts() {
1106
1132
  return !!getPlatformWindow()?.OTTO_LIST_SYSTEM_FONTS;
1107
1133
  }
1134
+ function isPlatformDesktop() {
1135
+ if (typeof window === "undefined")
1136
+ return false;
1137
+ try {
1138
+ return "__TAURI__" in window || "__TAURI_INTERNALS__" in window || "__TAURI_METADATA__" in window;
1139
+ } catch {
1140
+ return false;
1141
+ }
1142
+ }
1108
1143
 
1109
1144
  // src/hooks/usePreferences.ts
1110
1145
  var STORAGE_KEY = "otto-preferences";
@@ -1112,7 +1147,8 @@ var DEFAULT_FONT_FAMILY = "IBM Plex Mono";
1112
1147
  var DEFAULT_STORED_PREFERENCES = {
1113
1148
  vimMode: false,
1114
1149
  compactThread: true,
1115
- fontFamily: DEFAULT_FONT_FAMILY
1150
+ fontFamily: DEFAULT_FONT_FAMILY,
1151
+ smartEdges: true
1116
1152
  };
1117
1153
  function cssFontFamily(fontFamily) {
1118
1154
  const trimmed = fontFamily.trim();
@@ -1145,7 +1181,8 @@ function resolveInitialPreferences() {
1145
1181
  return {
1146
1182
  vimMode: typeof parsed.vimMode === "boolean" ? parsed.vimMode : DEFAULT_STORED_PREFERENCES.vimMode,
1147
1183
  compactThread: typeof parsed.compactThread === "boolean" ? parsed.compactThread : DEFAULT_STORED_PREFERENCES.compactThread,
1148
- fontFamily: typeof parsed.fontFamily === "string" && parsed.fontFamily.trim() ? parsed.fontFamily.trim() : DEFAULT_STORED_PREFERENCES.fontFamily
1184
+ fontFamily: typeof parsed.fontFamily === "string" && parsed.fontFamily.trim() ? parsed.fontFamily.trim() : DEFAULT_STORED_PREFERENCES.fontFamily,
1185
+ smartEdges: typeof parsed.smartEdges === "boolean" ? parsed.smartEdges : DEFAULT_STORED_PREFERENCES.smartEdges
1149
1186
  };
1150
1187
  }
1151
1188
  } catch (error) {
@@ -1200,6 +1237,9 @@ function usePreferences() {
1200
1237
  if (updates.fontFamily !== undefined) {
1201
1238
  localUpdates.fontFamily = updates.fontFamily.trim() || DEFAULT_FONT_FAMILY;
1202
1239
  }
1240
+ if (updates.smartEdges !== undefined) {
1241
+ localUpdates.smartEdges = updates.smartEdges;
1242
+ }
1203
1243
  if (Object.keys(localUpdates).length > 0) {
1204
1244
  updateStore(localUpdates);
1205
1245
  }
@@ -4822,10 +4862,13 @@ var TEXT_EXTENSIONS = [
4822
4862
  ".svelte",
4823
4863
  ".vue"
4824
4864
  ];
4825
- var SUPPORTED_TYPES2 = [...IMAGE_TYPES, ...PDF_TYPES, ...TEXT_TYPES];
4826
4865
  function generateId2() {
4827
4866
  return `file-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;
4828
4867
  }
4868
+ function getExtension(file) {
4869
+ const index = file.name.lastIndexOf(".");
4870
+ return index >= 0 ? file.name.toLowerCase().slice(index) : "";
4871
+ }
4829
4872
  function getFileType(file) {
4830
4873
  if (IMAGE_TYPES.includes(file.type))
4831
4874
  return "image";
@@ -4833,16 +4876,9 @@ function getFileType(file) {
4833
4876
  return "pdf";
4834
4877
  if (TEXT_TYPES.includes(file.type))
4835
4878
  return "text";
4836
- const ext = file.name.toLowerCase().slice(file.name.lastIndexOf("."));
4837
- if (TEXT_EXTENSIONS.includes(ext))
4879
+ if (TEXT_EXTENSIONS.includes(getExtension(file)))
4838
4880
  return "text";
4839
- return null;
4840
- }
4841
- function isSupported(file) {
4842
- if (SUPPORTED_TYPES2.includes(file.type))
4843
- return true;
4844
- const ext = file.name.toLowerCase().slice(file.name.lastIndexOf("."));
4845
- return TEXT_EXTENSIONS.includes(ext);
4881
+ return "binary";
4846
4882
  }
4847
4883
  async function fileToBase642(file) {
4848
4884
  return new Promise((resolve, reject) => {
@@ -4872,13 +4908,29 @@ async function fileToPreview2(file) {
4872
4908
  reader.readAsDataURL(file);
4873
4909
  });
4874
4910
  }
4911
+ async function uploadOriginalFile(file, sessionId) {
4912
+ const form = new FormData;
4913
+ form.set("file", file);
4914
+ if (sessionId)
4915
+ form.set("sessionId", sessionId);
4916
+ const response = await fetch(`${getBaseUrl()}/v1/attachments`, {
4917
+ method: "POST",
4918
+ body: form
4919
+ });
4920
+ const data = await response.json().catch(() => null);
4921
+ if (!response.ok) {
4922
+ throw new Error(extractErrorMessage(data));
4923
+ }
4924
+ return data;
4925
+ }
4875
4926
  function useFileUpload(options = {}) {
4876
4927
  const {
4877
4928
  maxFiles = 10,
4878
- maxSizeMB = 10,
4929
+ maxSizeMB = 100,
4879
4930
  pageWide = true,
4880
4931
  supportsImages = true,
4881
4932
  supportsFileAttachments = true,
4933
+ sessionId,
4882
4934
  onError
4883
4935
  } = options;
4884
4936
  const [files, setFiles] = useState4([]);
@@ -4886,21 +4938,11 @@ function useFileUpload(options = {}) {
4886
4938
  const [error, setError] = useState4(null);
4887
4939
  const maxSizeBytes = maxSizeMB * 1024 * 1024;
4888
4940
  const validateFile = useCallback5((file) => {
4889
- if (!supportsImages && IMAGE_TYPES.includes(file.type)) {
4890
- return "This model does not support image attachments";
4891
- }
4892
- if (!supportsFileAttachments && PDF_TYPES.includes(file.type)) {
4893
- return "This model does not support PDF attachments";
4894
- }
4895
- if (!isSupported(file)) {
4896
- const ext = file.name.slice(file.name.lastIndexOf("."));
4897
- return `Unsupported file type: ${ext || file.type || "unknown"}`;
4898
- }
4899
4941
  if (file.size > maxSizeBytes) {
4900
4942
  return `File too large: ${(file.size / 1024 / 1024).toFixed(1)}MB. Max: ${maxSizeMB}MB`;
4901
4943
  }
4902
4944
  return null;
4903
- }, [maxSizeBytes, maxSizeMB, supportsImages, supportsFileAttachments]);
4945
+ }, [maxSizeBytes, maxSizeMB]);
4904
4946
  const addFiles = useCallback5(async (inputFiles) => {
4905
4947
  setError(null);
4906
4948
  const fileArray = Array.from(inputFiles);
@@ -4921,38 +4963,44 @@ function useFileUpload(options = {}) {
4921
4963
  continue;
4922
4964
  }
4923
4965
  const fileType = getFileType(file);
4924
- if (!fileType)
4925
- continue;
4926
4966
  try {
4927
4967
  let preview;
4928
4968
  let data;
4929
4969
  let textContent;
4930
- let mediaType = file.type;
4970
+ let mediaType = file.type || "application/octet-stream";
4931
4971
  if (fileType === "image") {
4932
- [preview, data] = await Promise.all([
4933
- fileToPreview2(file),
4934
- fileToBase642(file)
4935
- ]);
4972
+ if (supportsImages) {
4973
+ [preview, data] = await Promise.all([
4974
+ fileToPreview2(file),
4975
+ fileToBase642(file)
4976
+ ]);
4977
+ } else {
4978
+ preview = await fileToPreview2(file);
4979
+ }
4936
4980
  } else if (fileType === "pdf") {
4937
- data = await fileToBase642(file);
4938
4981
  mediaType = "application/pdf";
4939
- } else {
4982
+ if (supportsFileAttachments) {
4983
+ data = await fileToBase642(file);
4984
+ }
4985
+ } else if (fileType === "text") {
4940
4986
  textContent = await fileToText(file);
4941
4987
  data = textContent;
4942
- if (!mediaType) {
4988
+ if (!file.type) {
4943
4989
  const ext = file.name.toLowerCase();
4944
4990
  mediaType = ext.endsWith(".md") || ext.endsWith(".markdown") ? "text/markdown" : "text/plain";
4945
4991
  }
4946
4992
  }
4993
+ const id = generateId2();
4947
4994
  newFiles.push({
4948
- id: generateId2(),
4995
+ id,
4949
4996
  file,
4950
4997
  type: fileType,
4951
4998
  name: file.name,
4952
4999
  preview,
4953
5000
  data,
4954
5001
  mediaType,
4955
- textContent
5002
+ textContent,
5003
+ uploadStatus: "uploading"
4956
5004
  });
4957
5005
  } catch {
4958
5006
  const msg = `Failed to process file: ${file.name}`;
@@ -4962,8 +5010,34 @@ function useFileUpload(options = {}) {
4962
5010
  }
4963
5011
  if (newFiles.length > 0) {
4964
5012
  setFiles((prev) => [...prev, ...newFiles]);
5013
+ for (const item of newFiles) {
5014
+ uploadOriginalFile(item.file, sessionId).then((uploadedAttachment) => {
5015
+ setFiles((prev) => prev.map((existing) => existing.id === item.id ? {
5016
+ ...existing,
5017
+ uploadStatus: "ready",
5018
+ uploadedAttachment,
5019
+ uploadError: undefined
5020
+ } : existing));
5021
+ }).catch((uploadError) => {
5022
+ const msg = uploadError instanceof Error ? uploadError.message : `Failed to upload ${item.name}`;
5023
+ setFiles((prev) => prev.map((existing) => existing.id === item.id ? {
5024
+ ...existing,
5025
+ uploadStatus: "failed",
5026
+ uploadError: msg
5027
+ } : existing));
5028
+ onError?.(msg);
5029
+ });
5030
+ }
4965
5031
  }
4966
- }, [files.length, maxFiles, validateFile, onError]);
5032
+ }, [
5033
+ files.length,
5034
+ maxFiles,
5035
+ validateFile,
5036
+ onError,
5037
+ sessionId,
5038
+ supportsImages,
5039
+ supportsFileAttachments
5040
+ ]);
4967
5041
  const removeFile = useCallback5((id) => {
4968
5042
  setFiles((prev) => prev.filter((f) => f.id !== id));
4969
5043
  setError(null);
@@ -5064,7 +5138,7 @@ function useFileUpload(options = {}) {
5064
5138
  };
5065
5139
  }, [pageWide, addFiles]);
5066
5140
  const images = files.filter((f) => f.type === "image");
5067
- const documents = files.filter((f) => f.type === "pdf" || f.type === "text");
5141
+ const documents = files.filter((f) => f.type !== "image");
5068
5142
  return {
5069
5143
  files,
5070
5144
  images,
@@ -6688,4 +6762,4 @@ export {
6688
6762
  normalizeQueueState
6689
6763
  };
6690
6764
 
6691
- //# debugId=E601ECB09FFF57FC64756E2164756E21
6765
+ //# debugId=D9223216E14373C964756E2164756E21