callman-core 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/ai/index.d.ts +13 -0
  2. package/dist/ai/index.d.ts.map +1 -0
  3. package/dist/ai/index.js +19 -0
  4. package/dist/ai/index.js.map +1 -0
  5. package/dist/ai/outputSchemas.d.ts +43 -0
  6. package/dist/ai/outputSchemas.d.ts.map +1 -0
  7. package/dist/ai/outputSchemas.js +38 -0
  8. package/dist/ai/outputSchemas.js.map +1 -0
  9. package/dist/ai/parse/diagram.d.ts +3 -0
  10. package/dist/ai/parse/diagram.d.ts.map +1 -0
  11. package/dist/ai/parse/diagram.js +24 -0
  12. package/dist/ai/parse/diagram.js.map +1 -0
  13. package/dist/ai/parse/scenario.d.ts +3 -0
  14. package/dist/ai/parse/scenario.d.ts.map +1 -0
  15. package/dist/ai/parse/scenario.js +23 -0
  16. package/dist/ai/parse/scenario.js.map +1 -0
  17. package/dist/ai/parse/shared.d.ts +5 -0
  18. package/dist/ai/parse/shared.d.ts.map +1 -0
  19. package/dist/ai/parse/shared.js +49 -0
  20. package/dist/ai/parse/shared.js.map +1 -0
  21. package/dist/ai/parse/unified.d.ts +10 -0
  22. package/dist/ai/parse/unified.d.ts.map +1 -0
  23. package/dist/ai/parse/unified.js +105 -0
  24. package/dist/ai/parse/unified.js.map +1 -0
  25. package/dist/ai/prompts/diagram.d.ts +4 -0
  26. package/dist/ai/prompts/diagram.d.ts.map +1 -0
  27. package/dist/ai/prompts/diagram.js +132 -0
  28. package/dist/ai/prompts/diagram.js.map +1 -0
  29. package/dist/ai/prompts/fragments.d.ts +5 -0
  30. package/dist/ai/prompts/fragments.d.ts.map +1 -0
  31. package/dist/ai/prompts/fragments.js +27 -0
  32. package/dist/ai/prompts/fragments.js.map +1 -0
  33. package/dist/ai/prompts/scenario.d.ts +12 -0
  34. package/dist/ai/prompts/scenario.d.ts.map +1 -0
  35. package/dist/ai/prompts/scenario.js +204 -0
  36. package/dist/ai/prompts/scenario.js.map +1 -0
  37. package/dist/ai/prompts/scenarioNodeDefaults.d.ts +3 -0
  38. package/dist/ai/prompts/scenarioNodeDefaults.d.ts.map +1 -0
  39. package/dist/ai/prompts/scenarioNodeDefaults.js +166 -0
  40. package/dist/ai/prompts/scenarioNodeDefaults.js.map +1 -0
  41. package/dist/ai/prompts/unified.d.ts +13 -0
  42. package/dist/ai/prompts/unified.d.ts.map +1 -0
  43. package/dist/ai/prompts/unified.js +123 -0
  44. package/dist/ai/prompts/unified.js.map +1 -0
  45. package/dist/ai/types.d.ts +100 -0
  46. package/dist/ai/types.d.ts.map +1 -0
  47. package/dist/ai/types.js +9 -0
  48. package/dist/ai/types.js.map +1 -0
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +4 -3
  52. package/dist/index.js.map +1 -1
  53. package/dist/scenario-runner/adapters/ai-executor.d.ts.map +1 -1
  54. package/dist/scenario-runner/adapters/ai-executor.js +7 -8
  55. package/dist/scenario-runner/adapters/ai-executor.js.map +1 -1
  56. package/dist/scenario-runner/adapters/helpers/aiExample.d.ts +1 -0
  57. package/dist/scenario-runner/adapters/helpers/aiExample.d.ts.map +1 -1
  58. package/dist/scenario-runner/adapters/helpers/aiExample.js +64 -0
  59. package/dist/scenario-runner/adapters/helpers/aiExample.js.map +1 -1
  60. package/dist/scenario-runner/adapters/index.d.ts +1 -1
  61. package/dist/scenario-runner/adapters/index.d.ts.map +1 -1
  62. package/dist/scenario-runner/adapters/index.js +1 -1
  63. package/dist/scenario-runner/adapters/index.js.map +1 -1
  64. package/dist-cjs/ai/index.js +58 -0
  65. package/dist-cjs/ai/index.js.map +1 -0
  66. package/dist-cjs/ai/outputSchemas.js +41 -0
  67. package/dist-cjs/ai/outputSchemas.js.map +1 -0
  68. package/dist-cjs/ai/parse/diagram.js +28 -0
  69. package/dist-cjs/ai/parse/diagram.js.map +1 -0
  70. package/dist-cjs/ai/parse/scenario.js +27 -0
  71. package/dist-cjs/ai/parse/scenario.js.map +1 -0
  72. package/dist-cjs/ai/parse/shared.js +56 -0
  73. package/dist-cjs/ai/parse/shared.js.map +1 -0
  74. package/dist-cjs/ai/parse/unified.js +109 -0
  75. package/dist-cjs/ai/parse/unified.js.map +1 -0
  76. package/dist-cjs/ai/prompts/diagram.js +137 -0
  77. package/dist-cjs/ai/prompts/diagram.js.map +1 -0
  78. package/dist-cjs/ai/prompts/fragments.js +31 -0
  79. package/dist-cjs/ai/prompts/fragments.js.map +1 -0
  80. package/dist-cjs/ai/prompts/scenario.js +209 -0
  81. package/dist-cjs/ai/prompts/scenario.js.map +1 -0
  82. package/dist-cjs/ai/prompts/scenarioNodeDefaults.js +170 -0
  83. package/dist-cjs/ai/prompts/scenarioNodeDefaults.js.map +1 -0
  84. package/dist-cjs/ai/prompts/unified.js +128 -0
  85. package/dist-cjs/ai/prompts/unified.js.map +1 -0
  86. package/dist-cjs/ai/types.js +12 -0
  87. package/dist-cjs/ai/types.js.map +1 -0
  88. package/dist-cjs/index.js +5 -5
  89. package/dist-cjs/index.js.map +1 -1
  90. package/dist-cjs/scenario-runner/adapters/ai-executor.js +6 -7
  91. package/dist-cjs/scenario-runner/adapters/ai-executor.js.map +1 -1
  92. package/dist-cjs/scenario-runner/adapters/helpers/aiExample.js +66 -1
  93. package/dist-cjs/scenario-runner/adapters/helpers/aiExample.js.map +1 -1
  94. package/dist-cjs/scenario-runner/adapters/index.js +2 -1
  95. package/dist-cjs/scenario-runner/adapters/index.js.map +1 -1
  96. package/package.json +1 -1
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ // Canonical per-type default configs for the scenario-builder assistant's node
3
+ // reference. Mirrors what the desktop's `createScenarioNode` factory produces
4
+ // (with STABLE placeholder ids where the factory generates UUIDs — stable ids
5
+ // read better in a prompt). The desktop passes its real factory into
6
+ // `buildScenarioSystemPrompt({ defaultConfigFor })` so the in-app prompt can
7
+ // never drift; a desktop drift-guard test asserts this map matches the factory
8
+ // (ids normalized). The backend — which has no node factory — uses this map.
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.defaultScenarioNodeConfig = exports.SCENARIO_NODE_DEFAULT_CONFIGS = void 0;
11
+ const STRICT_POLICY = {
12
+ onFailure: "stop",
13
+ retry: { enabled: false, maxAttempts: 0, delayMs: 0 },
14
+ };
15
+ const REQUEST_CONFIG = {
16
+ method: "GET",
17
+ url: "",
18
+ headers: [],
19
+ query: [],
20
+ body: { mode: "none", raw: "", formEntries: [] },
21
+ auth: {
22
+ type: "none",
23
+ bearerToken: "",
24
+ basicUsername: "",
25
+ basicPassword: "",
26
+ apiKeyKey: "",
27
+ apiKeyValue: "",
28
+ apiKeyLocation: "header",
29
+ },
30
+ preRequestScript: "",
31
+ postResponseScript: "",
32
+ testsScript: "",
33
+ contractAssertions: [],
34
+ executionPolicy: STRICT_POLICY,
35
+ };
36
+ const DEFAULT_CONDITION_CONFIG = {
37
+ mode: "builder",
38
+ rootGroup: {
39
+ id: "g1",
40
+ type: "group",
41
+ operator: "AND",
42
+ children: [
43
+ {
44
+ id: "r1",
45
+ type: "rule",
46
+ left: { mode: "runtime", valueType: "number", value: "response.status" },
47
+ operator: "equals",
48
+ right: { mode: "literal", valueType: "number", value: 200 },
49
+ },
50
+ ],
51
+ },
52
+ expertExpression: "{{response.status}} == 200",
53
+ };
54
+ exports.SCENARIO_NODE_DEFAULT_CONFIGS = {
55
+ request: REQUEST_CONFIG,
56
+ db: {
57
+ connectionId: "",
58
+ query: "SELECT *\nFROM users\nWHERE id = {{env.userId}}",
59
+ executionPolicy: STRICT_POLICY,
60
+ },
61
+ redis: {
62
+ connectionId: "",
63
+ commands: [],
64
+ executionPolicy: {
65
+ onFailure: "continue",
66
+ retry: { enabled: true, maxAttempts: 2, delayMs: 1000 },
67
+ },
68
+ },
69
+ kafka: {
70
+ connectionId: "",
71
+ topic: "",
72
+ mode: "consume",
73
+ matchMode: "regex",
74
+ rules: [],
75
+ publishValueFormat: "json",
76
+ messageKey: "",
77
+ messageValue: "",
78
+ messageHeaders: [],
79
+ executionPolicy: {
80
+ onFailure: "continue",
81
+ retry: { enabled: true, maxAttempts: 3, delayMs: 2000 },
82
+ },
83
+ },
84
+ condition: DEFAULT_CONDITION_CONFIG,
85
+ assertion: {
86
+ matchMode: "all",
87
+ checks: [
88
+ {
89
+ id: "c1",
90
+ name: "",
91
+ enabled: true,
92
+ rule: {
93
+ id: "cr1",
94
+ type: "rule",
95
+ left: { mode: "runtime", valueType: "string", value: "" },
96
+ operator: "equals",
97
+ right: { mode: "runtime", valueType: "string", value: "" },
98
+ },
99
+ },
100
+ ],
101
+ executionPolicy: STRICT_POLICY,
102
+ },
103
+ script: {
104
+ script: "return {\n ok: true,\n};",
105
+ timeoutMs: 3000,
106
+ executionPolicy: STRICT_POLICY,
107
+ },
108
+ "set-vars": {
109
+ assignments: [{ id: "a1", scope: "environment", key: "", value: "", enabled: true }],
110
+ executionPolicy: STRICT_POLICY,
111
+ },
112
+ poll: {
113
+ actionType: "request",
114
+ request: REQUEST_CONFIG,
115
+ successCondition: DEFAULT_CONDITION_CONFIG,
116
+ intervalMs: 2000,
117
+ maxAttempts: 30,
118
+ onTimeout: "fail",
119
+ executionPolicy: STRICT_POLICY,
120
+ },
121
+ foreach: {
122
+ nodes: [],
123
+ edges: [],
124
+ sourceMode: "path",
125
+ onItemFailure: "stop",
126
+ collectResults: true,
127
+ executionPolicy: STRICT_POLICY,
128
+ },
129
+ websocket: {
130
+ url: "",
131
+ headers: [],
132
+ subprotocols: [],
133
+ steps: [],
134
+ executionPolicy: STRICT_POLICY,
135
+ },
136
+ ai: {
137
+ connectionId: "",
138
+ prompt: "",
139
+ responseExample: "",
140
+ executionPolicy: STRICT_POLICY,
141
+ },
142
+ wait: { durationMs: 5000, executionPolicy: STRICT_POLICY },
143
+ notification: {
144
+ provider: "slack",
145
+ connectionId: "",
146
+ severity: "info",
147
+ messageTemplate: "Scenario {{workflow.name}} finished with status {{workflow.__meta.status}}.",
148
+ channelOverride: "",
149
+ continueOnFailure: true,
150
+ advanced: { useRichBlocks: true },
151
+ executionPolicy: {
152
+ onFailure: "continue",
153
+ retry: { enabled: false, maxAttempts: 0, delayMs: 0 },
154
+ },
155
+ },
156
+ aggregator: {
157
+ template: '{\n "key": "{Label.field}"\n}',
158
+ executionPolicy: STRICT_POLICY,
159
+ },
160
+ end: {
161
+ loop: false,
162
+ loopTargetNodeId: null,
163
+ loopIterations: 1,
164
+ loopDelayMs: 1000,
165
+ executionPolicy: STRICT_POLICY,
166
+ },
167
+ };
168
+ const defaultScenarioNodeConfig = (type) => exports.SCENARIO_NODE_DEFAULT_CONFIGS[type] ?? null;
169
+ exports.defaultScenarioNodeConfig = defaultScenarioNodeConfig;
170
+ //# sourceMappingURL=scenarioNodeDefaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scenarioNodeDefaults.js","sourceRoot":"","sources":["../../../src/ai/prompts/scenarioNodeDefaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ // The unified request-chat prompt (contract rules + request scripts + plain
3
+ // replies in ONE assistant). Canonical source — ported from the desktop copy,
4
+ // which was ahead of the backend's (it teaches mssql + @p1..@pN SQL Server
5
+ // binding); backend and desktop both consume this now.
6
+ //
7
+ // The prompt must tolerate being PREPENDED to the user prompt (Codex and
8
+ // Cursor CLIs have no system-prompt flag) — it is self-contained prose with no
9
+ // role assumptions.
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.buildUnifiedUserPrompt = exports.buildUnifiedSystemPrompt = void 0;
12
+ const db_query_reference_js_1 = require("../../host/db/db-query-reference.js");
13
+ const pm_api_reference_js_1 = require("../../script/pm-api-reference.js");
14
+ const types_js_1 = require("../types.js");
15
+ const fragments_js_1 = require("./fragments.js");
16
+ // ONE prompt for the whole assistant. The model classifies intent itself — the
17
+ // user never picks "contract vs script" or a target stage — and returns a
18
+ // single JSON object that may carry a reply, contract changes, script changes,
19
+ // or any combination.
20
+ const buildUnifiedSystemPrompt = () => {
21
+ const stageNotes = types_js_1.AI_SCRIPT_STAGES.map((stage) => `- \`${stage}\`: ${fragments_js_1.STAGE_DESCRIPTIONS[stage]}`).join("\n");
22
+ return [
23
+ "You are Callman's AI assistant inside an API client (like Postman). The user is",
24
+ "editing ONE HTTP request. From their message plus the CONTEXT below, YOU decide",
25
+ "what is needed — the user does NOT pick a mode or a target. Respond with ONE JSON",
26
+ "object ONLY (no markdown, no prose outside JSON), shaped:",
27
+ "",
28
+ '{"reply": string, "contract": {"add": [{"path": string, "rules": {…}}], "remove": [string]} | null, "scripts": [{"stage": "pre-request|post-response|tests|kafka", "code": string}]}',
29
+ "",
30
+ "How to decide (classify intent yourself):",
31
+ "- Assertions about the LAST RESPONSE's shape (a field's type/format/required/value/",
32
+ " length/range) → put them in `contract`. This is the response contract-test engine.",
33
+ "- Anything that must RUN around the request — set a header/token/body, read or write",
34
+ " env/globals, query a DB or Redis, send an extra HTTP call, or assert with pm.test —",
35
+ " → write JavaScript in `scripts` for the RIGHT stage(s).",
36
+ "- A plain question or nothing to change → `reply` only, `contract` null, `scripts` [].",
37
+ "- You MAY combine (e.g. save a token in `pre-request` AND assert it in `tests` AND add",
38
+ " a `contract` rule). Only include a stage you actually wrote.",
39
+ "- `reply` is ALWAYS a short, natural message: what you did, or the answer to a question.",
40
+ "",
41
+ "STAGES (pick the right one; you may target several):",
42
+ stageNotes,
43
+ "",
44
+ "CONTRACT rules:",
45
+ "- `add` = new/updated rules; a path in both `add` and the existing list REPLACES it.",
46
+ " `remove` = existing paths to delete. MERGE when updating: keep existing operators and",
47
+ " add the new one; never drop operators unless asked.",
48
+ "- `path` MUST be one of the response SCHEMA paths (verbatim; array elements use `[]`,",
49
+ " e.g. `data.items[]`). Prefer high-signal checks (type/required/format); do not pin",
50
+ " `equals` to volatile ids/tokens/timestamps unless asked.",
51
+ fragments_js_1.CONTRACT_RULES_SPEC,
52
+ "",
53
+ "SCRIPTS: plain JavaScript, top-level await allowed. Each `code` is the FULL new script",
54
+ "for that stage and REPLACES it — when extending, keep the shown CURRENT code and add to",
55
+ 'it. Put every assertion inside pm.test("…", () => { … }). Use ONLY the API below; never',
56
+ "use fetch/require/import/process/Buffer. `await` every pm.db.query / pm.redis.command /",
57
+ "pm.sendRequest. Keep {{template}} tokens verbatim.",
58
+ "",
59
+ "CONNECTIONS: for pm.db.query / pm.redis.command, resolve the connection the user means",
60
+ "to its exact `connectionId` from AVAILABLE CONNECTIONS (match by name, case-insensitive)",
61
+ 'and pass it verbatim, e.g. `pm.db.query({ connectionId: "<id>", query: … })`. Match the',
62
+ "query FORMAT to that connection's provider (mongodb → JSON command object; postgresql/",
63
+ "mysql/oracle/mssql → SQL, with SQL Server params bound as @p1..@pN; redis → GET/SET/…).",
64
+ "If the user names no connection and gives no id,",
65
+ "omit `connectionId` so the request's own configured connection is used. Never invent an id.",
66
+ "",
67
+ "Examples (routing only):",
68
+ '- "assert the id is a uuid and status is 200" → contract on the response fields.',
69
+ '- "save the token from the response into an env var" → scripts: post-response (or tests).',
70
+ '- "check the user exists in mongo by email" → scripts: tests, using pm.db.query.',
71
+ '- "sign the body with hmac-sha256 before sending" → scripts: pre-request.',
72
+ '- "is this response ok?" → reply only.',
73
+ "",
74
+ "=== pm.* SCRIPT API ===",
75
+ (0, pm_api_reference_js_1.renderPmApiReference)(),
76
+ "",
77
+ "=== DATA ACCESS (DB / Redis query formats) ===",
78
+ (0, db_query_reference_js_1.renderDbQueryReference)(),
79
+ ].join("\n");
80
+ };
81
+ exports.buildUnifiedSystemPrompt = buildUnifiedSystemPrompt;
82
+ const buildUnifiedUserPrompt = ({ instruction, fields = [], existingRules = [], currentScripts = [], connections = [], requestMeta, statusCode, contentType, }) => {
83
+ const requestLine = requestMeta && (requestMeta.method || requestMeta.url)
84
+ ? `REQUEST: ${[requestMeta.method, requestMeta.url].filter(Boolean).join(" ")}`
85
+ : null;
86
+ const schemaLines = fields.length
87
+ ? fields
88
+ .map((field) => `${field.path}: ${field.type}${field.sample ? ` e.g. ${(0, fragments_js_1.truncateForPrompt)(field.sample)}` : ""}`)
89
+ .join("\n")
90
+ : "(no response captured)";
91
+ const meta = [
92
+ statusCode ? `HTTP status: ${statusCode}` : null,
93
+ contentType ? `Content-Type: ${contentType}` : null,
94
+ ]
95
+ .filter(Boolean)
96
+ .join("\n");
97
+ const existingLines = existingRules.length
98
+ ? existingRules.map((rule) => `${rule.path}: ${JSON.stringify(rule.rules)}`).join("\n")
99
+ : "(none yet)";
100
+ const currentBlocks = currentScripts
101
+ .filter((script) => script.code.trim().length > 0)
102
+ .map((script) => `--- ${script.stage} (current) ---\n${script.code}`)
103
+ .join("\n\n") || "(all scripts are empty)";
104
+ const connectionLines = connections.length
105
+ ? connections.map((c) => `${c.name} — ${c.provider} — ${c.id}`).join("\n")
106
+ : "(none)";
107
+ return [
108
+ requestLine,
109
+ "RESPONSE SCHEMA:",
110
+ schemaLines,
111
+ meta ? `\n${meta}` : "",
112
+ "",
113
+ "EXISTING CONTRACT RULES (path: operators):",
114
+ existingLines,
115
+ "",
116
+ "AVAILABLE CONNECTIONS (name — provider — connectionId):",
117
+ connectionLines,
118
+ "",
119
+ "CURRENT SCRIPTS:",
120
+ currentBlocks,
121
+ "",
122
+ `INSTRUCTION: ${instruction}`,
123
+ ]
124
+ .filter((line) => line !== null)
125
+ .join("\n");
126
+ };
127
+ exports.buildUnifiedUserPrompt = buildUnifiedUserPrompt;
128
+ //# sourceMappingURL=unified.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unified.js","sourceRoot":"","sources":["../../../src/ai/prompts/unified.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,8EAA8E;AAC9E,2EAA2E;AAC3E,uDAAuD;AACvD,EAAE;AACF,yEAAyE;AACzE,+EAA+E;AAC/E,oBAAoB;;;AAEpB,+EAA6E;AAC7E,0EAAwE;AAQxE,0CAA+C;AAC/C,iDAA4F;AAE5F,+EAA+E;AAC/E,0EAA0E;AAC1E,+EAA+E;AAC/E,sBAAsB;AACf,MAAM,wBAAwB,GAAG,GAAW,EAAE;IACnD,MAAM,UAAU,GAAG,2BAAgB,CAAC,GAAG,CACrC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,OAAO,iCAAkB,CAAC,KAAK,CAAC,EAAE,CAC1D,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,OAAO;QACL,iFAAiF;QACjF,iFAAiF;QACjF,mFAAmF;QACnF,2DAA2D;QAC3D,EAAE;QACF,sLAAsL;QACtL,EAAE;QACF,2CAA2C;QAC3C,qFAAqF;QACrF,sFAAsF;QACtF,sFAAsF;QACtF,uFAAuF;QACvF,2DAA2D;QAC3D,wFAAwF;QACxF,wFAAwF;QACxF,gEAAgE;QAChE,0FAA0F;QAC1F,EAAE;QACF,sDAAsD;QACtD,UAAU;QACV,EAAE;QACF,iBAAiB;QACjB,sFAAsF;QACtF,yFAAyF;QACzF,uDAAuD;QACvD,uFAAuF;QACvF,sFAAsF;QACtF,4DAA4D;QAC5D,kCAAmB;QACnB,EAAE;QACF,wFAAwF;QACxF,yFAAyF;QACzF,yFAAyF;QACzF,yFAAyF;QACzF,oDAAoD;QACpD,EAAE;QACF,wFAAwF;QACxF,0FAA0F;QAC1F,yFAAyF;QACzF,wFAAwF;QACxF,yFAAyF;QACzF,kDAAkD;QAClD,6FAA6F;QAC7F,EAAE;QACF,0BAA0B;QAC1B,kFAAkF;QAClF,2FAA2F;QAC3F,kFAAkF;QAClF,2EAA2E;QAC3E,wCAAwC;QACxC,EAAE;QACF,yBAAyB;QACzB,IAAA,0CAAoB,GAAE;QACtB,EAAE;QACF,gDAAgD;QAChD,IAAA,8CAAsB,GAAE;KACzB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AA/DW,QAAA,wBAAwB,4BA+DnC;AAEK,MAAM,sBAAsB,GAAG,CAAC,EACrC,WAAW,EACX,MAAM,GAAG,EAAE,EACX,aAAa,GAAG,EAAE,EAClB,cAAc,GAAG,EAAE,EACnB,WAAW,GAAG,EAAE,EAChB,WAAW,EACX,UAAU,EACV,WAAW,GAUZ,EAAU,EAAE;IACX,MAAM,WAAW,GACf,WAAW,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,GAAG,CAAC;QACpD,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QAC/E,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM;QAC/B,CAAC,CAAC,MAAM;aACH,GAAG,CACF,CAAC,KAAK,EAAE,EAAE,CACR,GAAG,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,IAAA,gCAAiB,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAClG;aACA,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,wBAAwB,CAAC;IAE7B,MAAM,IAAI,GAAG;QACX,UAAU,CAAC,CAAC,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI;QAChD,WAAW,CAAC,CAAC,CAAC,iBAAiB,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;KACpD;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM;QACxC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACvF,CAAC,CAAC,YAAY,CAAC;IAEjB,MAAM,aAAa,GACjB,cAAc;SACX,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,KAAK,mBAAmB,MAAM,CAAC,IAAI,EAAE,CAAC;SACpE,IAAI,CAAC,MAAM,CAAC,IAAI,yBAAyB,CAAC;IAE/C,MAAM,eAAe,GAAG,WAAW,CAAC,MAAM;QACxC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1E,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO;QACL,WAAW;QACX,kBAAkB;QAClB,WAAW;QACX,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;QACvB,EAAE;QACF,4CAA4C;QAC5C,aAAa;QACb,EAAE;QACF,yDAAyD;QACzD,eAAe;QACf,EAAE;QACF,kBAAkB;QAClB,aAAa;QACb,EAAE;QACF,gBAAgB,WAAW,EAAE;KAC9B;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC,CAAC;AAzEW,QAAA,sBAAsB,0BAyEjC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // Canonical wire-level types for the product's AI assistants. These are the
3
+ // shapes the prompts request and the parsers return — deliberately loose
4
+ // (Record<string, unknown> payloads) so callman-core needs no domain imports;
5
+ // hosts map to their richer domain types at the boundary (backend response
6
+ // DTOs, desktop DiagramDocument / GeneratedScenario / ContractRuleRules).
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.AI_SCRIPT_STAGES = void 0;
9
+ // The four request-script slots. Single source — backend zod enums and the
10
+ // desktop stage tables both derive from this.
11
+ exports.AI_SCRIPT_STAGES = ["pre-request", "post-response", "tests", "kafka"];
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/ai/types.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,yEAAyE;AACzE,8EAA8E;AAC9E,2EAA2E;AAC3E,0EAA0E;;;AAE1E,2EAA2E;AAC3E,8CAA8C;AACjC,QAAA,gBAAgB,GAAG,CAAC,aAAa,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,CAAU,CAAC"}
package/dist-cjs/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.extractJsonPayload = exports.getSoapEnvelopeTemplate = exports.SOAP_12_ENVELOPE_TEMPLATE = exports.SOAP_11_ENVELOPE_TEMPLATE = exports.injectWsSecurityHeader = exports.buildWsSecurityHeader = exports.applySoapRequestTransforms = exports.resolveXPathCandidates = exports.isContractFormat = exports.FORMAT_VALIDATORS = exports.SCENARIO_CONTRACT_FORMATS = exports.normalizeContractPathKey = exports.generalizeContractPath = exports.resolveContractPath = exports.normalizeContractRule = exports.evaluateContractCandidate = exports.validateContracts = exports.isDisabledFeatureValue = exports.DisabledFeatureDependencyError = exports.isPendingKafkaValue = exports.PendingKafkaDependencyError = exports.createExpectApi = exports.PmAssertion = exports.RESERVED_LABEL_NAMES = exports.BLOCKED_GLOBAL_NAMES = exports.ALLOWED_GLOBAL_NAMES = exports.renderPmApiReference = exports.PM_API_METADATA = exports.runScriptIsolated = exports.validateScript = exports.executeScript = exports.runScript = exports.EnvStore = exports.decodeUrlQueryComponent = exports.extractUrlQueryPairs = exports.stripUrlQuery = exports.sanitizeJsonBody = exports.XML_PARSER_OPTIONS = exports.looksLikeXml = exports.parseXml = exports.isXmlContentType = exports.OAuth2Error = exports.buildOAuth2TokenRequest = exports.resolveOAuth2Token = exports.executeRequest = exports.runRequestWithDataset = exports.runRequest = exports.runCollection = void 0;
17
+ exports.getSoapEnvelopeTemplate = exports.SOAP_12_ENVELOPE_TEMPLATE = exports.SOAP_11_ENVELOPE_TEMPLATE = exports.injectWsSecurityHeader = exports.buildWsSecurityHeader = exports.applySoapRequestTransforms = exports.resolveXPathCandidates = exports.isContractFormat = exports.FORMAT_VALIDATORS = exports.SCENARIO_CONTRACT_FORMATS = exports.normalizeContractPathKey = exports.generalizeContractPath = exports.resolveContractPath = exports.normalizeContractRule = exports.evaluateContractCandidate = exports.validateContracts = exports.isDisabledFeatureValue = exports.DisabledFeatureDependencyError = exports.isPendingKafkaValue = exports.PendingKafkaDependencyError = exports.createExpectApi = exports.PmAssertion = exports.RESERVED_LABEL_NAMES = exports.BLOCKED_GLOBAL_NAMES = exports.ALLOWED_GLOBAL_NAMES = exports.renderPmApiReference = exports.PM_API_METADATA = exports.runScriptIsolated = exports.validateScript = exports.executeScript = exports.runScript = exports.EnvStore = exports.decodeUrlQueryComponent = exports.extractUrlQueryPairs = exports.stripUrlQuery = exports.sanitizeJsonBody = exports.XML_PARSER_OPTIONS = exports.looksLikeXml = exports.parseXml = exports.isXmlContentType = exports.OAuth2Error = exports.buildOAuth2TokenRequest = exports.resolveOAuth2Token = exports.executeRequest = exports.runRequestWithDataset = exports.runRequest = exports.runCollection = void 0;
18
18
  var runCollection_js_1 = require("./runner/runCollection.js");
