@mxf-dev/core 3.0.0 → 3.2.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 (96) hide show
  1. package/dist/config/ConfigManager.d.ts +64 -0
  2. package/dist/config/ConfigManager.d.ts.map +1 -1
  3. package/dist/config/ConfigManager.js +68 -1
  4. package/dist/config/ConfigManager.js.map +1 -1
  5. package/dist/config/MeilisearchIngressLimits.d.ts +57 -0
  6. package/dist/config/MeilisearchIngressLimits.d.ts.map +1 -0
  7. package/dist/config/MeilisearchIngressLimits.js +57 -0
  8. package/dist/config/MeilisearchIngressLimits.js.map +1 -0
  9. package/dist/database/adapters/mongodb/MongoChannelRepository.d.ts.map +1 -1
  10. package/dist/database/adapters/mongodb/MongoChannelRepository.js +2 -1
  11. package/dist/database/adapters/mongodb/MongoChannelRepository.js.map +1 -1
  12. package/dist/events/EventNames.d.ts +2 -0
  13. package/dist/events/EventNames.d.ts.map +1 -1
  14. package/dist/events/event-definitions/ConfigEvents.d.ts +6 -0
  15. package/dist/events/event-definitions/ConfigEvents.d.ts.map +1 -1
  16. package/dist/events/event-definitions/ConfigEvents.js +0 -5
  17. package/dist/events/event-definitions/ConfigEvents.js.map +1 -1
  18. package/dist/events/event-definitions/MeilisearchEvents.d.ts +3 -1
  19. package/dist/events/event-definitions/MeilisearchEvents.d.ts.map +1 -1
  20. package/dist/events/event-definitions/MeilisearchEvents.js +4 -0
  21. package/dist/events/event-definitions/MeilisearchEvents.js.map +1 -1
  22. package/dist/events/event-definitions/SystemEvents.d.ts +16 -0
  23. package/dist/events/event-definitions/SystemEvents.d.ts.map +1 -1
  24. package/dist/events/event-definitions/SystemEvents.js +2 -0
  25. package/dist/events/event-definitions/SystemEvents.js.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/interfaces/Channel.d.ts +3 -0
  31. package/dist/interfaces/Channel.d.ts.map +1 -1
  32. package/dist/interfaces/ChannelConfig.d.ts +2 -0
  33. package/dist/interfaces/ChannelConfig.d.ts.map +1 -1
  34. package/dist/interfaces/ConversationMessage.d.ts +1 -1
  35. package/dist/interfaces/ConversationMessage.d.ts.map +1 -1
  36. package/dist/models/channel.d.ts +2 -0
  37. package/dist/models/channel.d.ts.map +1 -1
  38. package/dist/models/channel.js +8 -0
  39. package/dist/models/channel.js.map +1 -1
  40. package/dist/models/task.d.ts.map +1 -1
  41. package/dist/models/task.js.map +1 -1
  42. package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
  43. package/dist/prompts/MxfAgentSystemPrompt.js +9 -1
  44. package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
  45. package/dist/prompts/SystemLlmStanceGuidance.d.ts +37 -0
  46. package/dist/prompts/SystemLlmStanceGuidance.d.ts.map +1 -0
  47. package/dist/prompts/SystemLlmStanceGuidance.js +48 -0
  48. package/dist/prompts/SystemLlmStanceGuidance.js.map +1 -0
  49. package/dist/repositories/interfaces/IChannelRepository.d.ts +2 -0
  50. package/dist/repositories/interfaces/IChannelRepository.d.ts.map +1 -1
  51. package/dist/schemas/EventPayloadSchema.d.ts +14 -1
  52. package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
  53. package/dist/schemas/EventPayloadSchema.js +27 -0
  54. package/dist/schemas/EventPayloadSchema.js.map +1 -1
  55. package/dist/services/BackgroundTaskManager.d.ts +6 -0
  56. package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
  57. package/dist/services/BackgroundTaskManager.js +35 -4
  58. package/dist/services/BackgroundTaskManager.js.map +1 -1
  59. package/dist/services/MxfMeilisearchService.d.ts +19 -3
  60. package/dist/services/MxfMeilisearchService.d.ts.map +1 -1
  61. package/dist/services/MxfMeilisearchService.js +46 -34
  62. package/dist/services/MxfMeilisearchService.js.map +1 -1
  63. package/dist/types/SystemLlmStanceTypes.d.ts +123 -0
  64. package/dist/types/SystemLlmStanceTypes.d.ts.map +1 -0
  65. package/dist/types/SystemLlmStanceTypes.js +101 -0
  66. package/dist/types/SystemLlmStanceTypes.js.map +1 -0
  67. package/dist/types/TaskTypes.d.ts +29 -0
  68. package/dist/types/TaskTypes.d.ts.map +1 -1
  69. package/dist/types/TaskTypes.js +41 -1
  70. package/dist/types/TaskTypes.js.map +1 -1
  71. package/dist/utils/PromptTemplateReplacer.d.ts +5 -0
  72. package/dist/utils/PromptTemplateReplacer.d.ts.map +1 -1
  73. package/dist/utils/PromptTemplateReplacer.js +13 -0
  74. package/dist/utils/PromptTemplateReplacer.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/config/ConfigManager.ts +126 -1
  77. package/src/config/MeilisearchIngressLimits.ts +63 -0
  78. package/src/database/adapters/mongodb/MongoChannelRepository.ts +2 -1
  79. package/src/events/event-definitions/ConfigEvents.ts +8 -0
  80. package/src/events/event-definitions/MeilisearchEvents.ts +7 -1
  81. package/src/events/event-definitions/SystemEvents.ts +24 -0
  82. package/src/index.ts +7 -0
  83. package/src/interfaces/Channel.ts +4 -0
  84. package/src/interfaces/ChannelConfig.ts +6 -0
  85. package/src/interfaces/ConversationMessage.ts +1 -0
  86. package/src/models/channel.ts +10 -0
  87. package/src/models/task.ts +5 -1
  88. package/src/prompts/MxfAgentSystemPrompt.ts +9 -1
  89. package/src/prompts/SystemLlmStanceGuidance.ts +67 -0
  90. package/src/repositories/interfaces/IChannelRepository.ts +2 -0
  91. package/src/schemas/EventPayloadSchema.ts +44 -1
  92. package/src/services/BackgroundTaskManager.ts +35 -4
  93. package/src/services/MxfMeilisearchService.ts +55 -43
  94. package/src/types/SystemLlmStanceTypes.ts +162 -0
  95. package/src/types/TaskTypes.ts +69 -2
  96. package/src/utils/PromptTemplateReplacer.ts +17 -0
