@promptbook/cli 0.72.0-0 → 0.72.0-1

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 (65) hide show
  1. package/README.md +6 -7
  2. package/esm/index.es.js +2462 -1407
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  5. package/esm/typings/src/_packages/core.index.d.ts +11 -1
  6. package/esm/typings/src/_packages/openai.index.d.ts +4 -0
  7. package/esm/typings/src/_packages/types.index.d.ts +12 -0
  8. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  9. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +3 -2
  10. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +23 -0
  11. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +1 -1
  12. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +16 -1
  13. package/esm/typings/src/config.d.ts +14 -1
  14. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
  15. package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
  16. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -0
  17. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +9 -8
  18. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
  19. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +20 -0
  20. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +40 -0
  21. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
  22. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +55 -0
  23. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +62 -0
  24. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatCells.d.ts +19 -0
  25. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
  26. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  27. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  28. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  29. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  30. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  31. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  32. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  33. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
  34. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +30 -0
  35. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
  36. package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
  37. package/esm/typings/src/formats/index.d.ts +1 -1
  38. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
  39. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
  40. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
  41. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -1
  42. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +1 -1
  43. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +9 -0
  44. package/esm/typings/src/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +15 -0
  45. package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +9 -0
  46. package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +9 -0
  47. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  48. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  49. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +3 -0
  50. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  51. package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
  52. package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
  53. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  54. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  55. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  56. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  57. package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  58. package/package.json +17 -12
  59. package/umd/index.umd.js +2466 -1410
  60. package/umd/index.umd.js.map +1 -1
  61. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  62. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  63. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → parameters/extractParameterNames.test.d.ts} +0 -0
  64. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
  65. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → parameters/replaceParameters.test.d.ts} +0 -0
@@ -5,7 +5,9 @@ import { _AnthropicClaudeRegistration } from '../llm-providers/anthropic-claude/
5
5
  import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
6
6
  import { _AzureOpenAiRegistration } from '../llm-providers/azure-openai/register-constructor';
7
7
  import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
8
+ import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
8
9
  import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
10
+ import { _OpenAiAssistantRegistration } from '../llm-providers/openai/register-constructor';
9
11
  export { PROMPTBOOK_VERSION };
10
12
  export { _CLI };
11
13
  export { _AnthropicClaudeMetadataRegistration };
@@ -13,4 +15,6 @@ export { _AnthropicClaudeRegistration };
13
15
  export { _AzureOpenAiMetadataRegistration };
14
16
  export { _AzureOpenAiRegistration };
15
17
  export { _OpenAiMetadataRegistration };
18
+ export { _OpenAiAssistantMetadataRegistration };
16
19
  export { _OpenAiRegistration };
20
+ export { _OpenAiAssistantRegistration };
@@ -17,6 +17,7 @@ import { PIPELINE_COLLECTION_BASE_FILENAME } from '../config';
17
17
  import { RESERVED_PARAMETER_NAMES } from '../config';
18
18
  import { DEFAULT_REMOTE_URL } from '../config';
19
19
  import { DEFAULT_REMOTE_URL_PATH } from '../config';
20
+ import { DEFAULT_CSV_SETTINGS } from '../config';
20
21
  import { IS_VERBOSE } from '../config';
21
22
  import { pipelineJsonToString } from '../conversion/pipelineJsonToString';
22
23
  import type { PipelineStringToJsonOptions } from '../conversion/pipelineStringToJson';
@@ -38,7 +39,7 @@ import { PipelineLogicError } from '../errors/PipelineLogicError';
38
39
  import { PipelineUrlError } from '../errors/PipelineUrlError';
39
40
  import { UnexpectedError } from '../errors/UnexpectedError';
40
41
  import { assertsExecutionSuccessful } from '../execution/assertsExecutionSuccessful';
41
- import { createPipelineExecutor } from '../execution/createPipelineExecutor';
42
+ import { createPipelineExecutor } from '../execution/createPipelineExecutor/00-createPipelineExecutor';
42
43
  import { embeddingVectorToString } from '../execution/embeddingVectorToString';
