@agentica/core 0.24.0 → 0.25.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 (167) hide show
  1. package/lib/Agentica.d.ts +2 -2
  2. package/lib/Agentica.js +4 -4
  3. package/lib/Agentica.js.map +1 -1
  4. package/lib/MicroAgentica.d.ts +2 -2
  5. package/lib/MicroAgentica.js +4 -4
  6. package/lib/MicroAgentica.js.map +1 -1
  7. package/lib/context/AgenticaContext.d.ts +2 -2
  8. package/lib/context/MicroAgenticaContext.d.ts +2 -2
  9. package/lib/context/index.d.ts +5 -0
  10. package/lib/{structures/mcp → context}/index.js +5 -1
  11. package/lib/context/index.js.map +1 -0
  12. package/lib/events/AgenticaAssistantMessageEvent.d.ts +9 -0
  13. package/lib/{histories/AgenticaUserInputHistory.js → events/AgenticaAssistantMessageEvent.js} +1 -1
  14. package/lib/events/AgenticaAssistantMessageEvent.js.map +1 -0
  15. package/lib/events/AgenticaEvent.d.ts +9 -9
  16. package/lib/events/AgenticaUserMessageEvent.d.ts +9 -0
  17. package/lib/events/{AgenticaUserInputEvent.js → AgenticaUserMessageEvent.js} +1 -1
  18. package/lib/events/AgenticaUserMessageEvent.js.map +1 -0
  19. package/lib/events/MicroAgenticaEvent.d.ts +6 -6
  20. package/lib/events/index.d.ts +14 -0
  21. package/lib/events/index.js +31 -0
  22. package/lib/events/index.js.map +1 -0
  23. package/lib/factory/events.d.ts +8 -8
  24. package/lib/factory/events.js +23 -38
  25. package/lib/factory/events.js.map +1 -1
  26. package/lib/factory/histories.d.ts +1 -36
  27. package/lib/factory/histories.js +77 -24
  28. package/lib/factory/histories.js.map +1 -1
  29. package/lib/functional/assertHttpController.js +6 -6
  30. package/lib/functional/assertHttpLlmApplication.js +6 -6
  31. package/lib/functional/assertMcpController.d.ts +1 -2
  32. package/lib/functional/assertMcpController.js +6 -6
  33. package/lib/functional/assertMcpController.js.map +1 -1
  34. package/lib/functional/index.d.ts +6 -0
  35. package/lib/functional/index.js +23 -0
  36. package/lib/functional/index.js.map +1 -0
  37. package/lib/functional/validateHttpController.js +5 -5
  38. package/lib/functional/validateHttpLlmApplication.js +5 -5
  39. package/lib/functional/validateMcpController.d.ts +1 -2
  40. package/lib/functional/validateMcpController.js +11 -11
  41. package/lib/functional/validateMcpController.js.map +1 -1
  42. package/lib/histories/{AgenticaTextHistory.d.ts → AgenticaAssistantMessageHistory.d.ts} +1 -2
  43. package/lib/histories/AgenticaAssistantMessageHistory.js +3 -0
  44. package/lib/histories/AgenticaAssistantMessageHistory.js.map +1 -0
  45. package/lib/histories/AgenticaHistory.d.ts +7 -7
  46. package/lib/histories/AgenticaUserMessageHistory.d.ts +6 -0
  47. package/lib/{events/AgenticaTextEvent.js → histories/AgenticaUserMessageHistory.js} +1 -1
  48. package/lib/histories/AgenticaUserMessageHistory.js.map +1 -0
  49. package/lib/histories/MicroAgenticaHistory.d.ts +5 -4
  50. package/lib/histories/contents/AgenticaUserMessageAudioContent.d.ts +19 -0
  51. package/lib/histories/contents/AgenticaUserMessageAudioContent.js +3 -0
  52. package/lib/histories/contents/AgenticaUserMessageAudioContent.js.map +1 -0
  53. package/lib/histories/contents/AgenticaUserMessageContent.d.ts +14 -0
  54. package/lib/histories/{AgenticaTextHistory.js → contents/AgenticaUserMessageContent.js} +1 -1
  55. package/lib/histories/contents/AgenticaUserMessageContent.js.map +1 -0
  56. package/lib/histories/contents/AgenticaUserMessageContentBase.d.ts +6 -0
  57. package/lib/histories/contents/AgenticaUserMessageContentBase.js +3 -0
  58. package/lib/histories/contents/AgenticaUserMessageContentBase.js.map +1 -0
  59. package/lib/histories/contents/AgenticaUserMessageFileContent.d.ts +26 -0
  60. package/lib/histories/contents/AgenticaUserMessageFileContent.js +3 -0
  61. package/lib/histories/contents/AgenticaUserMessageFileContent.js.map +1 -0
  62. package/lib/histories/contents/AgenticaUserMessageImageContent.d.ts +20 -0
  63. package/lib/histories/contents/AgenticaUserMessageImageContent.js +3 -0
  64. package/lib/histories/contents/AgenticaUserMessageImageContent.js.map +1 -0
  65. package/lib/histories/contents/AgenticaUserMessageTextContent.d.ts +14 -0
  66. package/lib/histories/contents/AgenticaUserMessageTextContent.js +3 -0
  67. package/lib/histories/contents/AgenticaUserMessageTextContent.js.map +1 -0
  68. package/lib/histories/contents/index.d.ts +5 -0
  69. package/lib/histories/contents/index.js +22 -0
  70. package/lib/histories/contents/index.js.map +1 -0
  71. package/lib/histories/index.d.ts +9 -0
  72. package/lib/histories/index.js +26 -0
  73. package/lib/histories/index.js.map +1 -0
  74. package/lib/index.d.ts +6 -45
  75. package/lib/index.js +6 -46
  76. package/lib/index.js.map +1 -1
  77. package/lib/index.mjs +148 -133
  78. package/lib/index.mjs.map +1 -1
  79. package/lib/json/IAgenticaEventJson.d.ts +29 -23
  80. package/lib/json/IAgenticaHistoryJson.d.ts +24 -19
  81. package/lib/json/IMicroAgenticaEventJson.d.ts +1 -1
  82. package/lib/json/IMicroAgenticaHistoryJson.d.ts +1 -1
  83. package/lib/json/index.d.ts +7 -0
  84. package/lib/json/index.js +24 -0
  85. package/lib/json/index.js.map +1 -0
  86. package/lib/orchestrate/call.js +4 -4
  87. package/lib/orchestrate/call.js.map +1 -1
  88. package/lib/orchestrate/cancel.js +1 -1
  89. package/lib/orchestrate/cancel.js.map +1 -1
  90. package/lib/orchestrate/initialize.js +4 -4
  91. package/lib/orchestrate/initialize.js.map +1 -1
  92. package/lib/orchestrate/select.js +3 -3
  93. package/lib/orchestrate/select.js.map +1 -1
  94. package/lib/structures/IAgenticaController.d.ts +1 -2
  95. package/lib/structures/index.d.ts +10 -0
  96. package/lib/structures/index.js +27 -0
  97. package/lib/structures/index.js.map +1 -0
  98. package/lib/transformers/transformEvent.d.ts +1 -0
  99. package/lib/transformers/{AgenticaEventTransformer.js → transformEvent.js} +74 -31
  100. package/lib/transformers/transformEvent.js.map +1 -0
  101. package/lib/transformers/transformHistory.d.ts +1 -0
  102. package/lib/transformers/{AgenticaHistoryTransformer.js → transformHistory.js} +24 -23
  103. package/lib/transformers/transformHistory.js.map +1 -0
  104. package/lib/utils/ChatGptCompletionMessageUtil.js +2 -2
  105. package/package.json +5 -6
  106. package/src/Agentica.ts +10 -9
  107. package/src/MicroAgentica.ts +12 -9
  108. package/src/context/AgenticaContext.ts +2 -2
  109. package/src/context/MicroAgenticaContext.ts +2 -2
  110. package/src/context/index.ts +5 -0
  111. package/src/events/AgenticaAssistantMessageEvent.ts +12 -0
  112. package/src/events/AgenticaEvent.ts +15 -15
  113. package/src/events/AgenticaUserMessageEvent.ts +12 -0
  114. package/src/events/MicroAgenticaEvent.ts +9 -9
  115. package/src/events/index.ts +14 -0
  116. package/src/factory/events.ts +29 -34
  117. package/src/factory/histories.ts +81 -32
  118. package/src/functional/assertMcpController.ts +4 -2
  119. package/src/functional/index.ts +7 -0
  120. package/src/functional/validateMcpController.ts +4 -2
  121. package/src/histories/{AgenticaTextHistory.ts → AgenticaAssistantMessageHistory.ts} +4 -2
  122. package/src/histories/AgenticaHistory.ts +8 -8
  123. package/src/histories/AgenticaUserMessageHistory.ts +11 -0
  124. package/src/histories/MicroAgenticaHistory.ts +6 -5
  125. package/src/histories/contents/AgenticaUserMessageAudioContent.ts +21 -0
  126. package/src/histories/contents/AgenticaUserMessageContent.ts +19 -0
  127. package/src/histories/contents/AgenticaUserMessageContentBase.ts +6 -0
  128. package/src/histories/contents/AgenticaUserMessageFileContent.ts +27 -0
  129. package/src/histories/contents/AgenticaUserMessageImageContent.ts +23 -0
  130. package/src/histories/contents/AgenticaUserMessageTextContent.ts +15 -0
  131. package/src/histories/contents/index.ts +5 -0
  132. package/src/histories/index.ts +9 -0
  133. package/src/index.ts +6 -54
  134. package/src/json/IAgenticaEventJson.ts +36 -28
  135. package/src/json/IAgenticaHistoryJson.ts +28 -22
  136. package/src/json/IMicroAgenticaEventJson.ts +2 -1
  137. package/src/json/IMicroAgenticaHistoryJson.ts +2 -1
  138. package/src/json/index.ts +7 -0
  139. package/src/orchestrate/call.ts +8 -8
  140. package/src/orchestrate/cancel.ts +2 -2
  141. package/src/orchestrate/initialize.ts +5 -5
  142. package/src/orchestrate/select.ts +5 -5
  143. package/src/structures/IAgenticaController.ts +4 -2
  144. package/src/structures/index.ts +10 -0
  145. package/src/transformers/{AgenticaEventTransformer.ts → transformEvent.ts} +94 -42
  146. package/src/transformers/{AgenticaHistoryTransformer.ts → transformHistory.ts} +30 -26
  147. package/lib/events/AgenticaTextEvent.d.ts +0 -10
  148. package/lib/events/AgenticaTextEvent.js.map +0 -1
  149. package/lib/events/AgenticaUserInputEvent.d.ts +0 -10
  150. package/lib/events/AgenticaUserInputEvent.js.map +0 -1
  151. package/lib/histories/AgenticaTextHistory.js.map +0 -1
  152. package/lib/histories/AgenticaUserInputHistory.d.ts +0 -86
  153. package/lib/histories/AgenticaUserInputHistory.js.map +0 -1
  154. package/lib/structures/mcp/IMcpLlmTransportProps.d.ts +0 -11
  155. package/lib/structures/mcp/IMcpLlmTransportProps.js +0 -3
  156. package/lib/structures/mcp/IMcpLlmTransportProps.js.map +0 -1
  157. package/lib/structures/mcp/index.d.ts +0 -1
  158. package/lib/structures/mcp/index.js.map +0 -1
  159. package/lib/transformers/AgenticaEventTransformer.d.ts +0 -63
  160. package/lib/transformers/AgenticaEventTransformer.js.map +0 -1
  161. package/lib/transformers/AgenticaHistoryTransformer.d.ts +0 -41
  162. package/lib/transformers/AgenticaHistoryTransformer.js.map +0 -1
  163. package/src/events/AgenticaTextEvent.ts +0 -12
  164. package/src/events/AgenticaUserInputEvent.ts +0 -12
  165. package/src/histories/AgenticaUserInputHistory.ts +0 -94
  166. package/src/structures/mcp/IMcpLlmTransportProps.ts +0 -13
  167. package/src/structures/mcp/index.ts +0 -1