@@ -90,6 +90,35 @@ export interface ChannelTask {
90
90
  };
91
91
  assignmentStrategy: AssignmentStrategy;
92
92
  }
93
+ /**
94
+ * What `task_complete` stores in `ChannelTask.result.output`.
95
+ *
96
+ * This is the shape TaskService.handleTaskCompletion writes when an agent
97
+ * completes a task through the task_complete tool. It is not the only shape
98
+ * `result.output` can hold: a caller can also set `result.output` directly
99
+ * through completeTask() or the REST completion route, so this type is a
100
+ * guard to check against, not a blanket narrowing of `output`.
101
+ */
102
+ export interface TaskCompletionOutput {
103
+ agentId: string;
104
+ summary: string;
105
+ details?: Record<string, unknown>;
106
+ nextSteps?: string;
107
+ reportedSuccess: boolean;
108
+ requestId: string;
109
+ }
110
+ /**
111
+ * Checks whether a value matches the TaskCompletionOutput shape.
112
+ * Used to read `result.output` from a task without assuming which
113
+ * completion path (task_complete vs. completeTask()/REST) produced it.
114
+ */
115
+ export declare function isTaskCompletionOutput(value: unknown): value is TaskCompletionOutput;
116
+ /**
117
+ * Reads `task.result.output` as a TaskCompletionOutput, or returns undefined
118
+ * when the task has no result, no output, or an output that does not match
119
+ * (e.g. a value a caller passed directly to completeTask()/REST).
120
+ */
121
+ export declare function getTaskCompletionOutput(task: Pick<ChannelTask, 'result'> | null | undefined): TaskCompletionOutput | undefined;
93
122
  /**
94
123
  * Task creation request
95
124
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/types/TaskTypes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/types/TaskTypes.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,45 @@
17
17
  * @repository https://github.com/BradA1878/model-exchange-framework
18
18
  * @documentation https://mxf-dev.github.io/mxf/
19
19
  */
