@huyooo/ai-chat-frontend-vue 0.1.3 → 0.1.4
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/adapter.d.ts +3 -35
- package/dist/adapter.d.ts.map +1 -1
- package/dist/components/ChatInput.vue.d.ts +2 -2
- package/dist/composables/useChat.d.ts +6 -2
- package/dist/composables/useChat.d.ts.map +1 -1
- package/dist/index.d.ts +15 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +678 -569
- package/dist/types/index.d.ts +9 -40
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/adapter.ts +40 -70
- package/src/composables/useChat.ts +6 -7
- package/src/index.ts +27 -17
- package/src/types/index.ts +21 -43
package/dist/adapter.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export type ChatProgressType = 'thinking' | 'search_start' | 'search_result' | 'tool_call' | 'tool_result' | 'text_delta' | 'text' | 'done' | 'error';
|
|
1
|
+
import { ChatAdapter as ChatAdapterType, ChatMode, ThinkingMode } from '@huyooo/ai-chat-bridge-electron/renderer';
|
|
2
|
+
export type ChatAdapter = ChatAdapterType;
|
|
4
3
|
/** 思考数据 */
|
|
5
4
|
export interface ThinkingData {
|
|
6
5
|
content: string;
|
|
@@ -21,13 +20,6 @@ export interface ImageData {
|
|
|
21
20
|
base64: string;
|
|
22
21
|
mimeType: string;
|
|
23
22
|
}
|
|
24
|
-
/** 聊天进度事件 */
|
|
25
|
-
export interface ChatProgress {
|
|
26
|
-
type: ChatProgressType;
|
|
27
|
-
data: string | ThinkingData | ToolCallData | ToolResultData | {
|
|
28
|
-
results: SearchResult[];
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
23
|
/** 发送消息选项 */
|
|
32
24
|
export interface SendMessageOptions {
|
|
33
25
|
mode: ChatMode;
|
|
@@ -56,32 +48,8 @@ export interface SaveMessageOptions {
|
|
|
56
48
|
toolCalls?: string;
|
|
57
49
|
searchResults?: string;
|
|
58
50
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Chat Adapter 接口
|
|
61
|
-
* 所有后端通信实现都需要实现此接口
|
|
62
|
-
*/
|
|
63
|
-
export interface ChatAdapter {
|
|
64
|
-
/** 获取所有会话 */
|
|
65
|
-
getSessions(): Promise<SessionRecord[]>;
|
|
66
|
-
/** 创建新会话 */
|
|
67
|
-
createSession(options: CreateSessionOptions): Promise<SessionRecord>;
|
|
68
|
-
/** 更新会话 */
|
|
69
|
-
updateSession(sessionId: string, options: UpdateSessionOptions): Promise<void>;
|
|
70
|
-
/** 删除会话 */
|
|
71
|
-
deleteSession(sessionId: string): Promise<void>;
|
|
72
|
-
/** 获取会话消息 */
|
|
73
|
-
getMessages(sessionId: string): Promise<MessageRecord[]>;
|
|
74
|
-
/** 保存消息 */
|
|
75
|
-
saveMessage(options: SaveMessageOptions): Promise<MessageRecord>;
|
|
76
|
-
/** 发送消息并获取流式响应 */
|
|
77
|
-
sendMessage(content: string, options: SendMessageOptions, images?: string[]): AsyncGenerator<ChatProgress, void, unknown>;
|
|
78
|
-
/** 取消当前请求 */
|
|
79
|
-
cancel(): void;
|
|
80
|
-
/** 设置工作目录 */
|
|
81
|
-
setWorkingDir?(dir: string): void;
|
|
82
|
-
}
|
|
83
51
|
/**
|
|
84
52
|
* 创建空 Adapter(用于测试或无后端场景)
|
|
85
53
|
*/
|
|
86
|
-
export declare function createNullAdapter():
|
|
54
|
+
export declare function createNullAdapter(): ChatAdapterType;
|
|
87
55
|
//# sourceMappingURL=adapter.d.ts.map
|
package/dist/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AAGtH,MAAM,MAAM,WAAW,GAAG,eAAe,CAAA;AAGzC,WAAW;AACX,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,aAAa;AACb,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9B;AAED,aAAa;AACb,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,WAAW;AACX,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,aAAa;AACb,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,aAAa;AACb,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,eAAe,CA2DnD"}
|
|
@@ -22,7 +22,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
|
22
22
|
"remove-image": (index: number) => any;
|
|
23
23
|
"upload-image": () => any;
|
|
24
24
|
"at-context": () => any;
|
|
25
|
-
"update:mode": (mode: ChatMode) => any;
|
|
25
|
+
"update:mode": (mode: import('@huyooo/ai-chat-bridge-electron/renderer').ChatMode) => any;
|
|
26
26
|
"update:model": (model: string) => any;
|
|
27
27
|
"update:webSearch": (enabled: boolean) => any;
|
|
28
28
|
"update:thinking": (enabled: boolean) => any;
|
|
@@ -32,7 +32,7 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
|
32
32
|
"onRemove-image"?: ((index: number) => any) | undefined;
|
|
33
33
|
"onUpload-image"?: (() => any) | undefined;
|
|
34
34
|
"onAt-context"?: (() => any) | undefined;
|
|
35
|
-
"onUpdate:mode"?: ((mode: ChatMode) => any) | undefined;
|
|
35
|
+
"onUpdate:mode"?: ((mode: import('@huyooo/ai-chat-bridge-electron/renderer').ChatMode) => any) | undefined;
|
|
36
36
|
"onUpdate:model"?: ((model: string) => any) | undefined;
|
|
37
37
|
"onUpdate:webSearch"?: ((enabled: boolean) => any) | undefined;
|
|
38
38
|
"onUpdate:thinking"?: ((enabled: boolean) => any) | undefined;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChatAdapter } from '
|
|
2
|
-
import { ChatMessage
|
|
1
|
+
import { ChatAdapter, ChatMode, SessionRecord } from '@huyooo/ai-chat-bridge-electron/renderer';
|
|
2
|
+
import { ChatMessage } from '../types';
|
|
3
3
|
export interface UseChatOptions {
|
|
4
4
|
/** Adapter 实例 */
|
|
5
5
|
adapter?: ChatAdapter;
|
|
@@ -14,6 +14,8 @@ export interface UseChatOptions {
|
|
|
14
14
|
export declare function useChat(options?: UseChatOptions): {
|
|
15
15
|
sessions: import('vue').Ref<{
|
|
16
16
|
id: string;
|
|
17
|
+
appId: string | null;
|
|
18
|
+
userId: string | null;
|
|
17
19
|
title: string;
|
|
18
20
|
model: string;
|
|
19
21
|
mode: ChatMode;
|
|
@@ -21,6 +23,8 @@ export declare function useChat(options?: UseChatOptions): {
|
|
|
21
23
|
updatedAt: Date;
|
|
22
24
|
}[], SessionRecord[] | {
|
|
23
25
|
id: string;
|
|
26
|
+
appId: string | null;
|
|
27
|
+
userId: string | null;
|
|
24
28
|
title: string;
|
|
25
29
|
model: string;
|
|
26
30
|
mode: ChatMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/composables/useChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"useChat.d.ts","sourceRoot":"","sources":["../../src/composables/useChat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,WAAW,EAEX,QAAQ,EACR,aAAa,EAEd,MAAM,0CAA0C,CAAA;AAEjD,OAAO,KAAK,EAAE,WAAW,EAA0B,MAAM,UAAU,CAAA;AAsBnE,MAAM,WAAW,cAAc;IAC7B,iBAAiB;IACjB,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,WAAW;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW;IACX,WAAW,CAAC,EAAE,QAAQ,CAAA;CACvB;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE,cAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAuCV,MAAM;;+BAsCN,MAAM;;wBAgGb,MAAM,WAAW,MAAM,EAAE;;6BAmIpB,MAAM;sCAoBH,MAAM;qBAwC5B,QAAQ;sBACP,MAAM;0BACF,OAAO;yBACR,OAAO;+BAlCI,MAAM;EAuCzC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @huyooo/ai-chat-frontend
|
|
2
|
+
* @huyooo/ai-chat-frontend-vue
|
|
3
3
|
*
|
|
4
|
-
* AI Chat 前端组件库
|
|
4
|
+
* AI Chat 前端组件库 - Vue 版本
|
|
5
5
|
*
|
|
6
6
|
* 使用 adapter 模式,与后端通信方式解耦
|
|
7
7
|
*/
|
|
8
|
-
export type { ChatAdapter, ChatProgress, ChatProgressType,
|
|
8
|
+
export type { ChatAdapter, ChatProgress, ChatProgressType, ChatOptions, ChatMode, ModelConfig, ModelProvider, ThinkingMode, SessionRecord, MessageRecord, } from '@huyooo/ai-chat-bridge-electron/renderer';
|
|
9
|
+
export { createElectronAdapter } from '@huyooo/ai-chat-bridge-electron/renderer';
|
|
10
|
+
export type { ThinkingData, ToolCallData, ToolResultData, ImageData, SendMessageOptions, CreateSessionOptions, UpdateSessionOptions, SaveMessageOptions, } from './adapter';
|
|
9
11
|
export { createNullAdapter } from './adapter';
|
|
10
12
|
export { useChat } from './composables/useChat';
|
|
11
13
|
export type { UseChatOptions } from './composables/useChat';
|
|
@@ -18,20 +20,22 @@ export { default as ExecutionSteps } from './components/chat/messages/ExecutionS
|
|
|
18
20
|
export { default as ThinkingBlock } from './components/chat/ThinkingBlock.vue';
|
|
19
21
|
export { default as ToolCallBlock } from './components/chat/ToolCallBlock.vue';
|
|
20
22
|
export { default as SearchResultBlock } from './components/chat/SearchResultBlock.vue';
|
|
21
|
-
export type { ChatMessage,
|
|
23
|
+
export type { ChatMessage, SearchResult, ToolCall, ChatSession, MediaOperation, AiModel, DiffStat, } from './types';
|
|
22
24
|
export { DEFAULT_MODELS, FileType } from './types';
|
|
23
25
|
/**
|
|
24
26
|
* 使用说明:
|
|
25
27
|
*
|
|
26
|
-
* 1.
|
|
27
|
-
* import
|
|
28
|
-
* const adapter = createElectronAdapter();
|
|
28
|
+
* 1. 导入样式:
|
|
29
|
+
* import '@huyooo/ai-chat-frontend-vue/style.css'
|
|
29
30
|
*
|
|
30
|
-
* 2.
|
|
31
|
+
* 2. 创建 adapter 和使用组件(一行导入):
|
|
32
|
+
* import { ChatPanel, createElectronAdapter } from '@huyooo/ai-chat-frontend-vue'
|
|
33
|
+
* const adapter = createElectronAdapter()
|
|
31
34
|
* <ChatPanel :adapter="adapter" />
|
|
32
35
|
*
|
|
33
|
-
* 3. 或使用 useChat composable:
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
+
* 3. 或使用 useChat composable 自定义 UI:
|
|
37
|
+
* import { useChat, createElectronAdapter } from '@huyooo/ai-chat-frontend-vue'
|
|
38
|
+
* const adapter = createElectronAdapter()
|
|
39
|
+
* const chat = useChat({ adapter })
|
|
36
40
|
*/
|
|
37
41
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAG1F,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAGvF,YAAY,EACV,WAAW,EACX,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,aAAa,EACb,YAAY,EACZ,aAAa,EACb,aAAa,GACd,MAAM,0CAA0C,CAAA;AAGjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAA;AAGhF,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAG5E,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,yCAAyC,CAAC;AAGpF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,8CAA8C,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAG1F,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,yCAAyC,CAAC;AAGvF,YAAY,EACV,WAAW,EACX,YAAY,EACZ,QAAQ,EAER,WAAW,EACX,cAAc,EACd,OAAO,EACP,QAAQ,GACT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnD;;;;;;;;;;;;;;;GAeG"}
|