mojentic 1.0.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/LICENSE +21 -0
- package/README.md +459 -0
- package/dist/agents/async-aggregator-agent.d.ts +101 -0
- package/dist/agents/async-aggregator-agent.d.ts.map +1 -0
- package/dist/agents/async-aggregator-agent.js +160 -0
- package/dist/agents/async-aggregator-agent.js.map +1 -0
- package/dist/agents/async-dispatcher.d.ts +98 -0
- package/dist/agents/async-dispatcher.d.ts.map +1 -0
- package/dist/agents/async-dispatcher.js +173 -0
- package/dist/agents/async-dispatcher.js.map +1 -0
- package/dist/agents/async-llm-agent-with-memory.d.ts +95 -0
- package/dist/agents/async-llm-agent-with-memory.d.ts.map +1 -0
- package/dist/agents/async-llm-agent-with-memory.js +136 -0
- package/dist/agents/async-llm-agent-with-memory.js.map +1 -0
- package/dist/agents/async-llm-agent.d.ts +85 -0
- package/dist/agents/async-llm-agent.d.ts.map +1 -0
- package/dist/agents/async-llm-agent.js +87 -0
- package/dist/agents/async-llm-agent.js.map +1 -0
- package/dist/agents/base-agent.d.ts +59 -0
- package/dist/agents/base-agent.d.ts.map +1 -0
- package/dist/agents/base-agent.js +24 -0
- package/dist/agents/base-agent.js.map +1 -0
- package/dist/agents/base-async-agent.d.ts +42 -0
- package/dist/agents/base-async-agent.d.ts.map +1 -0
- package/dist/agents/base-async-agent.js +6 -0
- package/dist/agents/base-async-agent.js.map +1 -0
- package/dist/agents/event.d.ts +26 -0
- package/dist/agents/event.d.ts.map +1 -0
- package/dist/agents/event.js +13 -0
- package/dist/agents/event.js.map +1 -0
- package/dist/agents/index.d.ts +14 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +30 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/iterative-problem-solver.d.ts +83 -0
- package/dist/agents/iterative-problem-solver.d.ts.map +1 -0
- package/dist/agents/iterative-problem-solver.js +120 -0
- package/dist/agents/iterative-problem-solver.js.map +1 -0
- package/dist/agents/router.d.ts +44 -0
- package/dist/agents/router.d.ts.map +1 -0
- package/dist/agents/router.js +53 -0
- package/dist/agents/router.js.map +1 -0
- package/dist/agents/simple-recursive-agent.d.ts +182 -0
- package/dist/agents/simple-recursive-agent.d.ts.map +1 -0
- package/dist/agents/simple-recursive-agent.js +272 -0
- package/dist/agents/simple-recursive-agent.js.map +1 -0
- package/dist/context/index.d.ts +5 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +21 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/shared-working-memory.d.ts +76 -0
- package/dist/context/shared-working-memory.d.ts.map +1 -0
- package/dist/context/shared-working-memory.js +121 -0
- package/dist/context/shared-working-memory.js.map +1 -0
- package/dist/error.d.ts +93 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +149 -0
- package/dist/error.js.map +1 -0
- package/dist/examples/react/decisioning-agent.d.ts +48 -0
- package/dist/examples/react/decisioning-agent.d.ts.map +1 -0
- package/dist/examples/react/decisioning-agent.js +204 -0
- package/dist/examples/react/decisioning-agent.js.map +1 -0
- package/dist/examples/react/events.d.ts +77 -0
- package/dist/examples/react/events.d.ts.map +1 -0
- package/dist/examples/react/events.js +9 -0
- package/dist/examples/react/events.js.map +1 -0
- package/dist/examples/react/formatters.d.ts +23 -0
- package/dist/examples/react/formatters.d.ts.map +1 -0
- package/dist/examples/react/formatters.js +68 -0
- package/dist/examples/react/formatters.js.map +1 -0
- package/dist/examples/react/index.d.ts +12 -0
- package/dist/examples/react/index.d.ts.map +1 -0
- package/dist/examples/react/index.js +28 -0
- package/dist/examples/react/index.js.map +1 -0
- package/dist/examples/react/models.d.ts +57 -0
- package/dist/examples/react/models.d.ts.map +1 -0
- package/dist/examples/react/models.js +19 -0
- package/dist/examples/react/models.js.map +1 -0
- package/dist/examples/react/output-agent.d.ts +23 -0
- package/dist/examples/react/output-agent.d.ts.map +1 -0
- package/dist/examples/react/output-agent.js +28 -0
- package/dist/examples/react/output-agent.js.map +1 -0
- package/dist/examples/react/summarization-agent.d.ts +46 -0
- package/dist/examples/react/summarization-agent.d.ts.map +1 -0
- package/dist/examples/react/summarization-agent.js +102 -0
- package/dist/examples/react/summarization-agent.js.map +1 -0
- package/dist/examples/react/thinking-agent.d.ts +47 -0
- package/dist/examples/react/thinking-agent.d.ts.map +1 -0
- package/dist/examples/react/thinking-agent.js +127 -0
- package/dist/examples/react/thinking-agent.js.map +1 -0
- package/dist/examples/react/tool-call-agent.d.ts +25 -0
- package/dist/examples/react/tool-call-agent.d.ts.map +1 -0
- package/dist/examples/react/tool-call-agent.js +83 -0
- package/dist/examples/react/tool-call-agent.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/agent.d.ts +68 -0
- package/dist/llm/agent.d.ts.map +1 -0
- package/dist/llm/agent.js +85 -0
- package/dist/llm/agent.js.map +1 -0
- package/dist/llm/broker.d.ts +150 -0
- package/dist/llm/broker.d.ts.map +1 -0
- package/dist/llm/broker.js +355 -0
- package/dist/llm/broker.js.map +1 -0
- package/dist/llm/chat-session.d.ts +98 -0
- package/dist/llm/chat-session.d.ts.map +1 -0
- package/dist/llm/chat-session.js +156 -0
- package/dist/llm/chat-session.js.map +1 -0
- package/dist/llm/gateway.d.ts +28 -0
- package/dist/llm/gateway.d.ts.map +1 -0
- package/dist/llm/gateway.js +6 -0
- package/dist/llm/gateway.js.map +1 -0
- package/dist/llm/gateways/index.d.ts +9 -0
- package/dist/llm/gateways/index.d.ts.map +1 -0
- package/dist/llm/gateways/index.js +25 -0
- package/dist/llm/gateways/index.js.map +1 -0
- package/dist/llm/gateways/ollama.d.ts +30 -0
- package/dist/llm/gateways/ollama.d.ts.map +1 -0
- package/dist/llm/gateways/ollama.js +322 -0
- package/dist/llm/gateways/ollama.js.map +1 -0
- package/dist/llm/gateways/openai-messages-adapter.d.ts +29 -0
- package/dist/llm/gateways/openai-messages-adapter.d.ts.map +1 -0
- package/dist/llm/gateways/openai-messages-adapter.js +188 -0
- package/dist/llm/gateways/openai-messages-adapter.js.map +1 -0
- package/dist/llm/gateways/openai-model-registry.d.ts +82 -0
- package/dist/llm/gateways/openai-model-registry.d.ts.map +1 -0
- package/dist/llm/gateways/openai-model-registry.js +352 -0
- package/dist/llm/gateways/openai-model-registry.js.map +1 -0
- package/dist/llm/gateways/openai.d.ts +40 -0
- package/dist/llm/gateways/openai.d.ts.map +1 -0
- package/dist/llm/gateways/openai.js +469 -0
- package/dist/llm/gateways/openai.js.map +1 -0
- package/dist/llm/gateways/tokenizerGateway.d.ts +61 -0
- package/dist/llm/gateways/tokenizerGateway.d.ts.map +1 -0
- package/dist/llm/gateways/tokenizerGateway.js +75 -0
- package/dist/llm/gateways/tokenizerGateway.js.map +1 -0
- package/dist/llm/index.d.ts +11 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +27 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/models.d.ts +95 -0
- package/dist/llm/models.d.ts.map +1 -0
- package/dist/llm/models.js +50 -0
- package/dist/llm/models.js.map +1 -0
- package/dist/llm/tools/ask-user.d.ts +39 -0
- package/dist/llm/tools/ask-user.d.ts.map +1 -0
- package/dist/llm/tools/ask-user.js +111 -0
- package/dist/llm/tools/ask-user.js.map +1 -0
- package/dist/llm/tools/current-datetime.d.ts +17 -0
- package/dist/llm/tools/current-datetime.d.ts.map +1 -0
- package/dist/llm/tools/current-datetime.js +76 -0
- package/dist/llm/tools/current-datetime.js.map +1 -0
- package/dist/llm/tools/date-resolver.d.ts +17 -0
- package/dist/llm/tools/date-resolver.d.ts.map +1 -0
- package/dist/llm/tools/date-resolver.js +135 -0
- package/dist/llm/tools/date-resolver.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.js +54 -0
- package/dist/llm/tools/ephemeral-task-manager/append-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js +37 -0
- package/dist/llm/tools/ephemeral-task-manager/clear-tasks.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts +15 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.js +56 -0
- package/dist/llm/tools/ephemeral-task-manager/complete-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/index.d.ts +44 -0
- package/dist/llm/tools/ephemeral-task-manager/index.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/index.js +73 -0
- package/dist/llm/tools/ephemeral-task-manager/index.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js +59 -0
- package/dist/llm/tools/ephemeral-task-manager/insert-task-after.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts +14 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.js +45 -0
- package/dist/llm/tools/ephemeral-task-manager/list-tasks.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts +13 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.js +54 -0
- package/dist/llm/tools/ephemeral-task-manager/prepend-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts +15 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.js +56 -0
- package/dist/llm/tools/ephemeral-task-manager/start-task.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts +68 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.js +120 -0
- package/dist/llm/tools/ephemeral-task-manager/task-list.js.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task.d.ts +21 -0
- package/dist/llm/tools/ephemeral-task-manager/task.d.ts.map +1 -0
- package/dist/llm/tools/ephemeral-task-manager/task.js +24 -0
- package/dist/llm/tools/ephemeral-task-manager/task.js.map +1 -0
- package/dist/llm/tools/file-manager.d.ts +127 -0
- package/dist/llm/tools/file-manager.d.ts.map +1 -0
- package/dist/llm/tools/file-manager.js +598 -0
- package/dist/llm/tools/file-manager.js.map +1 -0
- package/dist/llm/tools/index.d.ts +11 -0
- package/dist/llm/tools/index.d.ts.map +1 -0
- package/dist/llm/tools/index.js +27 -0
- package/dist/llm/tools/index.js.map +1 -0
- package/dist/llm/tools/tell-user.d.ts +31 -0
- package/dist/llm/tools/tell-user.d.ts.map +1 -0
- package/dist/llm/tools/tell-user.js +57 -0
- package/dist/llm/tools/tell-user.js.map +1 -0
- package/dist/llm/tools/tool-wrapper.d.ts +54 -0
- package/dist/llm/tools/tool-wrapper.d.ts.map +1 -0
- package/dist/llm/tools/tool-wrapper.js +91 -0
- package/dist/llm/tools/tool-wrapper.js.map +1 -0
- package/dist/llm/tools/tool.d.ts +70 -0
- package/dist/llm/tools/tool.d.ts.map +1 -0
- package/dist/llm/tools/tool.js +19 -0
- package/dist/llm/tools/tool.js.map +1 -0
- package/dist/llm/tools/web-search-tool.d.ts +35 -0
- package/dist/llm/tools/web-search-tool.d.ts.map +1 -0
- package/dist/llm/tools/web-search-tool.js +105 -0
- package/dist/llm/tools/web-search-tool.js.map +1 -0
- package/dist/llm/utils/image.d.ts +30 -0
- package/dist/llm/utils/image.d.ts.map +1 -0
- package/dist/llm/utils/image.js +65 -0
- package/dist/llm/utils/image.js.map +1 -0
- package/dist/tracer/eventStore.d.ts +101 -0
- package/dist/tracer/eventStore.d.ts.map +1 -0
- package/dist/tracer/eventStore.js +120 -0
- package/dist/tracer/eventStore.js.map +1 -0
- package/dist/tracer/index.d.ts +8 -0
- package/dist/tracer/index.d.ts.map +1 -0
- package/dist/tracer/index.js +24 -0
- package/dist/tracer/index.js.map +1 -0
- package/dist/tracer/nullTracer.d.ts +127 -0
- package/dist/tracer/nullTracer.d.ts.map +1 -0
- package/dist/tracer/nullTracer.js +148 -0
- package/dist/tracer/nullTracer.js.map +1 -0
- package/dist/tracer/tracerEvents.d.ts +209 -0
- package/dist/tracer/tracerEvents.d.ts.map +1 -0
- package/dist/tracer/tracerEvents.js +312 -0
- package/dist/tracer/tracerEvents.js.map +1 -0
- package/dist/tracer/tracerSystem.d.ts +149 -0
- package/dist/tracer/tracerSystem.d.ts.map +1 -0
- package/dist/tracer/tracerSystem.js +196 -0
- package/dist/tracer/tracerSystem.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared Working Memory - Context that agents can read from and write to
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* SharedWorkingMemory provides a shared context that agents can read from and write to.
|
|
6
|
+
*
|
|
7
|
+
* This enables agents to maintain state across multiple interactions and share
|
|
8
|
+
* information with each other. Memory is stored as a plain object that can be
|
|
9
|
+
* retrieved and updated through deep merging.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const memory = new SharedWorkingMemory({
|
|
14
|
+
* user: {
|
|
15
|
+
* name: 'Alice',
|
|
16
|
+
* age: 30
|
|
17
|
+
* }
|
|
18
|
+
* });
|
|
19
|
+
*
|
|
20
|
+
* // Retrieve current memory
|
|
21
|
+
* const current = memory.getWorkingMemory();
|
|
22
|
+
* console.log(current.user.name); // 'Alice'
|
|
23
|
+
*
|
|
24
|
+
* // Merge new information
|
|
25
|
+
* memory.mergeToWorkingMemory({
|
|
26
|
+
* user: {
|
|
27
|
+
* city: 'New York'
|
|
28
|
+
* }
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Memory now contains both original and new data
|
|
32
|
+
* const updated = memory.getWorkingMemory();
|
|
33
|
+
* console.log(updated.user); // { name: 'Alice', age: 30, city: 'New York' }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare class SharedWorkingMemory {
|
|
37
|
+
private _workingMemory;
|
|
38
|
+
/**
|
|
39
|
+
* Create a new SharedWorkingMemory instance.
|
|
40
|
+
*
|
|
41
|
+
* @param initialWorkingMemory - Initial memory object (default: empty object)
|
|
42
|
+
*/
|
|
43
|
+
constructor(initialWorkingMemory?: Record<string, unknown>);
|
|
44
|
+
/**
|
|
45
|
+
* Get the current working memory.
|
|
46
|
+
*
|
|
47
|
+
* @returns A copy of the current working memory object
|
|
48
|
+
*/
|
|
49
|
+
getWorkingMemory(): Record<string, unknown>;
|
|
50
|
+
/**
|
|
51
|
+
* Merge new information into the working memory.
|
|
52
|
+
*
|
|
53
|
+
* This performs a deep merge, recursively updating nested objects while
|
|
54
|
+
* replacing primitives and arrays. This allows partial updates to complex
|
|
55
|
+
* memory structures without losing existing data.
|
|
56
|
+
*
|
|
57
|
+
* @param workingMemory - The memory object to merge in
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Initial memory
|
|
62
|
+
* const memory = new SharedWorkingMemory({
|
|
63
|
+
* user: { name: 'Bob', preferences: { theme: 'dark' } }
|
|
64
|
+
* });
|
|
65
|
+
*
|
|
66
|
+
* // Merge new preference without losing existing ones
|
|
67
|
+
* memory.mergeToWorkingMemory({
|
|
68
|
+
* user: { preferences: { language: 'en' } }
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Result: { user: { name: 'Bob', preferences: { theme: 'dark', language: 'en' } } }
|
|
72
|
+
* ```
|
|
73
|
+
*/
|
|
74
|
+
mergeToWorkingMemory(workingMemory: Record<string, unknown>): void;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=shared-working-memory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-working-memory.d.ts","sourceRoot":"","sources":["../../src/context/shared-working-memory.ts"],"names":[],"mappings":"AAAA;;GAEG;AA+CH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,cAAc,CAA0B;IAEhD;;;;OAIG;gBACS,oBAAoB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM;IAK9D;;;;OAIG;IACH,gBAAgB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI3C;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,oBAAoB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGnE"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared Working Memory - Context that agents can read from and write to
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SharedWorkingMemory = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* Deep merge utility that recursively merges objects.
|
|
9
|
+
* Arrays and primitives are replaced, not merged.
|
|
10
|
+
*
|
|
11
|
+
* @param target - The target object to merge into
|
|
12
|
+
* @param source - The source object to merge from
|
|
13
|
+
* @returns The merged object
|
|
14
|
+
*/
|
|
15
|
+
function deepMerge(target, source) {
|
|
16
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
17
|
+
const result = { ...target };
|
|
18
|
+
for (const key of Object.keys(source)) {
|
|
19
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
20
|
+
const sourceValue = source[key];
|
|
21
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
22
|
+
const targetValue = result[key];
|
|
23
|
+
if (sourceValue &&
|
|
24
|
+
typeof sourceValue === 'object' &&
|
|
25
|
+
!Array.isArray(sourceValue) &&
|
|
26
|
+
targetValue &&
|
|
27
|
+
typeof targetValue === 'object' &&
|
|
28
|
+
!Array.isArray(targetValue)) {
|
|
29
|
+
// Recursively merge nested objects
|
|
30
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
31
|
+
result[key] = deepMerge(targetValue, sourceValue);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Replace primitives, arrays, and nulls
|
|
35
|
+
// eslint-disable-next-line security/detect-object-injection
|
|
36
|
+
result[key] = sourceValue;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* SharedWorkingMemory provides a shared context that agents can read from and write to.
|
|
43
|
+
*
|
|
44
|
+
* This enables agents to maintain state across multiple interactions and share
|
|
45
|
+
* information with each other. Memory is stored as a plain object that can be
|
|
46
|
+
* retrieved and updated through deep merging.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const memory = new SharedWorkingMemory({
|
|
51
|
+
* user: {
|
|
52
|
+
* name: 'Alice',
|
|
53
|
+
* age: 30
|
|
54
|
+
* }
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* // Retrieve current memory
|
|
58
|
+
* const current = memory.getWorkingMemory();
|
|
59
|
+
* console.log(current.user.name); // 'Alice'
|
|
60
|
+
*
|
|
61
|
+
* // Merge new information
|
|
62
|
+
* memory.mergeToWorkingMemory({
|
|
63
|
+
* user: {
|
|
64
|
+
* city: 'New York'
|
|
65
|
+
* }
|
|
66
|
+
* });
|
|
67
|
+
*
|
|
68
|
+
* // Memory now contains both original and new data
|
|
69
|
+
* const updated = memory.getWorkingMemory();
|
|
70
|
+
* console.log(updated.user); // { name: 'Alice', age: 30, city: 'New York' }
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
class SharedWorkingMemory {
|
|
74
|
+
_workingMemory;
|
|
75
|
+
/**
|
|
76
|
+
* Create a new SharedWorkingMemory instance.
|
|
77
|
+
*
|
|
78
|
+
* @param initialWorkingMemory - Initial memory object (default: empty object)
|
|
79
|
+
*/
|
|
80
|
+
constructor(initialWorkingMemory = {}) {
|
|
81
|
+
// Make a shallow copy to avoid sharing reference with caller
|
|
82
|
+
this._workingMemory = { ...initialWorkingMemory };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get the current working memory.
|
|
86
|
+
*
|
|
87
|
+
* @returns A copy of the current working memory object
|
|
88
|
+
*/
|
|
89
|
+
getWorkingMemory() {
|
|
90
|
+
return { ...this._workingMemory };
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Merge new information into the working memory.
|
|
94
|
+
*
|
|
95
|
+
* This performs a deep merge, recursively updating nested objects while
|
|
96
|
+
* replacing primitives and arrays. This allows partial updates to complex
|
|
97
|
+
* memory structures without losing existing data.
|
|
98
|
+
*
|
|
99
|
+
* @param workingMemory - The memory object to merge in
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* // Initial memory
|
|
104
|
+
* const memory = new SharedWorkingMemory({
|
|
105
|
+
* user: { name: 'Bob', preferences: { theme: 'dark' } }
|
|
106
|
+
* });
|
|
107
|
+
*
|
|
108
|
+
* // Merge new preference without losing existing ones
|
|
109
|
+
* memory.mergeToWorkingMemory({
|
|
110
|
+
* user: { preferences: { language: 'en' } }
|
|
111
|
+
* });
|
|
112
|
+
*
|
|
113
|
+
* // Result: { user: { name: 'Bob', preferences: { theme: 'dark', language: 'en' } } }
|
|
114
|
+
* ```
|
|
115
|
+
*/
|
|
116
|
+
mergeToWorkingMemory(workingMemory) {
|
|
117
|
+
this._workingMemory = deepMerge(this._workingMemory, workingMemory);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.SharedWorkingMemory = SharedWorkingMemory;
|
|
121
|
+
//# sourceMappingURL=shared-working-memory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-working-memory.js","sourceRoot":"","sources":["../../src/context/shared-working-memory.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH;;;;;;;GAOG;AACH,SAAS,SAAS,CAChB,MAA+B,EAC/B,MAA+B;IAE/B,4DAA4D;IAC5D,MAAM,MAAM,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAC;IAEtD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,4DAA4D;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAChC,4DAA4D;QAC5D,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAEhC,IACE,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3B,WAAW;YACX,OAAO,WAAW,KAAK,QAAQ;YAC/B,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAC3B,CAAC;YACD,mCAAmC;YACnC,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CACrB,WAAsC,EACtC,WAAsC,CACvC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,wCAAwC;YACxC,4DAA4D;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,mBAAmB;IACtB,cAAc,CAA0B;IAEhD;;;;OAIG;IACH,YAAY,uBAAgD,EAAE;QAC5D,6DAA6D;QAC7D,IAAI,CAAC,cAAc,GAAG,EAAE,GAAG,oBAAoB,EAAE,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,gBAAgB;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,oBAAoB,CAAC,aAAsC;QACzD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;IACtE,CAAC;CACF;AAjDD,kDAiDC"}
|
package/dist/error.d.ts
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error types for Mojentic framework
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Base error class for all Mojentic errors
|
|
6
|
+
*/
|
|
7
|
+
export declare class MojenticError extends Error {
|
|
8
|
+
readonly code?: string | undefined;
|
|
9
|
+
constructor(message: string, code?: string | undefined);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Error for gateway-related issues (network, API, etc.)
|
|
13
|
+
*/
|
|
14
|
+
export declare class GatewayError extends MojenticError {
|
|
15
|
+
readonly statusCode?: number | undefined;
|
|
16
|
+
constructor(message: string, statusCode?: number | undefined);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Error for tool execution failures
|
|
20
|
+
*/
|
|
21
|
+
export declare class ToolError extends MojenticError {
|
|
22
|
+
readonly toolName?: string | undefined;
|
|
23
|
+
constructor(message: string, toolName?: string | undefined);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Error for validation failures
|
|
27
|
+
*/
|
|
28
|
+
export declare class ValidationError extends MojenticError {
|
|
29
|
+
readonly field?: string | undefined;
|
|
30
|
+
constructor(message: string, field?: string | undefined);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Error for parsing/serialization issues
|
|
34
|
+
*/
|
|
35
|
+
export declare class ParseError extends MojenticError {
|
|
36
|
+
constructor(message: string);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Error for timeout issues
|
|
40
|
+
*/
|
|
41
|
+
export declare class TimeoutError extends MojenticError {
|
|
42
|
+
constructor(message?: string);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Result type for operations that can fail
|
|
46
|
+
* Inspired by Rust's Result<T, E> but adapted for TypeScript
|
|
47
|
+
*/
|
|
48
|
+
export type Result<T, E = Error> = {
|
|
49
|
+
ok: true;
|
|
50
|
+
value: T;
|
|
51
|
+
} | {
|
|
52
|
+
ok: false;
|
|
53
|
+
error: E;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Create a successful Result
|
|
57
|
+
*/
|
|
58
|
+
export declare function Ok<T>(value: T): Result<T, never>;
|
|
59
|
+
/**
|
|
60
|
+
* Create a failed Result
|
|
61
|
+
*/
|
|
62
|
+
export declare function Err<E = Error>(error: E): Result<never, E>;
|
|
63
|
+
/**
|
|
64
|
+
* Check if a Result is Ok
|
|
65
|
+
*/
|
|
66
|
+
export declare function isOk<T, E>(result: Result<T, E>): result is {
|
|
67
|
+
ok: true;
|
|
68
|
+
value: T;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Check if a Result is Err
|
|
72
|
+
*/
|
|
73
|
+
export declare function isErr<T, E>(result: Result<T, E>): result is {
|
|
74
|
+
ok: false;
|
|
75
|
+
error: E;
|
|
76
|
+
};
|
|
77
|
+
/**
|
|
78
|
+
* Unwrap a Result, throwing if it's an error
|
|
79
|
+
*/
|
|
80
|
+
export declare function unwrap<T, E>(result: Result<T, E>): T;
|
|
81
|
+
/**
|
|
82
|
+
* Unwrap a Result or return a default value
|
|
83
|
+
*/
|
|
84
|
+
export declare function unwrapOr<T, E>(result: Result<T, E>, defaultValue: T): T;
|
|
85
|
+
/**
|
|
86
|
+
* Map a Result's value if it's Ok
|
|
87
|
+
*/
|
|
88
|
+
export declare function mapResult<T, U, E>(result: Result<T, E>, fn: (value: T) => U): Result<U, E>;
|
|
89
|
+
/**
|
|
90
|
+
* Map a Result's error if it's Err
|
|
91
|
+
*/
|
|
92
|
+
export declare function mapError<T, E, F>(result: Result<T, E>, fn: (error: E) => F): Result<T, F>;
|
|
93
|
+
//# sourceMappingURL=error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAGpB,IAAI,CAAC,EAAE,MAAM;gBAD7B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA;CAMhC;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;aAG3B,UAAU,CAAC,EAAE,MAAM;gBADnC,OAAO,EAAE,MAAM,EACC,UAAU,CAAC,EAAE,MAAM,YAAA;CAMtC;AAED;;GAEG;AACH,qBAAa,SAAU,SAAQ,aAAa;aAGxB,QAAQ,CAAC,EAAE,MAAM;gBADjC,OAAO,EAAE,MAAM,EACC,QAAQ,CAAC,EAAE,MAAM,YAAA;CAMpC;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,aAAa;aAG9B,KAAK,CAAC,EAAE,MAAM;gBAD9B,OAAO,EAAE,MAAM,EACC,KAAK,CAAC,EAAE,MAAM,YAAA;CAMjC;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,aAAa;gBAC/B,OAAO,EAAE,MAAM;CAK5B;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAa;gBACjC,OAAO,GAAE,MAA8B;CAKpD;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEpF;;GAEG;AACH,wBAAgB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAEhD;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAEzD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAEjF;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAEnF;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAKpD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAKvE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAK1F;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAKzF"}
|
package/dist/error.js
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error types for Mojentic framework
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.TimeoutError = exports.ParseError = exports.ValidationError = exports.ToolError = exports.GatewayError = exports.MojenticError = void 0;
|
|
7
|
+
exports.Ok = Ok;
|
|
8
|
+
exports.Err = Err;
|
|
9
|
+
exports.isOk = isOk;
|
|
10
|
+
exports.isErr = isErr;
|
|
11
|
+
exports.unwrap = unwrap;
|
|
12
|
+
exports.unwrapOr = unwrapOr;
|
|
13
|
+
exports.mapResult = mapResult;
|
|
14
|
+
exports.mapError = mapError;
|
|
15
|
+
/**
|
|
16
|
+
* Base error class for all Mojentic errors
|
|
17
|
+
*/
|
|
18
|
+
class MojenticError extends Error {
|
|
19
|
+
code;
|
|
20
|
+
constructor(message, code) {
|
|
21
|
+
super(message);
|
|
22
|
+
this.code = code;
|
|
23
|
+
this.name = 'MojenticError';
|
|
24
|
+
Object.setPrototypeOf(this, MojenticError.prototype);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.MojenticError = MojenticError;
|
|
28
|
+
/**
|
|
29
|
+
* Error for gateway-related issues (network, API, etc.)
|
|
30
|
+
*/
|
|
31
|
+
class GatewayError extends MojenticError {
|
|
32
|
+
statusCode;
|
|
33
|
+
constructor(message, statusCode) {
|
|
34
|
+
super(message, 'GATEWAY_ERROR');
|
|
35
|
+
this.statusCode = statusCode;
|
|
36
|
+
this.name = 'GatewayError';
|
|
37
|
+
Object.setPrototypeOf(this, GatewayError.prototype);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.GatewayError = GatewayError;
|
|
41
|
+
/**
|
|
42
|
+
* Error for tool execution failures
|
|
43
|
+
*/
|
|
44
|
+
class ToolError extends MojenticError {
|
|
45
|
+
toolName;
|
|
46
|
+
constructor(message, toolName) {
|
|
47
|
+
super(message, 'TOOL_ERROR');
|
|
48
|
+
this.toolName = toolName;
|
|
49
|
+
this.name = 'ToolError';
|
|
50
|
+
Object.setPrototypeOf(this, ToolError.prototype);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.ToolError = ToolError;
|
|
54
|
+
/**
|
|
55
|
+
* Error for validation failures
|
|
56
|
+
*/
|
|
57
|
+
class ValidationError extends MojenticError {
|
|
58
|
+
field;
|
|
59
|
+
constructor(message, field) {
|
|
60
|
+
super(message, 'VALIDATION_ERROR');
|
|
61
|
+
this.field = field;
|
|
62
|
+
this.name = 'ValidationError';
|
|
63
|
+
Object.setPrototypeOf(this, ValidationError.prototype);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.ValidationError = ValidationError;
|
|
67
|
+
/**
|
|
68
|
+
* Error for parsing/serialization issues
|
|
69
|
+
*/
|
|
70
|
+
class ParseError extends MojenticError {
|
|
71
|
+
constructor(message) {
|
|
72
|
+
super(message, 'PARSE_ERROR');
|
|
73
|
+
this.name = 'ParseError';
|
|
74
|
+
Object.setPrototypeOf(this, ParseError.prototype);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.ParseError = ParseError;
|
|
78
|
+
/**
|
|
79
|
+
* Error for timeout issues
|
|
80
|
+
*/
|
|
81
|
+
class TimeoutError extends MojenticError {
|
|
82
|
+
constructor(message = 'Operation timed out') {
|
|
83
|
+
super(message, 'TIMEOUT_ERROR');
|
|
84
|
+
this.name = 'TimeoutError';
|
|
85
|
+
Object.setPrototypeOf(this, TimeoutError.prototype);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.TimeoutError = TimeoutError;
|
|
89
|
+
/**
|
|
90
|
+
* Create a successful Result
|
|
91
|
+
*/
|
|
92
|
+
function Ok(value) {
|
|
93
|
+
return { ok: true, value };
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Create a failed Result
|
|
97
|
+
*/
|
|
98
|
+
function Err(error) {
|
|
99
|
+
return { ok: false, error };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check if a Result is Ok
|
|
103
|
+
*/
|
|
104
|
+
function isOk(result) {
|
|
105
|
+
return result.ok === true;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Check if a Result is Err
|
|
109
|
+
*/
|
|
110
|
+
function isErr(result) {
|
|
111
|
+
return result.ok === false;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Unwrap a Result, throwing if it's an error
|
|
115
|
+
*/
|
|
116
|
+
function unwrap(result) {
|
|
117
|
+
if (isOk(result)) {
|
|
118
|
+
return result.value;
|
|
119
|
+
}
|
|
120
|
+
throw result.error;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Unwrap a Result or return a default value
|
|
124
|
+
*/
|
|
125
|
+
function unwrapOr(result, defaultValue) {
|
|
126
|
+
if (isOk(result)) {
|
|
127
|
+
return result.value;
|
|
128
|
+
}
|
|
129
|
+
return defaultValue;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Map a Result's value if it's Ok
|
|
133
|
+
*/
|
|
134
|
+
function mapResult(result, fn) {
|
|
135
|
+
if (isOk(result)) {
|
|
136
|
+
return Ok(fn(result.value));
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Map a Result's error if it's Err
|
|
142
|
+
*/
|
|
143
|
+
function mapError(result, fn) {
|
|
144
|
+
if (isErr(result)) {
|
|
145
|
+
return Err(fn(result.error));
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyFH,gBAEC;AAKD,kBAEC;AAKD,oBAEC;AAKD,sBAEC;AAKD,wBAKC;AAKD,4BAKC;AAKD,8BAKC;AAKD,4BAKC;AAtJD;;GAEG;AACH,MAAa,aAAc,SAAQ,KAAK;IAGpB;IAFlB,YACE,OAAe,EACC,IAAa;QAE7B,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,SAAI,GAAJ,IAAI,CAAS;QAG7B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;CACF;AATD,sCASC;AAED;;GAEG;AACH,MAAa,YAAa,SAAQ,aAAa;IAG3B;IAFlB,YACE,OAAe,EACC,UAAmB;QAEnC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAFhB,eAAU,GAAV,UAAU,CAAS;QAGnC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF;AATD,oCASC;AAED;;GAEG;AACH,MAAa,SAAU,SAAQ,aAAa;IAGxB;IAFlB,YACE,OAAe,EACC,QAAiB;QAEjC,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAFb,aAAQ,GAAR,QAAQ,CAAS;QAGjC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;CACF;AATD,8BASC;AAED;;GAEG;AACH,MAAa,eAAgB,SAAQ,aAAa;IAG9B;IAFlB,YACE,OAAe,EACC,KAAc;QAE9B,KAAK,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;QAFnB,UAAK,GAAL,KAAK,CAAS;QAG9B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;CACF;AATD,0CASC;AAED;;GAEG;AACH,MAAa,UAAW,SAAQ,aAAa;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;CACF;AAND,gCAMC;AAED;;GAEG;AACH,MAAa,YAAa,SAAQ,aAAa;IAC7C,YAAY,UAAkB,qBAAqB;QACjD,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;CACF;AAND,oCAMC;AAQD;;GAEG;AACH,SAAgB,EAAE,CAAI,KAAQ;IAC5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,GAAG,CAAY,KAAQ;IACrC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,IAAI,CAAO,MAAoB;IAC7C,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAgB,KAAK,CAAO,MAAoB;IAC9C,OAAO,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAgB,MAAM,CAAO,MAAoB;IAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAO,MAAoB,EAAE,YAAe;IAClE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAU,MAAoB,EAAE,EAAmB;IAC1E,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACjB,OAAO,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAU,MAAoB,EAAE,EAAmB;IACzE,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decision-making agent for the ReAct pattern.
|
|
3
|
+
*
|
|
4
|
+
* This agent evaluates the current context and decides on the next action to take.
|
|
5
|
+
*/
|
|
6
|
+
import { BaseAsyncAgent } from '../../agents/base-async-agent';
|
|
7
|
+
import { Event } from '../../agents/event';
|
|
8
|
+
import { Result } from '../../error';
|
|
9
|
+
import { LlmBroker } from '../../llm/broker';
|
|
10
|
+
/**
|
|
11
|
+
* Agent responsible for deciding the next action in the ReAct loop.
|
|
12
|
+
*
|
|
13
|
+
* This agent evaluates the current context, plan, and history to determine
|
|
14
|
+
* whether to continue planning, take an action, or finish and summarize.
|
|
15
|
+
*/
|
|
16
|
+
export declare class DecisioningAgent implements BaseAsyncAgent {
|
|
17
|
+
private readonly llm;
|
|
18
|
+
private static readonly MAX_ITERATIONS;
|
|
19
|
+
private readonly tools;
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the decisioning agent.
|
|
22
|
+
*
|
|
23
|
+
* @param llm - The LLM broker to use for generating decisions
|
|
24
|
+
*/
|
|
25
|
+
constructor(llm: LlmBroker);
|
|
26
|
+
/**
|
|
27
|
+
* Process a decisioning event and determine the next action.
|
|
28
|
+
*
|
|
29
|
+
* @param event - The decisioning event containing current context
|
|
30
|
+
* @returns Result containing one of: InvokeToolCall, FinishAndSummarize, InvokeThinking, or FailureOccurred event
|
|
31
|
+
*/
|
|
32
|
+
receiveEventAsync(event: Event): Promise<Result<Event[], Error>>;
|
|
33
|
+
/**
|
|
34
|
+
* Generate the prompt for the decision-making LLM.
|
|
35
|
+
*
|
|
36
|
+
* @param event - The decisioning event containing current context
|
|
37
|
+
* @returns The formatted prompt string
|
|
38
|
+
*/
|
|
39
|
+
private buildPrompt;
|
|
40
|
+
/**
|
|
41
|
+
* Format a text block with separators for visual clarity.
|
|
42
|
+
*
|
|
43
|
+
* @param text - The text to format
|
|
44
|
+
* @returns Formatted text with separator lines
|
|
45
|
+
*/
|
|
46
|
+
private formatBlock;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=decisioning-agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decisioning-agent.d.ts","sourceRoot":"","sources":["../../../src/examples/react/decisioning-agent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAM,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA4B7C;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,cAAc;IASzC,OAAO,CAAC,QAAQ,CAAC,GAAG;IARhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAM;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAY;IAElC;;;;OAIG;gBAC0B,GAAG,EAAE,SAAS;IAI3C;;;;;OAKG;IACG,iBAAiB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;IAsJtE;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;CAGpB"}
|