@promptbook/remote-server 0.92.0-20 β 0.92.0-22
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/esm/index.es.js +60 -45
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +4 -0
- package/esm/typings/src/_packages/types.index.d.ts +2 -0
- package/esm/typings/src/config.d.ts +8 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +8 -1
- package/esm/typings/src/formats/_common/FormatSubvalueParser.d.ts +11 -1
- package/esm/typings/src/formats/json/utils/jsonParse.d.ts +0 -3
- package/esm/typings/src/formfactors/completion/CompletionFormfactorDefinition.d.ts +29 -0
- package/esm/typings/src/formfactors/index.d.ts +28 -3
- package/esm/typings/src/high-level-abstractions/index.d.ts +2 -2
- package/esm/typings/src/migrations/migratePipeline.d.ts +2 -0
- package/package.json +2 -2
- package/umd/index.umd.js +60 -45
- package/umd/index.umd.js.map +1 -1
|
@@ -32,6 +32,7 @@ import { DEFAULT_IS_VERBOSE } from '../config';
|
|
|
32
32
|
import { SET_IS_VERBOSE } from '../config';
|
|
33
33
|
import { DEFAULT_IS_AUTO_INSTALLED } from '../config';
|
|
34
34
|
import { DEFAULT_GET_PIPELINE_COLLECTION_FUNCTION_NAME } from '../config';
|
|
35
|
+
import { DEFAULT_RPM } from '../config';
|
|
35
36
|
import { ORDER_OF_PIPELINE_JSON } from '../constants';
|
|
36
37
|
import { RESERVED_PARAMETER_NAMES } from '../constants';
|
|
37
38
|
import { compilePipeline } from '../conversion/compilePipeline';
|
|
@@ -81,6 +82,7 @@ import { MANDATORY_CSV_SETTINGS } from '../formats/csv/CsvSettings';
|
|
|
81
82
|
import { TextFormatParser } from '../formats/text/TextFormatParser';
|
|
82
83
|
import { BoilerplateFormfactorDefinition } from '../formfactors/_boilerplate/BoilerplateFormfactorDefinition';
|
|
83
84
|
import { ChatbotFormfactorDefinition } from '../formfactors/chatbot/ChatbotFormfactorDefinition';
|
|
85
|
+
import { CompletionFormfactorDefinition } from '../formfactors/completion/CompletionFormfactorDefinition';
|
|
84
86
|
import { GeneratorFormfactorDefinition } from '../formfactors/generator/GeneratorFormfactorDefinition';
|
|
85
87
|
import { GenericFormfactorDefinition } from '../formfactors/generic/GenericFormfactorDefinition';
|
|
86
88
|
import { ImageGeneratorFormfactorDefinition } from '../formfactors/image-generator/ImageGeneratorFormfactorDefinition';
|
|
@@ -175,6 +177,7 @@ export { DEFAULT_IS_VERBOSE };
|
|
|
175
177
|
export { SET_IS_VERBOSE };
|
|
176
178
|
export { DEFAULT_IS_AUTO_INSTALLED };
|
|
177
179
|
export { DEFAULT_GET_PIPELINE_COLLECTION_FUNCTION_NAME };
|
|
180
|
+
export { DEFAULT_RPM };
|
|
178
181
|
export { ORDER_OF_PIPELINE_JSON };
|
|
179
182
|
export { RESERVED_PARAMETER_NAMES };
|
|
180
183
|
export { compilePipeline };
|
|
@@ -224,6 +227,7 @@ export { MANDATORY_CSV_SETTINGS };
|
|
|
224
227
|
export { TextFormatParser };
|
|
225
228
|
export { BoilerplateFormfactorDefinition };
|
|
226
229
|
export { ChatbotFormfactorDefinition };
|
|
230
|
+
export { CompletionFormfactorDefinition };
|
|
227
231
|
export { GeneratorFormfactorDefinition };
|
|
228
232
|
export { GenericFormfactorDefinition };
|
|
229
233
|
export { ImageGeneratorFormfactorDefinition };
|
|
@@ -62,6 +62,7 @@ import type { UsageCounts } from '../execution/Usage';
|
|
|
62
62
|
import type { UserInterfaceTools } from '../execution/UserInterfaceTools';
|
|
63
63
|
import type { UserInterfaceToolsPromptDialogOptions } from '../execution/UserInterfaceTools';
|
|
64
64
|
import type { FormatSubvalueParser } from '../formats/_common/FormatSubvalueParser';
|
|
65
|
+
import type { FormatSubvalueParserMapValuesOptions } from '../formats/_common/FormatSubvalueParser';
|
|
65
66
|
import type { CsvSettings } from '../formats/csv/CsvSettings';
|
|
66
67
|
import type { AbstractFormfactorDefinition } from '../formfactors/_common/AbstractFormfactorDefinition';
|
|
67
68
|
import type { FormfactorDefinition } from '../formfactors/_common/FormfactorDefinition';
|
|
@@ -358,6 +359,7 @@ export type { UsageCounts };
|
|
|
358
359
|
export type { UserInterfaceTools };
|
|
359
360
|
export type { UserInterfaceToolsPromptDialogOptions };
|
|
360
361
|
export type { FormatSubvalueParser };
|
|
362
|
+
export type { FormatSubvalueParserMapValuesOptions };
|
|
361
363
|
export type { CsvSettings };
|
|
362
364
|
export type { AbstractFormfactorDefinition };
|
|
363
365
|
export type { FormfactorDefinition };
|
|
@@ -265,6 +265,14 @@ export declare const DEFAULT_IS_AUTO_INSTALLED = false;
|
|
|
265
265
|
* @public exported from `@promptbook/core`
|
|
266
266
|
*/
|
|
267
267
|
export declare const DEFAULT_GET_PIPELINE_COLLECTION_FUNCTION_NAME = "getPipelineCollection";
|
|
268
|
+
/**
|
|
269
|
+
* Default rate limits (requests per minute)
|
|
270
|
+
*
|
|
271
|
+
* Note: Adjust based on the provider tier you are have
|
|
272
|
+
*
|
|
273
|
+
* @public exported from `@promptbook/core`
|
|
274
|
+
*/
|
|
275
|
+
export declare const DEFAULT_RPM = 60;
|
|
268
276
|
/**
|
|
269
277
|
* @@@
|
|
270
278
|
*
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
+
import type { PartialDeep, Promisable } from 'type-fest';
|
|
1
2
|
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
3
|
+
import type { PipelineExecutorResult } from '../PipelineExecutorResult';
|
|
2
4
|
import type { ExecuteAttemptsOptions } from './40-executeAttempts';
|
|
3
5
|
/**
|
|
4
6
|
* @@@
|
|
5
7
|
*
|
|
6
8
|
* @private internal type of `executeFormatSubvalues`
|
|
7
9
|
*/
|
|
8
|
-
type ExecuteFormatCellsOptions = ExecuteAttemptsOptions
|
|
10
|
+
type ExecuteFormatCellsOptions = ExecuteAttemptsOptions & {
|
|
11
|
+
/**
|
|
12
|
+
* @@@
|
|
13
|
+
*/
|
|
14
|
+
readonly onProgress: (newOngoingResult: PartialDeep<PipelineExecutorResult>) => Promisable<void>;
|
|
15
|
+
};
|
|
9
16
|
/**
|
|
10
17
|
* @@@
|
|
11
18
|
*
|
|
@@ -24,7 +24,17 @@ export type FormatSubvalueParser<TValue extends string, TSettings extends empty_
|
|
|
24
24
|
* For example, if you have a JSON object and you want to map all values to uppercase
|
|
25
25
|
* Or iterate over all CSV cells @@@
|
|
26
26
|
*/
|
|
27
|
-
mapValues(
|
|
27
|
+
mapValues(options: FormatSubvalueParserMapValuesOptions<TValue, TSettings>): Promise<string>;
|
|
28
|
+
};
|
|
29
|
+
/**
|
|
30
|
+
* @@@
|
|
31
|
+
*/
|
|
32
|
+
export type FormatSubvalueParserMapValuesOptions<TValue extends string, TSettings extends empty_object> = {
|
|
33
|
+
readonly value: TValue;
|
|
34
|
+
readonly outputParameterName: string_parameter_name;
|
|
35
|
+
readonly settings: TSettings;
|
|
36
|
+
mapCallback: (subvalues: Parameters, index: number) => Promisable<TValue>;
|
|
37
|
+
onProgress(partialResultString: TValue): Promisable<void>;
|
|
28
38
|
};
|
|
29
39
|
/**
|
|
30
40
|
* Note: [π©πΎβπ€βπ§π½]
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Completion is formfactor that emulates completion models
|
|
3
|
+
*
|
|
4
|
+
* @public exported from `@promptbook/core`
|
|
5
|
+
*/
|
|
6
|
+
export declare const CompletionFormfactorDefinition: {
|
|
7
|
+
readonly name: "COMPLETION";
|
|
8
|
+
readonly description: "@@@";
|
|
9
|
+
readonly documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
|
|
10
|
+
readonly pipelineInterface: {
|
|
11
|
+
readonly inputParameters: readonly [{
|
|
12
|
+
readonly name: "inputText";
|
|
13
|
+
readonly description: "Input text to be completed";
|
|
14
|
+
readonly isInput: true;
|
|
15
|
+
readonly isOutput: false;
|
|
16
|
+
}, {
|
|
17
|
+
readonly name: "instructions";
|
|
18
|
+
readonly description: "Additional instructions for the model, for example the required length, empty by default";
|
|
19
|
+
readonly isInput: true;
|
|
20
|
+
readonly isOutput: false;
|
|
21
|
+
}];
|
|
22
|
+
readonly outputParameters: readonly [{
|
|
23
|
+
readonly name: "followingText";
|
|
24
|
+
readonly description: "Text that follows the input text";
|
|
25
|
+
readonly isInput: false;
|
|
26
|
+
readonly isOutput: true;
|
|
27
|
+
}];
|
|
28
|
+
};
|
|
29
|
+
};
|
|
@@ -36,9 +36,6 @@ export declare const FORMFACTOR_DEFINITIONS: readonly [{
|
|
|
36
36
|
readonly outputParameters: readonly [{
|
|
37
37
|
readonly name: "title";
|
|
38
38
|
readonly description: "Title of the conversation";
|
|
39
|
-
/**
|
|
40
|
-
* Note: [π] Ignore a discrepancy between file name and entity name
|
|
41
|
-
*/
|
|
42
39
|
readonly isInput: false;
|
|
43
40
|
readonly isOutput: true;
|
|
44
41
|
}, {
|
|
@@ -132,6 +129,11 @@ export declare const FORMFACTOR_DEFINITIONS: readonly [{
|
|
|
132
129
|
readonly isInput: true;
|
|
133
130
|
readonly isOutput: false;
|
|
134
131
|
}];
|
|
132
|
+
/**
|
|
133
|
+
* All available formfactor definitions
|
|
134
|
+
*
|
|
135
|
+
* @public exported from `@promptbook/core`
|
|
136
|
+
*/
|
|
135
137
|
readonly outputParameters: readonly [{
|
|
136
138
|
readonly name: "prompt";
|
|
137
139
|
readonly description: "Prompt to be used for image generation";
|
|
@@ -139,6 +141,29 @@ export declare const FORMFACTOR_DEFINITIONS: readonly [{
|
|
|
139
141
|
readonly isOutput: true;
|
|
140
142
|
}];
|
|
141
143
|
};
|
|
144
|
+
}, {
|
|
145
|
+
readonly name: "COMPLETION";
|
|
146
|
+
readonly description: "@@@";
|
|
147
|
+
readonly documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
|
|
148
|
+
readonly pipelineInterface: {
|
|
149
|
+
readonly inputParameters: readonly [{
|
|
150
|
+
readonly name: "inputText";
|
|
151
|
+
readonly description: "Input text to be completed";
|
|
152
|
+
readonly isInput: true;
|
|
153
|
+
readonly isOutput: false;
|
|
154
|
+
}, {
|
|
155
|
+
readonly name: "instructions";
|
|
156
|
+
readonly description: "Additional instructions for the model, for example the required length, empty by default";
|
|
157
|
+
readonly isInput: true;
|
|
158
|
+
readonly isOutput: false;
|
|
159
|
+
}];
|
|
160
|
+
readonly outputParameters: readonly [{
|
|
161
|
+
readonly name: "followingText";
|
|
162
|
+
readonly description: "Text that follows the input text";
|
|
163
|
+
readonly isInput: false;
|
|
164
|
+
readonly isOutput: true;
|
|
165
|
+
}];
|
|
166
|
+
};
|
|
142
167
|
}];
|
|
143
168
|
/**
|
|
144
169
|
* Note: [π] Ignore a discrepancy between file name and entity name
|
|
@@ -23,7 +23,7 @@ export declare const HIGH_LEVEL_ABSTRACTIONS: readonly [{
|
|
|
23
23
|
path: string | null;
|
|
24
24
|
content: import("../pipeline/PipelineString").PipelineString;
|
|
25
25
|
}[];
|
|
26
|
-
readonly formfactorName?: "CHATBOT" | "GENERATOR" | "GENERIC" | "IMAGE_GENERATOR" | "EXPERIMENTAL_MATCHER" | "SHEETS" | "TRANSLATOR" | undefined;
|
|
26
|
+
readonly formfactorName?: "CHATBOT" | "COMPLETION" | "GENERATOR" | "GENERIC" | "IMAGE_GENERATOR" | "EXPERIMENTAL_MATCHER" | "SHEETS" | "TRANSLATOR" | undefined;
|
|
27
27
|
}>): void;
|
|
28
28
|
}, {
|
|
29
29
|
type: "SYNC";
|
|
@@ -45,7 +45,7 @@ export declare const HIGH_LEVEL_ABSTRACTIONS: readonly [{
|
|
|
45
45
|
path: string | null;
|
|
46
46
|
content: import("../pipeline/PipelineString").PipelineString;
|
|
47
47
|
}[];
|
|
48
|
-
readonly formfactorName?: "CHATBOT" | "GENERATOR" | "GENERIC" | "IMAGE_GENERATOR" | "EXPERIMENTAL_MATCHER" | "SHEETS" | "TRANSLATOR" | undefined;
|
|
48
|
+
readonly formfactorName?: "CHATBOT" | "COMPLETION" | "GENERATOR" | "GENERIC" | "IMAGE_GENERATOR" | "EXPERIMENTAL_MATCHER" | "SHEETS" | "TRANSLATOR" | undefined;
|
|
49
49
|
}>): void;
|
|
50
50
|
}];
|
|
51
51
|
/**
|
|
@@ -2,6 +2,8 @@ import type { PipelineJson } from '../pipeline/PipelineJson/PipelineJson';
|
|
|
2
2
|
/**
|
|
3
3
|
* Migrates the pipeline to the latest version
|
|
4
4
|
*
|
|
5
|
+
* Note: Migration does not do heavy lifting like calling the LLMs, just lightweight changes of the structure
|
|
6
|
+
*
|
|
5
7
|
* @public exported from `@promptbook/core`
|
|
6
8
|
*/
|
|
7
9
|
export declare function migratePipeline(deprecatedPipeline: PipelineJson): PipelineJson;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/remote-server",
|
|
3
|
-
"version": "0.92.0-
|
|
3
|
+
"version": "0.92.0-22",
|
|
4
4
|
"description": "It's time for a paradigm shift. The future of software in plain English, French or Latin",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"module": "./esm/index.es.js",
|
|
52
52
|
"typings": "./esm/typings/src/_packages/remote-server.index.d.ts",
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@promptbook/core": "0.92.0-
|
|
54
|
+
"@promptbook/core": "0.92.0-22"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"colors": "1.4.0",
|
package/umd/index.umd.js
CHANGED
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
* @generated
|
|
49
49
|
* @see https://github.com/webgptorg/promptbook
|
|
50
50
|
*/
|
|
51
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-
|
|
51
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-22';
|
|
52
52
|
/**
|
|
53
53
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
54
54
|
* Note: [π] Ignore a discrepancy between file name and entity name
|
|
@@ -1883,15 +1883,12 @@
|
|
|
1883
1883
|
}
|
|
1884
1884
|
throw new Error(spaceTrim__default["default"]((block) => `
|
|
1885
1885
|
${block(error.message)}
|
|
1886
|
-
|
|
1886
|
+
|
|
1887
1887
|
The JSON text:
|
|
1888
1888
|
${block(value)}
|
|
1889
1889
|
`));
|
|
1890
1890
|
}
|
|
1891
1891
|
}
|
|
1892
|
-
/**
|
|
1893
|
-
* TODO: !!!! Use in Promptbook.studio
|
|
1894
|
-
*/
|
|
1895
1892
|
|
|
1896
1893
|
/**
|
|
1897
1894
|
* Recursively converts JSON strings to JSON objects
|
|
@@ -4487,7 +4484,8 @@
|
|
|
4487
4484
|
subvalueParsers: [
|
|
4488
4485
|
{
|
|
4489
4486
|
subvalueName: 'ROW',
|
|
4490
|
-
async mapValues(
|
|
4487
|
+
async mapValues(options) {
|
|
4488
|
+
const { value, outputParameterName, settings, mapCallback, onProgress } = options;
|
|
4491
4489
|
const csv = csvParse(value, settings);
|
|
4492
4490
|
if (csv.errors.length !== 0) {
|
|
4493
4491
|
throw new CsvFormatError(spaceTrim__default["default"]((block) => `
|
|
@@ -4503,21 +4501,29 @@
|
|
|
4503
4501
|
${block(value)}
|
|
4504
4502
|
`));
|
|
4505
4503
|
}
|
|
4506
|
-
const mappedData =
|
|
4504
|
+
const mappedData = [];
|
|
4505
|
+
for (let index = 0; index < csv.data.length; index++) {
|
|
4506
|
+
const row = csv.data[index];
|
|
4507
4507
|
if (row[outputParameterName]) {
|
|
4508
4508
|
throw new CsvFormatError(`Can not overwrite existing column "${outputParameterName}" in CSV row`);
|
|
4509
4509
|
}
|
|
4510
|
-
|
|
4510
|
+
const mappedRow = {
|
|
4511
4511
|
...row,
|
|
4512
4512
|
[outputParameterName]: await mapCallback(row, index),
|
|
4513
4513
|
};
|
|
4514
|
-
|
|
4514
|
+
mappedData.push(mappedRow);
|
|
4515
|
+
if (onProgress) {
|
|
4516
|
+
// Note: Report the CSV with all rows mapped so far
|
|
4517
|
+
await onProgress(papaparse.unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS }));
|
|
4518
|
+
}
|
|
4519
|
+
}
|
|
4515
4520
|
return papaparse.unparse(mappedData, { ...settings, ...MANDATORY_CSV_SETTINGS });
|
|
4516
4521
|
},
|
|
4517
4522
|
},
|
|
4518
4523
|
{
|
|
4519
4524
|
subvalueName: 'CELL',
|
|
4520
|
-
async mapValues(
|
|
4525
|
+
async mapValues(options) {
|
|
4526
|
+
const { value, settings, mapCallback, onProgress } = options;
|
|
4521
4527
|
const csv = csvParse(value, settings);
|
|
4522
4528
|
if (csv.errors.length !== 0) {
|
|
4523
4529
|
throw new CsvFormatError(spaceTrim__default["default"]((block) => `
|
|
@@ -4604,7 +4610,8 @@
|
|
|
4604
4610
|
subvalueParsers: [
|
|
4605
4611
|
{
|
|
4606
4612
|
subvalueName: 'LINE',
|
|
4607
|
-
async mapValues(
|
|
4613
|
+
async mapValues(options) {
|
|
4614
|
+
const { value, mapCallback, onProgress } = options;
|
|
4608
4615
|
const lines = value.split('\n');
|
|
4609
4616
|
const mappedLines = await Promise.all(lines.map((lineContent, lineNumber) =>
|
|
4610
4617
|
// TODO: [π§ ] Maybe option to skip empty line
|
|
@@ -5442,7 +5449,7 @@
|
|
|
5442
5449
|
* @private internal utility of `createPipelineExecutor`
|
|
5443
5450
|
*/
|
|
5444
5451
|
async function executeFormatSubvalues(options) {
|
|
5445
|
-
const { task, jokerParameterNames, parameters, priority, csvSettings, pipelineIdentification } = options;
|
|
5452
|
+
const { task, jokerParameterNames, parameters, priority, csvSettings, onProgress, pipelineIdentification } = options;
|
|
5446
5453
|
if (task.foreach === undefined) {
|
|
5447
5454
|
return /* not await */ executeAttempts(options);
|
|
5448
5455
|
}
|
|
@@ -5496,21 +5503,32 @@
|
|
|
5496
5503
|
formatSettings = csvSettings;
|
|
5497
5504
|
// <- TODO: [π€ΉββοΈ] More universal, make simmilar pattern for other formats for example \n vs \r\n in text
|
|
5498
5505
|
}
|
|
5499
|
-
const resultString = await subvalueParser.mapValues(
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
|
|
5510
|
-
|
|
5511
|
-
|
|
5506
|
+
const resultString = await subvalueParser.mapValues({
|
|
5507
|
+
value: parameterValue,
|
|
5508
|
+
outputParameterName: task.foreach.outputSubparameterName,
|
|
5509
|
+
settings: formatSettings,
|
|
5510
|
+
onProgress(partialResultString) {
|
|
5511
|
+
return onProgress(Object.freeze({
|
|
5512
|
+
[task.resultingParameterName]:
|
|
5513
|
+
// <- Note: [π©βπ©βπ§] No need to detect parameter collision here because pipeline checks logic consistency during construction
|
|
5514
|
+
partialResultString,
|
|
5515
|
+
}));
|
|
5516
|
+
},
|
|
5517
|
+
async mapCallback(subparameters, index) {
|
|
5518
|
+
let mappedParameters;
|
|
5519
|
+
// TODO: [π€ΉββοΈ][πͺ] Limit to N concurrent executions
|
|
5520
|
+
// TODO: When done [π] Report progress also for each subvalue here
|
|
5521
|
+
try {
|
|
5522
|
+
mappedParameters = mapAvailableToExpectedParameters({
|
|
5523
|
+
expectedParameters: Object.fromEntries(task.foreach.inputSubparameterNames.map((subparameterName) => [subparameterName, null])),
|
|
5524
|
+
availableParameters: subparameters,
|
|
5525
|
+
});
|
|
5512
5526
|
}
|
|
5513
|
-
|
|
5527
|
+
catch (error) {
|
|
5528
|
+
if (!(error instanceof PipelineExecutionError)) {
|
|
5529
|
+
throw error;
|
|
5530
|
+
}
|
|
5531
|
+
throw new PipelineExecutionError(spaceTrim__default["default"]((block) => `
|
|
5514
5532
|
${error.message}
|
|
5515
5533
|
|
|
5516
5534
|
This is error in FOREACH command
|
|
@@ -5519,23 +5537,24 @@
|
|
|
5519
5537
|
${block(pipelineIdentification)}
|
|
5520
5538
|
Subparameter index: ${index}
|
|
5521
5539
|
`));
|
|
5522
|
-
|
|
5523
|
-
|
|
5524
|
-
|
|
5525
|
-
|
|
5526
|
-
|
|
5527
|
-
|
|
5528
|
-
|
|
5529
|
-
|
|
5530
|
-
|
|
5531
|
-
|
|
5532
|
-
|
|
5533
|
-
|
|
5540
|
+
}
|
|
5541
|
+
const allSubparameters = {
|
|
5542
|
+
...parameters,
|
|
5543
|
+
...mappedParameters,
|
|
5544
|
+
};
|
|
5545
|
+
// Note: [π¨βπ¨βπ§] Now we can freeze `subparameters` because we are sure that all and only used parameters are defined and are not going to be changed
|
|
5546
|
+
Object.freeze(allSubparameters);
|
|
5547
|
+
const subresultString = await executeAttempts({
|
|
5548
|
+
...options,
|
|
5549
|
+
priority: priority + index,
|
|
5550
|
+
parameters: allSubparameters,
|
|
5551
|
+
pipelineIdentification: spaceTrim__default["default"]((block) => `
|
|
5534
5552
|
${block(pipelineIdentification)}
|
|
5535
5553
|
Subparameter index: ${index}
|
|
5536
5554
|
`),
|
|
5537
|
-
|
|
5538
|
-
|
|
5555
|
+
});
|
|
5556
|
+
return subresultString;
|
|
5557
|
+
},
|
|
5539
5558
|
});
|
|
5540
5559
|
return resultString;
|
|
5541
5560
|
}
|
|
@@ -5709,11 +5728,6 @@
|
|
|
5709
5728
|
async function executeTask(options) {
|
|
5710
5729
|
const { currentTask, preparedPipeline, parametersToPass, tools, onProgress, $executionReport, pipelineIdentification, maxExecutionAttempts, maxParallelCount, csvSettings, isVerbose, rootDirname, cacheDirname, intermediateFilesStrategy, isAutoInstalled, isNotPreparedWarningSupressed, } = options;
|
|
5711
5730
|
const priority = preparedPipeline.tasks.length - preparedPipeline.tasks.indexOf(currentTask);
|
|
5712
|
-
await onProgress({
|
|
5713
|
-
outputParameters: {
|
|
5714
|
-
[currentTask.resultingParameterName]: '', // <- TODO: [π§ ] What is the best value here?
|
|
5715
|
-
},
|
|
5716
|
-
});
|
|
5717
5731
|
// Note: Check consistency of used and dependent parameters which was also done in `validatePipeline`, but itβs good to doublecheck
|
|
5718
5732
|
const usedParameterNames = extractParameterNamesFromTask(currentTask);
|
|
5719
5733
|
const dependentParameterNames = new Set(currentTask.dependentParameterNames);
|
|
@@ -5788,6 +5802,7 @@
|
|
|
5788
5802
|
preparedPipeline,
|
|
5789
5803
|
tools,
|
|
5790
5804
|
$executionReport,
|
|
5805
|
+
onProgress,
|
|
5791
5806
|
pipelineIdentification,
|
|
5792
5807
|
maxExecutionAttempts,
|
|
5793
5808
|
maxParallelCount,
|