@memberjunction/ai-agents 5.43.0 → 5.44.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/README.md +8 -0
- package/dist/DuplicateReasoningAgentProvider.d.ts +35 -0
- package/dist/DuplicateReasoningAgentProvider.d.ts.map +1 -0
- package/dist/DuplicateReasoningAgentProvider.js +95 -0
- package/dist/DuplicateReasoningAgentProvider.js.map +1 -0
- package/dist/MJAIAgentRequestEntityServer.d.ts +7 -0
- package/dist/MJAIAgentRequestEntityServer.d.ts.map +1 -1
- package/dist/MJAIAgentRequestEntityServer.js +28 -1
- package/dist/MJAIAgentRequestEntityServer.js.map +1 -1
- package/dist/SkillImportExportService.d.ts +63 -0
- package/dist/SkillImportExportService.d.ts.map +1 -0
- package/dist/SkillImportExportService.js +148 -0
- package/dist/SkillImportExportService.js.map +1 -0
- package/dist/SkillMarkdownConverter.d.ts +82 -0
- package/dist/SkillMarkdownConverter.d.ts.map +1 -0
- package/dist/SkillMarkdownConverter.js +145 -0
- package/dist/SkillMarkdownConverter.js.map +1 -0
- package/dist/agent-types/loop-agent-response-type.d.ts +17 -2
- package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-response-type.js.map +1 -1
- package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-type.js +33 -1
- package/dist/agent-types/loop-agent-type.js.map +1 -1
- package/dist/base-agent.d.ts +373 -12
- package/dist/base-agent.d.ts.map +1 -1
- package/dist/base-agent.js +1007 -78
- package/dist/base-agent.js.map +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/memory-manager-agent.d.ts +39 -0
- package/dist/memory-manager-agent.d.ts.map +1 -1
- package/dist/memory-manager-agent.js +118 -5
- package/dist/memory-manager-agent.js.map +1 -1
- package/dist/operations/AISkillMarkdownOperations.d.ts +11 -0
- package/dist/operations/AISkillMarkdownOperations.d.ts.map +1 -0
- package/dist/operations/AISkillMarkdownOperations.js +57 -0
- package/dist/operations/AISkillMarkdownOperations.js.map +1 -0
- package/dist/prompt-component-resolver.d.ts +73 -0
- package/dist/prompt-component-resolver.d.ts.map +1 -0
- package/dist/prompt-component-resolver.js +166 -0
- package/dist/prompt-component-resolver.js.map +1 -0
- package/dist/realtime/agent-media-library.d.ts +65 -0
- package/dist/realtime/agent-media-library.d.ts.map +1 -0
- package/dist/realtime/agent-media-library.js +160 -0
- package/dist/realtime/agent-media-library.js.map +1 -0
- package/dist/realtime/client-context-channel-server.d.ts +59 -0
- package/dist/realtime/client-context-channel-server.d.ts.map +1 -0
- package/dist/realtime/client-context-channel-server.js +78 -0
- package/dist/realtime/client-context-channel-server.js.map +1 -0
- package/dist/realtime/media-channel-server.d.ts +73 -0
- package/dist/realtime/media-channel-server.d.ts.map +1 -0
- package/dist/realtime/media-channel-server.js +145 -0
- package/dist/realtime/media-channel-server.js.map +1 -0
- package/dist/realtime/realtime-channel-server-data-context.d.ts +42 -0
- package/dist/realtime/realtime-channel-server-data-context.d.ts.map +1 -0
- package/dist/realtime/realtime-channel-server-data-context.js +29 -0
- package/dist/realtime/realtime-channel-server-data-context.js.map +1 -0
- package/dist/realtime/realtime-channel-server-host.d.ts.map +1 -1
- package/dist/realtime/realtime-channel-server-host.js +8 -2
- package/dist/realtime/realtime-channel-server-host.js.map +1 -1
- package/dist/realtime/realtime-client-session-service.d.ts +85 -5
- package/dist/realtime/realtime-client-session-service.d.ts.map +1 -1
- package/dist/realtime/realtime-client-session-service.js +234 -25
- package/dist/realtime/realtime-client-session-service.js.map +1 -1
- package/dist/realtime/realtime-coagent-config.d.ts +82 -3
- package/dist/realtime/realtime-coagent-config.d.ts.map +1 -1
- package/dist/realtime/realtime-coagent-config.js +147 -6
- package/dist/realtime/realtime-coagent-config.js.map +1 -1
- package/dist/realtime/realtime-recording-capture.d.ts +125 -0
- package/dist/realtime/realtime-recording-capture.d.ts.map +1 -0
- package/dist/realtime/realtime-recording-capture.js +317 -0
- package/dist/realtime/realtime-recording-capture.js.map +1 -0
- package/dist/realtime/realtime-recording-store.d.ts +105 -0
- package/dist/realtime/realtime-recording-store.d.ts.map +1 -0
- package/dist/realtime/realtime-recording-store.js +216 -0
- package/dist/realtime/realtime-recording-store.js.map +1 -0
- package/dist/realtime/realtime-session-runner.d.ts +33 -2
- package/dist/realtime/realtime-session-runner.d.ts.map +1 -1
- package/dist/realtime/realtime-session-runner.js +45 -2
- package/dist/realtime/realtime-session-runner.js.map +1 -1
- package/dist/realtime/realtime-tool-broker.d.ts +41 -3
- package/dist/realtime/realtime-tool-broker.d.ts.map +1 -1
- package/dist/realtime/realtime-tool-broker.js +67 -3
- package/dist/realtime/realtime-tool-broker.js.map +1 -1
- package/package.json +18 -17
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,7 @@ export * from './agent-types/base-agent-type.js';
|
|
|
12
12
|
export * from './agent-types/loop-agent-response-type.js';
|
|
13
13
|
export * from './agent-types/loop-agent-prompt-params.js';
|
|
14
14
|
export * from './base-agent.js';
|
|
15
|
+
export * from './prompt-component-resolver.js';
|
|
15
16
|
export * from './agent-run-watchdog.js';
|
|
16
17
|
export * from './agent-types/index.js';
|
|
17
18
|
export * from './AgentRunner.js';
|
|
@@ -19,6 +20,9 @@ export * from './PayloadManager.js';
|
|
|
19
20
|
export * from './ScratchpadManager.js';
|
|
20
21
|
export * from './ArtifactToolManager.js';
|
|
21
22
|
export * from './MemoryWriteManager.js';
|
|
23
|
+
export * from './SkillMarkdownConverter.js';
|
|
24
|
+
export * from './SkillImportExportService.js';
|
|
25
|
+
export * from './operations/AISkillMarkdownOperations.js';
|
|
22
26
|
export * from './pipeline/index.js';
|
|
23
27
|
export * from './file-input-resolver.js';
|
|
24
28
|
export * from './artifact-tools/DataSnapshotToolLibrary.js';
|
|
@@ -41,6 +45,7 @@ export * from './memory-manager-agent.js';
|
|
|
41
45
|
export * from './query-builder-agent.js';
|
|
42
46
|
export * from './MJAIAgentRequestEntityServer.js';
|
|
43
47
|
export * from './KnowledgeAgent.js';
|
|
48
|
+
export * from './DuplicateReasoningAgentProvider.js';
|
|
44
49
|
export * from './ClientToolRequestManager.js';
|
|
45
50
|
export * from './realtime/realtime-session-runner.js';
|
|
46
51
|
export * from './realtime/bridge-realtime-session-factory.js';
|
|
@@ -52,7 +57,13 @@ export * from './realtime/realtime-coagent-config.js';
|
|
|
52
57
|
export * from './realtime/realtime-narration.js';
|
|
53
58
|
export * from './realtime/realtime-channel-server-host.js';
|
|
54
59
|
export * from './realtime/whiteboard-channel-server.js';
|
|
60
|
+
export * from './realtime/client-context-channel-server.js';
|
|
55
61
|
export * from './realtime/meeting-controls-state.js';
|
|
56
62
|
export * from './realtime/meeting-controls-channel-server.js';
|
|
63
|
+
export * from './realtime/media-channel-server.js';
|
|
64
|
+
export * from './realtime/realtime-channel-server-data-context.js';
|
|
65
|
+
export * from './realtime/agent-media-library.js';
|
|
66
|
+
export * from './realtime/realtime-recording-capture.js';
|
|
67
|
+
export * from './realtime/realtime-recording-store.js';
|
|
57
68
|
export { RerankerService, RerankerConfiguration, parseRerankerConfiguration, RerankServiceResult, RerankObservabilityOptions, LLMReranker, } from '@memberjunction/ai-reranker';
|
|
58
69
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AAKnD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACrI,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AAKnD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACrI,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AAGpD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,GACZ,MAAM,6BAA6B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ export * from './agent-types/base-agent-type.js';
|
|
|
12
12
|
export * from './agent-types/loop-agent-response-type.js';
|
|
13
13
|
export * from './agent-types/loop-agent-prompt-params.js';
|
|
14
14
|
export * from './base-agent.js';
|
|
15
|
+
export * from './prompt-component-resolver.js';
|
|
15
16
|
export * from './agent-run-watchdog.js';
|
|
16
17
|
export * from './agent-types/index.js';
|
|
17
18
|
export * from './AgentRunner.js';
|
|
@@ -19,6 +20,9 @@ export * from './PayloadManager.js';
|
|
|
19
20
|
export * from './ScratchpadManager.js';
|
|
20
21
|
export * from './ArtifactToolManager.js';
|
|
21
22
|
export * from './MemoryWriteManager.js';
|
|
23
|
+
export * from './SkillMarkdownConverter.js';
|
|
24
|
+
export * from './SkillImportExportService.js';
|
|
25
|
+
export * from './operations/AISkillMarkdownOperations.js';
|
|
22
26
|
export * from './pipeline/index.js';
|
|
23
27
|
export * from './file-input-resolver.js';
|
|
24
28
|
export * from './artifact-tools/DataSnapshotToolLibrary.js';
|
|
@@ -41,6 +45,7 @@ export * from './memory-manager-agent.js';
|
|
|
41
45
|
export * from './query-builder-agent.js';
|
|
42
46
|
export * from './MJAIAgentRequestEntityServer.js';
|
|
43
47
|
export * from './KnowledgeAgent.js';
|
|
48
|
+
export * from './DuplicateReasoningAgentProvider.js';
|
|
44
49
|
export * from './ClientToolRequestManager.js';
|
|
45
50
|
export * from './realtime/realtime-session-runner.js';
|
|
46
51
|
export * from './realtime/bridge-realtime-session-factory.js';
|
|
@@ -56,8 +61,14 @@ export * from './realtime/realtime-coagent-config.js';
|
|
|
56
61
|
export * from './realtime/realtime-narration.js';
|
|
57
62
|
export * from './realtime/realtime-channel-server-host.js';
|
|
58
63
|
export * from './realtime/whiteboard-channel-server.js';
|
|
64
|
+
export * from './realtime/client-context-channel-server.js';
|
|
59
65
|
export * from './realtime/meeting-controls-state.js';
|
|
60
66
|
export * from './realtime/meeting-controls-channel-server.js';
|
|
67
|
+
export * from './realtime/media-channel-server.js';
|
|
68
|
+
export * from './realtime/realtime-channel-server-data-context.js';
|
|
69
|
+
export * from './realtime/agent-media-library.js';
|
|
70
|
+
export * from './realtime/realtime-recording-capture.js';
|
|
71
|
+
export * from './realtime/realtime-recording-store.js';
|
|
61
72
|
// Re-export from ai-reranker for backward compatibility
|
|
62
73
|
export { RerankerService, parseRerankerConfiguration, LLMReranker, } from '@memberjunction/ai-reranker';
|
|
63
74
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,4FAA4F;AAC5F,8FAA8F;AAC9F,2FAA2F;AAC3F,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAkE,MAAM,iCAAiC,CAAC;AACrI,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,cAAc,CAAC;AAC7B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wCAAwC,CAAC;AACvD,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0CAA0C,CAAC;AACzD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,mCAAmC,CAAC;AAClD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iCAAiC,CAAC;AAChD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kBAAkB,CAAC;AACjC,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,4FAA4F;AAC5F,8FAA8F;AAC9F,2FAA2F;AAC3F,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAkE,MAAM,iCAAiC,CAAC;AACrI,cAAc,4CAA4C,CAAC;AAC3D,cAAc,oCAAoC,CAAC;AACnD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC;AAChD,cAAc,iDAAiD,CAAC;AAChE,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,qCAAqC,CAAC;AAEpD,wDAAwD;AACxD,OAAO,EACL,eAAe,EAEf,0BAA0B,EAG1B,WAAW,GACZ,MAAM,6BAA6B,CAAC"}
|
|
@@ -67,12 +67,51 @@ export declare class MemoryManagerAgent extends BaseAgent {
|
|
|
67
67
|
* redundant round-trips the telemetry flagged. The simple projection skips all of them.
|
|
68
68
|
*/
|
|
69
69
|
private LoadHighValueAgentRuns;
|
|
70
|
+
/**
|
|
71
|
+
* Load recent agent runs that ended in failure, to mine corrective ("this approach didn't
|
|
72
|
+
* work") memory. Implements the plan's §6.1 selector: recent runs where **`Status`/`Success`
|
|
73
|
+
* indicates failure**. The two clauses below cover the full failure surface that is persisted
|
|
74
|
+
* on the run record:
|
|
75
|
+
* - `Status IN ('Failed','Cancelled') AND ErrorMessage IS NOT NULL` — explicit failures.
|
|
76
|
+
* This ALSO subsumes the plan's other two signals, because the engine records them here:
|
|
77
|
+
* the consecutive-failed-steps / unproductive-retry safety nets terminate the run with
|
|
78
|
+
* `Status='Failed'` and a descriptive `ErrorMessage` ("terminated after N consecutive…"),
|
|
79
|
+
* and a permanent context-recovery failure likewise ends `Status='Failed'`
|
|
80
|
+
* (see base-agent.ts safety-net + finalization paths).
|
|
81
|
+
* - `Success = 0 AND Status NOT IN ('Running','Paused')` — runs flagged unsuccessful that did
|
|
82
|
+
* not surface as a hard 'Failed'/'Cancelled' status (the plan's `Success` signal).
|
|
83
|
+
* No subquery, no inline SQL literal beyond the bit comparison — dialect-agnostic across SQL
|
|
84
|
+
* Server and PostgreSQL. Bounded (MaxRows 50) and cooldown-aware via the `since` window,
|
|
85
|
+
* matching the high-value loader's lightweight projection. The confidence gate (≥80) downstream
|
|
86
|
+
* discards transient/low-signal failures that carry no generalizable lesson.
|
|
87
|
+
*/
|
|
88
|
+
private LoadInstructiveFailedAgentRuns;
|
|
70
89
|
/**
|
|
71
90
|
* Extract notes from conversations with rating data using AI analysis.
|
|
72
91
|
* This is the primary method that handles rated, unrated, positive, and negative feedback.
|
|
73
92
|
* Uses LLM-based deduplication and applies sparsity controls.
|
|
74
93
|
*/
|
|
75
94
|
private ExtractNotesFromConversations;
|
|
95
|
+
/**
|
|
96
|
+
* Mine corrective ("avoid this") memory from failed/cancelled agent runs. Each failed run
|
|
97
|
+
* is presented to the same extraction pipeline as a negative-outcome thread — the extraction
|
|
98
|
+
* prompt already knows how to draw lessons from negative feedback — then the output is clamped
|
|
99
|
+
* to the corrective note types (Issue/Context only, never Constraint/Preference/Example) and
|
|
100
|
+
* tagged 'Ephemeral' so a one-off transient failure decays unless reinforced by recurrence.
|
|
101
|
+
*/
|
|
102
|
+
private ExtractNotesFromFailedRuns;
|
|
103
|
+
/**
|
|
104
|
+
* Build the negative-outcome transcript line fed to corrective extraction for a failed run.
|
|
105
|
+
* The error is capped so a large stack trace can't bloat the extraction prompt — ironic for a
|
|
106
|
+
* token-optimization feature — while still carrying enough signal for a generalizable lesson.
|
|
107
|
+
*/
|
|
108
|
+
private buildFailureSummary;
|
|
109
|
+
/**
|
|
110
|
+
* Clamp failure-mined notes to the corrective types and tag them Ephemeral. Dropping
|
|
111
|
+
* non-Issue/Context notes preserves the prompt-injection defense — a mined failure can
|
|
112
|
+
* never become a behavioral Constraint without Memory-Manager/human promotion.
|
|
113
|
+
*/
|
|
114
|
+
private markCorrectiveNotes;
|
|
76
115
|
/**
|
|
77
116
|
* Common extraction logic for note extraction. Thin orchestrator that coordinates:
|
|
78
117
|
* (1) running the extraction prompt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-manager-agent.d.ts","sourceRoot":"","sources":["../src/memory-manager-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAA0E,MAAM,sBAAsB,CAAC;AACxH,OAAO,EAEH,mBAAmB,EAKtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAqC,kBAAkB,EAAE,kBAAkB,EAAE,iBAAiB,EAA2B,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-manager-agent.d.ts","sourceRoot":"","sources":["../src/memory-manager-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,8 @@ const EXTRACTION_CONFIG = {
|
|
|
24
24
|
minContentLength: 10, // Minimum note content length (lowered from 20 to allow short names)
|
|
25
25
|
cooldownHours: 24 // Don't re-extract from same conversation within 24h
|
|
26
26
|
};
|
|
27
|
+
/** Cap on a failed run's ErrorMessage length when summarizing it for corrective extraction. */
|
|
28
|
+
const MAX_FAILURE_ERROR_CHARS = 2000;
|
|
27
29
|
/**
|
|
28
30
|
* Configuration for note consolidation.
|
|
29
31
|
* Consolidation finds clusters of similar notes and synthesizes them into single comprehensive notes.
|
|
@@ -395,6 +397,38 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
395
397
|
}, contextUser);
|
|
396
398
|
return result.Success ? (result.Results || []) : [];
|
|
397
399
|
}
|
|
400
|
+
/**
|
|
401
|
+
* Load recent agent runs that ended in failure, to mine corrective ("this approach didn't
|
|
402
|
+
* work") memory. Implements the plan's §6.1 selector: recent runs where **`Status`/`Success`
|
|
403
|
+
* indicates failure**. The two clauses below cover the full failure surface that is persisted
|
|
404
|
+
* on the run record:
|
|
405
|
+
* - `Status IN ('Failed','Cancelled') AND ErrorMessage IS NOT NULL` — explicit failures.
|
|
406
|
+
* This ALSO subsumes the plan's other two signals, because the engine records them here:
|
|
407
|
+
* the consecutive-failed-steps / unproductive-retry safety nets terminate the run with
|
|
408
|
+
* `Status='Failed'` and a descriptive `ErrorMessage` ("terminated after N consecutive…"),
|
|
409
|
+
* and a permanent context-recovery failure likewise ends `Status='Failed'`
|
|
410
|
+
* (see base-agent.ts safety-net + finalization paths).
|
|
411
|
+
* - `Success = 0 AND Status NOT IN ('Running','Paused')` — runs flagged unsuccessful that did
|
|
412
|
+
* not surface as a hard 'Failed'/'Cancelled' status (the plan's `Success` signal).
|
|
413
|
+
* No subquery, no inline SQL literal beyond the bit comparison — dialect-agnostic across SQL
|
|
414
|
+
* Server and PostgreSQL. Bounded (MaxRows 50) and cooldown-aware via the `since` window,
|
|
415
|
+
* matching the high-value loader's lightweight projection. The confidence gate (≥80) downstream
|
|
416
|
+
* discards transient/low-signal failures that carry no generalizable lesson.
|
|
417
|
+
*/
|
|
418
|
+
async LoadInstructiveFailedAgentRuns(since, contextUser) {
|
|
419
|
+
const rv = new RunView();
|
|
420
|
+
const sinceFilter = since ? ` AND __mj_CreatedAt >= '${since.toISOString()}'` : '';
|
|
421
|
+
const filter = `((Status IN ('Failed', 'Cancelled') AND ErrorMessage IS NOT NULL) OR (Success = 0 AND Status NOT IN ('Running', 'Paused')))${sinceFilter}`;
|
|
422
|
+
const result = await rv.RunView({
|
|
423
|
+
EntityName: 'MJ: AI Agent Runs',
|
|
424
|
+
ExtraFilter: filter,
|
|
425
|
+
OrderBy: '__mj_CreatedAt DESC',
|
|
426
|
+
MaxRows: 50,
|
|
427
|
+
Fields: ['ID', 'AgentID', 'ConversationID', 'Status', 'ErrorMessage'],
|
|
428
|
+
ResultType: 'simple'
|
|
429
|
+
}, contextUser);
|
|
430
|
+
return result.Success ? (result.Results || []) : [];
|
|
431
|
+
}
|
|
398
432
|
/**
|
|
399
433
|
* Extract notes from conversations with rating data using AI analysis.
|
|
400
434
|
* This is the primary method that handles rated, unrated, positive, and negative feedback.
|
|
@@ -436,6 +470,70 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
436
470
|
};
|
|
437
471
|
return this.executeNoteExtraction(promptData, existingNotes, contextUser);
|
|
438
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* Mine corrective ("avoid this") memory from failed/cancelled agent runs. Each failed run
|
|
475
|
+
* is presented to the same extraction pipeline as a negative-outcome thread — the extraction
|
|
476
|
+
* prompt already knows how to draw lessons from negative feedback — then the output is clamped
|
|
477
|
+
* to the corrective note types (Issue/Context only, never Constraint/Preference/Example) and
|
|
478
|
+
* tagged 'Ephemeral' so a one-off transient failure decays unless reinforced by recurrence.
|
|
479
|
+
*/
|
|
480
|
+
async ExtractNotesFromFailedRuns(failedRuns, contextUser) {
|
|
481
|
+
if (failedRuns.length === 0) {
|
|
482
|
+
return [];
|
|
483
|
+
}
|
|
484
|
+
const existingNotes = AIEngine.Instance.AgentNotes.filter(n => n.Status === 'Active');
|
|
485
|
+
const conversationThreads = failedRuns.map(run => ({
|
|
486
|
+
conversationId: run.ConversationID || run.ID,
|
|
487
|
+
agentRunId: run.ID,
|
|
488
|
+
hasPositiveRating: false,
|
|
489
|
+
hasNegativeRating: true,
|
|
490
|
+
isUnrated: false,
|
|
491
|
+
messages: [{
|
|
492
|
+
id: run.ID,
|
|
493
|
+
role: 'system',
|
|
494
|
+
message: this.buildFailureSummary(run),
|
|
495
|
+
createdAt: new Date(),
|
|
496
|
+
rating: -1,
|
|
497
|
+
ratingComment: 'Agent run failed — mine for a corrective lesson.'
|
|
498
|
+
}]
|
|
499
|
+
}));
|
|
500
|
+
const promptData = {
|
|
501
|
+
conversationThreads,
|
|
502
|
+
existingNotes: existingNotes.map(n => ({
|
|
503
|
+
id: n.ID,
|
|
504
|
+
type: n.Type,
|
|
505
|
+
content: n.Note,
|
|
506
|
+
agentId: n.AgentID,
|
|
507
|
+
userId: n.UserID,
|
|
508
|
+
companyId: n.CompanyID
|
|
509
|
+
}))
|
|
510
|
+
};
|
|
511
|
+
const extracted = await this.executeNoteExtraction(promptData, existingNotes, contextUser);
|
|
512
|
+
return this.markCorrectiveNotes(extracted);
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Build the negative-outcome transcript line fed to corrective extraction for a failed run.
|
|
516
|
+
* The error is capped so a large stack trace can't bloat the extraction prompt — ironic for a
|
|
517
|
+
* token-optimization feature — while still carrying enough signal for a generalizable lesson.
|
|
518
|
+
*/
|
|
519
|
+
buildFailureSummary(run) {
|
|
520
|
+
const rawError = run.ErrorMessage ?? '(none recorded)';
|
|
521
|
+
const error = rawError.length > MAX_FAILURE_ERROR_CHARS
|
|
522
|
+
? `${rawError.slice(0, MAX_FAILURE_ERROR_CHARS)}… (truncated)`
|
|
523
|
+
: rawError;
|
|
524
|
+
return `An agent run ended with status "${run.Status}". Error: ${error}. `
|
|
525
|
+
+ `Identify a generalizable lesson to avoid repeating this failure; if none generalizes, extract nothing.`;
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Clamp failure-mined notes to the corrective types and tag them Ephemeral. Dropping
|
|
529
|
+
* non-Issue/Context notes preserves the prompt-injection defense — a mined failure can
|
|
530
|
+
* never become a behavioral Constraint without Memory-Manager/human promotion.
|
|
531
|
+
*/
|
|
532
|
+
markCorrectiveNotes(notes) {
|
|
533
|
+
return notes
|
|
534
|
+
.filter(n => n.type === 'Issue' || n.type === 'Context')
|
|
535
|
+
.map(n => ({ ...n, protectionTierHint: 'Ephemeral' }));
|
|
536
|
+
}
|
|
439
537
|
/**
|
|
440
538
|
* Common extraction logic for note extraction. Thin orchestrator that coordinates:
|
|
441
539
|
* (1) running the extraction prompt,
|
|
@@ -966,7 +1064,9 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
966
1064
|
note.AccessCount = 1; // Required field
|
|
967
1065
|
// Consolidation tracking fields
|
|
968
1066
|
note.ConsolidationCount = 0; // Raw extraction, never consolidated
|
|
969
|
-
|
|
1067
|
+
// Failure-mined corrective notes carry an explicit tier hint (Ephemeral) so
|
|
1068
|
+
// they decay fast unless reinforced; otherwise apply the default tier.
|
|
1069
|
+
note.ProtectionTier = extracted.protectionTierHint || (note.IsAutoGenerated ? 'Standard' : 'Protected');
|
|
970
1070
|
note.SourceConversationID = extracted.sourceConversationId || null;
|
|
971
1071
|
// Only use if it's a valid UUID (LLM now sees message IDs in the prompt)
|
|
972
1072
|
note.SourceConversationDetailID = MemoryManagerAgent_1.isValidUUID(extracted.sourceConversationDetailId) ? extracted.sourceConversationDetailId : null;
|
|
@@ -2830,9 +2930,13 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
2830
2930
|
const step2 = await this.CreateRunStep('Decision', 'Load High-Value Agent Runs', {
|
|
2831
2931
|
since: lastRunTime?.toISOString() || null
|
|
2832
2932
|
});
|
|
2833
|
-
const
|
|
2933
|
+
const step3 = await this.CreateRunStep('Decision', 'Load Instructive Failed Agent Runs', {
|
|
2934
|
+
since: lastRunTime?.toISOString() || null
|
|
2935
|
+
});
|
|
2936
|
+
const [conversations, agentRuns, failedRuns] = await Promise.all([
|
|
2834
2937
|
this.LoadConversationsWithNewActivity(lastRunTime, agentsUsingMemory, params.contextUser),
|
|
2835
|
-
this.LoadHighValueAgentRuns(lastRunTime, params.contextUser)
|
|
2938
|
+
this.LoadHighValueAgentRuns(lastRunTime, params.contextUser),
|
|
2939
|
+
this.LoadInstructiveFailedAgentRuns(lastRunTime, params.contextUser)
|
|
2836
2940
|
]);
|
|
2837
2941
|
const totalMessages = conversations.reduce((sum, c) => sum + c.messages.length, 0);
|
|
2838
2942
|
await this.FinalizeRunStep(step1, true, {
|
|
@@ -2845,11 +2949,15 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
2845
2949
|
await this.FinalizeRunStep(step2, true, {
|
|
2846
2950
|
runCount: agentRuns.length
|
|
2847
2951
|
});
|
|
2952
|
+
await this.FinalizeRunStep(step3, true, {
|
|
2953
|
+
runCount: failedRuns.length
|
|
2954
|
+
});
|
|
2848
2955
|
if (this._verbose) {
|
|
2849
2956
|
LogStatus(`Memory Manager: Found ${conversations.length} conversations with new activity`);
|
|
2850
2957
|
LogStatus(`Memory Manager: Found ${agentRuns.length} high-value agent runs`);
|
|
2958
|
+
LogStatus(`Memory Manager: Found ${failedRuns.length} instructive failed agent runs`);
|
|
2851
2959
|
}
|
|
2852
|
-
const hasNewData = conversations.length > 0 || agentRuns.length > 0;
|
|
2960
|
+
const hasNewData = conversations.length > 0 || agentRuns.length > 0 || failedRuns.length > 0;
|
|
2853
2961
|
// Initialization guard: ensure vector services exist for semantic dedup.
|
|
2854
2962
|
// If no notes existed at server startup, _noteVectorService is null and
|
|
2855
2963
|
// AddOrUpdateSingleNoteEmbedding will throw when saving new notes.
|
|
@@ -2864,6 +2972,11 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
2864
2972
|
if (this._verbose) {
|
|
2865
2973
|
LogStatus(`Memory Manager: Extracted ${extractedNotes.length} potential notes`);
|
|
2866
2974
|
}
|
|
2975
|
+
// Mine corrective notes from failed runs (Issue/Context only, Ephemeral tier).
|
|
2976
|
+
const correctiveNotes = await this.ExtractNotesFromFailedRuns(failedRuns, params.contextUser);
|
|
2977
|
+
if (this._verbose) {
|
|
2978
|
+
LogStatus(`Memory Manager: Extracted ${correctiveNotes.length} corrective notes from failed runs`);
|
|
2979
|
+
}
|
|
2867
2980
|
// Convert conversations back to flat details for example extraction.
|
|
2868
2981
|
// ExtractExamples accepts a ConversationDetailProjection, so we only
|
|
2869
2982
|
// need the fields it reads — no entity cast.
|
|
@@ -2911,7 +3024,7 @@ let MemoryManagerAgent = MemoryManagerAgent_1 = class MemoryManagerAgent extends
|
|
|
2911
3024
|
example.agentId = '';
|
|
2912
3025
|
}
|
|
2913
3026
|
}
|
|
2914
|
-
notesCreated = await this.CreateNoteRecords(extractedNotes, params.contextUser);
|
|
3027
|
+
notesCreated = await this.CreateNoteRecords([...extractedNotes, ...correctiveNotes], params.contextUser);
|
|
2915
3028
|
examplesCreated = await this.CreateExampleRecords(extractedExamples, params.contextUser);
|
|
2916
3029
|
if (this._verbose)
|
|
2917
3030
|
LogStatus(`Memory Manager: Created ${notesCreated} notes and ${examplesCreated} examples`);
|