@promptbook/core 0.61.0-20 → 0.61.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 +101 -41
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
- package/esm/typings/src/execution/createPipelineExecutor.d.ts +1 -0
- package/package.json +1 -1
- package/umd/index.umd.js +101 -41
- package/umd/index.umd.js.map +1 -1
- package/umd/typings/src/execution/PipelineExecutor.d.ts +1 -0
- package/umd/typings/src/execution/createPipelineExecutor.d.ts +1 -0
|
@@ -55,4 +55,5 @@ export {};
|
|
|
55
55
|
* Note: CreatePipelineExecutorOptions are just connected to PipelineExecutor so do not extract to types folder
|
|
56
56
|
* TODO: [🧠][3] transparent = (report intermediate parameters) / opaque execution = (report only output parameters) progress reporting mode
|
|
57
57
|
* TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
|
|
58
|
+
* TODO: [💷] !!!! `assertsExecutionSuccessful` should be the method of `PipelineExecutor` result
|
|
58
59
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -855,7 +855,9 @@
|
|
|
855
855
|
return template.dependentParameterNames.every(function (name) { return resovedParameters.includes(name); });
|
|
856
856
|
});
|
|
857
857
|
if (currentlyResovedTemplates.length === 0) {
|
|
858
|
-
throw new PipelineLogicError(
|
|
858
|
+
throw new PipelineLogicError(
|
|
859
|
+
// TODO: [🐎] DRY
|
|
860
|
+
spaceTrim.spaceTrim(function (block) { return "\n\n Can not resolve some parameters:\n Either you are using a parameter that is not defined, or there are some circular dependencies.\n\n Can not resolve:\n ".concat(block(unresovedTemplates
|
|
859
861
|
.map(function (_a) {
|
|
860
862
|
var resultingParameterName = _a.resultingParameterName, dependentParameterNames = _a.dependentParameterNames;
|
|
861
863
|
return "- Parameter {".concat(resultingParameterName, "} which depends on ").concat(dependentParameterNames
|
|
@@ -1452,7 +1454,7 @@
|
|
|
1452
1454
|
});
|
|
1453
1455
|
}
|
|
1454
1456
|
|
|
1455
|
-
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.61.0-
|
|
1457
|
+
var PipelineCollection = [{title:"Prepare Knowledge from Markdown",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-from-markdown.ptbk.md",promptbookVersion:"0.61.0-21",parameters:[{name:"content",description:"Markdown document content",isInput:true,isOutput:false},{name:"knowledge",description:"The knowledge JSON object",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced data researcher, extract the important knowledge from the document.\n\n# Rules\n\n- Make pieces of information concise, clear, and easy to understand\n- One piece of information should be approximately 1 paragraph\n- Divide the paragraphs by markdown horizontal lines ---\n- Omit irrelevant information\n- Group redundant information\n- Write just extracted information, nothing else\n\n# The document\n\nTake information from this document:\n\n> {content}",dependentParameterNames:["content"],resultingParameterName:"knowledge"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-21",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-knowledge-from-markdown.ptbk.md"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-keywords.ptbk.md",promptbookVersion:"0.61.0-21",parameters:[{name:"content",description:"The content",isInput:true,isOutput:false},{name:"keywords",description:"Keywords separated by comma",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced data researcher, detect the important keywords in the document.\n\n# Rules\n\n- Write just keywords separated by comma\n\n# The document\n\nTake information from this document:\n\n> {content}",dependentParameterNames:["content"],resultingParameterName:"keywords"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-21",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-knowledge-keywords.ptbk.md"},{title:"Prepare Title",pipelineUrl:"https://promptbook.studio/promptbook/prepare-knowledge-title.ptbk.md",promptbookVersion:"0.61.0-21",parameters:[{name:"content",description:"The content",isInput:true,isOutput:false},{name:"title",description:"The title of the document",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"knowledge",title:"Knowledge",modelRequirements:{modelVariant:"CHAT",modelName:"claude-3-opus-20240229"},content:"You are experienced content creator, write best title for the document.\n\n# Rules\n\n- Write just title, nothing else\n- Title should be concise and clear\n- Write maximum 5 words for the title\n\n# The document\n\n> {content}",expectations:{words:{min:1,max:8}},dependentParameterNames:["content"],resultingParameterName:"title"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-21",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-knowledge-title.ptbk.md"},{title:"Prepare Keywords",pipelineUrl:"https://promptbook.studio/promptbook/prepare-persona.ptbk.md",promptbookVersion:"0.61.0-21",parameters:[{name:"availableModelNames",description:"List of available model names separated by comma (,)",isInput:true,isOutput:false},{name:"personaDescription",description:"Description of the persona",isInput:true,isOutput:false},{name:"modelRequirements",description:"Specific requirements for the model",isInput:false,isOutput:true}],promptTemplates:[{blockType:"PROMPT_TEMPLATE",name:"make-model-requirements",title:"Make modelRequirements",modelRequirements:{modelVariant:"CHAT",modelName:"gpt-4-turbo"},content:"You are experienced AI engineer, you need to create virtual assistant.\nWrite\n\n## Sample\n\n```json\n{\n\"modelName\": \"gpt-4o\",\n\"systemMessage\": \"You are experienced AI engineer and helpfull assistant.\",\n\"temperature\": 0.7\n}\n```\n\n## Instructions\n\n### Option `modelName`\n\nPick from the following models:\n\n- {availableModelNames}\n\n### Option `systemMessage`\n\nThe system message is used to communicate instructions or provide context to the model at the beginning of a conversation. It is displayed in a different format compared to user messages, helping the model understand its role in the conversation. The system message typically guides the model's behavior, sets the tone, or specifies desired output from the model. By utilizing the system message effectively, users can steer the model towards generating more accurate and relevant responses.\n\nFor example:\n\n> You are an experienced AI engineer and helpful assistant.\n\n> You are a friendly and knowledgeable chatbot.\n\n### Option `temperature`\n\nThe sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use log probability to automatically increase the temperature until certain thresholds are hit.\n\nYou can pick a value between 0 and 2. For example:\n\n- `0.1`: Low temperature, extremely conservative and deterministic\n- `0.5`: Medium temperature, balanced between conservative and creative\n- `1.0`: High temperature, creative and bit random\n- `1.5`: Very high temperature, extremely creative and often chaotic and unpredictable\n- `2.0`: Maximum temperature, completely random and unpredictable, for some extreme creative use cases\n\n# The assistant\n\nTake this description of the persona:\n\n> {personaDescription}",expectFormat:"JSON",dependentParameterNames:["availableModelNames","personaDescription"],resultingParameterName:"modelRequirements"}],knowledgeSources:[],knowledgePieces:[],personas:[],preparations:[{id:1,promptbookVersion:"0.61.0-21",modelUsage:{price:{value:0},input:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}},output:{tokensCount:{value:0},charactersCount:{value:0},wordsCount:{value:0},sentencesCount:{value:0},linesCount:{value:0},paragraphsCount:{value:0},pagesCount:{value:0}}}}],sourceFile:"./promptbook-collection/prepare-persona.ptbk.md"}];
|
|
1456
1458
|
|
|
1457
1459
|
var defaultDiacriticsRemovalMap = [
|
|
1458
1460
|
{
|
|
@@ -1825,7 +1827,11 @@
|
|
|
1825
1827
|
throw errors[0];
|
|
1826
1828
|
}
|
|
1827
1829
|
else {
|
|
1828
|
-
throw new PipelineExecutionError(spaceTrim.spaceTrim(function (block) { return "\n Multiple errors occurred during promptnook execution\n\n ".concat(block(errors
|
|
1830
|
+
throw new PipelineExecutionError(spaceTrim.spaceTrim(function (block) { return "\n Multiple errors occurred during promptnook execution\n\n ".concat(block(errors
|
|
1831
|
+
.map(function (error, index) {
|
|
1832
|
+
return spaceTrim.spaceTrim(function (block) { return "\n Error ".concat(index + 1, ":\n ").concat(block(error.stack || error.message), "\n "); });
|
|
1833
|
+
})
|
|
1834
|
+
.join('\n')), "\n "); }));
|
|
1829
1835
|
}
|
|
1830
1836
|
}
|
|
1831
1837
|
/**
|
|
@@ -2446,7 +2452,7 @@
|
|
|
2446
2452
|
/**
|
|
2447
2453
|
* The version of the Promptbook library
|
|
2448
2454
|
*/
|
|
2449
|
-
var PROMPTBOOK_VERSION = '0.61.0-
|
|
2455
|
+
var PROMPTBOOK_VERSION = '0.61.0-21';
|
|
2450
2456
|
// TODO: !!!! List here all the versions and annotate + put into script
|
|
2451
2457
|
|
|
2452
2458
|
/**
|
|
@@ -3100,7 +3106,34 @@
|
|
|
3100
3106
|
});
|
|
3101
3107
|
});
|
|
3102
3108
|
}
|
|
3103
|
-
|
|
3109
|
+
function filterJustOutputParameters() {
|
|
3110
|
+
var e_9, _a;
|
|
3111
|
+
var outputParameters = {};
|
|
3112
|
+
try {
|
|
3113
|
+
// Note: Filter ONLY output parameters
|
|
3114
|
+
for (var _b = __values(pipeline.parameters.filter(function (_a) {
|
|
3115
|
+
var isOutput = _a.isOutput;
|
|
3116
|
+
return isOutput;
|
|
3117
|
+
})), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
3118
|
+
var parameter = _c.value;
|
|
3119
|
+
if (parametersToPass[parameter.name] === undefined) {
|
|
3120
|
+
// [4]
|
|
3121
|
+
errors.push(new PipelineExecutionError("Parameter {".concat(parameter.name, "} should be an output parameter, but it was not be resolved")));
|
|
3122
|
+
continue;
|
|
3123
|
+
}
|
|
3124
|
+
outputParameters[parameter.name] = parametersToPass[parameter.name] || '';
|
|
3125
|
+
}
|
|
3126
|
+
}
|
|
3127
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
3128
|
+
finally {
|
|
3129
|
+
try {
|
|
3130
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
3131
|
+
}
|
|
3132
|
+
finally { if (e_9) throw e_9.error; }
|
|
3133
|
+
}
|
|
3134
|
+
return outputParameters;
|
|
3135
|
+
}
|
|
3136
|
+
var executionReport, _a, _b, parameter, errors, _loop_1, _c, _d, parameterName, state_1, parametersToPass, resovedParameterNames_1, unresovedTemplates_1, resolving_1, loopLimit, _loop_2, error_1, usage_1, outputParameters_1, usage, outputParameters;
|
|
3104
3137
|
var e_1, _e, e_2, _f;
|
|
3105
3138
|
return __generator(this, function (_g) {
|
|
3106
3139
|
switch (_g.label) {
|
|
@@ -3125,9 +3158,12 @@
|
|
|
3125
3158
|
};
|
|
3126
3159
|
try {
|
|
3127
3160
|
// Note: Check that all input input parameters are defined
|
|
3128
|
-
for (_a = __values(pipeline.parameters
|
|
3161
|
+
for (_a = __values(pipeline.parameters.filter(function (_a) {
|
|
3162
|
+
var isInput = _a.isInput;
|
|
3163
|
+
return isInput;
|
|
3164
|
+
})), _b = _a.next(); !_b.done; _b = _a.next()) {
|
|
3129
3165
|
parameter = _b.value;
|
|
3130
|
-
if (
|
|
3166
|
+
if (inputParameters[parameter.name] === undefined) {
|
|
3131
3167
|
return [2 /*return*/, deepFreezeWithSameType({
|
|
3132
3168
|
isSuccessful: false,
|
|
3133
3169
|
errors: [
|
|
@@ -3148,11 +3184,49 @@
|
|
|
3148
3184
|
}
|
|
3149
3185
|
finally { if (e_1) throw e_1.error; }
|
|
3150
3186
|
}
|
|
3187
|
+
errors = [];
|
|
3188
|
+
_loop_1 = function (parameterName) {
|
|
3189
|
+
var parameter = pipeline.parameters.find(function (_a) {
|
|
3190
|
+
var name = _a.name;
|
|
3191
|
+
return name === parameterName;
|
|
3192
|
+
});
|
|
3193
|
+
if (parameter === undefined) {
|
|
3194
|
+
errors.push(new PipelineExecutionError("Extra parameter {".concat(parameterName, "} is passed as input parameter")));
|
|
3195
|
+
}
|
|
3196
|
+
else if (parameter.isInput === false) {
|
|
3197
|
+
return { value: deepFreezeWithSameType({
|
|
3198
|
+
isSuccessful: false,
|
|
3199
|
+
errors: [
|
|
3200
|
+
new PipelineExecutionError("Parameter {".concat(parameter.name, "} is passed as input parameter but is not input")),
|
|
3201
|
+
// <- TODO: !!!!! Test this error
|
|
3202
|
+
],
|
|
3203
|
+
executionReport: executionReport,
|
|
3204
|
+
outputParameters: {},
|
|
3205
|
+
usage: ZERO_USAGE,
|
|
3206
|
+
}) };
|
|
3207
|
+
}
|
|
3208
|
+
};
|
|
3209
|
+
try {
|
|
3210
|
+
// Note: Check that no extra input parameters are passed
|
|
3211
|
+
for (_c = __values(Object.keys(inputParameters)), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
3212
|
+
parameterName = _d.value;
|
|
3213
|
+
state_1 = _loop_1(parameterName);
|
|
3214
|
+
if (typeof state_1 === "object")
|
|
3215
|
+
return [2 /*return*/, state_1.value];
|
|
3216
|
+
}
|
|
3217
|
+
}
|
|
3218
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
3219
|
+
finally {
|
|
3220
|
+
try {
|
|
3221
|
+
if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
|
|
3222
|
+
}
|
|
3223
|
+
finally { if (e_2) throw e_2.error; }
|
|
3224
|
+
}
|
|
3151
3225
|
parametersToPass = inputParameters;
|
|
3152
3226
|
_g.label = 3;
|
|
3153
3227
|
case 3:
|
|
3154
3228
|
_g.trys.push([3, 8, , 9]);
|
|
3155
|
-
|
|
3229
|
+
resovedParameterNames_1 = pipeline.parameters
|
|
3156
3230
|
.filter(function (_a) {
|
|
3157
3231
|
var isInput = _a.isInput;
|
|
3158
3232
|
return isInput;
|
|
@@ -3164,7 +3238,7 @@
|
|
|
3164
3238
|
unresovedTemplates_1 = __spreadArray([], __read(pipeline.promptTemplates), false);
|
|
3165
3239
|
resolving_1 = [];
|
|
3166
3240
|
loopLimit = LOOP_LIMIT;
|
|
3167
|
-
|
|
3241
|
+
_loop_2 = function () {
|
|
3168
3242
|
var currentTemplate, work_1;
|
|
3169
3243
|
return __generator(this, function (_h) {
|
|
3170
3244
|
switch (_h.label) {
|
|
@@ -3174,15 +3248,21 @@
|
|
|
3174
3248
|
throw new UnexpectedError('Loop limit reached during resolving parameters pipeline execution');
|
|
3175
3249
|
}
|
|
3176
3250
|
currentTemplate = unresovedTemplates_1.find(function (template) {
|
|
3177
|
-
return template.dependentParameterNames.every(function (name) {
|
|
3251
|
+
return template.dependentParameterNames.every(function (name) {
|
|
3252
|
+
return __spreadArray(__spreadArray([], __read(resovedParameterNames_1), false), __read(RESERVED_PARAMETER_NAMES), false).includes(name);
|
|
3253
|
+
});
|
|
3178
3254
|
});
|
|
3179
3255
|
if (!(!currentTemplate && resolving_1.length === 0)) return [3 /*break*/, 1];
|
|
3180
|
-
throw new UnexpectedError(
|
|
3256
|
+
throw new UnexpectedError(
|
|
3257
|
+
// TODO: [🐎] DRY
|
|
3258
|
+
spaceTrim.spaceTrim(function (block) { return "\n Can not resolve some parameters:\n\n Can not resolve:\n ".concat(block(unresovedTemplates_1
|
|
3181
3259
|
.map(function (_a) {
|
|
3182
|
-
var resultingParameterName = _a.resultingParameterName;
|
|
3183
|
-
return "- {".concat(resultingParameterName, "}")
|
|
3260
|
+
var resultingParameterName = _a.resultingParameterName, dependentParameterNames = _a.dependentParameterNames;
|
|
3261
|
+
return "- Parameter {".concat(resultingParameterName, "} which depends on ").concat(dependentParameterNames
|
|
3262
|
+
.map(function (dependentParameterName) { return "{".concat(dependentParameterName, "}"); })
|
|
3263
|
+
.join(' and '));
|
|
3184
3264
|
})
|
|
3185
|
-
.join('\n')), "\n\n Resolved
|
|
3265
|
+
.join('\n')), "\n\n Resolved:\n ").concat(block(resovedParameterNames_1.map(function (name) { return "- Parameter {".concat(name, "}"); }).join('\n')), "\n\n Note: This should be catched in `validatePipeline`\n "); }));
|
|
3186
3266
|
case 1:
|
|
3187
3267
|
if (!!currentTemplate) return [3 /*break*/, 3];
|
|
3188
3268
|
/* [5] */ return [4 /*yield*/, Promise.race(resolving_1)];
|
|
@@ -3193,7 +3273,7 @@
|
|
|
3193
3273
|
unresovedTemplates_1 = unresovedTemplates_1.filter(function (template) { return template !== currentTemplate; });
|
|
3194
3274
|
work_1 = executeSingleTemplate(currentTemplate)
|
|
3195
3275
|
.then(function () {
|
|
3196
|
-
|
|
3276
|
+
resovedParameterNames_1 = __spreadArray(__spreadArray([], __read(resovedParameterNames_1), false), [currentTemplate.resultingParameterName], false);
|
|
3197
3277
|
})
|
|
3198
3278
|
.then(function () {
|
|
3199
3279
|
resolving_1 = resolving_1.filter(function (w) { return w !== work_1; });
|
|
@@ -3207,7 +3287,7 @@
|
|
|
3207
3287
|
_g.label = 4;
|
|
3208
3288
|
case 4:
|
|
3209
3289
|
if (!(unresovedTemplates_1.length > 0)) return [3 /*break*/, 6];
|
|
3210
|
-
return [5 /*yield**/,
|
|
3290
|
+
return [5 /*yield**/, _loop_2()];
|
|
3211
3291
|
case 5:
|
|
3212
3292
|
_g.sent();
|
|
3213
3293
|
return [3 /*break*/, 4];
|
|
@@ -3224,41 +3304,20 @@
|
|
|
3224
3304
|
var result = _a.result;
|
|
3225
3305
|
return (result === null || result === void 0 ? void 0 : result.usage) || ZERO_USAGE;
|
|
3226
3306
|
})), false));
|
|
3307
|
+
outputParameters_1 = filterJustOutputParameters();
|
|
3227
3308
|
return [2 /*return*/, deepFreezeWithSameType({
|
|
3228
3309
|
isSuccessful: false,
|
|
3229
|
-
errors: [error_1],
|
|
3310
|
+
errors: __spreadArray([error_1], __read(errors), false),
|
|
3230
3311
|
usage: usage_1,
|
|
3231
3312
|
executionReport: executionReport,
|
|
3232
|
-
outputParameters:
|
|
3313
|
+
outputParameters: outputParameters_1,
|
|
3233
3314
|
})];
|
|
3234
3315
|
case 9:
|
|
3235
|
-
outputParameters = {};
|
|
3236
|
-
errors = [];
|
|
3237
|
-
try {
|
|
3238
|
-
// Note: Filter ONLY output parameters
|
|
3239
|
-
for (_c = __values(pipeline.parameters.filter(function (_a) {
|
|
3240
|
-
var isOutput = _a.isOutput;
|
|
3241
|
-
return isOutput;
|
|
3242
|
-
})), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
3243
|
-
parameter = _d.value;
|
|
3244
|
-
if (parametersToPass[parameter.name] === undefined) {
|
|
3245
|
-
errors.push(new PipelineExecutionError("Parameter {".concat(parameter.name, "} is required as an output parameter but not set in the pipeline")));
|
|
3246
|
-
continue;
|
|
3247
|
-
}
|
|
3248
|
-
outputParameters[parameter.name] = parametersToPass[parameter.name] || '';
|
|
3249
|
-
}
|
|
3250
|
-
}
|
|
3251
|
-
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
3252
|
-
finally {
|
|
3253
|
-
try {
|
|
3254
|
-
if (_d && !_d.done && (_f = _c.return)) _f.call(_c);
|
|
3255
|
-
}
|
|
3256
|
-
finally { if (e_2) throw e_2.error; }
|
|
3257
|
-
}
|
|
3258
3316
|
usage = addUsage.apply(void 0, __spreadArray([], __read(executionReport.promptExecutions.map(function (_a) {
|
|
3259
3317
|
var result = _a.result;
|
|
3260
3318
|
return (result === null || result === void 0 ? void 0 : result.usage) || ZERO_USAGE;
|
|
3261
3319
|
})), false));
|
|
3320
|
+
outputParameters = filterJustOutputParameters();
|
|
3262
3321
|
return [2 /*return*/, deepFreezeWithSameType({
|
|
3263
3322
|
isSuccessful: true,
|
|
3264
3323
|
errors: errors,
|
|
@@ -3280,6 +3339,7 @@
|
|
|
3280
3339
|
* Note: CreatePipelineExecutorOptions are just connected to PipelineExecutor so do not extract to types folder
|
|
3281
3340
|
* TODO: [🧠][3] transparent = (report intermediate parameters) / opaque execution = (report only output parameters) progress reporting mode
|
|
3282
3341
|
* TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
|
|
3342
|
+
* TODO: [💷] !!!! `assertsExecutionSuccessful` should be the method of `PipelineExecutor` result
|
|
3283
3343
|
*/
|
|
3284
3344
|
|
|
3285
3345
|
/**
|