@nocobase/plugin-ai 2.1.0-alpha.12 → 2.1.0-alpha.14

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 (75) hide show
  1. package/dist/ai/ai-employees/atlas/index.d.ts +10 -0
  2. package/dist/ai/ai-employees/atlas/index.js +56 -0
  3. package/dist/ai/ai-employees/atlas/prompt.md +84 -0
  4. package/dist/ai/ai-employees/vera.js +1 -1
  5. package/dist/ai/tools/chartGenerator.js +1 -0
  6. package/dist/ai/tools/getSkill.js +1 -1
  7. package/dist/ai/tools/sub-agents/dispatch-sub-agent-task.d.ts +10 -0
  8. package/dist/ai/tools/sub-agents/dispatch-sub-agent-task.js +108 -0
  9. package/dist/ai/tools/sub-agents/get-ai-employee.d.ts +10 -0
  10. package/dist/ai/tools/sub-agents/get-ai-employee.js +67 -0
  11. package/dist/ai/tools/sub-agents/list-ai-employees.d.ts +10 -0
  12. package/dist/ai/tools/sub-agents/list-ai-employees.js +64 -0
  13. package/dist/ai/tools/sub-agents/shared.d.ts +33 -0
  14. package/dist/ai/tools/sub-agents/shared.js +169 -0
  15. package/dist/ai/tools/suggestions.js +2 -2
  16. package/dist/client/7237366e104efa7a.js +10 -0
  17. package/dist/client/748fbb87c1013c6e.js +10 -0
  18. package/dist/client/ai-employees/built-in/utils.d.ts +1 -0
  19. package/dist/client/ai-employees/chatbox/AIEmployeeSwitch.d.ts +0 -1
  20. package/dist/client/ai-employees/chatbox/hooks/useChatBoxActions.d.ts +5 -3
  21. package/dist/client/ai-employees/chatbox/roles.d.ts +1 -0
  22. package/dist/client/ai-employees/chatbox/stores/chat-messages.d.ts +8 -0
  23. package/dist/client/ai-employees/chatbox/utils.d.ts +15 -1
  24. package/dist/client/ai-employees/sub-agents/tools/index.d.ts +10 -0
  25. package/dist/client/ai-employees/sub-agents/ui/SubAgentDispatchCard.d.ts +21 -0
  26. package/dist/client/ai-employees/types.d.ts +19 -0
  27. package/dist/client/index.js +7 -7
  28. package/dist/externalVersion.js +16 -15
  29. package/dist/locale/en-US.json +10 -1
  30. package/dist/locale/zh-CN.json +10 -1
  31. package/dist/node_modules/fast-glob/package.json +1 -1
  32. package/dist/node_modules/flexsearch/package.json +1 -1
  33. package/dist/node_modules/fs-extra/package.json +1 -1
  34. package/dist/node_modules/nodejs-snowflake/package.json +1 -1
  35. package/dist/node_modules/openai/package.json +1 -1
  36. package/dist/node_modules/zod/package.json +1 -1
  37. package/dist/server/ai-employees/ai-conversations.d.ts +64 -0
  38. package/dist/server/ai-employees/ai-conversations.js +285 -0
  39. package/dist/server/ai-employees/ai-employee.d.ts +85 -9
  40. package/dist/server/ai-employees/ai-employee.js +264 -149
  41. package/dist/server/ai-employees/middleware/conversation.d.ts +2 -0
  42. package/dist/server/ai-employees/middleware/conversation.js +38 -5
  43. package/dist/server/ai-employees/middleware/tools.js +37 -10
  44. package/dist/server/ai-employees/prompts.d.ts +9 -1
  45. package/dist/server/ai-employees/prompts.js +24 -2
  46. package/dist/server/ai-employees/sub-agents/dispatcher.d.ts +36 -0
  47. package/dist/server/ai-employees/sub-agents/dispatcher.js +225 -0
  48. package/dist/server/ai-employees/sub-agents/index.d.ts +9 -0
  49. package/dist/server/ai-employees/sub-agents/index.js +36 -0
  50. package/dist/server/collections/ai-conversations.js +6 -0
  51. package/dist/server/llm-providers/anthropic.d.ts +1 -0
  52. package/dist/server/llm-providers/anthropic.js +2 -1
  53. package/dist/server/llm-providers/dashscope.d.ts +3 -0
  54. package/dist/server/llm-providers/dashscope.js +16 -2
  55. package/dist/server/llm-providers/deepseek.d.ts +1 -0
  56. package/dist/server/llm-providers/deepseek.js +5 -2
  57. package/dist/server/llm-providers/google-genai.d.ts +1 -0
  58. package/dist/server/llm-providers/google-genai.js +2 -1
  59. package/dist/server/llm-providers/kimi/provider.d.ts +1 -0
  60. package/dist/server/llm-providers/openai/responses.d.ts +1 -0
  61. package/dist/server/llm-providers/openai/responses.js +2 -1
  62. package/dist/server/llm-providers/provider.d.ts +1 -10
  63. package/dist/server/llm-providers/provider.js +3 -34
  64. package/dist/server/migrations/20260319000000-add-ai-conversations-from.d.ts +14 -0
  65. package/dist/server/migrations/20260319000000-add-ai-conversations-from.js +63 -0
  66. package/dist/server/plugin.d.ts +4 -0
  67. package/dist/server/plugin.js +4 -0
  68. package/dist/server/resource/aiConversations.d.ts +3 -3
  69. package/dist/server/resource/aiConversations.js +125 -159
  70. package/dist/server/types/ai-chat-conversation.type.d.ts +8 -2
  71. package/dist/server/types/ai-message.type.d.ts +7 -0
  72. package/dist/server/utils.d.ts +3 -0
  73. package/dist/server/utils.js +25 -1
  74. package/package.json +4 -2
  75. package/dist/client/27539a4356faebb1.js +0 -10
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { Model, Transaction } from '@nocobase/database';
10
10
  import { LLMProvider } from '../llm-providers/provider';
