@agentica/core 0.43.2 → 0.44.0-dev.20260313

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 (205) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +218 -218
  3. package/lib/constants/AgenticaSystemPrompt.js +1 -1
  4. package/lib/constants/AgenticaSystemPrompt.js.map +1 -1
  5. package/lib/context/AgenticaOperation.d.ts +3 -2
  6. package/lib/context/internal/AgenticaOperationComposer.js.map +1 -1
  7. package/lib/context/internal/AgenticaTokenUsageAggregator.js.map +1 -1
  8. package/lib/context/internal/__IChatInitialApplication.d.ts +1 -1
  9. package/lib/errors/AgenticaJsonParseError.d.ts +5 -8
  10. package/lib/errors/AgenticaJsonParseError.js +11 -6
  11. package/lib/errors/AgenticaJsonParseError.js.map +1 -1
  12. package/lib/errors/AgenticaValidationError.d.ts +1 -1
  13. package/lib/events/AgenticaExecuteEvent.d.ts +1 -1
  14. package/lib/events/AgenticaJsonParseErrorEvent.d.ts +2 -2
  15. package/lib/factory/events.d.ts +2 -3
  16. package/lib/factory/events.js +1 -2
  17. package/lib/factory/events.js.map +1 -1
  18. package/lib/functional/assertHttpController.d.ts +2 -3
  19. package/lib/functional/assertHttpController.js +3939 -2656
  20. package/lib/functional/assertHttpController.js.map +1 -1
  21. package/lib/functional/assertHttpLlmApplication.d.ts +3 -3
  22. package/lib/functional/assertHttpLlmApplication.js +3939 -2656
  23. package/lib/functional/assertHttpLlmApplication.js.map +1 -1
  24. package/lib/functional/assertMcpController.d.ts +2 -2
  25. package/lib/functional/assertMcpController.js +202 -629
  26. package/lib/functional/assertMcpController.js.map +1 -1
  27. package/lib/functional/createMcpLlmApplication.d.ts +6 -0
  28. package/lib/functional/createMcpLlmApplication.js +56 -0
  29. package/lib/functional/createMcpLlmApplication.js.map +1 -0
  30. package/lib/functional/validateHttpController.d.ts +3 -3
  31. package/lib/functional/validateHttpController.js +3367 -2268
  32. package/lib/functional/validateHttpController.js.map +1 -1
  33. package/lib/functional/validateHttpLlmApplication.d.ts +3 -4
  34. package/lib/functional/validateHttpLlmApplication.js +3367 -2268
  35. package/lib/functional/validateHttpLlmApplication.js.map +1 -1
  36. package/lib/functional/validateMcpController.d.ts +2 -2
  37. package/lib/functional/validateMcpController.js +388 -1161
  38. package/lib/functional/validateMcpController.js.map +1 -1
  39. package/lib/histories/AgenticaExecuteHistory.d.ts +1 -1
  40. package/lib/index.mjs +21256 -18948
  41. package/lib/index.mjs.map +1 -1
  42. package/lib/orchestrate/call.js +43 -56
  43. package/lib/orchestrate/call.js.map +1 -1
  44. package/lib/orchestrate/cancel.js +9 -66
  45. package/lib/orchestrate/cancel.js.map +1 -1
  46. package/lib/orchestrate/initialize.js +4 -947
  47. package/lib/orchestrate/initialize.js.map +1 -1
  48. package/lib/orchestrate/select.js +11 -68
  49. package/lib/orchestrate/select.js.map +1 -1
  50. package/lib/structures/IAgenticaController.d.ts +143 -151
  51. package/lib/structures/IMcpTool.d.ts +52 -0
  52. package/lib/structures/IMcpTool.js +3 -0
  53. package/lib/structures/IMcpTool.js.map +1 -0
  54. package/lib/utils/ChatGptCompletionMessageUtil.js +16 -5
  55. package/lib/utils/ChatGptCompletionMessageUtil.js.map +1 -1
  56. package/lib/utils/ChatGptCompletionMessageUtil.spec.js +0 -5
  57. package/lib/utils/ChatGptCompletionMessageUtil.spec.js.map +1 -1
  58. package/package.json +7 -9
  59. package/prompts/cancel.md +5 -5
  60. package/prompts/common.md +3 -3
  61. package/prompts/describe.md +7 -7
  62. package/prompts/execute.md +122 -122
  63. package/prompts/initialize.md +3 -3
  64. package/prompts/json_parse_error.md +35 -33
  65. package/prompts/select.md +7 -7
  66. package/prompts/validate.md +123 -123
  67. package/prompts/validate_repeated.md +31 -31
  68. package/src/Agentica.ts +367 -367
  69. package/src/MicroAgentica.ts +357 -357
  70. package/src/constants/AgenticaConstant.ts +4 -4
  71. package/src/constants/AgenticaDefaultPrompt.ts +44 -44
  72. package/src/constants/AgenticaSystemPrompt.ts +1 -1
  73. package/src/constants/index.ts +2 -2
  74. package/src/context/AgenticaContext.ts +136 -136
  75. package/src/context/AgenticaContextRequestResult.ts +14 -14
  76. package/src/context/AgenticaOperation.ts +73 -72
  77. package/src/context/AgenticaOperationCollection.ts +49 -49
  78. package/src/context/AgenticaOperationSelection.ts +9 -9
  79. package/src/context/AgenticaTokenUsage.ts +186 -186
  80. package/src/context/MicroAgenticaContext.ts +99 -99
  81. package/src/context/index.ts +5 -5
  82. package/src/context/internal/AgenticaOperationComposer.ts +177 -177
  83. package/src/context/internal/AgenticaTokenUsageAggregator.ts +66 -66
  84. package/src/context/internal/__IChatCancelFunctionsApplication.ts +23 -23
  85. package/src/context/internal/__IChatFunctionReference.ts +21 -21
  86. package/src/context/internal/__IChatInitialApplication.ts +15 -15
  87. package/src/context/internal/__IChatSelectFunctionsApplication.ts +24 -24
  88. package/src/context/internal/isAgenticaContext.ts +11 -11
  89. package/src/errors/AgenticaJsonParseError.ts +52 -47
  90. package/src/errors/AgenticaValidationError.ts +49 -49
  91. package/src/errors/index.ts +2 -2
  92. package/src/events/AgenticaAssistantMessageEvent.ts +12 -12
  93. package/src/events/AgenticaCallEvent.ts +27 -27
  94. package/src/events/AgenticaCancelEvent.ts +9 -9
  95. package/src/events/AgenticaDescribeEvent.ts +14 -14
  96. package/src/events/AgenticaEvent.ts +59 -59
  97. package/src/events/AgenticaEvent.type.ts +19 -19
  98. package/src/events/AgenticaEventBase.ts +18 -18
  99. package/src/events/AgenticaEventSource.ts +6 -6
  100. package/src/events/AgenticaExecuteEvent.ts +45 -45
  101. package/src/events/AgenticaInitializeEvent.ts +7 -7
  102. package/src/events/AgenticaJsonParseErrorEvent.ts +16 -15
  103. package/src/events/AgenticaRequestEvent.ts +27 -27
  104. package/src/events/AgenticaResponseEvent.ts +32 -32
  105. package/src/events/AgenticaSelectEvent.ts +11 -11
  106. package/src/events/AgenticaUserMessageEvent.ts +12 -12
  107. package/src/events/AgenticaValidateEvent.ts +32 -32
  108. package/src/events/MicroAgenticaEvent.ts +45 -45
  109. package/src/events/index.ts +15 -15
  110. package/src/factory/events.ts +357 -359
  111. package/src/factory/histories.ts +348 -348
  112. package/src/factory/index.ts +3 -3
  113. package/src/factory/operations.ts +16 -16
  114. package/src/functional/assertHttpController.ts +106 -104
  115. package/src/functional/assertHttpLlmApplication.ts +52 -57
  116. package/src/functional/assertMcpController.ts +47 -44
  117. package/src/functional/createMcpLlmApplication.ts +72 -0
  118. package/src/functional/index.ts +7 -7
  119. package/src/functional/validateHttpController.ts +113 -110
  120. package/src/functional/validateHttpLlmApplication.ts +65 -70
  121. package/src/functional/validateMcpController.ts +53 -50
  122. package/src/histories/AgenticaAssistantMessageHistory.ts +10 -10
  123. package/src/histories/AgenticaCancelHistory.ts +8 -8
  124. package/src/histories/AgenticaDescribeHistory.ts +18 -18
  125. package/src/histories/AgenticaExecuteHistory.ts +64 -64
  126. package/src/histories/AgenticaHistory.ts +28 -28
  127. package/src/histories/AgenticaHistoryBase.ts +35 -35
  128. package/src/histories/AgenticaSelectHistory.ts +8 -8
  129. package/src/histories/AgenticaSystemMessageHistory.ts +10 -10
  130. package/src/histories/AgenticaUserMessageHistory.ts +11 -11
  131. package/src/histories/MicroAgenticaHistory.ts +19 -19
  132. package/src/histories/contents/AgenticaUserMessageAudioContent.ts +21 -21
  133. package/src/histories/contents/AgenticaUserMessageContent.ts +19 -19
  134. package/src/histories/contents/AgenticaUserMessageContentBase.ts +6 -6
  135. package/src/histories/contents/AgenticaUserMessageFileContent.ts +25 -25
  136. package/src/histories/contents/AgenticaUserMessageImageContent.ts +33 -33
  137. package/src/histories/contents/AgenticaUserMessageTextContent.ts +15 -15
  138. package/src/histories/contents/index.ts +5 -5
  139. package/src/histories/index.ts +10 -10
  140. package/src/index.ts +15 -15
  141. package/src/json/IAgenticaEventJson.ts +265 -265
  142. package/src/json/IAgenticaEventJson.type.ts +19 -19
  143. package/src/json/IAgenticaHistoryJson.ts +165 -165
  144. package/src/json/IAgenticaHistoryJson.type.ts +19 -19
  145. package/src/json/IAgenticaOperationJson.ts +36 -36
  146. package/src/json/IAgenticaOperationSelectionJson.ts +26 -26
  147. package/src/json/IAgenticaTokenUsageJson.ts +107 -107
  148. package/src/json/IMicroAgenticaEventJson.ts +22 -22
  149. package/src/json/IMicroAgenticaHistoryJson.ts +25 -25
  150. package/src/json/index.ts +7 -7
  151. package/src/orchestrate/call.ts +542 -558
  152. package/src/orchestrate/cancel.ts +265 -269
  153. package/src/orchestrate/describe.ts +66 -66
  154. package/src/orchestrate/execute.ts +61 -61
  155. package/src/orchestrate/index.ts +6 -6
  156. package/src/orchestrate/initialize.ts +102 -102
  157. package/src/orchestrate/internal/cancelFunctionFromContext.ts +33 -33
  158. package/src/orchestrate/internal/selectFunctionFromContext.ts +34 -34
  159. package/src/orchestrate/select.ts +320 -322
  160. package/src/structures/IAgenticaConfig.ts +83 -83
  161. package/src/structures/IAgenticaConfigBase.ts +87 -87
  162. package/src/structures/IAgenticaController.ts +143 -151
  163. package/src/structures/IAgenticaExecutor.ts +167 -167
  164. package/src/structures/IAgenticaProps.ts +78 -78
  165. package/src/structures/IAgenticaSystemPrompt.ts +236 -236
  166. package/src/structures/IAgenticaVendor.ts +54 -54
  167. package/src/structures/IMcpTool.ts +60 -0
  168. package/src/structures/IMicroAgenticaConfig.ts +56 -56
  169. package/src/structures/IMicroAgenticaExecutor.ts +67 -67
  170. package/src/structures/IMicroAgenticaProps.ts +77 -77
  171. package/src/structures/IMicroAgenticaSystemPrompt.ts +169 -169
  172. package/src/structures/index.ts +10 -10
  173. package/src/transformers/transformHistory.ts +172 -172
  174. package/src/utils/AssistantMessageEmptyError.ts +20 -20
  175. package/src/utils/AsyncQueue.spec.ts +355 -355
  176. package/src/utils/AsyncQueue.ts +95 -95
  177. package/src/utils/ByteArrayUtil.ts +5 -5
  178. package/src/utils/ChatGptCompletionMessageUtil.spec.ts +314 -320
  179. package/src/utils/ChatGptCompletionMessageUtil.ts +210 -195
  180. package/src/utils/ChatGptCompletionStreamingUtil.spec.ts +909 -909
  181. package/src/utils/ChatGptCompletionStreamingUtil.ts +91 -91
  182. package/src/utils/ChatGptTokenUsageAggregator.spec.ts +226 -226
  183. package/src/utils/ChatGptTokenUsageAggregator.ts +57 -57
  184. package/src/utils/MPSC.spec.ts +276 -276
  185. package/src/utils/MPSC.ts +42 -42
  186. package/src/utils/Singleton.spec.ts +138 -138
  187. package/src/utils/Singleton.ts +42 -42
  188. package/src/utils/StreamUtil.spec.ts +512 -512
  189. package/src/utils/StreamUtil.ts +87 -87
  190. package/src/utils/__map_take.spec.ts +140 -140
  191. package/src/utils/__map_take.ts +13 -13
  192. package/src/utils/__retry.spec.ts +198 -198
  193. package/src/utils/__retry.ts +18 -18
  194. package/src/utils/assertExecuteFailure.ts +16 -16
  195. package/src/utils/index.ts +4 -4
  196. package/src/utils/request.ts +140 -140
  197. package/src/utils/types.ts +50 -50
  198. package/lib/context/internal/AgenticaOperationComposer.spec.d.ts +0 -1
  199. package/lib/context/internal/AgenticaOperationComposer.spec.js +0 -353
  200. package/lib/context/internal/AgenticaOperationComposer.spec.js.map +0 -1
  201. package/lib/utils/JsonUtil.d.ts +0 -8
  202. package/lib/utils/JsonUtil.js +0 -350
  203. package/lib/utils/JsonUtil.js.map +0 -1
  204. package/src/context/internal/AgenticaOperationComposer.spec.ts +0 -401
  205. package/src/utils/JsonUtil.ts +0 -462
