@mujian/js-sdk 0.0.6-beta.1

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 (37) hide show
  1. package/README.md +23 -0
  2. package/dist/events/index.d.ts +71 -0
  3. package/dist/index.d.ts +96 -0
  4. package/dist/index.js +220 -0
  5. package/dist/modules/ai/chat/chat.d.ts +35 -0
  6. package/dist/modules/ai/chat/index.d.ts +4 -0
  7. package/dist/modules/ai/chat/message/index.d.ts +43 -0
  8. package/dist/modules/ai/chat/project/index.d.ts +3 -0
  9. package/dist/modules/ai/chat/settings/index.d.ts +3 -0
  10. package/dist/modules/ai/chat/settings/model.d.ts +24 -0
  11. package/dist/modules/ai/chat/settings/persona.d.ts +17 -0
  12. package/dist/modules/ai/chat/settings/style.d.ts +0 -0
  13. package/dist/modules/ai/index.d.ts +5 -0
  14. package/dist/modules/ai/text/index.d.ts +2 -0
  15. package/dist/modules/game/index.d.ts +4 -0
  16. package/dist/modules/game/saves.d.ts +3 -0
  17. package/dist/modules/ui/index.d.ts +0 -0
  18. package/dist/react/chat/index.d.ts +1 -0
  19. package/dist/react/chat/useChat/error.d.ts +15 -0
  20. package/dist/react/chat/useChat/index.d.ts +55 -0
  21. package/dist/react/chat/useChat/inner/chatStreaming.d.ts +23 -0
  22. package/dist/react/chat/useChat/inner/stream.d.ts +3 -0
  23. package/dist/react/chat/useChat/message.d.ts +37 -0
  24. package/dist/react/components/MdRenderer/index.d.ts +20 -0
  25. package/dist/react/components/MdRenderer/utils.d.ts +38 -0
  26. package/dist/react/components/MujianProvider/index.d.ts +17 -0
  27. package/dist/react/components/Thread/MessageItem.d.ts +21 -0
  28. package/dist/react/components/Thread/MessageList.d.ts +19 -0
  29. package/dist/react/components/Thread/index.d.ts +4 -0
  30. package/dist/react/components/button.d.ts +14 -0
  31. package/dist/react/components/index.d.ts +4 -0
  32. package/dist/react/index.d.ts +2 -0
  33. package/dist/react.css +156 -0
  34. package/dist/react.js +832 -0
  35. package/dist/types/index.d.ts +27 -0
  36. package/dist/utils/index.d.ts +0 -0
  37. package/package.json +89 -0