43
44
  import { addUsage } from '../execution/utils/addUsage';
44
45
  import { isPassingExpectations } from '../execution/utils/checkExpectations';
@@ -46,6 +47,9 @@ import { ZERO_USAGE } from '../execution/utils/usage-constants';
46
47
  import { UNCERTAIN_USAGE } from '../execution/utils/usage-constants';
47
48
  import { usageToHuman } from '../execution/utils/usageToHuman';
48
49
  import { usageToWorktime } from '../execution/utils/usageToWorktime';
50
+ import { CsvFormatDefinition } from '../formats/csv/CsvFormatDefinition';
51
+ import { MANDATORY_CSV_SETTINGS } from '../formats/csv/CsvSettings';
52
+ import { TextFormatDefinition } from '../formats/text/TextFormatDefinition';
49
53
  import { CallbackInterfaceTools } from '../knowledge/dialogs/callback/CallbackInterfaceTools';
50
54
  import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
51
55
  import { prepareKnowledgePieces } from '../knowledge/prepare-knowledge/_common/prepareKnowledgePieces';
@@ -60,6 +64,7 @@ import { _AnthropicClaudeMetadataRegistration } from '../llm-providers/anthropic
60
64
  import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
61
65
  import { joinLlmExecutionTools } from '../llm-providers/multiple/joinLlmExecutionTools';
62
66
  import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
67
+ import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
63
68
  import { preparePersona } from '../personas/preparePersona';
64
69
  import { isPipelinePrepared } from '../prepare/isPipelinePrepared';
65
70
  import { preparePipeline } from '../prepare/preparePipeline';
@@ -91,6 +96,7 @@ export { PIPELINE_COLLECTION_BASE_FILENAME };
91
96
  export { RESERVED_PARAMETER_NAMES };
92
97
  export { DEFAULT_REMOTE_URL };
93
98
  export { DEFAULT_REMOTE_URL_PATH };
99
+ export { DEFAULT_CSV_SETTINGS };
94
100
  export { IS_VERBOSE };
95
101
  export { pipelineJsonToString };
96
102
  export type { PipelineStringToJsonOptions };
@@ -120,6 +126,9 @@ export { ZERO_USAGE };
120
126
  export { UNCERTAIN_USAGE };
121
127
  export { usageToHuman };
122
128
  export { usageToWorktime };
129
+ export { CsvFormatDefinition };
130
+ export { MANDATORY_CSV_SETTINGS };
131
+ export { TextFormatDefinition };
123
132
  export { CallbackInterfaceTools };
124
133
  export type { CallbackInterfaceToolsOptions };
125
134
  export { prepareKnowledgePieces };
@@ -134,6 +143,7 @@ export { _AnthropicClaudeMetadataRegistration };
134
143
  export { _AzureOpenAiMetadataRegistration };
135
144
  export { joinLlmExecutionTools };
136
145
  export { _OpenAiMetadataRegistration };
146
+ export { _OpenAiAssistantMetadataRegistration };
137
147
  export { preparePersona };
138
148
  export { isPipelinePrepared };
139
149
  export { preparePipeline };
@@ -1,4 +1,5 @@
1
1
  import { PROMPTBOOK_VERSION } from '../version';
2
+ import { createOpenAiAssistantExecutionTools } from '../llm-providers/openai/createOpenAiAssistantExecutionTools';
2
3
  import { createOpenAiExecutionTools } from '../llm-providers/openai/createOpenAiExecutionTools';
3
4
  import { OPENAI_MODELS } from '../llm-providers/openai/openai-models';
4
5
  import { OpenAiAssistantExecutionTools } from '../llm-providers/openai/OpenAiAssistantExecutionTools';
@@ -6,7 +7,9 @@ import type { OpenAiAssistantExecutionToolsOptions } from '../llm-providers/open
6
7
  import { OpenAiExecutionTools } from '../llm-providers/openai/OpenAiExecutionTools';
