@qaick/runner 0.2.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +72 -0
- package/package-dist/fixtures/action-catalog-v1.qaick.json +8 -0
- package/package-dist/fixtures/checkout-nested.qaick.json +24 -0
- package/package-dist/fixtures/checkout-project.qaick.json +30 -0
- package/package-dist/fixtures/checkout-regression.qaick.json +16 -0
- package/package-dist/fixtures/invalid-binding.qaick.json +13 -0
- package/package-dist/fixtures/parallel-project.qaick.json +41 -0
- package/package-dist/fixtures/studio-flow-v7.qaick.json +23 -0
- package/package-dist/fixtures/studio-project-v7.qaick.json +47 -0
- package/package-dist/package.json +80 -0
- package/package-dist/src/build-info.d.ts +4 -0
- package/package-dist/src/build-info.d.ts.map +1 -0
- package/package-dist/src/build-info.js +5 -0
- package/package-dist/src/build-info.js.map +1 -0
- package/package-dist/src/demo/RunnerWalkthrough.d.ts +3 -0
- package/package-dist/src/demo/RunnerWalkthrough.d.ts.map +1 -0
- package/package-dist/src/demo/RunnerWalkthrough.js +23 -0
- package/package-dist/src/demo/RunnerWalkthrough.js.map +1 -0
- package/package-dist/src/demo/runner-walkthrough.css +31 -0
- package/package-dist/src/runner/RunnerModule.d.ts +8 -0
- package/package-dist/src/runner/RunnerModule.d.ts.map +1 -0
- package/package-dist/src/runner/RunnerModule.js +267 -0
- package/package-dist/src/runner/RunnerModule.js.map +1 -0
- package/package-dist/src/runner/catalog.d.ts +15 -0
- package/package-dist/src/runner/catalog.d.ts.map +1 -0
- package/package-dist/src/runner/catalog.js +16 -0
- package/package-dist/src/runner/catalog.js.map +1 -0
- package/package-dist/src/runner/fixture.d.ts +5 -0
- package/package-dist/src/runner/fixture.d.ts.map +1 -0
- package/package-dist/src/runner/fixture.js +28 -0
- package/package-dist/src/runner/fixture.js.map +1 -0
- package/package-dist/src/runner/history.d.ts +15 -0
- package/package-dist/src/runner/history.d.ts.map +1 -0
- package/package-dist/src/runner/history.js +7 -0
- package/package-dist/src/runner/history.js.map +1 -0
- package/package-dist/src/runner/package-load-error.d.ts +11 -0
- package/package-dist/src/runner/package-load-error.d.ts.map +1 -0
- package/package-dist/src/runner/package-load-error.js +10 -0
- package/package-dist/src/runner/package-load-error.js.map +1 -0
- package/package-dist/src/runner/package-loader.d.ts +4 -0
- package/package-dist/src/runner/package-loader.d.ts.map +1 -0
- package/package-dist/src/runner/package-loader.js +114 -0
- package/package-dist/src/runner/package-loader.js.map +1 -0
- package/package-dist/src/runner/redaction.d.ts +7 -0
- package/package-dist/src/runner/redaction.d.ts.map +1 -0
- package/package-dist/src/runner/redaction.js +38 -0
- package/package-dist/src/runner/redaction.js.map +1 -0
- package/package-dist/src/runner/result-export.d.ts +12 -0
- package/package-dist/src/runner/result-export.d.ts.map +1 -0
- package/package-dist/src/runner/result-export.js +9 -0
- package/package-dist/src/runner/result-export.js.map +1 -0
- package/package-dist/src/runner/runtime-client-adapter.d.ts +21 -0
- package/package-dist/src/runner/runtime-client-adapter.d.ts.map +1 -0
- package/package-dist/src/runner/runtime-client-adapter.js +40 -0
- package/package-dist/src/runner/runtime-client-adapter.js.map +1 -0
- package/package-dist/src/runner/runtime-client.d.ts +24 -0
- package/package-dist/src/runner/runtime-client.d.ts.map +1 -0
- package/package-dist/src/runner/runtime-client.js +5 -0
- package/package-dist/src/runner/runtime-client.js.map +1 -0
- package/package-dist/src/runner/studio-artifact-loader.d.ts +6 -0
- package/package-dist/src/runner/studio-artifact-loader.d.ts.map +1 -0
- package/package-dist/src/runner/studio-artifact-loader.js +331 -0
- package/package-dist/src/runner/studio-artifact-loader.js.map +1 -0
- package/package-dist/src/runner/types.d.ts +81 -0
- package/package-dist/src/runner/types.d.ts.map +1 -0
- package/package-dist/src/runner/types.js +5 -0
- package/package-dist/src/runner/types.js.map +1 -0
- package/package-dist/styles.css +262 -0
- package/package.json +80 -0
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import { RUNNER_PACKAGE_SCHEMA_VERSION, STUDIO_ARTIFACT_SCHEMA_VERSION } from './types';
|
|
2
|
+
import { isApiResponseField } from '@qaick/contract';
|
|
3
|
+
import { PackageLoadError } from './package-load-error';
|
|
4
|
+
/** Converts the Studio schema 7 Flow envelope into Runner's execution port. */
|
|
5
|
+
export function loadStudioFlowArtifact(candidate) {
|
|
6
|
+
if (candidate.artifactKind !== 'flow' || candidate.schemaVersion !== 7 || !isRecord(candidate.flow)) {
|
|
7
|
+
throw new PackageLoadError('The selected file is not a supported Studio schema 7 Flow artifact.');
|
|
8
|
+
}
|
|
9
|
+
const flow = candidate.flow;
|
|
10
|
+
if (typeof flow.id !== 'string' || typeof flow.name !== 'string' || !Array.isArray(flow.nodes) || !Array.isArray(flow.edges)) {
|
|
11
|
+
throw new PackageLoadError('The Studio Flow artifact is incomplete.');
|
|
12
|
+
}
|
|
13
|
+
const definitions = [{ id: flow.id, kind: 'flow', name: flow.name }];
|
|
14
|
+
const catalogs = flattenCatalogCandidates([candidate.actionCatalogs, flow.actionCatalogs]);
|
|
15
|
+
const converted = convertStudioFlow(flow, definitions, undefined, new Set(), actionOutputMap(catalogs), {}, actionRuntimeMap(catalogs));
|
|
16
|
+
return {
|
|
17
|
+
schemaVersion: RUNNER_PACKAGE_SCHEMA_VERSION,
|
|
18
|
+
artifactSchemaVersion: STUDIO_ARTIFACT_SCHEMA_VERSION,
|
|
19
|
+
packageId: `studio-flow-${flow.id}`,
|
|
20
|
+
target: { kind: 'flow', id: flow.id, name: flow.name },
|
|
21
|
+
definitions,
|
|
22
|
+
steps: converted.steps,
|
|
23
|
+
requiredInputs: converted.requiredInputs,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export function loadStudioProjectFile(candidate) {
|
|
27
|
+
if (candidate.schemaVersion !== 7 || !isRecord(candidate.project))
|
|
28
|
+
throw new PackageLoadError('The selected file is not a supported Studio schema 7 Project file.');
|
|
29
|
+
const project = candidate.project;
|
|
30
|
+
if (typeof project.id !== 'string' || typeof project.name !== 'string' || !Array.isArray(project.flows))
|
|
31
|
+
throw new PackageLoadError('The Studio Project file is incomplete.');
|
|
32
|
+
const flowsById = new Map(project.flows.filter(isRecord).flatMap(flow => typeof flow.id === 'string' ? [[flow.id, flow]] : []));
|
|
33
|
+
const references = Array.isArray(project.flowReferences) && project.flowReferences.length > 0
|
|
34
|
+
? project.flowReferences.filter(isRecord).flatMap(reference => typeof reference.flowId === 'string' ? [reference.flowId] : [])
|
|
35
|
+
: [...flowsById.keys()];
|
|
36
|
+
if (!references.length)
|
|
37
|
+
throw new PackageLoadError('The Studio Project contains no Flow references.');
|
|
38
|
+
if (new Set(references).size !== references.length)
|
|
39
|
+
throw new PackageLoadError('The Studio Project contains duplicate Flow references.');
|
|
40
|
+
const definitions = [{ id: project.id, kind: 'project', name: project.name }];
|
|
41
|
+
const actionOutputs = new Map();
|
|
42
|
+
const actionRuntimes = new Map();
|
|
43
|
+
if (Array.isArray(project.actions))
|
|
44
|
+
for (const action of project.actions.filter(isRecord)) {
|
|
45
|
+
if (typeof action.id !== 'string')
|
|
46
|
+
continue;
|
|
47
|
+
const outputs = Array.isArray(action.outputs) ? action.outputs.filter(isRecord).flatMap(output => typeof output.name === 'string' ? [output.name] : []) : [];
|
|
48
|
+
actionOutputs.set(action.id, outputs);
|
|
49
|
+
actionOutputs.set(`${project.id}:${action.id}`, outputs);
|
|
50
|
+
actionRuntimes.set(action.id, action);
|
|
51
|
+
actionRuntimes.set(`${project.id}:${action.id}`, action);
|
|
52
|
+
}
|
|
53
|
+
const catalogs = flattenCatalogCandidates([candidate.actionCatalogs, project.actionCatalogs, project.catalogReferences]);
|
|
54
|
+
mergeActionOutputs(actionOutputs, actionOutputMap(catalogs));
|
|
55
|
+
mergeActionRuntimes(actionRuntimes, actionRuntimeMap(catalogs));
|
|
56
|
+
const operationRecords = Array.isArray(project.operations) ? project.operations.filter(isRecord).flatMap(operation => typeof operation.id === 'string' ? [operation] : []) : [];
|
|
57
|
+
if (new Set(operationRecords.map(operation => operation.id)).size !== operationRecords.length)
|
|
58
|
+
throw new PackageLoadError('The Studio Project contains duplicate Operation definitions.');
|
|
59
|
+
const operations = new Map(operationRecords.map(operation => [operation.id, operation]));
|
|
60
|
+
const flows = references.map(flowId => {
|
|
61
|
+
const flow = flowsById.get(flowId);
|
|
62
|
+
if (!flow)
|
|
63
|
+
throw new PackageLoadError(`The Studio Project references missing Flow ${flowId}.`);
|
|
64
|
+
const projectAliases = Array.isArray(project.variables)
|
|
65
|
+
? variableAliasesForFlow(project.variables, flow)
|
|
66
|
+
: {};
|
|
67
|
+
const converted = convertStudioFlow(flow, definitions, operations, new Set(), actionOutputs, projectAliases, actionRuntimes);
|
|
68
|
+
definitions.push({ id: converted.id, kind: 'flow', name: converted.name });
|
|
69
|
+
return converted;
|
|
70
|
+
});
|
|
71
|
+
return { schemaVersion: RUNNER_PACKAGE_SCHEMA_VERSION, artifactSchemaVersion: STUDIO_ARTIFACT_SCHEMA_VERSION, packageId: `studio-project-${project.id}`, target: { kind: 'project', id: project.id, name: project.name }, definitions, steps: [], flows, requiredInputs: [...new Set(flows.flatMap(flow => flow.requiredInputs ?? []))] };
|
|
72
|
+
}
|
|
73
|
+
function actionOutputMap(value) {
|
|
74
|
+
const result = new Map();
|
|
75
|
+
if (!Array.isArray(value))
|
|
76
|
+
return result;
|
|
77
|
+
for (const catalog of value.filter(isRecord)) {
|
|
78
|
+
if (!Array.isArray(catalog.actions))
|
|
79
|
+
continue;
|
|
80
|
+
for (const action of catalog.actions.filter(isRecord)) {
|
|
81
|
+
if (typeof action.id !== 'string')
|
|
82
|
+
continue;
|
|
83
|
+
const outputs = Array.isArray(action.outputs) ? action.outputs.filter(isRecord).flatMap(output => typeof output.name === 'string' ? [output.name] : []) : [];
|
|
84
|
+
if (typeof action.clientId === 'string')
|
|
85
|
+
result.set(`${action.clientId}:${action.id}`, outputs);
|
|
86
|
+
result.set(action.id, outputs);
|
|
87
|
+
if (typeof action.clientId === 'string')
|
|
88
|
+
result.set(`studio:${action.clientId}:${action.id}`, outputs);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
function flattenCatalogCandidates(value) {
|
|
94
|
+
if (Array.isArray(value))
|
|
95
|
+
return value.flatMap(flattenCatalogCandidates);
|
|
96
|
+
if (!isRecord(value))
|
|
97
|
+
return [];
|
|
98
|
+
if (Array.isArray(value.actions))
|
|
99
|
+
return [value];
|
|
100
|
+
return [value.catalog, value.definition].flatMap(flattenCatalogCandidates);
|
|
101
|
+
}
|
|
102
|
+
function mergeActionOutputs(target, source) { for (const [key, value] of source)
|
|
103
|
+
target.set(key, value); }
|
|
104
|
+
function actionRuntimeMap(value) {
|
|
105
|
+
const result = new Map();
|
|
106
|
+
if (!Array.isArray(value))
|
|
107
|
+
return result;
|
|
108
|
+
for (const catalog of value.filter(isRecord)) {
|
|
109
|
+
if (!Array.isArray(catalog.actions))
|
|
110
|
+
continue;
|
|
111
|
+
for (const action of catalog.actions.filter(isRecord)) {
|
|
112
|
+
if (typeof action.id !== 'string')
|
|
113
|
+
continue;
|
|
114
|
+
result.set(action.id, action);
|
|
115
|
+
if (typeof action.clientId === 'string')
|
|
116
|
+
result.set(`${action.clientId}:${action.id}`, action);
|
|
117
|
+
if (typeof action.clientId === 'string')
|
|
118
|
+
result.set(`studio:${action.clientId}:${action.id}`, action);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return result;
|
|
122
|
+
}
|
|
123
|
+
function mergeActionRuntimes(target, source) { for (const [key, value] of source)
|
|
124
|
+
target.set(key, value); }
|
|
125
|
+
function convertStudioFlow(flow, definitions, operations, operationStack = new Set(), actionOutputs = new Map(), inheritedAliases = {}, actionRuntimes = new Map()) {
|
|
126
|
+
if (typeof flow.id !== 'string' || typeof flow.name !== 'string' || !Array.isArray(flow.nodes) || !Array.isArray(flow.edges))
|
|
127
|
+
throw new PackageLoadError('The Studio Flow artifact is incomplete.');
|
|
128
|
+
const requiredInputs = Array.isArray(flow.inputs)
|
|
129
|
+
? flow.inputs.filter(isRecord).filter(input => input.required === true).flatMap(input => typeof input.name === 'string' ? [input.name] : [])
|
|
130
|
+
: [];
|
|
131
|
+
return { id: flow.id, name: flow.name, steps: convertNodes(flow.nodes, flow.edges, definitions, operations, operationStack, actionOutputs, { ...inheritedAliases, ...variableAliases(flow.variables) }, actionRuntimes), requiredInputs };
|
|
132
|
+
}
|
|
133
|
+
function convertNodes(nodes, edges, definitions, operations, operationStack = new Set(), actionOutputs = new Map(), inheritedAliases = {}, actionRuntimes = new Map()) {
|
|
134
|
+
const validNodes = nodes.filter(isRecord);
|
|
135
|
+
const nodeIds = new Set(validNodes.flatMap(node => typeof node.id === 'string' ? [node.id] : []));
|
|
136
|
+
const outgoing = new Map();
|
|
137
|
+
for (const edge of edges.filter(isRecord)) {
|
|
138
|
+
if (typeof edge.source !== 'string' || typeof edge.target !== 'string' || !nodeIds.has(edge.source) || !nodeIds.has(edge.target)) {
|
|
139
|
+
throw new PackageLoadError('The Studio Flow contains an edge that references an unknown node.');
|
|
140
|
+
}
|
|
141
|
+
outgoing.set(edge.target, [...(outgoing.get(edge.target) ?? []), edge.source]);
|
|
142
|
+
}
|
|
143
|
+
return validNodes.map(node => {
|
|
144
|
+
if (typeof node.id !== 'string' || typeof node.type !== 'string' || typeof node.label !== 'string')
|
|
145
|
+
throw new PackageLoadError('The Studio Flow contains an incomplete node.');
|
|
146
|
+
const inputs = convertInputs(node.inputs, { ...inheritedAliases, ...variableAliases(node.variables) });
|
|
147
|
+
if (node.type === 'action') {
|
|
148
|
+
if (typeof node.actionId !== 'string')
|
|
149
|
+
throw new PackageLoadError(`Studio Action node ${node.id} has no action reference.`);
|
|
150
|
+
const runtimeAction = actionRuntimes.get(`${node.clientId ?? 'project'}:${node.actionId}`) ?? actionRuntimes.get(node.actionId);
|
|
151
|
+
const api = isRecord(runtimeAction?.api) ? runtimeAction.api : undefined;
|
|
152
|
+
const isApiAction = runtimeAction?.type === 'api' || api !== undefined;
|
|
153
|
+
const action = isApiAction ? `http.${node.actionId}` : `studio:${node.clientId ?? 'project'}:${node.actionId}`;
|
|
154
|
+
if (!definitions.some(definition => definition.id === action))
|
|
155
|
+
definitions.push({ id: action, kind: 'action', name: node.label });
|
|
156
|
+
const outputNames = actionOutputs.get(`${node.clientId ?? 'project'}:${node.actionId}`) ?? actionOutputs.get(node.actionId) ?? [];
|
|
157
|
+
const response = api && isRecord(api.response) ? api.response : undefined;
|
|
158
|
+
const responseFields = response && Array.isArray(response.fields)
|
|
159
|
+
? Object.fromEntries(response.fields.filter(isApiResponseField).map(field => [field.name, field.path]))
|
|
160
|
+
: undefined;
|
|
161
|
+
const apiInputs = api ? {
|
|
162
|
+
...(typeof api.url === 'string' ? { url: api.url } : {}),
|
|
163
|
+
...(typeof api.method === 'string' ? { method: api.method } : {}),
|
|
164
|
+
...(api.query !== undefined ? { query: parseQuery(api.query) } : {}),
|
|
165
|
+
...(api.body !== undefined ? { body: api.body } : {}),
|
|
166
|
+
...(api.headers !== undefined ? { headers: parseHeaders(api.headers) } : {})
|
|
167
|
+
} : {};
|
|
168
|
+
const adapterConfig = isApiAction ? {
|
|
169
|
+
...(responseFields && Object.keys(responseFields).length ? { responseFields } : {}),
|
|
170
|
+
...(response && typeof response.body === 'string' ? { responseBodyName: response.body } : {})
|
|
171
|
+
} : undefined;
|
|
172
|
+
return { id: node.id, name: node.label, action, output: Object.fromEntries(outputNames.map(name => [name, null])), delayMs: literalSeconds(isRecord(node.delaySeconds) ? node.delaySeconds : undefined), dependsOn: outgoing.get(node.id), bindings: inputs.bindings, staticInputs: { ...apiInputs, ...inputs.staticInputs }, ...(adapterConfig ? { adapterConfig } : {}) };
|
|
173
|
+
}
|
|
174
|
+
if (node.type === 'block') {
|
|
175
|
+
const children = Array.isArray(node.nodes) ? convertNodes(node.nodes, Array.isArray(node.edges) ? node.edges : [], definitions, operations, operationStack, actionOutputs, inheritedAliases, actionRuntimes) : [];
|
|
176
|
+
const settings = isRecord(node.settings) ? node.settings : {};
|
|
177
|
+
const iterations = literalNumber(settings.count);
|
|
178
|
+
const condition = controlCondition(settings.condition, inheritedAliases);
|
|
179
|
+
const durationMs = literalNumber(settings.durationMs) ?? (literalNumber(settings.durationMinutes) !== undefined ? literalNumber(settings.durationMinutes) * 60_000 : undefined);
|
|
180
|
+
const iterationDelayMs = literalSeconds(isRecord(settings.iterationDelaySeconds) ? settings.iterationDelaySeconds : undefined);
|
|
181
|
+
if (isRecord(settings.count) && settings.count.type !== 'literal')
|
|
182
|
+
throw new PackageLoadError(`Studio Control Block ${node.id} uses a runtime count that Runner cannot resolve from the artifact.`);
|
|
183
|
+
const branches = Array.isArray(settings.branches)
|
|
184
|
+
? settings.branches.filter(isRecord).flatMap((branch, index) => {
|
|
185
|
+
const branchNodes = Array.isArray(branch.nodes) ? branch.nodes : [];
|
|
186
|
+
const branchEdges = Array.isArray(branch.edges) ? branch.edges : [];
|
|
187
|
+
const branchChildren = convertNodes(branchNodes, branchEdges, definitions, operations, operationStack, actionOutputs, inheritedAliases, actionRuntimes);
|
|
188
|
+
const branchCondition = controlCondition(branch.condition, inheritedAliases);
|
|
189
|
+
return typeof branchCondition === 'boolean' || branchCondition ? [{ id: typeof branch.id === 'string' ? branch.id : `branch-${index + 1}`, name: typeof branch.name === 'string' ? branch.name : undefined, condition: branchCondition ?? false, children: branchChildren }] : [];
|
|
190
|
+
})
|
|
191
|
+
: [];
|
|
192
|
+
if (!children.length && !branches.length)
|
|
193
|
+
throw new PackageLoadError(`Studio Control Block ${node.id} has no nested nodes.`);
|
|
194
|
+
const allChildren = branches.length ? branches.flatMap(branch => branch.children) : children;
|
|
195
|
+
const isParallel = settings.parallel === true || settings.mode === 'parallel';
|
|
196
|
+
const controlType = isParallel && branches.length ? 'parallel' : branches.length ? 'branch' : iterations && iterations > 1 || durationMs !== undefined || condition !== undefined ? 'repeat' : 'sequence';
|
|
197
|
+
const merge = settings.merge === 'first' || settings.merge === 'last' ? settings.merge : 'collect';
|
|
198
|
+
const mergeBindings = isRecord(settings.mergeBindings) && Object.entries(settings.mergeBindings).every(([, source]) => typeof source === 'string') ? Object.fromEntries(Object.entries(settings.mergeBindings).filter(([, source]) => typeof source === 'string')) : undefined;
|
|
199
|
+
return { id: node.id, name: node.label, action: isParallel ? 'control.parallel' : branches.length ? 'control.branch' : 'control.sequence', kind: 'control-block', control: { type: controlType, ...(iterations !== undefined ? { iterations } : {}), ...(condition !== undefined ? { condition } : {}), ...(durationMs !== undefined ? { durationMs } : {}), ...(iterationDelayMs !== undefined ? { iterationDelayMs } : {}), ...(isParallel ? { join: settings.join === 'first' ? 'first' : 'all', merge, ...(mergeBindings ? { mergeBindings } : {}) } : {}), ...(branches.length ? { branches } : {}) }, output: {}, dependsOn: outgoing.get(node.id), children: allChildren };
|
|
200
|
+
}
|
|
201
|
+
if (node.type === 'operation') {
|
|
202
|
+
if (typeof node.operationId !== 'string')
|
|
203
|
+
throw new PackageLoadError(`Studio Operation node ${node.id} has no Operation reference.`);
|
|
204
|
+
const operation = operations?.get(node.operationId);
|
|
205
|
+
if (!operation)
|
|
206
|
+
throw new PackageLoadError(`Studio Operation ${node.operationId} is not present in the Project catalog.`);
|
|
207
|
+
if (operationStack.has(node.operationId))
|
|
208
|
+
throw new PackageLoadError(`Studio Operation catalog contains a recursive reference to ${node.operationId}.`);
|
|
209
|
+
const nested = convertStudioFlow(operation, definitions, operations, new Set([...operationStack, node.operationId]), actionOutputs, inheritedAliases, actionRuntimes);
|
|
210
|
+
const outputNames = Array.isArray(operation.outputs)
|
|
211
|
+
? operation.outputs.filter(isRecord).flatMap(output => typeof output.name === 'string' ? [output.name] : [])
|
|
212
|
+
: isRecord(operation.outputBindings) ? Object.keys(operation.outputBindings) : [];
|
|
213
|
+
return { id: node.id, name: node.label, action: `operation:${node.operationId}`, kind: 'operation', output: Object.fromEntries(outputNames.map(name => [name, null])), dependsOn: outgoing.get(node.id), children: applyScopeInputs(nested.steps, inputs) };
|
|
214
|
+
}
|
|
215
|
+
throw new PackageLoadError(`Studio node type ${node.type} is not supported by Runner.`);
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
function applyScopeInputs(steps, scope) {
|
|
219
|
+
return steps.map(step => {
|
|
220
|
+
const staticInputs = { ...step.staticInputs };
|
|
221
|
+
const bindings = { ...step.bindings };
|
|
222
|
+
for (const [name, reference] of Object.entries(bindings)) {
|
|
223
|
+
const match = /^\$inputs\.(.+)$/.exec(reference);
|
|
224
|
+
if (!match)
|
|
225
|
+
continue;
|
|
226
|
+
const scopedReference = scope.bindings[match[1]];
|
|
227
|
+
if (scopedReference)
|
|
228
|
+
bindings[name] = scopedReference;
|
|
229
|
+
else if (Object.prototype.hasOwnProperty.call(scope.staticInputs, match[1])) {
|
|
230
|
+
staticInputs[name] = scope.staticInputs[match[1]];
|
|
231
|
+
delete bindings[name];
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
return { ...step, bindings, staticInputs, ...(step.children ? { children: applyScopeInputs(step.children, scope) } : {}) };
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function variableAliases(value) {
|
|
238
|
+
if (!Array.isArray(value))
|
|
239
|
+
return {};
|
|
240
|
+
return Object.fromEntries(value.filter(isRecord).flatMap(variable => {
|
|
241
|
+
const link = isRecord(variable.link) ? variable.link : undefined;
|
|
242
|
+
const name = typeof variable.name === 'string' ? variable.name : undefined;
|
|
243
|
+
const sourceNodeId = link && typeof link.sourceNodeId === 'string' ? link.sourceNodeId : undefined;
|
|
244
|
+
const sourceLabel = link && typeof link.sourceLabel === 'string' ? link.sourceLabel : undefined;
|
|
245
|
+
const outputName = sourceLabel?.match(/output\s+([^\s]+)$/i)?.[1] ?? name;
|
|
246
|
+
return name && sourceNodeId && outputName ? [[name, `$steps.${sourceNodeId}.${outputName}`]] : [];
|
|
247
|
+
}));
|
|
248
|
+
}
|
|
249
|
+
function variableAliasesForFlow(value, flow) {
|
|
250
|
+
const aliases = variableAliases(value);
|
|
251
|
+
if (!Array.isArray(value) || !Array.isArray(flow.nodes))
|
|
252
|
+
return aliases;
|
|
253
|
+
const nodes = flow.nodes.filter(isRecord);
|
|
254
|
+
for (const variable of value.filter(isRecord)) {
|
|
255
|
+
const link = isRecord(variable.link) ? variable.link : undefined;
|
|
256
|
+
const name = typeof variable.name === 'string' ? variable.name : undefined;
|
|
257
|
+
const sourceLabel = link && typeof link.sourceLabel === 'string' ? link.sourceLabel : undefined;
|
|
258
|
+
const outputName = sourceLabel?.match(/output\s+([^\s]+)$/i)?.[1] ?? name;
|
|
259
|
+
const operationName = sourceLabel?.match(/^Operation:\s*(.+?)\s+output\s+/i)?.[1];
|
|
260
|
+
if (!name || !outputName || !operationName)
|
|
261
|
+
continue;
|
|
262
|
+
const operationNode = nodes.find(node => node.type === 'operation' && node.label === operationName);
|
|
263
|
+
if (typeof operationNode?.id === 'string')
|
|
264
|
+
aliases[name] = `$steps.${operationNode.id}.${outputName}`;
|
|
265
|
+
}
|
|
266
|
+
return aliases;
|
|
267
|
+
}
|
|
268
|
+
function convertInputs(value, aliases = {}) {
|
|
269
|
+
const bindings = {};
|
|
270
|
+
const staticInputs = {};
|
|
271
|
+
if (!isRecord(value))
|
|
272
|
+
return { bindings, staticInputs };
|
|
273
|
+
for (const [name, binding] of Object.entries(value)) {
|
|
274
|
+
if (!isRecord(binding) || typeof binding.type !== 'string')
|
|
275
|
+
throw new PackageLoadError(`Studio input ${name} is invalid.`);
|
|
276
|
+
if (binding.type === 'literal')
|
|
277
|
+
staticInputs[name] = binding.value;
|
|
278
|
+
else if (binding.type === 'variable' && typeof binding.variableName === 'string')
|
|
279
|
+
bindings[name] = aliases[binding.variableName] ?? `$inputs.${binding.variableName}`;
|
|
280
|
+
else if (binding.type === 'output' && typeof binding.nodeId === 'string' && typeof binding.outputName === 'string')
|
|
281
|
+
bindings[name] = `$steps.${binding.nodeId}.${binding.outputName}`;
|
|
282
|
+
else
|
|
283
|
+
throw new PackageLoadError(`Studio input ${name} uses an unsupported binding.`);
|
|
284
|
+
}
|
|
285
|
+
return { bindings, staticInputs };
|
|
286
|
+
}
|
|
287
|
+
function parseHeaders(value) {
|
|
288
|
+
const parsed = typeof value === 'string'
|
|
289
|
+
? (() => { try {
|
|
290
|
+
return JSON.parse(value);
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return undefined;
|
|
294
|
+
} })()
|
|
295
|
+
: value;
|
|
296
|
+
if (!isRecord(parsed))
|
|
297
|
+
return {};
|
|
298
|
+
return Object.fromEntries(Object.entries(parsed).map(([name, headerValue]) => [name, String(headerValue)]));
|
|
299
|
+
}
|
|
300
|
+
function parseQuery(value) {
|
|
301
|
+
const parsed = typeof value === 'string'
|
|
302
|
+
? (() => { try {
|
|
303
|
+
return JSON.parse(value);
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
return undefined;
|
|
307
|
+
} })()
|
|
308
|
+
: value;
|
|
309
|
+
if (!isRecord(parsed) || Array.isArray(parsed))
|
|
310
|
+
throw new PackageLoadError('Studio API query parameters must be a JSON object.');
|
|
311
|
+
return parsed;
|
|
312
|
+
}
|
|
313
|
+
function literalNumber(value) { return isRecord(value) && value.type === 'literal' && typeof value.value === 'number' && Number.isInteger(value.value) ? value.value : undefined; }
|
|
314
|
+
function literalBoolean(value) { return isRecord(value) && value.type === 'literal' && typeof value.value === 'boolean' ? value.value : undefined; }
|
|
315
|
+
function controlCondition(value, aliases) {
|
|
316
|
+
const literal = literalBoolean(value);
|
|
317
|
+
if (literal !== undefined)
|
|
318
|
+
return literal;
|
|
319
|
+
if (!isRecord(value))
|
|
320
|
+
return undefined;
|
|
321
|
+
if (typeof value.binding === 'string')
|
|
322
|
+
return { binding: value.binding };
|
|
323
|
+
if (value.type === 'variable' && typeof value.variableName === 'string')
|
|
324
|
+
return { binding: aliases[value.variableName] ?? `$inputs.${value.variableName}` };
|
|
325
|
+
if (value.type === 'output' && typeof value.nodeId === 'string' && typeof value.outputName === 'string')
|
|
326
|
+
return { binding: `$steps.${value.nodeId}.${value.outputName}` };
|
|
327
|
+
return undefined;
|
|
328
|
+
}
|
|
329
|
+
function literalSeconds(value) { return isRecord(value) && value.type === 'literal' && typeof value.value === 'number' && value.value >= 0 ? value.value * 1000 : undefined; }
|
|
330
|
+
function isRecord(value) { return typeof value === 'object' && value !== null; }
|
|
331
|
+
//# sourceMappingURL=studio-artifact-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"studio-artifact-loader.js","sourceRoot":"","sources":["../../../src/runner/studio-artifact-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/** Compatibility import for Runner modules. The canonical contract is the published @qaick/contract package. */
|
|
2
|
+
export * from '@qaick/contract';
|
|
3
|
+
/** The exact published contract package consumed by this Runner release. */
|
|
4
|
+
export declare const RUNNER_CONTRACT_VERSION: "0.2.10";
|
|
5
|
+
export type ExecutionControlState = 'idle' | 'running' | 'pause-requested' | 'paused' | 'resuming' | 'stopped' | 'failed' | 'completed';
|
|
6
|
+
export interface RunnerDebugSession {
|
|
7
|
+
breakpoints: string[];
|
|
8
|
+
stopAfterStepId?: string;
|
|
9
|
+
selectedStepId?: string;
|
|
10
|
+
}
|
|
11
|
+
export type ExecutionControlEventType = 'pause-requested' | 'breakpoint-reached' | 'paused' | 'resumed' | 'step-requested' | 'step-completed' | 'stop-after-reached' | 'interactive-retry-requested' | 'retry-attempt-started' | 'retry-attempt-completed';
|
|
12
|
+
declare module '@qaick/contract' {
|
|
13
|
+
interface ExecutionPackage {
|
|
14
|
+
artifactSchemaVersion?: number;
|
|
15
|
+
}
|
|
16
|
+
interface StepTransportTiming {
|
|
17
|
+
requestStartedAt: string;
|
|
18
|
+
responseReceivedAt: string;
|
|
19
|
+
durationMs: number;
|
|
20
|
+
}
|
|
21
|
+
interface StepResult {
|
|
22
|
+
transportTiming?: StepTransportTiming;
|
|
23
|
+
}
|
|
24
|
+
interface StepResult {
|
|
25
|
+
evidence?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
interface StepResult {
|
|
28
|
+
attempts?: Array<{
|
|
29
|
+
attempt: number;
|
|
30
|
+
kind: 'automatic' | 'interactive';
|
|
31
|
+
state: 'finished' | 'failed';
|
|
32
|
+
startedAt: string;
|
|
33
|
+
finishedAt: string;
|
|
34
|
+
inputs: Record<string, unknown>;
|
|
35
|
+
outputs: Record<string, unknown>;
|
|
36
|
+
durationMs: number;
|
|
37
|
+
children?: StepResult[];
|
|
38
|
+
error?: {
|
|
39
|
+
code: string;
|
|
40
|
+
message: string;
|
|
41
|
+
};
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
44
|
+
interface ExecutionResult {
|
|
45
|
+
artifactHash?: string;
|
|
46
|
+
}
|
|
47
|
+
interface ExecutionResult {
|
|
48
|
+
warnings?: Array<{
|
|
49
|
+
code: string;
|
|
50
|
+
message: string;
|
|
51
|
+
stepId?: string;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
interface ExecutionResult {
|
|
55
|
+
provenance?: {
|
|
56
|
+
kind: 'run-from-here';
|
|
57
|
+
sourceRequestId: string;
|
|
58
|
+
sourceArtifactHash?: string;
|
|
59
|
+
selectedStepId: string;
|
|
60
|
+
selectedInvocationPath?: string[];
|
|
61
|
+
omittedStepIds: string[];
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
interface ExecutionResult {
|
|
65
|
+
executionTiming?: {
|
|
66
|
+
wallDurationMs: number;
|
|
67
|
+
activeDurationMs: number;
|
|
68
|
+
pausedDurationMs: number;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
interface RunnerRequest {
|
|
72
|
+
debugSession?: RunnerDebugSession;
|
|
73
|
+
}
|
|
74
|
+
interface ExecutionEvent {
|
|
75
|
+
control?: {
|
|
76
|
+
type: ExecutionControlEventType;
|
|
77
|
+
stepId?: string;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/runner/types.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,cAAc,iBAAiB,CAAC;AAEhC,4EAA4E;AAC5E,eAAO,MAAM,uBAAuB,EAAG,QAAiB,CAAC;AAEzD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,SAAS,GAAG,iBAAiB,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AACxI,MAAM,WAAW,kBAAkB;IAAG,WAAW,EAAE,MAAM,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAAE;AACjH,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG,oBAAoB,GAAG,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,oBAAoB,GAAG,6BAA6B,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAE3P,OAAO,QAAQ,iBAAiB,CAAC;IAC/B,UAAU,gBAAgB;QAAG,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE;IAC7D,UAAU,mBAAmB;QAAG,gBAAgB,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAC1G,UAAU,UAAU;QAAG,eAAe,CAAC,EAAE,mBAAmB,CAAA;KAAE;IAC9D,UAAU,UAAU;QAAG,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;IAC3D,UAAU,UAAU;QAAG,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC;YAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAAC,UAAU,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;YAAC,KAAK,CAAC,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAAE;IACjU,UAAU,eAAe;QAAG,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE;IACnD,UAAU,eAAe;QAAG,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IAClG,UAAU,eAAe;QAAG,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,eAAe,CAAC;YAAC,eAAe,EAAE,MAAM,CAAC;YAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAC;YAAC,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;YAAC,cAAc,EAAE,MAAM,EAAE,CAAA;SAAE,CAAA;KAAE;IAC/M,UAAU,eAAe;QAAG,eAAe,CAAC,EAAE;YAAE,cAAc,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAC;YAAC,gBAAgB,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAC9H,UAAU,aAAa;QAAG,YAAY,CAAC,EAAE,kBAAkB,CAAA;KAAE;IAC7D,UAAU,cAAc;QAAG,OAAO,CAAC,EAAE;YAAE,IAAI,EAAE,yBAAyB,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;CAC5F"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** Compatibility import for Runner modules. The canonical contract is the published @qaick/contract package. */
|
|
2
|
+
export * from '@qaick/contract';
|
|
3
|
+
/** The exact published contract package consumed by this Runner release. */
|
|
4
|
+
export const RUNNER_CONTRACT_VERSION = '0.2.10';
|
|
5
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/runner/types.ts"],"names":[],"mappings":"AAAA,gHAAgH;AAChH,cAAc,iBAAiB,CAAC;AAEhC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAiB,CAAC"}
|