@sciol/xyzen 0.3.1 → 0.3.2

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.
@@ -5,6 +5,9 @@ interface ModalProps {
5
5
  title: string;
6
6
  children: ReactNode;
7
7
  maxWidth?: string;
8
+ minWidth?: string;
9
+ maxHeight?: string;
10
+ minHeight?: string;
8
11
  }
9
- export declare function Modal({ isOpen, onClose, title, children, maxWidth, }: ModalProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function Modal({ isOpen, onClose, title, children, maxWidth, minWidth, maxHeight, minHeight, }: ModalProps): import("react/jsx-runtime").JSX.Element;
10
13
  export {};
@@ -3,7 +3,7 @@ export type Agent = {
3
3
  name: string;
4
4
  description: string;
5
5
  prompt: string;
6
- mcp_servers: {
6
+ mcp_servers?: {
7
7
  id: string;
8
8
  }[];
9
9
  mcp_server_ids?: string[];
@@ -0,0 +1,11 @@
1
+ interface NotificationModalProps {
2
+ isOpen: boolean;
3
+ onClose: () => void;
4
+ title: string;
5
+ message: string;
6
+ type?: "info" | "warning" | "error" | "success";
7
+ actionLabel?: string;
8
+ onAction?: () => void;
9
+ }
10
+ declare const NotificationModal: React.FC<NotificationModalProps>;
11
+ export default NotificationModal;
@@ -1,6 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  interface MarkdownProps {
3
3
  content: string;
4
+ className?: string;
4
5
  }
5
6
  declare const Markdown: React.FC<MarkdownProps>;
6
7
  export default Markdown;
package/dist/main.d.ts CHANGED
@@ -1 +0,0 @@
1
- export {};
@@ -31,9 +31,11 @@ export interface AuthResult {
31
31
  }
32
32
  declare class AuthService {
33
33
  private static readonly TOKEN_KEY;
34
+ private static readonly COOKIE_TOKEN_KEY;
34
35
  private authCheckPromise;
35
36
  private listeners;
36
37
  getToken(): string | null;
38
+ private getCookie;
37
39
  setToken(token: string): void;
38
40
  removeToken(): void;
39
41
  addAuthStateListener(listener: (result: AuthResult) => void): void;
@@ -10,14 +10,6 @@ declare class LlmProviderService {
10
10
  * Get current user's providers
11
11
  */
12
12
  getMyProviders(): Promise<LlmProviderResponse[]>;
13
- /**
14
- * Get current user's default provider
15
- */
16
- getMyDefaultProvider(): Promise<LlmProviderResponse>;
17
- /**
18
- * Set a provider as default
19
- */
20
- setDefaultProvider(providerId: string): Promise<LlmProviderResponse>;
21
13
  /**
22
14
  * Create a new provider
23
15
  */
@@ -1,8 +1,9 @@
1
- import { McpServer, McpServerCreate, McpServerUpdate } from '../types/mcp';
1
+ import { BuiltinMcpServer, McpServer, McpServerCreate, McpServerUpdate } from '../types/mcp';
2
2
  export declare const mcpService: {
3
3
  getMcpServers(): Promise<McpServer[]>;
4
4
  createMcpServer(server: McpServerCreate): Promise<McpServer>;
5
5
  updateMcpServer(id: string, server: McpServerUpdate): Promise<McpServer>;
6
6
  deleteMcpServer(id: string): Promise<void>;
7
7
  refreshMcpServers(): Promise<void>;
8
+ getBuiltinMcpServers(): Promise<BuiltinMcpServer[]>;
8
9
  };
@@ -4,7 +4,7 @@ interface StatusChangePayload {
4
4
  error: string | null;
5
5
  }
6
6
  interface MessageEvent {
7
- type: "message" | "loading" | "streaming_start" | "streaming_chunk" | "streaming_end" | "message_saved" | "tool_call_request" | "tool_call_response" | "error";
7
+ type: "message" | "processing" | "loading" | "streaming_start" | "streaming_chunk" | "streaming_end" | "message_saved" | "tool_call_request" | "tool_call_response" | "insufficient_balance" | "error";
8
8
  data: Message | {
9
9
  id: string;
10
10
  content?: string;
@@ -19,6 +19,11 @@ interface MessageEvent {
19
19
  timestamp?: number;
20
20
  toolCallId?: string;
21
21
  confirmed?: boolean;
22
+ error_code?: string;
23
+ message?: string;
24
+ message_cn?: string;
25
+ details?: Record<string, unknown>;
26
+ action_required?: string;
22
27
  };
23
28
  }
24
29
  type ServiceCallback<T> = (payload: T) => void;
@@ -5,6 +5,14 @@ export interface ChatSlice {
5
5
  chatHistory: ChatHistoryItem[];
6
6
  chatHistoryLoading: boolean;
7
7
  channels: Record<string, ChatChannel>;
8
+ notification: {
9
+ isOpen: boolean;
10
+ title: string;
11
+ message: string;
12
+ type: "info" | "warning" | "error" | "success";
13
+ actionLabel?: string;
14
+ onAction?: () => void;
15
+ } | null;
8
16
  setActiveChatChannel: (channelUUID: string | null) => void;
9
17
  fetchChatHistory: () => Promise<void>;
10
18
  togglePinChat: (chatId: string) => void;
@@ -15,8 +23,11 @@ export interface ChatSlice {
15
23
  createDefaultChannel: (agentId?: string) => Promise<void>;
16
24
  updateTopicName: (topicId: string, newName: string) => Promise<void>;
17
25
  deleteTopic: (topicId: string) => Promise<void>;
26
+ clearSessionTopics: (sessionId: string) => Promise<void>;
18
27
  confirmToolCall: (channelId: string, toolCallId: string) => void;
19
28
  cancelToolCall: (channelId: string, toolCallId: string) => void;
29
+ showNotification: (title: string, message: string, type?: "info" | "warning" | "error" | "success", actionLabel?: string, onAction?: () => void) => void;
30
+ closeNotification: () => void;
20
31
  }
21
32
  export declare const createChatSlice: StateCreator<XyzenState, [
22
33
  ["zustand/immer", never]
@@ -1,14 +1,17 @@
1
- import { McpServer, McpServerCreate, McpServerUpdate } from '../../types/mcp';
1
+ import { BuiltinMcpServer, McpServer, McpServerCreate, McpServerUpdate } from '../../types/mcp';
2
2
  import { StateCreator } from 'zustand';
3
3
  import { XyzenState } from '../types';
4
4
  export interface McpSlice {
5
5
  mcpServers: McpServer[];
6
+ builtinMcpServers: BuiltinMcpServer[];
6
7
  lastFetchTime: number;
7
8
  isEditMcpServerModalOpen: boolean;
8
9
  editingMcpServer: McpServer | null;
9
10
  fetchMcpServers: () => Promise<void>;
11
+ fetchBuiltinMcpServers: () => Promise<void>;
10
12
  refreshMcpServers: () => Promise<void>;
11
13
  addMcpServer: (server: McpServerCreate) => Promise<void>;
14
+ quickAddBuiltinServer: (server: BuiltinMcpServer) => Promise<void>;
12
15
  editMcpServer: (id: string, server: McpServerUpdate) => Promise<void>;
13
16
  removeMcpServer: (id: string) => Promise<void>;
14
17
  updateMcpServerInList: (server: McpServer) => void;
@@ -6,15 +6,19 @@ export interface ProviderSlice {
6
6
  llmProvidersLoading: boolean;
7
7
  providerTemplates: ProviderTemplate[];
8
8
  templatesLoading: boolean;
9
- defaultProvider: LlmProviderResponse | null;
10
- defaultProviderLoading: boolean;
9
+ userDefaultProviderId: string | null;
11
10
  fetchProviderTemplates: () => Promise<void>;
12
11
  fetchMyProviders: () => Promise<void>;
13
- fetchDefaultProvider: () => Promise<void>;
14
12
  addProvider: (provider: LlmProviderCreate) => Promise<void>;
15
13
  updateProvider: (id: string, provider: LlmProviderUpdate) => Promise<void>;
16
14
  removeProvider: (id: string) => Promise<void>;
17
- setAsDefault: (id: string) => Promise<void>;
15
+ initializeProviderPreferences: () => void;
16
+ setUserDefaultProvider: (providerId: string | null) => void;
17
+ getUserDefaultProvider: () => LlmProviderResponse | null;
18
+ resolveProviderForAgent: (agent: {
19
+ id: string;
20
+ provider_id?: string | null;
21
+ } | null) => LlmProviderResponse | null;
18
22
  }
19
23
  export declare const createProviderSlice: StateCreator<XyzenState, [
20
24
  ["zustand/immer", never]
@@ -29,6 +29,7 @@ export interface ChatChannel {
29
29
  agentId?: string;
30
30
  connected: boolean;
31
31
  error: string | null;
32
+ responding?: boolean;
32
33
  }
33
34
  export interface ChatHistoryItem {
34
35
  id: string;
@@ -11,5 +11,14 @@ export interface McpServer {
11
11
  }[];
12
12
  user_id: string;
13
13
  }
14
+ export interface BuiltinMcpServer {
15
+ name: string;
16
+ module_name: string;
17
+ mount_path: string;
18
+ description: string;
19
+ is_builtin: boolean;
20
+ requires_auth: boolean;
21
+ is_default?: boolean;
22
+ }
14
23
  export type McpServerCreate = Omit<McpServer, "id" | "status" | "tools" | "user_id">;
15
24
  export type McpServerUpdate = Partial<Omit<McpServer, "id" | "tools" | "user_id">>;
@@ -0,0 +1,63 @@
1
+ import { LlmProviderResponse } from '../types/llmProvider';
2
+ interface UserProviderPreferences {
3
+ defaultProviderId: string | null;
4
+ lastUsedProviders: Record<string, string>;
5
+ }
6
+ /**
7
+ * Manager for client-side provider preferences using localStorage
8
+ */
9
+ export declare class ProviderPreferencesManager {
10
+ private static STORAGE_KEY;
11
+ /**
12
+ * Get user's provider preferences from localStorage
13
+ */
14
+ static getPreferences(): UserProviderPreferences;
15
+ /**
16
+ * Save user's provider preferences to localStorage
17
+ */
18
+ private static savePreferences;
19
+ /**
20
+ * Set the user's global default provider
21
+ */
22
+ static setDefaultProvider(providerId: string | null): void;
23
+ /**
24
+ * Get the user's global default provider ID
25
+ */
26
+ static getDefaultProviderId(): string | null;
27
+ /**
28
+ * Get the user's global default provider from available providers
29
+ */
30
+ static getDefaultProvider(availableProviders: LlmProviderResponse[]): LlmProviderResponse | null;
31
+ /**
32
+ * Set the last used provider for a specific agent
33
+ */
34
+ static setLastUsedProviderForAgent(agentId: string, providerId: string): void;
35
+ /**
36
+ * Get the last used provider for a specific agent
37
+ */
38
+ static getLastUsedProviderForAgent(agentId: string): string | null;
39
+ /**
40
+ * Clear all preferences (useful for logout or reset)
41
+ */
42
+ static clearPreferences(): void;
43
+ /**
44
+ * Migrate from database-based defaults (temporary migration helper)
45
+ * Call this once when providers are first loaded
46
+ */
47
+ static migrateFromDatabaseDefault(providers: LlmProviderResponse[]): void;
48
+ }
49
+ /**
50
+ * Provider resolution logic with clear hierarchy
51
+ */
52
+ export declare function resolveProviderForAgent(agent: {
53
+ id: string;
54
+ provider_id?: string | null;
55
+ } | null, availableProviders: LlmProviderResponse[]): LlmProviderResponse | null;
56
+ /**
57
+ * Get a human-readable description of where the provider comes from
58
+ */
59
+ export declare function getProviderSourceDescription(agent: {
60
+ id: string;
61
+ provider_id?: string | null;
62
+ } | null, provider: LlmProviderResponse | null, availableProviders: LlmProviderResponse[]): string;
63
+ export {};