@@ -0,0 +1,14 @@
1
+ export * from "./AgenticaAssistantMessageEvent";
2
+ export * from "./AgenticaCallEvent";
3
+ export * from "./AgenticaCancelEvent";
4
+ export * from "./AgenticaDescribeEvent";
5
+ export * from "./AgenticaEvent";
6
+ export * from "./AgenticaEventSource";
7
+ export * from "./AgenticaExecuteEvent";
8
+ export * from "./AgenticaInitializeEvent";
9
+ export * from "./AgenticaRequestEvent";
10
+ export * from "./AgenticaResponseEvent";
11
+ export * from "./AgenticaSelectEvent";
12
+ export * from "./AgenticaUserMessageEvent";
13
+ export * from "./AgenticaValidateEvent";
14
+ export * from "./MicroAgenticaEvent";
@@ -5,6 +5,7 @@ import { v4 } from "uuid";
5
5
 
6
6
  import type { AgenticaOperation } from "../context/AgenticaOperation";
7
7
  import type { AgenticaOperationSelection } from "../context/AgenticaOperationSelection";
8
+ import type { AgenticaAssistantMessageEvent } from "../events/AgenticaAssistantMessageEvent";
8
9
  import type { AgenticaCallEvent } from "../events/AgenticaCallEvent";