7
8
  import type { OpenAiExecutionToolsOptions } from '../llm-providers/openai/OpenAiExecutionToolsOptions';
8
9
  import { _OpenAiRegistration } from '../llm-providers/openai/register-constructor';
10
+ import { _OpenAiAssistantRegistration } from '../llm-providers/openai/register-constructor';
9
11
  export { PROMPTBOOK_VERSION };
12
+ export { createOpenAiAssistantExecutionTools };
10
13
  export { createOpenAiExecutionTools };
11
14
  export { OPENAI_MODELS };
12
15
  export { OpenAiAssistantExecutionTools };
@@ -14,3 +17,4 @@ export type { OpenAiAssistantExecutionToolsOptions };
14
17
  export { OpenAiExecutionTools };
15
18
  export type { OpenAiExecutionToolsOptions };
16
19
  export { _OpenAiRegistration };
20
+ export { _OpenAiAssistantRegistration };
@@ -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,8 @@ 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';
39
+ import type { CsvSettings } from '../formats/csv/CsvSettings';
35
40
  import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
36
41
  import type { LlmToolsConfiguration } from '../llm-providers/_common/LlmToolsConfiguration';
37
42
  import type { LlmToolsMetadata } from '../llm-providers/_common/LlmToolsMetadata';
@@ -221,6 +226,7 @@ import type { string_camelCase } from '../utils/normalization/normalizeTo_camelC
221
226
  import type { string_PascalCase } from '../utils/normalization/normalizeTo_PascalCase';
222
227
  import type { string_SCREAMING_CASE } from '../utils/normalization/normalizeTo_SCREAMING_CASE';
223
228
  import type { string_snake_case } from '../utils/normalization/normalizeTo_snake_case';
229
+ import type { empty_object } from '../utils/organization/empty_object';
224
230
  import type { really_any } from '../utils/organization/really_any';
225
231
  import type { TODO_any } from '../utils/organization/TODO_any';
226
232
  import type { string_promptbook_version } from '../version';
@@ -233,6 +239,7 @@ export type { PipelineTemplateCommandParser };
233
239
  export type { CommandParserInput };
234
240
  export type { CommandUsagePlace };
235
241
  export type { ExpectCommand };
242
+ export type { ForeachJson };
236
243
  export type { FormatCommand };
237
244
  export type { TemplateType };
238
245
  export type { PipelineStringToJsonOptions };
@@ -241,6 +248,8 @@ export type { renderPipelineMermaidOptions };
241
248
  export type { ErrorJson };
242
249
  export type { AvailableModel };
243
250
  export type { CommonExecutionToolsOptions };
251
+ export type { CreatePipelineExecutorOptions };
252
+ export type { CreatePipelineExecutorSettings };
244
253
  export type { EmbeddingVector };
245
254
  export type { ExecutionTools };
246
255
  export type { LlmExecutionTools };
@@ -258,6 +267,8 @@ export type { ScriptExecutionToolsExecuteOptions };
258
267
  export type { UncertainNumber };
259
268
  export type { UserInterfaceTools };
260
269
  export type { UserInterfaceToolsPromptDialogOptions };
270
+ export type { FormatSubvalueDefinition };
271
+ export type { CsvSettings };
261
272
  export type { CallbackInterfaceToolsOptions };
262
273
  export type { LlmToolsConfiguration };
263
274
  export type { LlmToolsMetadata };
@@ -447,6 +458,7 @@ export type { string_camelCase };
447
458
  export type { string_PascalCase };
448
459
  export type { string_SCREAMING_CASE };
449
460
  export type { string_snake_case };
461
+ export type { empty_object };
450
462
  export type { really_any };
451
463
  export type { TODO_any };
452
464
  export type { string_promptbook_version };
@@ -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,9 +1,10 @@
1
+ import type { ForeachJson } from './ForeachJson';
1
2
  /**
2
- * Parsed FOREACH command <- Write [🍭]
3
+ * Parsed FOREACH command which is used to iterate over a table of values
3
4
  *
4
5
  * @see ./foreachCommandParser.ts for more details
5
6
  * @private within the commands folder
6
7
  */