20
- export {};
20
+ /**
21
+ * Checks whether a value matches the TaskCompletionOutput shape.
22
+ * Used to read `result.output` from a task without assuming which
23
+ * completion path (task_complete vs. completeTask()/REST) produced it.
24
+ */
25
+ export function isTaskCompletionOutput(value) {
26
+ if (typeof value !== 'object' || value === null) {
27
+ return false;
28
+ }
29
+ const candidate = value;
30
+ if (typeof candidate.agentId !== 'string' || candidate.agentId.length === 0) {
31
+ return false;
32
+ }
33
+ if (typeof candidate.summary !== 'string') {
34
+ return false;
35
+ }
36
+ if (typeof candidate.reportedSuccess !== 'boolean') {
37
+ return false;
38
+ }
39
+ if (typeof candidate.requestId !== 'string' || candidate.requestId.length === 0) {
40
+ return false;
41
+ }
42
+ if (candidate.details !== undefined) {
43
+ if (typeof candidate.details !== 'object' || candidate.details === null || Array.isArray(candidate.details)) {
44
+ return false;
45
+ }
46
+ }
47
+ if (candidate.nextSteps !== undefined && typeof candidate.nextSteps !== 'string') {
48
+ return false;
49
+ }
50
+ return true;
51
+ }
52
+ /**
53
+ * Reads `task.result.output` as a TaskCompletionOutput, or returns undefined
54
+ * when the task has no result, no output, or an output that does not match
55
+ * (e.g. a value a caller passed directly to completeTask()/REST).
56
+ */
57
+ export function getTaskCompletionOutput(task) {
58
+ const output = task?.result?.output;
59
+ return isTaskCompletionOutput(output) ? output : undefined;
60
+ }
21
61
  //# sourceMappingURL=TaskTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskTypes.js","sourceRoot":"","sources":["../../src/types/TaskTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"TaskTypes.js","sourceRoot":"","sources":["../../src/types/TaskTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AA+HH;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9E,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,IAAI,SAAS,CAAC,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1G,OAAO,KAAK,CAAC;QACjB,CAAC;IACL,CAAC;IACD,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACnC,IAAoD;IAEpD,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;IACpC,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AAC/D,CAAC"}
@@ -30,7 +30,9 @@
30
30
  * - {{ISO_TIMESTAMP}}: Current ISO 8601 timestamp
31
31
  * - {{AGENT_ID}}: Agent ID (context-based)
32
32
  * - {{CHANNEL_ID}}: Channel ID (context-based)
33
+ * - {{SYSTEM_LLM_STANCE}} / {{SYSTEM_LLM_STANCE_GUIDANCE}}: the channel's SystemLLM stance and what it means for the agent
33
34
  */
35
+ import { type SystemLlmStance } from '../types/SystemLlmStanceTypes.js';
34
36
  /**
35
37
  * Available prompt templates as constants
36
38
  * Export these for use in prompt builders
@@ -51,6 +53,8 @@ export declare const PROMPT_TEMPLATES: {
51
53
  readonly LLM_PROVIDER: "{{LLM_PROVIDER}}";
52
54
  readonly LLM_MODEL: "{{LLM_MODEL}}";
53
55
  readonly SYSTEM_LLM_STATUS: "{{SYSTEM_LLM_STATUS}}";
56
+ readonly SYSTEM_LLM_STANCE: "{{SYSTEM_LLM_STANCE}}";
57
+ readonly SYSTEM_LLM_STANCE_GUIDANCE: "{{SYSTEM_LLM_STANCE_GUIDANCE}}";
54
58
  readonly OS_PLATFORM: "{{OS_PLATFORM}}";
55
59
  readonly CURRENT_ORPAR_PHASE: "{{CURRENT_ORPAR_PHASE}}";
56
60
  readonly CURRENT_ORPAR_PHASE_GUIDANCE: "{{CURRENT_ORPAR_PHASE_GUIDANCE}}";
@@ -71,6 +75,7 @@ export interface TemplateContext {
71
75
  llmProvider?: string;
72
76
  llmModel?: string;
73
77
  systemLlmEnabled?: boolean;
78
+ systemLlmStance?: SystemLlmStance;
74
79
  currentOrparPhase?: 'Observe' | 'Reason' | 'Plan' | 'Act' | 'Reflect' | null;
75
80
  currentTaskId?: string;
76
81
  currentTaskTitle?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PromptTemplateReplacer.d.ts","sourceRoot":"","sources":["../../src/utils/PromptTemplateReplacer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;GAaG;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;CAkCnB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAE5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;IAG7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,sBAAsB;IAC/B;;;;;;OAMG;WACW,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM;IAgBjF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAwCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAyFtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAgB5B;;OAEG;WACW,wBAAwB,IAAI;QACtC,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACtB;CA6BJ"}
1
+ {"version":3,"file":"PromptTemplateReplacer.d.ts","sourceRoot":"","sources":["../../src/utils/PromptTemplateReplacer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGlG;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;CAoCnB,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,eAAe;IAE5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAG5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,eAAe,CAAC,EAAE,eAAe,CAAC;IAGlC,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;IAG7E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,qBAAa,sBAAsB;IAC/B;;;;;;OAMG;WACW,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM;IAgBjF;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,wBAAwB;IAwCvC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAkGtC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAgB5B;;OAEG;WACW,wBAAwB,IAAI;QACtC,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;KACtB;CA6BJ"}
@@ -30,7 +30,10 @@
30
30
  * - {{ISO_TIMESTAMP}}: Current ISO 8601 timestamp
31
31
  * - {{AGENT_ID}}: Agent ID (context-based)
32
32
  * - {{CHANNEL_ID}}: Channel ID (context-based)
33
+ * - {{SYSTEM_LLM_STANCE}} / {{SYSTEM_LLM_STANCE_GUIDANCE}}: the channel's SystemLLM stance and what it means for the agent
33
34
  */
