@ottocode/web-sdk 0.1.247 → 0.1.249

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 (32) hide show
  1. package/dist/components/chat/ChatInput.d.ts +1 -0
  2. package/dist/components/chat/ChatInput.d.ts.map +1 -1
  3. package/dist/components/chat/ChatInputContainer.d.ts.map +1 -1
  4. package/dist/components/chat/NewSessionLanding.d.ts.map +1 -1
  5. package/dist/components/chat/UnifiedModelSelector.d.ts.map +1 -1
  6. package/dist/components/index.js +597 -85
  7. package/dist/components/index.js.map +13 -13
  8. package/dist/components/onboarding/OnboardingModal.d.ts.map +1 -1
  9. package/dist/components/onboarding/steps/ProviderSetupStep.d.ts +10 -0
  10. package/dist/components/onboarding/steps/ProviderSetupStep.d.ts.map +1 -1
  11. package/dist/hooks/index.js +64 -3
  12. package/dist/hooks/index.js.map +7 -7
  13. package/dist/hooks/useAuthStatus.d.ts +13 -0
  14. package/dist/hooks/useAuthStatus.d.ts.map +1 -1
  15. package/dist/hooks/useConfig.d.ts +2 -0
  16. package/dist/hooks/useConfig.d.ts.map +1 -1
  17. package/dist/index.js +597 -85
  18. package/dist/index.js.map +13 -13
  19. package/dist/lib/api-client/auth.d.ts +1 -0
  20. package/dist/lib/api-client/auth.d.ts.map +1 -1
  21. package/dist/lib/api-client/config.d.ts +42 -0
  22. package/dist/lib/api-client/config.d.ts.map +1 -1
  23. package/dist/lib/api-client/index.d.ts +31 -0
  24. package/dist/lib/api-client/index.d.ts.map +1 -1
  25. package/dist/lib/index.js +36 -2
  26. package/dist/lib/index.js.map +5 -5
  27. package/dist/stores/index.js.map +2 -2
  28. package/dist/stores/onboardingStore.d.ts +1 -0
  29. package/dist/stores/onboardingStore.d.ts.map +1 -1
  30. package/dist/types/api.d.ts +2 -0
  31. package/dist/types/api.d.ts.map +1 -1
  32. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"OnboardingModal.d.ts","sourceRoot":"","sources":["../../../src/components/onboarding/OnboardingModal.tsx"],"names":[],"mappings":"AAOA,UAAU,oBAAoB;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,4DAmE1B,CAAC"}
1
+ {"version":3,"file":"OnboardingModal.d.ts","sourceRoot":"","sources":["../../../src/components/onboarding/OnboardingModal.tsx"],"names":[],"mappings":"AAOA,UAAU,oBAAoB;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,eAAO,MAAM,eAAe,4DAqE1B,CAAC"}
@@ -1,9 +1,19 @@
1
1
  import type { AuthStatus } from '../../../stores/onboardingStore';
