@memberjunction/ai-agents 6.2.0-edge.0 → 6.2.0-edge.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/dist/AgentDataPreloader.d.ts +4 -0
- package/dist/AgentDataPreloader.d.ts.map +1 -1
- package/dist/AgentDataPreloader.js +10 -2
- package/dist/AgentDataPreloader.js.map +1 -1
- package/dist/AgentDecisionService.d.ts +83 -0
- package/dist/AgentDecisionService.d.ts.map +1 -0
- package/dist/AgentDecisionService.js +155 -0
- package/dist/AgentDecisionService.js.map +1 -0
- package/dist/AgentRunner.d.ts +16 -4
- package/dist/AgentRunner.d.ts.map +1 -1
- package/dist/AgentRunner.js +55 -32
- package/dist/AgentRunner.js.map +1 -1
- package/dist/ArtifactToolManager.d.ts +4 -4
- package/dist/ArtifactToolManager.js +10 -10
- package/dist/ConversationToolManager.d.ts +16 -3
- package/dist/ConversationToolManager.d.ts.map +1 -1
- package/dist/ConversationToolManager.js +28 -5
- package/dist/ConversationToolManager.js.map +1 -1
- package/dist/KnowledgeAgent.d.ts.map +1 -1
- package/dist/KnowledgeAgent.js +6 -6
- package/dist/KnowledgeAgent.js.map +1 -1
- package/dist/PayloadChangeAnalyzer.d.ts +4 -0
- package/dist/PayloadChangeAnalyzer.d.ts.map +1 -1
- package/dist/PayloadChangeAnalyzer.js +10 -2
- package/dist/PayloadChangeAnalyzer.js.map +1 -1
- package/dist/PayloadFeedbackManager.d.ts +120 -13
- package/dist/PayloadFeedbackManager.d.ts.map +1 -1
- package/dist/PayloadFeedbackManager.js +244 -88
- package/dist/PayloadFeedbackManager.js.map +1 -1
- package/dist/PayloadManager.d.ts +27 -0
- package/dist/PayloadManager.d.ts.map +1 -1
- package/dist/PayloadManager.js +47 -15
- package/dist/PayloadManager.js.map +1 -1
- package/dist/agent-context-injector.d.ts +47 -3
- package/dist/agent-context-injector.d.ts.map +1 -1
- package/dist/agent-context-injector.js +77 -10
- package/dist/agent-context-injector.js.map +1 -1
- package/dist/agent-memory-context-builder.d.ts +13 -0
- package/dist/agent-memory-context-builder.d.ts.map +1 -1
- package/dist/agent-memory-context-builder.js +24 -5
- package/dist/agent-memory-context-builder.js.map +1 -1
- package/dist/agent-types/base-agent-type.d.ts +16 -0
- package/dist/agent-types/base-agent-type.d.ts.map +1 -1
- package/dist/agent-types/base-agent-type.js +20 -1
- package/dist/agent-types/base-agent-type.js.map +1 -1
- package/dist/agent-types/flow-agent-type.d.ts +106 -0
- package/dist/agent-types/flow-agent-type.d.ts.map +1 -1
- package/dist/agent-types/flow-agent-type.js +299 -29
- package/dist/agent-types/flow-agent-type.js.map +1 -1
- package/dist/agent-types/flow-graph-executor.d.ts +12 -1
- package/dist/agent-types/flow-graph-executor.d.ts.map +1 -1
- package/dist/agent-types/flow-graph-executor.js +25 -1
- package/dist/agent-types/flow-graph-executor.js.map +1 -1
- package/dist/agent-types/loop-agent-prompt-params.d.ts +258 -11
- package/dist/agent-types/loop-agent-prompt-params.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-prompt-params.js +49 -2
- package/dist/agent-types/loop-agent-prompt-params.js.map +1 -1
- package/dist/agent-types/loop-agent-response-type.d.ts +12 -1
- package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-response-type.js.map +1 -1
- package/dist/agent-types/loop-agent-type.d.ts +6 -0
- package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-type.js +42 -3
- package/dist/agent-types/loop-agent-type.js.map +1 -1
- package/dist/artifact-target-plan.d.ts +2 -0
- package/dist/artifact-target-plan.d.ts.map +1 -1
- package/dist/artifact-target-plan.js +5 -1
- package/dist/artifact-target-plan.js.map +1 -1
- package/dist/base-agent.d.ts +886 -5
- package/dist/base-agent.d.ts.map +1 -1
- package/dist/base-agent.js +2567 -164
- package/dist/base-agent.js.map +1 -1
- package/dist/catalog-narrowing.d.ts +136 -0
- package/dist/catalog-narrowing.d.ts.map +1 -0
- package/dist/catalog-narrowing.js +212 -0
- package/dist/catalog-narrowing.js.map +1 -0
- package/dist/constants.d.ts +57 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +70 -0
- package/dist/constants.js.map +1 -0
- package/dist/decision-discovery.d.ts +401 -0
- package/dist/decision-discovery.d.ts.map +1 -0
- package/dist/decision-discovery.js +511 -0
- package/dist/decision-discovery.js.map +1 -0
- package/dist/finish-if-mode-warnings.d.ts +39 -0
- package/dist/finish-if-mode-warnings.d.ts.map +1 -0
- package/dist/finish-if-mode-warnings.js +78 -0
- package/dist/finish-if-mode-warnings.js.map +1 -0
- package/dist/finish-if-state.d.ts +72 -0
- package/dist/finish-if-state.d.ts.map +1 -0
- package/dist/finish-if-state.js +109 -0
- package/dist/finish-if-state.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/memory-manager-agent.d.ts +119 -13
- package/dist/memory-manager-agent.d.ts.map +1 -1
- package/dist/memory-manager-agent.js +237 -74
- package/dist/memory-manager-agent.js.map +1 -1
- package/dist/memory-note-gate.d.ts +208 -0
- package/dist/memory-note-gate.d.ts.map +1 -0
- package/dist/memory-note-gate.js +294 -0
- package/dist/memory-note-gate.js.map +1 -0
- package/dist/native-tools/action-tool-builder.d.ts +8 -0
- package/dist/native-tools/action-tool-builder.d.ts.map +1 -1
- package/dist/native-tools/action-tool-builder.js +22 -6
- package/dist/native-tools/action-tool-builder.js.map +1 -1
- package/dist/native-tools/control-tools.d.ts +8 -0
- package/dist/native-tools/control-tools.d.ts.map +1 -1
- package/dist/native-tools/control-tools.js +25 -9
- package/dist/native-tools/control-tools.js.map +1 -1
- package/dist/native-tools/dual-channel.d.ts +2 -0
- package/dist/native-tools/dual-channel.d.ts.map +1 -1
- package/dist/native-tools/dual-channel.js +5 -1
- package/dist/native-tools/dual-channel.js.map +1 -1
- package/dist/native-tools/tool-result-turns.d.ts +9 -0
- package/dist/native-tools/tool-result-turns.d.ts.map +1 -1
- package/dist/native-tools/tool-result-turns.js +15 -3
- package/dist/native-tools/tool-result-turns.js.map +1 -1
- package/dist/pipeline/coerce.d.ts +14 -0
- package/dist/pipeline/coerce.d.ts.map +1 -1
- package/dist/pipeline/coerce.js +37 -9
- package/dist/pipeline/coerce.js.map +1 -1
- package/dist/pipeline/jsonpath-eval.d.ts +4 -0
- package/dist/pipeline/jsonpath-eval.d.ts.map +1 -1
- package/dist/pipeline/jsonpath-eval.js +10 -2
- package/dist/pipeline/jsonpath-eval.js.map +1 -1
- package/dist/pipeline/operators.js +16 -16
- package/dist/pipeline/path.d.ts +6 -0
- package/dist/pipeline/path.d.ts.map +1 -1
- package/dist/pipeline/path.js +17 -5
- package/dist/pipeline/path.js.map +1 -1
- package/dist/pipeline/pipeline-executor.js +10 -10
- package/dist/pipeline/predicate.d.ts +4 -0
- package/dist/pipeline/predicate.d.ts.map +1 -1
- package/dist/pipeline/predicate.js +15 -7
- package/dist/pipeline/predicate.js.map +1 -1
- package/dist/pipeline/providers/action-provider.js +2 -2
- package/dist/pipeline/providers/artifact-tool-provider.js +2 -2
- package/dist/pipeline/providers/serialize.d.ts +4 -0
- package/dist/pipeline/providers/serialize.d.ts.map +1 -1
- package/dist/pipeline/providers/serialize.js +10 -2
- package/dist/pipeline/providers/serialize.js.map +1 -1
- package/dist/pipeline/template.d.ts +4 -0
- package/dist/pipeline/template.d.ts.map +1 -1
- package/dist/pipeline/template.js +15 -7
- package/dist/pipeline/template.js.map +1 -1
- package/dist/realtime/agent-media-library.d.ts +10 -0
- package/dist/realtime/agent-media-library.d.ts.map +1 -1
- package/dist/realtime/agent-media-library.js +29 -9
- package/dist/realtime/agent-media-library.js.map +1 -1
- package/dist/realtime/bridge-realtime-session-factory.d.ts +5 -2
- package/dist/realtime/bridge-realtime-session-factory.d.ts.map +1 -1
- package/dist/realtime/bridge-realtime-session-factory.js +7 -4
- package/dist/realtime/bridge-realtime-session-factory.js.map +1 -1
- package/dist/realtime/bridge-room-transcript-sink.d.ts.map +1 -1
- package/dist/realtime/bridge-room-transcript-sink.js +15 -9
- package/dist/realtime/bridge-room-transcript-sink.js.map +1 -1
- package/dist/realtime/media-channel-server.js +2 -2
- package/dist/realtime/meeting-controls-state.d.ts +2 -0
- package/dist/realtime/meeting-controls-state.d.ts.map +1 -1
- package/dist/realtime/meeting-controls-state.js +6 -2
- package/dist/realtime/meeting-controls-state.js.map +1 -1
- package/dist/realtime/realtime-channel-server-data-context.d.ts +2 -0
- package/dist/realtime/realtime-channel-server-data-context.d.ts.map +1 -1
- package/dist/realtime/realtime-channel-server-data-context.js +5 -1
- package/dist/realtime/realtime-channel-server-data-context.js.map +1 -1
- package/dist/realtime/realtime-channel-server-host.js +2 -2
- package/dist/realtime/realtime-client-session-service.d.ts +58 -12
- package/dist/realtime/realtime-client-session-service.d.ts.map +1 -1
- package/dist/realtime/realtime-client-session-service.js +91 -31
- package/dist/realtime/realtime-client-session-service.js.map +1 -1
- package/dist/realtime/realtime-coagent-config.d.ts +2 -0
- package/dist/realtime/realtime-coagent-config.d.ts.map +1 -1
- package/dist/realtime/realtime-coagent-config.js +6 -2
- package/dist/realtime/realtime-coagent-config.js.map +1 -1
- package/dist/realtime/realtime-recording-store.d.ts +15 -0
- package/dist/realtime/realtime-recording-store.d.ts.map +1 -1
- package/dist/realtime/realtime-recording-store.js +31 -7
- package/dist/realtime/realtime-recording-store.js.map +1 -1
- package/dist/realtime/realtime-session-runner.d.ts +4 -4
- package/dist/realtime/realtime-session-runner.js +9 -9
- package/dist/realtime/realtime-session-runner.js.map +1 -1
- package/dist/realtime/realtime-vendor-resolution.d.ts +8 -3
- package/dist/realtime/realtime-vendor-resolution.d.ts.map +1 -1
- package/dist/realtime/realtime-vendor-resolution.js +3 -3
- package/dist/realtime/realtime-vendor-resolution.js.map +1 -1
- package/dist/rubric-evaluation-agent-runner.d.ts +2 -0
- package/dist/rubric-evaluation-agent-runner.d.ts.map +1 -0
- package/dist/rubric-evaluation-agent-runner.js +38 -0
- package/dist/rubric-evaluation-agent-runner.js.map +1 -0
- package/dist/runtime-state-fragment.d.ts +101 -0
- package/dist/runtime-state-fragment.d.ts.map +1 -0
- package/dist/runtime-state-fragment.js +173 -0
- package/dist/runtime-state-fragment.js.map +1 -0
- package/dist/self-check.d.ts +98 -0
- package/dist/self-check.d.ts.map +1 -0
- package/dist/self-check.js +74 -0
- package/dist/self-check.js.map +1 -0
- package/dist/types/payload-operations.d.ts +8 -0
- package/dist/types/payload-operations.d.ts.map +1 -1
- package/dist/types/payload-operations.js +21 -5
- package/dist/types/payload-operations.js.map +1 -1
- package/dist/utils/ConversationMessageResolver.d.ts +4 -0
- package/dist/utils/ConversationMessageResolver.d.ts.map +1 -1
- package/dist/utils/ConversationMessageResolver.js +10 -2
- package/dist/utils/ConversationMessageResolver.js.map +1 -1
- package/dist/volatile-child-prompt.d.ts +33 -0
- package/dist/volatile-child-prompt.d.ts.map +1 -0
- package/dist/volatile-child-prompt.js +76 -0
- package/dist/volatile-child-prompt.js.map +1 -0
- package/package.json +21 -18
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { AGENT_SPECIALIZATION_TAG, RUNTIME_STATE_DATETIME_HEADING, RUNTIME_STATE_PAYLOAD_HEADING, RUNTIME_STATE_SCRATCHPAD_HEADING, RUNTIME_STATE_TAG, } from './constants.js';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the trailing-message fragment for the loop agent's volatile state.
|
|
4
|
+
*
|
|
5
|
+
* Pure: no I/O, no framework dependencies. The caller (BaseAgent's prompt-execution prep) resolves
|
|
6
|
+
* the strings and decides which blocks to include; this class only renders them.
|
|
7
|
+
*/
|
|
8
|
+
export class RuntimeStateFragmentBuilder {
|
|
9
|
+
/**
|
|
10
|
+
* Render the complete fragment: an optional specialization block, then the runtime-state block.
|
|
11
|
+
* Returns an empty string if nothing was supplied, so callers can skip appending an empty message.
|
|
12
|
+
*/
|
|
13
|
+
Build(input) {
|
|
14
|
+
const parts = [];
|
|
15
|
+
const specialization = input.Specialization?.trim();
|
|
16
|
+
if (specialization) {
|
|
17
|
+
parts.push(this.wrap(AGENT_SPECIALIZATION_TAG, specialization));
|
|
18
|
+
}
|
|
19
|
+
const state = this.RenderStateBlocks(input);
|
|
20
|
+
if (state) {
|
|
21
|
+
parts.push(this.wrap(RUNTIME_STATE_TAG, state));
|
|
22
|
+
}
|
|
23
|
+
return parts.join('\n\n');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Render just the three state sections, unwrapped, in the system-prompt template's shape.
|
|
27
|
+
* Exposed so the snapshot test can compare it against the template's own rendering.
|
|
28
|
+
*/
|
|
29
|
+
RenderStateBlocks(input) {
|
|
30
|
+
const blocks = [];
|
|
31
|
+
if (input.DateTime) {
|
|
32
|
+
blocks.push(this.renderDateTime(input.DateTime));
|
|
33
|
+
}
|
|
34
|
+
if (input.Scratchpad) {
|
|
35
|
+
blocks.push(this.renderScratchpad(input.Scratchpad));
|
|
36
|
+
}
|
|
37
|
+
if (input.Payload) {
|
|
38
|
+
blocks.push(this.renderPayload(input.Payload.Value));
|
|
39
|
+
}
|
|
40
|
+
return blocks.join('\n\n');
|
|
41
|
+
}
|
|
42
|
+
renderDateTime(dt) {
|
|
43
|
+
return [
|
|
44
|
+
RUNTIME_STATE_DATETIME_HEADING,
|
|
45
|
+
`- **Date**: ${dt.Date} (${dt.DayOfWeek})`,
|
|
46
|
+
`- **Time**: ${dt.Time}`,
|
|
47
|
+
].join('\n');
|
|
48
|
+
}
|
|
49
|
+
renderScratchpad(sp) {
|
|
50
|
+
return [
|
|
51
|
+
RUNTIME_STATE_SCRATCHPAD_HEADING,
|
|
52
|
+
'Your private working memory. Manage via `scratchpad` in your response.',
|
|
53
|
+
'',
|
|
54
|
+
'### Notes',
|
|
55
|
+
sp.Notes,
|
|
56
|
+
'',
|
|
57
|
+
`### Tasks (${sp.TaskSummary})`,
|
|
58
|
+
sp.Tasks,
|
|
59
|
+
].join('\n');
|
|
60
|
+
}
|
|
61
|
+
renderPayload(value) {
|
|
62
|
+
// Mirrors the template's `{{ _CURRENT_PAYLOAD | dump | safe }}` — nunjucks `dump` is a compact JSON.stringify.
|
|
63
|
+
const json = JSON.stringify(value ?? {});
|
|
64
|
+
return [
|
|
65
|
+
RUNTIME_STATE_PAYLOAD_HEADING,
|
|
66
|
+
'**Payload:** Represents your work state. Request changes via `payloadChangeRequest`',
|
|
67
|
+
'```json',
|
|
68
|
+
json,
|
|
69
|
+
'```',
|
|
70
|
+
].join('\n');
|
|
71
|
+
}
|
|
72
|
+
wrap(tag, body) {
|
|
73
|
+
return `<${tag}>\n${body}\n</${tag}>`;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Matches the fragment's tag literals — opening or closing, any case, tolerant of stray whitespace
|
|
78
|
+
* inside the angle brackets — so that text from anywhere else cannot pose as the real fragment.
|
|
79
|
+
*/
|
|
80
|
+
const FRAGMENT_TAG_PATTERN = new RegExp(`<\\s*(/?)\\s*(${RUNTIME_STATE_TAG}|${AGENT_SPECIALIZATION_TAG})\\s*>`, 'gi');
|
|
81
|
+
/**
|
|
82
|
+
* Escapes the fragment's tag literals in a piece of text so they cannot be mistaken for the real
|
|
83
|
+
* trailing fragment. Applied to every non-system message in the OUTGOING copy of the history under
|
|
84
|
+
* `'trailingMessage'` placement — user turns, action results, sub-agent results, anything the model or
|
|
85
|
+
* an external source wrote — never to stored data, and never to the fragment itself.
|
|
86
|
+
*
|
|
87
|
+
* This closes tag SPOOFING only. A model that follows imperative text inside a tool result will do so
|
|
88
|
+
* with or without our tags (measured: Gemini 2.5 Flash/Pro obey; Claude Opus 5 refuses); that exposure
|
|
89
|
+
* is pre-existing, layout-independent, and addressed structurally elsewhere.
|
|
90
|
+
*/
|
|
91
|
+
export function EscapeRuntimeStateTags(text) {
|
|
92
|
+
return text.replace(FRAGMENT_TAG_PATTERN, (_m, slash, tag) => `<${slash}${tag.toLowerCase()}>`);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Returns a copy of the message with fragment tag literals escaped in its text content (string content,
|
|
96
|
+
* and `text` / `tool_result` blocks) and toolCalls arguments. Returns the SAME object when nothing
|
|
97
|
+
* needed escaping, so untouched messages keep their identity.
|
|
98
|
+
*/
|
|
99
|
+
export function EscapeRuntimeStateTagsInMessage(message) {
|
|
100
|
+
const escapedContent = escapeContent(message.content);
|
|
101
|
+
const escapedCalls = escapeToolCalls(message.toolCalls);
|
|
102
|
+
if (escapedContent === message.content && !escapedCalls.changed) {
|
|
103
|
+
return message;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
...message,
|
|
107
|
+
content: escapedContent,
|
|
108
|
+
...(message.toolCalls ? { toolCalls: escapedCalls.calls } : {})
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
function escapeValue(val) {
|
|
112
|
+
if (typeof val === 'string') {
|
|
113
|
+
const escaped = EscapeRuntimeStateTags(val);
|
|
114
|
+
return { value: escaped, changed: escaped !== val };
|
|
115
|
+
}
|
|
116
|
+
if (Array.isArray(val)) {
|
|
117
|
+
let changed = false;
|
|
118
|
+
const arr = val.map(item => {
|
|
119
|
+
const res = escapeValue(item);
|
|
120
|
+
if (res.changed)
|
|
121
|
+
changed = true;
|
|
122
|
+
return res.value;
|
|
123
|
+
});
|
|
124
|
+
return { value: changed ? arr : val, changed };
|
|
125
|
+
}
|
|
126
|
+
if (val && typeof val === 'object') {
|
|
127
|
+
let changed = false;
|
|
128
|
+
const obj = {};
|
|
129
|
+
for (const [k, v] of Object.entries(val)) {
|
|
130
|
+
const res = escapeValue(v);
|
|
131
|
+
if (res.changed)
|
|
132
|
+
changed = true;
|
|
133
|
+
obj[k] = res.value;
|
|
134
|
+
}
|
|
135
|
+
return { value: changed ? obj : val, changed };
|
|
136
|
+
}
|
|
137
|
+
return { value: val, changed: false };
|
|
138
|
+
}
|
|
139
|
+
function escapeToolCalls(calls) {
|
|
140
|
+
if (!calls || calls.length === 0) {
|
|
141
|
+
return { calls, changed: false };
|
|
142
|
+
}
|
|
143
|
+
let anyChanged = false;
|
|
144
|
+
const nextCalls = calls.map(c => {
|
|
145
|
+
if (!c.arguments)
|
|
146
|
+
return c;
|
|
147
|
+
const res = escapeValue(c.arguments);
|
|
148
|
+
if (res.changed) {
|
|
149
|
+
anyChanged = true;
|
|
150
|
+
return { ...c, arguments: res.value };
|
|
151
|
+
}
|
|
152
|
+
return c;
|
|
153
|
+
});
|
|
154
|
+
return { calls: anyChanged ? nextCalls : calls, changed: anyChanged };
|
|
155
|
+
}
|
|
156
|
+
function escapeContent(content) {
|
|
157
|
+
if (typeof content === 'string') {
|
|
158
|
+
return EscapeRuntimeStateTags(content);
|
|
159
|
+
}
|
|
160
|
+
let changed = false;
|
|
161
|
+
const blocks = content.map((block) => {
|
|
162
|
+
if ((block.type === 'text' || block.type === 'tool_result') && typeof block.content === 'string') {
|
|
163
|
+
const next = EscapeRuntimeStateTags(block.content);
|
|
164
|
+
if (next !== block.content) {
|
|
165
|
+
changed = true;
|
|
166
|
+
return { ...block, content: next };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return block;
|
|
170
|
+
});
|
|
171
|
+
return changed ? blocks : content;
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=runtime-state-fragment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-state-fragment.js","sourceRoot":"","sources":["../src/runtime-state-fragment.ts"],"names":[],"mappings":"AAyBA,OAAO,EACH,wBAAwB,EACxB,8BAA8B,EAC9B,6BAA6B,EAC7B,gCAAgC,EAChC,iBAAiB,GACpB,MAAM,aAAa,CAAC;AAuCrB;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IACpC;;;OAGG;IACI,KAAK,CAAC,KAAgC;QACzC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;QACpD,IAAI,cAAc,EAAE,CAAC;YACjB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,cAAc,CAAC,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACR,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACI,iBAAiB,CAAC,KAAgC;QACrD,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAEO,cAAc,CAAC,EAAwB;QAC3C,OAAO;YACH,8BAA8B;YAC9B,eAAe,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,SAAS,GAAG;YAC1C,eAAe,EAAE,CAAC,IAAI,EAAE;SAC3B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAEO,gBAAgB,CAAC,EAA0B;QAC/C,OAAO;YACH,gCAAgC;YAChC,wEAAwE;YACxE,EAAE;YACF,WAAW;YACX,EAAE,CAAC,KAAK;YACR,EAAE;YACF,cAAc,EAAE,CAAC,WAAW,GAAG;YAC/B,EAAE,CAAC,KAAK;SACX,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAEO,aAAa,CAAC,KAAc;QAChC,+GAA+G;QAC/G,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzC,OAAO;YACH,6BAA6B;YAC7B,qFAAqF;YACrF,SAAS;YACT,IAAI;YACJ,KAAK;SACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAEO,IAAI,CAAC,GAAW,EAAE,IAAY;QAClC,OAAO,IAAI,GAAG,MAAM,IAAI,OAAO,GAAG,GAAG,CAAC;IAC1C,CAAC;CACJ;AAED;;;GAGG;AACH,MAAM,oBAAoB,GAAG,IAAI,MAAM,CAAC,iBAAiB,iBAAiB,IAAI,wBAAwB,QAAQ,EAAE,IAAI,CAAC,CAAC;AAEtH;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC,EAAE,EAAE,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,OAAO,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC1H,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,+BAA+B,CAAI,OAAuB;IACtE,MAAM,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACxD,IAAI,cAAc,KAAK,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC9D,OAAO,OAAO,CAAC;IACnB,CAAC;IACD,OAAO;QACH,GAAG,OAAO;QACV,OAAO,EAAE,cAAc;QACvB,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,CAAC;AACN,CAAC;AAED,SAAS,WAAW,CAAC,GAAY;IAC7B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,GAAG,EAAE,CAAC;IACxD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACvB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,IAAI,CAAC;YAChC,OAAO,GAAG,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QACjC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,GAAG,IAAI,CAAC;YAChC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;IACnD,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,eAAe,CAAC,KAAsB;IAC3C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC5B,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,OAAO,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,KAAgC,EAAE,CAAC;QACrE,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,aAAa,CAAC,OAA2B;IAC9C,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAA8B,EAAE,EAAE;QAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAC/F,MAAM,IAAI,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnD,IAAI,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;gBACzB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/** An Active SelfCheck link. Attempts default to 1 when the link does not set a maximum. */
|
|
2
|
+
export interface SelfCheckLink {
|
|
3
|
+
Purpose: string;
|
|
4
|
+
Status: string;
|
|
5
|
+
MaxAttempts?: number | null;
|
|
6
|
+
}
|
|
7
|
+
/** One agent-rubric row the self-check lookup can see. */
|
|
8
|
+
export interface SelfCheckLinkRow {
|
|
9
|
+
ID?: string;
|
|
10
|
+
Purpose?: string;
|
|
11
|
+
Status?: string;
|
|
12
|
+
RubricID?: string;
|
|
13
|
+
MaxSelfCheckAttempts?: number | null;
|
|
14
|
+
PassThreshold?: number | null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Picks one Active SelfCheck link. The lowest id wins, so two Active links
|
|
18
|
+
* do not depend on which row the database returned first.
|
|
19
|
+
*/
|
|
20
|
+
export declare function PickSelfCheckLink(rows: SelfCheckLinkRow[]): SelfCheckLinkRow | undefined;
|
|
21
|
+
export interface SelfCheckFailure {
|
|
22
|
+
Key: string;
|
|
23
|
+
Rationale?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface SelfCheckDecision {
|
|
26
|
+
Action: 'skip' | 'accept' | 'retry' | 'fail' | 'record';
|
|
27
|
+
Attempt: number;
|
|
28
|
+
Message?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Decides what a self-check does with a candidate final output.
|
|
32
|
+
* No Active SelfCheck link skips. A passing score is accepted.
|
|
33
|
+
* A loop agent retries while the attempt is still within MaxAttempts, so
|
|
34
|
+
* MaxAttempts 1 allows the first failure to retry. A flow agent records the
|
|
35
|
+
* result and leaves the run successful. A loop that has used its attempts fails.
|
|
36
|
+
*/
|
|
37
|
+
export declare function DecideSelfCheck(input: {
|
|
38
|
+
agentKind: 'loop' | 'flow';
|
|
39
|
+
link: SelfCheckLink | null;
|
|
40
|
+
attempt: number;
|
|
41
|
+
passed: boolean;
|
|
42
|
+
failedCriteria?: SelfCheckFailure[];
|
|
43
|
+
}): SelfCheckDecision;
|
|
44
|
+
/** The candidate still in memory. FinalPayload is written only after the run finishes. */
|
|
45
|
+
export interface SelfCheckCandidate {
|
|
46
|
+
Message?: string;
|
|
47
|
+
Payload?: unknown;
|
|
48
|
+
}
|
|
49
|
+
export interface SelfCheckEngine {
|
|
50
|
+
EvaluateRecord(input: {
|
|
51
|
+
rubricId: string;
|
|
52
|
+
subjectEntityName: string;
|
|
53
|
+
subjectRecordId: string;
|
|
54
|
+
evaluator: 'LLM';
|
|
55
|
+
passThreshold?: number | null;
|
|
56
|
+
content?: {
|
|
57
|
+
text?: string;
|
|
58
|
+
data?: Record<string, unknown>;
|
|
59
|
+
};
|
|
60
|
+
}): Promise<{
|
|
61
|
+
evaluationId: string;
|
|
62
|
+
outcome: string | null;
|
|
63
|
+
criteria: {
|
|
64
|
+
key: string;
|
|
65
|
+
rationale?: string;
|
|
66
|
+
}[];
|
|
67
|
+
}>;
|
|
68
|
+
}
|
|
69
|
+
export interface SelfCheckValidation {
|
|
70
|
+
StepType: 'Validation';
|
|
71
|
+
EvaluationId: string;
|
|
72
|
+
Passed: boolean;
|
|
73
|
+
Message: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Runs one self-check evaluation and records a Validation step linked to it.
|
|
77
|
+
* The subject pointer is the current agent run. The text the judge scores is the
|
|
78
|
+
* in-memory message and payload, because the stored run does not have FinalPayload yet.
|
|
79
|
+
* The evaluator is the LLM rubric evaluator. The threshold is the link override
|
|
80
|
+
* when set, otherwise the version's threshold.
|
|
81
|
+
*/
|
|
82
|
+
export declare function ExecuteSelfCheck(input: {
|
|
83
|
+
engine: SelfCheckEngine;
|
|
84
|
+
link: SelfCheckLink & {
|
|
85
|
+
rubricId: string;
|
|
86
|
+
passThreshold?: number | null;
|
|
87
|
+
};
|
|
88
|
+
runId: string;
|
|
89
|
+
agentKind: 'loop' | 'flow';
|
|
90
|
+
attempt: number;
|
|
91
|
+
candidate?: SelfCheckCandidate;
|
|
92
|
+
record: (step: SelfCheckValidation) => void | Promise<void>;
|
|
93
|
+
}): Promise<{
|
|
94
|
+
decision: SelfCheckDecision;
|
|
95
|
+
step: 'Success' | 'Failed' | 'Retry';
|
|
96
|
+
evaluationId: string;
|
|
97
|
+
}>;
|
|
98
|
+
//# sourceMappingURL=self-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-check.d.ts","sourceRoot":"","sources":["../src/self-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Picks one Active SelfCheck link. The lowest id wins, so two Active links
|
|
3
|
+
* do not depend on which row the database returned first.
|
|
4
|
+
*/
|
|
5
|
+
export function PickSelfCheckLink(rows) {
|
|
6
|
+
return [...rows]
|
|
7
|
+
.filter(row => row.Status === 'Active' && row.Purpose === 'SelfCheck' && !!row.RubricID)
|
|
8
|
+
.sort((left, right) => String(left.ID ?? '').localeCompare(String(right.ID ?? '')))[0];
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Decides what a self-check does with a candidate final output.
|
|
12
|
+
* No Active SelfCheck link skips. A passing score is accepted.
|
|
13
|
+
* A loop agent retries while the attempt is still within MaxAttempts, so
|
|
14
|
+
* MaxAttempts 1 allows the first failure to retry. A flow agent records the
|
|
15
|
+
* result and leaves the run successful. A loop that has used its attempts fails.
|
|
16
|
+
*/
|
|
17
|
+
export function DecideSelfCheck(input) {
|
|
18
|
+
if (!input.link || input.link.Purpose !== 'SelfCheck' || input.link.Status !== 'Active') {
|
|
19
|
+
return { Action: 'skip', Attempt: input.attempt };
|
|
20
|
+
}
|
|
21
|
+
if (input.passed)
|
|
22
|
+
return { Action: 'accept', Attempt: input.attempt };
|
|
23
|
+
const message = (input.failedCriteria ?? [])
|
|
24
|
+
.map(item => item.Rationale ? `${item.Key}: ${item.Rationale}` : item.Key)
|
|
25
|
+
.join('\n');
|
|
26
|
+
const maxAttempts = input.link.MaxAttempts ?? 1;
|
|
27
|
+
if (input.agentKind === 'loop' && input.attempt <= maxAttempts) {
|
|
28
|
+
return { Action: 'retry', Attempt: input.attempt, Message: message };
|
|
29
|
+
}
|
|
30
|
+
if (input.agentKind === 'flow') {
|
|
31
|
+
return { Action: 'record', Attempt: input.attempt, Message: message };
|
|
32
|
+
}
|
|
33
|
+
return { Action: 'fail', Attempt: input.attempt, Message: message || 'Self-check failed.' };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Runs one self-check evaluation and records a Validation step linked to it.
|
|
37
|
+
* The subject pointer is the current agent run. The text the judge scores is the
|
|
38
|
+
* in-memory message and payload, because the stored run does not have FinalPayload yet.
|
|
39
|
+
* The evaluator is the LLM rubric evaluator. The threshold is the link override
|
|
40
|
+
* when set, otherwise the version's threshold.
|
|
41
|
+
*/
|
|
42
|
+
export async function ExecuteSelfCheck(input) {
|
|
43
|
+
const result = await input.engine.EvaluateRecord({
|
|
44
|
+
rubricId: input.link.rubricId,
|
|
45
|
+
subjectEntityName: 'MJ: AI Agent Runs',
|
|
46
|
+
subjectRecordId: input.runId,
|
|
47
|
+
evaluator: 'LLM',
|
|
48
|
+
passThreshold: input.link.passThreshold ?? null,
|
|
49
|
+
...(input.candidate ? {
|
|
50
|
+
content: {
|
|
51
|
+
text: input.candidate.Message,
|
|
52
|
+
data: { message: input.candidate.Message, finalPayload: input.candidate.Payload },
|
|
53
|
+
},
|
|
54
|
+
} : {}),
|
|
55
|
+
});
|
|
56
|
+
const passed = result.outcome === 'Passed' || result.outcome === 'Scored';
|
|
57
|
+
const failedCriteria = passed ? [] : result.criteria.map(item => ({ Key: item.key, Rationale: item.rationale }));
|
|
58
|
+
const decision = DecideSelfCheck({
|
|
59
|
+
agentKind: input.agentKind,
|
|
60
|
+
link: input.link,
|
|
61
|
+
attempt: input.attempt,
|
|
62
|
+
passed,
|
|
63
|
+
failedCriteria,
|
|
64
|
+
});
|
|
65
|
+
await input.record({
|
|
66
|
+
StepType: 'Validation',
|
|
67
|
+
EvaluationId: result.evaluationId,
|
|
68
|
+
Passed: passed,
|
|
69
|
+
Message: decision.Message ?? '',
|
|
70
|
+
});
|
|
71
|
+
const step = decision.Action === 'retry' ? 'Retry' : decision.Action === 'fail' ? 'Failed' : 'Success';
|
|
72
|
+
return { decision, step, evaluationId: result.evaluationId };
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=self-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-check.js","sourceRoot":"","sources":["../src/self-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,8 @@ export interface ParsedPathWithOperations {
|
|
|
37
37
|
* @param pathSpec The path specification string
|
|
38
38
|
* @returns Parsed path with operations
|
|
39
39
|
*/
|
|
40
|
+
export declare function ParsePathWithOperations(pathSpec: string): ParsedPathWithOperations;
|
|
41
|
+
/** @deprecated Use {@link ParsePathWithOperations}. */
|
|
40
42
|
export declare function parsePathWithOperations(pathSpec: string): ParsedPathWithOperations;
|
|
41
43
|
/**
|
|
42
44
|
* Parses multiple path specifications
|
|
@@ -44,6 +46,8 @@ export declare function parsePathWithOperations(pathSpec: string): ParsedPathWit
|
|
|
44
46
|
* @param pathSpecs Array of path specification strings
|
|
45
47
|
* @returns Array of parsed paths with operations
|
|
46
48
|
*/
|
|
49
|
+
export declare function ParsePathsWithOperations(pathSpecs: string[]): ParsedPathWithOperations[];
|
|
50
|
+
/** @deprecated Use {@link ParsePathsWithOperations}. */
|
|
47
51
|
export declare function parsePathsWithOperations(pathSpecs: string[]): ParsedPathWithOperations[];
|
|
48
52
|
/**
|
|
49
53
|
* Checks if a specific operation is allowed for a path
|
|
@@ -52,6 +56,8 @@ export declare function parsePathsWithOperations(pathSpecs: string[]): ParsedPat
|
|
|
52
56
|
* @param operation The operation to check
|
|
53
57
|
* @returns True if the operation is allowed
|
|
54
58
|
*/
|
|
59
|
+
export declare function IsOperationAllowed(parsedPath: ParsedPathWithOperations, operation: PayloadOperation): boolean;
|
|
60
|
+
/** @deprecated Use {@link IsOperationAllowed}. */
|
|
55
61
|
export declare function isOperationAllowed(parsedPath: ParsedPathWithOperations, operation: PayloadOperation): boolean;
|
|
56
62
|
/**
|
|
57
63
|
* Formats a parsed path back to string representation
|
|
@@ -59,5 +65,7 @@ export declare function isOperationAllowed(parsedPath: ParsedPathWithOperations,
|
|
|
59
65
|
* @param parsedPath The parsed path with operations
|
|
60
66
|
* @returns String representation
|
|
61
67
|
*/
|
|
68
|
+
export declare function FormatPathWithOperations(parsedPath: ParsedPathWithOperations): string;
|
|
69
|
+
/** @deprecated Use {@link FormatPathWithOperations}. */
|
|
62
70
|
export declare function formatPathWithOperations(parsedPath: ParsedPathWithOperations): string;
|
|
63
71
|
//# sourceMappingURL=payload-operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-operations.d.ts","sourceRoot":"","sources":["../../src/types/payload-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,EAAgC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,kEAAkE;IAClE,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CA6ClF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,wBAAwB,EAAE,CAMxF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,wBAAwB,EACpC,SAAS,EAAE,gBAAgB,GAC5B,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,wBAAwB,GAAG,MAAM,CAUrF"}
|
|
1
|
+
{"version":3,"file":"payload-operations.d.ts","sourceRoot":"","sources":["../../src/types/payload-operations.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE3D;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,gBAAgB,EAAgC,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,kEAAkE;IAClE,aAAa,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CA6ClF;AAED,uDAAuD;AACvD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,wBAAwB,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,wBAAwB,EAAE,CAMxF;AAED,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,wBAAwB,EAAE,CAExF;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,wBAAwB,EACpC,SAAS,EAAE,gBAAgB,GAC5B,OAAO,CAET;AAED,kDAAkD;AAClD,wBAAgB,kBAAkB,CAC9B,UAAU,EAAE,wBAAwB,EACpC,SAAS,EAAE,gBAAgB,GAC5B,OAAO,CAET;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,wBAAwB,GAAG,MAAM,CAUrF;AAED,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,wBAAwB,GAAG,MAAM,CAErF"}
|
|
@@ -22,7 +22,7 @@ export const ALL_OPERATIONS = ['add', 'update', 'delete'];
|
|
|
22
22
|
* @param pathSpec The path specification string
|
|
23
23
|
* @returns Parsed path with operations
|
|
24
24
|
*/
|
|
25
|
-
export function
|
|
25
|
+
export function ParsePathWithOperations(pathSpec) {
|
|
26
26
|
if (!pathSpec || typeof pathSpec !== 'string') {
|
|
27
27
|
return { path: '', operations: [], allOperations: false };
|
|
28
28
|
}
|
|
@@ -61,17 +61,25 @@ export function parsePathWithOperations(pathSpec) {
|
|
|
61
61
|
ALL_OPERATIONS.every(op => operations.includes(op))
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
+
/** @deprecated Use {@link ParsePathWithOperations}. */
|
|
65
|
+
export function parsePathWithOperations(pathSpec) {
|
|
66
|
+
return ParsePathWithOperations(pathSpec);
|
|
67
|
+
}
|
|
64
68
|
/**
|
|
65
69
|
* Parses multiple path specifications
|
|
66
70
|
*
|
|
67
71
|
* @param pathSpecs Array of path specification strings
|
|
68
72
|
* @returns Array of parsed paths with operations
|
|
69
73
|
*/
|
|
70
|
-
export function
|
|
74
|
+
export function ParsePathsWithOperations(pathSpecs) {
|
|
71
75
|
if (!Array.isArray(pathSpecs)) {
|
|
72
76
|
return [];
|
|
73
77
|
}
|
|
74
|
-
return pathSpecs.map(spec =>
|
|
78
|
+
return pathSpecs.map(spec => ParsePathWithOperations(spec));
|
|
79
|
+
}
|
|
80
|
+
/** @deprecated Use {@link ParsePathsWithOperations}. */
|
|
81
|
+
export function parsePathsWithOperations(pathSpecs) {
|
|
82
|
+
return ParsePathsWithOperations(pathSpecs);
|
|
75
83
|
}
|
|
76
84
|
/**
|
|
77
85
|
* Checks if a specific operation is allowed for a path
|
|
@@ -80,16 +88,20 @@ export function parsePathsWithOperations(pathSpecs) {
|
|
|
80
88
|
* @param operation The operation to check
|
|
81
89
|
* @returns True if the operation is allowed
|
|
82
90
|
*/
|
|
83
|
-
export function
|
|
91
|
+
export function IsOperationAllowed(parsedPath, operation) {
|
|
84
92
|
return parsedPath.allOperations || parsedPath.operations.includes(operation);
|
|
85
93
|
}
|
|
94
|
+
/** @deprecated Use {@link IsOperationAllowed}. */
|
|
95
|
+
export function isOperationAllowed(parsedPath, operation) {
|
|
96
|
+
return IsOperationAllowed(parsedPath, operation);
|
|
97
|
+
}
|
|
86
98
|
/**
|
|
87
99
|
* Formats a parsed path back to string representation
|
|
88
100
|
*
|
|
89
101
|
* @param parsedPath The parsed path with operations
|
|
90
102
|
* @returns String representation
|
|
91
103
|
*/
|
|
92
|
-
export function
|
|
104
|
+
export function FormatPathWithOperations(parsedPath) {
|
|
93
105
|
if (parsedPath.allOperations) {
|
|
94
106
|
return parsedPath.path;
|
|
95
107
|
}
|
|
@@ -98,4 +110,8 @@ export function formatPathWithOperations(parsedPath) {
|
|
|
98
110
|
}
|
|
99
111
|
return `${parsedPath.path}:${parsedPath.operations.join(',')}`;
|
|
100
112
|
}
|
|
113
|
+
/** @deprecated Use {@link FormatPathWithOperations}. */
|
|
114
|
+
export function formatPathWithOperations(parsedPath) {
|
|
115
|
+
return FormatPathWithOperations(parsedPath);
|
|
116
|
+
}
|
|
101
117
|
//# sourceMappingURL=payload-operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payload-operations.js","sourceRoot":"","sources":["../../src/types/payload-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"payload-operations.js","sourceRoot":"","sources":["../../src/types/payload-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,8 @@ export declare class ConversationMessageResolver {
|
|
|
57
57
|
* @param conversationMessages - Array of chat messages to resolve from
|
|
58
58
|
* @returns Resolved message(s) or property value(s), or undefined if invalid path
|
|
59
59
|
*/
|
|
60
|
+
static Resolve(conversationPath: string, conversationMessages: ChatMessage[]): ChatMessage | ChatMessage[] | any | undefined;
|
|
61
|
+
/** @deprecated Use {@link Resolve}. */
|
|
60
62
|
static resolve(conversationPath: string, conversationMessages: ChatMessage[]): ChatMessage | ChatMessage[] | any | undefined;
|
|
61
63
|
/**
|
|
62
64
|
* Gets the role filter function for a given role specification.
|
|
@@ -72,6 +74,8 @@ export declare class ConversationMessageResolver {
|
|
|
72
74
|
* @param value - The value to check
|
|
73
75
|
* @returns True if the value is a conversation reference
|
|
74
76
|
*/
|
|
77
|
+
static IsConversationReference(value: string): boolean;
|
|
78
|
+
/** @deprecated Use {@link IsConversationReference}. */
|
|
75
79
|
static isConversationReference(value: string): boolean;
|
|
76
80
|
/**
|
|
77
81
|
* Helper method to get a value from a nested object path.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationMessageResolver.d.ts","sourceRoot":"","sources":["../../src/utils/ConversationMessageResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,2BAA2B;IACpC;;;;;;;;;;;;;OAaG;WACW,OAAO,CACjB,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,WAAW,EAAE,GACpC,WAAW,GAAG,WAAW,EAAE,GAAG,GAAG,GAAG,SAAS;IAyEhD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAgB5B;;;;;OAKG;WACW,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK7D;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAwClC"}
|
|
1
|
+
{"version":3,"file":"ConversationMessageResolver.d.ts","sourceRoot":"","sources":["../../src/utils/ConversationMessageResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,2BAA2B;IACpC;;;;;;;;;;;;;OAaG;WACW,OAAO,CACjB,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,WAAW,EAAE,GACpC,WAAW,GAAG,WAAW,EAAE,GAAG,GAAG,GAAG,SAAS;IAyEhD,uCAAuC;WACzB,OAAO,CACjB,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,WAAW,EAAE,GACpC,WAAW,GAAG,WAAW,EAAE,GAAG,GAAG,GAAG,SAAS;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAgB5B;;;;;OAKG;WACW,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAK7D,uDAAuD;WACzC,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7D;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;CAwClC"}
|
|
@@ -56,7 +56,7 @@ export class ConversationMessageResolver {
|
|
|
56
56
|
* @param conversationMessages - Array of chat messages to resolve from
|
|
57
57
|
* @returns Resolved message(s) or property value(s), or undefined if invalid path
|
|
58
58
|
*/
|
|
59
|
-
static
|
|
59
|
+
static Resolve(conversationPath, conversationMessages) {
|
|
60
60
|
// Parse: conversation.<role>.<position>[count].<property>
|
|
61
61
|
const parts = conversationPath.split('.');
|
|
62
62
|
if (parts[0]?.toLowerCase() !== 'conversation') {
|
|
@@ -118,6 +118,10 @@ export class ConversationMessageResolver {
|
|
|
118
118
|
}
|
|
119
119
|
return result;
|
|
120
120
|
}
|
|
121
|
+
/** @deprecated Use {@link Resolve}. */
|
|
122
|
+
static resolve(conversationPath, conversationMessages) {
|
|
123
|
+
return this.Resolve(conversationPath, conversationMessages);
|
|
124
|
+
}
|
|
121
125
|
/**
|
|
122
126
|
* Gets the role filter function for a given role specification.
|
|
123
127
|
*
|
|
@@ -146,10 +150,14 @@ export class ConversationMessageResolver {
|
|
|
146
150
|
* @param value - The value to check
|
|
147
151
|
* @returns True if the value is a conversation reference
|
|
148
152
|
*/
|
|
149
|
-
static
|
|
153
|
+
static IsConversationReference(value) {
|
|
150
154
|
return typeof value === 'string' &&
|
|
151
155
|
value.trim().toLowerCase().startsWith('conversation.');
|
|
152
156
|
}
|
|
157
|
+
/** @deprecated Use {@link IsConversationReference}. */
|
|
158
|
+
static isConversationReference(value) {
|
|
159
|
+
return this.IsConversationReference(value);
|
|
160
|
+
}
|
|
153
161
|
/**
|
|
154
162
|
* Helper method to get a value from a nested object path.
|
|
155
163
|
* Supports both dot notation (obj.prop) and array indexing (arr[0]).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationMessageResolver.js","sourceRoot":"","sources":["../../src/utils/ConversationMessageResolver.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConversationMessageResolver.js","sourceRoot":"","sources":["../../src/utils/ConversationMessageResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SpecializationPlacement } from './agent-types/loop-agent-prompt-params.js';
|
|
2
|
+
/** Where the specialization ends up for a run: one of the two concrete placements (never `'auto'`). */
|
|
3
|
+
export type ResolvedSpecializationPlacement = Exclude<SpecializationPlacement, 'auto'>;
|
|
4
|
+
/**
|
|
5
|
+
* Every template variable whose presence in a child prompt makes the rendered specialization
|
|
6
|
+
* change between iterations. Derived from the system-placeholder registry's "Date & Time"
|
|
7
|
+
* category (minus the stable timezone) plus the loop agent's own per-iteration variables (both
|
|
8
|
+
* from `./constants`), so a new temporal placeholder is picked up automatically.
|
|
9
|
+
*/
|
|
10
|
+
export declare const VOLATILE_PLACEHOLDER_NAMES: readonly string[];
|
|
11
|
+
/**
|
|
12
|
+
* Returns the volatile placeholder names referenced by a template's text, in registry order.
|
|
13
|
+
* Matches whole identifiers only, so `_CURRENT_DATE` does not match inside `_CURRENT_DATE_AND_TIME`
|
|
14
|
+
* (both are volatile, but each is reported for itself). Empty array for empty/null text.
|
|
15
|
+
*/
|
|
16
|
+
export declare function DetectVolatilePlaceholders(templateText: string | null | undefined): string[];
|
|
17
|
+
/** True when the template references at least one volatile placeholder. */
|
|
18
|
+
export declare function IsVolatileChildPrompt(templateText: string | null | undefined): boolean;
|
|
19
|
+
/** Normalizes the raw `specializationPlacement` param; anything unrecognized is `'auto'`. */
|
|
20
|
+
export declare function ResolveSpecializationPlacementParam(promptParams: Record<string, unknown> | null | undefined): SpecializationPlacement;
|
|
21
|
+
/**
|
|
22
|
+
* Decides where the specialization goes for this run.
|
|
23
|
+
*
|
|
24
|
+
* The runtime-state fragment is always the final message of the request, so relocation is always
|
|
25
|
+
* possible. An explicit `specializationPlacement` wins; `'auto'` relocates exactly when the child
|
|
26
|
+
* template is volatile.
|
|
27
|
+
*
|
|
28
|
+
* @param promptParams The merged `__agentTypePromptParams` for the agent.
|
|
29
|
+
* @param childTemplateText The child prompt's UNRENDERED template text (placeholders intact).
|
|
30
|
+
* Pass `null` when the agent has no child prompt; the result is then `'systemPrompt'`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function ResolveSpecializationPlacement(promptParams: Record<string, unknown> | null | undefined, childTemplateText: string | null | undefined): ResolvedSpecializationPlacement;
|
|
33
|
+
//# sourceMappingURL=volatile-child-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"volatile-child-prompt.d.ts","sourceRoot":"","sources":["../src/volatile-child-prompt.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AAGjF,uGAAuG;AACvG,MAAM,MAAM,+BAA+B,GAAG,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,CAAC;AAEvF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,SAAS,MAAM,EAKvD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAQ5F;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAEtF;AAED,6FAA6F;AAC7F,wBAAgB,mCAAmC,CAC/C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GACzD,uBAAuB,CAGzB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,8BAA8B,CAC1C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EACxD,iBAAiB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7C,+BAA+B,CASjC"}
|