package/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # Rslib project
2
+
3
+ ## Setup
4
+
5
+ Install the dependencies:
6
+
7
+ ```bash
8
+ pnpm install
9
+ ```
10
+
11
+ ## Get started
12
+
13
+ Build the library:
14
+
15
+ ```bash
16
+ pnpm build
17
+ ```
18
+
19
+ Build the library in watch mode:
20
+
21
+ ```bash
22
+ pnpm dev
23
+ ```
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @hidden
3
+ * 事件
4
+ * @enum {string}
5
+ */
6
+ export declare enum EVENT {
7
+ /**
8
+ * Doc comments may be included here.
9
+ */
10
+ MUJIAN_INIT = "mujian:init",
11
+ /**
12
+ * 调用中断信号
13
+ */
14
+ MUJIAN_AI_CHAT_STOP = "mujian:ai:chat:stop",
15
+ /**
16
+ * 发送消息
17
+ */
18
+ MUJIAN_AI_CHAT_COMPLETE = "mujian:ai:chat:complete",
19
+ /**
20
+ * 对消息应用正则表达式
21
+ */
22
+ MUJIAN_AI_CHAT_APPLY_REGEX = "mujian:ai:chat:applyRegex",
23
+ /**
24
+ * 生成文本
25
+ */
26
+ MUJIAN_AI_TEXT_GENERATE = "mujian:ai:text:generate",
27
+ /**
28
+ * 获取对话
29
+ */
30
+ MUJIAN_AI_CHAT_MESSAGE_GET_ALL = "mujian:ai:chat:message:getAll",
31
+ /**
32
+ * 获取项目信息
33
+ */
34
+ MUJIAN_AI_CHAT_PROJECT_GET_INFO = "mujian:ai:chat:project:getInfo",
35
+ /**
36
+ * 获取个人设置
37
+ */
38
+ MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE = "mujian:ai:settings:persona:getActive",
39
+ /**
40
+ * 设置个人设置
41
+ */
42
+ MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE = "mujian:ai:settings:persona:setActive",
43
+ /**
44
+ * 获取模型列表
45
+ */
46
+ MUJIAN_AI_SETTINGS_MODEL_GET_ALL = "mujian:ai:settings:model:getAll",
47
+ /**
48
+ * 设置模型设置
49
+ */
50
+ MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE = "mujian:ai:settings:model:setActive",
51
+ /**
52
+ * 获取模型设置
53
+ */
54
+ MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE = "mujian:ai:settings:model:getActive",
55
+ /**
56
+ * 删除消息
57
+ */
58
+ MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE = "mujian:ai:chat:message:deleteOne",
59
+ /**
60
+ * 编辑消息
61
+ */
62
+ MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE = "mujian:ai:chat:message:editOne",
63
+ /**
64
+ * 滑动消息
65
+ */
66
+ MUJIAN_AI_CHAT_MESSAGE_SWIPE = "mujian:ai:chat:message:swipe",
67
+ /**
68
+ * 获取消息提示词
69
+ */
70
+ MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT = "mujian:ai:chat:message:getPrompt"
71
+ }
@@ -0,0 +1,96 @@
1
+ import { EVENT } from './events';
2
+ /** @hidden */
3
+ export { EVENT } from './events';
4
+ type Call<T> = {
5
+ resolve: (value: T) => void;
6
+ reject: (reason?: unknown) => void;
7
+ onData?: (data: T) => void;
8
+ onComplete?: () => void;
9
+ signal?: AbortSignal;
10
+ };
11
+ declare global {
12
+ interface Window {
13
+ $mujian: MujianSdk;
14
+ }
15
+ }
16
+ declare class MujianSdk {
17
+ private constructor();
18
+ /** @hidden */
19
+ static getInstance(): MujianSdk;
20
+ /** @hidden */
21
+ private parent;
22
+ /** @hidden */
23
+ private ready;
24
+ /**
25
+ * 是否初始化
26
+ */
27
+ get isReady(): boolean;
28
+ /** @hidden */
29
+ private pendingRequests;
30
+ /**
31
+ * 初始化
32
+ */
33
+ init(): Promise<void>;
34
+ /** @hidden */
35
+ emit<T>(event: EVENT, data?: T): void;
36
+ /** @hidden */
37
+ private nextCallId;
38
+ /** @hidden */
39
+ private getCallId;
40
+ /** @hidden */
41
+ call<Req, Resp>(event: EVENT, data?: Req, controller?: Pick<Call<Resp>, 'onData' | 'onComplete' | 'signal'>): Promise<Resp>;
42
+ /**
43
+ * AI
44
+ */
45
+ ai: {
46
+ chat: {
47
+ project: {
48
+ getInfo: () => Promise<import("./types").ProjectInfo>;
49
+ };
50
+ settings: {
51
+ model: {
52
+ getAll: () => Promise<import("./types").ModelInfo[]>;
53
+ getActive: () => Promise<string>;
54
+ setActive: (modelId: string) => Promise<string>;
55
+ };
56
+ persona: {
57
+ getActive: () => Promise<import("./types").PersonaInfo>;
58
+ setActive: (personaId: string) => Promise<void>;
59
+ };
60
+ };
61
+ complete: (message: string, onData: (data: string) => void, signal?: AbortSignal | undefined) => Promise<string>;
62
+ applyRegex: (props: {
63
+ message: import("./react").Message;
64
+ index: number;
65
+ depth: number;
66
+ }) => Promise<import("./react").Message>;
67
+ continue: (onData: (data: string) => void, signal?: AbortSignal | undefined) => Promise<string>;
68
+ regenerate: (onData: (data: string) => void, signal?: AbortSignal | undefined) => Promise<string>;
69
+ message: {
70
+ getAll: () => Promise<import("./react").Message[]>;
71
+ deleteOne: (messageId: string) => Promise<unknown>;
72
+ editOne: (messageId: string, content: string) => Promise<unknown>;
73
+ swipe: (messageId: string, swipeId: number) => Promise<unknown>;
74
+ getPrompt: (messageId: string) => Promise<unknown>;
75
+ };
76
+ };
77
+ text: {
78
+ complete: () => Promise<void>;
79
+ };
80
+ };
81
+ ui: {};
82
+ util: {
83
+ cn: () => void;
84
+ };
85
+ hybrid: {};
86
+ player: {};
87
+ game: {
88
+ assets: () => void;
89
+ saves: {
90
+ saveGame: () => Promise<void>;
91
+ loadGame: () => Promise<void>;
92
+ };
93
+ ranking: () => void;
94
+ };
95
+ }
96
+ export { MujianSdk };
package/dist/index.js ADDED
@@ -0,0 +1,220 @@
1
+ import postmate from "postmate";
2
+ var events_EVENT = /*#__PURE__*/ function(EVENT) {
3
+ EVENT["MUJIAN_INIT"] = "mujian:init";
4
+ EVENT["MUJIAN_AI_CHAT_STOP"] = "mujian:ai:chat:stop";
5
+ EVENT["MUJIAN_AI_CHAT_COMPLETE"] = "mujian:ai:chat:complete";
6
+ EVENT["MUJIAN_AI_CHAT_APPLY_REGEX"] = "mujian:ai:chat:applyRegex";
7
+ EVENT["MUJIAN_AI_TEXT_GENERATE"] = "mujian:ai:text:generate";
8
+ EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_ALL"] = "mujian:ai:chat:message:getAll";
9
+ EVENT["MUJIAN_AI_CHAT_PROJECT_GET_INFO"] = "mujian:ai:chat:project:getInfo";
10
+ EVENT["MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE"] = "mujian:ai:settings:persona:getActive";
11
+ EVENT["MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE"] = "mujian:ai:settings:persona:setActive";
12
+ EVENT["MUJIAN_AI_SETTINGS_MODEL_GET_ALL"] = "mujian:ai:settings:model:getAll";
13
+ EVENT["MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE"] = "mujian:ai:settings:model:setActive";
14
+ EVENT["MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE"] = "mujian:ai:settings:model:getActive";
15
+ EVENT["MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE"] = "mujian:ai:chat:message:deleteOne";
16
+ EVENT["MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE"] = "mujian:ai:chat:message:editOne";
17
+ EVENT["MUJIAN_AI_CHAT_MESSAGE_SWIPE"] = "mujian:ai:chat:message:swipe";
18
+ EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT"] = "mujian:ai:chat:message:getPrompt";
19
+ return EVENT;
20
+ }({});
21
+ const chat_complete = async function(message, onData, signal) {
22
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_COMPLETE, {
23
+ content: message
24
+ }, {
25
+ onData,
26
+ signal
27
+ });
28
+ };
29
+ const applyRegex = async function(props) {
30
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_APPLY_REGEX, props);
31
+ };
32
+ const continueComplete = async function(onData, signal) {
33
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_COMPLETE, {
34
+ isContinue: true
35
+ }, {
36
+ onData,
37
+ signal
38
+ });
39
+ };
40
+ const regenerate = async function(onData, signal) {
41
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_COMPLETE, {
42
+ isRegenerate: true
43
+ }, {
44
+ onData,
45
+ signal
46
+ });
47
+ };
48
+ const getAll = async function() {
49
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_GET_ALL);
50
+ };
51
+ const messageDeleteOne = async function(messageId) {
52
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE, {
53
+ messageId
54
+ });
55
+ };
56
+ const messageEditOne = async function(messageId, content) {
57
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE, {
58
+ messageId,
59
+ content
60
+ });
61
+ };
62
+ const messageSwipe = async function(messageId, swipeId) {
63
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_SWIPE, {
64
+ messageId,
65
+ swipeId
66
+ });
67
+ };
68
+ const getPrompt = async function(messageId) {
69
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT, {
70
+ messageId
71
+ });
72
+ };
73
+ const getInfo = async function() {
74
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_PROJECT_GET_INFO);
75
+ };
76
+ const getActive = async function() {
77
+ return await this.call(events_EVENT.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE);
78
+ };
79
+ const setActive = async function(personaId) {
80
+ return await this.call(events_EVENT.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE, {
81
+ personaId
82
+ });
83
+ };
84
+ const model_getActive = async function() {
85
+ return await this.call(events_EVENT.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE);
86
+ };
87
+ const model_setActive = async function(modelId) {
88
+ return await this.call(events_EVENT.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE, {
89
+ modelId
90
+ });
91
+ };
92
+ const model_getAll = async function() {
93
+ return await this.call(events_EVENT.MUJIAN_AI_SETTINGS_MODEL_GET_ALL);
94
+ };
95
+ const generate = async function() {
96
+ return await this.call(events_EVENT.MUJIAN_AI_TEXT_GENERATE, {
97
+ content: 'q'
98
+ });
99
+ };
100
+ const saveGame = async function() {};
101
+ const loadGame = async function() {};
102
+ class MujianSdk {
103
+ constructor(){}
104
+ static getInstance() {
105
+ if (!window.$mujian) window.$mujian = new MujianSdk();
106
+ return window.$mujian;
107
+ }
108
+ parent = null;
109
+ ready = false;
110
+ get isReady() {
111
+ return this.ready;
112
+ }
113
+ pendingRequests = new Map();
114
+ async init() {
115
+ const handshake = new postmate.Model({
116
+ reply: ({ id, complete, data })=>{
117
+ const call = this.pendingRequests.get(id);
118
+ if (!call) return;
119
+ call.onData?.(data);
120
+ if (complete) {
121
+ call.onComplete?.();
122
+ call.resolve(data);
123
+ this.pendingRequests.delete(id);
124
+ }
125
+ }
126
+ });
127
+ try {
128
+ const parent = await handshake;
129
+ this.ready = true;
130
+ this.parent = parent;
131
+ console.log('mujian sdk client init');
132
+ await this.call(events_EVENT.MUJIAN_INIT);
133
+ } catch (error) {
134
+ console.log('init error', error);
135
+ }
136
+ }
137
+ emit(event, data) {
138
+ if (!this.ready) throw new Error('Mujian is not initialized');
139
+ this.parent?.emit(event, data);
140
+ }
141
+ nextCallId = 0;
142
+ getCallId() {
143
+ const id = this.nextCallId;
144
+ this.nextCallId += 1;
145
+ return id;
146
+ }
147
+ async call(event, data, controller) {
148
+ if (!this.ready) throw new Error('Mujian is not initialized');
149
+ const callId = this.getCallId();
150
+ return new Promise((resolve, reject)=>{
151
+ this.pendingRequests.set(callId, {
152
+ resolve,
153
+ reject,
154
+ ...controller
155
+ });
156
+ this.emit(event, {
157
+ id: callId,
158
+ data
159
+ });
160
+ controller?.signal?.addEventListener('abort', ()=>{
161
+ this.emit(events_EVENT.MUJIAN_AI_CHAT_STOP, {
162
+ id: callId
163
+ });
164
+ });
165
+ });
166
+ }
167
+ ai = {
168
+ chat: {
169
+ project: {
170
+ getInfo: getInfo.bind(this)
171
+ },
172
+ settings: {
173
+ model: {
174
+ getAll: model_getAll.bind(this),
175
+ getActive: model_getActive.bind(this),
176
+ setActive: model_setActive.bind(this)
177
+ },
178
+ persona: {
179
+ getActive: getActive.bind(this),
180
+ setActive: setActive.bind(this)
181
+ }
182
+ },
183
+ complete: chat_complete.bind(this),
184
+ applyRegex: applyRegex.bind(this),
185
+ continue: continueComplete.bind(this),
186
+ regenerate: regenerate.bind(this),
187
+ message: {
188
+ getAll: getAll.bind(this),
189
+ deleteOne: messageDeleteOne.bind(this),
190
+ editOne: messageEditOne.bind(this),
191
+ swipe: messageSwipe.bind(this),
192
+ getPrompt: getPrompt.bind(this)
193
+ }
194
+ },
195
+ text: {
196
+ complete: generate.bind(this)
197
+ }
198
+ };
199
+ ui = {};
200
+ util = {
201
+ cn: ()=>{
202
+ console.log('cn');
203
+ }
204
+ };
205
+ hybrid = {};
206
+ player = {};
207
+ game = {
208
+ assets: ()=>{
209
+ console.log('assets');
210
+ },
211
+ saves: {
212
+ saveGame: saveGame.bind(this),
213
+ loadGame: loadGame.bind(this)
214
+ },
215
+ ranking: ()=>{
216
+ console.log('ranking');
217
+ }
218
+ };
219
+ }
220
+ export { events_EVENT as EVENT, MujianSdk };
@@ -0,0 +1,35 @@
1
+ import type { MujianSdk } from '../../../index.ts';
2
+ import { Message } from '../../../react';
3
+ /**
4
+ * 对话补全
5
+ * @param {string} message 消息
6
+ * @param {Function} onData 数据
7
+ * @param {AbortSignal} signal 信号
8
+ * @returns {Promise<string>} 返回值
9
+ */
10
+ export declare const complete: (
11
+ /** @hidden */
12
+ this: MujianSdk, message: string, onData: (data: string) => void, signal?: AbortSignal) => Promise<string>;
13
+ export declare const applyRegex: (this: MujianSdk, props: {
14
+ message: Message;
15
+ index: number;
16
+ depth: number;
17
+ }) => Promise<Message>;
18
+ /**
19
+ * 继续
20
+ * @param onData 数据
21
+ * @param signal 信号
22
+ * @returns
23
+ */
24
+ export declare const continueComplete: (
25
+ /** @hidden */
26
+ this: MujianSdk, onData: (data: string) => void, signal?: AbortSignal) => Promise<string>;
27
+ /**
28
+ * 重新生成
29
+ * @param onData 数据
30
+ * @param signal 信号
31
+ * @returns
32
+ */
33
+ export declare const regenerate: (
34
+ /** @hidden */
35
+ this: MujianSdk, onData: (data: string) => void, signal?: AbortSignal) => Promise<string>;
@@ -0,0 +1,4 @@
1
+ export { applyRegex, complete, continueComplete, regenerate } from './chat';
2
+ export * as message from './message';
3
+ export * as project from './project';
4
+ export * as settings from './settings';
@@ -0,0 +1,43 @@
1
+ import type { MujianSdk } from '../../../../index.ts';
2
+ import type { Message } from '../../../../react/chat/useChat/message';
3
+ /**
4
+ * 获取消息列表
5
+ * @returns 消息当前列表
6
+ */
7
+ export declare const getAll: (
8
+ /** @hidden */
9
+ this: MujianSdk) => Promise<Message[]>;
10
+ /**
11
+ * 删除消息
12
+ * @param messageId 消息ID
13
+ * @returns
14
+ */
15
+ export declare const messageDeleteOne: (
16
+ /** @hidden */
17
+ this: MujianSdk, messageId: string) => Promise<unknown>;
18
+ /**
19
+ * 编辑消息
20
+ * @param messageId 消息ID
21
+ * @param content 内容
22
+ * @returns
23
+ */
24
+ export declare const messageEditOne: (
25
+ /** @hidden */
26
+ this: MujianSdk, messageId: string, content: string) => Promise<unknown>;
27
+ /**
28
+ * 滑动消息
29
+ * @param messageId 消息ID
30
+ * @param swipeId 滑动ID
31
+ * @returns
32
+ */
33
+ export declare const messageSwipe: (
34
+ /** @hidden */
35
+ this: MujianSdk, messageId: string, swipeId: number) => Promise<unknown>;
36
+ /**
37
+ * 获取消息提示词
38
+ * @param messageId 消息ID
39
+ * @returns
40
+ */
41
+ export declare const getPrompt: (
42
+ /** @hidden */
43
+ this: MujianSdk, messageId: string) => Promise<unknown>;
@@ -0,0 +1,3 @@
1
+ import type { MujianSdk } from '../../../../index.ts';
2
+ import type { ProjectInfo } from '../../../../types';
3
+ export declare const getInfo: (this: MujianSdk) => Promise<ProjectInfo>;
@@ -0,0 +1,3 @@
1
+ import * as persona from './persona';
2
+ import * as model from './model';
3
+ export { persona, model };
@@ -0,0 +1,24 @@
1
+ import type { MujianSdk } from '../../../../index.ts';
2
+ import type { ModelInfo } from '../../../../types';
3
+ /**
4
+ * 获取当前激活的模型
5
+ * @returns 模型ID
6
+ */
7
+ export declare const getActive: (
8
+ /** @hidden */
9
+ this: MujianSdk) => Promise<string>;
10
+ /**
11
+ * 设置当前激活的模型
12
+ * @param modelId
13
+ * @returns 模型ID
14
+ */
15
+ export declare const setActive: (
16
+ /** @hidden */
17
+ this: MujianSdk, modelId: string) => Promise<string>;
18
+ /**
19
+ * 获取模型列表
20
+ * @returns 模型列表
21
+ */
22
+ export declare const getAll: (
23
+ /** @hidden */
24
+ this: MujianSdk) => Promise<ModelInfo[]>;
@@ -0,0 +1,17 @@
1
+ import type { MujianSdk } from '../../../../index.ts';
2
+ import type { PersonaInfo } from '../../../../types';
3
+ /**
4
+ * 获取当前激活的个人设置
5
+ * @returns 个人设置
6
+ */
7
+ export declare const getActive: (
8
+ /** @hidden */
9
+ this: MujianSdk) => Promise<PersonaInfo>;
10
+ /**
11
+ * 设置当前激活的个人设置
12
+ * @param personaId 个人设置ID
13
+ * @returns
14
+ */
15
+ export declare const setActive: (
16
+ /** @hidden */
17
+ this: MujianSdk, personaId: string) => Promise<void>;
File without changes
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @module ai
3
+ */
4
+ export * as chat from './chat';
5
+ export * as text from './text';
@@ -0,0 +1,2 @@
1
+ import type { MujianSdk } from '../../../index';
2
+ export declare const generate: (this: MujianSdk) => Promise<void>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @module game
3
+ */
4
+ export * as saves from './saves';
@@ -0,0 +1,3 @@
1
+ import type { MujianSdk } from '../../index.ts';
2
+ export declare const saveGame: (this: MujianSdk) => Promise<void>;
3
+ export declare const loadGame: (this: MujianSdk) => Promise<void>;
File without changes
@@ -0,0 +1 @@
1
+ export { type Message, useChat } from './useChat';
@@ -0,0 +1,15 @@
1
+ export declare class CreateConversationError extends Error {
2
+ constructor(message: string, cause?: unknown);
3
+ }
4
+ export declare class SendMessageError extends Error {
5
+ constructor(message: string, cause?: unknown);
6
+ }
7
+ export declare class InvalidDeltaContentError extends Error {
8
+ constructor(message: string, cause?: unknown);
9
+ }
10
+ export declare class UnexpectedSseEndingError extends Error {
11
+ constructor(message: string, cause?: unknown);
12
+ }
13
+ export declare class InsufficientBalanceError extends Error {
14
+ constructor(message?: string, cause?: unknown);
15
+ }
@@ -0,0 +1,55 @@
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ import type { Message } from './message';
3
+ export type { Message };
4
+ /**
5
+ * Use chat
6
+ * @param {object} body - The body of the chat.
7
+ * @param {function} onError - The function to call when an error occurs.
8
+ * @param {function} onFinish - The function to call when the chat is finished.
9
+ * @returns {UseChatReturn} The chat.
10
+ */
11
+ export type UseChatProps = {
12
+ body?: object;
13
+ onError?: (e: Error) => void;
14
+ onFinish?: (message: Message) => void;
15
+ };
16
+ /**
17
+ * Use chat return
18
+ * @param {Message[]} messages - The messages of the chat.
19
+ * @param {string} status - The status of the chat.
20
+ * @param {Error} error - The error of the chat.
21
+ * @param {function} append - The function to call when the chat is finished.
22
+ * @param {function} regenerate - The function to call when the chat is finished.
23
+ */
24
+ export type UseChatReturn = {
25
+ messages: Message[];
26
+ status: 'uninitialized' | 'ready' | 'streaming' | 'error';
27
+ error?: Error;
28
+ /** 提交用户输入,让AI回答 */
29
+ append: (query: string) => Promise<void>;
30
+ /** 重新生成最后一条回答 */
31
+ regenerate: () => Promise<void>;
32
+ /** 让AI继续说 */
33
+ continueGenerate: () => Promise<void>;
34
+ stop: () => void;
35
+ setMessages: Dispatch<SetStateAction<Message[]>>;
36
+ input: string;
37
+ setInput: Dispatch<SetStateAction<string>>;
38
+ handleSubmit: () => void;
39
+ setSwipe: (messageId: string, swipeId: number) => Promise<void>;
40
+ editMessage: (messageId: string, content: string) => Promise<void>;
41
+ deleteMessage: (messageId: string) => Promise<void>;
42
+ };
43
+ /**
44
+ * Use chat common
45
+ * @param {object} body - The body of the chat.
46
+ * @returns {UseChatCommon} The chat.
47
+ */
48
+ export type UseChatCommon = {
49
+ body?: object;
50
+ };
51
+ /**
52
+ * Use chat
53
+ * @returns {UseChatReturn} The chat.
54
+ */
55
+ export declare const useChat: ({ body, onError, onFinish, }: UseChatProps) => UseChatReturn;
@@ -0,0 +1,23 @@
1
+ import { type Dispatch, type SetStateAction } from 'react';
2
+ import type { MujianSdk } from '../../../../index.ts';
3
+ import type { UseChatCommon } from '..';
4
+ import type { Message } from '../message';
5
+ interface ChatStreamingProps {
6
+ common: UseChatCommon;
7
+ setError: (error: Error | undefined) => void;
8
+ setMessages: Dispatch<SetStateAction<Message[]>>;
9
+ mujian: MujianSdk;
10
+ }
11
+ export declare const useChatStreaming: ({ common, setError, setMessages, mujian, }: ChatStreamingProps) => {
12
+ chatStreaming: ({ query, regenerate, is_continue, signal, }: {
13
+ /** 用户输入 */
14
+ query?: string;
15
+ /** 是否重说 */
16
+ regenerate?: boolean;
17
+ /** 是否继续 */
18
+ is_continue?: boolean;
19
+ signal?: AbortSignal;
20
+ }) => Promise<void>;
21
+ isStreaming: boolean;
22
+ };
23
+ export {};
@@ -0,0 +1,3 @@
1
+ import type { MujianSdk } from '../../../../index.ts';
2
+ export declare function callSdk(mujian: MujianSdk, content: string, type?: 'generate' | 'regenerate' | 'continue', signal?: AbortSignal): AsyncGenerator<string | undefined, void, unknown>;
3
+ export declare function callSdk2(mujian: MujianSdk, content: string, type?: 'generate' | 'regenerate' | 'continue', signal?: AbortSignal): ReadableStream;