9
10
  import type { AgenticaCancelEvent } from "../events/AgenticaCancelEvent";
10
11
  import type { AgenticaDescribeEvent } from "../events/AgenticaDescribeEvent";
@@ -14,14 +15,13 @@ import type { AgenticaInitializeEvent } from "../events/AgenticaInitializeEvent"
14
15
  import type { AgenticaRequestEvent } from "../events/AgenticaRequestEvent";
15
16
  import type { AgenticaResponseEvent } from "../events/AgenticaResponseEvent";
16
17
  import type { AgenticaSelectEvent } from "../events/AgenticaSelectEvent";
17
- import type { AgenticaTextEvent } from "../events/AgenticaTextEvent";
18
- import type { AgenticaUserInputEvent } from "../events/AgenticaUserInputEvent";
18
+ import type { AgenticaUserMessageEvent } from "../events/AgenticaUserMessageEvent";
19
19
  import type { AgenticaValidateEvent } from "../events/AgenticaValidateEvent";
20
+ import type { AgenticaUserMessageContent } from "../histories";
20
21
  import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
21
- import type { AgenticaUserInputHistory } from "../histories/AgenticaUserInputHistory";
22
22
  import type { IAgenticaEventJson } from "../json/IAgenticaEventJson";
23
23
 
24
- import { createExecuteHistory, createSelectHistory, createUserInputHistory } from "./histories";
24
+ import { createExecuteHistory, createSelectHistory, createUserMessageHistory } from "./histories";
25
25
 
26
26
  /* -----------------------------------------------------------
27
27
  FUNCTION SELECTS
@@ -36,23 +36,6 @@ export function createInitializeEvent(): AgenticaInitializeEvent {
36
36
  };
37
37
  }
38
38
 
39
- export function createUserInputEvent(props: {
40
- contents: Array<AgenticaUserInputHistory.Contents>;
41
- }): AgenticaUserInputEvent {
42
- return {
43
- type: "user_input",
44
- role: "user",
45
- contents: props.contents,
46
- join: async () => props.contents,
47
- toJSON: () => ({
48
- type: "user_input",
49
- contents: props.contents,
50
- }),
51
- toHistory: () => createUserInputHistory({
52
- contents: props.contents,
53
- }),
54
- };
55
- }
56
39
  export function createSelectEvent<Model extends ILlmSchema.Model>(props: {
57
40
  selection: AgenticaOperationSelection<Model>;
58
41
  }): AgenticaSelectEvent<Model> {
@@ -151,32 +134,44 @@ export function createExecuteEvent<Model extends ILlmSchema.Model>(props: {
151
134
  }
152
135
 
153
136
  /* -----------------------------------------------------------
154
- TEXT STEAMING
137
+ CONTENTS
155
138
  ----------------------------------------------------------- */
