@promptbook/node 0.69.0-1 → 0.69.0-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.
Files changed (55) hide show
  1. package/README.md +17 -57
  2. package/esm/index.es.js +1761 -988
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/core.index.d.ts +5 -1
  5. package/esm/typings/src/_packages/types.index.d.ts +8 -0
  6. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  7. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +2 -6
  8. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +26 -0
  9. package/esm/typings/src/commands/FOREACH/foreachCommand.test.d.ts +3 -0
  10. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -1
  11. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -4
  12. package/esm/typings/src/config.d.ts +7 -1
  13. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
  14. package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
  15. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -0
  16. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +5 -3
  17. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +21 -0
  18. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +20 -0
  19. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +33 -0
  20. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
  21. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +55 -0
  22. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +62 -0
  23. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatCells.d.ts +21 -0
  24. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
  25. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  26. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  27. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  28. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  29. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  30. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  31. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  32. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +9 -12
  33. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +30 -0
  34. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +3 -2
  35. package/esm/typings/src/formats/index.d.ts +1 -1
  36. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +1 -1
  37. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +17 -0
  38. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +1 -1
  39. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  40. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  41. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +3 -0
  42. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  43. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  44. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  45. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  46. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  47. package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  48. package/package.json +3 -2
  49. package/umd/index.umd.js +1764 -992
  50. package/umd/index.umd.js.map +1 -1
  51. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  52. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  53. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → parameters/extractParameterNames.test.d.ts} +0 -0
  54. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
  55. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → parameters/replaceParameters.test.d.ts} +0 -0
@@ -38,13 +38,15 @@ import { PipelineLogicError } from '../errors/PipelineLogicError';
38
38
  import { PipelineUrlError } from '../errors/PipelineUrlError';
39
39
  import { UnexpectedError } from '../errors/UnexpectedError';
40
40
  import { assertsExecutionSuccessful } from '../execution/assertsExecutionSuccessful';
41
- import { createPipelineExecutor } from '../execution/createPipelineExecutor';
41
+ import { createPipelineExecutor } from '../execution/createPipelineExecutor/00-createPipelineExecutor';
42
42
  import { embeddingVectorToString } from '../execution/embeddingVectorToString';
43
43
  import { ZERO_USAGE } from '../execution/utils/addUsage';
44
44
  import { addUsage } from '../execution/utils/addUsage';
45
45
  import { isPassingExpectations } from '../execution/utils/checkExpectations';
46
46
  import { usageToHuman } from '../execution/utils/usageToHuman';
47
47
  import { usageToWorktime } from '../execution/utils/usageToWorktime';
48
+ import { CsvFormatDefinition } from '../formats/csv/CsvFormatDefinition';
49
+ import { TextFormatDefinition } from '../formats/text/TextFormatDefinition';
48
50
  import { CallbackInterfaceTools } from '../knowledge/dialogs/callback/CallbackInterfaceTools';
49
51
  import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
50
52
  import { prepareKnowledgePieces } from '../knowledge/prepare-knowledge/_common/prepareKnowledgePieces';
@@ -118,6 +120,8 @@ export { addUsage };
118
120
  export { isPassingExpectations };
119
121
  export { usageToHuman };
120
122
  export { usageToWorktime };
123
+ export { CsvFormatDefinition };
124
+ export { TextFormatDefinition };
121
125
  export { CallbackInterfaceTools };
122
126
  export type { CallbackInterfaceToolsOptions };
123
127
  export { prepareKnowledgePieces };
@@ -7,6 +7,7 @@ import type { PipelineTemplateCommandParser } from '../commands/_common/types/Co
7
7
  import type { CommandParserInput } from '../commands/_common/types/CommandParser';
8
8
  import type { CommandUsagePlace } from '../commands/_common/types/CommandUsagePlaces';
9
9
  import type { ExpectCommand } from '../commands/EXPECT/ExpectCommand';
10
+ import type { ForeachJson } from '../commands/FOREACH/ForeachJson';
10
11
  import type { FormatCommand } from '../commands/FORMAT/FormatCommand';
11
12
  import type { TemplateType } from '../commands/TEMPLATE/TemplateTypes';