19
19
  Object.defineProperty(exports, "runCollection", { enumerable: true, get: function () { return runCollection_js_1.runCollection; } });
20
20
  var requestRunner_js_1 = require("./runner/requestRunner.js");
@@ -89,10 +89,10 @@ var envelope_js_1 = require("./soap/envelope.js");
89
89
  Object.defineProperty(exports, "SOAP_11_ENVELOPE_TEMPLATE", { enumerable: true, get: function () { return envelope_js_1.SOAP_11_ENVELOPE_TEMPLATE; } });
90
90
  Object.defineProperty(exports, "SOAP_12_ENVELOPE_TEMPLATE", { enumerable: true, get: function () { return envelope_js_1.SOAP_12_ENVELOPE_TEMPLATE; } });
91
91
  Object.defineProperty(exports, "getSoapEnvelopeTemplate", { enumerable: true, get: function () { return envelope_js_1.getSoapEnvelopeTemplate; } });
92
- // Tolerant JSON extraction from LLM reply text (AI node; desktop re-exports
93
- // this so all hosts repair identically).
94
- var jsonRepair_js_1 = require("./ai/jsonRepair.js");
95
- Object.defineProperty(exports, "extractJsonPayload", { enumerable: true, get: function () { return jsonRepair_js_1.extractJsonPayload; } });
92
+ // Central AI surface: shared prompts, parsers, output schemas + tolerant JSON
93
+ // extraction (jsonRepair) — one source for backend hosted generation and
94
+ // desktop local-CLI generation.
95
+ __exportStar(require("./ai/index.js"), exports);
96
96
  __exportStar(require("./scenario-runner/index.js"), exports);
