@sciol/xyzen 0.2.9 → 0.2.10
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.
- package/dist/app/App.d.ts +1 -2
- package/dist/app/AppFullscreen.d.ts +5 -0
- package/dist/components/features/LayoutToggle.d.ts +5 -0
- package/dist/components/features/SettingsButton.d.ts +5 -0
- package/dist/components/features/index.d.ts +2 -0
- package/dist/components/layouts/XyzenAgent.d.ts +1 -0
- package/dist/components/layouts/XyzenTopics.d.ts +5 -0
- package/dist/components/modals/ConfirmationModal.d.ts +9 -0
- package/dist/components/modals/EditMcpServerModal.d.ts +1 -0
- package/dist/components/modals/SettingsModal.d.ts +1 -0
- package/dist/components/modals/settings/ProviderConfigForm.d.ts +1 -0
- package/dist/components/modals/settings/ProviderList.d.ts +1 -0
- package/dist/components/modals/settings/StyleSettings.d.ts +1 -0
- package/dist/components/modals/settings/ThemeSettings.d.ts +1 -0
- package/dist/components/modals/settings/UiSettings.d.ts +2 -0
- package/dist/components/modals/settings/index.d.ts +5 -0
- package/dist/hooks/useTheme.d.ts +1 -0
- package/dist/service/llmProviderService.d.ts +34 -10
- package/dist/service/mcpService.d.ts +2 -2
- package/dist/store/slices/agentSlice.d.ts +1 -0
- package/dist/store/slices/chatSlice.d.ts +1 -0
- package/dist/store/slices/mcpSlice.d.ts +6 -2
- package/dist/store/slices/providerSlice.d.ts +12 -6
- package/dist/store/slices/uiSlice.d.ts +12 -1
- package/dist/store/types.d.ts +2 -0
- package/dist/types/llmProvider.d.ts +40 -25
- package/dist/types/mcp.d.ts +1 -0
- package/dist/utils/providerColors.d.ts +32 -0
- package/dist/utils/toolMessageParser.d.ts +31 -0
- package/dist/xyzen.es.js +18266 -16090
- package/dist/xyzen.umd.js +66 -66
- package/package.json +1 -1
package/dist/app/App.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export interface XyzenProps {
|
|
2
2
|
backendUrl?: string;
|
|
3
|
-
showThemeToggle?: boolean;
|
|
4
3
|
showLlmProvider?: boolean;
|
|
5
4
|
}
|
|
6
|
-
export declare function Xyzen({ backendUrl,
|
|
5
|
+
export declare function Xyzen({ backendUrl, showLlmProvider, }: XyzenProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function EditMcpServerModal(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function SettingsModal(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ProviderConfigForm: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const ProviderList: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function StyleSettings(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function ThemeSettings(): import("react/jsx-runtime").JSX.Element;
|
package/dist/hooks/useTheme.d.ts
CHANGED
|
@@ -1,15 +1,39 @@
|
|
|
1
|
-
import { LlmProviderCreate, LlmProviderResponse,
|
|
1
|
+
import { LlmProviderCreate, LlmProviderResponse, LlmProviderUpdate, ProviderTemplate } from '../types/llmProvider';
|
|
2
2
|
declare class LlmProviderService {
|
|
3
3
|
private getBackendUrl;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
private createAuthHeaders;
|
|
5
|
+
/**
|
|
6
|
+
* Get provider templates for UI
|
|
7
|
+
*/
|
|
8
|
+
getProviderTemplates(): Promise<ProviderTemplate[]>;
|
|
9
|
+
/**
|
|
10
|
+
* Get current user's providers
|
|
11
|
+
*/
|
|
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
|
+
/**
|
|
22
|
+
* Create a new provider
|
|
23
|
+
*/
|
|
24
|
+
createProvider(provider: LlmProviderCreate): Promise<LlmProviderResponse>;
|
|
25
|
+
/**
|
|
26
|
+
* Get a single provider by ID
|
|
27
|
+
*/
|
|
28
|
+
getProvider(id: string): Promise<LlmProviderResponse>;
|
|
29
|
+
/**
|
|
30
|
+
* Update a provider
|
|
31
|
+
*/
|
|
32
|
+
updateProvider(id: string, provider: LlmProviderUpdate): Promise<LlmProviderResponse>;
|
|
33
|
+
/**
|
|
34
|
+
* Delete a provider
|
|
35
|
+
*/
|
|
36
|
+
deleteProvider(id: string): Promise<void>;
|
|
13
37
|
}
|
|
14
38
|
export declare const llmProviderService: LlmProviderService;
|
|
15
39
|
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { McpServer, McpServerCreate } from '../types/mcp';
|
|
1
|
+
import { 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
|
-
updateMcpServer(id: string, server:
|
|
5
|
+
updateMcpServer(id: string, server: McpServerUpdate): Promise<McpServer>;
|
|
6
6
|
deleteMcpServer(id: string): Promise<void>;
|
|
7
7
|
refreshMcpServers(): Promise<void>;
|
|
8
8
|
};
|
|
@@ -7,6 +7,7 @@ export interface AgentSlice {
|
|
|
7
7
|
fetchAgents: () => Promise<void>;
|
|
8
8
|
createAgent: (agent: Omit<Agent, "id">) => Promise<void>;
|
|
9
9
|
updateAgent: (agent: Agent) => Promise<void>;
|
|
10
|
+
updateAgentProvider: (agentId: string, providerId: string | null) => Promise<void>;
|
|
10
11
|
deleteAgent: (id: string) => Promise<void>;
|
|
11
12
|
}
|
|
12
13
|
export declare const createAgentSlice: StateCreator<XyzenState, [
|
|
@@ -14,6 +14,7 @@ export interface ChatSlice {
|
|
|
14
14
|
sendMessage: (message: string) => void;
|
|
15
15
|
createDefaultChannel: (agentId?: string) => Promise<void>;
|
|
16
16
|
updateTopicName: (topicId: string, newName: string) => Promise<void>;
|
|
17
|
+
deleteTopic: (topicId: string) => Promise<void>;
|
|
17
18
|
confirmToolCall: (channelId: string, toolCallId: string) => void;
|
|
18
19
|
cancelToolCall: (channelId: string, toolCallId: string) => void;
|
|
19
20
|
}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
import { McpServer, McpServerCreate } from '../../types/mcp';
|
|
1
|
+
import { 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
6
|
lastFetchTime: number;
|
|
7
|
+
isEditMcpServerModalOpen: boolean;
|
|
8
|
+
editingMcpServer: McpServer | null;
|
|
7
9
|
fetchMcpServers: () => Promise<void>;
|
|
8
10
|
refreshMcpServers: () => Promise<void>;
|
|
9
11
|
addMcpServer: (server: McpServerCreate) => Promise<void>;
|
|
10
|
-
editMcpServer: (id: string, server:
|
|
12
|
+
editMcpServer: (id: string, server: McpServerUpdate) => Promise<void>;
|
|
11
13
|
removeMcpServer: (id: string) => Promise<void>;
|
|
12
14
|
updateMcpServerInList: (server: McpServer) => void;
|
|
15
|
+
openEditMcpServerModal: (server: McpServer) => void;
|
|
16
|
+
closeEditMcpServerModal: () => void;
|
|
13
17
|
}
|
|
14
18
|
export declare const createMcpSlice: StateCreator<XyzenState, [
|
|
15
19
|
["zustand/immer", never]
|
|
@@ -1,14 +1,20 @@
|
|
|
1
|
-
import { LlmProviderCreate, LlmProviderResponse } from '../../types/llmProvider';
|
|
1
|
+
import { LlmProviderCreate, LlmProviderResponse, LlmProviderUpdate, ProviderTemplate } from '../../types/llmProvider';
|
|
2
2
|
import { StateCreator } from 'zustand';
|
|
3
3
|
import { XyzenState } from '../types';
|
|
4
4
|
export interface ProviderSlice {
|
|
5
5
|
llmProviders: LlmProviderResponse[];
|
|
6
6
|
llmProvidersLoading: boolean;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
providerTemplates: ProviderTemplate[];
|
|
8
|
+
templatesLoading: boolean;
|
|
9
|
+
defaultProvider: LlmProviderResponse | null;
|
|
10
|
+
defaultProviderLoading: boolean;
|
|
11
|
+
fetchProviderTemplates: () => Promise<void>;
|
|
12
|
+
fetchMyProviders: () => Promise<void>;
|
|
13
|
+
fetchDefaultProvider: () => Promise<void>;
|
|
14
|
+
addProvider: (provider: LlmProviderCreate) => Promise<void>;
|
|
15
|
+
updateProvider: (id: string, provider: LlmProviderUpdate) => Promise<void>;
|
|
16
|
+
removeProvider: (id: string) => Promise<void>;
|
|
17
|
+
setAsDefault: (id: string) => Promise<void>;
|
|
12
18
|
}
|
|
13
19
|
export declare const createProviderSlice: StateCreator<XyzenState, [
|
|
14
20
|
["zustand/immer", never]
|
|
@@ -1,24 +1,35 @@
|
|
|
1
1
|
import { StateCreator } from 'zustand';
|
|
2
|
-
import { Theme, XyzenState } from '../types';
|
|
2
|
+
import { Theme, XyzenState, LayoutStyle, UiSettingType } from '../types';
|
|
3
3
|
export interface UiSlice {
|
|
4
4
|
backendUrl: string;
|
|
5
5
|
isXyzenOpen: boolean;
|
|
6
6
|
panelWidth: number;
|
|
7
7
|
activeTabIndex: number;
|
|
8
8
|
theme: Theme;
|
|
9
|
+
layoutStyle: LayoutStyle;
|
|
9
10
|
isAddMcpServerModalOpen: boolean;
|
|
10
11
|
isAddLlmProviderModalOpen: boolean;
|
|
12
|
+
isSettingsModalOpen: boolean;
|
|
13
|
+
activeSettingsCategory: string;
|
|
14
|
+
activeUiSetting: UiSettingType;
|
|
15
|
+
selectedProviderId: string | null;
|
|
11
16
|
toggleXyzen: () => void;
|
|
12
17
|
openXyzen: () => void;
|
|
13
18
|
closeXyzen: () => void;
|
|
14
19
|
setPanelWidth: (width: number) => void;
|
|
15
20
|
setTabIndex: (index: number) => void;
|
|
16
21
|
setTheme: (theme: Theme) => void;
|
|
22
|
+
setLayoutStyle: (style: LayoutStyle) => void;
|
|
17
23
|
setBackendUrl: (url: string) => void;
|
|
18
24
|
openAddMcpServerModal: () => void;
|
|
19
25
|
closeAddMcpServerModal: () => void;
|
|
20
26
|
openAddLlmProviderModal: () => void;
|
|
21
27
|
closeAddLlmProviderModal: () => void;
|
|
28
|
+
openSettingsModal: (category?: string) => void;
|
|
29
|
+
closeSettingsModal: () => void;
|
|
30
|
+
setActiveSettingsCategory: (category: string) => void;
|
|
31
|
+
setActiveUiSetting: (setting: UiSettingType) => void;
|
|
32
|
+
setSelectedProvider: (id: string | null) => void;
|
|
22
33
|
}
|
|
23
34
|
export declare const createUiSlice: StateCreator<XyzenState, [
|
|
24
35
|
["zustand/immer", never]
|
package/dist/store/types.d.ts
CHANGED
|
@@ -44,6 +44,8 @@ export interface User {
|
|
|
44
44
|
avatar: string;
|
|
45
45
|
}
|
|
46
46
|
export type Theme = "light" | "dark" | "system";
|
|
47
|
+
export type LayoutStyle = "sidebar" | "fullscreen";
|
|
48
|
+
export type UiSettingType = "theme" | "style";
|
|
47
49
|
export interface TopicResponse {
|
|
48
50
|
id: string;
|
|
49
51
|
name: string;
|
|
@@ -1,34 +1,49 @@
|
|
|
1
1
|
export interface LlmProvider {
|
|
2
|
-
id:
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
api: string;
|
|
5
|
+
key: string;
|
|
6
|
+
model: string;
|
|
7
|
+
provider_type: string;
|
|
8
|
+
max_tokens: number;
|
|
9
|
+
temperature: number;
|
|
10
|
+
timeout: number;
|
|
11
|
+
is_default: boolean;
|
|
12
|
+
is_system: boolean;
|
|
13
|
+
user_id: string;
|
|
13
14
|
}
|
|
14
15
|
export interface LlmProviderCreate {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
MaxTokens?: number | null;
|
|
20
|
-
Temperature?: number | null;
|
|
21
|
-
Timeout?: number | null;
|
|
22
|
-
}
|
|
23
|
-
export interface LlmProviderResponse extends LlmProvider {
|
|
24
|
-
is_active: boolean;
|
|
25
|
-
is_available: boolean;
|
|
16
|
+
name: string;
|
|
17
|
+
api: string;
|
|
18
|
+
key: string;
|
|
19
|
+
model: string;
|
|
26
20
|
provider_type: string;
|
|
21
|
+
max_tokens?: number;
|
|
22
|
+
temperature?: number;
|
|
23
|
+
timeout?: number;
|
|
24
|
+
user_id: string;
|
|
25
|
+
is_default?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface LlmProviderUpdate {
|
|
28
|
+
name?: string;
|
|
29
|
+
api?: string;
|
|
30
|
+
key?: string;
|
|
31
|
+
model?: string;
|
|
32
|
+
provider_type?: string;
|
|
33
|
+
max_tokens?: number;
|
|
34
|
+
temperature?: number;
|
|
35
|
+
timeout?: number;
|
|
36
|
+
is_default?: boolean;
|
|
27
37
|
}
|
|
28
|
-
export
|
|
29
|
-
|
|
38
|
+
export type LlmProviderResponse = LlmProvider;
|
|
39
|
+
export interface SetDefaultProviderRequest {
|
|
40
|
+
provider_id: string;
|
|
30
41
|
}
|
|
31
|
-
export interface
|
|
42
|
+
export interface ProviderTemplate {
|
|
32
43
|
type: string;
|
|
44
|
+
display_name: string;
|
|
33
45
|
description: string;
|
|
46
|
+
required_fields: string[];
|
|
47
|
+
optional_fields: string[];
|
|
48
|
+
default_config: Record<string, string | number | boolean>;
|
|
34
49
|
}
|
package/dist/types/mcp.d.ts
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple color scheme for provider selection
|
|
3
|
+
* Blue for selected, grey for unselected
|
|
4
|
+
*/
|
|
5
|
+
export declare const PROVIDER_COLORS: {
|
|
6
|
+
readonly selected: {
|
|
7
|
+
readonly bg: "bg-blue-100 dark:bg-blue-900/30";
|
|
8
|
+
readonly text: "text-blue-700 dark:text-blue-400";
|
|
9
|
+
readonly icon: "text-blue-600 dark:text-blue-500";
|
|
10
|
+
readonly badge: "bg-blue-500";
|
|
11
|
+
};
|
|
12
|
+
readonly unselected: {
|
|
13
|
+
readonly bg: "bg-neutral-100 dark:bg-neutral-800/30";
|
|
14
|
+
readonly text: "text-neutral-700 dark:text-neutral-400";
|
|
15
|
+
readonly icon: "text-neutral-600 dark:text-neutral-500";
|
|
16
|
+
readonly badge: "bg-neutral-500";
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Get color classes based on selection state
|
|
21
|
+
*/
|
|
22
|
+
export declare function getProviderColor(isSelected: boolean): {
|
|
23
|
+
readonly bg: "bg-blue-100 dark:bg-blue-900/30";
|
|
24
|
+
readonly text: "text-blue-700 dark:text-blue-400";
|
|
25
|
+
readonly icon: "text-blue-600 dark:text-blue-500";
|
|
26
|
+
readonly badge: "bg-blue-500";
|
|
27
|
+
} | {
|
|
28
|
+
readonly bg: "bg-neutral-100 dark:bg-neutral-800/30";
|
|
29
|
+
readonly text: "text-neutral-700 dark:text-neutral-400";
|
|
30
|
+
readonly icon: "text-neutral-600 dark:text-neutral-500";
|
|
31
|
+
readonly badge: "bg-neutral-500";
|
|
32
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ToolCall } from '../store/types';
|
|
2
|
+
/**
|
|
3
|
+
* Parsed tool event from backend message content
|
|
4
|
+
*/
|
|
5
|
+
interface ParsedToolEvent {
|
|
6
|
+
event: "tool_call_request" | "tool_call_response";
|
|
7
|
+
id?: string;
|
|
8
|
+
toolCallId?: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
arguments?: Record<string, unknown>;
|
|
12
|
+
status?: string;
|
|
13
|
+
result?: unknown;
|
|
14
|
+
error?: string;
|
|
15
|
+
timestamp?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Parse JSON content from a tool message
|
|
19
|
+
*/
|
|
20
|
+
export declare function parseToolMessage(content: string): ParsedToolEvent | null;
|
|
21
|
+
/**
|
|
22
|
+
* Convert parsed tool event to ToolCall interface
|
|
23
|
+
*/
|
|
24
|
+
export declare function toolEventToToolCall(event: ParsedToolEvent): ToolCall | null;
|
|
25
|
+
/**
|
|
26
|
+
* Group tool messages to merge request/response pairs
|
|
27
|
+
* Returns a map of toolCallId -> merged ToolCall
|
|
28
|
+
* For history display, tool calls are shown as completed with arguments and results together
|
|
29
|
+
*/
|
|
30
|
+
export declare function groupToolEvents(events: ParsedToolEvent[]): Map<string, ToolCall>;
|
|
31
|
+
export {};
|