12
13
  import type { PipelineStringToJsonOptions } from '../conversion/pipelineStringToJson';
@@ -15,6 +16,8 @@ import type { renderPipelineMermaidOptions } from '../conversion/prettify/render
15
16
  import type { ErrorJson } from '../errors/utils/ErrorJson';
16
17
  import type { AvailableModel } from '../execution/AvailableModel';
17
18
  import type { CommonExecutionToolsOptions } from '../execution/CommonExecutionToolsOptions';
19
+ import type { CreatePipelineExecutorOptions } from '../execution/createPipelineExecutor/00-CreatePipelineExecutorOptions';
20
+ import type { CreatePipelineExecutorSettings } from '../execution/createPipelineExecutor/00-CreatePipelineExecutorSettings';
18
21
  import type { EmbeddingVector } from '../execution/EmbeddingVector';
19
22
  import type { ExecutionTools } from '../execution/ExecutionTools';
20
23
  import type { LlmExecutionTools } from '../execution/LlmExecutionTools';
@@ -32,6 +35,7 @@ import type { ScriptExecutionToolsExecuteOptions } from '../execution/ScriptExec
32
35
  import type { UncertainNumber } from '../execution/UncertainNumber';
33
36
  import type { UserInterfaceTools } from '../execution/UserInterfaceTools';
34
37
  import type { UserInterfaceToolsPromptDialogOptions } from '../execution/UserInterfaceTools';
38
+ import type { FormatSubvalueDefinition } from '../formats/_common/FormatSubvalueDefinition';
35
39
  import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
36
40
  import type { LlmToolsConfiguration } from '../llm-providers/_common/LlmToolsConfiguration';
37
41
  import type { LlmToolsMetadata } from '../llm-providers/_common/LlmToolsMetadata';
@@ -232,6 +236,7 @@ export type { PipelineTemplateCommandParser };
232
236
  export type { CommandParserInput };
233
237
  export type { CommandUsagePlace };
234
238
  export type { ExpectCommand };
239
+ export type { ForeachJson };
235
240
  export type { FormatCommand };
236
241
  export type { TemplateType };
237
242
  export type { PipelineStringToJsonOptions };
@@ -240,6 +245,8 @@ export type { renderPipelineMermaidOptions };
240
245
  export type { ErrorJson };
241
246
  export type { AvailableModel };
242
247
  export type { CommonExecutionToolsOptions };
248
+ export type { CreatePipelineExecutorOptions };
249
+ export type { CreatePipelineExecutorSettings };
243
250
  export type { EmbeddingVector };
244
251
  export type { ExecutionTools };
245
252
  export type { LlmExecutionTools };
@@ -257,6 +264,7 @@ export type { ScriptExecutionToolsExecuteOptions };
257
264
  export type { UncertainNumber };
258
265
  export type { UserInterfaceTools };
259
266
  export type { UserInterfaceToolsPromptDialogOptions };
267
+ export type { FormatSubvalueDefinition };
260
268
  export type { CallbackInterfaceToolsOptions };
261
269
  export type { LlmToolsConfiguration };
262
270
  export type { LlmToolsMetadata };
@@ -20,7 +20,6 @@ import { splitIntoSentences } from '../utils/expectation-counters/countSentences
20
20
  import { countSentences } from '../utils/expectation-counters/countSentences';
21
21
  import { countWords } from '../utils/expectation-counters/countWords';
22
22
  import { CountUtils } from '../utils/expectation-counters/index';
23
- import { extractParameterNames } from '../utils/extractParameterNames';
24
23
  import { capitalize } from '../utils/normalization/capitalize';
25
24
  import { decapitalize } from '../utils/normalization/decapitalize';
26
25
  import { DIACRITIC_VARIANTS_LETTERS } from '../utils/normalization/DIACRITIC_VARIANTS_LETTERS';
@@ -43,11 +42,12 @@ import { parseKeywords } from '../utils/normalization/parseKeywords';
43
42
  import { parseKeywordsFromString } from '../utils/normalization/parseKeywordsFromString';
44
43
  import { removeDiacritics } from '../utils/normalization/removeDiacritics';