35
+ import { DEFAULT_SYSTEMLLM_STANCE } from '../types/SystemLlmStanceTypes.js';
36
+ import { buildSystemLlmStanceGuidance } from '../prompts/SystemLlmStanceGuidance.js';
34
37
  /**
35
38
  * Available prompt templates as constants
36
39
  * Export these for use in prompt builders
@@ -55,6 +58,8 @@ export const PROMPT_TEMPLATES = {
55
58
  LLM_PROVIDER: '{{LLM_PROVIDER}}',
56
59
  LLM_MODEL: '{{LLM_MODEL}}',
57
60
  SYSTEM_LLM_STATUS: '{{SYSTEM_LLM_STATUS}}',
61
+ SYSTEM_LLM_STANCE: '{{SYSTEM_LLM_STANCE}}',
62
+ SYSTEM_LLM_STANCE_GUIDANCE: '{{SYSTEM_LLM_STANCE_GUIDANCE}}',
58
63
  OS_PLATFORM: '{{OS_PLATFORM}}',
59
64
  // Control loop state
60
65
  CURRENT_ORPAR_PHASE: '{{CURRENT_ORPAR_PHASE}}',
@@ -165,6 +170,14 @@ export class PromptTemplateReplacer {
165
170
  const statusStr = context.systemLlmEnabled ? 'Enabled' : 'Disabled';
166
171
  result = result.replace(/\{\{SYSTEM_LLM_STATUS\}\}/g, statusStr);
167
172
  }
173
+ // Replace the SystemLLM stance and its guidance. Always replaced: an
174
+ // agent that does not know the stance is told the supportive one, which
175
+ // is the stance a server that never sends one is running.
176
+ const stance = context.systemLlmStance ?? DEFAULT_SYSTEMLLM_STANCE;
177
+ const stanceGuidance = buildSystemLlmStanceGuidance(stance);
178
+ result = result.replace(/\{\{SYSTEM_LLM_STANCE\}\}/g, stance);
179
+ // Function replacer: the guidance is prose and must not be parsed for `$` patterns.
180
+ result = result.replace(/\{\{SYSTEM_LLM_STANCE_GUIDANCE\}\}/g, () => stanceGuidance);
168
181
  // Replace ORPAR phase - always replace to avoid leftover template markers
169
182
  // When phase is null, show "(Not in active cycle)" to indicate ORPAR is available but not running
170
183
  const orparPhaseValue = context.currentOrparPhase || '(Not in active cycle)';
@@ -1 +1 @@
1
- {"version":3,"file":"PromptTemplateReplacer.js","sourceRoot":"","sources":["../../src/utils/PromptTemplateReplacer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PromptTemplateReplacer.js","sourceRoot":"","sources":["../../src/utils/PromptTemplateReplacer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mxf-dev/core",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "Model Exchange Framework core: events, schemas, types, services, and protocol contracts",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -33,6 +33,12 @@ import { EventBus } from '../events/EventBus.js';
33
33
  import { createBaseEventPayload } from '../schemas/EventPayloadSchema.js';
34
34
  import { EventName } from '../events/EventNames.js';
35
35
  import { ChannelSystemLlmChangeEvent as SharedChannelSystemLlmChangeEvent } from '../events/event-definitions/ConfigEvents.js';
36
+ import {
37
+ capStance,
38
+ DEFAULT_SYSTEMLLM_STANCE,
39
+ DEFAULT_SYSTEMLLM_STANCE_CEILING,
40
+ type SystemLlmStance
41
+ } from '../types/SystemLlmStanceTypes.js';
36
42
 
37
43
  /**
38
44
  * LLM model configuration
@@ -206,6 +212,18 @@ export interface SdkConfig {
206
212
  reflection?: boolean;
207
213
  coordination?: boolean;
208
214
  };
215
+
216
+ /**
217
+ * Server-wide stance: how SystemLLM talks to agents (see SystemLlmStanceTypes).
218
+ * Set from SYSTEMLLM_STANCE at boot. Unset means supportive.
219
+ */
220
+ stance?: SystemLlmStance;
221
+
222
+ /**
223
+ * Server-wide ceiling on the effective stance of every channel. Set from
224
+ * SYSTEMLLM_STANCE_MAX at boot. Unset means no ceiling.
225
+ */
226
+ stanceCeiling?: SystemLlmStance;
209
227
  };
