@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.
Files changed (87) hide show
  1. package/README.md +8 -0
  2. package/dist/DuplicateReasoningAgentProvider.d.ts +35 -0
  3. package/dist/DuplicateReasoningAgentProvider.d.ts.map +1 -0
  4. package/dist/DuplicateReasoningAgentProvider.js +95 -0
  5. package/dist/DuplicateReasoningAgentProvider.js.map +1 -0
  6. package/dist/MJAIAgentRequestEntityServer.d.ts +7 -0
  7. package/dist/MJAIAgentRequestEntityServer.d.ts.map +1 -1
  8. package/dist/MJAIAgentRequestEntityServer.js +28 -1
  9. package/dist/MJAIAgentRequestEntityServer.js.map +1 -1
  10. package/dist/SkillImportExportService.d.ts +63 -0
  11. package/dist/SkillImportExportService.d.ts.map +1 -0
  12. package/dist/SkillImportExportService.js +148 -0
  13. package/dist/SkillImportExportService.js.map +1 -0
  14. package/dist/SkillMarkdownConverter.d.ts +82 -0
  15. package/dist/SkillMarkdownConverter.d.ts.map +1 -0
  16. package/dist/SkillMarkdownConverter.js +145 -0
  17. package/dist/SkillMarkdownConverter.js.map +1 -0
  18. package/dist/agent-types/loop-agent-response-type.d.ts +17 -2
  19. package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
  20. package/dist/agent-types/loop-agent-response-type.js.map +1 -1
  21. package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
  22. package/dist/agent-types/loop-agent-type.js +33 -1
  23. package/dist/agent-types/loop-agent-type.js.map +1 -1
  24. package/dist/base-agent.d.ts +373 -12
  25. package/dist/base-agent.d.ts.map +1 -1
  26. package/dist/base-agent.js +1007 -78
  27. package/dist/base-agent.js.map +1 -1
  28. package/dist/index.d.ts +11 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +11 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/memory-manager-agent.d.ts +39 -0
  33. package/dist/memory-manager-agent.d.ts.map +1 -1
  34. package/dist/memory-manager-agent.js +118 -5
  35. package/dist/memory-manager-agent.js.map +1 -1
  36. package/dist/operations/AISkillMarkdownOperations.d.ts +11 -0
  37. package/dist/operations/AISkillMarkdownOperations.d.ts.map +1 -0
  38. package/dist/operations/AISkillMarkdownOperations.js +57 -0
  39. package/dist/operations/AISkillMarkdownOperations.js.map +1 -0
  40. package/dist/prompt-component-resolver.d.ts +73 -0
  41. package/dist/prompt-component-resolver.d.ts.map +1 -0
  42. package/dist/prompt-component-resolver.js +166 -0
  43. package/dist/prompt-component-resolver.js.map +1 -0
  44. package/dist/realtime/agent-media-library.d.ts +65 -0
  45. package/dist/realtime/agent-media-library.d.ts.map +1 -0
  46. package/dist/realtime/agent-media-library.js +160 -0
  47. package/dist/realtime/agent-media-library.js.map +1 -0
  48. package/dist/realtime/client-context-channel-server.d.ts +59 -0
  49. package/dist/realtime/client-context-channel-server.d.ts.map +1 -0
  50. package/dist/realtime/client-context-channel-server.js +78 -0
  51. package/dist/realtime/client-context-channel-server.js.map +1 -0
  52. package/dist/realtime/media-channel-server.d.ts +73 -0
  53. package/dist/realtime/media-channel-server.d.ts.map +1 -0
  54. package/dist/realtime/media-channel-server.js +145 -0
  55. package/dist/realtime/media-channel-server.js.map +1 -0
  56. package/dist/realtime/realtime-channel-server-data-context.d.ts +42 -0
  57. package/dist/realtime/realtime-channel-server-data-context.d.ts.map +1 -0
  58. package/dist/realtime/realtime-channel-server-data-context.js +29 -0
  59. package/dist/realtime/realtime-channel-server-data-context.js.map +1 -0
  60. package/dist/realtime/realtime-channel-server-host.d.ts.map +1 -1
  61. package/dist/realtime/realtime-channel-server-host.js +8 -2
  62. package/dist/realtime/realtime-channel-server-host.js.map +1 -1
  63. package/dist/realtime/realtime-client-session-service.d.ts +85 -5
  64. package/dist/realtime/realtime-client-session-service.d.ts.map +1 -1
  65. package/dist/realtime/realtime-client-session-service.js +234 -25
  66. package/dist/realtime/realtime-client-session-service.js.map +1 -1
  67. package/dist/realtime/realtime-coagent-config.d.ts +82 -3
  68. package/dist/realtime/realtime-coagent-config.d.ts.map +1 -1
  69. package/dist/realtime/realtime-coagent-config.js +147 -6
  70. package/dist/realtime/realtime-coagent-config.js.map +1 -1
  71. package/dist/realtime/realtime-recording-capture.d.ts +125 -0
  72. package/dist/realtime/realtime-recording-capture.d.ts.map +1 -0
  73. package/dist/realtime/realtime-recording-capture.js +317 -0
  74. package/dist/realtime/realtime-recording-capture.js.map +1 -0
  75. package/dist/realtime/realtime-recording-store.d.ts +105 -0
  76. package/dist/realtime/realtime-recording-store.d.ts.map +1 -0
  77. package/dist/realtime/realtime-recording-store.js +216 -0
  78. package/dist/realtime/realtime-recording-store.js.map +1 -0
  79. package/dist/realtime/realtime-session-runner.d.ts +33 -2
  80. package/dist/realtime/realtime-session-runner.d.ts.map +1 -1
  81. package/dist/realtime/realtime-session-runner.js +45 -2
  82. package/dist/realtime/realtime-session-runner.js.map +1 -1
  83. package/dist/realtime/realtime-tool-broker.d.ts +41 -3
  84. package/dist/realtime/realtime-tool-broker.d.ts.map +1 -1
  85. package/dist/realtime/realtime-tool-broker.js +67 -3
  86. package/dist/realtime/realtime-tool-broker.js.map +1 -1
  87. 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
@@ -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;AAG3D,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,GACZ,MAAM,6BAA6B,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;AAE3D,wDAAwD;AACxD,OAAO,EACL,eAAe,EAEf,0BAA0B,EAG1B,WAAW,GACZ,MAAM,6BAA6B,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":"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"}
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
- note.ProtectionTier = note.IsAutoGenerated ? 'Standard' : 'Protected';
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 [conversations, agentRuns] = await Promise.all([
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`);