45
44
  import { searchKeywords } from '../utils/normalization/searchKeywords';
45
+ import { extractParameterNames } from '../utils/parameters/extractParameterNames';
46
+ import { replaceParameters } from '../utils/parameters/replaceParameters';
46
47
  import { parseNumber } from '../utils/parseNumber';
47
48
  import { $randomSeed } from '../utils/random/$randomSeed';
48
49
  import { removeEmojis } from '../utils/removeEmojis';
49
50
  import { removeQuotes } from '../utils/removeQuotes';
50
- import { replaceParameters } from '../utils/replaceParameters';
51
51
  import { $deepFreeze } from '../utils/serialization/$deepFreeze';
52
52
  import { checkSerializableAsJson } from '../utils/serialization/checkSerializableAsJson';
53
53
  import { clonePipeline } from '../utils/serialization/clonePipeline';
@@ -91,7 +91,6 @@ export { splitIntoSentences };
91
91
  export { countSentences };
92
92
  export { countWords };
93
93
  export { CountUtils };
94
- export { extractParameterNames };
95
94
  export { capitalize };
96
95
  export { decapitalize };
97
96
  export { DIACRITIC_VARIANTS_LETTERS };
@@ -114,11 +113,12 @@ export { parseKeywords };
114
113
  export { parseKeywordsFromString };
115
114
  export { removeDiacritics };
116
115
  export { searchKeywords };
116
+ export { extractParameterNames };
117
+ export { replaceParameters };
117
118
  export { parseNumber };
118
119
  export { $randomSeed };
119
120
  export { removeEmojis };
120
121
  export { removeQuotes };
121
- export { replaceParameters };
122
122
  export { $deepFreeze };
123
123
  export { checkSerializableAsJson };
124
124
  export { clonePipeline };
@@ -1,5 +1,4 @@
1
- import type { string_parameter_name } from '../../types/typeAliases';
2
- import type { TODO_string } from '../../utils/organization/TODO_string';
1
+ import type { ForeachJson } from './ForeachJson';
3
2
  /**
4
3
  * Parsed FOREACH command <- Write [🍭] !!!!!!
5
4
  *
@@ -8,7 +7,4 @@ import type { TODO_string } from '../../utils/organization/TODO_string';
8
7
  */
9
8
  export type ForeachCommand = {
10
9
  readonly type: 'FOREACH';
11
- formatName: TODO_string;
12
- cellName: TODO_string;
13
- parameterName: string_parameter_name;
14
- };
10
+ } & ForeachJson;
@@ -0,0 +1,26 @@
1
+ import type { string_parameter_name } from '../../types/typeAliases';
2
+ import type { TODO_string } from '../../utils/organization/TODO_string';
3
+ /**
4
+ * @@@
5
+ */
6
+ export type ForeachJson = {
7
+ /**
8
+ * @@@
9
+ */
10
+ readonly formatName: TODO_string;
11
+ /**
12
+ * @@@
13
+ */
14
+ readonly cellName: TODO_string;
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly parameterName: string_parameter_name;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly subparameterNames: Array<string_parameter_name>;
23
+ };
24
+ /**
25
+ * TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
26
+ */
@@ -1 +1,4 @@
1
1
  export {};
2
+ /**
3
+ * TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
4
+ */
@@ -10,6 +10,7 @@ import type { ForeachCommand } from './ForeachCommand';
10
10
  */
11
11
  export declare const foreachCommandParser: PipelineTemplateCommandParser<ForeachCommand>;
12
12
  /**
13
- * TODO: !!!!!! Comment console logs
13
+ * TODO: !!!!!! Remove console logs
14
+ * TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
14
15
  * TODO: [🍭] !!!!!! Make .ptbk.md file with examples of the FOREACH command and also with wrong parsing and logic
15
16
  */