11
- import { AIChatContext, AIChatConversation, AIMessageInput, UserDecision } from '../types';
11
+ import { AIChatContext, AIChatConversation, AIMessageInput, AIToolCall, UserDecision } from '../types';
12
12
  import { DocumentSegmentedWithScore } from '../features';
13
13
  import { KnowledgeBaseGroup } from '../types';
14
14
  import { ToolsEntry } from '@nocobase/ai';
@@ -18,32 +18,58 @@ export interface ModelRef {
18
18
  llmService: string;
19
19
  model: string;
20
20
  }
21
+ export interface AIEmployeeOptions {
22
+ ctx: Context;
23
+ employee: Model;
24
+ sessionId: string;
25
+ systemMessage?: string;
26
+ skillSettings?: Record<string, any>;
27
+ webSearch?: boolean;
28
+ model?: ModelRef;
29
+ legacy?: boolean;
30
+ from?: 'main-agent' | 'sub-agent';
31
+ }
21
32
  export declare class AIEmployee {
33
+ sessionId: string;
34
+ from: string;
22
35
  employee: Model;
23
36
  aiChatConversation: AIChatConversation;
24
37
  skillSettings?: Record<string, any>;
25
38
  private plugin;
26
39
  private db;
27
- private sessionId;
28
40
  private ctx;
29
41
  private systemMessage;
42
+ private protocol;
30
43
  private webSearch?;
31
44
  private model?;
32
45
  private legacy?;
33
- private protocol;
34
- constructor(ctx: Context, employee: Model, sessionId: string, systemMessage?: string, skillSettings?: Record<string, any>, webSearch?: boolean, model?: ModelRef, legacy?: boolean);
46
+ constructor({ ctx, employee, sessionId, systemMessage, skillSettings, webSearch, model, legacy, from, }: AIEmployeeOptions);
47
+ getFormatMessages(userMessages: AIMessageInput[]): Promise<{
48
+ role: "user" | "assistant" | "tool" | "system";
49
+ content: any;
50
+ tool_call_id?: string;
51
+ tool_calls?: AIToolCall[];
52
+ }[]>;
35
53
  private buildState;
36
54
  private initSession;
37
55
  private buildChatContext;
38
56
  stream({ messageId, userMessages, userDecisions, }: {
39
57
  messageId?: string;
40
58
  userMessages?: AIMessageInput[];
41
- userDecisions?: UserDecision[];
59
+ userDecisions?: {
60
+ interruptId?: string;
61
+ decisions: UserDecision[];
62
+ };
42
63
  }): Promise<boolean>;
43
- invoke({ messageId, userMessages, userDecisions, }: {
64
+ invoke({ messageId, userMessages, userDecisions, writer, context, }: {
44
65
  messageId?: string;
45
66
  userMessages?: AIMessageInput[];
46
- userDecisions?: UserDecision[];
67
+ userDecisions?: {
68
+ interruptId?: string;
69
+ decisions: UserDecision[];
70
+ };
71
+ writer?: (chunk: any) => void;
72
+ context?: any;
47
73
  }): Promise<any>;
48
74
  getLLMService(): Promise<{
49
75
  provider: LLMProvider;
@@ -93,7 +119,7 @@ export declare class AIEmployee {
93
119
  name: string;
94
120
  args: any;
95
121
  }[]): Promise<Model<AIToolMessage>[]>;
96
- updateToolCallInterrupted(messageId: string, toolCallId: string, interruptAction: {
122
+ updateToolCallInterrupted(sessionId: string, messageId: string, toolCallId: string, interruptId: string, interruptAction: {
97
123
  order: number;
98
124
  description?: string;
99
125
  allowed_decisions?: string[];
@@ -103,7 +129,6 @@ export declare class AIEmployee {
103
129
  confirmToolCall(transaction: Transaction, messageId: string, toolCallIds: string[]): Promise<number>;
104
130
  getToolCallResult(messageId: string, toolCallId: string): Promise<AIToolMessage>;
105
131
  getToolCallResultMap(messageId: string, toolCallIds: string[]): Promise<Map<string, AIToolMessage>>;
106
- getUserDecisions(messageId: string): Promise<UserDecision[]>;
107
132
  cancelToolCall(): Promise<any>;
108
133
  get logger(): any;
109
134
  sendErrorResponse(errorMessage: string): void;
@@ -127,11 +152,13 @@ export declare class AIEmployee {
127
152
  private getAgentTools;
128
153
  getLoadedSkillNames(): Promise<string[]>;
129
154
  getActivatedSkillToolNames(): Promise<Set<string>>;
155
+ private getAvailableAIEmployees;
130
156
  private getMiddleware;
131
157
  private getCurrentThread;
132
158
  private forkCurrentThread;
133
159
  getToolsMap(): Promise<Map<string, import("@nocobase/ai").ToolsOptions>>;
134
160
  private listTools;
161
+ private withRunMetadata;
135
162
  private get toolsManager();
136
163
  private get aiConversationsRepo();
137
164
  private get aiMessagesRepo();
@@ -140,3 +167,52 @@ export declare class AIEmployee {
140
167
  private get aiToolMessagesModel();
141
168
  private get aiFilesModel();
142
169
  }
170
+ export declare class ChatStreamProtocol {
171
+ private readonly streamConsumer;
172
+ private _statistics;
173
+ constructor(streamConsumer: StreamConsumer);
174
+ static fromContext(ctx: Context): ChatStreamProtocol;
175
+ with(conversation: {
176
+ sessionId: string;
177
+ from: string;
178
+ username: string;
179
+ }): {
180
+ startStream: () => void;
181
+ endStream: () => void;
182
+ subAgentCompleted: () => void;
183
+ newMessage: (content?: unknown) => void;
184
+ content: (content: string) => void;
185
+ webSearch: (content: {
186
+ type: string;
187
+ query: string;
188
+ }[]) => void;
189
+ reasoning: (content: {
190
+ status: string;
191
+ content: string;
192
+ }) => void;
193
+ stopReasoning: () => void;
194
+ toolCallChunks: (content: unknown) => void;
195
+ toolCalls: (content: unknown) => void;
196
+ toolCallStatus: ({ toolCall, invokeStatus, status, interruptAction, }: {
197
+ toolCall: {
198
+ messageId: string;
199
+ id: string;
200
+ name: string;
201
+ willInterrupt: boolean;
202
+ };
203
+ invokeStatus: string;
204
+ status?: string;
205
+ interruptAction?: {
206
+ order: number;
207
+ description: string;
208
+ allowedDecisions: string[];
209
+ };
210
+ }) => void;
211
+ };
212
+ get statistics(): {
213
+ sent: number;
214
+ };
215
+ }
216
+ export type StreamConsumer = {
217
+ write: (chunk: any) => void;
218
+ };