210
228
 
211
229
  /**
@@ -223,6 +241,8 @@ export interface SdkConfig {
223
241
  reflection?: boolean;
224
242
  coordination?: boolean;
225
243
  };
244
+ /** Channel stance; unset means inherit the server-wide stance. */
245
+ stance?: SystemLlmStance;
226
246
  }>;
227
247
 
228
248
  /**
@@ -677,6 +697,33 @@ export interface IConfigManager {
677
697
  * @param channelId - Optional channel ID (if not provided, sets global)
678
698
  */
679
699
  setChannelSystemLlmOperationOverride(operation: string, enabled: boolean, channelId?: string): Observable<boolean>;
700
+
701
+ /**
702
+ * Effective SystemLLM stance for a channel: the channel's own stance when it
703
+ * has one, otherwise the server-wide stance, otherwise supportive.
704
+ * @param channelId - Optional channel ID (if not provided, returns the server-wide stance)
705
+ */
706
+ getChannelSystemLlmStance(channelId?: string): SystemLlmStance;
707
+
708
+ /**
709
+ * Set the SystemLLM stance
710
+ * @param stance - The stance
711
+ * @param channelId - Optional channel ID (if not provided, sets the server-wide stance)
712
+ */
713
+ setChannelSystemLlmStance(stance: SystemLlmStance, channelId?: string): Observable<boolean>;
714
+
715
+ /**
716
+ * Remove a channel's own stance so it inherits the server-wide one again.
717
+ * @param channelId - Channel ID
718
+ */
719
+ clearChannelSystemLlmStance(channelId: string): void;
720
+
721
+ /**
722
+ * Set the server-wide ceiling on the effective stance. Channel stances above
723
+ * it resolve to it.
724
+ * @param ceiling - The most adversarial stance any channel may reach
725
+ */
726
+ setChannelSystemLlmStanceCeiling(ceiling: SystemLlmStance): void;
680
727
  }
681
728
 