7
8
  export type ForeachCommand = {
8
9
  readonly type: 'FOREACH';
9
- };
10
+ } & ForeachJson;
@@ -0,0 +1,23 @@
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 subformatName: TODO_string;
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly parameterName: string_parameter_name;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly subparameterNames: Array<string_parameter_name>;
23
+ };
@@ -10,5 +10,5 @@ import type { ForeachCommand } from './ForeachCommand';
10
10
  */
11
11
  export declare const foreachCommandParser: PipelineTemplateCommandParser<ForeachCommand>;
12
12
  /**
13
- * TODO: [🍭] Make .ptbk.md file with examples of the FOREACH command and also with wrong parsing and logic
13
+ * TODO: [🍭] Make .ptbk.md file with examples of the FOREACH with wrong parsing and logic
14
14
  */
@@ -147,24 +147,39 @@ export type $PipelineJson = WritableDeep<PipelineJson>;
147
147
  export type CommandParserInput = {
148
148
  /**
149
149
  * @@@
150
+ *
151
+ * @example 'PIPELINE_HEAD'
152
+ * @example 'PIPELINE_TEMPLATE'
150
153
  */
151
154
  readonly usagePlace: CommandUsagePlace;
152
155
  /**
153
156
  * @@@
157
+ *
158
+ * @example 'promptbook version 0.62.0'
159
+ * @example 'FOREACH Text Line `{customers}` -> `{customer}`'
154
160
  */
155
161
  readonly raw: string_markdown_text;
156
162
  /**
157
163
  * @@@
164
+ *
165
+ * @example '0.62.0'
166
+ * @example 'List Line `{customers}` -> `{customer}`'
158
167
  */
159
168
  readonly rawArgs: string_markdown_text;
160
169
  /**
161
170
  * @@@
171
+ *
172
+ * @example 'PROMPTBOOK_VERSION_0_62_0'
173
+ * @example 'FOREACH_LIST_LINE_CUSTOMERS_CUSTOMER'
162
174
  */
163
175
  readonly normalized: string_name & string_SCREAMING_CASE;
164
176
  /**
165
177
  * @@@
178
+ *
179
+ * @example [ '0.62.0' ]
180
+ * @example [ 'List', 'Line', '{customers}', '', '{customer}' ]
166
181
  */
167
- readonly args: Array<string_name & string_SCREAMING_CASE>;
182
+ readonly args: Array<string_name>;
168
183
  };
169
184
  /**
170
185
  * TODO: [♓️] Add order here
@@ -1,3 +1,4 @@
1
+ import type { CsvSettings } from './formats/csv/CsvSettings';
1
2
  /**
2
3
  * Warning message for the generated sections and files files
3
4
  *
@@ -137,6 +138,12 @@ export declare const DEFAULT_REMOTE_URL = "https://api.pavolhejny.com/";
137
138
  * @public exported from `@promptbook/core`
138
139
  */
139
140
  export declare const DEFAULT_REMOTE_URL_PATH = "/promptbook/socket.io";
141
+ /**
142
+ * @@@
143
+ *
144
+ * @public exported from `@promptbook/core`
145
+ */
146
+ export declare const DEFAULT_CSV_SETTINGS: CsvSettings;
140
147
  /**
141
148
  * @@@
142
149
  *
@@ -148,7 +155,13 @@ export declare const IS_VERBOSE = false;
148
155
  *
149
156
  * @private within the repository
150
157
  */
151
- export declare const DEBUG_ALLOW_PAYED_TESTING: boolean;
158
+ export declare const IS_PIPELINE_LOGIC_VALIDATED: boolean;
159
+ /**
160
+ * @@@
161
+ *
162
+ * @private within the repository
163
+ */
164
+ export declare const IS_COST_PREVENTED: boolean;
152
165
  /**
153
166
  * TODO: [🧠][🧜‍♂️] Maybe join remoteUrl and path into single value
154
167
  */
@@ -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
  * @@@
