@agentica/core 0.15.6 → 0.16.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.
- package/lib/Agentica.d.ts +21 -21
- package/lib/Agentica.js +27 -27
- package/lib/Agentica.js.map +1 -1
- package/lib/MicroAgentica.d.ts +115 -0
- package/lib/MicroAgentica.js +279 -0
- package/lib/MicroAgentica.js.map +1 -0
- package/lib/constants/AgenticaDefaultPrompt.d.ts +2 -1
- package/lib/constants/AgenticaDefaultPrompt.js +7 -5
- package/lib/constants/AgenticaDefaultPrompt.js.map +1 -1
- package/lib/context/AgenticaCancelPrompt.d.ts +3 -3
- package/lib/context/AgenticaContext.d.ts +12 -12
- package/lib/context/AgenticaOperationCollection.d.ts +1 -1
- package/lib/context/MicroAgenticaContext.d.ts +75 -0
- package/lib/{prompts/AgenticaCancelPrompt.js → context/MicroAgenticaContext.js} +1 -1
- package/lib/context/MicroAgenticaContext.js.map +1 -0
- package/lib/context/internal/AgenticaOperationComposer.d.ts +2 -1
- package/lib/context/internal/AgenticaOperationComposer.js +3 -2
- package/lib/context/internal/AgenticaOperationComposer.js.map +1 -1
- package/lib/context/internal/isAgenticaContext.d.ts +1 -0
- package/lib/context/internal/isAgenticaContext.js +10 -0
- package/lib/context/internal/isAgenticaContext.js.map +1 -0
- package/lib/events/AgenticaDescribeEvent.d.ts +4 -4
- package/lib/events/AgenticaEvent.d.ts +1 -0
- package/lib/events/AgenticaExecuteEvent.d.ts +5 -5
- package/lib/events/AgenticaSelectEvent.d.ts +2 -2
- package/lib/events/AgenticaTextEvent.d.ts +2 -2
- package/lib/events/MicroAgenticaEvent.d.ts +32 -0
- package/lib/{prompts/AgenticaTextPrompt.js → events/MicroAgenticaEvent.js} +1 -1
- package/lib/events/MicroAgenticaEvent.js.map +1 -0
- package/lib/factory/events.d.ts +2 -2
- package/lib/factory/events.js +5 -5
- package/lib/factory/events.js.map +1 -1
- package/lib/factory/histories.d.ts +33 -0
- package/lib/factory/{prompts.js → histories.js} +13 -13
- package/lib/factory/histories.js.map +1 -0
- package/lib/factory/index.d.ts +1 -1
- package/lib/factory/index.js +1 -1
- package/lib/factory/index.js.map +1 -1
- package/lib/functional/assertHttpLlmApplication.js +577 -387
- package/lib/functional/assertHttpLlmApplication.js.map +1 -1
- package/lib/functional/validateHttpLlmApplication.js +500 -348
- package/lib/functional/validateHttpLlmApplication.js.map +1 -1
- package/lib/histories/AgenticaCancelHistory.d.ts +8 -0
- package/lib/{prompts/AgenticaExecutePrompt.js → histories/AgenticaCancelHistory.js} +1 -1
- package/lib/histories/AgenticaCancelHistory.js.map +1 -0
- package/lib/histories/AgenticaDescribeHistory.d.ts +16 -0
- package/lib/histories/AgenticaDescribeHistory.js +3 -0
- package/lib/histories/AgenticaDescribeHistory.js.map +1 -0
- package/lib/{prompts/AgenticaExecutePrompt.d.ts → histories/AgenticaExecuteHistory.d.ts} +5 -5
- package/lib/{prompts/AgenticaDescribePrompt.js → histories/AgenticaExecuteHistory.js} +1 -1
- package/lib/histories/AgenticaExecuteHistory.js.map +1 -0
- package/lib/histories/AgenticaHistory.d.ts +17 -0
- package/lib/{prompts/AgenticaPrompt.js → histories/AgenticaHistory.js} +1 -1
- package/lib/histories/AgenticaHistory.js.map +1 -0
- package/lib/{prompts/AgenticaPromptBase.d.ts → histories/AgenticaHistoryBase.d.ts} +4 -4
- package/lib/{json/IAgenticaPromptJson.js → histories/AgenticaHistoryBase.js} +1 -1
- package/lib/histories/AgenticaHistoryBase.js.map +1 -0
- package/lib/histories/AgenticaSelectHistory.d.ts +8 -0
- package/lib/histories/AgenticaSelectHistory.js +3 -0
- package/lib/histories/AgenticaSelectHistory.js.map +1 -0
- package/lib/histories/AgenticaTextHistory.d.ts +6 -0
- package/lib/{prompts/AgenticaPromptBase.js → histories/AgenticaTextHistory.js} +1 -1
- package/lib/histories/AgenticaTextHistory.js.map +1 -0
- package/lib/histories/MicroAgenticaHistory.d.ts +13 -0
- package/lib/histories/MicroAgenticaHistory.js +3 -0
- package/lib/histories/MicroAgenticaHistory.js.map +1 -0
- package/lib/index.d.ts +12 -7
- package/lib/index.js +12 -7
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +1393 -902
- package/lib/index.mjs.map +1 -1
- package/lib/json/IAgenticaEventJson.d.ts +6 -5
- package/lib/json/{IAgenticaPromptJson.d.ts → IAgenticaHistoryJson.d.ts} +8 -8
- package/lib/json/IAgenticaHistoryJson.js +3 -0
- package/lib/json/IAgenticaHistoryJson.js.map +1 -0
- package/lib/json/IAgenticaOperationSelectionJson.d.ts +7 -1
- package/lib/json/IMicroAgenticaEventJson.d.ts +13 -0
- package/lib/json/IMicroAgenticaEventJson.js +3 -0
- package/lib/json/IMicroAgenticaEventJson.js.map +1 -0
- package/lib/json/IMicroAgenticaHistoryJson.d.ts +19 -0
- package/lib/json/IMicroAgenticaHistoryJson.js +3 -0
- package/lib/json/IMicroAgenticaHistoryJson.js.map +1 -0
- package/lib/orchestrate/call.d.ts +4 -2
- package/lib/orchestrate/call.js +50 -41
- package/lib/orchestrate/call.js.map +1 -1
- package/lib/orchestrate/cancel.js +4 -4
- package/lib/orchestrate/cancel.js.map +1 -1
- package/lib/orchestrate/describe.d.ts +4 -3
- package/lib/orchestrate/describe.js +3 -3
- package/lib/orchestrate/describe.js.map +1 -1
- package/lib/orchestrate/execute.d.ts +2 -2
- package/lib/orchestrate/execute.js +1 -1
- package/lib/orchestrate/execute.js.map +1 -1
- package/lib/orchestrate/initialize.d.ts +2 -2
- package/lib/orchestrate/initialize.js +3 -3
- package/lib/orchestrate/initialize.js.map +1 -1
- package/lib/orchestrate/internal/selectFunction.d.ts +1 -5
- package/lib/orchestrate/internal/selectFunction.js +3 -0
- package/lib/orchestrate/internal/selectFunction.js.map +1 -1
- package/lib/orchestrate/select.d.ts +2 -2
- package/lib/orchestrate/select.js +5 -5
- package/lib/orchestrate/select.js.map +1 -1
- package/lib/structures/IAgenticaConfig.d.ts +6 -5
- package/lib/structures/IAgenticaController.d.ts +1 -1
- package/lib/structures/IAgenticaExecutor.d.ts +11 -9
- package/lib/structures/IAgenticaProps.d.ts +3 -3
- package/lib/structures/IAgenticaSystemPrompt.d.ts +13 -13
- package/lib/structures/IAgenticaVendor.d.ts +1 -1
- package/lib/structures/IMicroAgenticaConfig.d.ts +74 -0
- package/lib/structures/IMicroAgenticaConfig.js +3 -0
- package/lib/structures/IMicroAgenticaConfig.js.map +1 -0
- package/lib/structures/IMicroAgenticaExecutor.d.ts +57 -0
- package/lib/structures/IMicroAgenticaExecutor.js +3 -0
- package/lib/structures/IMicroAgenticaExecutor.js.map +1 -0
- package/lib/structures/IMicroAgenticaProps.d.ts +63 -0
- package/lib/structures/IMicroAgenticaProps.js +3 -0
- package/lib/structures/IMicroAgenticaProps.js.map +1 -0
- package/lib/structures/IMicroAgenticaSystemPrompt.d.ts +66 -0
- package/lib/structures/IMicroAgenticaSystemPrompt.js +3 -0
- package/lib/structures/IMicroAgenticaSystemPrompt.js.map +1 -0
- package/lib/transformers/AgenticaPromptTransformer.d.ts +19 -19
- package/lib/transformers/AgenticaPromptTransformer.js +27 -27
- package/lib/transformers/AgenticaPromptTransformer.js.map +1 -1
- package/package.json +7 -7
- package/src/Agentica.ts +34 -34
- package/src/MicroAgentica.ts +337 -0
- package/src/constants/AgenticaDefaultPrompt.ts +7 -3
- package/src/context/AgenticaCancelPrompt.ts +3 -3
- package/src/context/AgenticaContext.ts +12 -12
- package/src/context/AgenticaOperationCollection.ts +1 -1
- package/src/context/MicroAgenticaContext.ts +95 -0
- package/src/context/internal/AgenticaOperationComposer.ts +6 -3
- package/src/context/internal/isAgenticaContext.ts +13 -0
- package/src/events/AgenticaDescribeEvent.ts +4 -4
- package/src/events/AgenticaEvent.ts +6 -0
- package/src/events/AgenticaExecuteEvent.ts +5 -5
- package/src/events/AgenticaSelectEvent.ts +2 -2
- package/src/events/AgenticaTextEvent.ts +2 -2
- package/src/events/MicroAgenticaEvent.ts +41 -0
- package/src/factory/events.ts +8 -8
- package/src/factory/{prompts.ts → histories.ts} +18 -18
- package/src/factory/index.ts +1 -1
- package/src/histories/AgenticaCancelHistory.ts +13 -0
- package/src/histories/AgenticaDescribeHistory.ts +22 -0
- package/src/{prompts/AgenticaExecutePrompt.ts → histories/AgenticaExecuteHistory.ts} +7 -7
- package/src/histories/AgenticaHistory.ts +25 -0
- package/src/{prompts/AgenticaPromptBase.ts → histories/AgenticaHistoryBase.ts} +4 -4
- package/src/histories/AgenticaSelectHistory.ts +13 -0
- package/src/histories/AgenticaTextHistory.ts +10 -0
- package/src/histories/MicroAgenticaHistory.ts +18 -0
- package/src/index.ts +18 -15
- package/src/json/IAgenticaEventJson.ts +6 -5
- package/src/json/{IAgenticaPromptJson.ts → IAgenticaHistoryJson.ts} +13 -13
- package/src/json/IAgenticaOperationSelectionJson.ts +8 -1
- package/src/json/IMicroAgenticaEventJson.ts +21 -0
- package/src/json/IMicroAgenticaHistoryJson.ts +23 -0
- package/src/orchestrate/call.ts +83 -59
- package/src/orchestrate/cancel.ts +4 -4
- package/src/orchestrate/describe.ts +11 -7
- package/src/orchestrate/execute.ts +7 -7
- package/src/orchestrate/initialize.ts +6 -6
- package/src/orchestrate/internal/selectFunction.ts +3 -0
- package/src/orchestrate/select.ts +13 -13
- package/src/structures/IAgenticaConfig.ts +6 -5
- package/src/structures/IAgenticaController.ts +1 -1
- package/src/structures/IAgenticaExecutor.ts +12 -10
- package/src/structures/IAgenticaProps.ts +3 -3
- package/src/structures/IAgenticaSystemPrompt.ts +13 -13
- package/src/structures/IAgenticaVendor.ts +1 -1
- package/src/structures/IMicroAgenticaConfig.ts +82 -0
- package/src/structures/IMicroAgenticaExecutor.ts +63 -0
- package/src/structures/IMicroAgenticaProps.ts +70 -0
- package/src/structures/IMicroAgenticaSystemPrompt.ts +71 -0
- package/src/transformers/AgenticaPromptTransformer.ts +46 -46
- package/lib/factory/prompts.d.ts +0 -33
- package/lib/factory/prompts.js.map +0 -1
- package/lib/json/IAgenticaPromptJson.js.map +0 -1
- package/lib/prompts/AgenticaCancelPrompt.d.ts +0 -8
- package/lib/prompts/AgenticaCancelPrompt.js.map +0 -1
- package/lib/prompts/AgenticaDescribePrompt.d.ts +0 -16
- package/lib/prompts/AgenticaDescribePrompt.js.map +0 -1
- package/lib/prompts/AgenticaExecutePrompt.js.map +0 -1
- package/lib/prompts/AgenticaPrompt.d.ts +0 -17
- package/lib/prompts/AgenticaPrompt.js.map +0 -1
- package/lib/prompts/AgenticaPromptBase.js.map +0 -1
- package/lib/prompts/AgenticaSelectPrompt.d.ts +0 -8
- package/lib/prompts/AgenticaSelectPrompt.js +0 -3
- package/lib/prompts/AgenticaSelectPrompt.js.map +0 -1
- package/lib/prompts/AgenticaTextPrompt.d.ts +0 -6
- package/lib/prompts/AgenticaTextPrompt.js.map +0 -1
- package/src/prompts/AgenticaCancelPrompt.ts +0 -13
- package/src/prompts/AgenticaDescribePrompt.ts +0 -22
- package/src/prompts/AgenticaPrompt.ts +0 -25
- package/src/prompts/AgenticaSelectPrompt.ts +0 -13
- package/src/prompts/AgenticaTextPrompt.ts +0 -10
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
2
|
|
|
3
3
|
import type { AgenticaContext } from "../context/AgenticaContext";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
4
|
+
import type { AgenticaOperation } from "../context/AgenticaOperation";
|
|
5
|
+
import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
|
|
6
|
+
import type { AgenticaHistory } from "../histories/AgenticaHistory";
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Executor of the Agentic AI.
|
|
@@ -23,8 +24,8 @@ import type { AgenticaPrompt } from "../prompts/AgenticaPrompt";
|
|
|
23
24
|
* the executor logic, it can entirely break the {@link Agentica}'s
|
|
24
25
|
* operation.
|
|
25
26
|
*
|
|
26
|
-
* @reference https://
|
|
27
|
-
* @reference https://github.com/wrtnlabs/agentica/blob/main/packages/
|
|
27
|
+
* @reference https://wrtnlabs.io/agentica/docs/concepts/function-calling/#orchestration-strategy
|
|
28
|
+
* @reference https://github.com/wrtnlabs/agentica/blob/main/packages/core/src/orchestrate/execute.ts
|
|
28
29
|
* @author Samchon
|
|
29
30
|
*/
|
|
30
31
|
export interface IAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
@@ -58,7 +59,7 @@ export interface IAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
|
58
59
|
*/
|
|
59
60
|
initialize:
|
|
60
61
|
| null
|
|
61
|
-
| ((ctx: AgenticaContext<Model>) => Promise<
|
|
62
|
+
| ((ctx: AgenticaContext<Model>) => Promise<AgenticaHistory<Model>[]>);
|
|
62
63
|
|
|
63
64
|
/**
|
|
64
65
|
* Function selector agent.
|
|
@@ -87,7 +88,7 @@ export interface IAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
|
87
88
|
* @param ctx Context of the agent
|
|
88
89
|
* @returns List of prompts generated by the selector
|
|
89
90
|
*/
|
|
90
|
-
select: (ctx: AgenticaContext<Model>) => Promise<
|
|
91
|
+
select: (ctx: AgenticaContext<Model>) => Promise<AgenticaHistory<Model>[]>;
|
|
91
92
|
|
|
92
93
|
/**
|
|
93
94
|
* Function caller agent.
|
|
@@ -108,13 +109,14 @@ export interface IAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
|
108
109
|
* calling to the user as markdown content.
|
|
109
110
|
*
|
|
110
111
|
* @param ctx Context of the agent
|
|
112
|
+
* @param operation Lit of candidate operations to call
|
|
111
113
|
* @returns List of prompts generated by the caller
|
|
112
114
|
* @warning Recommend not to customize, due to its validation
|
|
113
115
|
* feedback strategy is working very well, and the `call`
|
|
114
116
|
* agent is the most general topic which can be universally
|
|
115
117
|
* applied to all domain fields.
|
|
116
118
|
*/
|
|
117
|
-
call: (ctx: AgenticaContext<Model>) => Promise<
|
|
119
|
+
call: (ctx: AgenticaContext<Model>, operations: AgenticaOperation<Model>[]) => Promise<AgenticaHistory<Model>[]>;
|
|
118
120
|
|
|
119
121
|
/**
|
|
120
122
|
* Describer agent of the function calling result.
|
|
@@ -128,8 +130,8 @@ export interface IAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
|
128
130
|
*/
|
|
129
131
|
describe: (
|
|
130
132
|
ctx: AgenticaContext<Model>,
|
|
131
|
-
executes:
|
|
132
|
-
) => Promise<
|
|
133
|
+
executes: AgenticaExecuteHistory<Model>[],
|
|
134
|
+
) => Promise<AgenticaHistory<Model>[]>;
|
|
133
135
|
|
|
134
136
|
/**
|
|
135
137
|
* Function canceler agent.
|
|
@@ -153,5 +155,5 @@ export interface IAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
|
153
155
|
* @param ctx Context of the agent
|
|
154
156
|
* @returns List of prompts generated by the canceler
|
|
155
157
|
*/
|
|
156
|
-
cancel: (ctx: AgenticaContext<Model>) => Promise<
|
|
158
|
+
cancel: (ctx: AgenticaContext<Model>) => Promise<AgenticaHistory<Model>[]>;
|
|
157
159
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { IAgenticaHistoryJson } from "../json/IAgenticaHistoryJson";
|
|
4
4
|
|
|
5
5
|
import type { IAgenticaConfig } from "./IAgenticaConfig";
|
|
6
6
|
import type { IAgenticaController } from "./IAgenticaController";
|
|
7
7
|
import type { IAgenticaVendor } from "./IAgenticaVendor";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* Properties of the
|
|
10
|
+
* Properties of the Agentica Agent.
|
|
11
11
|
*
|
|
12
12
|
* `IAgenticaProps` is an interface that defines the properties
|
|
13
13
|
* of the {@link Agentica.constructor}. In the `IAgenticaProps`,
|
|
@@ -66,5 +66,5 @@ export interface IAgenticaProps<Model extends ILlmSchema.Model> {
|
|
|
66
66
|
* If you're starting the conversation from an existing session,
|
|
67
67
|
* assign the previouis prompt histories to this property.
|
|
68
68
|
*/
|
|
69
|
-
histories?:
|
|
69
|
+
histories?: IAgenticaHistoryJson[];
|
|
70
70
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
2
|
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
3
|
+
import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
|
|
4
|
+
import type { AgenticaHistory } from "../histories/AgenticaHistory";
|
|
5
5
|
|
|
6
6
|
import type { IAgenticaConfig } from "./IAgenticaConfig";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
-
* System prompt collection of the
|
|
9
|
+
* System prompt collection of the Agentic AI.
|
|
10
10
|
*
|
|
11
11
|
* `IAgenticaSystemPrompt` is a type represents a collection of system
|
|
12
12
|
* prompts that would be used by the A.I. chatbot of {@link Agentica}.
|
|
@@ -43,13 +43,13 @@ export interface IAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
|
43
43
|
*
|
|
44
44
|
* In that case, the `initialize` system prompt would be used. You can
|
|
45
45
|
* customize the `initialize` system prompt by assigning this function
|
|
46
|
-
* with the given {@link
|
|
46
|
+
* with the given {@link AgenticaHistory histories} parameter.
|
|
47
47
|
*
|
|
48
48
|
* @param histories Histories of the previous prompts
|
|
49
49
|
* @returns initialize system prompt
|
|
50
50
|
* @default https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/initialize.md
|
|
51
51
|
*/
|
|
52
|
-
initialize?: (histories:
|
|
52
|
+
initialize?: (histories: AgenticaHistory<Model>[]) => string;
|
|
53
53
|
|
|
54
54
|
/**
|
|
55
55
|
* Select system prompt.
|
|
@@ -60,7 +60,7 @@ export interface IAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
|
60
60
|
*
|
|
61
61
|
* In that case, this `select` system prompt would be used. You can
|
|
62
62
|
* customize it by assigning this function with the given
|
|
63
|
-
* {@link
|
|
63
|
+
* {@link AgenticaHistory histories} parameter.
|
|
64
64
|
*
|
|
65
65
|
* Note that, the `"select"` means only the function selection. It does
|
|
66
66
|
* not contain the filling argument or executing the function. It
|
|
@@ -70,7 +70,7 @@ export interface IAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
|
70
70
|
* @returns select system promopt
|
|
71
71
|
* @default https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/select.md
|
|
72
72
|
*/
|
|
73
|
-
select?: (histories:
|
|
73
|
+
select?: (histories: AgenticaHistory<Model>[]) => string;
|
|
74
74
|
|
|
75
75
|
/**
|
|
76
76
|
* Cancel system prompt.
|
|
@@ -81,13 +81,13 @@ export interface IAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
|
81
81
|
*
|
|
82
82
|
* In that case, this `cancel` system prompt would be used. You can
|
|
83
83
|
* customize it by assigning this function with the given
|
|
84
|
-
* {@link
|
|
84
|
+
* {@link AgenticaHistory histories} parameter.
|
|
85
85
|
*
|
|
86
86
|
* @param histories Histories of the previous prompts
|
|
87
87
|
* @returns cancel system prompt
|
|
88
88
|
* @default https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/cancel.md
|
|
89
89
|
*/
|
|
90
|
-
cancel?: (histories:
|
|
90
|
+
cancel?: (histories: AgenticaHistory<Model>[]) => string;
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* Execute system prompt.
|
|
@@ -99,13 +99,13 @@ export interface IAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
|
99
99
|
*
|
|
100
100
|
* In that case, this `execute` system prompt would be used. You can
|
|
101
101
|
* customize it by assigning this function with the given
|
|
102
|
-
* {@link
|
|
102
|
+
* {@link AgenticaHistory histories} parameter.
|
|
103
103
|
*
|
|
104
104
|
* @param histories Histories of the previous prompts
|
|
105
105
|
* @returns execute system prompt
|
|
106
106
|
* https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/execute.md
|
|
107
107
|
*/
|
|
108
|
-
execute?: (histories:
|
|
108
|
+
execute?: (histories: AgenticaHistory<Model>[]) => string;
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
111
|
* Describe system prompt.
|
|
@@ -116,11 +116,11 @@ export interface IAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
|
116
116
|
*
|
|
117
117
|
* In that case, this `describe` system prompt would be used. You can
|
|
118
118
|
* customize it by assigning this function with the given
|
|
119
|
-
* {@link
|
|
119
|
+
* {@link AgenticaHistory histories} parameter.
|
|
120
120
|
*
|
|
121
121
|
* @param histories Histories of the previous prompts
|
|
122
122
|
* @returns describe system prompt
|
|
123
123
|
* @default https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/describe.md
|
|
124
124
|
*/
|
|
125
|
-
describe?: (histories:
|
|
125
|
+
describe?: (histories: AgenticaExecuteHistory<Model>[]) => string;
|
|
126
126
|
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
|
+
|
|
3
|
+
import type { IMicroAgenticaExecutor } from "./IMicroAgenticaExecutor";
|
|
4
|
+
import type { IMicroAgenticaSystemPrompt } from "./IMicroAgenticaSystemPrompt";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Configuration for Micro Agentic Agent.
|
|
8
|
+
*
|
|
9
|
+
* `INicroAgenticaConfig` is an interface that defines the configuration
|
|
10
|
+
* properties of the {@link MicroAgentica}. With this configuration, you
|
|
11
|
+
* can set the user's {@link locale}, {@link timezone}, and some of
|
|
12
|
+
* {@link systemPrompt system prompts}.
|
|
13
|
+
*
|
|
14
|
+
* @author Samchon
|
|
15
|
+
*/
|
|
16
|
+
export interface IMicroAgenticaConfig<Model extends ILlmSchema.Model> {
|
|
17
|
+
/**
|
|
18
|
+
* Agent executor.
|
|
19
|
+
*
|
|
20
|
+
* Executor function of Agentic AI's iteration plan to internal agents
|
|
21
|
+
* running by the {@link Agentica.conversate} function.
|
|
22
|
+
*
|
|
23
|
+
* If you want to customize the agent execution plan, you can do it
|
|
24
|
+
* by assigning you logic function of entire or partial to this property.
|
|
25
|
+
* When customizing it, it would better to reference the
|
|
26
|
+
* {@link ChatGptAgent.execute} function.
|
|
27
|
+
*
|
|
28
|
+
* @param ctx Context of the agent
|
|
29
|
+
* @returns Lit of prompts generated by the executor
|
|
30
|
+
* @default ChatGptAgent.execute
|
|
31
|
+
*/
|
|
32
|
+
executor?:
|
|
33
|
+
| undefined
|
|
34
|
+
| Partial<IMicroAgenticaExecutor<Model>>;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* System prompt messages.
|
|
38
|
+
*
|
|
39
|
+
* System prompt messages if you want to customize the system prompt
|
|
40
|
+
* messages for each situation.
|
|
41
|
+
*/
|
|
42
|
+
systemPrompt?: IMicroAgenticaSystemPrompt<Model>;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Locale of the A.I. chatbot.
|
|
46
|
+
*
|
|
47
|
+
* If you configure this property, the A.I. chatbot will conversate with
|
|
48
|
+
* the given locale. You can get the locale value by
|
|
49
|
+
*
|
|
50
|
+
* - Browser: `navigator.language`
|
|
51
|
+
* - NodeJS: `process.env.LANG.split(".")[0]`
|
|
52
|
+
*
|
|
53
|
+
* @default your_locale
|
|
54
|
+
*/
|
|
55
|
+
locale?: string;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Timezone of the A.I. chatbot.
|
|
59
|
+
*
|
|
60
|
+
* If you configure this property, the A.I. chatbot will consider the
|
|
61
|
+
* given timezone. You can get the timezone value by
|
|
62
|
+
* `Intl.DateTimeFormat().resolvedOptions().timeZone`.
|
|
63
|
+
*
|
|
64
|
+
* @default your_timezone
|
|
65
|
+
*/
|
|
66
|
+
timezone?: string;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Retry count.
|
|
70
|
+
*
|
|
71
|
+
* If LLM function calling composed arguments are invalid,
|
|
72
|
+
* the A.I. chatbot will retry to call the function with
|
|
73
|
+
* the modified arguments.
|
|
74
|
+
*
|
|
75
|
+
* By the way, if you configure it to 0 or 1, the A.I. chatbot
|
|
76
|
+
* will not retry the LLM function calling for correcting the
|
|
77
|
+
* arguments.
|
|
78
|
+
*
|
|
79
|
+
* @default 3
|
|
80
|
+
*/
|
|
81
|
+
retry?: number;
|
|
82
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
|
+
|
|
3
|
+
import type { MicroAgenticaContext } from "../context/MicroAgenticaContext";
|
|
4
|
+
import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
|
|
5
|
+
import type { MicroAgenticaHistory } from "../histories/MicroAgenticaHistory";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Executor of the Micro Agentic AI.
|
|
9
|
+
*
|
|
10
|
+
* `IMicroAgenticaExecutor` represents an executor of the
|
|
11
|
+
* {@link MicroAgentica}, composing its internal agents to accomplish
|
|
12
|
+
* the Agentic AI through the LLM (Large Language Model) function
|
|
13
|
+
* calling.
|
|
14
|
+
*
|
|
15
|
+
* You can customize one of these intnernal agents by configuring
|
|
16
|
+
* properties of the `IMicroAgenticaExecutor` type, and assigning
|
|
17
|
+
* it to the {@link IMicroAgenticaConfig.executor} property.
|
|
18
|
+
*
|
|
19
|
+
* @author Samchon
|
|
20
|
+
*/
|
|
21
|
+
export interface IMicroAgenticaExecutor<Model extends ILlmSchema.Model> {
|
|
22
|
+
/**
|
|
23
|
+
* Function caller agent.
|
|
24
|
+
*
|
|
25
|
+
* `Call` agent performs the LLM (Large Language Model) function
|
|
26
|
+
* calling from the candidate functions enrolled in the
|
|
27
|
+
* {@link AgenticaContext.stack}. And the scope of function calling
|
|
28
|
+
* is, not only just arguments filling, but also actual executing
|
|
29
|
+
* the function and returning the result.
|
|
30
|
+
*
|
|
31
|
+
* By the way, conversation context with user can be not enough to
|
|
32
|
+
* filling the arguments of the candidate functions. In that case,
|
|
33
|
+
* the `call` agent will ask the user to fill the missing arguments.
|
|
34
|
+
*
|
|
35
|
+
* Otherwise the cpnversation context is enough, so that succeeded
|
|
36
|
+
* to call some candidate functions, the `call` agent will step to
|
|
37
|
+
* the {@link describe} agent to explain the result of the function
|
|
38
|
+
* calling to the user as markdown content.
|
|
39
|
+
*
|
|
40
|
+
* @param ctx Context of the agent
|
|
41
|
+
* @returns List of prompts generated by the caller
|
|
42
|
+
* @warning Recommend not to customize, due to its validation
|
|
43
|
+
* feedback strategy is working very well, and the `call`
|
|
44
|
+
* agent is the most general topic which can be universally
|
|
45
|
+
* applied to all domain fields.
|
|
46
|
+
*/
|
|
47
|
+
call: (ctx: MicroAgenticaContext<Model>) => Promise<MicroAgenticaHistory<Model>[]>;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Describer agent of the function calling result.
|
|
51
|
+
*
|
|
52
|
+
* `Describe` agent explains the results of the function callings
|
|
53
|
+
* to the user as markdown content.
|
|
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
|
+
*/
|
|
59
|
+
describe: (
|
|
60
|
+
ctx: MicroAgenticaContext<Model>,
|
|
61
|
+
executes: AgenticaExecuteHistory<Model>[],
|
|
62
|
+
) => Promise<MicroAgenticaHistory<Model>[]>;
|
|
63
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
|
+
|
|
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<Model extends ILlmSchema.Model> {
|
|
31
|
+
/**
|
|
32
|
+
* LLM schema model.
|
|
33
|
+
*/
|
|
34
|
+
model: Model;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* LLM service vendor.
|
|
38
|
+
*/
|
|
39
|
+
vendor: IAgenticaVendor;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Controllers serving functions to call.
|
|
43
|
+
*/
|
|
44
|
+
controllers: IAgenticaController<Model>[];
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Configuration of agent.
|
|
48
|
+
*
|
|
49
|
+
* Configuration of A.I. chatbot agent including the user's locale,
|
|
50
|
+
* timezone, and some of system prompts. Also, you can affect to the
|
|
51
|
+
* LLM function selecting/calling logic by configuring additional
|
|
52
|
+
* properties.
|
|
53
|
+
*
|
|
54
|
+
* If you don't configure this property, these values would be default.
|
|
55
|
+
*
|
|
56
|
+
* - `locale`: your system's locale and timezone
|
|
57
|
+
* - `timezone`: your system's timezone
|
|
58
|
+
* - `systemPrompt`: default prompts written in markdown
|
|
59
|
+
* - https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts
|
|
60
|
+
*/
|
|
61
|
+
config?: IMicroAgenticaConfig<Model>;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Prompt histories.
|
|
65
|
+
*
|
|
66
|
+
* If you're starting the conversation from an existing session,
|
|
67
|
+
* assign the previouis prompt histories to this property.
|
|
68
|
+
*/
|
|
69
|
+
histories?: IMicroAgenticaHistoryJson[];
|
|
70
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
|
+
|
|
3
|
+
import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
|
|
4
|
+
import type { MicroAgenticaHistory } from "../histories/MicroAgenticaHistory";
|
|
5
|
+
|
|
6
|
+
import type { IMicroAgenticaConfig } from "./IMicroAgenticaConfig";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* System prompt collection of the Micro Agentic AI.
|
|
10
|
+
*
|
|
11
|
+
* `IMicroAgenticaSystemPrompt` is a type represents a collection of
|
|
12
|
+
* system prompts that would be used by the A.I. chatbot of
|
|
13
|
+
* {@link MicroAgentica}.
|
|
14
|
+
*
|
|
15
|
+
* You can customize the system prompt by configuring the
|
|
16
|
+
* {@link IAgenticaConfig.systemPrompt} property when creating a new
|
|
17
|
+
* {@link Agentica} instance.
|
|
18
|
+
*
|
|
19
|
+
* If you don't configure any system prompts, the default system prompts
|
|
20
|
+
* would be used which are written in the below directory as markdown
|
|
21
|
+
* documents.
|
|
22
|
+
*
|
|
23
|
+
* - https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts
|
|
24
|
+
*
|
|
25
|
+
* @author Samchon
|
|
26
|
+
*/
|
|
27
|
+
export interface IMicroAgenticaSystemPrompt<Model extends ILlmSchema.Model> {
|
|
28
|
+
/**
|
|
29
|
+
* Common system prompt that would be used in every situation.
|
|
30
|
+
*
|
|
31
|
+
* @param config Configuration of the agent
|
|
32
|
+
* @returns The common system prompt
|
|
33
|
+
* @default https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/common.md
|
|
34
|
+
*/
|
|
35
|
+
common?: (config?: IMicroAgenticaConfig<Model> | undefined) => string;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Execute system prompt.
|
|
39
|
+
*
|
|
40
|
+
* The {@link Agentica} has a process filling the arguments of some
|
|
41
|
+
* selected candidate functions by the LLM (Large Language Model)
|
|
42
|
+
* function calling feature with the previous prompt histories, and
|
|
43
|
+
* executing the arguments filled function with validation feedback.
|
|
44
|
+
*
|
|
45
|
+
* In that case, this `execute` system prompt would be used. You can
|
|
46
|
+
* customize it by assigning this function with the given
|
|
47
|
+
* {@link AgenticaHistory histories} parameter.
|
|
48
|
+
*
|
|
49
|
+
* @param histories Histories of the previous prompts
|
|
50
|
+
* @returns execute system prompt
|
|
51
|
+
* https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/execute.md
|
|
52
|
+
*/
|
|
53
|
+
execute?: null | ((histories: MicroAgenticaHistory<Model>[]) => string);
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Describe system prompt.
|
|
57
|
+
*
|
|
58
|
+
* The {@link Agentica} has a process describing the return values of
|
|
59
|
+
* the executed functions by requesting to the A.I. agent with the
|
|
60
|
+
* previous prompt histories.
|
|
61
|
+
*
|
|
62
|
+
* In that case, this `describe` system prompt would be used. You can
|
|
63
|
+
* customize it by assigning this function with the given
|
|
64
|
+
* {@link AgenticaHistory histories} parameter.
|
|
65
|
+
*
|
|
66
|
+
* @param histories Histories of the previous prompts
|
|
67
|
+
* @returns describe system prompt
|
|
68
|
+
* @default https://github.com/wrtnlabs/agentica/tree/main/packages/core/prompts/describe.md
|
|
69
|
+
*/
|
|
70
|
+
describe?: (histories: AgenticaExecuteHistory<Model>[]) => string;
|
|
71
|
+
}
|
|
@@ -1,69 +1,69 @@
|
|
|
1
1
|
import type { ILlmSchema } from "@samchon/openapi";
|
|
2
2
|
|
|
3
3
|
import type { AgenticaOperation } from "../context/AgenticaOperation";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
4
|
+
import type { AgenticaCancelHistory } from "../histories/AgenticaCancelHistory";
|
|
5
|
+
import type { AgenticaDescribeHistory } from "../histories/AgenticaDescribeHistory";
|
|
6
|
+
import type { AgenticaExecuteHistory } from "../histories/AgenticaExecuteHistory";
|
|
7
|
+
import type { AgenticaHistory } from "../histories/AgenticaHistory";
|
|
8
|
+
import type { AgenticaSelectHistory } from "../histories/AgenticaSelectHistory";
|
|
9
|
+
import type { AgenticaTextHistory } from "../histories/AgenticaTextHistory";
|
|
10
|
+
import type { IAgenticaHistoryJson } from "../json/IAgenticaHistoryJson";
|
|
11
11
|
|
|
12
|
+
import { createCancelHistory, createDescribeHistory, createExecuteHistory, createSelectHistory, createTextHistory } from "../factory/histories";
|
|
12
13
|
import { createOperationSelection } from "../factory/operations";
|
|
13
|
-
import { createCancelPrompt, createDescribePrompt, createExecutePrompt, createSelectPrompt, createTextPrompt } from "../factory/prompts";
|
|
14
14
|
|
|
15
15
|
function transform<Model extends ILlmSchema.Model>(props: {
|
|
16
16
|
operations: Map<string, Map<string, AgenticaOperation<Model>>>;
|
|
17
|
-
|
|
18
|
-
}):
|
|
17
|
+
history: IAgenticaHistoryJson;
|
|
18
|
+
}): AgenticaHistory<Model> {
|
|
19
19
|
// TEXT
|
|
20
|
-
if (props.
|
|
20
|
+
if (props.history.type === "text") {
|
|
21
21
|
return transformText({
|
|
22
|
-
|
|
22
|
+
history: props.history,
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
25
|
// SELECT & CANCEL
|
|
26
|
-
else if (props.
|
|
26
|
+
else if (props.history.type === "select") {
|
|
27
27
|
return transformSelect({
|
|
28
28
|
operations: props.operations,
|
|
29
|
-
|
|
29
|
+
history: props.history,
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
else if (props.
|
|
32
|
+
else if (props.history.type === "cancel") {
|
|
33
33
|
return transformCancel({
|
|
34
34
|
operations: props.operations,
|
|
35
|
-
|
|
35
|
+
history: props.history,
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
// EXECUTE
|
|
39
|
-
else if (props.
|
|
39
|
+
else if (props.history.type === "execute") {
|
|
40
40
|
return transformExecute({
|
|
41
41
|
operations: props.operations,
|
|
42
|
-
|
|
42
|
+
history: props.history,
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
-
else if (props.
|
|
45
|
+
else if (props.history.type === "describe") {
|
|
46
46
|
return transformDescribe({
|
|
47
47
|
operations: props.operations,
|
|
48
|
-
|
|
48
|
+
history: props.history,
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
throw new Error("Invalid prompt type.");
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function transformText(props: {
|
|
55
|
-
|
|
56
|
-
}):
|
|
57
|
-
return
|
|
55
|
+
history: IAgenticaHistoryJson.IText;
|
|
56
|
+
}): AgenticaTextHistory {
|
|
57
|
+
return createTextHistory(props.history);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
function transformSelect<Model extends ILlmSchema.Model>(props: {
|
|
61
61
|
operations: Map<string, Map<string, AgenticaOperation<Model>>>;
|
|
62
|
-
|
|
63
|
-
}):
|
|
64
|
-
return
|
|
65
|
-
id: props.
|
|
66
|
-
selections: props.
|
|
62
|
+
history: IAgenticaHistoryJson.ISelect;
|
|
63
|
+
}): AgenticaSelectHistory<Model> {
|
|
64
|
+
return createSelectHistory({
|
|
65
|
+
id: props.history.id,
|
|
66
|
+
selections: props.history.selections.map(
|
|
67
67
|
select =>
|
|
68
68
|
createOperationSelection({
|
|
69
69
|
operation: findOperation({
|
|
@@ -78,11 +78,11 @@ function transformSelect<Model extends ILlmSchema.Model>(props: {
|
|
|
78
78
|
|
|
79
79
|
function transformCancel<Model extends ILlmSchema.Model>(props: {
|
|
80
80
|
operations: Map<string, Map<string, AgenticaOperation<Model>>>;
|
|
81
|
-
|
|
82
|
-
}):
|
|
83
|
-
return
|
|
84
|
-
id: props.
|
|
85
|
-
selections: props.
|
|
81
|
+
history: IAgenticaHistoryJson.ICancel;
|
|
82
|
+
}): AgenticaCancelHistory<Model> {
|
|
83
|
+
return createCancelHistory({
|
|
84
|
+
id: props.history.id,
|
|
85
|
+
selections: props.history.selections.map(
|
|
86
86
|
select =>
|
|
87
87
|
createOperationSelection({
|
|
88
88
|
operation: findOperation({
|
|
@@ -97,33 +97,33 @@ function transformCancel<Model extends ILlmSchema.Model>(props: {
|
|
|
97
97
|
|
|
98
98
|
function transformExecute<Model extends ILlmSchema.Model>(props: {
|
|
99
99
|
operations: Map<string, Map<string, AgenticaOperation<Model>>>;
|
|
100
|
-
|
|
101
|
-
}):
|
|
102
|
-
return
|
|
103
|
-
id: props.
|
|
100
|
+
history: IAgenticaHistoryJson.IExecute;
|
|
101
|
+
}): AgenticaExecuteHistory<Model> {
|
|
102
|
+
return createExecuteHistory({
|
|
103
|
+
id: props.history.id,
|
|
104
104
|
operation: findOperation({
|
|
105
105
|
operations: props.operations,
|
|
106
|
-
input: props.
|
|
106
|
+
input: props.history.operation,
|
|
107
107
|
}),
|
|
108
|
-
arguments: props.
|
|
108
|
+
arguments: props.history.arguments,
|
|
109
109
|
/**
|
|
110
110
|
* @TODO fix it
|
|
111
111
|
* The property and value have a type mismatch, but it works.
|
|
112
112
|
*/
|
|
113
|
-
value: props.
|
|
113
|
+
value: props.history.value as Record<string, unknown>,
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
function transformDescribe<Model extends ILlmSchema.Model>(props: {
|
|
118
118
|
operations: Map<string, Map<string, AgenticaOperation<Model>>>;
|
|
119
|
-
|
|
120
|
-
}):
|
|
121
|
-
return
|
|
122
|
-
text: props.
|
|
123
|
-
executes: props.
|
|
119
|
+
history: IAgenticaHistoryJson.IDescribe;
|
|
120
|
+
}): AgenticaDescribeHistory<Model> {
|
|
121
|
+
return createDescribeHistory({
|
|
122
|
+
text: props.history.text,
|
|
123
|
+
executes: props.history.executes.map(next =>
|
|
124
124
|
transformExecute({
|
|
125
125
|
operations: props.operations,
|
|
126
|
-
|
|
126
|
+
history: next,
|
|
127
127
|
}),
|
|
128
128
|
),
|
|
129
129
|
});
|