682
729
  /**
@@ -1262,6 +1309,76 @@ export class ConfigManager implements IConfigManager {
1262
1309
  return from(Promise.resolve(true));
1263
1310
  }
1264
1311
 
1312
+ /**
1313
+ * Effective SystemLLM stance for a channel.
1314
+ *
1315
+ * A channel entry without a stance inherits the server-wide one: unlike the
1316
+ * enabled flag, a channel-specific entry does not shadow the global value
1317
+ * unless it names a stance of its own.
1318
+ */
1319
+ public getChannelSystemLlmStance(channelId?: string): SystemLlmStance {
1320
+ const ceiling = this.config.channelSystemLlm.stanceCeiling ?? DEFAULT_SYSTEMLLM_STANCE_CEILING;
1321
+ if (channelId && this.config.channelSystemLlmById) {
1322
+ const channelStance = this.config.channelSystemLlmById.get(channelId)?.stance;
1323
+ if (channelStance) {
1324
+ return capStance(channelStance, ceiling);
1325
+ }
1326
+ }
1327
+ return capStance(this.config.channelSystemLlm.stance ?? DEFAULT_SYSTEMLLM_STANCE, ceiling);
1328
+ }
1329
+
1330
+ /**
1331
+ * Set the server-wide ceiling. Installed once at boot from
1332
+ * SYSTEMLLM_STANCE_MAX; it is read on every stance resolution, so it
1333
+ * applies to channels loaded before and after it is set.
1334
+ */
1335
+ public setChannelSystemLlmStanceCeiling(ceiling: SystemLlmStance): void {
1336
+ this.config.channelSystemLlm.stanceCeiling = ceiling;
1337
+ }
1338
+
1339
+ /**
1340
+ * Set the SystemLLM stance, server-wide or for one channel.
1341
+ */
1342
+ public setChannelSystemLlmStance(stance: SystemLlmStance, channelId?: string): Observable<boolean> {
1343
+ let enabled: boolean;
1344
+ let operationOverrides: Record<string, boolean> | undefined;
1345
+
1346
+ if (channelId) {
1347
+ if (!this.config.channelSystemLlmById) {
1348
+ this.config.channelSystemLlmById = new Map();
1349
+ }
1350
+ const existingConfig = this.config.channelSystemLlmById.get(channelId) || { enabled: true };
1351
+ existingConfig.stance = stance;
1352
+ this.config.channelSystemLlmById.set(channelId, existingConfig);
1353
+ enabled = existingConfig.enabled;
1354
+ operationOverrides = existingConfig.operationOverrides;
1355
+ } else {
1356
+ this.config.channelSystemLlm.stance = stance;
1357
+ enabled = this.config.channelSystemLlm.enabled;
1358
+ operationOverrides = this.config.channelSystemLlm.operationOverrides;
1359
+ }
1360
+
1361
+ this.emitChannelSystemLlmChanged(enabled, undefined, operationOverrides, channelId, stance);
1362
+ this.emitConfigUpdated(['channelSystemLlm']);
1363
+
1364
+ return from(Promise.resolve(true));
1365
+ }
1366
+
1367
+ /**
1368
+ * Remove a channel's own stance so it inherits the server-wide one again.
1369
+ *
1370
+ * Called when a channel document is loaded without a stance, which happens
1371
+ * on every channel load. Deliberately emits nothing: it restores the
1372
+ * default rather than announcing a change, and the load path already emits
1373
+ * one CHANNEL_SYSTEM_LLM_CHANGED through setChannelSystemLlmEnabled.
1374
+ */
1375
+ public clearChannelSystemLlmStance(channelId: string): void {
1376
+ const existingConfig = this.config.channelSystemLlmById?.get(channelId);
1377
+ if (existingConfig && existingConfig.stance !== undefined) {
1378
+ delete existingConfig.stance;
1379
+ }
1380
+ }
1381
+
1265
1382
  /**
1266
1383
  * Merge configurations
1267
1384
  * @param baseConfig - Base configuration
@@ -1412,14 +1529,22 @@ export class ConfigManager implements IConfigManager {
1412
1529
  * @param reason - Optional reason for the change
1413
1530
  * @param operationOverrides - Optional operation-specific overrides
1414
1531
  * @param channelId - Optional channel ID for channel-specific changes
1532
+ * @param stance - Stance after the change, when the change set one
1415
1533
  * @private
1416
1534
  */
