@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.
- package/dist/config/ConfigManager.d.ts +64 -0
- package/dist/config/ConfigManager.d.ts.map +1 -1
- package/dist/config/ConfigManager.js +68 -1
- package/dist/config/ConfigManager.js.map +1 -1
- package/dist/config/MeilisearchIngressLimits.d.ts +57 -0
- package/dist/config/MeilisearchIngressLimits.d.ts.map +1 -0
- package/dist/config/MeilisearchIngressLimits.js +57 -0
- package/dist/config/MeilisearchIngressLimits.js.map +1 -0
- package/dist/database/adapters/mongodb/MongoChannelRepository.d.ts.map +1 -1
- package/dist/database/adapters/mongodb/MongoChannelRepository.js +2 -1
- package/dist/database/adapters/mongodb/MongoChannelRepository.js.map +1 -1
- package/dist/events/EventNames.d.ts +2 -0
- package/dist/events/EventNames.d.ts.map +1 -1
- package/dist/events/event-definitions/ConfigEvents.d.ts +6 -0
- package/dist/events/event-definitions/ConfigEvents.d.ts.map +1 -1
- package/dist/events/event-definitions/ConfigEvents.js +0 -5
- package/dist/events/event-definitions/ConfigEvents.js.map +1 -1
- package/dist/events/event-definitions/MeilisearchEvents.d.ts +3 -1
- package/dist/events/event-definitions/MeilisearchEvents.d.ts.map +1 -1
- package/dist/events/event-definitions/MeilisearchEvents.js +4 -0
- package/dist/events/event-definitions/MeilisearchEvents.js.map +1 -1
- package/dist/events/event-definitions/SystemEvents.d.ts +16 -0
- package/dist/events/event-definitions/SystemEvents.d.ts.map +1 -1
- package/dist/events/event-definitions/SystemEvents.js +2 -0
- package/dist/events/event-definitions/SystemEvents.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/Channel.d.ts +3 -0
- package/dist/interfaces/Channel.d.ts.map +1 -1
- package/dist/interfaces/ChannelConfig.d.ts +2 -0
- package/dist/interfaces/ChannelConfig.d.ts.map +1 -1
- package/dist/interfaces/ConversationMessage.d.ts +1 -1
- package/dist/interfaces/ConversationMessage.d.ts.map +1 -1
- package/dist/models/channel.d.ts +2 -0
- package/dist/models/channel.d.ts.map +1 -1
- package/dist/models/channel.js +8 -0
- package/dist/models/channel.js.map +1 -1
- package/dist/models/task.d.ts.map +1 -1
- package/dist/models/task.js.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.d.ts.map +1 -1
- package/dist/prompts/MxfAgentSystemPrompt.js +9 -1
- package/dist/prompts/MxfAgentSystemPrompt.js.map +1 -1
- package/dist/prompts/SystemLlmStanceGuidance.d.ts +37 -0
- package/dist/prompts/SystemLlmStanceGuidance.d.ts.map +1 -0
- package/dist/prompts/SystemLlmStanceGuidance.js +48 -0
- package/dist/prompts/SystemLlmStanceGuidance.js.map +1 -0
- package/dist/repositories/interfaces/IChannelRepository.d.ts +2 -0
- package/dist/repositories/interfaces/IChannelRepository.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.d.ts +14 -1
- package/dist/schemas/EventPayloadSchema.d.ts.map +1 -1
- package/dist/schemas/EventPayloadSchema.js +27 -0
- package/dist/schemas/EventPayloadSchema.js.map +1 -1
- package/dist/services/BackgroundTaskManager.d.ts +6 -0
- package/dist/services/BackgroundTaskManager.d.ts.map +1 -1
- package/dist/services/BackgroundTaskManager.js +35 -4
- package/dist/services/BackgroundTaskManager.js.map +1 -1
- package/dist/services/MxfMeilisearchService.d.ts +19 -3
- package/dist/services/MxfMeilisearchService.d.ts.map +1 -1
- package/dist/services/MxfMeilisearchService.js +46 -34
- package/dist/services/MxfMeilisearchService.js.map +1 -1
- package/dist/types/SystemLlmStanceTypes.d.ts +123 -0
- package/dist/types/SystemLlmStanceTypes.d.ts.map +1 -0
- package/dist/types/SystemLlmStanceTypes.js +101 -0
- package/dist/types/SystemLlmStanceTypes.js.map +1 -0
- package/dist/types/TaskTypes.d.ts +29 -0
- package/dist/types/TaskTypes.d.ts.map +1 -1
- package/dist/types/TaskTypes.js +41 -1
- package/dist/types/TaskTypes.js.map +1 -1
- package/dist/utils/PromptTemplateReplacer.d.ts +5 -0
- package/dist/utils/PromptTemplateReplacer.d.ts.map +1 -1
- package/dist/utils/PromptTemplateReplacer.js +13 -0
- package/dist/utils/PromptTemplateReplacer.js.map +1 -1
- package/package.json +1 -1
- package/src/config/ConfigManager.ts +126 -1
- package/src/config/MeilisearchIngressLimits.ts +63 -0
- package/src/database/adapters/mongodb/MongoChannelRepository.ts +2 -1
- package/src/events/event-definitions/ConfigEvents.ts +8 -0
- package/src/events/event-definitions/MeilisearchEvents.ts +7 -1
- package/src/events/event-definitions/SystemEvents.ts +24 -0
- package/src/index.ts +7 -0
- package/src/interfaces/Channel.ts +4 -0
- package/src/interfaces/ChannelConfig.ts +6 -0
- package/src/interfaces/ConversationMessage.ts +1 -0
- package/src/models/channel.ts +10 -0
- package/src/models/task.ts +5 -1
- package/src/prompts/MxfAgentSystemPrompt.ts +9 -1
- package/src/prompts/SystemLlmStanceGuidance.ts +67 -0
- package/src/repositories/interfaces/IChannelRepository.ts +2 -0
- package/src/schemas/EventPayloadSchema.ts +44 -1
- package/src/services/BackgroundTaskManager.ts +35 -4
- package/src/services/MxfMeilisearchService.ts +55 -43
- package/src/types/SystemLlmStanceTypes.ts +162 -0
- package/src/types/TaskTypes.ts +69 -2
- 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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAEvG;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;AAE7H;;GAEG;AACH,MAAM,WAAW,WAAW;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IAGvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAGhC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;IAC7B,eAAe,EAAE,QAAQ,GAAG,UAAU,GAAG,cAAc,CAAC;IACxD,sBAAsB,CAAC,EAAE,UAAU,GAAG,YAAY,GAAG,eAAe,CAAC;IAGrE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,gBAAgB,CAAC,EAAE,aAAa,GAAG,eAAe,GAAG,YAAY,GAAG,cAAc,CAAC;IACnF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAG5B,sBAAsB,CAAC,EAAE;QACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,sBAAsB,CAAC,EAAE,OAAO,CAAC;KACpC,CAAC;IAGF,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,SAAS,EAAE,aAAa,CAAC;IAGzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAGhB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"TaskTypes.d.ts","sourceRoot":"","sources":["../../src/types/TaskTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/types/TaskTypes.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH
|
|
1
|
+
{"version":3,"file":"PromptTemplateReplacer.js","sourceRoot":"","sources":["../../src/utils/PromptTemplateReplacer.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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(
|
|
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
|