@@ -1,83 +1,83 @@
1
- import type { AgenticaContext } from "../context/AgenticaContext";
2
-
3
- import type { IAgenticaConfigBase } from "./IAgenticaConfigBase";
4
- import type { IAgenticaExecutor } from "./IAgenticaExecutor";
5
- import type { IAgenticaSystemPrompt } from "./IAgenticaSystemPrompt";
6
-
7
- /**
8
- * Configuration for Agentic Agent.
9
- *
10
- * `IAgenticaConfig` is an interface that defines the configuration
11
- * properties of the {@link Agentica}. With this configuration, you
12
- * can set the user's {@link locale}, {@link timezone}, and some of
13
- * {@link systemPrompt system prompts}.
14
- *
15
- * Also, you can affect to the LLM function selecing/calling logic by
16
- * configuring additional properties. For an example, if you configure the
17
- * {@link capacity} property, the AI chatbot will divide the functions
18
- * into the several groups with the configured capacity and select proper
19
- * functions to call by operating the multiple LLM function selecting
20
- * agents parallelly.
21
- *
22
- * @author Samchon
23
- */
24
- export interface IAgenticaConfig extends IAgenticaConfigBase {
25
- /**
26
- * Agent executor.
27
- *
28
- * Executor function of Agentic AI's iteration plan to internal agents
29
- * running by the {@link Agentica.conversate} function.
30
- *
31
- * If you want to customize the agent execution plan, you can do it
32
- * by assigning you logic function of entire or partial to this property.
33
- * When customizing it, it would better to reference the
34
- * {@link ChatGptAgent.execute} function.
35
- *
36
- * @param ctx Context of the agent
37
- * @default ChatGptAgent.execute
38
- */
39
- executor?:
40
- | Partial<IAgenticaExecutor>
41
- | ((ctx: AgenticaContext) => Promise<void>);
42
-
43
- /**
44
- * System prompt messages.
45
- *
46
- * System prompt messages if you want to customize the system prompt
47
- * messages for each situation.
48
- */
49
- systemPrompt?: IAgenticaSystemPrompt;
50
-
51
- /**
52
- * Capacity of the LLM function selecting.
53
- *
54
- * When the A.I. chatbot selects a proper function to call, if the
55
- * number of functions registered in the
56
- * {@link IAgenticaProps.applications} is too much greater,
57
- * the A.I. chatbot often fallen into the hallucination.
58
- *
59
- * In that case, if you configure this property value, `Agentica`
60
- * will divide the functions into the several groups with the configured
61
- * capacity and select proper functions to call by operating the multiple
62
- * LLM function selecting agents parallelly.
63
- *
64
- * @default 100
65
- */
66
- capacity?: number;
67
-
68
- /**
69
- * Eliticism for the LLM function selecting.
70
- *
71
- * If you configure {@link capacity}, the A.I. chatbot will complete
72
- * the candidate functions to call which are selected by the multiple
73
- * LLM function selecting agents.
74
- *
75
- * Otherwise you configure this property as `false`, the A.I. chatbot
76
- * will not complete the candidate functions to call and just accept
77
- * every candidate functions to call which are selected by the multiple
78
- * LLM function selecting agents.
79
- *
80
- * @default true
81
- */
82
- eliticism?: boolean;
83
- }
1
+ import type { AgenticaContext } from "../context/AgenticaContext";
2
+
3
+ import type { IAgenticaConfigBase } from "./IAgenticaConfigBase";
4
+ import type { IAgenticaExecutor } from "./IAgenticaExecutor";
5
+ import type { IAgenticaSystemPrompt } from "./IAgenticaSystemPrompt";
6
+
7
+ /**
8
+ * Configuration for Agentic Agent.
9
+ *
10
+ * `IAgenticaConfig` is an interface that defines the configuration
11
+ * properties of the {@link Agentica}. With this configuration, you
12
+ * can set the user's {@link locale}, {@link timezone}, and some of
13
+ * {@link systemPrompt system prompts}.
14
+ *
15
+ * Also, you can affect to the LLM function selecing/calling logic by
16
+ * configuring additional properties. For an example, if you configure the
17
+ * {@link capacity} property, the AI chatbot will divide the functions
18
+ * into the several groups with the configured capacity and select proper
19
+ * functions to call by operating the multiple LLM function selecting
20
+ * agents parallelly.
21
+ *
22
+ * @author Samchon
23
+ */
24
+ export interface IAgenticaConfig extends IAgenticaConfigBase {
25
+ /**
26
+ * Agent executor.
27
+ *
28
+ * Executor function of Agentic AI's iteration plan to internal agents
29
+ * running by the {@link Agentica.conversate} function.
30
+ *
31
+ * If you want to customize the agent execution plan, you can do it
32
+ * by assigning you logic function of entire or partial to this property.
33
+ * When customizing it, it would better to reference the
34
+ * {@link ChatGptAgent.execute} function.
35
+ *
36
+ * @param ctx Context of the agent
37
+ * @default ChatGptAgent.execute
38
+ */
39
+ executor?:
40
+ | Partial<IAgenticaExecutor>
41
+ | ((ctx: AgenticaContext) => Promise<void>);
42
+
43
+ /**
44
+ * System prompt messages.
45
+ *
46
+ * System prompt messages if you want to customize the system prompt
47
+ * messages for each situation.
48
+ */
49
+ systemPrompt?: IAgenticaSystemPrompt;
50
+
51
+ /**
52
+ * Capacity of the LLM function selecting.
53
+ *
54
+ * When the A.I. chatbot selects a proper function to call, if the
55
+ * number of functions registered in the
56
+ * {@link IAgenticaProps.applications} is too much greater,
57
+ * the A.I. chatbot often fallen into the hallucination.
58
+ *
59
+ * In that case, if you configure this property value, `Agentica`
60
+ * will divide the functions into the several groups with the configured
61
+ * capacity and select proper functions to call by operating the multiple
62
+ * LLM function selecting agents parallelly.
63
+ *
64
+ * @default 100
65
+ */
66
+ capacity?: number;
67
+
68
+ /**
69
+ * Eliticism for the LLM function selecting.
70
+ *
71
+ * If you configure {@link capacity}, the A.I. chatbot will complete
72
+ * the candidate functions to call which are selected by the multiple
73
+ * LLM function selecting agents.
74
+ *
75
+ * Otherwise you configure this property as `false`, the A.I. chatbot
76
+ * will not complete the candidate functions to call and just accept
77
+ * every candidate functions to call which are selected by the multiple
78
+ * LLM function selecting agents.
79
+ *
80
+ * @default true
81
+ */
82
+ eliticism?: boolean;
83
+ }
@@ -1,87 +1,87 @@
1
- /**
2
- * Configuration for Agentic Agent.
3
- *
4
- * `IAgenticaConfig` is an interface that defines the configuration
5
- * properties of the {@link Agentica}. With this configuration, you
6
- * can set the user's {@link locale}, {@link timezone}, and some of
7
- * {@link systemPrompt system prompts}.
8
- *
9
- * Also, you can affect to the LLM function selecing/calling logic by
10
- * configuring additional properties. For an example, if you configure the
11
- * {@link capacity} property, the AI chatbot will divide the functions
12
- * into the several groups with the configured capacity and select proper
13
- * functions to call by operating the multiple LLM function selecting
14
- * agents parallelly.
15
- *
16
- * @author sunrabbit123
17
- */
18
- export interface IAgenticaConfigBase {
19
-
20
- /**
21
- * Locale of the A.I. chatbot.
22
- *
23
- * If you configure this property, the A.I. chatbot will conversate with
24
- * the given locale. You can get the locale value by
25
- *
26
- * - Browser: `navigator.language`
27
- * - NodeJS: `process.env.LANG.split(".")[0]`
28
- *
29
- * @default your_locale
30
- */
31
- locale?: string;
32
-
33
- /**
34
- * Timezone of the A.I. chatbot.
35
- *
36
- * If you configure this property, the A.I. chatbot will consider the
37
- * given timezone. You can get the timezone value by
38
- * `Intl.DateTimeFormat().resolvedOptions().timeZone`.
39
- *
40
- * @default your_timezone
41
- */
42
- timezone?: string;
43
-
44
- /**
45
- * Retry count.
46
- *
47
- * If LLM function calling composed arguments are invalid,
48
- * the A.I. chatbot will retry to call the function with
49
- * the modified arguments.
50
- *
51
- * By the way, if you configure it to 0 or 1, the A.I. chatbot
52
- * will not retry the LLM function calling for correcting the
53
- * arguments.
54
- *
55
- * @default 3
56
- */
57
- retry?: number;
58
-
59
- /**
60
- * Backoff strategy.
61
- *
62
- * If OpenAI SDK fails to connect LLM API Server, this Backoff factor
63
- * would be used to retry for the next connection.
64
- *
65
- * If the function returns `true`, the retry would be stopped.
66
- * Otherwise, the retry would be continued.
67
- *
68
- * @default (props) => throw props.error
69
- * @returns {number} The number of milliseconds to wait before the next retry
70
- * @throws {Error} If the function want to stop the retry, you can throw an error
71
- */
72
- backoffStrategy?: (props: {
73
- count: number;
74
- error: unknown;
75
- }) => number;
76
-
77
- /**
78
- * Whether to enable streaming.
79
- *
80
- * If you set this property to `true`, the A.I. chatbot will enable streaming.
81
- *
82
- * If you set this property to `false`, the A.I. chatbot will not enable streaming.
83
- *
84
- * @default true
85
- */
86
- stream?: boolean;
87
- }
1
+ /**
2
+ * Configuration for Agentic Agent.
3
+ *
4
+ * `IAgenticaConfig` is an interface that defines the configuration
5
+ * properties of the {@link Agentica}. With this configuration, you
6
+ * can set the user's {@link locale}, {@link timezone}, and some of
7
+ * {@link systemPrompt system prompts}.
8
+ *
9
+ * Also, you can affect to the LLM function selecing/calling logic by
10
+ * configuring additional properties. For an example, if you configure the
11
+ * {@link capacity} property, the AI chatbot will divide the functions
12
+ * into the several groups with the configured capacity and select proper
13
+ * functions to call by operating the multiple LLM function selecting
14
+ * agents parallelly.
15
+ *
16
+ * @author sunrabbit123
17
+ */
18
+ export interface IAgenticaConfigBase {
19
+
20
+ /**
21
+ * Locale of the A.I. chatbot.
22
+ *
23
+ * If you configure this property, the A.I. chatbot will conversate with
24
+ * the given locale. You can get the locale value by
25
+ *
26
+ * - Browser: `navigator.language`
27
+ * - NodeJS: `process.env.LANG.split(".")[0]`
28
+ *
29
+ * @default your_locale
30
+ */
31
+ locale?: string;
32
+
33
+ /**
34
+ * Timezone of the A.I. chatbot.
35
+ *
36
+ * If you configure this property, the A.I. chatbot will consider the
37
+ * given timezone. You can get the timezone value by
38
+ * `Intl.DateTimeFormat().resolvedOptions().timeZone`.
39
+ *
40
+ * @default your_timezone
41
+ */
42
+ timezone?: string;
43
+
44
+ /**
45
+ * Retry count.
46
+ *
47
+ * If LLM function calling composed arguments are invalid,
48
+ * the A.I. chatbot will retry to call the function with
49
+ * the modified arguments.
50
+ *
51
+ * By the way, if you configure it to 0 or 1, the A.I. chatbot
52
+ * will not retry the LLM function calling for correcting the
53
+ * arguments.
54
+ *
55
+ * @default 3
56
+ */
57
+ retry?: number;
58
+
59
+ /**
60
+ * Backoff strategy.
61
+ *
62
+ * If OpenAI SDK fails to connect LLM API Server, this Backoff factor
63
+ * would be used to retry for the next connection.
64
+ *
65
+ * If the function returns `true`, the retry would be stopped.
66
+ * Otherwise, the retry would be continued.
67
+ *
68
+ * @default (props) => throw props.error
69
+ * @returns {number} The number of milliseconds to wait before the next retry
70
+ * @throws {Error} If the function want to stop the retry, you can throw an error
71
+ */
72
+ backoffStrategy?: (props: {
73
+ count: number;
74
+ error: unknown;
75
+ }) => number;
76
+
77
+ /**
78
+ * Whether to enable streaming.
79
+ *
80
+ * If you set this property to `true`, the A.I. chatbot will enable streaming.
81
+ *
82
+ * If you set this property to `false`, the A.I. chatbot will not enable streaming.
83
+ *
84
+ * @default true
85
+ */
86
+ stream?: boolean;
87
+ }
@@ -1,151 +1,143 @@
1
- import type {
2
- IHttpConnection,
3
- IHttpLlmApplication,
4
- IHttpLlmFunction,
5
- IHttpResponse,
6
- ILlmApplication,
7
- ILlmFunction,
8
- IMcpLlmApplication,
9
- } from "@samchon/openapi";
10
-
11
- /**
12
- * Controller of the Agentica Agent.
13
- *
14
- * `IAgenticaController` is a type represents a controller of the
15
- * {@link Agentica}, which serves a set of functions to be called
16
- * by A.I. chatbot from LLM function calling.
17
- *
18
- * Also, `IAgenticaController` is an union type which can specify
19
- * a subtype by checking the {@link protocol} property.
20
- *
21
- * - HTTP server: {@link IAgenticaController.IHttp}
22
- * - TypeScript class: {@link IAgenticaController.IClass}
23
- * - MCP Server: {@link IAgenticaController.IMcp}
24
- *
25
- * @author Samchon
26
- */
27
- export type IAgenticaController =
28
- | IAgenticaController.IHttp
29
- | IAgenticaController.IClass
30
- | IAgenticaController.IMcp;
31
-
32
- export namespace IAgenticaController {
33
- /**
34
- * HTTP controller.
35
- *
36
- * You can make it by {@link validateHttpLlmApplication} function with
37
- * the Swagger or OpenAPI document.
38
- */
39
- export interface IHttp extends IBase<"http", IHttpLlmApplication> {
40
- /**
41
- * Connection to the server.
42
- *
43
- * Connection to the API server including the URL and headers.
44
- */
45
- connection: IHttpConnection;
46
-
47
- /**
48
- * Executor of the API function.
49
- *
50
- * @param props Properties of the API function call
51
- * @returns HTTP response of the API function call
52
- */
53
- execute?: (props: {
54
- /**
55
- * Connection to the server.
56
- */
57
- connection: IHttpConnection;
58
-
59
- /**
60
- * Application schema.
61
- */
62
- application: IHttpLlmApplication;
63
-
64
- /**
65
- * Function schema.
66
- */
67
- function: IHttpLlmFunction;
68
-
69
- /**
70
- * Arguments of the function calling.
71
- *
72
- * It is an object of key-value pairs of the API function's parameters.
73
- * The property keys are composed by below rules:
74
- *
75
- * - parameter names
76
- * - query parameter as an object type if exists
77
- * - body parameter if exists
78
- */
79
- arguments: object;
80
- }) => Promise<IHttpResponse>;
81
- }
82
-
83
- /**
84
- * TypeScript class controller.
85
- *
86
- * You can make it by `typia.llm.application<App, Model>()` function.
87
- *
88
- * - https://typia.io/docs/llm/application
89
- */
90
- export interface IClass extends IBase<"class", ILlmApplication> {
91
- /**
92
- * Executor of the class function.
93
- *
94
- * Executor of the class function, by target class instance
95
- * or callback function with given schema and arguments
96
- * information.
97
- */
98
- execute:
99
- | object
100
- | ((props: {
101
- /**
102
- * Target application schema.
103
- */
104
- application: ILlmApplication;
105
-
106
- /**
107
- * Target function schema.
108
- */
109
- function: ILlmFunction;
110
-
111
- /**
112
- * Arguments of the function calling.
113
- */
114
- arguments: object;
115
- }) => Promise<unknown>);
116
- }
117
-
118
- /**
119
- * MCP Server controller.
120
- */
121
- export interface IMcp extends IBase<"mcp", IMcpLlmApplication> {
122
- /**
123
- * MCP client for connection.
124
- *
125
- * @warning You have to install `@modelcontextprotocol/sdk` package
126
- * to use this type properly. If not, this type would work
127
- * as an `any` type, so that you can't validate it.
128
- */
129
- // @ts-ignore Type checking only when `@modelcontextprotocol/sdk` is installed.
130
- // This strategy is useful for someone who does not need MCP,
131
- // for someone who has not installed `@modelcontextprotocol/sdk`.
132
- client: import("@modelcontextprotocol/sdk/client/index.d.ts").Client;
133
- }
134
-
135
- interface IBase<Protocol, Application> {
136
- /**
137
- * Protocol discrminator.
138
- */
139
- protocol: Protocol;
140
-
141
- /**
142
- * Name of the controller.
143
- */
144
- name: string;
145
-
146
- /**
147
- * Application schema of function calling.
148
- */
149
- application: Application;
150
- }
151
- }
1
+ import type { IHttpConnection, IHttpLlmApplication, IHttpLlmFunction, IHttpResponse, ILlmApplication, ILlmFunction } from "@typia/interface";
2
+
3
+ /**
4
+ * Controller of the Agentica Agent.
5
+ *
6
+ * `IAgenticaController` is a type represents a controller of the
7
+ * {@link Agentica}, which serves a set of functions to be called
8
+ * by A.I. chatbot from LLM function calling.
9
+ *
10
+ * Also, `IAgenticaController` is an union type which can specify
11
+ * a subtype by checking the {@link protocol} property.
12
+ *
13
+ * - HTTP server: {@link IAgenticaController.IHttp}
14
+ * - TypeScript class: {@link IAgenticaController.IClass}
15
+ * - MCP Server: {@link IAgenticaController.IMcp}
16
+ *
17
+ * @author Samchon
18
+ */
19
+ export type IAgenticaController
20
+ = | IAgenticaController.IHttp
21
+ | IAgenticaController.IClass
22
+ | IAgenticaController.IMcp;
23
+
24
+ export namespace IAgenticaController {
25
+ /**
26
+ * HTTP controller.
27
+ *
28
+ * You can make it by {@link validateHttpLlmApplication} function with
29
+ * the Swagger or OpenAPI document.
30
+ */
31
+ export interface IHttp extends IBase<"http", IHttpLlmApplication> {
32
+ /**
33
+ * Connection to the server.
34
+ *
35
+ * Connection to the API server including the URL and headers.
36
+ */
37
+ connection: IHttpConnection;
38
+
39
+ /**
40
+ * Executor of the API function.
41
+ *
42
+ * @param props Properties of the API function call
43
+ * @returns HTTP response of the API function call
44
+ */
45
+ execute?: (props: {
46
+ /**
47
+ * Connection to the server.
48
+ */
49
+ connection: IHttpConnection;
50
+
51
+ /**
52
+ * Application schema.
53
+ */
54
+ application: IHttpLlmApplication;
55
+
56
+ /**
57
+ * Function schema.
58
+ */
59
+ function: IHttpLlmFunction;
60
+
61
+ /**
62
+ * Arguments of the function calling.
63
+ *
64
+ * It is an object of key-value pairs of the API function's parameters.
65
+ * The property keys are composed by below rules:
66
+ *
67
+ * - parameter names
68
+ * - query parameter as an object type if exists
69
+ * - body parameter if exists
70
+ */
71
+ arguments: object;
72
+ }) => Promise<IHttpResponse>;
73
+ }
74
+
75
+ /**
76
+ * TypeScript class controller.
77
+ *
78
+ * You can make it by `typia.llm.application<App, Model>()` function.
79
+ *
80
+ * - https://typia.io/docs/llm/application
81
+ */
82
+ export interface IClass extends IBase<"class", ILlmApplication> {
83
+ /**
84
+ * Executor of the class function.
85
+ *
86
+ * Executor of the class function, by target class instance
87
+ * or callback function with given schema and arguments
88
+ * information.
89
+ */
90
+ execute:
91
+ | object
92
+ | ((props: {
93
+ /**
94
+ * Target application schema.
95
+ */
96
+ application: ILlmApplication;
97
+
98
+ /**
99
+ * Target function schema.
100
+ */
101
+ function: ILlmFunction;
102
+
103
+ /**
104
+ * Arguments of the function calling.
105
+ */
106
+ arguments: object;
107
+ }) => Promise<unknown>);
108
+ }
109
+
110
+ /**
111
+ * MCP Server controller.
112
+ */
113
+ export interface IMcp extends IBase<"mcp", ILlmApplication> {
114
+ /**
115
+ * MCP client for connection.
116
+ *
117
+ * @warning You have to install `@modelcontextprotocol/sdk` package
118
+ * to use this type properly. If not, this type would work
119
+ * as an `any` type, so that you can't validate it.
120
+ */
121
+ // @ts-ignore Type checking only when `@modelcontextprotocol/sdk` is installed.
122
+ // This strategy is useful for someone who does not need MCP,
123
+ // for someone who has not installed `@modelcontextprotocol/sdk`.
124
+ client: import("@modelcontextprotocol/sdk/client/index.d.ts").Client;
125
+ }
126
+
127
+ interface IBase<Protocol, Application> {
128
+ /**
129
+ * Protocol discrminator.
130
+ */
131
+ protocol: Protocol;
132
+
133
+ /**
134
+ * Name of the controller.
135
+ */
136
+ name: string;
137
+
138
+ /**
139
+ * Application schema of function calling.
140
+ */
141
+ application: Application;
142
+ }
143
+ }