callman-core 1.30.0 → 1.32.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/ai-packs/db-queries.md +1 -1
- package/ai-packs/scenario-nodes.md +33 -14
- package/dist/ai/prompts/scenario.d.ts.map +1 -1
- package/dist/ai/prompts/scenario.js +3 -2
- package/dist/ai/prompts/scenario.js.map +1 -1
- package/dist/ai/prompts/scenarioNodeReference.d.ts.map +1 -1
- package/dist/ai/prompts/scenarioNodeReference.js +56 -15
- package/dist/ai/prompts/scenarioNodeReference.js.map +1 -1
- package/dist/host/db/db-query-reference.js +1 -1
- package/dist/host/db/db-query-reference.js.map +1 -1
- package/dist/host/db/mongoAdapter.d.ts +1 -0
- package/dist/host/db/mongoAdapter.d.ts.map +1 -1
- package/dist/host/db/mongoAdapter.js +21 -0
- package/dist/host/db/mongoAdapter.js.map +1 -1
- package/dist/host/db/queryExecutor.js +2 -2
- package/dist/host/db/queryExecutor.js.map +1 -1
- package/dist/host/index.d.ts +1 -1
- package/dist/host/index.d.ts.map +1 -1
- package/dist/host/index.js +1 -1
- package/dist/host/index.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/scenario-runner/adapters/index.d.ts +1 -0
- package/dist/scenario-runner/adapters/index.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/index.js +1 -0
- package/dist/scenario-runner/adapters/index.js.map +1 -1
- package/dist/scenario-runner/adapters/kafka-executor.d.ts +5 -0
- package/dist/scenario-runner/adapters/kafka-executor.d.ts.map +1 -1
- package/dist/scenario-runner/adapters/kafka-executor.js +12 -3
- package/dist/scenario-runner/adapters/kafka-executor.js.map +1 -1
- package/dist/scenario-runner/adapters/types.d.ts +1 -0
- package/dist/scenario-runner/adapters/types.d.ts.map +1 -1
- package/dist/scenario-runner/index.d.ts +3 -0
- package/dist/scenario-runner/index.d.ts.map +1 -1
- package/dist/scenario-runner/index.js +5 -0
- package/dist/scenario-runner/index.js.map +1 -1
- package/dist/scenario-runner/kafkaEvent.d.ts +3 -0
- package/dist/scenario-runner/kafkaEvent.d.ts.map +1 -0
- package/dist/scenario-runner/kafkaEvent.js +18 -0
- package/dist/scenario-runner/kafkaEvent.js.map +1 -0
- package/dist/scenario-runner/nodePolicy.d.ts +8 -1
- package/dist/scenario-runner/nodePolicy.d.ts.map +1 -1
- package/dist/scenario-runner/nodePolicy.js +50 -0
- package/dist/scenario-runner/nodePolicy.js.map +1 -1
- package/dist/scenario-runner/runScenario.d.ts.map +1 -1
- package/dist/scenario-runner/runScenario.js +39 -22
- package/dist/scenario-runner/runScenario.js.map +1 -1
- package/dist/scenario-runner/scenarioReference.d.ts +45 -0
- package/dist/scenario-runner/scenarioReference.d.ts.map +1 -0
- package/dist/scenario-runner/scenarioReference.js +151 -0
- package/dist/scenario-runner/scenarioReference.js.map +1 -0
- package/dist/scenario-runner/types.d.ts +5 -0
- package/dist/scenario-runner/types.d.ts.map +1 -1
- package/dist/ui-test/commands.d.ts +54 -0
- package/dist/ui-test/commands.d.ts.map +1 -0
- package/dist/ui-test/commands.js +436 -0
- package/dist/ui-test/commands.js.map +1 -0
- package/dist/ui-test/flow-lint.d.ts +43 -0
- package/dist/ui-test/flow-lint.d.ts.map +1 -0
- package/dist/ui-test/flow-lint.js +229 -0
- package/dist/ui-test/flow-lint.js.map +1 -0
- package/dist-cjs/ai/prompts/scenario.js +3 -2
- package/dist-cjs/ai/prompts/scenario.js.map +1 -1
- package/dist-cjs/ai/prompts/scenarioNodeReference.js +56 -15
- package/dist-cjs/ai/prompts/scenarioNodeReference.js.map +1 -1
- package/dist-cjs/host/db/db-query-reference.js +1 -1
- package/dist-cjs/host/db/db-query-reference.js.map +1 -1
- package/dist-cjs/host/db/mongoAdapter.js +23 -1
- package/dist-cjs/host/db/mongoAdapter.js.map +1 -1
- package/dist-cjs/host/db/queryExecutor.js +1 -1
- package/dist-cjs/host/db/queryExecutor.js.map +1 -1
- package/dist-cjs/host/index.js +3 -2
- package/dist-cjs/host/index.js.map +1 -1
- package/dist-cjs/index.js +2 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/index.js +9 -3
- package/dist-cjs/scenario-runner/adapters/index.js.map +1 -1
- package/dist-cjs/scenario-runner/adapters/kafka-executor.js +15 -4
- package/dist-cjs/scenario-runner/adapters/kafka-executor.js.map +1 -1
- package/dist-cjs/scenario-runner/index.js +21 -1
- package/dist-cjs/scenario-runner/index.js.map +1 -1
- package/dist-cjs/scenario-runner/kafkaEvent.js +22 -0
- package/dist-cjs/scenario-runner/kafkaEvent.js.map +1 -0
- package/dist-cjs/scenario-runner/nodePolicy.js +53 -1
- package/dist-cjs/scenario-runner/nodePolicy.js.map +1 -1
- package/dist-cjs/scenario-runner/runScenario.js +38 -21
- package/dist-cjs/scenario-runner/runScenario.js.map +1 -1
- package/dist-cjs/scenario-runner/scenarioReference.js +159 -0
- package/dist-cjs/scenario-runner/scenarioReference.js.map +1 -0
- package/dist-cjs/ui-test/commands.js +441 -0
- package/dist-cjs/ui-test/commands.js.map +1 -0
- package/dist-cjs/ui-test/flow-lint.js +235 -0
- package/dist-cjs/ui-test/flow-lint.js.map +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI-test flow linter — checks a flow's YAML the way the engines will read it
|
|
3
|
+
* and reports what would silently go wrong at run time: unknown steps (the
|
|
4
|
+
* engines skip them), missing required arguments, steps the flow's platform
|
|
5
|
+
* cannot run, unresolved `runFlow` references, unknown connections and
|
|
6
|
+
* placeholders nothing fills.
|
|
7
|
+
*
|
|
8
|
+
* Reads the document exactly like the flow parsers do (dedent, then
|
|
9
|
+
* `loadAll`: document 0 = header, document 1 = steps; a single list document
|
|
10
|
+
* = steps only). Never throws.
|
|
11
|
+
*/
|
|
12
|
+
import yaml from "js-yaml";
|
|
13
|
+
import { findUiTestCommand, UI_TEST_HEADER_KEYS } from "./commands.js";
|
|
14
|
+
import { extractPreconditions } from "./compose.js";
|
|
15
|
+
const ARG_SYNONYMS = {
|
|
16
|
+
url: ["url", "link"],
|
|
17
|
+
text: ["text", "value", "element"],
|
|
18
|
+
urlContains: ["urlContains", "url"],
|
|
19
|
+
name: ["name", "commands", "file", "path"],
|
|
20
|
+
};
|
|
21
|
+
/** Keys any step mapping may carry beyond its own args. */
|
|
22
|
+
const COMMON_STEP_KEYS = new Set(["label", "optional", "timeout", "when", "retryTapIfNoChange", "waitToSettleTimeoutMs"]);
|
|
23
|
+
const EXAMPLE_URL_RE = /^https?:\/\/(www\.)?example\.com\/?$/i;
|
|
24
|
+
const PLACEHOLDER_RE = /\{\{\s*([A-Za-z_][\w.-]*)\s*\}\}/g;
|
|
25
|
+
function dedent(text) {
|
|
26
|
+
const lines = text.split("\n");
|
|
27
|
+
const nonEmpty = lines.filter((l) => l.trim().length > 0);
|
|
28
|
+
if (nonEmpty.length === 0)
|
|
29
|
+
return text;
|
|
30
|
+
const min = Math.min(...nonEmpty.map((l) => l.match(/^(\s*)/)?.[1].length ?? 0));
|
|
31
|
+
return lines.map((l) => l.slice(min)).join("\n");
|
|
32
|
+
}
|
|
33
|
+
function isRecord(v) {
|
|
34
|
+
return !!v && typeof v === "object" && !Array.isArray(v);
|
|
35
|
+
}
|
|
36
|
+
export function lintUiTestFlow(content, options) {
|
|
37
|
+
const errors = [];
|
|
38
|
+
const warnings = [];
|
|
39
|
+
const steps = [];
|
|
40
|
+
let header = {};
|
|
41
|
+
let rawSteps = [];
|
|
42
|
+
const docs = [];
|
|
43
|
+
try {
|
|
44
|
+
yaml.loadAll(dedent(content ?? ""), (d) => docs.push(d));
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
const e = err;
|
|
48
|
+
const where = e.mark?.line != null ? ` (line ${e.mark.line + 1}, column ${(e.mark.column ?? 0) + 1})` : "";
|
|
49
|
+
errors.push({ code: "YAML_SYNTAX", message: `YAML syntax error: ${e.reason ?? e.message ?? String(err)}${where}` });
|
|
50
|
+
return { ok: false, errors, warnings, header, steps, preconditions: [] };
|
|
51
|
+
}
|
|
52
|
+
const nonEmpty = docs.filter((d) => d !== null && d !== undefined);
|
|
53
|
+
if (docs.length >= 2) {
|
|
54
|
+
if (docs[0] != null && !isRecord(docs[0]))
|
|
55
|
+
errors.push({ code: "HEADER_NOT_MAPPING", message: "The header (before `---`) must be a mapping like `url: https://…`." });
|
|
56
|
+
header = isRecord(docs[0]) ? docs[0] : {};
|
|
57
|
+
if (docs[1] != null && !Array.isArray(docs[1]))
|
|
58
|
+
errors.push({ code: "STEPS_NOT_LIST", message: "The steps (after `---`) must be a YAML list: each step starts with `- `." });
|
|
59
|
+
rawSteps = Array.isArray(docs[1]) ? docs[1] : [];
|
|
60
|
+
if (docs.length > 2 && docs.slice(2).some((d) => d != null))
|
|
61
|
+
warnings.push({ code: "EXTRA_DOCUMENTS", message: "Only the first two YAML documents (header, steps) are read; the rest is ignored." });
|
|
62
|
+
}
|
|
63
|
+
else if (nonEmpty.length === 1) {
|
|
64
|
+
if (Array.isArray(nonEmpty[0]))
|
|
65
|
+
rawSteps = nonEmpty[0];
|
|
66
|
+
else if (isRecord(nonEmpty[0]))
|
|
67
|
+
header = nonEmpty[0];
|
|
68
|
+
}
|
|
69
|
+
// ── Header ────────────────────────────────────────────────────────────────
|
|
70
|
+
const { platform } = options;
|
|
71
|
+
const knownHeader = new Set(UI_TEST_HEADER_KEYS.map((h) => h.key));
|
|
72
|
+
for (const key of Object.keys(header)) {
|
|
73
|
+
if (!knownHeader.has(key))
|
|
74
|
+
warnings.push({ code: "HEADER_UNKNOWN_KEY", message: `Header key \`${key}\` is not used by the engines.` });
|
|
75
|
+
}
|
|
76
|
+
const preconditions = extractPreconditions(content ?? "").names;
|
|
77
|
+
if (platform === "web") {
|
|
78
|
+
const url = typeof header.url === "string" ? header.url.trim() : "";
|
|
79
|
+
if (!url && preconditions.length === 0) {
|
|
80
|
+
warnings.push({ code: "HEADER_URL_MISSING", message: "Web flow has no `url:` header — the browser starts on a blank page unless a step navigates." });
|
|
81
|
+
}
|
|
82
|
+
else if (EXAMPLE_URL_RE.test(url) && preconditions.length === 0) {
|
|
83
|
+
warnings.push({ code: "HEADER_URL_PLACEHOLDER", message: "`url:` is still the example.com placeholder." });
|
|
84
|
+
}
|
|
85
|
+
if (header.appId !== undefined)
|
|
86
|
+
warnings.push({ code: "HEADER_PLATFORM", message: "`appId` is a mobile header; it is ignored on web." });
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const appId = typeof header.appId === "string" ? header.appId.trim() : "";
|
|
90
|
+
if (!appId)
|
|
91
|
+
warnings.push({ code: "HEADER_APPID_MISSING", message: "Mobile flow has no `appId:` header — `launchApp` needs it." });
|
|
92
|
+
else if (appId === "com.example.app")
|
|
93
|
+
warnings.push({ code: "HEADER_APPID_PLACEHOLDER", message: "`appId:` is still the com.example.app placeholder." });
|
|
94
|
+
if (header.url !== undefined)
|
|
95
|
+
warnings.push({ code: "HEADER_PLATFORM", message: "`url` is a web header; use `openLink` for deep links on mobile." });
|
|
96
|
+
}
|
|
97
|
+
// ── Steps ─────────────────────────────────────────────────────────────────
|
|
98
|
+
if (rawSteps.length === 0)
|
|
99
|
+
warnings.push({ code: "NO_STEPS", message: "The flow has no steps." });
|
|
100
|
+
const knownFlows = options.knownFlowNames ? new Set(options.knownFlowNames.map((n) => n.trim())) : null;
|
|
101
|
+
const knownConns = options.knownConnections ? new Set(options.knownConnections.map((n) => n.trim().toLowerCase())) : null;
|
|
102
|
+
const produced = new Set(["copiedText"]);
|
|
103
|
+
const walk = (items, prefix) => {
|
|
104
|
+
items.forEach((item, i) => {
|
|
105
|
+
const step = prefix ? `${prefix}.${i + 1}` : String(i + 1);
|
|
106
|
+
checkStep(item, step);
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
const checkStep = (item, step) => {
|
|
110
|
+
let key;
|
|
111
|
+
let value;
|
|
112
|
+
let label;
|
|
113
|
+
if (typeof item === "string") {
|
|
114
|
+
key = item.trim();
|
|
115
|
+
value = null;
|
|
116
|
+
}
|
|
117
|
+
else if (isRecord(item)) {
|
|
118
|
+
const keys = Object.keys(item).filter((k) => k !== "label");
|
|
119
|
+
if (typeof item.label === "string")
|
|
120
|
+
label = item.label;
|
|
121
|
+
if (keys.length === 0) {
|
|
122
|
+
errors.push({ code: "STEP_EMPTY", message: "Step has no command.", step });
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (keys.length > 1) {
|
|
126
|
+
errors.push({ code: "STEP_MULTIPLE_KEYS", message: `Step has several commands (${keys.join(", ")}); put each on its own \`- \` line.`, step });
|
|
127
|
+
}
|
|
128
|
+
key = keys[0];
|
|
129
|
+
value = item[key];
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
errors.push({ code: "STEP_INVALID", message: `Step must be a command (e.g. \`- tapOn: "Login"\`), got ${JSON.stringify(item)}.`, step });
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
const spec = findUiTestCommand(key);
|
|
136
|
+
if (isRecord(value) && typeof value.label === "string")
|
|
137
|
+
label = value.label;
|
|
138
|
+
steps.push({ step, key, command: spec?.key, ...(label ? { label } : {}) });
|
|
139
|
+
if (!spec) {
|
|
140
|
+
errors.push({ code: "STEP_UNKNOWN", message: `Unknown step \`${key}\` — the engine would skip it. See callman://docs/ui-test-steps.`, step });
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
if (!spec.platforms.includes(platform)) {
|
|
144
|
+
warnings.push({ code: "STEP_PLATFORM", message: `\`${key}\` does not run on ${platform} (${spec.platforms.join("/")} only) — it will be skipped.`, step });
|
|
145
|
+
}
|
|
146
|
+
if (spec.unavailable)
|
|
147
|
+
warnings.push({ code: "STEP_UNAVAILABLE", message: `\`${key}\`: ${spec.unavailable}`, step });
|
|
148
|
+
checkArgs(spec, key, value, step);
|
|
149
|
+
if (isRecord(value)) {
|
|
150
|
+
const extract = value.extract;
|
|
151
|
+
if (isRecord(extract))
|
|
152
|
+
Object.keys(extract).forEach((k) => produced.add(k));
|
|
153
|
+
if (spec.key === "copyTextFrom" && typeof value.into === "string")
|
|
154
|
+
produced.add(value.into);
|
|
155
|
+
if (Array.isArray(value.commands))
|
|
156
|
+
walk(value.commands, step);
|
|
157
|
+
}
|
|
158
|
+
if (spec.key === "runFlow") {
|
|
159
|
+
const name = typeof value === "string" ? value : isRecord(value) && typeof value.name === "string" ? value.name : null;
|
|
160
|
+
if (name && knownFlows && !knownFlows.has(name.trim())) {
|
|
161
|
+
errors.push({ code: "RUNFLOW_UNRESOLVED", message: `runFlow "${name}" does not match any flow in the library (names are exact).`, step });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (spec.hybrid && isRecord(value) && typeof value.connection === "string" && knownConns) {
|
|
165
|
+
if (!knownConns.has(value.connection.trim().toLowerCase())) {
|
|
166
|
+
warnings.push({ code: "CONNECTION_UNKNOWN", message: `Connection "${value.connection}" is not a workspace connection name or id.`, step });
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
};
|
|
170
|
+
const checkArgs = (spec, key, value, step) => {
|
|
171
|
+
const isBare = value === null || value === undefined;
|
|
172
|
+
const isScalar = !isBare && (typeof value === "string" || typeof value === "number" || typeof value === "boolean");
|
|
173
|
+
const isMapping = isRecord(value);
|
|
174
|
+
const isList = Array.isArray(value);
|
|
175
|
+
if (isBare && !spec.forms.includes("bare")) {
|
|
176
|
+
const needs = spec.args.filter((a) => a.required).map((a) => a.name);
|
|
177
|
+
errors.push({ code: "STEP_ARGS_MISSING", message: `\`${key}\` needs a value${needs.length ? ` (${needs.join(", ")})` : ""}.`, step });
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
if (isScalar && !spec.forms.includes("scalar")) {
|
|
181
|
+
errors.push({ code: "STEP_FORM", message: `\`${key}\` takes a mapping, not a single value. Example:\n${spec.example}`, step });
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (isList && spec.key !== "addMedia") {
|
|
185
|
+
errors.push({ code: "STEP_FORM", message: `\`${key}\` value must not be a list. Example:\n${spec.example}`, step });
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (!isMapping)
|
|
189
|
+
return;
|
|
190
|
+
if (!spec.forms.includes("mapping")) {
|
|
191
|
+
errors.push({ code: "STEP_FORM", message: `\`${key}\` takes a single value, not a mapping. Example:\n${spec.example}`, step });
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
for (const arg of spec.args) {
|
|
195
|
+
if (!arg.required)
|
|
196
|
+
continue;
|
|
197
|
+
const names = ARG_SYNONYMS[arg.name] ?? [arg.name];
|
|
198
|
+
if (!names.some((n) => value[n] !== undefined && value[n] !== null && value[n] !== "")) {
|
|
199
|
+
// Locator steps: any locator satisfies a missing `text`.
|
|
200
|
+
if (arg.name === "text" && ["id", "testId", "css", "xpath", "name", "placeholder"].some((n) => value[n] != null))
|
|
201
|
+
continue;
|
|
202
|
+
errors.push({ code: "STEP_ARG_REQUIRED", message: `\`${key}\` is missing \`${arg.name}\`.`, step });
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const allowed = new Set([...spec.args.map((a) => a.name), ...Object.values(ARG_SYNONYMS).flat()]);
|
|
206
|
+
for (const k of Object.keys(value)) {
|
|
207
|
+
if (!allowed.has(k) && !COMMON_STEP_KEYS.has(k)) {
|
|
208
|
+
warnings.push({ code: "STEP_ARG_UNKNOWN", message: `\`${key}\` does not use \`${k}\` — it is ignored.`, step });
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
walk(rawSteps, "");
|
|
213
|
+
// ── Placeholders ──────────────────────────────────────────────────────────
|
|
214
|
+
if (options.datasetKeys) {
|
|
215
|
+
const known = new Set([...options.datasetKeys, ...produced]);
|
|
216
|
+
const env = isRecord(header.env) ? header.env : isRecord(header.defineAttributes) ? header.defineAttributes : {};
|
|
217
|
+
Object.keys(env).forEach((k) => known.add(k));
|
|
218
|
+
const missing = new Set();
|
|
219
|
+
for (const m of (content ?? "").matchAll(PLACEHOLDER_RE)) {
|
|
220
|
+
if (!known.has(m[1]))
|
|
221
|
+
missing.add(m[1]);
|
|
222
|
+
}
|
|
223
|
+
for (const name of missing) {
|
|
224
|
+
warnings.push({ code: "PLACEHOLDER_UNRESOLVED", message: `{{${name}}} is not a dataset key, header env value or extracted variable — it will stay literal.` });
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return { ok: errors.length === 0, errors, warnings, header, steps, preconditions };
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=flow-lint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-lint.js","sourceRoot":"","sources":["../../src/ui-test/flow-lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,7 +50,7 @@ const NODE_NOTES = {
|
|
|
50
50
|
// Supported command list is derived from the runtime specs so it can
|
|
51
51
|
// never drift from what the runtime actually accepts.
|
|
52
52
|
`Run Redis commands on a stored connection. REQUIRED: connectionId (type=redis) + ≥1 non-empty entry in \`commands\`. Each entry is ONE command string; supported commands: ${Object.keys(redisService_js_1.REDIS_COMMAND_SPECS).join(", ")} — e.g. "GET order:{{CreateOrder.orderId}}", "HGETALL user:{{env.userId}}" or "SET key {{env.value}}". SCAN is Callman-managed: \`SCAN pattern [count]\` returns {keys,count,truncated}. Output exposed under the label + as redis.result.`,
|
|
53
|
-
kafka: "Consume OR publish (config.mode). CONSUME (mode:\"consume\"): REQUIRED connectionId (type=kafka) + topic + a matcher with ≥1 non-empty rule. TWO matchModes: (a) matchMode:\"regex\" → rules[0] is a single REGEX tested against the whole message, e.g. rules:[\"order.created\"]. (b) matchMode:\"rules\" → rules is a LIST OF EXPRESSIONS, each ONE comparison `left op right` (op ==, !=, ===, !==, >, <, >=, <=, contains), ALL must be true. Reference the captured event as kafkaEvent.<field>: for a JSON message its JSON keys are top-level, e.g. rules:[\"kafkaEvent.event == 'order.created'\", \"kafkaEvent.orderId == '{{CreateOrder.orderId}}'\"]. NEVER leave rules empty. PUBLISH (mode:\"publish\"): REQUIRED connectionId + topic + messageValue; optional messageKey, publishValueFormat \"json\"|\"raw\" (json validates the payload as JSON), messageHeaders:[{key,value,enabled:true}].",
|
|
53
|
+
kafka: "Consume OR publish (config.mode). CONSUME (mode:\"consume\"): REQUIRED connectionId (type=kafka) + topic + a matcher with ≥1 non-empty rule. TWO matchModes: (a) matchMode:\"regex\" → rules[0] is a single REGEX tested against the whole message, e.g. rules:[\"order.created\"]. (b) matchMode:\"rules\" → rules is a LIST OF EXPRESSIONS, each ONE comparison `left op right` (op ==, !=, ===, !==, >, <, >=, <=, contains), ALL must be true. Reference the captured event as kafkaEvent.<field>: for a JSON message its JSON keys are top-level, e.g. rules:[\"kafkaEvent.event == 'order.created'\", \"kafkaEvent.orderId == '{{CreateOrder.orderId}}'\"]. Rules are plain dotted paths, NOT JSONPath: headers are kafkaEvent.meta.headers.<name> (dashes are fine: kafkaEvent.meta.headers.x-correlation-id); never use brackets or $. A consume node only sees messages produced after the run started; one attempt listens captureTimeoutMs (default 5000, 1000..120000) — raise it for slow events. NEVER leave rules empty. PUBLISH (mode:\"publish\"): REQUIRED connectionId + topic + messageValue; optional messageKey, publishValueFormat \"json\"|\"raw\" (json validates the payload as JSON), messageHeaders:[{key,value,enabled:true}].",
|
|
54
54
|
condition: "The ONLY branching node and the ONLY node WITHOUT executionPolicy. Must have EXACTLY one outgoing edge type \"yes\" and one \"no\". TWO modes: mode:\"builder\" (default) uses rootGroup { operator:\"AND\"|\"OR\", children:[ rule | nested group ] } where each rule is { id, type:\"rule\", left, operator, right } (operands per the OPERANDS section); mode:\"expert\" uses expertExpression (ONLY read when mode is \"expert\"), a single string whose operands are {{path}} tokens — a bare path is a parse error — like \"{{Login.status}} == 200 && {{Login.body.token}} != ''\". Prefer builder mode.",
|
|
55
55
|
assertion: "Pass/fail checkpoint (does NOT branch; on failure executionPolicy decides stop/continue). config.matchMode:\"all\" (every enabled check passes) | \"any\" (≥1 passes). checks:[{ id, name, enabled:true, rule }] with ≥1 enabled check — each rule is { id, type:\"rule\", left, operator, right } (operands per the OPERANDS section).",
|
|
56
56
|
script: "JS sandbox (Postman pm.*). REQUIRED: non-empty, syntactically-valid `script`; its `return` value is exposed downstream by the node label. Optional timeoutMs (default 3000). Can pm.environment.set(...), pm.expect(...), pm.test(...), and await pm.db.query / pm.redis.command (same formats as the DB & REDIS section) for logic a plain db/redis node can't express.",
|
|
@@ -117,6 +117,7 @@ const buildScenarioSystemPrompt = (options = {}) => [
|
|
|
117
117
|
'{ "id": string (unique), "type": <one below>, "position": { "x": number, "y": number }, "data": { "label": string, "config": { ... } } }',
|
|
118
118
|
`- \`label\` is REQUIRED, non-empty, UNIQUE across the scenario, and must NOT be a reserved name (${labels_js_1.RESERVED_SCENARIO_LABELS.map((label) => `"${label}"`).join(", ")}) — the engine drops such a node's output. Downstream nodes read a node's output by its label: {{Login.data.token}}.`,
|
|
119
119
|
"- Every config EXCEPT `condition` carries an `executionPolicy` object (see defaults below).",
|
|
120
|
+
"- NEGATIVE checks (\"this must NOT happen / must fail\"): set executionPolicy.expectFailure = { messagePattern?: regex } on the node (request, db, redis, kafka, websocket, script, assertion, poll, ai, notification) — it then PASSES only when it fails (e.g. a Kafka consume that must time out). Do not model them with error edges: an error-routed failure always ends the run completed_with_failures.",
|
|
120
121
|
"- position: the app AUTO-ARRANGES the whole graph (top-to-bottom flow, branches fanned out side-by-side, centered, never overlapping), so layout is NOT your concern — just give each node any distinct {x,y} (e.g. step y by 150). Focus on correct edges + config, not coordinates. Model the flow by EDGES (branches, merges), not by stacking every node in one long line.",
|
|
121
122
|
"",
|
|
122
123
|
"EDGES — { \"id\": string, \"source\": <node id>, \"target\": <node id>, \"type\"?: \"default\" | \"yes\" | \"no\" | \"error\" }.",
|
|
@@ -147,7 +148,7 @@ const buildScenarioSystemPrompt = (options = {}) => [
|
|
|
147
148
|
"- Numeric example — “the order total is 40”: left { mode:\"runtime\", valueType:\"number\", value:\"CreateOrder.body.total\" }, operator:\"equals\", right { mode:\"literal\", valueType:\"number\", value:40 }.",
|
|
148
149
|
"- Text example — “the order body status is created”: left { mode:\"runtime\", valueType:\"string\", value:\"CreateOrder.body.status\" }, operator:\"equals\", right { mode:\"literal\", valueType:\"string\", value:\"created\" }.",
|
|
149
150
|
"- Operators: equals, not_equals, strict_equals, strict_not_equals, greater_than, less_than, greater_or_equal, less_or_equal, between (right = array of 2 numbers), contains, not_contains, starts_with, ends_with, regex, in, not_in (right = array). UNARY (no right operand): exists, not_exists, is_empty, not_empty, is_null, not_null.",
|
|
150
|
-
"- Optional operand `extract` — { type:\"jsonpath\"|\"regex\", expression, flags?, group?, select?:\"first\"|\"all\" } — applied to the RESOLVED operand value before valueType coercion. Use it when a dotted path can't reach the value (
|
|
151
|
+
"- Optional operand `extract` — { type:\"jsonpath\"|\"regex\", expression, flags?, group?, select?:\"first\"|\"all\" } — applied to the RESOLVED operand value before valueType coercion. Use it when a dotted path can't reach the value (wildcards, recursive descent, bracket names with dashes, or pulling a fragment out of a string). JSONPath runs without script evaluation: filters such as [?(@.x==1)] are NOT supported — filter in a script node. Example: left { mode:\"runtime\", valueType:\"string\", value:\"CreateOrder.body\", extract:{ type:\"jsonpath\", expression:\"$.items[*].id\", select:\"all\" } }. Regex: expression is a JS regex source (e.g. \"ord-(\\\\d+)\"), optional flags (subset of \"gimsuy\") and group (capture group index). select:\"all\" yields an array of every match. A failed extraction behaves as not-exists.",
|
|
151
152
|
"",
|
|
152
153
|
"CONNECTIONS — never invent ids. Use a connectionId ONLY from the AVAILABLE CONNECTIONS list in the user message (matching the node's type: db→database, redis→redis, kafka→kafka, notification→slack). If the needed connection isn't listed, still create the node with connectionId \"\" and tell the user in `reply` to pick a connection.",
|
|
153
154
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../src/ai/prompts/scenario.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,wEAAwE;AACxE,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,oEAAoE;AACpE,8EAA8E;AAC9E,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,yCAAyC;;;AAEzC,sEAAuE;AACvE,+EAA6E;AAE7E,uEAAsE;AACtE,+DAA2E;AAE3E,iFAAiF;AACjF,gFAAgF;AAChF,mCAAmC;AACtB,QAAA,2BAA2B,GAAG;IACzC,SAAS;IACT,IAAI;IACJ,OAAO;IACP,OAAO;IACP,WAAW;IACX,WAAW;IACX,QAAQ;IACR,UAAU;IACV,MAAM;IACN,SAAS;IACT,WAAW;IACX,IAAI;IACJ,MAAM;IACN,cAAc;IACd,YAAY;IACZ,KAAK;CACG,CAAC;AAEX,iFAAiF;AACjF,iFAAiF;AACjF,+EAA+E;AAC/E,kDAAkD;AAClD,MAAM,UAAU,GAA2B;IACzC,OAAO,EACL,syEAAsyE;IAExyE,EAAE,EAAE,oaAAoa;IACxa,KAAK;IACH,qEAAqE;IACrE,sDAAsD;IACtD,8KAA8K,MAAM,CAAC,IAAI,CAAC,qCAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4OAA4O;IACvc,KAAK,EACH,
|
|
1
|
+
{"version":3,"file":"scenario.js","sourceRoot":"","sources":["../../../src/ai/prompts/scenario.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ exports.SCENARIO_NODE_REFERENCE_TYPES = exports.renderScenarioNodeReference = vo
|
|
|
17
17
|
const condition_js_1 = require("../../scenario-runner/condition.js");
|
|
18
18
|
const graphTraversal_js_1 = require("../../scenario-runner/graphTraversal.js");
|
|
19
19
|
const labels_js_1 = require("../../scenario-runner/labels.js");
|
|
20
|
+
const kafka_executor_js_1 = require("../../scenario-runner/adapters/kafka-executor.js");
|
|
21
|
+
const nodePolicy_js_1 = require("../../scenario-runner/nodePolicy.js");
|
|
20
22
|
const redisService_js_1 = require("../../host/redis/redisService.js");
|
|
21
23
|
const scope_js_1 = require("../../script/scope.js");
|
|
22
24
|
const fragments_js_1 = require("./fragments.js");
|
|
@@ -228,7 +230,7 @@ const NODE_DOCS = [
|
|
|
228
230
|
field: "query",
|
|
229
231
|
type: "string (1..100000)",
|
|
230
232
|
req: "yes",
|
|
231
|
-
notes: "Mongo: a
|
|
233
|
+
notes: "Mongo: a command object as MongoDB Extended JSON (relaxed) text (`{\"collection\":\"orders\",\"operation\":\"findOne\",\"filter\":{…}}`) — `{\"$date\":\"2026-01-01T00:00:00Z\"}`, `{\"$oid\":\"…\"}`, `{\"$numberDecimal\":\"9.99\"}` and `{\"$numberLong\":\"…\"}` become real BSON values; plain whole numbers are sent as int32/double (a `$numberLong` beyond 2^53 loses precision). A 24-hex string in `filter` is also matched as an ObjectId. SQL: plain SQL. Per-engine details: the DB query reference. The default is a placeholder — always send your own.",
|
|
232
234
|
},
|
|
233
235
|
{
|
|
234
236
|
field: "params",
|
|
@@ -251,7 +253,7 @@ const NODE_DOCS = [
|
|
|
251
253
|
notes: "Negative test: the node passes only if the query FAILS with that SQLSTATE and/or a message matching the regex.",
|
|
252
254
|
},
|
|
253
255
|
],
|
|
254
|
-
output: "`<Label>.rows`, `<Label>.rowCount`; the rows are also `db.result`.",
|
|
256
|
+
output: "`<Label>.rows`, `<Label>.rowCount`; the rows are also `db.result`. With `expectError` met: `<Label>.expectedError` {sqlState, message}, rows empty.",
|
|
255
257
|
example: {
|
|
256
258
|
id: "check",
|
|
257
259
|
type: "db",
|
|
@@ -293,11 +295,21 @@ const NODE_DOCS = [
|
|
|
293
295
|
{ field: "connectionId", type: "string", req: "run" },
|
|
294
296
|
{ field: "topic", type: "string (1..500)", req: "yes" },
|
|
295
297
|
{ field: "mode", type: "consume | publish" },
|
|
296
|
-
{
|
|
298
|
+
{
|
|
299
|
+
field: "matchMode",
|
|
300
|
+
type: "regex | rules",
|
|
301
|
+
notes: "consume. The default is regex — when you write comparisons, set `\"rules\"` or rules[0] is read as a regex.",
|
|
302
|
+
},
|
|
297
303
|
{
|
|
298
304
|
field: "rules",
|
|
299
305
|
type: "string[]",
|
|
300
|
-
notes: "consume. regex: rules[0] is a regex tested against the whole message. rules: every entry is ONE comparison `left op right` (op ==, !=, ===, !==, >, <, >=, <=, contains) and all must hold, e.g. `kafkaEvent.orderId == '{{CreateOrder.body.id}}'`. Empty = the first message captured.",
|
|
306
|
+
notes: "consume. regex: rules[0] is a regex tested against the whole message. rules: every entry is ONE comparison `left op right` (op ==, !=, ===, !==, >, <, >=, <=, contains) and all must hold, e.g. `kafkaEvent.orderId == '{{CreateOrder.body.id}}'`. Empty = the first message captured (the node stops listening at that message).",
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
field: "captureTimeoutMs",
|
|
310
|
+
type: `integer ${kafka_executor_js_1.KAFKA_MIN_CAPTURE_TIMEOUT_MS}..${kafka_executor_js_1.KAFKA_MAX_CAPTURE_TIMEOUT_MS}`,
|
|
311
|
+
shownDefault: `${kafka_executor_js_1.KAFKA_DEFAULT_CAPTURE_TIMEOUT_MS} (engine)`,
|
|
312
|
+
notes: "consume. How long ONE attempt listens; capped by the host's per-node timeout (60 s on a default server). Retry multiplies it.",
|
|
301
313
|
},
|
|
302
314
|
{
|
|
303
315
|
field: "publishValueFormat",
|
|
@@ -308,7 +320,13 @@ const NODE_DOCS = [
|
|
|
308
320
|
{ field: "messageValue", type: "string (≤1000000)", notes: "publish payload, template-resolved." },
|
|
309
321
|
{ field: "messageHeaders", type: KV_ROWS, notes: "publish." },
|
|
310
322
|
],
|
|
311
|
-
output: "consume: the matched message — a JSON message's keys at the top level plus `meta` {value, text, key, partition, offset, timestamp, headers};
|
|
323
|
+
output: "consume: the matched message — a JSON-object message's keys at the top level plus `meta` {value, text, key, topic, partition, offset, timestamp, headers}; any other message (array, number, text) has those fields at the top level instead, without `meta`. Also `kafkaEvent.*`. publish: {topic, partition, offset, timestamp}.",
|
|
324
|
+
notes: [
|
|
325
|
+
"**Where consuming starts.** A consume node sees records whose Kafka timestamp is at or after the scenario run's start — messages produced before the run are never seen, messages produced earlier in the same run (by a publish node or by the system under test) are. Timestamps are the producer's clock, so allow for skew. Messages from earlier loop iterations or foreach items of the same run can match too — make the rules specific (an id from this iteration).",
|
|
326
|
+
`**How long it waits.** One attempt listens for \`captureTimeoutMs\` (default ${kafka_executor_js_1.KAFKA_DEFAULT_CAPTURE_TIMEOUT_MS} ms) and stops early at the first matching message. The default executionPolicy is continue with retry ×3 every 2000 ms, so a node waits about 3 × 5 s + 2 × 2 s ≈ 19 s in total before failing. For a slow consumer raise \`captureTimeoutMs\` (and/or retry) rather than adding wait nodes.`,
|
|
327
|
+
"**How rules read the message.** Rules are evaluated against the event shape above, NOT with JSONPath: each side is a plain dotted path (`kafkaEvent.orderId`, `kafkaEvent.meta.headers.traceparent`, `kafkaEvent.items[0].sku`) or a template. Header and key names with dashes work as plain dotted paths: `kafkaEvent.meta.headers.x-correlation-id == '{{CorrId}}'`. Brackets (`headers['x-id']`) and `$.` paths are not resolved — they compare as literal text and never match. A path segment that contains an operator word (`x-contains-id`) splits the rule at that word; avoid it or read it in a script node. Headers are UTF-8 strings; a header repeated on one record is joined with `, `. A topic, partition or offset is under `meta` (`kafkaEvent.meta.offset` is a string).",
|
|
328
|
+
"**Expecting no message.** A consume node FAILS when nothing matches in time. To assert that an event is NOT published, give the node `executionPolicy.expectFailure: {}` (see Execution policy) — the timeout then counts as success.",
|
|
329
|
+
],
|
|
312
330
|
example: {
|
|
313
331
|
id: "event",
|
|
314
332
|
type: "kafka",
|
|
@@ -749,15 +767,35 @@ const NODE_DOCS = [
|
|
|
749
767
|
},
|
|
750
768
|
{
|
|
751
769
|
type: "scenario-ref",
|
|
752
|
-
summary: "
|
|
770
|
+
summary: "Links another scenario (shared setup / teardown) without copying it by hand: the node embeds a snapshot of the linked scenario's graph, and the run executes that snapshot.",
|
|
753
771
|
fields: [
|
|
754
|
-
{
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
772
|
+
{
|
|
773
|
+
field: "scenario",
|
|
774
|
+
type: "string (compact form only)",
|
|
775
|
+
req: "yes",
|
|
776
|
+
shownDefault: "—",
|
|
777
|
+
notes: "The scenario to link, by name or id. The server copies its current graph in (fresh ids) and adds its environments' missing variables to this scenario. Re-send it to re-sync.",
|
|
778
|
+
},
|
|
779
|
+
{
|
|
780
|
+
field: "referencedScenarioId",
|
|
781
|
+
type: "string",
|
|
782
|
+
req: "yes",
|
|
783
|
+
notes: "Stored form. With `nodes: []` the server fills the snapshot (and the fields below) from that scenario.",
|
|
784
|
+
},
|
|
785
|
+
{ field: "referencedScenarioVersion", type: "integer | null", notes: "Stored form; filled by the server." },
|
|
786
|
+
{ field: "referencedScenarioName / lastSyncedAt", type: "string", notes: "Stored form; filled by the server." },
|
|
787
|
+
{ field: "nodes / edges", type: "stored node[] / stored edge[]", notes: "The snapshot. Send `[]` to have it filled; a non-empty snapshot (as read) is kept as is." },
|
|
758
788
|
],
|
|
759
|
-
output: "Its inner nodes publish under their own labels.",
|
|
760
|
-
|
|
789
|
+
output: "Its inner nodes publish under their own labels — mind label clashes with this scenario's own nodes.",
|
|
790
|
+
notes: [
|
|
791
|
+
"The linked scenario must be in the same workspace and readable by you. A scenario cannot link itself, nor a scenario whose graph links it back.",
|
|
792
|
+
],
|
|
793
|
+
example: {
|
|
794
|
+
id: "setup",
|
|
795
|
+
type: "scenario-ref",
|
|
796
|
+
label: "Setup",
|
|
797
|
+
config: { scenario: "Shared login setup" },
|
|
798
|
+
},
|
|
761
799
|
},
|
|
762
800
|
];
|
|
763
801
|
const renderNodeSection = (node, defaultConfigFor) => {
|
|
@@ -812,7 +850,7 @@ const renderScenarioNodeReference = (options = {}) => {
|
|
|
812
850
|
}, null, 2),
|
|
813
851
|
"```",
|
|
814
852
|
"",
|
|
815
|
-
"- Node `{ id?, type, label?, config?, position? }`. `id` defaults to n1, n2, …; `position` is
|
|
853
|
+
"- Node `{ id?, type, label?, config?, position? }`. `id` defaults to n1, n2, …; when `position` is omitted the node is placed after the node it is connected from, clear of every existing node.",
|
|
816
854
|
"- `config` is deep-merged over the type's defaults (the Default column): objects merge key by key, arrays and scalars replace the default whole. Send only what you change — but an array you send (headers, checks, steps, rules, assignments) must be complete.",
|
|
817
855
|
"- Edge `{ id?, source, target, type? }`, `type` = `default` (or omitted) | `yes` | `no` | `error`. Edges have no label.",
|
|
818
856
|
"- `priority`: critical | high | medium | low. `environments[].variables`: `{ key, value, enabled? }[]`.",
|
|
@@ -849,7 +887,7 @@ const renderScenarioNodeReference = (options = {}) => {
|
|
|
849
887
|
"- Operand `{ mode: \"runtime\" | \"literal\", valueType: \"string\" | \"number\" | \"boolean\" | \"null\" | \"array\", value, extract? }`. runtime: `value` is a bare path. literal: a JSON number for number, true/false for boolean, null for null, a JSON array for array.",
|
|
850
888
|
`- Binary operators: ${binaryOperators.join(", ")}. \`between\` takes [min, max]; \`in\` / \`not_in\` an array; \`regex\` a JS regex source; \`contains_row\` checks that an array of rows has one matching every key of an object (a JSON-object string literal or a runtime path); \`set_equals_unordered\` compares two arrays as multisets.`,
|
|
851
889
|
`- Unary operators (no \`right\`): ${unaryOperators.join(", ")}.`,
|
|
852
|
-
"- `extract` `{ type: \"jsonpath\" | \"regex\", expression, flags?, group?, select?: \"first\" | \"all\" }` is applied to the resolved value first; a failed extraction behaves as not-exists.",
|
|
890
|
+
"- `extract` `{ type: \"jsonpath\" | \"regex\", expression, flags?, group?, select?: \"first\" | \"all\" }` is applied to the resolved value first; a failed extraction behaves as not-exists. JSONPath runs without script evaluation: `$.a.b`, `$['x-id']`, `$.items[*].id`, `$..id` and slices work; filter expressions (`[?(@.x == 1)]`) are rejected — filter in a script node.",
|
|
853
891
|
"",
|
|
854
892
|
"Example: `{ \"id\": \"r1\", \"type\": \"rule\", \"left\": { \"mode\": \"runtime\", \"valueType\": \"number\", \"value\": \"CreateOrder.status\" }, \"operator\": \"equals\", \"right\": { \"mode\": \"literal\", \"valueType\": \"number\", \"value\": 201 } }`",
|
|
855
893
|
"",
|
|
@@ -859,10 +897,13 @@ const renderScenarioNodeReference = (options = {}) => {
|
|
|
859
897
|
"",
|
|
860
898
|
"## Execution policy",
|
|
861
899
|
"",
|
|
862
|
-
"Every node except condition takes `executionPolicy: { onFailure: \"stop\" | \"continue\", retry: { enabled, maxAttempts (0..100), delayMs (0..3600000), backoffMultiplier? (1..10), maxDelayMs? (0..3600000) } }` — onFailure and retry.enabled / maxAttempts / delayMs are required when you send the stored form.",
|
|
900
|
+
"Every node except condition takes `executionPolicy: { onFailure: \"stop\" | \"continue\", retry: { enabled, maxAttempts (0..100), delayMs (0..3600000), backoffMultiplier? (1..10), maxDelayMs? (0..3600000) }, expectFailure?: { messagePattern? } }` — onFailure and retry.enabled / maxAttempts / delayMs are required when you send the stored form.",
|
|
863
901
|
"- `maxAttempts` counts every attempt (an enabled retry makes at least 2). Delay before retry n = min(maxDelayMs, delayMs × backoffMultiplier^(n−1)). No policy = stop, no retry.",
|
|
864
902
|
"- stop: a failure ends the run; continue: the run goes on along the normal edges.",
|
|
865
903
|
"- `error` edges from the failing node win over both: the run follows them instead of the normal edges (after the retries).",
|
|
904
|
+
"- How the run ends: `success` only when no node failed. A failure that continued or was routed through an `error` edge marks that node `failed_continued` and the run ends `completed_with_failures` — never `success`. A stop failure ends it `failed`.",
|
|
905
|
+
`- \`expectFailure: { messagePattern? }\` turns the node into a negative test (${nodePolicy_js_1.SCENARIO_EXPECT_FAILURE_NODE_TYPES.map(code).join(", ")}): an attempt that FAILS with a message matching \`messagePattern\` (a JS regex, ≤${nodePolicy_js_1.EXPECT_FAILURE_PATTERN_MAX_LENGTH} chars; omitted = any failure) makes the node succeed — normal edges run, the run can end \`success\`, and the output is \`<Label>.expectedFailure.message\`. An attempt that succeeds, or fails with another message, is a failure (retry and onFailure apply as usual, so retry can wait for something to start failing). Use it for absence checks (a Kafka event that must not appear, a poll that must time out, a request that must be refused). On a db node a non-empty \`expectError\` wins.`,
|
|
906
|
+
"- Example: `\"executionPolicy\": { \"onFailure\": \"stop\", \"retry\": { \"enabled\": false, \"maxAttempts\": 0, \"delayMs\": 0 }, \"expectFailure\": { \"messagePattern\": \"timed out\" } }`.",
|
|
866
907
|
"",
|
|
867
908
|
"## Node types",
|
|
868
909
|
"",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenarioNodeReference.js","sourceRoot":"","sources":["../../../src/ai/prompts/scenarioNodeReference.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scenarioNodeReference.js","sourceRoot":"","sources":["../../../src/ai/prompts/scenarioNodeReference.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ const renderDbQueryReference = () => [
|
|
|
41
41
|
"pm.expect(res.rowCount).to.be.above(0); // existence check",
|
|
42
42
|
"```",
|
|
43
43
|
"",
|
|
44
|
-
"Per-operation fields: `find`/`findOne` use `filter` (+ optional `projection`,`sort`,`limit`,`skip`); `aggregate` uses `pipeline` (array); `insertOne` uses `document`, `insertMany` uses `documents`; `updateOne`/`updateMany`/`findOneAndUpdate` use `filter`+`update` (Mongo update operators, e.g. `{ $set: { … } }`); `deleteOne`/`deleteMany` use `filter`; `findOneAndUpdate`/`findOneAndReplace` accept `returnDocument: \"before\"|\"after\"`.
|
|
44
|
+
"Per-operation fields: `find`/`findOne` use `filter` (+ optional `projection`,`sort`,`limit`,`skip`); `aggregate` uses `pipeline` (array); `insertOne` uses `document`, `insertMany` uses `documents`; `updateOne`/`updateMany`/`findOneAndUpdate` use `filter`+`update` (Mongo update operators, e.g. `{ $set: { … } }`); `deleteOne`/`deleteMany` use `filter`; `findOneAndUpdate`/`findOneAndReplace` accept `returnDocument: \"before\"|\"after\"`. The command text is MongoDB Extended JSON (relaxed): `{ \"$oid\": \"…\" }`, `{ \"$date\": \"2026-01-01T00:00:00Z\" }`, `{ \"$numberDecimal\": \"9.99\" }` and `{ \"$numberLong\": \"…\" }` become real BSON values anywhere in the command; a 24-hex string in a filter is also coerced to ObjectId. Rows are in `res.rows`; write ops surface counts in `res.rowCount`.",
|
|
45
45
|
"",
|
|
46
46
|
"## PostgreSQL / MySQL / Oracle (SQL)",
|
|
47
47
|
"`query` is plain SQL text. Because `pm.db.query` binds no params, inline the value and quote strings yourself (or use a `{{token}}`):",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-query-reference.js","sourceRoot":"","sources":["../../../src/host/db/db-query-reference.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,wDAAwD;AACxD,EAAE;AACF,qBAAqB;AACrB,+EAA+E;AAC/E,kEAAkE;AAClE,iEAAiE;AACjE,sEAAsE;AACtE,+DAA+D;AAC/D,2EAA2E;AAC3E,wEAAwE;AACxE,yFAAyF;AACzF,oFAAoF;AACpF,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;;;AAE1E,MAAM,sBAAsB,GAAG,GAAW,EAAE,CACjD;IACE,yEAAyE;IACzE,EAAE;IACF,uZAAuZ;IACvZ,EAAE;IACF,YAAY;IACZ,oLAAoL;IACpL,EAAE;IACF,OAAO;IACP,kCAAkC;IAClC,iCAAiC;IACjC,sBAAsB;IACtB,2BAA2B;IAC3B,0BAA0B;IAC1B,sNAAsN;IACtN,8CAA8C;IAC9C,OAAO;IACP,KAAK;IACL,8DAA8D;IAC9D,KAAK;IACL,EAAE;IACF,
|
|
1
|
+
{"version":3,"file":"db-query-reference.js","sourceRoot":"","sources":["../../../src/host/db/db-query-reference.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,+EAA+E;AAC/E,gFAAgF;AAChF,wDAAwD;AACxD,EAAE;AACF,qBAAqB;AACrB,+EAA+E;AAC/E,kEAAkE;AAClE,iEAAiE;AACjE,sEAAsE;AACtE,+DAA+D;AAC/D,2EAA2E;AAC3E,wEAAwE;AACxE,yFAAyF;AACzF,oFAAoF;AACpF,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AACjF,iFAAiF;;;AAE1E,MAAM,sBAAsB,GAAG,GAAW,EAAE,CACjD;IACE,yEAAyE;IACzE,EAAE;IACF,uZAAuZ;IACvZ,EAAE;IACF,YAAY;IACZ,oLAAoL;IACpL,EAAE;IACF,OAAO;IACP,kCAAkC;IAClC,iCAAiC;IACjC,sBAAsB;IACtB,2BAA2B;IAC3B,0BAA0B;IAC1B,sNAAsN;IACtN,8CAA8C;IAC9C,OAAO;IACP,KAAK;IACL,8DAA8D;IAC9D,KAAK;IACL,EAAE;IACF,iyBAAiyB;IACjyB,EAAE;IACF,sCAAsC;IACtC,uIAAuI;IACvI,EAAE;IACF,OAAO;IACP,mDAAmD;IACnD,iCAAiC;IACjC,sBAAsB;IACtB,2DAA2D;IAC3D,KAAK;IACL,yCAAyC;IACzC,KAAK;IACL,EAAE;IACF,qQAAqQ;IACrQ,EAAE;IACF,uBAAuB;IACvB,sQAAsQ;IACtQ,EAAE;IACF,QAAQ;IACR,0FAA0F;IAC1F,KAAK;IACL,EAAE;IACF,+BAA+B;IAC/B,gRAAgR;IAChR,EAAE;IACF,6XAA6X;IAC7X,EAAE;IACF,OAAO;IACP,0FAA0F;IAC1F,oCAAoC;IACpC,kFAAkF;IAClF,KAAK;CACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAvDF,QAAA,sBAAsB,0BAuDpB"}
|