@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.
Files changed (214) hide show
  1. package/README.md +43 -0
  2. package/dist/AgentDataPreloader.d.ts +4 -0
  3. package/dist/AgentDataPreloader.d.ts.map +1 -1
  4. package/dist/AgentDataPreloader.js +10 -2
  5. package/dist/AgentDataPreloader.js.map +1 -1
  6. package/dist/AgentDecisionService.d.ts +83 -0
  7. package/dist/AgentDecisionService.d.ts.map +1 -0
  8. package/dist/AgentDecisionService.js +155 -0
  9. package/dist/AgentDecisionService.js.map +1 -0
  10. package/dist/AgentRunner.d.ts +16 -4
  11. package/dist/AgentRunner.d.ts.map +1 -1
  12. package/dist/AgentRunner.js +55 -32
  13. package/dist/AgentRunner.js.map +1 -1
  14. package/dist/ArtifactToolManager.d.ts +4 -4
  15. package/dist/ArtifactToolManager.js +10 -10
  16. package/dist/ConversationToolManager.d.ts +16 -3
  17. package/dist/ConversationToolManager.d.ts.map +1 -1
  18. package/dist/ConversationToolManager.js +28 -5
  19. package/dist/ConversationToolManager.js.map +1 -1
  20. package/dist/KnowledgeAgent.d.ts.map +1 -1
  21. package/dist/KnowledgeAgent.js +6 -6
  22. package/dist/KnowledgeAgent.js.map +1 -1
  23. package/dist/PayloadChangeAnalyzer.d.ts +4 -0
  24. package/dist/PayloadChangeAnalyzer.d.ts.map +1 -1
  25. package/dist/PayloadChangeAnalyzer.js +10 -2
  26. package/dist/PayloadChangeAnalyzer.js.map +1 -1
  27. package/dist/PayloadFeedbackManager.d.ts +120 -13
  28. package/dist/PayloadFeedbackManager.d.ts.map +1 -1
  29. package/dist/PayloadFeedbackManager.js +244 -88
  30. package/dist/PayloadFeedbackManager.js.map +1 -1
  31. package/dist/PayloadManager.d.ts +27 -0
  32. package/dist/PayloadManager.d.ts.map +1 -1
  33. package/dist/PayloadManager.js +47 -15
  34. package/dist/PayloadManager.js.map +1 -1
  35. package/dist/agent-context-injector.d.ts +47 -3
  36. package/dist/agent-context-injector.d.ts.map +1 -1
  37. package/dist/agent-context-injector.js +77 -10
  38. package/dist/agent-context-injector.js.map +1 -1
  39. package/dist/agent-memory-context-builder.d.ts +13 -0
  40. package/dist/agent-memory-context-builder.d.ts.map +1 -1
  41. package/dist/agent-memory-context-builder.js +24 -5
  42. package/dist/agent-memory-context-builder.js.map +1 -1
  43. package/dist/agent-types/base-agent-type.d.ts +16 -0
  44. package/dist/agent-types/base-agent-type.d.ts.map +1 -1
  45. package/dist/agent-types/base-agent-type.js +20 -1
  46. package/dist/agent-types/base-agent-type.js.map +1 -1
  47. package/dist/agent-types/flow-agent-type.d.ts +106 -0
  48. package/dist/agent-types/flow-agent-type.d.ts.map +1 -1
  49. package/dist/agent-types/flow-agent-type.js +299 -29
  50. package/dist/agent-types/flow-agent-type.js.map +1 -1
  51. package/dist/agent-types/flow-graph-executor.d.ts +12 -1
  52. package/dist/agent-types/flow-graph-executor.d.ts.map +1 -1
  53. package/dist/agent-types/flow-graph-executor.js +25 -1
  54. package/dist/agent-types/flow-graph-executor.js.map +1 -1
  55. package/dist/agent-types/loop-agent-prompt-params.d.ts +258 -11
  56. package/dist/agent-types/loop-agent-prompt-params.d.ts.map +1 -1
  57. package/dist/agent-types/loop-agent-prompt-params.js +49 -2
  58. package/dist/agent-types/loop-agent-prompt-params.js.map +1 -1
  59. package/dist/agent-types/loop-agent-response-type.d.ts +12 -1
  60. package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
  61. package/dist/agent-types/loop-agent-response-type.js.map +1 -1
  62. package/dist/agent-types/loop-agent-type.d.ts +6 -0
  63. package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
  64. package/dist/agent-types/loop-agent-type.js +42 -3
  65. package/dist/agent-types/loop-agent-type.js.map +1 -1
  66. package/dist/artifact-target-plan.d.ts +2 -0
  67. package/dist/artifact-target-plan.d.ts.map +1 -1
  68. package/dist/artifact-target-plan.js +5 -1
  69. package/dist/artifact-target-plan.js.map +1 -1
  70. package/dist/base-agent.d.ts +886 -5
  71. package/dist/base-agent.d.ts.map +1 -1
  72. package/dist/base-agent.js +2567 -164
  73. package/dist/base-agent.js.map +1 -1
  74. package/dist/catalog-narrowing.d.ts +136 -0
  75. package/dist/catalog-narrowing.d.ts.map +1 -0
  76. package/dist/catalog-narrowing.js +212 -0
  77. package/dist/catalog-narrowing.js.map +1 -0
  78. package/dist/constants.d.ts +57 -0
  79. package/dist/constants.d.ts.map +1 -0
  80. package/dist/constants.js +70 -0
  81. package/dist/constants.js.map +1 -0
  82. package/dist/decision-discovery.d.ts +401 -0
  83. package/dist/decision-discovery.d.ts.map +1 -0
  84. package/dist/decision-discovery.js +511 -0
  85. package/dist/decision-discovery.js.map +1 -0
  86. package/dist/finish-if-mode-warnings.d.ts +39 -0
  87. package/dist/finish-if-mode-warnings.d.ts.map +1 -0
  88. package/dist/finish-if-mode-warnings.js +78 -0
  89. package/dist/finish-if-mode-warnings.js.map +1 -0
  90. package/dist/finish-if-state.d.ts +72 -0
  91. package/dist/finish-if-state.d.ts.map +1 -0
  92. package/dist/finish-if-state.js +109 -0
  93. package/dist/finish-if-state.js.map +1 -0
  94. package/dist/index.d.ts +9 -0
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +10 -0
  97. package/dist/index.js.map +1 -1
  98. package/dist/memory-manager-agent.d.ts +119 -13
  99. package/dist/memory-manager-agent.d.ts.map +1 -1
  100. package/dist/memory-manager-agent.js +237 -74
  101. package/dist/memory-manager-agent.js.map +1 -1
  102. package/dist/memory-note-gate.d.ts +208 -0
  103. package/dist/memory-note-gate.d.ts.map +1 -0
  104. package/dist/memory-note-gate.js +294 -0
  105. package/dist/memory-note-gate.js.map +1 -0
  106. package/dist/native-tools/action-tool-builder.d.ts +8 -0
  107. package/dist/native-tools/action-tool-builder.d.ts.map +1 -1
  108. package/dist/native-tools/action-tool-builder.js +22 -6
  109. package/dist/native-tools/action-tool-builder.js.map +1 -1
  110. package/dist/native-tools/control-tools.d.ts +8 -0
  111. package/dist/native-tools/control-tools.d.ts.map +1 -1
  112. package/dist/native-tools/control-tools.js +25 -9
  113. package/dist/native-tools/control-tools.js.map +1 -1
  114. package/dist/native-tools/dual-channel.d.ts +2 -0
  115. package/dist/native-tools/dual-channel.d.ts.map +1 -1
  116. package/dist/native-tools/dual-channel.js +5 -1
  117. package/dist/native-tools/dual-channel.js.map +1 -1
  118. package/dist/native-tools/tool-result-turns.d.ts +9 -0
  119. package/dist/native-tools/tool-result-turns.d.ts.map +1 -1
  120. package/dist/native-tools/tool-result-turns.js +15 -3
  121. package/dist/native-tools/tool-result-turns.js.map +1 -1
  122. package/dist/pipeline/coerce.d.ts +14 -0
  123. package/dist/pipeline/coerce.d.ts.map +1 -1
  124. package/dist/pipeline/coerce.js +37 -9
  125. package/dist/pipeline/coerce.js.map +1 -1
  126. package/dist/pipeline/jsonpath-eval.d.ts +4 -0
  127. package/dist/pipeline/jsonpath-eval.d.ts.map +1 -1
  128. package/dist/pipeline/jsonpath-eval.js +10 -2
  129. package/dist/pipeline/jsonpath-eval.js.map +1 -1
  130. package/dist/pipeline/operators.js +16 -16
  131. package/dist/pipeline/path.d.ts +6 -0
  132. package/dist/pipeline/path.d.ts.map +1 -1
  133. package/dist/pipeline/path.js +17 -5
  134. package/dist/pipeline/path.js.map +1 -1
  135. package/dist/pipeline/pipeline-executor.js +10 -10
  136. package/dist/pipeline/predicate.d.ts +4 -0
  137. package/dist/pipeline/predicate.d.ts.map +1 -1
  138. package/dist/pipeline/predicate.js +15 -7
  139. package/dist/pipeline/predicate.js.map +1 -1
  140. package/dist/pipeline/providers/action-provider.js +2 -2
  141. package/dist/pipeline/providers/artifact-tool-provider.js +2 -2
  142. package/dist/pipeline/providers/serialize.d.ts +4 -0
  143. package/dist/pipeline/providers/serialize.d.ts.map +1 -1
  144. package/dist/pipeline/providers/serialize.js +10 -2
  145. package/dist/pipeline/providers/serialize.js.map +1 -1
  146. package/dist/pipeline/template.d.ts +4 -0
  147. package/dist/pipeline/template.d.ts.map +1 -1
  148. package/dist/pipeline/template.js +15 -7
  149. package/dist/pipeline/template.js.map +1 -1
  150. package/dist/realtime/agent-media-library.d.ts +10 -0
  151. package/dist/realtime/agent-media-library.d.ts.map +1 -1
  152. package/dist/realtime/agent-media-library.js +29 -9
  153. package/dist/realtime/agent-media-library.js.map +1 -1
  154. package/dist/realtime/bridge-realtime-session-factory.d.ts +5 -2
  155. package/dist/realtime/bridge-realtime-session-factory.d.ts.map +1 -1
  156. package/dist/realtime/bridge-realtime-session-factory.js +7 -4
  157. package/dist/realtime/bridge-realtime-session-factory.js.map +1 -1
  158. package/dist/realtime/bridge-room-transcript-sink.d.ts.map +1 -1
  159. package/dist/realtime/bridge-room-transcript-sink.js +15 -9
  160. package/dist/realtime/bridge-room-transcript-sink.js.map +1 -1
  161. package/dist/realtime/media-channel-server.js +2 -2
  162. package/dist/realtime/meeting-controls-state.d.ts +2 -0
  163. package/dist/realtime/meeting-controls-state.d.ts.map +1 -1
  164. package/dist/realtime/meeting-controls-state.js +6 -2
  165. package/dist/realtime/meeting-controls-state.js.map +1 -1
  166. package/dist/realtime/realtime-channel-server-data-context.d.ts +2 -0
  167. package/dist/realtime/realtime-channel-server-data-context.d.ts.map +1 -1
  168. package/dist/realtime/realtime-channel-server-data-context.js +5 -1
  169. package/dist/realtime/realtime-channel-server-data-context.js.map +1 -1
  170. package/dist/realtime/realtime-channel-server-host.js +2 -2
  171. package/dist/realtime/realtime-client-session-service.d.ts +58 -12
  172. package/dist/realtime/realtime-client-session-service.d.ts.map +1 -1
  173. package/dist/realtime/realtime-client-session-service.js +91 -31
  174. package/dist/realtime/realtime-client-session-service.js.map +1 -1
  175. package/dist/realtime/realtime-coagent-config.d.ts +2 -0
  176. package/dist/realtime/realtime-coagent-config.d.ts.map +1 -1
  177. package/dist/realtime/realtime-coagent-config.js +6 -2
  178. package/dist/realtime/realtime-coagent-config.js.map +1 -1
  179. package/dist/realtime/realtime-recording-store.d.ts +15 -0
  180. package/dist/realtime/realtime-recording-store.d.ts.map +1 -1
  181. package/dist/realtime/realtime-recording-store.js +31 -7
  182. package/dist/realtime/realtime-recording-store.js.map +1 -1
  183. package/dist/realtime/realtime-session-runner.d.ts +4 -4
  184. package/dist/realtime/realtime-session-runner.js +9 -9
  185. package/dist/realtime/realtime-session-runner.js.map +1 -1
  186. package/dist/realtime/realtime-vendor-resolution.d.ts +8 -3
  187. package/dist/realtime/realtime-vendor-resolution.d.ts.map +1 -1
  188. package/dist/realtime/realtime-vendor-resolution.js +3 -3
  189. package/dist/realtime/realtime-vendor-resolution.js.map +1 -1
  190. package/dist/rubric-evaluation-agent-runner.d.ts +2 -0
  191. package/dist/rubric-evaluation-agent-runner.d.ts.map +1 -0
  192. package/dist/rubric-evaluation-agent-runner.js +38 -0
  193. package/dist/rubric-evaluation-agent-runner.js.map +1 -0
  194. package/dist/runtime-state-fragment.d.ts +101 -0
  195. package/dist/runtime-state-fragment.d.ts.map +1 -0
  196. package/dist/runtime-state-fragment.js +173 -0
  197. package/dist/runtime-state-fragment.js.map +1 -0
  198. package/dist/self-check.d.ts +98 -0
  199. package/dist/self-check.d.ts.map +1 -0
  200. package/dist/self-check.js +74 -0
  201. package/dist/self-check.js.map +1 -0
  202. package/dist/types/payload-operations.d.ts +8 -0
  203. package/dist/types/payload-operations.d.ts.map +1 -1
  204. package/dist/types/payload-operations.js +21 -5
  205. package/dist/types/payload-operations.js.map +1 -1
  206. package/dist/utils/ConversationMessageResolver.d.ts +4 -0
  207. package/dist/utils/ConversationMessageResolver.d.ts.map +1 -1
  208. package/dist/utils/ConversationMessageResolver.js +10 -2
  209. package/dist/utils/ConversationMessageResolver.js.map +1 -1
  210. package/dist/volatile-child-prompt.d.ts +33 -0
  211. package/dist/volatile-child-prompt.d.ts.map +1 -0
  212. package/dist/volatile-child-prompt.js +76 -0
  213. package/dist/volatile-child-prompt.js.map +1 -0
  214. 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) => `&lt;${slash}${tag.toLowerCase()}&gt;`);
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":"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"}
@@ -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 parsePathWithOperations(pathSpec) {
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 parsePathsWithOperations(pathSpecs) {
74
+ export function ParsePathsWithOperations(pathSpecs) {
71
75
  if (!Array.isArray(pathSpecs)) {
72
76
  return [];
73
77
  }
74
- return pathSpecs.map(spec => parsePathWithOperations(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 isOperationAllowed(parsedPath, operation) {
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 formatPathWithOperations(parsedPath) {
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 resolve(conversationPath, conversationMessages) {
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 isConversationReference(value) {
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"}