@umituz/web-ai 0.0.0-stage → 1.0.0

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 (65) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +98 -2
  3. package/dist/ABTesting-DDqNhHtP.d.ts +184 -0
  4. package/dist/ABTesting-DWBtKTMQ.d.cts +184 -0
  5. package/dist/ContentGeneration-B6iK2B33.d.cts +93 -0
  6. package/dist/ContentGeneration-B6iK2B33.d.ts +93 -0
  7. package/dist/ProviderConfig-a55tLhWT.d.cts +99 -0
  8. package/dist/ProviderConfig-a55tLhWT.d.ts +99 -0
  9. package/dist/cache-manager-Df9LLYGA.d.cts +31 -0
  10. package/dist/cache-manager-Df9LLYGA.d.ts +31 -0
  11. package/dist/chat/index.cjs +534 -0
  12. package/dist/chat/index.cjs.map +1 -0
  13. package/dist/chat/index.d.cts +25 -0
  14. package/dist/chat/index.d.ts +25 -0
  15. package/dist/chat/index.js +527 -0
  16. package/dist/chat/index.js.map +1 -0
  17. package/dist/chat.service-DBKq9I2c.d.cts +124 -0
  18. package/dist/chat.service-RQn8UTXD.d.ts +124 -0
  19. package/dist/content/index.cjs +3769 -0
  20. package/dist/content/index.cjs.map +1 -0
  21. package/dist/content/index.d.cts +225 -0
  22. package/dist/content/index.d.ts +225 -0
  23. package/dist/content/index.js +3738 -0
  24. package/dist/content/index.js.map +1 -0
  25. package/dist/core/index.cjs +1040 -0
  26. package/dist/core/index.cjs.map +1 -0
  27. package/dist/core/index.d.cts +232 -0
  28. package/dist/core/index.d.ts +232 -0
  29. package/dist/core/index.js +969 -0
  30. package/dist/core/index.js.map +1 -0
  31. package/dist/create-ai-BhNaz86i.d.ts +268 -0
  32. package/dist/create-ai-DGZFBOA1.d.cts +268 -0
  33. package/dist/hooks/index.cjs +5056 -0
  34. package/dist/hooks/index.cjs.map +1 -0
  35. package/dist/hooks/index.d.cts +210 -0
  36. package/dist/hooks/index.d.ts +210 -0
  37. package/dist/hooks/index.js +5045 -0
  38. package/dist/hooks/index.js.map +1 -0
  39. package/dist/index-DjX9ZKuM.d.cts +14 -0
  40. package/dist/index-DxLvE588.d.ts +14 -0
  41. package/dist/index-fXjxTR5W.d.cts +66 -0
  42. package/dist/index-fXjxTR5W.d.ts +66 -0
  43. package/dist/index.cjs +3158 -0
  44. package/dist/index.cjs.map +1 -0
  45. package/dist/index.d.cts +11 -0
  46. package/dist/index.d.ts +11 -0
  47. package/dist/index.js +3048 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/provider.factory-COsnprLH.d.cts +110 -0
  50. package/dist/provider.factory-CpWFyjbw.d.ts +110 -0
  51. package/dist/providers/index.cjs +2410 -0
  52. package/dist/providers/index.cjs.map +1 -0
  53. package/dist/providers/index.d.cts +333 -0
  54. package/dist/providers/index.d.ts +333 -0
  55. package/dist/providers/index.js +2376 -0
  56. package/dist/providers/index.js.map +1 -0
  57. package/dist/request-deduplicator.util-NDo0_n1y.d.cts +50 -0
  58. package/dist/request-deduplicator.util-NDo0_n1y.d.ts +50 -0
  59. package/dist/wizard/index.cjs +230 -0
  60. package/dist/wizard/index.cjs.map +1 -0
  61. package/dist/wizard/index.d.cts +86 -0
  62. package/dist/wizard/index.d.ts +86 -0
  63. package/dist/wizard/index.js +223 -0
  64. package/dist/wizard/index.js.map +1 -0
  65. package/package.json +111 -4
