@promptbook/types 0.69.0-1 → 0.69.0-11

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 (51) hide show
  1. package/README.md +17 -58
  2. package/esm/typings/src/_packages/core.index.d.ts +5 -1
  3. package/esm/typings/src/_packages/types.index.d.ts +8 -0
  4. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  5. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +2 -6
  6. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +26 -0
  7. package/esm/typings/src/commands/FOREACH/foreachCommand.test.d.ts +3 -0
  8. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -1
  9. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -4
  10. package/esm/typings/src/config.d.ts +7 -1
  11. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
  12. package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
  13. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -0
  14. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +5 -3
  15. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +21 -0
  16. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +20 -0
  17. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +33 -0
  18. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
  19. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +55 -0
  20. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +62 -0
  21. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatCells.d.ts +21 -0
  22. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
  23. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  24. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  25. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  26. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  27. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  28. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  29. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  30. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +9 -12
  31. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +30 -0
  32. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +3 -2
  33. package/esm/typings/src/formats/index.d.ts +1 -1
  34. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +1 -1
  35. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +17 -0
  36. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +1 -1
  37. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  38. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  39. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +3 -0
  40. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  41. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  42. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  43. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  44. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  45. package/package.json +2 -2
  46. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  47. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  48. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → parameters/extractParameterNames.test.d.ts} +0 -0
  49. /package/esm/typings/src/{collection/constructors/createCollectionFromDirectory.test.d.ts → utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
  50. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → parameters/replaceParameters.test.d.ts} +0 -0
  51. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → utils/validators/parameterName/validateParameterName.test.d.ts} +0 -0