@@ -14,7 +15,7 @@ export type PipelineExecutorResult = {
14
15
  *
15
16
  * Note: If the execution was not successful, there are only some of the result parameters
16
17
  */
17
- readonly outputParameters: Parameters;
18
+ readonly outputParameters: Readonly<Parameters>;
18
19
  /**
19
20
  * Whether the execution was successful, details are aviable in `executionReport`
20
21
  */
@@ -22,26 +23,26 @@ export type PipelineExecutorResult = {
22
23
  /**
23
24
  * Added usage of whole execution, detailed usage is aviable in `executionReport`
24
25
  */
25
- readonly usage: PromptResultUsage;
26
+ readonly usage: ReadonlyDeep<PromptResultUsage>;
26
27
  /**
27
28
  * Errors that occured during the execution, details are aviable in `executionReport`
28
29
  */
29
- readonly errors: Array<ErrorJson>;
30
+ readonly errors: ReadonlyDeep<Array<ErrorJson>>;
30
31
  /**
31
32
  * Warnings that occured during the execution, details are aviable in `executionReport`
32
33
  */
33
- readonly warnings: Array<ErrorJson>;
34
+ readonly warnings: ReadonlyDeep<Array<ErrorJson>>;
34
35
  /**
35
36
  * The report of the execution with all details
36
37
  */
37
- readonly executionReport: ExecutionReportJson;
38
+ readonly executionReport: ReadonlyDeep<ExecutionReportJson>;
38
39
  /**
39
40
  * The prepared pipeline that was used for the execution
40
41
  *
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
  /**
47
48
  * TODO: [🧠] Should this file be in /execution or /types folder?
@@ -0,0 +1,45 @@
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
+ /**
14
+ * @@@
15
+ */
16
+ $prompt?: Prompt;
17
+ /**
18
+ * @@@
19
+ */
20
+ $chatResult?: ChatPromptResult;
21
+ /**
22
+ * @@@
23
+ */
24
+ $completionResult?: CompletionPromptResult;
25
+ /**
26
+ * @@@
27
+ */
28
+ $embeddingResult?: EmbeddingPromptResult;
29
+ /**
30
+ * @@@
31
+ */
32
+ $result: PromptResult | null;
33
+ /**
34
+ * @@@
35
+ */
36
+ $resultString: string | null;
37
+ /**
38
+ * @@@
39
+ */
40
+ $expectError: ExpectError | null;
41
+ /**
42
+ * @@@
43
+ */
44
+ $scriptPipelineExecutionErrors: Array<Error>;
45
+ };
@@ -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,40 @@
1
+ import type { CsvSettings } from '../../formats/csv/CsvSettings';
2
+ export type CreatePipelineExecutorSettings = {
3
+ /**
4
+ * When executor does not satisfy expectations it will be retried this amount of times
5
+ *
6
+ * @default MAX_EXECUTION_ATTEMPTS
7
+ */
8
+ readonly maxExecutionAttempts: number;
9
+ /**
10
+ * Maximum number of tasks running in parallel
11
+ *
12
+ * @default MAX_PARALLEL_COUNT
13
+ */
14
+ readonly maxParallelCount: number;
15
+ /**
16
+ * If true, the preparation logs additional information
17
+ *
18
+ * @default false
19
+ */
20
+ readonly isVerbose: boolean;
21
+ /**
22
+ * Settings for CSV format
23
+ *
24
+ * @default DEFAULT_CSV_SETTINGS
25
+ */
26
+ readonly csvSettings: CsvSettings;
27
+ /**
28
+ * If you pass fully prepared pipeline, this does not matter
29
+ *
30
+ * Otherwise:
31
+ * If false or not set, warning is shown when pipeline is not prepared
32
+ * If true, warning is suppressed
33
+ *
34
+ * @default false
35
+ */
36
+ readonly isNotPreparedWarningSupressed: boolean;
37
+ };
38
+ /**
39
+ * TODO: [🤹‍♂️] More granular setting for limits of execution + better waiting for queue
40
+ */
@@ -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
+ 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
+ */