@@ -0,0 +1,124 @@
1
+ import { c as TextTier, C as ChatMessage$1 } from './index-fXjxTR5W.cjs';
2
+ import { b as ITextProvider, c as ProviderFactory } from './provider.factory-COsnprLH.cjs';
3
+
4
+ type ChatMessageSender = "user" | "assistant" | "system";
5
+ type ChatMessageType = "text" | "image" | "audio" | "sticker";
6
+ interface ChatMessage {
7
+ readonly id: string;
8
+ readonly sender: ChatMessageSender;
9
+ readonly content: string;
10
+ readonly timestamp: string;
11
+ readonly type?: ChatMessageType;
12
+ readonly imageUrl?: string;
13
+ readonly reaction?: string;
14
+ readonly metadata?: Readonly<Record<string, unknown>>;
15
+ }
16
+ interface ChatConversation {
17
+ readonly id: string;
18
+ readonly companionId: string;
19
+ readonly companionName: string;
20
+ readonly lastMessage?: ChatMessage;
21
+ readonly messageCount: number;
22
+ readonly updatedAt: string;
23
+ }
24
+ interface SendMessageInput {
25
+ readonly companionId: string;
26
+ readonly text: string;
27
+ readonly type?: ChatMessageType;
28
+ readonly imageUrl?: string;
29
+ }
30
+ interface SendMessageResult {
31
+ readonly userMessage: ChatMessage;
32
+ readonly aiResponse?: ChatMessage;
33
+ }
34
+ interface ChatConfig {
35
+ readonly systemPrompt?: string;
36
+ readonly temperature?: number;
37
+ readonly maxTokens?: number;
38
+ /** Neutral quality tier — resolved against whichever provider serves the chat. */
39
+ readonly tier?: TextTier;
40
+ /** Explicit model id; wins over tier resolution. */
41
+ readonly model?: string;
42
+ }
43
+ interface IChatStorage {
44
+ saveMessage(conversationId: string, message: ChatMessage): Promise<void>;
45
+ getMessages(conversationId: string): Promise<ChatMessage[]>;
46
+ updateMessage(messageId: string, updates: Partial<ChatMessage>): Promise<void>;
47
+ deleteMessage(messageId: string): Promise<void>;
48
+ }
49
+ interface ChatTokenUsage {
50
+ readonly promptTokens: number;
51
+ readonly completionTokens: number;
52
+ readonly totalTokens: number;
53
+ }
54
+
55
+ interface SystemPromptStrategy {
56
+ resolve(config: ChatConfig): string | undefined;
57
+ }
58
+ declare const DEFAULT_PROMPT_STRATEGY: SystemPromptStrategy;
59
+
60
+ interface IChatService {
61
+ sendMessage(input: SendMessageInput): Promise<SendMessageResult>;
62
+ getConversation(conversationId: string): Promise<ChatConversation | null>;
63
+ getConversations(): Promise<ChatConversation[]>;
64
+ generateAIResponse(companionId: string, userMessage: string, context?: ReadonlyArray<ChatMessage>): Promise<ChatMessage>;
65
+ generateStreamingResponse(userMessage: string, context: ReadonlyArray<ChatMessage>, onChunk: (chunk: string) => void): Promise<string>;
66
+ }
67
+ interface UseChatOptions {
68
+ readonly conversationId: string;
69
+ readonly storage?: IChatStorage;
70
+ readonly config?: ChatConfig;
71
+ readonly autoSave?: boolean;
72
+ readonly stream?: boolean;
73
+ readonly onMessageSent?: (message: ChatMessage) => void;
74
+ readonly onAIResponse?: (message: ChatMessage) => void;
75
+ readonly onError?: (error: string) => void;
76
+ }
77
+ interface UseChatReturn {
78
+ readonly messages: ReadonlyArray<ChatMessage>;
79
+ readonly isLoading: boolean;
80
+ readonly isTyping: boolean;
81
+ readonly error: string | null;
82
+ sendMessage: (text: string, type?: ChatMessage["type"]) => Promise<ChatMessage | null>;
83
+ regenerate: () => Promise<ChatMessage | null>;
84
+ cancel: () => void;
85
+ clearMessages: () => void;
86
+ clearError: () => void;
87
+ reset: () => void;
88
+ updateConfig: (config: Partial<ChatConfig>) => void;
89
+ }
90
+ interface IMessageFormatter {
91
+ toCoreMessages(messages: ReadonlyArray<ChatMessage>): ChatMessage$1[];
92
+ toChatMessage(content: string, sender: ChatMessage["sender"]): ChatMessage;
93
+ }
94
+
95
+ /**
96
+ * Conversation engine over the neutral text surface. Accepts either a
97
+ * single ITextProvider or a ProviderFactory (which brings tier defaults,
98
+ * health checks, and fallback across providers). Model choice is tier-based:
99
+ * `config.tier ?? provider default` — no hardcoded model names anywhere.
100
+ */
101
+ declare class ChatService implements IChatService {
102
+ private readonly engine;
103
+ private config;
104
+ private promptStrategy;
105
+ private storage;
106
+ constructor(engine: ITextProvider | ProviderFactory);
107
+ initialize(config: ChatConfig): void;
108
+ updateConfig(config: Partial<ChatConfig>): void;
109
+ setPromptStrategy(strategy: SystemPromptStrategy): void;
110
+ setStorage(storage: IChatStorage): void;
111
+ getConversation(conversationId: string): Promise<ChatConversation | null>;
112
+ getConversations(): Promise<ChatConversation[]>;
113
+ sendMessage(input: SendMessageInput): Promise<SendMessageResult>;
114
+ generateAIResponse(companionId: string, userMessage: string, context?: ReadonlyArray<ChatMessage>): Promise<ChatMessage>;
115
+ generateStreamingResponse(userMessage: string, context: ReadonlyArray<ChatMessage>, onChunk: (chunk: string) => void): Promise<string>;
116
+ private buildRequest;
117
+ private resolveSystemPrompt;
118
+ private run;
119
+ private runStream;
120
+ private requireStorage;
121
+ }
122
+ declare function extractTokenUsage(message: ChatMessage): ChatTokenUsage | null;
123
+
124
+ export { type ChatConfig as C, DEFAULT_PROMPT_STRATEGY as D, type IChatService as I, type SendMessageInput as S, type UseChatOptions as U, type ChatConversation as a, type ChatMessageSender as b, type ChatMessageType as c, ChatService as d, type ChatTokenUsage as e, type ChatMessage as f, type IChatStorage as g, type IMessageFormatter as h, type SendMessageResult as i, type SystemPromptStrategy as j, type UseChatReturn as k, extractTokenUsage as l };
@@ -0,0 +1,124 @@
1
+ import { c as TextTier, C as ChatMessage$1 } from './index-fXjxTR5W.js';
2
+ import { b as ITextProvider, c as ProviderFactory } from './provider.factory-CpWFyjbw.js';
3
+
4
+ type ChatMessageSender = "user" | "assistant" | "system";
5
+ type ChatMessageType = "text" | "image" | "audio" | "sticker";
6
+ interface ChatMessage {
7
+ readonly id: string;
8
+ readonly sender: ChatMessageSender;
9
+ readonly content: string;
10
+ readonly timestamp: string;
11
+ readonly type?: ChatMessageType;
12
+ readonly imageUrl?: string;
13
+ readonly reaction?: string;
14
+ readonly metadata?: Readonly<Record<string, unknown>>;
15
+ }
16
+ interface ChatConversation {
17
+ readonly id: string;
18
+ readonly companionId: string;
19
+ readonly companionName: string;
20
+ readonly lastMessage?: ChatMessage;
21
+ readonly messageCount: number;
22
+ readonly updatedAt: string;
23
+ }
24
+ interface SendMessageInput {
25
+ readonly companionId: string;
26
+ readonly text: string;
27
+ readonly type?: ChatMessageType;
28
+ readonly imageUrl?: string;
29
+ }
30
+ interface SendMessageResult {
31
+ readonly userMessage: ChatMessage;
32
+ readonly aiResponse?: ChatMessage;
33
+ }
34
+ interface ChatConfig {
35
+ readonly systemPrompt?: string;
36
+ readonly temperature?: number;
37
+ readonly maxTokens?: number;
38
+ /** Neutral quality tier — resolved against whichever provider serves the chat. */
39
+ readonly tier?: TextTier;
40
+ /** Explicit model id; wins over tier resolution. */
41
+ readonly model?: string;
42
+ }
43
+ interface IChatStorage {
44
+ saveMessage(conversationId: string, message: ChatMessage): Promise<void>;
45
+ getMessages(conversationId: string): Promise<ChatMessage[]>;
46
+ updateMessage(messageId: string, updates: Partial<ChatMessage>): Promise<void>;
47
+ deleteMessage(messageId: string): Promise<void>;
48
+ }
49
+ interface ChatTokenUsage {
50
+ readonly promptTokens: number;
51
+ readonly completionTokens: number;
52
+ readonly totalTokens: number;
53
+ }
54
+
55
+ interface SystemPromptStrategy {
56
+ resolve(config: ChatConfig): string | undefined;
57
+ }
58
+ declare const DEFAULT_PROMPT_STRATEGY: SystemPromptStrategy;
59
+
60
+ interface IChatService {
61
+ sendMessage(input: SendMessageInput): Promise<SendMessageResult>;
62
+ getConversation(conversationId: string): Promise<ChatConversation | null>;
63
+ getConversations(): Promise<ChatConversation[]>;
64
+ generateAIResponse(companionId: string, userMessage: string, context?: ReadonlyArray<ChatMessage>): Promise<ChatMessage>;
65
+ generateStreamingResponse(userMessage: string, context: ReadonlyArray<ChatMessage>, onChunk: (chunk: string) => void): Promise<string>;
66
+ }
67
+ interface UseChatOptions {
68
+ readonly conversationId: string;
69
+ readonly storage?: IChatStorage;
70
+ readonly config?: ChatConfig;
71
+ readonly autoSave?: boolean;
72
+ readonly stream?: boolean;
73
+ readonly onMessageSent?: (message: ChatMessage) => void;
74
+ readonly onAIResponse?: (message: ChatMessage) => void;
75
+ readonly onError?: (error: string) => void;
76
+ }
77
+ interface UseChatReturn {
78
+ readonly messages: ReadonlyArray<ChatMessage>;
79
+ readonly isLoading: boolean;
80
+ readonly isTyping: boolean;
81
+ readonly error: string | null;
82
+ sendMessage: (text: string, type?: ChatMessage["type"]) => Promise<ChatMessage | null>;
83
+ regenerate: () => Promise<ChatMessage | null>;
84
+ cancel: () => void;
85
+ clearMessages: () => void;
86
+ clearError: () => void;
87
+ reset: () => void;
88
+ updateConfig: (config: Partial<ChatConfig>) => void;
89
+ }
90
+ interface IMessageFormatter {
91
+ toCoreMessages(messages: ReadonlyArray<ChatMessage>): ChatMessage$1[];
92
+ toChatMessage(content: string, sender: ChatMessage["sender"]): ChatMessage;
93
+ }
94
+
95
+ /**
96
+ * Conversation engine over the neutral text surface. Accepts either a
97
+ * single ITextProvider or a ProviderFactory (which brings tier defaults,
98
+ * health checks, and fallback across providers). Model choice is tier-based:
99
+ * `config.tier ?? provider default` — no hardcoded model names anywhere.
100
+ */
101
+ declare class ChatService implements IChatService {
102
+ private readonly engine;
103
+ private config;
104
+ private promptStrategy;
105
+ private storage;
106
+ constructor(engine: ITextProvider | ProviderFactory);
107
+ initialize(config: ChatConfig): void;
108
+ updateConfig(config: Partial<ChatConfig>): void;
109
+ setPromptStrategy(strategy: SystemPromptStrategy): void;
110
+ setStorage(storage: IChatStorage): void;
111
+ getConversation(conversationId: string): Promise<ChatConversation | null>;
112
+ getConversations(): Promise<ChatConversation[]>;
113
+ sendMessage(input: SendMessageInput): Promise<SendMessageResult>;
114
+ generateAIResponse(companionId: string, userMessage: string, context?: ReadonlyArray<ChatMessage>): Promise<ChatMessage>;
115
+ generateStreamingResponse(userMessage: string, context: ReadonlyArray<ChatMessage>, onChunk: (chunk: string) => void): Promise<string>;
116
+ private buildRequest;
117
+ private resolveSystemPrompt;
118
+ private run;
119
+ private runStream;
120
+ private requireStorage;
121
+ }
122
+ declare function extractTokenUsage(message: ChatMessage): ChatTokenUsage | null;
123
+
124
+ export { type ChatConfig as C, DEFAULT_PROMPT_STRATEGY as D, type IChatService as I, type SendMessageInput as S, type UseChatOptions as U, type ChatConversation as a, type ChatMessageSender as b, type ChatMessageType as c, ChatService as d, type ChatTokenUsage as e, type ChatMessage as f, type IChatStorage as g, type IMessageFormatter as h, type SendMessageResult as i, type SystemPromptStrategy as j, type UseChatReturn as k, extractTokenUsage as l };