97
97
  __exportStar(require("./host/index.js"), exports);
98
98
  __exportStar(require("./types/index.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA0D;AAAjD,iHAAA,aAAa,OAAA;AACtB,8DAAuD;AAA9C,8GAAA,UAAU,OAAA;AACnB,8EAA0E;AAAjE,iIAAA,qBAAqB,OAAA;AAC9B,iEAA6D;AAApD,mHAAA,cAAc,OAAA;AACvB,iDAQ6B;AAP3B,+GAAA,kBAAkB,OAAA;AAClB,oHAAA,uBAAuB,OAAA;AACvB,wGAAA,WAAW,OAAA;AAMb,yCAMwB;AALtB,0GAAA,gBAAgB,OAAA;AAChB,kGAAA,QAAQ,OAAA;AACR,sGAAA,YAAY,OAAA;AACZ,4GAAA,kBAAkB,OAAA;AAGpB,6CAAoD;AAA3C,4GAAA,gBAAgB,OAAA;AACzB,mDAK6B;AAJ3B,4GAAA,aAAa,OAAA;AACb,mHAAA,oBAAoB,OAAA;AACpB,sHAAA,uBAAuB,OAAA;AAGzB,uDAAmD;AAA1C,uGAAA,QAAQ,OAAA;AACjB,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAClB,wDAAsC;AACtC,oDAAqE;AAA5D,4GAAA,aAAa,OAAA;AAAE,6GAAA,cAAc,OAAA;AACtC,kEAAgE;AAAvD,uHAAA,iBAAiB,OAAA;AA2B1B,kEAKqC;AAJnC,qHAAA,eAAe,OAAA;AAKjB,oEAGsC;AAFpC,2HAAA,oBAAoB,OAAA;AAGtB,8CAI2B;AAHzB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AAEtB,iEAA+E;AAAtE,4GAAA,WAAW,OAAA;AAAE,gHAAA,eAAe,OAAA;AACrC,uDAGoC;AAFlC,uHAAA,2BAA2B,OAAA;AAC3B,+GAAA,mBAAmB,OAAA;AAErB,yEAG6C;AAF3C,mIAAA,8BAA8B,OAAA;AAC9B,2HAAA,sBAAsB,OAAA;AAExB,wEAKyC;AAJvC,yHAAA,iBAAiB,OAAA;AACjB,iIAAA,yBAAyB,OAAA;AACzB,6HAAA,qBAAqB,OAAA;AAGvB,8DAKoC;AAJlC,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA;AACtB,2HAAA,wBAAwB,OAAA;AAG1B,oDAK+B;AAJ7B,uHAAA,yBAAyB,OAAA;AACzB,+GAAA,iBAAiB,OAAA;AACjB,8GAAA,gBAAgB,OAAA;AAGlB,gEAA2F;AAAlF,0HAAA,sBAAsB,OAAA;AAC/B,kDAAkD;AAClD,oDAI6B;AAH3B,0HAAA,0BAA0B,OAAA;AAI5B,sDAK8B;AAJ5B,sHAAA,qBAAqB,OAAA;AACrB,uHAAA,sBAAsB,OAAA;AAIxB,kDAI4B;AAH1B,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,sHAAA,uBAAuB,OAAA;AAEzB,4EAA4E;AAC5E,yCAAyC;AACzC,oDAAwD;AAA/C,mHAAA,kBAAkB,OAAA;AAC3B,6DAA2C;AAC3C,kDAAgC;AAChC,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA0D;AAAjD,iHAAA,aAAa,OAAA;AACtB,8DAAuD;AAA9C,8GAAA,UAAU,OAAA;AACnB,8EAA0E;AAAjE,iIAAA,qBAAqB,OAAA;AAC9B,iEAA6D;AAApD,mHAAA,cAAc,OAAA;AACvB,iDAQ6B;AAP3B,+GAAA,kBAAkB,OAAA;AAClB,oHAAA,uBAAuB,OAAA;AACvB,wGAAA,WAAW,OAAA;AAMb,yCAMwB;AALtB,0GAAA,gBAAgB,OAAA;AAChB,kGAAA,QAAQ,OAAA;AACR,sGAAA,YAAY,OAAA;AACZ,4GAAA,kBAAkB,OAAA;AAGpB,6CAAoD;AAA3C,4GAAA,gBAAgB,OAAA;AACzB,mDAK6B;AAJ3B,4GAAA,aAAa,OAAA;AACb,mHAAA,oBAAoB,OAAA;AACpB,sHAAA,uBAAuB,OAAA;AAGzB,uDAAmD;AAA1C,uGAAA,QAAQ,OAAA;AACjB,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAClB,wDAAsC;AACtC,oDAAqE;AAA5D,4GAAA,aAAa,OAAA;AAAE,6GAAA,cAAc,OAAA;AACtC,kEAAgE;AAAvD,uHAAA,iBAAiB,OAAA;AA2B1B,kEAKqC;AAJnC,qHAAA,eAAe,OAAA;AAKjB,oEAGsC;AAFpC,2HAAA,oBAAoB,OAAA;AAGtB,8CAI2B;AAHzB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AACpB,gHAAA,oBAAoB,OAAA;AAEtB,iEAA+E;AAAtE,4GAAA,WAAW,OAAA;AAAE,gHAAA,eAAe,OAAA;AACrC,uDAGoC;AAFlC,uHAAA,2BAA2B,OAAA;AAC3B,+GAAA,mBAAmB,OAAA;AAErB,yEAG6C;AAF3C,mIAAA,8BAA8B,OAAA;AAC9B,2HAAA,sBAAsB,OAAA;AAExB,wEAKyC;AAJvC,yHAAA,iBAAiB,OAAA;AACjB,iIAAA,yBAAyB,OAAA;AACzB,6HAAA,qBAAqB,OAAA;AAGvB,8DAKoC;AAJlC,sHAAA,mBAAmB,OAAA;AACnB,yHAAA,sBAAsB,OAAA;AACtB,2HAAA,wBAAwB,OAAA;AAG1B,oDAK+B;AAJ7B,uHAAA,yBAAyB,OAAA;AACzB,+GAAA,iBAAiB,OAAA;AACjB,8GAAA,gBAAgB,OAAA;AAGlB,gEAA2F;AAAlF,0HAAA,sBAAsB,OAAA;AAC/B,kDAAkD;AAClD,oDAI6B;AAH3B,0HAAA,0BAA0B,OAAA;AAI5B,sDAK8B;AAJ5B,sHAAA,qBAAqB,OAAA;AACrB,uHAAA,sBAAsB,OAAA;AAIxB,kDAI4B;AAH1B,wHAAA,yBAAyB,OAAA;AACzB,wHAAA,yBAAyB,OAAA;AACzB,sHAAA,uBAAuB,OAAA;AAEzB,8EAA8E;AAC9E,yEAAyE;AACzE,gCAAgC;AAChC,gDAA8B;AAC9B,6DAA2C;AAC3C,kDAAgC;AAChC,mDAAiC"}
@@ -12,7 +12,6 @@
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.buildAiExecutor = void 0;
14
14
  const jsonRepair_js_1 = require("../../ai/jsonRepair.js");
15
- const schemaValidator_js_1 = require("../../contract/schemaValidator.js");
16
15
  const graphTraversal_js_1 = require("../graphTraversal.js");
17
16
  const templateResolver_js_1 = require("../templateResolver.js");
18
17
  const abort_js_1 = require("./helpers/abort.js");
@@ -103,13 +102,13 @@ const buildAiExecutor = (options) => async (input) => {
103
102
  catch {
104
103
  return failure("AI reply is not valid JSON (even after repair). See the raw reply in the step result.", details, durationMs);
105
104
  }
106
- const schema = (0, aiExample_js_1.deriveSchemaFromExample)(example.value);
107
- const schemaFailures = (0, schemaValidator_js_1.validateResponseSchema)(schema, parsed).filter((entry) => entry.status === "FAIL");
105
+ // Structural validation WITHOUT ajv — ajv compiles schemas via the
106
+ // Function constructor, which the Electron renderer's CSP (no
107
+ // 'unsafe-eval') refuses, so desktop-local runs would fail on a
108
+ // perfectly good reply.
109
+ const schemaFailures = (0, aiExample_js_1.validateAgainstExample)(example.value, parsed);
108
110
  if (schemaFailures.length > 0) {
109
- const summary = schemaFailures
110
- .slice(0, 3)
111
- .map((entry) => entry.message)
112
- .join("; ");
111
+ const summary = schemaFailures.slice(0, 3).join("; ");
113
112
  return failure(`AI reply did not match the expected format: ${summary}`, details, durationMs);
114
113
  }
115
114
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"ai-executor.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/ai-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-executor.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/ai-executor.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  // downstream `{{Label.field}}` references depend on is enforced)
9
9
  // - buildAiMessages: the fixed system instruction + resolved user prompt
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.buildAiMessages = exports.deriveSchemaFromExample = exports.parseJsonExample = void 0;
11
+ exports.buildAiMessages = exports.validateAgainstExample = exports.deriveSchemaFromExample = exports.parseJsonExample = void 0;
12
12
  const jsonRepair_js_1 = require("../../../ai/jsonRepair.js");
13
13
  const parseJsonExample = (exampleText) => {
14
14
  const trimmed = (exampleText ?? "").trim();
@@ -66,6 +66,71 @@ const deriveSchemaFromExample = (example) => {
66
66
  };
67
67
  };
68
68
  exports.deriveSchemaFromExample = deriveSchemaFromExample;
69
+ // Direct structural validation of a parsed reply against the example — the
70
+ // SAME rules deriveSchemaFromExample encodes, but WITHOUT ajv: Ajv compiles
71
+ // schemas through the Function constructor, which a CSP that bans
72
+ // 'unsafe-eval' (the Electron renderer) refuses. Returns ajv-style failure
73
+ // messages; empty array = valid.
74
+ const validateValueAgainstExample = (path, exampleValue, actual, failures) => {
75
+ if (exampleValue === null || exampleValue === undefined) {
76
+ return; // the example gives no type signal
77
+ }
78
+ if (typeof exampleValue === "string") {
79
+ if (typeof actual !== "string")
80
+ failures.push(`${path} must be string`);
81
+ return;
82
+ }
83
+ if (typeof exampleValue === "boolean") {
84
+ if (typeof actual !== "boolean")
85
+ failures.push(`${path} must be boolean`);
86
+ return;
87
+ }
88
+ // Never integer-strict: an example value of 1 must not reject 0.9.
89
+ if (typeof exampleValue === "number") {
90
+ if (typeof actual !== "number" || !Number.isFinite(actual)) {
91
+ failures.push(`${path} must be number`);
92
+ }
93
+ return;
94
+ }
95
+ if (Array.isArray(exampleValue)) {
96
+ if (!Array.isArray(actual)) {
97
+ failures.push(`${path} must be array`);
98
+ return;
99
+ }
100
+ if (exampleValue.length > 0) {
101
+ actual.forEach((item, index) => validateValueAgainstExample(`${path}/${index}`, exampleValue[0], item, failures));
102
+ }
103
+ return;
104
+ }
105
+ // Nested object: type-check the properties that ARE present; nested keys
106
+ // are never required (mirrors the derived schema's lenient recursion).
107
+ if (typeof actual !== "object" || actual === null || Array.isArray(actual)) {
108
+ failures.push(`${path} must be object`);
109
+ return;
110
+ }
111
+ const record = actual;
112
+ for (const [key, nested] of Object.entries(exampleValue)) {
113
+ if (key in record) {
114
+ validateValueAgainstExample(`${path}/${key}`, nested, record[key], failures);
115
+ }
116
+ }
117
+ };
118
+ const validateAgainstExample = (example, value) => {
119
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
120
+ return ["(root) must be a JSON object"];
121
+ }
122
+ const failures = [];
123
+ const record = value;
124
+ for (const [key, exampleValue] of Object.entries(example)) {
125
+ if (!(key in record)) {
126
+ failures.push(`(root) must have required property '${key}'`);
127
+ continue;
128
+ }
129
+ validateValueAgainstExample(`/${key}`, exampleValue, record[key], failures);
130
+ }
131
+ return failures;
132
+ };
133
+ exports.validateAgainstExample = validateAgainstExample;
69
134
  // The word "JSON" in the system message also satisfies OpenAI's
70
135
  // `response_format: json_object` requirement (it rejects prompts that never
71
136
  // mention JSON).
@@ -1 +1 @@
1
- {"version":3,"file":"aiExample.js","sourceRoot":"","sources":["../../../../src/scenario-runner/adapters/helpers/aiExample.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aiExample.js","sourceRoot":"","sources":["../../../../src/scenario-runner/adapters/helpers/aiExample.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  // (HTTP, DB, Redis, Kafka). Script + notification executors default to
9
9
  // canonical core implementations but can be overridden.
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.summarizeContractResults = exports.buildRequestFailureMessage = exports.evaluateScenarioExpectedStatus = exports.buildWebsocketExecutor = exports.buildScriptExecutor = exports.buildRequestExecutor = exports.buildRedisExecutor = exports.buildNotificationExecutor = exports.buildKafkaExecutor = exports.parseJsonExample = exports.deriveSchemaFromExample = exports.buildAiMessages = exports.buildAiExecutor = exports.matchDbExpectedError = exports.extractSqlState = exports.buildDbExecutor = exports.buildScenarioRuntimeAdapters = void 0;
11
+ exports.summarizeContractResults = exports.buildRequestFailureMessage = exports.evaluateScenarioExpectedStatus = exports.buildWebsocketExecutor = exports.buildScriptExecutor = exports.buildRequestExecutor = exports.buildRedisExecutor = exports.buildNotificationExecutor = exports.buildKafkaExecutor = exports.validateAgainstExample = exports.parseJsonExample = exports.deriveSchemaFromExample = exports.buildAiMessages = exports.buildAiExecutor = exports.matchDbExpectedError = exports.extractSqlState = exports.buildDbExecutor = exports.buildScenarioRuntimeAdapters = void 0;
12
12
  const ai_executor_js_1 = require("./ai-executor.js");
13
13
  const db_executor_js_1 = require("./db-executor.js");
14
14
  const kafka_executor_js_1 = require("./kafka-executor.js");
@@ -49,6 +49,7 @@ var aiExample_js_1 = require("./helpers/aiExample.js");
49
49
  Object.defineProperty(exports, "buildAiMessages", { enumerable: true, get: function () { return aiExample_js_1.buildAiMessages; } });
50
50
  Object.defineProperty(exports, "deriveSchemaFromExample", { enumerable: true, get: function () { return aiExample_js_1.deriveSchemaFromExample; } });
51
51
  Object.defineProperty(exports, "parseJsonExample", { enumerable: true, get: function () { return aiExample_js_1.parseJsonExample; } });
52
+ Object.defineProperty(exports, "validateAgainstExample", { enumerable: true, get: function () { return aiExample_js_1.validateAgainstExample; } });
52
53
  var kafka_executor_js_2 = require("./kafka-executor.js");
53
54
  Object.defineProperty(exports, "buildKafkaExecutor", { enumerable: true, get: function () { return kafka_executor_js_2.buildKafkaExecutor; } });
54
55
  var notification_executor_js_2 = require("./notification-executor.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,EAAE;AACF,gEAAgE;AAChE,6DAA6D;AAC7D,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,wDAAwD;;;AAIxD,qDAAmD;AACnD,qDAAmD;AACnD,2DAAyD;AACzD,yEAAuE;AACvE,2DAAyD;AACzD,+DAA6D;AAC7D,6DAA2D;AAC3D,mEAAiE;AAI1D,MAAM,4BAA4B,GAAG,CAC1C,OAA6C,EACpB,EAAE,CAAC,CAAC;IAC7B,eAAe,EAAE,IAAA,0CAAoB,EAAC,OAAO,CAAC;IAC9C,UAAU,EAAE,IAAA,gCAAe,EAAC,OAAO,CAAC;IACpC,aAAa,EAAE,IAAA,sCAAkB,EAAC,OAAO,CAAC;IAC1C,aAAa,EAAE,IAAA,sCAAkB,EAAC,OAAO,CAAC;IAC1C,iBAAiB,EAAE,IAAA,8CAAsB,EAAC,OAAO,CAAC;IAClD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAA,wCAAmB,EAAC,OAAO,CAAC;IACtE,oBAAoB,EAClB,OAAO,CAAC,oBAAoB,IAAI,IAAA,oDAAyB,EAAC,OAAO,CAAC;IACpE,UAAU,EAAE,IAAA,gCAAe,EAAC;QAC1B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IACF,sEAAsE;IACtE,qEAAqE;IACrE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB;QACxC,CAAC,CAAC;YACE,gBAAgB,EAAE,CAAC,KAAwD,EAAE,EAAE,CAC7E,OAAO,CAAC,OAAO,CAAC,sBAAuB,CAAC,KAAK,CAAC;SACjD;QACH,CAAC,CAAC,EAAE,CAAC;CACR,CAAC,CAAC;AAvBU,QAAA,4BAA4B,gCAuBtC;AAEH,iEAAiE;AACjE,mDAI0B;AAHxB,iHAAA,eAAe,OAAA;AACf,iHAAA,eAAe,OAAA;AACf,sHAAA,oBAAoB,OAAA;AAEtB,mDAA2E;AAAlE,iHAAA,eAAe,OAAA;AACxB,uDAKgC;AAJ9B,+GAAA,eAAe,OAAA;AACf,uHAAA,uBAAuB,OAAA;AACvB,gHAAA,gBAAgB,OAAA;AAGlB,yDAAyD;AAAhD,uHAAA,kBAAkB,OAAA;AAC3B,uEAAuE;AAA9D,qIAAA,yBAAyB,OAAA;AAClC,yDAAyD;AAAhD,uHAAA,kBAAkB,OAAA;AAC3B,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,yEAAyE;AACzE,0EAA0E;AAC1E,sEAAsE;AACtE,mEAGsC;AAFpC,oIAAA,8BAA8B,OAAA;AAGhC,qEAIuC;AAHrC,iIAAA,0BAA0B,OAAA;AAC1B,+HAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/scenario-runner/adapters/index.ts"],"names":[],"mappings":";AAAA,6DAA6D;AAC7D,EAAE;AACF,gEAAgE;AAChE,6DAA6D;AAC7D,qEAAqE;AACrE,qEAAqE;AACrE,uEAAuE;AACvE,wDAAwD;;;AAIxD,qDAAmD;AACnD,qDAAmD;AACnD,2DAAyD;AACzD,yEAAuE;AACvE,2DAAyD;AACzD,+DAA6D;AAC7D,6DAA2D;AAC3D,mEAAiE;AAI1D,MAAM,4BAA4B,GAAG,CAC1C,OAA6C,EACpB,EAAE,CAAC,CAAC;IAC7B,eAAe,EAAE,IAAA,0CAAoB,EAAC,OAAO,CAAC;IAC9C,UAAU,EAAE,IAAA,gCAAe,EAAC,OAAO,CAAC;IACpC,aAAa,EAAE,IAAA,sCAAkB,EAAC,OAAO,CAAC;IAC1C,aAAa,EAAE,IAAA,sCAAkB,EAAC,OAAO,CAAC;IAC1C,iBAAiB,EAAE,IAAA,8CAAsB,EAAC,OAAO,CAAC;IAClD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAA,wCAAmB,EAAC,OAAO,CAAC;IACtE,oBAAoB,EAClB,OAAO,CAAC,oBAAoB,IAAI,IAAA,oDAAyB,EAAC,OAAO,CAAC;IACpE,UAAU,EAAE,IAAA,gCAAe,EAAC;QAC1B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAC9C,aAAa,EAAE,OAAO,CAAC,aAAa;KACrC,CAAC;IACF,sEAAsE;IACtE,qEAAqE;IACrE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,sBAAsB;QACxC,CAAC,CAAC;YACE,gBAAgB,EAAE,CAAC,KAAwD,EAAE,EAAE,CAC7E,OAAO,CAAC,OAAO,CAAC,sBAAuB,CAAC,KAAK,CAAC;SACjD;QACH,CAAC,CAAC,EAAE,CAAC;CACR,CAAC,CAAC;AAvBU,QAAA,4BAA4B,gCAuBtC;AAEH,iEAAiE;AACjE,mDAI0B;AAHxB,iHAAA,eAAe,OAAA;AACf,iHAAA,eAAe,OAAA;AACf,sHAAA,oBAAoB,OAAA;AAEtB,mDAA2E;AAAlE,iHAAA,eAAe,OAAA;AACxB,uDAMgC;AAL9B,+GAAA,eAAe,OAAA;AACf,uHAAA,uBAAuB,OAAA;AACvB,gHAAA,gBAAgB,OAAA;AAChB,sHAAA,sBAAsB,OAAA;AAGxB,yDAAyD;AAAhD,uHAAA,kBAAkB,OAAA;AAC3B,uEAAuE;AAA9D,qIAAA,yBAAyB,OAAA;AAClC,yDAAyD;AAAhD,uHAAA,kBAAkB,OAAA;AAC3B,6DAA6D;AAApD,2HAAA,oBAAoB,OAAA;AAC7B,2DAA2D;AAAlD,yHAAA,mBAAmB,OAAA;AAC5B,iEAAiE;AAAxD,+HAAA,sBAAsB,OAAA;AAC/B,yEAAyE;AACzE,0EAA0E;AAC1E,sEAAsE;AACtE,mEAGsC;AAFpC,oIAAA,8BAA8B,OAAA;AAGhC,qEAIuC;AAHrC,iIAAA,0BAA0B,OAAA;AAC1B,+HAAA,wBAAwB,OAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "callman-core",
3
- "version": "1.21.0",
3
+ "version": "1.22.0",
4
4
  "main": "dist-cjs/index.js",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",