2
+ type CustomProviderCompatibility = 'openai-compatible' | 'openai' | 'anthropic' | 'google' | 'openrouter' | 'ollama';
2
3
  interface ProviderSetupStepProps {
3
4
  authStatus: AuthStatus;
4
5
  onSetupWallet: () => Promise<unknown>;
5
6
  onImportWallet: (privateKey: string) => Promise<unknown>;
6
7
  onAddProvider: (provider: string, apiKey: string) => Promise<unknown>;
8
+ onAddCustomProvider: (data: {
9
+ id: string;
10
+ label: string;
11
+ baseURL: string;
12
+ apiKey?: string;
13
+ compatibility: CustomProviderCompatibility;
14
+ models: string[];
15
+ allowAnyModel: boolean;
16
+ }) => Promise<unknown>;
7
17
  onRemoveProvider: (provider: string) => Promise<unknown>;
8
18
  onStartOAuth: (provider: string, mode?: string) => Window | null;
9
19
  onStartOAuthManual: (provider: string, mode?: string) => Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"ProviderSetupStep.d.ts","sourceRoot":"","sources":["../../../../src/components/onboarding/steps/ProviderSetupStep.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProviderSetupStep.d.ts","sourceRoot":"","sources":["../../../../src/components/onboarding/steps/ProviderSetupStep.tsx"],"names":[],"mappings":"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"}
@@ -356,7 +356,9 @@ import {
356
356
  getConfig as apiGetConfig,
357
357
  getProviderModels as apiGetProviderModels,
358
358
  getAllModels as apiGetAllModels,
359
- updateDefaults as apiUpdateDefaults
359
+ updateDefaults as apiUpdateDefaults,
360
+ updateProviderSettings as apiUpdateProviderSettings,
361
+ deleteProviderSettings as apiDeleteProviderSettings
360
362
  } from "@ottocode/api";
361
363
  var configMixin = {
362
364
  async getConfig() {
@@ -379,6 +381,35 @@ var configMixin = {
379
381
  throw new Error(extractErrorMessage(response.error));
380
382
  return response.data;
381
383
  },
384
+ async discoverProviderModels(data) {
385
+ const response = await fetch(`${getBaseUrl()}/v1/config/providers/discover-models`, {
386
+ method: "POST",
387
+ headers: { "content-type": "application/json" },
388
+ body: JSON.stringify(data)
389
+ });
390
+ const payload = await response.json();
391
+ if (!response.ok)
392
+ throw new Error(extractErrorMessage(payload));
393
+ return payload;
394
+ },
395
+ async updateProviderSettings(provider, data) {
396
+ const response = await apiUpdateProviderSettings({
397
+ path: { provider },
398
+ body: data
399
+ });
400
+ if (response.error)
401
+ throw new Error(extractErrorMessage(response.error));
402
+ return response.data;
403
+ },
404
+ async deleteProviderSettings(provider) {
405
+ const response = await apiDeleteProviderSettings({
406
+ path: { provider },
407
+ query: { scope: "local" }
408
+ });
409
+ if (response.error)
410
+ throw new Error(extractErrorMessage(response.error));
411
+ return response.data;
412
+ },
382
413
  async updateDefaults(data) {
383
414
  const response = await apiUpdateDefaults({
384
415
  body: data
@@ -864,6 +895,9 @@ class ApiClient {
864
895
  getConfig = configMixin.getConfig;
865
896
  getModels = configMixin.getModels;
866
897
  getAllModels = configMixin.getAllModels;
898
+ discoverProviderModels = configMixin.discoverProviderModels;
899
+ updateProviderSettings = configMixin.updateProviderSettings;
900
+ deleteProviderSettings = configMixin.deleteProviderSettings;
867
901
  updateDefaults = configMixin.updateDefaults;
868
902
  listFiles = filesMixin.listFiles;
869
903
  getFileTree = filesMixin.getFileTree;
@@ -4353,11 +4387,37 @@ function useAuthStatus() {
4353
4387
  setLoading(false);
4354
4388
  }
4355
4389
  }, [fetchAuthStatus, setLoading, setError]);
4390
+ const addCustomProvider = useCallback8(async (data) => {
4391
+ setLoading(true);
4392
+ setError(null);
4393
+ try {
4394
+ const result = await apiClient.updateProviderSettings(data.id, {
4395
+ enabled: true,
4396
+ custom: true,
4397
+ label: data.label,
4398
+ baseURL: data.baseURL,
4399
+ ...data.apiKey ? { apiKey: data.apiKey } : {},
4400
+ compatibility: data.compatibility,
4401
+ models: data.models,
4402
+ allowAnyModel: data.allowAnyModel,
4403
+ scope: "local"
4404
+ });
4405
+ await fetchAuthStatus();
4406
+ return result;
4407
+ } catch (err) {
4408
+ const message = err instanceof Error ? err.message : "Failed to add custom provider";
4409
+ setError(message);
4410
+ throw err;
4411
+ } finally {
4412
+ setLoading(false);
4413
+ }
4414
+ }, [fetchAuthStatus, setLoading, setError]);
4356
4415
  const removeProvider = useCallback8(async (provider) => {
4357
4416
  setLoading(true);
4358
4417
  setError(null);
4359
4418
  try {
4360
- const result = await apiClient.removeProvider(provider);
4419
+ const isCustomProvider = useOnboardingStore.getState().authStatus?.providers[provider]?.custom;
4420
+ const result = isCustomProvider ? await apiClient.deleteProviderSettings(provider) : await apiClient.removeProvider(provider);
4361
4421
  await fetchAuthStatus();
4362
4422
  return result;
4363
4423
  } catch (err) {
@@ -4512,6 +4572,7 @@ function useAuthStatus() {
4512
4572
  setupWallet,
4513
4573
  importWallet,
4514
4574
  addProvider,
4575
+ addCustomProvider,
4515
4576
  removeProvider,
4516
4577
  completeOnboarding,
4517
4578
  startOAuth,
@@ -5111,4 +5172,4 @@ export {
5111
5172
  sessionsQueryKey
5112
5173
  };
5113
5174
 
5114
- //# debugId=E9A3724C0AF9596F64756E2164756E21
5175
+ //# debugId=702F57C1E108905864756E2164756E21