@agentica/core 0.44.0-dev.20260313-2 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +218 -218
  3. package/lib/context/internal/__IChatInitialApplication.d.ts +1 -2
  4. package/lib/errors/AgenticaJsonParseError.js +6 -6
  5. package/lib/index.mjs +47 -7
  6. package/lib/index.mjs.map +1 -1
  7. package/lib/orchestrate/call.js +16 -16
  8. package/lib/orchestrate/cancel.js +1 -1
  9. package/lib/orchestrate/cancel.js.map +1 -1
  10. package/lib/orchestrate/initialize.js +44 -2
  11. package/lib/orchestrate/initialize.js.map +1 -1
  12. package/lib/orchestrate/select.js +1 -1
  13. package/lib/orchestrate/select.js.map +1 -1
  14. package/lib/structures/IAgenticaController.d.ts +143 -143
  15. package/lib/utils/ChatGptCompletionMessageUtil.js +6 -6
  16. package/package.json +6 -6
  17. package/prompts/cancel.md +5 -5
  18. package/prompts/common.md +3 -3
  19. package/prompts/describe.md +7 -7
  20. package/prompts/execute.md +122 -122
  21. package/prompts/initialize.md +3 -3
  22. package/prompts/json_parse_error.md +35 -35
  23. package/prompts/select.md +7 -7
  24. package/prompts/validate.md +123 -123
  25. package/prompts/validate_repeated.md +31 -31
  26. package/src/Agentica.ts +367 -367
  27. package/src/MicroAgentica.ts +357 -357
  28. package/src/constants/AgenticaConstant.ts +4 -4
  29. package/src/constants/AgenticaDefaultPrompt.ts +44 -44
  30. package/src/constants/index.ts +2 -2
  31. package/src/context/AgenticaContext.ts +136 -136
  32. package/src/context/AgenticaContextRequestResult.ts +14 -14
  33. package/src/context/AgenticaOperation.ts +73 -73
  34. package/src/context/AgenticaOperationCollection.ts +49 -49
  35. package/src/context/AgenticaOperationSelection.ts +9 -9
  36. package/src/context/AgenticaTokenUsage.ts +186 -186
  37. package/src/context/MicroAgenticaContext.ts +99 -99
  38. package/src/context/index.ts +5 -5
  39. package/src/context/internal/AgenticaOperationComposer.ts +177 -177
  40. package/src/context/internal/AgenticaTokenUsageAggregator.ts +66 -66
  41. package/src/context/internal/__IChatCancelFunctionsApplication.ts +23 -23
  42. package/src/context/internal/__IChatFunctionReference.ts +21 -21
  43. package/src/context/internal/__IChatInitialApplication.ts +13 -15
  44. package/src/context/internal/__IChatSelectFunctionsApplication.ts +24 -24
  45. package/src/context/internal/isAgenticaContext.ts +11 -11
  46. package/src/errors/AgenticaJsonParseError.ts +52 -52
  47. package/src/errors/AgenticaValidationError.ts +49 -49
  48. package/src/errors/index.ts +2 -2
  49. package/src/events/AgenticaAssistantMessageEvent.ts +12 -12
  50. package/src/events/AgenticaCallEvent.ts +27 -27
  51. package/src/events/AgenticaCancelEvent.ts +9 -9
  52. package/src/events/AgenticaDescribeEvent.ts +14 -14
  53. package/src/events/AgenticaEvent.ts +59 -59
  54. package/src/events/AgenticaEvent.type.ts +19 -19
  55. package/src/events/AgenticaEventBase.ts +18 -18
  56. package/src/events/AgenticaEventSource.ts +6 -6
  57. package/src/events/AgenticaExecuteEvent.ts +45 -45
  58. package/src/events/AgenticaInitializeEvent.ts +7 -7
  59. package/src/events/AgenticaJsonParseErrorEvent.ts +16 -16
  60. package/src/events/AgenticaRequestEvent.ts +27 -27
  61. package/src/events/AgenticaResponseEvent.ts +32 -32
  62. package/src/events/AgenticaSelectEvent.ts +11 -11
  63. package/src/events/AgenticaUserMessageEvent.ts +12 -12
  64. package/src/events/AgenticaValidateEvent.ts +32 -32
  65. package/src/events/MicroAgenticaEvent.ts +45 -45
  66. package/src/events/index.ts +15 -15
  67. package/src/factory/events.ts +357 -357
  68. package/src/factory/histories.ts +348 -348
  69. package/src/factory/index.ts +3 -3
  70. package/src/factory/operations.ts +16 -16
  71. package/src/functional/assertHttpController.ts +106 -106
  72. package/src/functional/assertHttpLlmApplication.ts +52 -52
  73. package/src/functional/assertMcpController.ts +47 -47
  74. package/src/functional/createMcpLlmApplication.ts +72 -72
  75. package/src/functional/index.ts +7 -7
  76. package/src/functional/validateHttpController.ts +113 -113
  77. package/src/functional/validateHttpLlmApplication.ts +65 -65
  78. package/src/functional/validateMcpController.ts +53 -53
  79. package/src/histories/AgenticaAssistantMessageHistory.ts +10 -10
  80. package/src/histories/AgenticaCancelHistory.ts +8 -8
  81. package/src/histories/AgenticaDescribeHistory.ts +18 -18
  82. package/src/histories/AgenticaExecuteHistory.ts +64 -64
  83. package/src/histories/AgenticaHistory.ts +28 -28
  84. package/src/histories/AgenticaHistoryBase.ts +35 -35
  85. package/src/histories/AgenticaSelectHistory.ts +8 -8
  86. package/src/histories/AgenticaSystemMessageHistory.ts +10 -10
  87. package/src/histories/AgenticaUserMessageHistory.ts +11 -11
  88. package/src/histories/MicroAgenticaHistory.ts +19 -19
  89. package/src/histories/contents/AgenticaUserMessageAudioContent.ts +21 -21
  90. package/src/histories/contents/AgenticaUserMessageContent.ts +19 -19
  91. package/src/histories/contents/AgenticaUserMessageContentBase.ts +6 -6
  92. package/src/histories/contents/AgenticaUserMessageFileContent.ts +25 -25
  93. package/src/histories/contents/AgenticaUserMessageImageContent.ts +33 -33
  94. package/src/histories/contents/AgenticaUserMessageTextContent.ts +15 -15
  95. package/src/histories/contents/index.ts +5 -5
  96. package/src/histories/index.ts +10 -10
  97. package/src/index.ts +15 -15
  98. package/src/json/IAgenticaEventJson.ts +265 -265
  99. package/src/json/IAgenticaEventJson.type.ts +19 -19
  100. package/src/json/IAgenticaHistoryJson.ts +165 -165
  101. package/src/json/IAgenticaHistoryJson.type.ts +19 -19
  102. package/src/json/IAgenticaOperationJson.ts +36 -36
  103. package/src/json/IAgenticaOperationSelectionJson.ts +26 -26
  104. package/src/json/IAgenticaTokenUsageJson.ts +107 -107
  105. package/src/json/IMicroAgenticaEventJson.ts +22 -22
  106. package/src/json/IMicroAgenticaHistoryJson.ts +25 -25
  107. package/src/json/index.ts +7 -7
  108. package/src/orchestrate/call.ts +542 -542
  109. package/src/orchestrate/cancel.ts +265 -265
  110. package/src/orchestrate/describe.ts +66 -66
  111. package/src/orchestrate/execute.ts +61 -61
  112. package/src/orchestrate/index.ts +6 -6
  113. package/src/orchestrate/initialize.ts +102 -102
  114. package/src/orchestrate/internal/cancelFunctionFromContext.ts +33 -33
  115. package/src/orchestrate/internal/selectFunctionFromContext.ts +34 -34
  116. package/src/orchestrate/select.ts +320 -320
  117. package/src/structures/IAgenticaConfig.ts +83 -83
  118. package/src/structures/IAgenticaConfigBase.ts +87 -87
  119. package/src/structures/IAgenticaController.ts +143 -143
  120. package/src/structures/IAgenticaExecutor.ts +167 -167
  121. package/src/structures/IAgenticaProps.ts +78 -78
  122. package/src/structures/IAgenticaSystemPrompt.ts +236 -236
  123. package/src/structures/IAgenticaVendor.ts +54 -54
  124. package/src/structures/IMcpTool.ts +60 -60
  125. package/src/structures/IMicroAgenticaConfig.ts +56 -56
  126. package/src/structures/IMicroAgenticaExecutor.ts +67 -67
  127. package/src/structures/IMicroAgenticaProps.ts +77 -77
  128. package/src/structures/IMicroAgenticaSystemPrompt.ts +169 -169
  129. package/src/structures/index.ts +10 -10
  130. package/src/transformers/transformHistory.ts +172 -172
  131. package/src/utils/AssistantMessageEmptyError.ts +20 -20
  132. package/src/utils/AsyncQueue.spec.ts +355 -355
  133. package/src/utils/AsyncQueue.ts +95 -95
  134. package/src/utils/ByteArrayUtil.ts +5 -5
  135. package/src/utils/ChatGptCompletionMessageUtil.spec.ts +314 -314
  136. package/src/utils/ChatGptCompletionMessageUtil.ts +210 -210
  137. package/src/utils/ChatGptCompletionStreamingUtil.spec.ts +909 -909
  138. package/src/utils/ChatGptCompletionStreamingUtil.ts +91 -91
  139. package/src/utils/ChatGptTokenUsageAggregator.spec.ts +226 -226
  140. package/src/utils/ChatGptTokenUsageAggregator.ts +57 -57
  141. package/src/utils/MPSC.spec.ts +276 -276
  142. package/src/utils/MPSC.ts +42 -42
  143. package/src/utils/Singleton.spec.ts +138 -138
  144. package/src/utils/Singleton.ts +42 -42
  145. package/src/utils/StreamUtil.spec.ts +512 -512
  146. package/src/utils/StreamUtil.ts +87 -87
  147. package/src/utils/__map_take.spec.ts +140 -140
  148. package/src/utils/__map_take.ts +13 -13
  149. package/src/utils/__retry.spec.ts +198 -198
  150. package/src/utils/__retry.ts +18 -18
  151. package/src/utils/assertExecuteFailure.ts +16 -16
  152. package/src/utils/index.ts +4 -4
  153. package/src/utils/request.ts +140 -140
  154. package/src/utils/types.ts +50 -50