@@ -156,28 +156,28 @@ export type CommandParserInput = {
156
156
  * @@@
157
157
  *
158
158
  * @example 'promptbook version 0.62.0'
159
- * @example 'FOREACH List Line -> `{customer}`'
159
+ * @example 'FOREACH Text Line `{customers}` -> `{customer}`'
160
160
  */
161
161
  readonly raw: string_markdown_text;
162
162
  /**
163
163
  * @@@
164
164
  *
165
165
  * @example '0.62.0'
166
- * @example 'List Line -> `{customer}`'
166
+ * @example 'List Line `{customers}` -> `{customer}`'
167
167
  */
168
168
  readonly rawArgs: string_markdown_text;
169
169
  /**
170
170
  * @@@
171
171
  *
172
172
  * @example 'PROMPTBOOK_VERSION_0_62_0'
173
- * @example 'FOREACH_LIST_LINE_CUSTOMER'
173
+ * @example 'FOREACH_LIST_LINE_CUSTOMERS_CUSTOMER'
174
174
  */
175
175
  readonly normalized: string_name & string_SCREAMING_CASE;
176
176
  /**
177
177
  * @@@
178
178
  *
179
179
  * @example [ '0.62.0' ]
180
- * @example [ 'List', 'Line', '', '{customer}' ]
180
+ * @example [ 'List', 'Line', '{customers}', '', '{customer}' ]
181
181
  */
182
182
  readonly args: Array<string_name>;
183
183
  };
@@ -148,7 +148,13 @@ export declare const IS_VERBOSE = false;
148
148
  *
149
149
  * @private within the repository
150
150
  */
151
- export declare const DEBUG_ALLOW_PAYED_TESTING: boolean;
151
+ export declare const IS_COST_PREVENTED: boolean;
152
+ /**
153
+ * @@@
154
+ *
155
+ * @private within the repository
156
+ */
157
+ export declare const IS_PIPELINE_LOGIC_VALIDATED: boolean;
152
158
  /**
153
159
  * TODO: [🧠][🧜‍♂️] Maybe join remoteUrl and path into single value
154
160
  */
@@ -22,6 +22,9 @@ export type renderPipelineMermaidOptions = {
22
22
  */
23
23
  export declare function renderPromptbookMermaid(pipelineJson: PipelineJson, options?: renderPipelineMermaidOptions): string;
24
24
  /**
25
+ * TODO: !!!!!! FOREACH in mermaid graph
26
+ * TODO: !!!!!! Knowledge in mermaid graph
27
+ * TODO: !!!!!! Personas in mermaid graph
25
28
  * TODO: Maybe use some Mermaid package instead of string templating
26
29
  * TODO: [🕌] When more than 2 functionalities, split into separate functions
27
30
  */
@@ -1,3 +1,4 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
1
2
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
2
3
  import type { string_parameter_name } from '../../types/typeAliases';
3
4
  /**
@@ -8,7 +9,7 @@ import type { string_parameter_name } from '../../types/typeAliases';
8
9
  * @throws {ParseError} if the script is invalid
9
10
  * @public exported from `@promptbook/utils`
10
11
  */
11
- export declare function extractParameterNamesFromTemplate(template: Pick<TemplateJson, 'title' | 'description' | 'templateType' | 'content' | 'preparedContent' | 'jokerParameterNames'>): Set<string_parameter_name>;
12
+ export declare function extractParameterNamesFromTemplate(template: ReadonlyDeep<Pick<TemplateJson, 'title' | 'description' | 'templateType' | 'content' | 'preparedContent' | 'jokerParameterNames' | 'foreach'>>): Set<string_parameter_name>;
12
13
  /**
13
14
  * TODO: [🔣] If script require contentLanguage
14
15
  */
@@ -16,6 +16,11 @@ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
16
16
  */
17
17
  export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
18
18
  /**
19
+ * @private internal function for `validatePipeline`
20
+ */
21
+ export declare function validatePipelineCore(pipeline: PipelineJson): void;
22
+ /**
23
+ * TODO: !!!!!! [🧞‍♀️] Do not allow joker + foreach
19
24
  * TODO: [🧠] Work with promptbookVersion
20
25
  * TODO: Use here some json-schema, Zod or something similar and change it to:
21
26
  * > /**
@@ -1,7 +1,8 @@
1
+ import { ReadonlyDeep } from 'type-fest';
2
+ import type { ErrorJson } from '../errors/utils/ErrorJson';
1
3
  import type { ExecutionReportJson } from '../types/execution-report/ExecutionReportJson';
2
- import type { Parameters } from '../types/typeAliases';
3
4
  import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
4
- import type { ErrorJson } from '../errors/utils/ErrorJson';
5
+ import type { Parameters } from '../types/typeAliases';
5
6
  import type { PromptResultUsage } from './PromptResultUsage';
6
7
  /**
7
8
  * @@@
@@ -41,9 +42,10 @@ export type PipelineExecutorResult = {
41
42
  * Note: If you called `createPipelineExecutor` with fully prepared pipeline, this is the same object as this pipeline
42
43
  * If you passed not fully prepared pipeline, this is same pipeline but fully prepared
43
44
  */
44
- readonly preparedPipeline: PipelineJson;
45
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
45
46
  };