1417
- private emitChannelSystemLlmChanged(enabled: boolean, reason?: string, operationOverrides?: Record<string, boolean>, channelId?: string): void {
1535
+ private emitChannelSystemLlmChanged(
1536
+ enabled: boolean,
1537
+ reason?: string,
1538
+ operationOverrides?: Record<string, boolean>,
1539
+ channelId?: string,
1540
+ stance?: SystemLlmStance
1541
+ ): void {
1418
1542
  const data: ChannelSystemLlmChangeEvent = {
1419
1543
  enabled,
1420
1544
  reason,
1421
1545
  operationOverrides,
1422
1546
  channelId,
1547
+ stance,
1423
1548
  timestamp: Date.now()
1424
1549
  };
1425
1550
  const payload = createBaseEventPayload<ChannelSystemLlmChangeEvent>(
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Copyright 2024 Brad Anderson
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ *
16
+ * @author Brad Anderson <BradA1878@pm.me>
17
+ * @repository https://github.com/BradA1878/model-exchange-framework
18
+ * @documentation https://mxf-dev.github.io/mxf/
19
+ */
20
+
21
+ /**
22
+ * Size limits on the conversation search index's socket ingress.
23
+ *
24
+ * The server enforces these in MeilisearchIngressPolicy on every
25
+ * `meilisearch:index:request` and `meilisearch:backfill:request`. The SDK
26
+ * builds its memory-load backfill batches from the same numbers, so a batch
27
+ * it sends is one the server accepts. Before this module existed the SDK
28
+ * batched by count alone while the server rejected by bytes, and an agent
29
+ * whose stored history was dense could never load it again: the same batch
30
+ * was refused on every connect.
31
+ */
32
+
33
+ /**
34
+ * Largest single message content the index accepts, in UTF-8 bytes. A
35
+ * larger message is not indexed: the live path drops it after the server
36
+ * refuses it, and the backfill skips it without sending.
37
+ */
38
+ export const MAX_MEILISEARCH_MESSAGE_BYTES = 64 * 1024;
39
+
40
+ /** Most messages one backfill request may carry. */
41
+ export const MAX_MEILISEARCH_BACKFILL_MESSAGES = 50;
42
+
43
+ /**
44
+ * Most message content one backfill request may carry, as the sum of each
45
+ * message's UTF-8 bytes.
46
+ */
47
+ export const MAX_MEILISEARCH_BACKFILL_CONTENT_BYTES = 512 * 1024;
48
+
49
+ /**
50
+ * Most bytes one backfill request event may occupy once serialized for the
51
+ * socket, envelope included. JSON escaping makes a message's wire size larger
52
+ * than its content bytes (a newline or quote is two bytes on the wire), so
53
+ * the content limit alone does not bound the frame. Engine.IO closes a socket
54
+ * that sends a frame above the server's message limit
55
+ * (MXF_SOCKET_MAX_HTTP_BUFFER_BYTES, default 1 MiB), which would put the
56
+ * agent in a reconnect loop instead of a policy rejection; the server refuses
57
+ * to boot with a message limit this budget does not fit under.
58
+ */
59
+ export const MAX_MEILISEARCH_BACKFILL_WIRE_BYTES = 768 * 1024;
60
+
61
+ /** UTF-8 byte length of message content — the measure every limit above uses. */
62
+ export const meilisearchContentBytes = (content: string): number =>
63
+ Buffer.byteLength(content, 'utf8');
@@ -63,7 +63,8 @@ export class MongoChannelRepository
63
63
  lastActive: doc.lastActive,
64
64
  metadata: doc.metadata || {},
65
65
  allowedTools: doc.allowedTools,
66
- systemLlmEnabled: doc.systemLlmEnabled
66
+ systemLlmEnabled: doc.systemLlmEnabled,
67
+ systemLlmStance: doc.systemLlmStance
67
68
  };
68
69
  }
69
70
 
@@ -24,6 +24,8 @@
24
24
  * Event definitions for configuration management, templates, and deployment settings
25
25
  */
26
26
 
27
+ import type { SystemLlmStance } from '../../types/SystemLlmStanceTypes.js';
28
+
27
29
  export const ConfigEvents = {
28
30
  // Template management events
29
31
  TEMPLATE_CREATED: 'config:template:created',
@@ -231,6 +233,12 @@ export interface ChannelSystemLlmChangeEvent {
231
233
  */
232
234
  channelId?: string;
233
235
 
236
+ /**
237
+ * SystemLLM stance after the change, when the change set one.
238
+ * Absent when only the enabled flag or operation overrides changed.
239
+ */
240
+ stance?: SystemLlmStance;
241
+
234
242
  /**
235
243
  * Timestamp of the change
236
244
  */
@@ -23,7 +23,7 @@
23
23
  * Events for server-side indexing with embeddings
24
24
  */
25
25
 
26
- import { BaseEventPayload } from '../../schemas/EventPayloadSchema.js';
26
+ import { BaseEventPayload, MeilisearchBackfillEventData } from '../../schemas/EventPayloadSchema.js';
27
27
 
28
28
  /**
29
29
  * Meilisearch event names
@@ -39,6 +39,11 @@ export const MeilisearchEvents = {
39
39
  BACKFILL_COMPLETE: 'meilisearch:backfill:complete',
40
40
  BACKFILL_PARTIAL: 'meilisearch:backfill:partial',
41
41
  BACKFILL_ERROR: 'meilisearch:backfill:error',
42
+
43
+ // Report from the SDK to the server: its memory-load backfill has settled
44
+ // (every batch answered or abandoned). Carries the final counts so the
45
+ // server can mark the agent ready for search tools and log the outcome.
46
+ BACKFILL_SETTLED: 'meilisearch:backfill:settled',
42
47
  } as const;
43
48
 
44
49
  /**
@@ -52,4 +57,5 @@ export interface MeilisearchPayloads {
52
57
  'meilisearch:backfill:complete': BaseEventPayload<any>;
53
58
  'meilisearch:backfill:partial': BaseEventPayload<any>;
54
59
  'meilisearch:backfill:error': BaseEventPayload<any>;
60
+ 'meilisearch:backfill:settled': BaseEventPayload<MeilisearchBackfillEventData>;
55
61
  }
@@ -27,6 +27,12 @@
27
27
  */
28
28
 
29
29
  import { AgentId, ChannelId } from '../../types/ChannelContext.js';
30
+ import type {
31
+ ChallengeDelivery,
32
+ ChallengeTrigger,
33
+ SystemLlmChallengePoint,
34
+ SystemLlmStance
35
+ } from '../../types/SystemLlmStanceTypes.js';
30
36
 
31
37
  /**
32
38
  * System ephemeral event constants
@@ -50,10 +56,28 @@ export const SystemEvents = {
50
56
  COORDINATION_OPPORTUNITY: 'system:coordination:opportunity',
51
57
  PATTERN_RECOGNITION: 'system:pattern:recognition',
52
58
 
59
+ // SystemLLM stance: a challenge was issued to an agent (critical or hostile stance)
60
+ SYSTEMLLM_CHALLENGE_ISSUED: 'system:systemllm:challenge_issued',
61
+
53
62
  // System maintenance events
54
63
  MAINTENANCE_MODE: 'system:maintenance:mode'
55
64
  } as const;
56
65
 
66
+ /**
67
+ * Data for SYSTEMLLM_CHALLENGE_ISSUED: SystemLLM disputed an agent's claim.
68
+ * Server-side only; the agent receives the challenge as a tool result or a
69
+ * channel message, not through this event.
70
+ */
71
+ export interface SystemLlmChallengeIssuedEventData {
72
+ challengeId: string;
73
+ taskId: string;
74
+ trigger: ChallengeTrigger;
75
+ stance: Exclude<SystemLlmStance, 'supportive'>;
76
+ delivery: ChallengeDelivery;
77
+ summary: string;
78
+ points: SystemLlmChallengePoint[];
79
+ }
80
+
57
81
  /**
58
82
  * Temporal context information leveraging existing Time MCP server
59
83
  * Provides time-aware intelligence for system events
package/src/index.ts CHANGED
@@ -30,3 +30,10 @@ export {
30
30
  buildServerUrl,
31
31
  } from './config/ServerConfig.js';
32
32
  export type { ServerConfig } from './config/ServerConfig.js';
33
+ export {
34
+ MAX_MEILISEARCH_MESSAGE_BYTES,
35
+ MAX_MEILISEARCH_BACKFILL_MESSAGES,
36
+ MAX_MEILISEARCH_BACKFILL_CONTENT_BYTES,
37
+ MAX_MEILISEARCH_BACKFILL_WIRE_BYTES,
38
+ meilisearchContentBytes,
39
+ } from './config/MeilisearchIngressLimits.js';
@@ -22,6 +22,8 @@
22
22
  * Channel Interface
23
23
  * Defines the structure of a channel in the MXF
24
24
  */
25
+ import type { SystemLlmStance } from '../types/SystemLlmStanceTypes.js';
26
+
25
27
  export interface IChannel {
26
28
  id: string;
27
29
  name: string;
@@ -33,4 +35,6 @@ export interface IChannel {
33
35
  // Channel-level access control and configuration
34
36
  allowedTools?: string[];
35
37
  systemLlmEnabled?: boolean;
38
+ /** Channel SystemLLM stance; unset inherits the server's SYSTEMLLM_STANCE. */
39
+ systemLlmStance?: SystemLlmStance;
36
40
  }
@@ -21,6 +21,8 @@
21
21
  /**
22
22
  * MCP server configuration for channel registration
23
23
  */
24
+ import type { SystemLlmStance } from '../types/SystemLlmStanceTypes.js';
25
+
24
26
  export interface ChannelMcpServerConfig {
25
27
  id: string;
26
28
  name: string;
@@ -53,6 +55,10 @@ export interface ChannelConfig {
53
55
 
54
56
  // Disable SystemLLM for this channel (for games, custom orchestration, etc.)
55
57
  systemLlmEnabled?: boolean;
58
+
59
+ // SystemLLM stance for this channel (supportive | critical | hostile).
60
+ // Unset means the channel uses the server's SYSTEMLLM_STANCE.
61
+ systemLlmStance?: SystemLlmStance;
56
62
 
57
63
  // MCP servers to register for this channel at creation time
58
64
  mcpServers?: ChannelMcpServerConfig[];
@@ -43,6 +43,7 @@ export type MessageType =
43
43
  | 'system-notice' // System intervention or notice
44
44
  | 'system-event' // Framework event injected into conversation context
45
45
  | 'systemllm-coordination' // Ephemeral SystemLLM coordination context
46
+ | 'systemllm-challenge' // SystemLLM disputed a claim; the agent must answer with evidence
46
47
  | 'channel-message-immediate' // Channel notification awaiting agent review
47
48
  | 'error_feedback' // Validation or execution feedback
48
49
  | 'error_correction_trigger' // Prompt to correct an earlier invalid action