156
- export function createTextEvent(props: {
139
+ export function createUserMessageEvent(props: {
140
+ contents: Array<AgenticaUserMessageContent>;
141
+ }): AgenticaUserMessageEvent {
142
+ return {
143
+ type: "userMessage",
144
+ contents: props.contents,
145
+ toJSON: () => ({
146
+ type: "userMessage",
147
+ contents: props.contents,
148
+ }),
149
+ toHistory: () => createUserMessageHistory({
150
+ contents: props.contents,
151
+ }),
152
+ };
153
+ }
154
+
155
+ export function creatAssistantEvent(props: {
157
156
  stream: AsyncGenerator<string, undefined, undefined>;
158
157
  done: () => boolean;
159
158
  get: () => string;
160
159
  join: () => Promise<string>;
161
- }): AgenticaTextEvent {
160
+ }): AgenticaAssistantMessageEvent {
162
161
  return {
163
- type: "text",
164
- role: "assistant",
162
+ type: "assistantMessage",
165
163
  stream: props.stream,
166
164
  join: props.join,
167
165
  toJSON: () => ({
168
- type: "text",
169
- role: "assistant",
166
+ type: "assistantMessage",
170
167
  done: props.done(),
171
168
  text: props.get(),
172
169
  }),
173
170
  toHistory: () => ({
174
- type: "text",
175
- role: "assistant",
171
+ type: "assistantMessage",
176
172
  text: props.get(),
177
173
  toJSON: () => ({
178
- type: "text",
179
- role: "assistant",
174
+ type: "assistantMessage",
180
175
  text: props.get(),
181
176
  }),
182
177
  }),
@@ -215,8 +210,8 @@ export function createDescribeEvent<Model extends ILlmSchema.Model>(props: {
215
210
  }
216
211
 
217
212
  /* -----------------------------------------------------------
218
- API REQUESTS
219
- ----------------------------------------------------------- */
213
+ API REQUESTS
214
+ ----------------------------------------------------------- */
220
215
  export function createRequestEvent(props: {
221
216
  source: AgenticaEventSource;
222
217
  body: OpenAI.ChatCompletionCreateParamsStreaming;
@@ -3,31 +3,25 @@ import type OpenAI from "openai";
3
3
 
4
4
  import type { AgenticaOperation } from "../context/AgenticaOperation";
5
5
  import type { AgenticaOperationSelection } from "../context/AgenticaOperationSelection";
6
+ import type { AgenticaUserMessageContent } from "../histories";
7
+ import type { AgenticaAssistantMessageHistory } from "../histories/AgenticaAssistantMessageHistory";
6
8
  import type { AgenticaCancelHistory } from "../histories/AgenticaCancelHistory";
7
9
  import type { AgenticaDescribeHistory } from "../histories/AgenticaDescribeHistory";
8
10
  import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
9
11
  import type { AgenticaHistory } from "../histories/AgenticaHistory";
10
12
  import type { AgenticaSelectHistory } from "../histories/AgenticaSelectHistory";
11
- import type { AgenticaTextHistory } from "../histories/AgenticaTextHistory";
12
- import type { AgenticaUserInputHistory } from "../histories/AgenticaUserInputHistory";
13
+ import type { AgenticaUserMessageHistory } from "../histories/AgenticaUserMessageHistory";
13
14
  import type { IAgenticaHistoryJson } from "../json/IAgenticaHistoryJson";
14
15
 
16
+ /**
17
+ * @internal
18
+ */
15
19
  export function decodeHistory<Model extends ILlmSchema.Model>(history: AgenticaHistory<Model>): OpenAI.ChatCompletionMessageParam[] {
16
20
  // NO NEED TO DECODE DESCRIBE
17
21
  if (history.type === "describe") {
18
22
  return [];
19
23
  }
20
-
21
- if (history.type === "text") {
22
- return [
23
- {
24
- role: history.role,
25
- content: history.text,
26
- },
27
- ];
28
- }
29
-
30
- if (history.type === "select" || history.type === "cancel") {
24
+ else if (history.type === "select" || history.type === "cancel") {
31
25
  return [
32
26
  {
33
27
  role: "assistant",
@@ -54,8 +48,7 @@ export function decodeHistory<Model extends ILlmSchema.Model>(history: AgenticaH
54
48
  },
55
49
  ];
56
50
  }
57
-
58
- if (history.type === "execute") {
51
+ else if (history.type === "execute") {
59
52
  return [
60
53
  {
61
54
  role: "assistant",
@@ -98,32 +91,74 @@ export function decodeHistory<Model extends ILlmSchema.Model>(history: AgenticaH
98
91
  },
99
92
  ];
100
93
  }
101
-
102
- if (history.type === "user_input") {
94
+ else if (history.type === "assistantMessage") {
103
95
  return [
104
96
  {
105
- role: "user",
106
- content: history.contents,
97
+ role: "assistant",
98
+ content: history.text,
107
99
  },
108
100
  ];
109
101
  }
102
+ return [
103
+ {
104
+ role: "user",
105
+ content: history.contents.map(decodeUserMessageContent),
106
+ },
107
+ ];
108
+ }
110
109
 
111
- history satisfies never;
112
- throw new Error("Invalid history type");
110
+ /**
111
+ * @internal
112
+ */
113
+ export function decodeUserMessageContent(content: AgenticaUserMessageContent): OpenAI.ChatCompletionContentPart {
114
+ if (content.type === "audio") {
115
+ return {
116
+ type: "input_audio",
117
+ input_audio: {
118
+ data: content.data,
119
+ format: content.format,
120
+ },
121
+ };
122
+ }
123
+ else if (content.type === "file") {
124
+ return {
125
+ type: "file",
126
+ file: content.file.type === "data"
127
+ ? {
128
+ file_data: content.file.data,
129
+ filename: content.file.name,
130
+ }
131
+ : {
132
+ file_id: content.file.id,
133
+ },
134
+ };
135
+ }
136
+ else if (content.type === "image") {
137
+ return {
138
+ type: "image_url",
139
+ image_url: {
140
+ url: content.url,
141
+ detail: content.detail,
142
+ },
143
+ };
144
+ }
145
+ return content;
113
146
  }
114
147
 
115
148
  /* -----------------------------------------------------------
116
149
  USER INPUT PROMPTS
117
150
  ----------------------------------------------------------- */
118
- export function createUserInputHistory(props: {
119
- contents: Array<AgenticaUserInputHistory.Contents>;
120
- }): AgenticaUserInputHistory {
151
+ /**
152
+ * @internal
153
+ */
154
+ export function createUserMessageHistory(props: {
155
+ contents: Array<AgenticaUserMessageContent>;
156
+ }): AgenticaUserMessageHistory {
121
157
  return {
122
- type: "user_input",
123
- role: "user",
158
+ type: "userMessage",
124
159
  contents: props.contents,
125
160
  toJSON: () => ({
126
- type: "user_input",
161
+ type: "userMessage",
127
162
  contents: props.contents,
128
163
  }),
129
164
  };
@@ -132,12 +167,14 @@ export function createUserInputHistory(props: {
132
167
  /* -----------------------------------------------------------
133
168
  TEXT PROMPTS
134
169
  ----------------------------------------------------------- */
135
- export function createTextHistory(props: {
170
+ /**
171
+ * @internal
172
+ */
173
+ export function createAssistantMessageHistory(props: {
136
174
  text: string;
137
- }): AgenticaTextHistory {
138
- const prompt: IAgenticaHistoryJson.IText = {
139
- type: "text",
140
- role: "assistant",
175
+ }): AgenticaAssistantMessageHistory {
176
+ const prompt: IAgenticaHistoryJson.IAssistantMessage = {
177
+ type: "assistantMessage",
141
178
  text: props.text,
142
179
  };
143
180
  return {
@@ -146,6 +183,9 @@ export function createTextHistory(props: {
146
183
  };
147
184
  }
148
185
 
186
+ /**
187
+ * @internal
188
+ */
149
189
  export function createDescribeHistory<Model extends ILlmSchema.Model>(props: {
150
190
  executes: AgenticaExecuteHistory<Model>[];
151
191
  text: string;
@@ -165,6 +205,9 @@ export function createDescribeHistory<Model extends ILlmSchema.Model>(props: {
165
205
  /* -----------------------------------------------------------
166
206
  FUNCTION CALLING PROMPTS
167
207
  ----------------------------------------------------------- */
208
+ /**
209
+ * @internal
210
+ */
168
211
  export function createSelectHistory<Model extends ILlmSchema.Model>(props: {
169
212
  id: string;
170
213
  selections: AgenticaOperationSelection<Model>[];
@@ -181,6 +224,9 @@ export function createSelectHistory<Model extends ILlmSchema.Model>(props: {
181
224
  };
182
225
  }
183
226
 
227
+ /**
228
+ * @internal
229
+ */
184
230
  export function createCancelHistory<Model extends ILlmSchema.Model>(props: {
185
231
  id: string;
186
232
  selections: AgenticaOperationSelection<Model>[];
@@ -197,6 +243,9 @@ export function createCancelHistory<Model extends ILlmSchema.Model>(props: {
197
243
  };
198
244
  }
199
245
 
246
+ /**
247
+ * @internal
248
+ */
200
249
  export function createExecuteHistory<
201
250
  Model extends ILlmSchema.Model,
202
251
  >(props: {
@@ -1,4 +1,3 @@
1
- import type { Client } from "@modelcontextprotocol/sdk/client/index.d.ts";
2
1
  import type { ILlmSchema, IMcpLlmApplication, IMcpTool } from "@samchon/openapi";
3
2
 
4
3
  import { McpLlm } from "@samchon/openapi";
@@ -23,8 +22,11 @@ import type { IAgenticaController } from "../structures/IAgenticaController";
23
22
  */
24
23
  export async function assertMcpController<Model extends ILlmSchema.Model>(props: {
25
24
  name: string;
26
- client: Client;
27
25
  model: Model;
26
+ // @ts-ignore Type checking only when `@modelcontextprotocol/sdk` is installed.
27
+ // This strategy is useful for someone who does not need MCP,
28
+ // for someone who has not installed `@modelcontextprotocol/sdk`.
29
+ client: import("@modelcontextprotocol/sdk/client/index.d.ts").Client;
28
30
  options?: Partial<IMcpLlmApplication.IOptions<Model>>;
29
31
  }): Promise<IAgenticaController.IMcp<Model>> {
30
32
  // for peerDependencies
@@ -0,0 +1,7 @@
1
+ export * from "./assertHttpController";
2
+ export * from "./assertHttpLlmApplication"; // deprecated
3
+ export * from "./assertMcpController";
4
+ export * from "./validateHttpController"; // deprecated
5
+
6
+ export * from "./validateHttpLlmApplication";
7
+ export * from "./validateMcpController";
@@ -1,4 +1,3 @@
1
- import type { Client } from "@modelcontextprotocol/sdk/client/index.d.ts";
2
1
  import type { ILlmSchema, IMcpLlmApplication, IMcpTool, IValidation } from "@samchon/openapi";
3
2
 
4
3
  import { McpLlm } from "@samchon/openapi";
@@ -25,7 +24,10 @@ export async function validateMcpController<
25
24
  Model extends ILlmSchema.Model,
26
25
  >(props: {
27
26
  name: string;
28
- client: Client;
27
+ // @ts-ignore Type checking only when `@modelcontextprotocol/sdk` is installed.
28
+ // This strategy is useful for someone who does not need MCP,
29
+ // for someone who has not installed `@modelcontextprotocol/sdk`.
30
+ client: import("@modelcontextprotocol/sdk/client/index.d.ts").Client;
29
31
  model: Model;
30
32
  options?: Partial<IMcpLlmApplication.IOptions<Model>>;
31
33
  }): Promise<IValidation<IAgenticaController.IMcp<Model>>> {
@@ -2,7 +2,9 @@ import type { IAgenticaHistoryJson } from "../json/IAgenticaHistoryJson";
2
2
 
3
3
  import type { AgenticaHistoryBase } from "./AgenticaHistoryBase";
4
4
 
5
- export interface AgenticaTextHistory extends AgenticaHistoryBase<"text", IAgenticaHistoryJson.IText> {
6
- role: "assistant";
5
+ export interface AgenticaAssistantMessageHistory extends AgenticaHistoryBase<
6
+ "assistantMessage",
7
+ IAgenticaHistoryJson.IAssistantMessage
8
+ > {
7
9
  text: string;
8
10
  }
@@ -1,27 +1,27 @@
1
1
  import type { ILlmSchema } from "@samchon/openapi";
2
2
 
3
+ import type { AgenticaAssistantMessageHistory } from "./AgenticaAssistantMessageHistory";
3
4
  import type { AgenticaCancelHistory } from "./AgenticaCancelHistory";
4
5
  import type { AgenticaDescribeHistory } from "./AgenticaDescribeHistory";
5
6
  import type { AgenticaExecuteHistory } from "./AgenticaExecuteHistory";
6
7
  import type { AgenticaSelectHistory } from "./AgenticaSelectHistory";
7
- import type { AgenticaTextHistory } from "./AgenticaTextHistory";
8
- import type { AgenticaUserInputHistory } from "./AgenticaUserInputHistory";
8
+ import type { AgenticaUserMessageHistory } from "./AgenticaUserMessageHistory";
9
9
 
10
10
  export type AgenticaHistory<Model extends ILlmSchema.Model> =
11
11
  | AgenticaCancelHistory<Model>
12
12
  | AgenticaDescribeHistory<Model>
13
13
  | AgenticaExecuteHistory<Model>
14
14
  | AgenticaSelectHistory<Model>
15
- | AgenticaTextHistory
16
- | AgenticaUserInputHistory;
15
+ | AgenticaAssistantMessageHistory
16
+ | AgenticaUserMessageHistory;
17
17
  export namespace AgenticaHistory {
18
18
  export type Type = AgenticaHistory<any>["type"];
19
19
  export interface Mapper<Model extends ILlmSchema.Model> {
20
+ assistantMessage: AgenticaAssistantMessageHistory;
21
+ userMessage: AgenticaUserMessageHistory;
22
+ select: AgenticaSelectHistory<Model>;
20
23
  cancel: AgenticaCancelHistory<Model>;
21
- describe: AgenticaDescribeHistory<Model>;
22
24
  execute: AgenticaExecuteHistory<Model>;
23
- select: AgenticaSelectHistory<Model>;
24
- text: AgenticaTextHistory;
25
- user_input: AgenticaUserInputHistory;
25
+ describe: AgenticaDescribeHistory<Model>;
26
26
  }
27
27
  }
@@ -0,0 +1,11 @@
1
+ import type { IAgenticaHistoryJson } from "../json/IAgenticaHistoryJson";
2
+
3
+ import type { AgenticaHistoryBase } from "./AgenticaHistoryBase";
4
+ import type { AgenticaUserMessageContent } from "./contents/AgenticaUserMessageContent";
5
+
6
+ export interface AgenticaUserMessageHistory extends AgenticaHistoryBase<
7
+ "userMessage",
8
+ IAgenticaHistoryJson.IUserMessage
9
+ > {
10
+ contents: AgenticaUserMessageContent[];
11
+ }
@@ -1,20 +1,21 @@
1
1
  import type { ILlmSchema } from "@samchon/openapi";
2
2
 
3
+ import type { AgenticaAssistantMessageHistory } from "./AgenticaAssistantMessageHistory";
3
4
  import type { AgenticaDescribeHistory } from "./AgenticaDescribeHistory";
4
5
  import type { AgenticaExecuteHistory } from "./AgenticaExecuteHistory";
5
- import type { AgenticaTextHistory } from "./AgenticaTextHistory";
6
- import type { AgenticaUserInputHistory } from "./AgenticaUserInputHistory";
6
+ import type { AgenticaUserMessageHistory } from "./AgenticaUserMessageHistory";
7
7
 
8
8
  export type MicroAgenticaHistory<Model extends ILlmSchema.Model> =
9
9
  | AgenticaDescribeHistory<Model>
10
10
  | AgenticaExecuteHistory<Model>
11
- | AgenticaTextHistory
12
- | AgenticaUserInputHistory;
11
+ | AgenticaAssistantMessageHistory
12
+ | AgenticaUserMessageHistory;
13
13
  export namespace MicroAgenticaHistory {
14
14
  export type Type = MicroAgenticaHistory<any>["type"];
15
15
  export interface Mapper<Model extends ILlmSchema.Model> {
16
16
  describe: AgenticaDescribeHistory<Model>;
17
17
  execute: AgenticaExecuteHistory<Model>;
18
- text: AgenticaTextHistory;
18
+ userMessage: AgenticaUserMessageHistory;
19
+ assistantMessage: AgenticaAssistantMessageHistory;
19
20
  }
20
21
  }
@@ -0,0 +1,21 @@
1
+ import type { AgenticaUserMessageContentBase } from "./AgenticaUserMessageContentBase";
2
+
3
+ /**
4
+ * Audio content by user.
5
+ *
6
+ * @reference https://platform.openai.com/docs/guides/audio
7
+ * @warning We not recommend it because audio data only support base64
8
+ * so it's too big data
9
+ * @author SunRabbit
10
+ */
11
+ export interface AgenticaUserMessageAudioContent extends AgenticaUserMessageContentBase<"audio"> {
12
+ /**
13
+ * Base64 encoded audio data.
14
+ */
15
+ data: string;
16
+
17
+ /**
18
+ * The format of the encoded audio data. Currently supports "wav" and "mp3".
19
+ */
20
+ format: "wav" | "mp3";
21
+ }
@@ -0,0 +1,19 @@
1
+ import type { AgenticaUserMessageAudioContent } from "./AgenticaUserMessageAudioContent";
2
+ import type { AgenticaUserMessageFileContent } from "./AgenticaUserMessageFileContent";
3
+ import type { AgenticaUserMessageImageContent } from "./AgenticaUserMessageImageContent";
4
+ import type { AgenticaUserMessageTextContent } from "./AgenticaUserMessageTextContent";
5
+
6
+ export type AgenticaUserMessageContent =
7
+ | AgenticaUserMessageAudioContent
8
+ | AgenticaUserMessageFileContent
9
+ | AgenticaUserMessageImageContent
10
+ | AgenticaUserMessageTextContent;
11
+ export namespace AgenticaUserMessageContent {
12
+ export type Type = AgenticaUserMessageContent["type"];
13
+ export interface Mapper {
14
+ audio: AgenticaUserMessageAudioContent;
15
+ file: AgenticaUserMessageFileContent;
16
+ image: AgenticaUserMessageImageContent;
17
+ text: AgenticaUserMessageTextContent;
18
+ }
19
+ }
@@ -0,0 +1,6 @@
1
+ export interface AgenticaUserMessageContentBase<Type extends string> {
2
+ /**
3
+ * Discriminator for the type of content.
4
+ */
5
+ type: Type;
6
+ }
@@ -0,0 +1,27 @@
1
+ import type { AgenticaUserMessageContentBase } from "./AgenticaUserMessageContentBase";
2
+
3
+ /**
4
+ * File content by user.
5
+ *
6
+ * @reference https://platform.openai.com/docs/api-reference/uploads/create
7
+ * @author SunRabbit
8
+ */
9
+ export interface AgenticaUserMessageFileContent extends AgenticaUserMessageContentBase<"file"> {
10
+ /**
11
+ * Reference to the pre-uploaded file or the data itself.
12
+ *
13
+ * @todo Properly define independent interface
14
+ */
15
+ file: AgenticaUserMessageFileContent.IReference | AgenticaUserMessageFileContent.IData;
16
+ }
17
+ export namespace AgenticaUserMessageFileContent {
18
+ export interface IReference {
19
+ type: "reference";
20
+ id: string;
21
+ }
22
+ export interface IData {
23
+ type: "data";
24
+ name: string;
25
+ data: string;
26
+ }
27
+ }
@@ -0,0 +1,23 @@
1
+ import type { tags } from "typia";
2
+
3
+ import type { AgenticaUserMessageContentBase } from "./AgenticaUserMessageContentBase";
4
+
5
+ /**
6
+ * Image content by user.
7
+ *
8
+ * @reference https://platform.openai.com/docs/guides/vision
9
+ * @author SunRabbit
10
+ */
11
+ export interface AgenticaUserMessageImageContent extends AgenticaUserMessageContentBase<"image"> {
12
+ /**
13
+ * Image URL.
14
+ */
15
+ url: string & tags.Format<"url">;
16
+
17
+ /**
18
+ * Specifies the detail level of the image.
19
+ *
20
+ * @reference https://platform.openai.com/docs/guides/vision#low-or-high-fidelity-image-understanding
21
+ */
22
+ detail?: "auto" | "high" | "low" | undefined;
23
+ }
@@ -0,0 +1,15 @@
1
+ import type { AgenticaUserMessageContentBase } from "./AgenticaUserMessageContentBase";
2
+
3
+ /**
4
+ * Text content by user.
5
+ *
6
+ * @reference https://platform.openai.com/docs/guides/text-generation
7
+ * @author Samchon
8
+ * @author SunRabbit
9
+ */
10
+ export interface AgenticaUserMessageTextContent extends AgenticaUserMessageContentBase<"text"> {
11
+ /**
12
+ * The text content.
13
+ */
14
+ text: string;
15
+ }
@@ -0,0 +1,5 @@
1
+ export * from "./AgenticaUserMessageAudioContent";
2
+ export * from "./AgenticaUserMessageContent";
3
+ export * from "./AgenticaUserMessageFileContent";
4
+ export * from "./AgenticaUserMessageImageContent";
5
+ export * from "./AgenticaUserMessageTextContent";
@@ -0,0 +1,9 @@
1
+ export * from "./AgenticaAssistantMessageHistory";
2
+ export * from "./AgenticaCancelHistory";
3
+ export * from "./AgenticaDescribeHistory";
4
+ export * from "./AgenticaExecuteHistory";
5
+ export * from "./AgenticaHistory";
6
+ export * from "./AgenticaSelectHistory";
7
+ export * from "./AgenticaUserMessageHistory";
8
+ export * from "./contents";
9
+ export * from "./MicroAgenticaHistory";
package/src/index.ts CHANGED
@@ -1,62 +1,14 @@
1
1
  export * from "./Agentica";
2
- export * from "./context/AgenticaContext";
3
-
4
- export * from "./context/AgenticaOperation";
5
-
6
- export * from "./context/AgenticaOperationCollection";
7
- export * from "./context/AgenticaOperationSelection";
8
- export * from "./context/AgenticaTokenUsage";
9
-
10
- export * from "./events/AgenticaCallEvent";
11
- export * from "./events/AgenticaCancelEvent";
12
- export * from "./events/AgenticaDescribeEvent";
13
- export * from "./events/AgenticaEvent";
14
- export * from "./events/AgenticaEventSource";
15
- export * from "./events/AgenticaExecuteEvent";
16
- export * from "./events/AgenticaRequestEvent";
17
- export * from "./events/AgenticaResponseEvent";
18
- export * from "./events/AgenticaSelectEvent";
19
- export * from "./events/AgenticaTextEvent";
20
- export * from "./events/AgenticaValidateEvent";
21
- export * from "./events/MicroAgenticaEvent";
22
2
 
3
+ export * from "./context";
4
+ export * from "./events";
23
5
  export * as factory from "./factory";
24
-
25
- export * from "./functional/assertHttpController";
26
- export * from "./functional/assertHttpLlmApplication";
27
- export * from "./functional/assertMcpController";
28
- export * from "./functional/validateHttpController";
29
- export * from "./functional/validateHttpLlmApplication";
30
- export * from "./functional/validateMcpController";
31
- // @TODO: implement validateMcpLlmApplication
32
-
33
- export * from "./histories/AgenticaCancelHistory";
34
- export * from "./histories/AgenticaDescribeHistory";
35
- export * from "./histories/AgenticaExecuteHistory";
36
- export * from "./histories/AgenticaHistory";
37
- export * from "./histories/AgenticaSelectHistory";
38
- export * from "./histories/AgenticaTextHistory";
39
-
40
- export * from "./histories/MicroAgenticaHistory";
41
-
42
- export * from "./json/IAgenticaEventJson";
43
- export * from "./json/IAgenticaHistoryJson";
44
- export * from "./json/IAgenticaOperationJson";
45
- export * from "./json/IAgenticaOperationSelectionJson";
46
- export * from "./json/IAgenticaTokenUsageJson";
47
- export * from "./json/IMicroAgenticaEventJson";
48
- export * from "./json/IMicroAgenticaHistoryJson";
6
+ export * from "./functional";
7
+ export * from "./histories";
8
+ export * from "./json";
49
9
  export * from "./MicroAgentica";
50
10
  export * as orchestrate from "./orchestrate";
51
-
52
- export * from "./structures/IAgenticaConfig";
53
- export * from "./structures/IAgenticaController";
54
- export * from "./structures/IAgenticaExecutor";
55
- export * from "./structures/IAgenticaProps";
56
- export * from "./structures/IAgenticaSystemPrompt";
57
- export * from "./structures/IAgenticaVendor";
58
- export * from "./structures/IMicroAgenticaConfig";
59
- export * from "./structures/IMicroAgenticaProps";
11
+ export * from "./structures";
60
12
 
61
13
  /**
62
14
  * @internal