46
47
  /**
48
+ * TODO: !!!!!! Maybe add ReadonlyDeep< to all
47
49
  * TODO: [🧠] Should this file be in /execution or /types folder?
48
50
  * TODO: [🧠] Maybe constrain `ErrorJson` -> `ErrorJson & { name: 'PipelineExecutionError' | 'Error' }`
49
51
  */
@@ -0,0 +1,21 @@
1
+ import { ExpectError } from '../../errors/ExpectError';
2
+ import type { Prompt } from '../../types/Prompt';
3
+ import type { ChatPromptResult } from '../PromptResult';
4
+ import type { CompletionPromptResult } from '../PromptResult';
5
+ import type { EmbeddingPromptResult } from '../PromptResult';
6
+ import type { PromptResult } from '../PromptResult';
7
+ /**
8
+ * @@@
9
+ *
10
+ * @private internal utility of `createPipelineExecutor`
11
+ */
12
+ export type $OngoingTemplateResult = {
13
+ $prompt?: Prompt;
14
+ $chatResult?: ChatPromptResult;
15
+ $completionResult?: CompletionPromptResult;
16
+ $embeddingResult?: EmbeddingPromptResult;
17
+ $result: PromptResult | null;
18
+ $resultString: string | null;
19
+ $expectError: ExpectError | null;
20
+ $scriptPipelineExecutionErrors: Array<Error>;
21
+ };
@@ -0,0 +1,20 @@
1
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
2
+ import type { ExecutionTools } from '../ExecutionTools';
3
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
4
+ /**
5
+ * Options for `createPipelineExecutor`
6
+ */
7
+ export interface CreatePipelineExecutorOptions {
8
+ /**
9
+ * The pipeline to be executed
10
+ */
11
+ readonly pipeline: PipelineJson;
12
+ /**
13
+ * The execution tools to be used during the execution of the pipeline
14
+ */
15
+ readonly tools: ExecutionTools;
16
+ /**
17
+ * Optional settings for the pipeline executor
18
+ */
19
+ readonly settings?: Partial<CreatePipelineExecutorSettings>;
20
+ }
@@ -0,0 +1,33 @@
1
+ export type CreatePipelineExecutorSettings = {
2
+ /**
3
+ * When executor does not satisfy expectations it will be retried this amount of times
4
+ *
5
+ * @default MAX_EXECUTION_ATTEMPTS
6
+ */
7
+ readonly maxExecutionAttempts: number;
8
+ /**
9
+ * Maximum number of tasks running in parallel
10
+ *
11
+ * @default MAX_PARALLEL_COUNT
12
+ */
13
+ readonly maxParallelCount: number;
14
+ /**
15
+ * If true, the preparation logs additional information
16
+ *
17
+ * @default false
18
+ */
19
+ readonly isVerbose: boolean;
20
+ /**
21
+ * If you pass fully prepared pipeline, this does not matter
22
+ *
23
+ * Otherwise:
24
+ * If false or not set, warning is shown when pipeline is not prepared
25
+ * If true, warning is suppressed
26
+ *
27
+ * @default false
28
+ */
29
+ readonly isNotPreparedWarningSupressed: boolean;
30
+ };
31
+ /**
32
+ * TODO: [🤹‍♂️] More granular setting for limits of execution + better waiting for queue
33
+ */
@@ -0,0 +1,10 @@
1
+ import type { PipelineExecutor } from '../PipelineExecutor';
2
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
3
+ /**
4
+ * Creates executor function from pipeline and execution tools.
5
+ *
6
+ * @returns The executor function
7
+ * @throws {PipelineLogicError} on logical error in the pipeline
8
+ * @public exported from `@promptbook/core`
9
+ */
10
+ export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
@@ -0,0 +1,55 @@
1
+ import type { Promisable, ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TaskProgress } from '../../types/TaskProgress';
4
+ import type { Parameters } from '../../types/typeAliases';
5
+ import type { ExecutionTools } from '../ExecutionTools';
6
+ import type { PipelineExecutorResult } from '../PipelineExecutorResult';
7
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
8
+ /**
9
+ * @@@
10
+ *
11
+ * @private internal type of `executePipelinex`
12
+ */
13
+ type ExecutePipelineOptions = {
14
+ /**
15
+ * @@@
16
+ */
17
+ readonly inputParameters: Readonly<Parameters>;
18
+ /**
19
+ * @@@
20
+ */
21
+ readonly tools: ExecutionTools;
22
+ /**
23
+ * @@@
24
+ */
25
+ readonly onProgress?: (taskProgress: TaskProgress) => Promisable<void>;
26
+ /**
27
+ * @@@
28
+ */
29
+ readonly pipeline: PipelineJson;
30
+ /**
31
+ * @@@
32
+ */
33
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
34
+ /**
35
+ * @@@
36
+ */
37
+ readonly setPreparedPipeline: (preparedPipeline: ReadonlyDeep<PipelineJson>) => void;
38
+ /**
39
+ * @@@
40
+ */
41
+ readonly pipelineIdentification: string;
42
+ /**
43
+ * Settings for the pipeline executor
44
+ */
45
+ readonly settings: CreatePipelineExecutorSettings;
46
+ };
47
+ /**
48
+ * @@@
49
+ *
50
+ * Note: This is not a `PipelineExecutor` (which is binded with one exact pipeline), but a utility function of `createPipelineExecutor` which creates `PipelineExecutor`
51
+ *
52
+ * @private internal utility of `createPipelineExecutor`
53
+ */
54
+ export declare function executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecutorResult>;
55
+ export {};
@@ -0,0 +1,62 @@
1
+ import { Promisable, ReadonlyDeep } from 'type-fest';
2
+ import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
3
+ import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
4
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
5
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
6
+ import type { TaskProgress } from '../../types/TaskProgress';
7
+ import type { Parameters } from '../../types/typeAliases';
8
+ import type { ExecutionTools } from '../ExecutionTools';
9
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
10
+ /**
11
+ * @@@
12
+ *
13
+ * @private internal type of `executeTemplate`
14
+ */
15
+ type executeSingleTemplateOptions = {
16
+ /**
17
+ * @@@
18
+ */
19
+ readonly currentTemplate: ReadonlyDeep<TemplateJson>;
20
+ /**
21
+ * @@@
22
+ */
23
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
24
+ /**
25
+ * @@@
26
+ */
27
+ readonly parametersToPass: Readonly<Parameters>;
28
+ /**
29
+ * @@@
30
+ */
31
+ readonly tools: Omit<ExecutionTools, 'llm'>;
32
+ /**
33
+ * @@@
34
+ */
35
+ readonly llmTools: MultipleLlmExecutionTools;
36
+ /**
37
+ * @@@
38
+ */
39
+ readonly onProgress: (taskProgress: TaskProgress) => Promisable<void>;
40
+ /**
41
+ * Settings for the pipeline executor
42
+ */
43
+ readonly settings: CreatePipelineExecutorSettings;
44
+ /**
45
+ * @@@
46
+ */
47
+ readonly $executionReport: ExecutionReportJson;
48
+ /**
49
+ * @@@
50
+ */
51
+ readonly pipelineIdentification: string;
52
+ };
53
+ /**
54
+ * @@@
55
+ *
56
+ * @private internal utility of `createPipelineExecutor`
57
+ */
58
+ export declare function executeTemplate(options: executeSingleTemplateOptions): Promise<Readonly<Parameters>>;
59
+ export {};
60
+ /**
61
+ * TODO: [🤹‍♂️]
62
+ */
@@ -0,0 +1,21 @@
1
+ import type { TODO_any } from '../../utils/organization/TODO_any';
2
+ import type { ExecuteAttemptsOptions } from './40-executeAttempts';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private internal type of `executeFormatCells`
7
+ */
8
+ type ExecuteFormatCellsOptions = ExecuteAttemptsOptions;
9
+ /**
10
+ * @@@
11
+ *
12
+ * @private internal utility of `createPipelineExecutor`
13
+ */
14
+ export declare function executeFormatCells(options: ExecuteFormatCellsOptions): Promise<TODO_any>;
15
+ export {};
16
+ /**
17
+ * TODO: !!!!!! Make pipelineIdentification more precise
18
+ * TODO: !!!!!! How FOREACH execution looks in the report
19
+ * TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
20
+ * TODO: []
21
+ */
@@ -0,0 +1,74 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
3
+ import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
4
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
5
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
6
+ import type { Parameters } from '../../types/typeAliases';
7
+ import type { string_parameter_name } from '../../types/typeAliases';
8
+ import type { TODO_string } from '../../utils/organization/TODO_string';
9
+ import type { ExecutionTools } from '../ExecutionTools';
10
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
11
+ /**
12
+ * @@@
13
+ *
14
+ * @private internal type of `executeAttempts`
15
+ */
16
+ export type ExecuteAttemptsOptions = {
17
+ /**
18
+ * @@@
19
+ */
20
+ readonly jokerParameterNames: Readonly<Array<string_parameter_name>>;
21
+ /**
22
+ * @@@
23
+ */
24
+ readonly priority: number;
25
+ /**
26
+ * @@@
27
+ */
28
+ readonly maxAttempts: number;
29
+ /**
30
+ * @@@
31
+ */
32
+ readonly preparedContent: TODO_string;
33
+ /**
34
+ * @@@
35
+ */
36
+ readonly parameters: ReadonlyDeep<Parameters>;
37
+ /**
38
+ * @@@
39
+ */
40
+ readonly template: ReadonlyDeep<TemplateJson>;
41
+ /**
42
+ * @@@
43
+ */
44
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
45
+ /**
46
+ * @@@
47
+ */
48
+ readonly tools: Omit<ExecutionTools, 'llm'>;
49
+ /**
50
+ * @@@
51
+ */
52
+ readonly llmTools: MultipleLlmExecutionTools;
53
+ /**
54
+ * Settings for the pipeline executor
55
+ */
56
+ readonly settings: CreatePipelineExecutorSettings;
57
+ /**
58
+ * @@@
59
+ */
60
+ readonly $executionReport: ExecutionReportJson;
61
+ /**
62
+ * @@@
63
+ */
64
+ readonly pipelineIdentification: string;
65
+ };
66
+ /**
67
+ * @@@
68
+ *
69
+ * @private internal utility of `createPipelineExecutor`
70
+ */
71
+ export declare function executeAttempts(options: ExecuteAttemptsOptions): Promise<TODO_string>;
72
+ /**
73
+ * TODO: Break into smaller functions
74
+ */
@@ -0,0 +1,34 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import { PipelineExecutionError } from '../../errors/PipelineExecutionError';
3
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
+ import type { Parameters } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal type of `createPipelineExecutor`
9
+ */
10
+ type FilterJustOutputParametersOptions = {
11
+ /**
12
+ * @@@
13
+ */
14
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly parametersToPass: Readonly<Parameters>;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly $warnings: PipelineExecutionError[];
23
+ /**
24
+ * @@@
25
+ */
26
+ readonly pipelineIdentification: string;
27
+ };
28
+ /**
29
+ * @@@
30
+ *
31
+ * @private internal utility of `createPipelineExecutor`
32
+ */
33
+ export declare function filterJustOutputParameters(options: FilterJustOutputParametersOptions): Parameters;
34
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
3
+ import type { string_markdown } from '../../types/typeAliases';
4
+ import type { string_parameter_value } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal utility of `createPipelineExecutor`
9
+ */
10
+ export declare function getContextForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;