@@ -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>;
@@ -0,0 +1,27 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
4
+ import type { string_markdown } from '../../types/typeAliases';
5
+ import type { string_parameter_value } from '../../types/typeAliases';
6
+ /**
7
+ * @@@
8
+ *
9
+ * @private internal type of `getKnowledgeForTemplate`
10
+ */
11
+ type GetKnowledgeForTemplateOptions = {
12
+ /**
13
+ * @@@
14
+ */
15
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
16
+ /**
17
+ * @@@
18
+ */
19
+ readonly template: ReadonlyDeep<TemplateJson>;
20
+ };
21
+ /**
22
+ * @@@
23
+ *
24
+ * @private internal utility of `createPipelineExecutor`
25
+ */
26
+ export declare function getKnowledgeForTemplate(options: GetKnowledgeForTemplateOptions): Promise<string_parameter_value & string_markdown>;
27
+ export {};
@@ -0,0 +1,30 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
4
+ import type { ReservedParameters } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal type of `getReservedParametersForTemplate`
9
+ */
10
+ type GetReservedParametersForTemplateOptions = {
11
+ /**
12
+ * @@@
13
+ */
14
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
15
+ /**
16
+ * @@@
17
+ */
18
+ readonly template: ReadonlyDeep<TemplateJson>;
19
+ /**
20
+ * @@@
21
+ */
22
+ readonly pipelineIdentification: string;
23
+ };
24
+ /**
25
+ * @@@
26
+ *
27
+ * @private internal utility of `createPipelineExecutor`
28
+ */
29
+ export declare function getReservedParametersForTemplate(options: GetReservedParametersForTemplateOptions): Promise<Readonly<ReservedParameters>>;
30
+ 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 getSamplesForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
@@ -24,4 +24,6 @@ export declare function checkExpectations(expectations: Expectations, value: str
24
24
  export declare function isPassingExpectations(expectations: Expectations, value: string): boolean;
25
25
  /**
26
26
  * TODO: [💝] Unite object for expecting amount and format
27
+ * TODO: [🧠][🤠] This should be part of `TextFormatDefinition`
28
+ * Note: [💝] and [🤠] are interconnected together
27
29
  */
@@ -7,11 +7,10 @@ import type { PromptResultUsage } from '../PromptResultUsage';
7
7
  */
8
8
  export declare function usageToHuman(usage: PromptResultUsage): string_markdown;
9
9
  /**
10
- * TODO: Use "$1" not "1 USD"
11
- * TODO: Use markdown formatting like "Cost approximately **$1**"
12
- * TODO: Report in minutes, seconds, days NOT 0.1 hours
10
+ * TODO: [🍓][🧞‍♂️] Use "$1" not "1 USD"
11
+ * TODO: [🍓][🧞‍♂️] Use markdown formatting like "Cost approximately **$1**"
12
+ * TODO: [🍓][🧞‍♂️] Report in minutes, seconds, days NOT 0.1 hours
13
13
  * TODO: [🧠] Maybe make from `uncertainNumberToHuman` separate exported utility
14
- * TODO: When negligible usage, report "Negligible" or just don't report it
15
14
  * TODO: [🧠] Maybe use "~" instead of "approximately"
16
15
  * TODO: [🏛] Maybe make some markdown builder
17
16
  */
@@ -1,22 +1,24 @@
1
+ import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
1
2
  import type { string_mime_type } from '../../types/typeAliases';
2
3
  import type { string_name } from '../../types/typeAliases';
4
+ import type { FormatSubvalueDefinition } from './FormatSubvalueDefinition';
3
5
  /**
4
6
  * A format definition is a set of functions that define how to validate, heal and convert response from LLM
5
7
  *
6
8
  * @see https://github.com/webgptorg/promptbook/discussions/36
7
9
  * @private still in development [🏢]
8
10
  */
9
- export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema extends object> = {
11
+ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema> = {
10
12
  /**
11
13
  * The name of the format used in .ptbk.md files
12
14
  *
13
15
  * @sample "JSON"
14
16
  */
15
- readonly name: string_name;
17
+ readonly formatName: string_name & string_SCREAMING_CASE;
16
18
  /**
17
- * Aliases for the name
19
+ * Aliases for the `formatName`
18
20
  */
19
- readonly aliases?: Array<string_name>;
21
+ readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
20
22
  /**
21
23
  * The mime type of the format (if any)
22
24
  *
@@ -51,17 +53,12 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
51
53
  */
52
54
  heal(value: string, scheme?: TSchema): TValue;
53
55
  /**
54
- * Parses just the values and removes structural information
55
- *
56
- * Note: This is useful when you want to combine format expectations with counting words, characters,...
57
- *
58
- * @param value The value to check, for example "{\"name\": "John Smith"}"
59
- * @param schema Optional schema
60
- * @example "{\"name\": "John Smith"}" -> ["John Smith"]
56
+ * @@@
61
57
  */
62
- extractValues(value: string, schema?: TSchema): Array<string>;
58
+ readonly subvalueDefinitions: Array<FormatSubvalueDefinition<TValue>>;
63
59
  };
64
60
  /**
61
+ * TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
65
62
  * TODO: [♏] Add some prepare hook to modify prompt according to the format
66
63
  * TODO: [🍓]`name` and `aliases` should be UPPERCASE only and interpreted as case-insensitive (via normalization)
67
64
  * TODO: [🍓][👨‍⚖️] Compute TPartialValue dynamically - PartialString<TValue>
@@ -0,0 +1,30 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
3
+ import type { Parameters } from '../../types/typeAliases';
4
+ import type { string_name } from '../../types/typeAliases';
5
+ /**
6
+ * @@@
7
+ */
8
+ export type FormatSubvalueDefinition<TValue extends string> = {
9
+ /**
10
+ * The name of the format used in .ptbk.md files
11
+ *
12
+ * @sample "CELL"
13
+ */
14
+ readonly subvalueName: string_name & string_SCREAMING_CASE;
15
+ /**
16
+ * Aliases for the `subvalueName`
17
+ */
18
+ readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
19
+ /**
20
+ * Maps values
21
+ *
22
+ * For example, if you have a JSON object and you want to map all values to uppercase
23
+ * Or iterate over all CSV cells @@@
24
+ */
25
+ mapValues(value: TValue, mapCallback: (subvalues: Parameters, index: number) => Promisable<string>): Promise<string>;
26
+ };
27
+ /**
28
+ * TODO: [🧠][🦥] Better (less confusing) name for "cell" / "subvalue" / "subparameter"
29
+ * Note: [👩🏾‍🤝‍🧑🏽]
30
+ */
@@ -2,13 +2,14 @@ import type { FormatDefinition } from '../_common/FormatDefinition';
2
2
  /**
3
3
  * Definition for CSV spreadsheet
4
4
  *
5
- * @private still in development [🏢]
5
+ * @public exported from `@promptbook/core`
6
+ * <- TODO: [🏢] Export from package `@promptbook/csv`
6
7
  */
7
8
  export declare const CsvFormatDefinition: FormatDefinition<string, string, object>;
8
9
  /**
9
10
  * TODO: [🍓] In `CsvFormatDefinition` implement simple `isValid`
10
11
  * TODO: [🍓] In `CsvFormatDefinition` implement partial `canBeValid`
11
12
  * TODO: [🍓] In `CsvFormatDefinition` implement `heal
12
- * TODO: [🍓] In `CsvFormatDefinition` implement `extractValues`
13
+ * TODO: [🍓] In `CsvFormatDefinition` implement `subvalueDefinitions`
13
14
  * TODO: [🏢] Allow to expect something inside CSV objects and other formats
14
15
  */
@@ -3,4 +3,4 @@
3
3
  *
4
4
  * @private internal index of `...` <- TODO [🏢]
5
5
  */
6
- export declare const FORMAT_DEFINITIONS: import("./_common/FormatDefinition").FormatDefinition<string, string, object>[];
6
+ export declare const FORMAT_DEFINITIONS: readonly [import("./_common/FormatDefinition").FormatDefinition<string, string, object>, import("./_common/FormatDefinition").FormatDefinition<string, string, object>, import("./_common/FormatDefinition").FormatDefinition<string, string, never>, import("./_common/FormatDefinition").FormatDefinition<string, string, object>];
@@ -13,6 +13,6 @@ export declare const JsonFormatDefinition: FormatDefinition<string, string, obje
13
13
  * TODO: [🍓] In `JsonFormatDefinition` implement simple `isValid`
14
14
  * TODO: [🍓] In `JsonFormatDefinition` implement partial `canBeValid`
15
15
  * TODO: [🍓] In `JsonFormatDefinition` implement `heal
16
- * TODO: [🍓] In `JsonFormatDefinition` implement `extractValues`
16
+ * TODO: [🍓] In `JsonFormatDefinition` implement `subvalueDefinitions`
17
17
  * TODO: [🏢] Allow to expect something inside JSON objects and other formats
18
18
  */
@@ -0,0 +1,17 @@
1
+ import type { FormatDefinition } from '../_common/FormatDefinition';
2
+ /**
3
+ * Definition for any text - this will be always valid
4
+ *
5
+ * Note: This is not useful for validation, but for splitting and mapping with `subvalueDefinitions`
6
+ *
7
+ * @public exported from `@promptbook/core`
8
+ */
9
+ export declare const TextFormatDefinition: FormatDefinition<string, string, never>;
10
+ /**
11
+ * TODO: [🧠][🤠] Here should be all words, characters, lines, paragraphs, pages aviable as subvalues
12
+ * TODO: [🍓] In `TextFormatDefinition` implement simple `isValid`
13
+ * TODO: [🍓] In `TextFormatDefinition` implement partial `canBeValid`
14
+ * TODO: [🍓] In `TextFormatDefinition` implement `heal
15
+ * TODO: [🍓] In `TextFormatDefinition` implement `subvalueDefinitions`
16
+ * TODO: [🏢] Allow to expect something inside each item of list and other formats
17
+ */
@@ -13,6 +13,6 @@ export declare const XmlFormatDefinition: FormatDefinition<string, string, objec
13
13
  * TODO: [🍓] In `XmlFormatDefinition` implement simple `isValid`
14
14
  * TODO: [🍓] In `XmlFormatDefinition` implement partial `canBeValid`
15
15
  * TODO: [🍓] In `XmlFormatDefinition` implement `heal
16
- * TODO: [🍓] In `XmlFormatDefinition` implement `extractValues`
16
+ * TODO: [🍓] In `XmlFormatDefinition` implement `subvalueDefinitions`
17
17
  * TODO: [🏢] Allow to expect something inside XML and other formats
18
18
  */
@@ -33,6 +33,7 @@ export type ParameterJson = {
33
33
  readonly sampleValues?: Array<string_parameter_value>;
34
34
  };
35
35
  /**
36
+ * TODO: [🧠] !!!!!! Should be here registered subparameter from foreach or not?
36
37
  * TODO: [♈] Probbably move expectations from templates to parameters
37
38
  * TODO: [🍙] Make some standard order of json properties
38
39
  */
@@ -1,3 +1,4 @@
1
+ import type { ForeachJson } from '../../commands/FOREACH/ForeachJson';
1
2
  import type { FormatCommand } from '../../commands/FORMAT/FormatCommand';
2
3
  import type { TemplateType } from '../../commands/TEMPLATE/TemplateTypes';
3
4
  import type { string_javascript } from '../typeAliases';
@@ -42,6 +43,10 @@ export interface TemplateJsonCommon {
42
43
  * @see https://github.com/webgptorg/promptbook/discussions/66
43
44
  */
44
45
  readonly jokerParameterNames?: Array<string_parameter_name>;
46
+ /**
47
+ * @@@
48
+ */
49
+ readonly foreach?: ForeachJson;
45
50
  /**
46
51
  * Type of the execution
47
52
  * This determines if the template is send to LLM, user or some scripting evaluation
@@ -39,3 +39,6 @@ export type ExecutionReportJson = {
39
39
  */
40
40
  readonly promptExecutions: Array<ExecutionPromptReportJson>;
41
41
  };
42
+ /**
43
+ * TODO: !!!!!! FOREACH in report
44
+ */
@@ -6,3 +6,6 @@ import type { ExpectationUnit } from '../../types/PipelineJson/Expectations';
6
6
  * @public exported from `@promptbook/utils`
7
7
  */
8
8
  export declare const CountUtils: Record<ExpectationUnit, (text: string) => ExpectationAmount>;
9
+ /**
10
+ * TODO: [🧠][🤠] This should be probbably as part of `TextFormatDefinition`
11
+ */
@@ -1,5 +1,5 @@
1
- import type { string_parameter_name } from '../types/typeAliases';
2
- import type { string_template } from '../types/typeAliases';
1
+ import type { string_parameter_name } from '../../types/typeAliases';
2
+ import type { string_template } from '../../types/typeAliases';
3
3
  /**
4
4
  * Parses the template and returns the list of all parameter names
5
5
  *
@@ -0,0 +1,27 @@
1
+ import type { string_parameter_name } from '../../types/typeAliases';
2
+ import type { string_parameter_value } from '../../types/typeAliases';
3
+ /**
4
+ * @@@
5
+ */
6
+ type MakeapAvailableToExpectedParametersOptions = {
7
+ /**
8
+ * @@@
9
+ */
10
+ readonly expectedParameters: Readonly<Record<string_parameter_name, null>>;
11
+ /**
12
+ * @@@
13
+ */
14
+ readonly availableParameters: Readonly<Record<string_parameter_name, string_parameter_value>>;
15
+ };
16
+ /**
17
+ * Maps available parameters to expected parameters
18
+ *
19
+ * The strategy is:
20
+ * 1) @@@
21
+ * 2) @@@
22
+ *
23
+ * @throws {PipelineExecutionError} @@@
24
+ * @private within the repository used in `createPipelineExecutor`
25
+ */
26
+ export declare function mapAvailableToExpectedParameters(options: MakeapAvailableToExpectedParametersOptions): Readonly<Record<string_parameter_name, string_parameter_value>>;
27
+ export {};
@@ -1,5 +1,5 @@
1
- import type { Parameters } from '../types/typeAliases';
2
- import type { string_template } from '../types/typeAliases';
1
+ import type { Parameters } from '../../types/typeAliases';
2
+ import type { string_template } from '../../types/typeAliases';
3
3
  /**
4
4
  * Replaces parameters in template with values from parameters object
5
5
  *
@@ -0,0 +1,10 @@
1
+ import type { string_parameter_name } from '../../../types/typeAliases';
2
+ /**
3
+ * Function `validateParameterName` will @@@
4
+ *
5
+ * @param parameterName @@@
6
+ * @returns @@@
7
+ * @throws {ParseError} @@@
8
+ * @private within the repository
9
+ */
10
+ export declare function validateParameterName(parameterName: string): string_parameter_name;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/types",
3
- "version": "0.69.0-1",
3
+ "version": "0.69.0-11",
4
4
  "description": "Supercharge your use of large language models",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -45,6 +45,6 @@
45
45
  ],
46
46
  "typings": "./esm/typings/src/_packages/types.index.d.ts",
47
47
  "peerDependencies": {
48
- "@promptbook/core": "0.69.0-1"
48
+ "@promptbook/core": "0.69.0-11"
49
49
  }
50
50
  }
@@ -1,72 +0,0 @@
1
- import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
2
- import type { ExecutionTools } from './ExecutionTools';
3
- import type { PipelineExecutor } from './PipelineExecutor';
4
- type CreatePipelineExecutorSettings = {
5
- /**
6
- * When executor does not satisfy expectations it will be retried this amount of times
7
- *
8
- * @default MAX_EXECUTION_ATTEMPTS
9
- */
10
- readonly maxExecutionAttempts?: number;
11
- /**
12
- * Maximum number of tasks running in parallel
13
- *
14
- * @default MAX_PARALLEL_COUNT
15
- */
16
- readonly maxParallelCount?: number;
17
- /**
18
- * If true, the preparation logs additional information
19
- *
20
- * @default false
21
- */
22
- readonly isVerbose?: boolean;
23
- /**
24
- * If you pass fully prepared pipeline, this does not matter
25
- *
26
- * Otherwise:
27
- * If false or not set, warning is shown when pipeline is not prepared
28
- * If true, warning is suppressed
29
- *
30
- * @default false
31
- */
32
- readonly isNotPreparedWarningSupressed?: boolean;
33
- };
34
- /**
35
- * Options for `createPipelineExecutor`
36
- */
37
- interface CreatePipelineExecutorOptions {
38
- /**
39
- * The pipeline to be executed
40
- */
41
- readonly pipeline: PipelineJson;
42
- /**
43
- * The execution tools to be used during the execution of the pipeline
44
- */
45
- readonly tools: ExecutionTools;
46
- /**
47
- * Optional settings for the pipeline executor
48
- */
49
- readonly settings?: Partial<CreatePipelineExecutorSettings>;
50
- }
51
- /**
52
- * Creates executor function from pipeline and execution tools.
53
- *
54
- * @returns The executor function
55
- * @throws {PipelineLogicError} on logical error in the pipeline
56
- * @public exported from `@promptbook/core`
57
- */
58
- export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
59
- export {};
60
- /**
61
- * TODO: !!! Identify not only pipeline BUT exact template ${block(pipelineIdentification)}
62
- * TODO: Use isVerbose here (not only pass to `preparePipeline`)
63
- * TODO: [🧠][🌳] Use here `countTotalUsage` and put preparation and prepared pipiline to report
64
- * TODO: [🪂] Use maxParallelCount here (not only pass to `preparePipeline`)
65
- * TODO: [♈] Probbably move expectations from templates to parameters
66
- * TODO: [🧠] When not meet expectations in DIALOG_TEMPLATE, make some way to tell the user
67
- * TODO: [👧] Strongly type the executors to avoid need of remove nullables whtn noUncheckedIndexedAccess in tsconfig.json
68
- * Note: CreatePipelineExecutorOptions are just connected to PipelineExecutor so do not extract to types folder
69
- * TODO: [🧠][3] transparent = (report intermediate parameters) / opaque execution = (report only output parameters) progress reporting mode
70
- * TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
71
- * TODO: [🧠][💷] `assertsExecutionSuccessful` should be the method of `PipelineExecutor` result BUT maybe NOT to preserve pure JSON object
72
- */
@@ -1,16 +0,0 @@
1
- import type { FormatDefinition } from '../_common/FormatDefinition';
2
- /**
3
- * Definition for list of multiple items
4
- *
5
- * Note: list is just a string with multiple lines or multiple items separated by comma
6
- *
7
- * @private still in development [🏢]
8
- */
9
- export declare const ListFormatDefinition: FormatDefinition<string, string, object>;
10
- /**
11
- * TODO: [🍓] In `ListFormatDefinition` implement simple `isValid`
12
- * TODO: [🍓] In `ListFormatDefinition` implement partial `canBeValid`
13
- * TODO: [🍓] In `ListFormatDefinition` implement `heal
14
- * TODO: [🍓] In `ListFormatDefinition` implement `extractValues`
15
- * TODO: [🏢] Allow to expect something inside each item of list and other formats
16
- */