@@ -1,60 +1,60 @@
1
- import type { OpenApiV3_2 } from "@typia/interface";
2
-
3
- /**
4
- * MCP tool type.
5
- *
6
- * `IMcpTool` is an interface representing a tool type defined in the MCP (Model
7
- * Context Protocol).
8
- *
9
- * Note that, don't be confused with {@link IMcpLlmFunction} type, that is used
10
- * for {@link McpLlm.application} which converts this `IMcpTool` type to the
11
- * {@link IMcpLlmFunction} type.
12
- *
13
- * @author Samchon
14
- * @warning Don't be confused with {@link IMcpLlmFunction}
15
- */
16
- export interface IMcpTool {
17
- /**
18
- * Name of the tool.
19
- *
20
- * @maxLength 64
21
- */
22
- name: string;
23
-
24
- /** Description of the tool. */
25
- description?: string | undefined;
26
-
27
- /**
28
- * Input schema of the tool.
29
- *
30
- * The input schema, parameters of the tool.
31
- *
32
- * As MCP (Model Context Protocol) does not restrict the JSON schema
33
- * specification, `@typia/interface` has defined it to be universal structure
34
- * {@link OpenApiV3_2.IJsonSchema} which can cover every JSON schema
35
- * specification.
36
- */
37
- inputSchema: IMcpTool.IParameters;
38
-
39
- outputSchema?: IMcpTool.IParameters | undefined;
40
- }
41
- export namespace IMcpTool {
42
-
43
- /**
44
- * Input and output schema of the tool.
45
- *
46
- * The input and output schemas, parameters of the tool.
47
- *
48
- * As MCP (Model Context Protocol) does not restrict the JSON schema
49
- * specification, `@typia/interface` has defined it to be universal structure
50
- * {@link OpenApiV3_2.IJsonSchema} which can cover every JSON schema
51
- * specification.
52
- */
53
- export type IParameters = (
54
- | OpenApiV3_2.IJsonSchema.IObject
55
- | OpenApiV3_2.IJsonSchema.IReference
56
- ) & {
57
- /** Collection of the named schemas. */
58
- $defs?: Record<string, OpenApiV3_2.IJsonSchema>;
59
- };
60
- }
1
+ import type { OpenApiV3_2 } from "@typia/interface";
2
+
3
+ /**
4
+ * MCP tool type.
5
+ *
6
+ * `IMcpTool` is an interface representing a tool type defined in the MCP (Model
7
+ * Context Protocol).
8
+ *
9
+ * Note that, don't be confused with {@link IMcpLlmFunction} type, that is used
10
+ * for {@link McpLlm.application} which converts this `IMcpTool` type to the
11
+ * {@link IMcpLlmFunction} type.
12
+ *
13
+ * @author Samchon
14
+ * @warning Don't be confused with {@link IMcpLlmFunction}
15
+ */
16
+ export interface IMcpTool {
17
+ /**
18
+ * Name of the tool.
19
+ *
20
+ * @maxLength 64
21
+ */
22
+ name: string;
23
+
24
+ /** Description of the tool. */
25
+ description?: string | undefined;
26
+
27
+ /**
28
+ * Input schema of the tool.
29
+ *
30
+ * The input schema, parameters of the tool.
31
+ *
32
+ * As MCP (Model Context Protocol) does not restrict the JSON schema
33
+ * specification, `@typia/interface` has defined it to be universal structure
34
+ * {@link OpenApiV3_2.IJsonSchema} which can cover every JSON schema
35
+ * specification.
36
+ */
37
+ inputSchema: IMcpTool.IParameters;
38
+
39
+ outputSchema?: IMcpTool.IParameters | undefined;
40
+ }
41
+ export namespace IMcpTool {
42
+
43
+ /**
44
+ * Input and output schema of the tool.
45
+ *
46
+ * The input and output schemas, parameters of the tool.
47
+ *
48
+ * As MCP (Model Context Protocol) does not restrict the JSON schema
49
+ * specification, `@typia/interface` has defined it to be universal structure
50
+ * {@link OpenApiV3_2.IJsonSchema} which can cover every JSON schema
51
+ * specification.
52
+ */
53
+ export type IParameters = (
54
+ | OpenApiV3_2.IJsonSchema.IObject
55
+ | OpenApiV3_2.IJsonSchema.IReference
56
+ ) & {
57
+ /** Collection of the named schemas. */
58
+ $defs?: Record<string, OpenApiV3_2.IJsonSchema>;
59
+ };
60
+ }
@@ -1,56 +1,56 @@
1
- import type { IAgenticaConfigBase } from "./IAgenticaConfigBase";
2
- import type { IMicroAgenticaExecutor } from "./IMicroAgenticaExecutor";
3
- import type { IMicroAgenticaSystemPrompt } from "./IMicroAgenticaSystemPrompt";
4
-
5
- /**
6
- * Configuration for Micro Agentic Agent.
7
- *
8
- * `INicroAgenticaConfig` is an interface that defines the configuration
9
- * properties of the {@link MicroAgentica}. With this configuration, you
10
- * can set the user's {@link locale}, {@link timezone}, and some of
11
- * {@link systemPrompt system prompts}.
12
- *
13
- * @author Samchon
14
- */
15
- export interface IMicroAgenticaConfig extends IAgenticaConfigBase {
16
- /**
17
- * Agent executor.
18
- *
19
- * Executor function of Agentic AI's iteration plan to internal agents
20
- * running by the {@link Agentica.conversate} function.
21
- *
22
- * If you want to customize the agent execution plan, you can do it
23
- * by assigning you logic function of entire or partial to this property.
24
- * When customizing it, it would better to reference the
25
- * {@link ChatGptAgent.execute} function.
26
- *
27
- * @param ctx Context of the agent
28
- * @returns Lit of prompts generated by the executor
29
- * @default ChatGptAgent.execute
30
- */
31
- executor?:
32
- | undefined
33
- | Partial<IMicroAgenticaExecutor>;
34
-
35
- /**
36
- * System prompt messages.
37
- *
38
- * System prompt messages if you want to customize the system prompt
39
- * messages for each situation.
40
- */
41
- systemPrompt?: IMicroAgenticaSystemPrompt;
42
-
43
- /**
44
- * Whether to throw an exception when execution fails.
45
- *
46
- * If you set this property to `true` or define nothing, the A.I. chatbot
47
- * will throw an exception when {@link AgenticaExecuteHistory.success} is
48
- * `false`.
49
- *
50
- * Otherwise, the execution failure will be handled silently without
51
- * throwing an exception.
52
- *
53
- * @default true
54
- */
55
- throw?: boolean;
56
- }
1
+ import type { IAgenticaConfigBase } from "./IAgenticaConfigBase";
2
+ import type { IMicroAgenticaExecutor } from "./IMicroAgenticaExecutor";
3
+ import type { IMicroAgenticaSystemPrompt } from "./IMicroAgenticaSystemPrompt";
4
+
5
+ /**
6
+ * Configuration for Micro Agentic Agent.
7
+ *
8
+ * `INicroAgenticaConfig` is an interface that defines the configuration
9
+ * properties of the {@link MicroAgentica}. With this configuration, you
10
+ * can set the user's {@link locale}, {@link timezone}, and some of
11
+ * {@link systemPrompt system prompts}.
12
+ *
13
+ * @author Samchon
14
+ */
15
+ export interface IMicroAgenticaConfig extends IAgenticaConfigBase {
16
+ /**
17
+ * Agent executor.
18
+ *
19
+ * Executor function of Agentic AI's iteration plan to internal agents
20
+ * running by the {@link Agentica.conversate} function.
21
+ *
22
+ * If you want to customize the agent execution plan, you can do it
23
+ * by assigning you logic function of entire or partial to this property.
24
+ * When customizing it, it would better to reference the
25
+ * {@link ChatGptAgent.execute} function.
26
+ *
27
+ * @param ctx Context of the agent
28
+ * @returns Lit of prompts generated by the executor
29
+ * @default ChatGptAgent.execute
30
+ */
31
+ executor?:
32
+ | undefined
33
+ | Partial<IMicroAgenticaExecutor>;
34
+
35
+ /**
36
+ * System prompt messages.
37
+ *
38
+ * System prompt messages if you want to customize the system prompt
39
+ * messages for each situation.
40
+ */
41
+ systemPrompt?: IMicroAgenticaSystemPrompt;
42
+
43
+ /**
44
+ * Whether to throw an exception when execution fails.
45
+ *
46
+ * If you set this property to `true` or define nothing, the A.I. chatbot
47
+ * will throw an exception when {@link AgenticaExecuteHistory.success} is
48
+ * `false`.
49
+ *
50
+ * Otherwise, the execution failure will be handled silently without
51
+ * throwing an exception.
52
+ *
53
+ * @default true
54
+ */
55
+ throw?: boolean;
56
+ }
@@ -1,67 +1,67 @@
1
- import type { MicroAgenticaContext } from "../context/MicroAgenticaContext";
2
- import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
3
-
4
- /**
5
- * Executor of the Micro Agentic AI.
6
- *
7
- * `IMicroAgenticaExecutor` represents an executor of the
8
- * {@link MicroAgentica}, composing its internal agents to accomplish
9
- * the Agentic AI through the LLM (Large Language Model) function
10
- * calling.
11
- *
12
- * You can customize one of these intnernal agents by configuring
13
- * properties of the `IMicroAgenticaExecutor` type, and assigning
14
- * it to the {@link IMicroAgenticaConfig.executor} property.
15
- *
16
- * @author Samchon
17
- */
18
- export interface IMicroAgenticaExecutor {
19
- /**
20
- * Function caller agent.
21
- *
22
- * `Call` agent performs the LLM (Large Language Model) function
23
- * calling from the candidate functions enrolled in the
24
- * {@link AgenticaContext.stack}. And the scope of function calling
25
- * is, not only just arguments filling, but also actual executing
26
- * the function and returning the result.
27
- *
28
- * By the way, conversation context with user can be not enough to
29
- * filling the arguments of the candidate functions. In that case,
30
- * the `call` agent will ask the user to fill the missing arguments.
31
- *
32
- * Otherwise the cpnversation context is enough, so that succeeded
33
- * to call some candidate functions, the `call` agent will step to
34
- * the {@link describe} agent to explain the result of the function
35
- * calling to the user as markdown content.
36
- *
37
- * @param ctx Context of the agent
38
- * @returns List of prompts generated by the caller
39
- * @warning Recommend not to customize, due to its validation
40
- * feedback strategy is working very well, and the `call`
41
- * agent is the most general topic which can be universally
42
- * applied to all domain fields.
43
- */
44
- call: (ctx: MicroAgenticaContext) => Promise<AgenticaExecuteHistory[]>;
45
-
46
- /**
47
- * Describer agent of the function calling result.
48
- *
49
- * `Describe` agent explains the results of the function callings
50
- * to the user as markdown content.
51
- *
52
- * If you configure this property as `false` or `null`, the describer
53
- * agent never be used.
54
- *
55
- * @param ctx Context of the agent
56
- * @param executes List of function calling results
57
- * @returns List of prompts generated by the describer
58
- * @default false
59
- */
60
- describe:
61
- | boolean
62
- | null
63
- | ((
64
- ctx: MicroAgenticaContext,
65
- executes: AgenticaExecuteHistory[],
66
- ) => Promise<void>);
67
- }
1
+ import type { MicroAgenticaContext } from "../context/MicroAgenticaContext";
2
+ import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
3
+
4
+ /**
5
+ * Executor of the Micro Agentic AI.
6
+ *
7
+ * `IMicroAgenticaExecutor` represents an executor of the
8
+ * {@link MicroAgentica}, composing its internal agents to accomplish
9
+ * the Agentic AI through the LLM (Large Language Model) function
10
+ * calling.
11
+ *
12
+ * You can customize one of these intnernal agents by configuring
13
+ * properties of the `IMicroAgenticaExecutor` type, and assigning
14
+ * it to the {@link IMicroAgenticaConfig.executor} property.
15
+ *
16
+ * @author Samchon
17
+ */
18
+ export interface IMicroAgenticaExecutor {
19
+ /**
20
+ * Function caller agent.
21
+ *
22
+ * `Call` agent performs the LLM (Large Language Model) function
23
+ * calling from the candidate functions enrolled in the
24
+ * {@link AgenticaContext.stack}. And the scope of function calling
25
+ * is, not only just arguments filling, but also actual executing
26
+ * the function and returning the result.
27
+ *
28
+ * By the way, conversation context with user can be not enough to
29
+ * filling the arguments of the candidate functions. In that case,
30
+ * the `call` agent will ask the user to fill the missing arguments.
31
+ *
32
+ * Otherwise the cpnversation context is enough, so that succeeded
33
+ * to call some candidate functions, the `call` agent will step to
34
+ * the {@link describe} agent to explain the result of the function
35
+ * calling to the user as markdown content.
36
+ *
37
+ * @param ctx Context of the agent
38
+ * @returns List of prompts generated by the caller
39
+ * @warning Recommend not to customize, due to its validation
40
+ * feedback strategy is working very well, and the `call`
41
+ * agent is the most general topic which can be universally
42
+ * applied to all domain fields.
43
+ */
44
+ call: (ctx: MicroAgenticaContext) => Promise<AgenticaExecuteHistory[]>;
45
+
46
+ /**
47
+ * Describer agent of the function calling result.
48
+ *
49
+ * `Describe` agent explains the results of the function callings
50
+ * to the user as markdown content.
51
+ *
52
+ * If you configure this property as `false` or `null`, the describer
53
+ * agent never be used.
54
+ *
55
+ * @param ctx Context of the agent
56
+ * @param executes List of function calling results
57
+ * @returns List of prompts generated by the describer
58
+ * @default false
59
+ */
60
+ describe:
61
+ | boolean
62
+ | null
63
+ | ((
64
+ ctx: MicroAgenticaContext,
65
+ executes: AgenticaExecuteHistory[],
66
+ ) => Promise<void>);
67
+ }
@@ -1,77 +1,77 @@
1
- import type { AgenticaTokenUsage } from "../context/AgenticaTokenUsage";
2
- import type { IAgenticaTokenUsageJson } from "../json/IAgenticaTokenUsageJson";
3
- import type { IMicroAgenticaHistoryJson } from "../json/IMicroAgenticaHistoryJson";
4
-
5
- import type { IAgenticaController } from "./IAgenticaController";
6
- import type { IAgenticaVendor } from "./IAgenticaVendor";
7
- import type { IMicroAgenticaConfig } from "./IMicroAgenticaConfig";
8
-
9
- /**
10
- * Properties of the Micro Agentica Agent.
11
- *
12
- * `IMicroAgenticaProps` is an interface that defines the properties
13
- * of the {@link MicroAgentica.constructor}. In the `IMicroAgenticaProps`,
14
- * there're everything to prepare to create a Micro A.I. chatbot
15
- * performing the LLM (Large Language Model) function calling.
16
- *
17
- * At first, you have to specify the LLM service {@link vendor} like
18
- * OpenAI with its API key and client API. And then, you have to define
19
- * the {@link controllers} serving the functions to call. The controllers
20
- * are separated by two protocols; HTTP API and TypeScript class. At last,
21
- * you can {@link config configure} the agent by setting the locale,
22
- * timezone, and some of system prompts.
23
- *
24
- * Additionally, if you want to start from the previous A.I. chatbot
25
- * session, you can accomplish it by assigning the previous prompt
26
- * histories to the {@link histories} property.
27
- *
28
- * @author Samchon
29
- */
30
- export interface IMicroAgenticaProps {
31
- /**
32
- * LLM service vendor.
33
- */
34
- vendor: IAgenticaVendor;
35
-
36
- /**
37
- * Controllers serving functions to call.
38
- */
39
- controllers: IAgenticaController[];
40
-
41
- /**
42
- * Configuration of agent.
43
- *
44
- * Configuration of A.I. chatbot agent including the user's locale,
45
- * timezone, and some of system prompts. Also, you can affect to the
46
- * LLM function selecting/calling logic by configuring additional
47
- * properties.
48
- *
49
- * If you don't configure this property, these values would be default.
50
- *
51
- * - `locale`: your system's locale and timezone
52
- * - `timezone`: your system's timezone
53
- * - `systemPrompt`: default prompts written in markdown
54
- * - https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts
55
- */
56
- config?: IMicroAgenticaConfig;
57
-
58
- /**
59
- * Prompt histories.
60
- *
61
- * If you're starting the conversation from an existing session,
62
- * assign the previouis prompt histories to this property.
63
- */
64
- histories?: IMicroAgenticaHistoryJson[];
65
-
66
- /**
67
- * Token usage information.
68
- *
69
- * You can start token usage tracing by assigning this property.
70
- *
71
- * If you assign {@link IAgenticaTokenUsageJson} value, the
72
- * token usage tracing would be from the value. Otherwise you
73
- * assign the {@link AgenticaTokenUsage} typed instance, the
74
- * tracing would be binded to the instance.
75
- */
76
- tokenUsage?: IAgenticaTokenUsageJson | AgenticaTokenUsage | undefined;
77
- }
1
+ import type { AgenticaTokenUsage } from "../context/AgenticaTokenUsage";
2
+ import type { IAgenticaTokenUsageJson } from "../json/IAgenticaTokenUsageJson";
3
+ import type { IMicroAgenticaHistoryJson } from "../json/IMicroAgenticaHistoryJson";
4
+
5
+ import type { IAgenticaController } from "./IAgenticaController";
6
+ import type { IAgenticaVendor } from "./IAgenticaVendor";
7
+ import type { IMicroAgenticaConfig } from "./IMicroAgenticaConfig";
8
+
9
+ /**
10
+ * Properties of the Micro Agentica Agent.
11
+ *
12
+ * `IMicroAgenticaProps` is an interface that defines the properties
13
+ * of the {@link MicroAgentica.constructor}. In the `IMicroAgenticaProps`,
14
+ * there're everything to prepare to create a Micro A.I. chatbot
15
+ * performing the LLM (Large Language Model) function calling.
16
+ *
17
+ * At first, you have to specify the LLM service {@link vendor} like
18
+ * OpenAI with its API key and client API. And then, you have to define
19
+ * the {@link controllers} serving the functions to call. The controllers
20
+ * are separated by two protocols; HTTP API and TypeScript class. At last,
21
+ * you can {@link config configure} the agent by setting the locale,
22
+ * timezone, and some of system prompts.
23
+ *
24
+ * Additionally, if you want to start from the previous A.I. chatbot
25
+ * session, you can accomplish it by assigning the previous prompt
26
+ * histories to the {@link histories} property.
27
+ *
28
+ * @author Samchon
29
+ */
30
+ export interface IMicroAgenticaProps {
31
+ /**
32
+ * LLM service vendor.
33
+ */
34
+ vendor: IAgenticaVendor;
35
+
36
+ /**
37
+ * Controllers serving functions to call.
38
+ */
39
+ controllers: IAgenticaController[];
40
+
41
+ /**
42
+ * Configuration of agent.
43
+ *
44
+ * Configuration of A.I. chatbot agent including the user's locale,
45
+ * timezone, and some of system prompts. Also, you can affect to the
46
+ * LLM function selecting/calling logic by configuring additional
47
+ * properties.
48
+ *
49
+ * If you don't configure this property, these values would be default.
50
+ *
51
+ * - `locale`: your system's locale and timezone
52
+ * - `timezone`: your system's timezone
53
+ * - `systemPrompt`: default prompts written in markdown
54
+ * - https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts
55
+ */
56
+ config?: IMicroAgenticaConfig;
57
+
58
+ /**
59
+ * Prompt histories.
60
+ *
61
+ * If you're starting the conversation from an existing session,
62
+ * assign the previouis prompt histories to this property.
63
+ */
64
+ histories?: IMicroAgenticaHistoryJson[];
65
+
66
+ /**
67
+ * Token usage information.
68
+ *
69
+ * You can start token usage tracing by assigning this property.
70
+ *
71
+ * If you assign {@link IAgenticaTokenUsageJson} value, the
72
+ * token usage tracing would be from the value. Otherwise you
73
+ * assign the {@link AgenticaTokenUsage} typed instance, the
74
+ * tracing would be binded to the instance.
75
+ */
76
+ tokenUsage?: IAgenticaTokenUsageJson | AgenticaTokenUsage | undefined;
77
+ }