@promptbook/cli 0.72.0-0 → 0.72.0-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -7
- package/esm/index.es.js +2462 -1407
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/core.index.d.ts +11 -1
- package/esm/typings/src/_packages/openai.index.d.ts +4 -0
- package/esm/typings/src/_packages/types.index.d.ts +12 -0
- package/esm/typings/src/_packages/utils.index.d.ts +4 -4
- package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +3 -2
- package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +23 -0
- package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +1 -1
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +16 -1
- package/esm/typings/src/config.d.ts +14 -1
- package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
- package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
- package/esm/typings/src/conversion/validation/validatePipeline.d.ts +5 -0
- package/esm/typings/src/execution/PipelineExecutorResult.d.ts +9 -8
- package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +20 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +40 -0
- package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +10 -0
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +55 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +62 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatCells.d.ts +19 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
- package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
- package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
- package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
- package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
- package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
- package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
- package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
- package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
- package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +30 -0
- package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
- package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
- package/esm/typings/src/formats/index.d.ts +1 -1
- package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
- package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
- package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +9 -0
- package/esm/typings/src/llm-providers/openai/createOpenAiAssistantExecutionTools.d.ts +15 -0
- package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +9 -0
- package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +9 -0
- package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
- package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
- package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +3 -0
- package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
- package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
- package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
- package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
- package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
- package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
- package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
- package/package.json +17 -12
- package/umd/index.umd.js +2466 -1410
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
- package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
- /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → parameters/extractParameterNames.test.d.ts} +0 -0
- /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
- /package/esm/typings/src/utils/{replaceParameters.test.d.ts → parameters/replaceParameters.test.d.ts} +0 -0
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
*/
|
|
@@ -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: Readonly<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 {};
|
package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts
ADDED
|
@@ -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,27 @@
|
|
|
1
1
|
import type { string_mime_type } from '../../types/typeAliases';
|
|
2
2
|
import type { string_name } from '../../types/typeAliases';
|
|
3
|
+
import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
4
|
+
import type { empty_object } from '../../utils/organization/empty_object';
|
|
5
|
+
import type { FormatSubvalueDefinition } from './FormatSubvalueDefinition';
|
|
3
6
|
/**
|
|
4
7
|
* A format definition is a set of functions that define how to validate, heal and convert response from LLM
|
|
5
8
|
*
|
|
9
|
+
* @@@ Describe setting vs schema
|
|
10
|
+
*
|
|
6
11
|
* @see https://github.com/webgptorg/promptbook/discussions/36
|
|
7
12
|
* @private still in development [🏢]
|
|
8
13
|
*/
|
|
9
|
-
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSchema extends
|
|
14
|
+
export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends string, TSettings extends empty_object, TSchema extends empty_object> = {
|
|
10
15
|
/**
|
|
11
16
|
* The name of the format used in .ptbk.md files
|
|
12
17
|
*
|
|
13
18
|
* @sample "JSON"
|
|
14
19
|
*/
|
|
15
|
-
readonly
|
|
20
|
+
readonly formatName: string_name & string_SCREAMING_CASE;
|
|
16
21
|
/**
|
|
17
|
-
* Aliases for the
|
|
22
|
+
* Aliases for the `formatName`
|
|
18
23
|
*/
|
|
19
|
-
readonly aliases?: Array<string_name>;
|
|
24
|
+
readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
|
|
20
25
|
/**
|
|
21
26
|
* The mime type of the format (if any)
|
|
22
27
|
*
|
|
@@ -29,7 +34,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
29
34
|
* @param value The value to check, for example "{\"foo\": true}"
|
|
30
35
|
* @param schema Optional schema to do extra validation
|
|
31
36
|
*/
|
|
32
|
-
isValid(value: string, schema?: TSchema): value is TValue;
|
|
37
|
+
isValid(value: string, settings?: TSettings, schema?: TSchema): value is TValue;
|
|
33
38
|
/**
|
|
34
39
|
* Check if a first part of a value is valid
|
|
35
40
|
*
|
|
@@ -38,7 +43,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
38
43
|
* @param partialValue Partial value to check, for example "{\"foo\": t"
|
|
39
44
|
* @param schema Optional schema to do extra validation
|
|
40
45
|
*/
|
|
41
|
-
canBeValid(partialValue: string, schema?: TSchema): partialValue is TPartialValue;
|
|
46
|
+
canBeValid(partialValue: string, settings?: TSettings, schema?: TSchema): partialValue is TPartialValue;
|
|
42
47
|
/**
|
|
43
48
|
* Heal a value to make it valid if possible
|
|
44
49
|
*
|
|
@@ -49,17 +54,11 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
|
|
|
49
54
|
* @param scheme
|
|
50
55
|
* @throws {Error} If the value cannot be healed
|
|
51
56
|
*/
|
|
52
|
-
heal(value: string, scheme?: TSchema): TValue;
|
|
57
|
+
heal(value: string, settings?: TSettings, scheme?: TSchema): TValue;
|
|
53
58
|
/**
|
|
54
|
-
*
|
|
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"]
|
|
59
|
+
* @@@
|
|
61
60
|
*/
|
|
62
|
-
|
|
61
|
+
readonly subvalueDefinitions: Array<FormatSubvalueDefinition<TValue, TSettings>>;
|
|
63
62
|
};
|
|
64
63
|
/**
|
|
65
64
|
* TODO: [♏] Add some prepare hook to modify prompt according to the format
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { Parameters } from '../../types/typeAliases';
|
|
3
|
+
import type { string_name } from '../../types/typeAliases';
|
|
4
|
+
import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
5
|
+
import type { empty_object } from '../../utils/organization/empty_object';
|
|
6
|
+
/**
|
|
7
|
+
* @@@
|
|
8
|
+
*/
|
|
9
|
+
export type FormatSubvalueDefinition<TValue extends string, TSettings extends empty_object> = {
|
|
10
|
+
/**
|
|
11
|
+
* The name of the format used in .ptbk.md files
|
|
12
|
+
*
|
|
13
|
+
* @sample "CELL"
|
|
14
|
+
*/
|
|
15
|
+
readonly subvalueName: string_name & string_SCREAMING_CASE;
|
|
16
|
+
/**
|
|
17
|
+
* Aliases for the `subvalueName`
|
|
18
|
+
*/
|
|
19
|
+
readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
|
|
20
|
+
/**
|
|
21
|
+
* Maps values
|
|
22
|
+
*
|
|
23
|
+
* For example, if you have a JSON object and you want to map all values to uppercase
|
|
24
|
+
* Or iterate over all CSV cells @@@
|
|
25
|
+
*/
|
|
26
|
+
mapValues(value: TValue, settings: TSettings, mapCallback: (subvalues: Parameters, index: number) => Promisable<string>): Promise<string>;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Note: [👩🏾🤝🧑🏽]
|
|
30
|
+
*/
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
1
2
|
import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
3
|
+
import type { CsvSettings } from './CsvSettings';
|
|
2
4
|
/**
|
|
3
5
|
* Definition for CSV spreadsheet
|
|
4
6
|
*
|
|
5
|
-
* @
|
|
7
|
+
* @public exported from `@promptbook/core`
|
|
8
|
+
* <- TODO: [🏢] Export from package `@promptbook/csv`
|
|
6
9
|
*/
|
|
7
|
-
export declare const CsvFormatDefinition: FormatDefinition<string, string,
|
|
10
|
+
export declare const CsvFormatDefinition: FormatDefinition<string, string, CsvSettings, TODO_any>;
|
|
8
11
|
/**
|
|
9
12
|
* TODO: [🍓] In `CsvFormatDefinition` implement simple `isValid`
|
|
10
13
|
* TODO: [🍓] In `CsvFormatDefinition` implement partial `canBeValid`
|
|
11
14
|
* TODO: [🍓] In `CsvFormatDefinition` implement `heal
|
|
12
|
-
* TODO: [🍓] In `CsvFormatDefinition` implement `
|
|
15
|
+
* TODO: [🍓] In `CsvFormatDefinition` implement `subvalueDefinitions`
|
|
13
16
|
* TODO: [🏢] Allow to expect something inside CSV objects and other formats
|
|
14
17
|
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ParseConfig, UnparseConfig } from 'papaparse';
|
|
2
|
+
/**
|
|
3
|
+
* @@@
|
|
4
|
+
*/
|
|
5
|
+
export type CsvSettings = Pick<ParseConfig & UnparseConfig, 'delimiter' | 'quoteChar' | 'newline' | 'skipEmptyLines'>;
|
|
6
|
+
/**
|
|
7
|
+
* @@@
|
|
8
|
+
*
|
|
9
|
+
* @public exported from `@promptbook/core`
|
|
10
|
+
*/
|
|
11
|
+
export declare const MANDATORY_CSV_SETTINGS: Readonly<{
|
|
12
|
+
readonly header: true;
|
|
13
|
+
}>;
|
|
@@ -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,
|
|
6
|
+
export declare const FORMAT_DEFINITIONS: readonly [import("./_common/FormatDefinition").FormatDefinition<string, string, any, any>, import("./_common/FormatDefinition").FormatDefinition<string, string, any, any>, import("./_common/FormatDefinition").FormatDefinition<string, string, any, any>, import("./_common/FormatDefinition").FormatDefinition<string, string, import("./csv/CsvSettings").CsvSettings, any>];
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
1
2
|
import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
2
3
|
/**
|
|
3
4
|
* Definition for JSON format
|
|
4
5
|
*
|
|
5
6
|
* @private still in development [🏢]
|
|
6
7
|
*/
|
|
7
|
-
export declare const JsonFormatDefinition: FormatDefinition<string, string,
|
|
8
|
+
export declare const JsonFormatDefinition: FormatDefinition<string, string, TODO_any, TODO_any>;
|
|
8
9
|
/**
|
|
9
10
|
* TODO: [🧠] Maybe propper instance of object
|
|
10
11
|
* TODO: [0] Make string_serialized_json
|
|
11
|
-
* TODO: [1] Make type for JSON Schema
|
|
12
|
+
* TODO: [1] Make type for JSON Settings and Schema
|
|
12
13
|
* TODO: [🧠] What to use for validating JSONs - JSON Schema, ZoD, typescript types/interfaces,...?
|
|
13
14
|
* TODO: [🍓] In `JsonFormatDefinition` implement simple `isValid`
|
|
14
15
|
* TODO: [🍓] In `JsonFormatDefinition` implement partial `canBeValid`
|
|
15
16
|
* TODO: [🍓] In `JsonFormatDefinition` implement `heal
|
|
16
|
-
* TODO: [🍓] In `JsonFormatDefinition` implement `
|
|
17
|
+
* TODO: [🍓] In `JsonFormatDefinition` implement `subvalueDefinitions`
|
|
17
18
|
* TODO: [🏢] Allow to expect something inside JSON objects and other formats
|
|
18
19
|
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
2
|
+
import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
3
|
+
/**
|
|
4
|
+
* Definition for any text - this will be always valid
|
|
5
|
+
*
|
|
6
|
+
* Note: This is not useful for validation, but for splitting and mapping with `subvalueDefinitions`
|
|
7
|
+
*
|
|
8
|
+
* @public exported from `@promptbook/core`
|
|
9
|
+
*/
|
|
10
|
+
export declare const TextFormatDefinition: FormatDefinition<string, string, TODO_any, TODO_any>;
|
|
11
|
+
/**
|
|
12
|
+
* TODO: [1] Make type for XML Text and Schema
|
|
13
|
+
* TODO: [🧠][🤠] Here should be all words, characters, lines, paragraphs, pages aviable as subvalues
|
|
14
|
+
* TODO: [🍓] In `TextFormatDefinition` implement simple `isValid`
|
|
15
|
+
* TODO: [🍓] In `TextFormatDefinition` implement partial `canBeValid`
|
|
16
|
+
* TODO: [🍓] In `TextFormatDefinition` implement `heal
|
|
17
|
+
* TODO: [🍓] In `TextFormatDefinition` implement `subvalueDefinitions`
|
|
18
|
+
* TODO: [🏢] Allow to expect something inside each item of list and other formats
|
|
19
|
+
*/
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
1
2
|
import type { FormatDefinition } from '../_common/FormatDefinition';
|
|
2
3
|
/**
|
|
3
4
|
* Definition for XML format
|
|
4
5
|
*
|
|
5
6
|
* @private still in development [🏢]
|
|
6
7
|
*/
|
|
7
|
-
export declare const XmlFormatDefinition: FormatDefinition<string, string,
|
|
8
|
+
export declare const XmlFormatDefinition: FormatDefinition<string, string, TODO_any, TODO_any>;
|
|
8
9
|
/**
|
|
9
10
|
* TODO: [🧠] Maybe propper instance of object
|
|
10
11
|
* TODO: [0] Make string_serialized_xml
|
|
11
|
-
* TODO: [1] Make type for XML Schema
|
|
12
|
+
* TODO: [1] Make type for XML Settings and Schema
|
|
12
13
|
* TODO: [🧠] What to use for validating XMLs - XSD,...
|
|
13
14
|
* TODO: [🍓] In `XmlFormatDefinition` implement simple `isValid`
|
|
14
15
|
* TODO: [🍓] In `XmlFormatDefinition` implement partial `canBeValid`
|
|
15
16
|
* TODO: [🍓] In `XmlFormatDefinition` implement `heal
|
|
16
|
-
* TODO: [🍓] In `XmlFormatDefinition` implement `
|
|
17
|
+
* TODO: [🍓] In `XmlFormatDefinition` implement `subvalueDefinitions`
|
|
17
18
|
* TODO: [🏢] Allow to expect something inside XML and other formats
|
|
18
19
|
*/
|
|
@@ -20,7 +20,7 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
|
|
|
20
20
|
*
|
|
21
21
|
* @param options which are relevant are directly passed to the OpenAI client
|
|
22
22
|
*/
|
|
23
|
-
constructor(options
|
|
23
|
+
constructor(options: OpenAiAssistantExecutionToolsOptions);
|
|
24
24
|
get title(): string_title & string_markdown_text;
|
|
25
25
|
get description(): string_markdown;
|
|
26
26
|
/**
|
|
@@ -8,6 +8,8 @@ import type { Prompt } from '../../types/Prompt';
|
|
|
8
8
|
import type { string_markdown } from '../../types/typeAliases';
|
|
9
9
|
import type { string_markdown_text } from '../../types/typeAliases';
|
|
10
10
|
import type { string_title } from '../../types/typeAliases';
|
|
11
|
+
import type { string_token } from '../../types/typeAliases';
|
|
12
|
+
import { OpenAiAssistantExecutionTools } from './OpenAiAssistantExecutionTools';
|
|
11
13
|
import type { OpenAiExecutionToolsOptions } from './OpenAiExecutionToolsOptions';
|
|
12
14
|
/**
|
|
13
15
|
* Execution Tools for calling OpenAI API
|
|
@@ -29,6 +31,13 @@ export declare class OpenAiExecutionTools implements LlmExecutionTools {
|
|
|
29
31
|
get title(): string_title & string_markdown_text;
|
|
30
32
|
get description(): string_markdown;
|
|
31
33
|
getClient(): Promise<OpenAI>;
|
|
34
|
+
/**
|
|
35
|
+
* Create (sub)tools for calling OpenAI API Assistants
|
|
36
|
+
*
|
|
37
|
+
* @param assistantId Which assistant to use
|
|
38
|
+
* @returns Tools for calling OpenAI API Assistants with same token
|
|
39
|
+
*/
|
|
40
|
+
createAssistantSubtools(assistantId: string_token): OpenAiAssistantExecutionTools;
|
|
32
41
|
/**
|
|
33
42
|
* Check the `options` passed to `constructor`
|
|
34
43
|
*/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OpenAiAssistantExecutionTools } from './OpenAiAssistantExecutionTools';
|
|
2
|
+
import type { OpenAiAssistantExecutionToolsOptions } from './OpenAiAssistantExecutionToolsOptions';
|
|
3
|
+
/**
|
|
4
|
+
* Execution Tools for calling OpenAI API
|
|
5
|
+
*
|
|
6
|
+
* @public exported from `@promptbook/openai`
|
|
7
|
+
*/
|
|
8
|
+
export declare const createOpenAiAssistantExecutionTools: ((options: OpenAiAssistantExecutionToolsOptions) => OpenAiAssistantExecutionTools) & {
|
|
9
|
+
packageName: string;
|
|
10
|
+
className: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
|
|
14
|
+
* TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
|
|
15
|
+
*/
|
|
@@ -7,3 +7,12 @@
|
|
|
7
7
|
* @public exported from `@promptbook/cli`
|
|
8
8
|
*/
|
|
9
9
|
export declare const _OpenAiMetadataRegistration: void;
|
|
10
|
+
/**
|
|
11
|
+
* @@@ registration1 of default configuration for Open AI
|
|
12
|
+
*
|
|
13
|
+
* Note: [🏐] Configurations registrations are done in @@@ BUT constructor @@@
|
|
14
|
+
*
|
|
15
|
+
* @public exported from `@promptbook/core`
|
|
16
|
+
* @public exported from `@promptbook/cli`
|
|
17
|
+
*/
|
|
18
|
+
export declare const _OpenAiAssistantMetadataRegistration: void;
|
|
@@ -7,6 +7,15 @@
|
|
|
7
7
|
* @public exported from `@promptbook/cli`
|
|
8
8
|
*/
|
|
9
9
|
export declare const _OpenAiRegistration: void;
|
|
10
|
+
/**
|
|
11
|
+
* @@@ registration2
|
|
12
|
+
*
|
|
13
|
+
* Note: [🏐] Configurations registrations are done in @@@ BUT constructor @@@
|
|
14
|
+
*
|
|
15
|
+
* @public exported from `@promptbook/openai`
|
|
16
|
+
* @public exported from `@promptbook/cli`
|
|
17
|
+
*/
|
|
18
|
+
export declare const _OpenAiAssistantRegistration: void;
|
|
10
19
|
/**
|
|
11
20
|
* TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
|
|
12
21
|
*/
|
|
@@ -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
|
|
@@ -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,6 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Organizational helper to better mark the place where to really use empty object `{}`
|
|
3
3
|
*
|
|
4
|
+
* Note: There are 2 similar types>
|
|
5
|
+
* - `empty_object` @@@
|
|
6
|
+
* - `just_empty_object` @@@
|
|
7
|
+
*
|
|
4
8
|
* @private within the repository
|
|
5
9
|
*/
|
|
6
|
-
export type
|
|
10
|
+
export type empty_object = {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Organizational helper to better @@@@
|
|
3
|
+
*
|
|
4
|
+
* Note: There are 2 similar types>
|
|
5
|
+
* - `empty_object` @@@
|
|
6
|
+
* - `just_empty_object` @@@
|
|
7
|
+
*
|
|
8
|
+
* Note: In most cases, you should use `empty_object`
|
|
9
|
+
*
|
|
10
|
+
* @private within the repository
|
|
11
|
+
*/
|
|
12
|
+
export type just_empty_object = Record<string, never>;
|
package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts}
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { string_parameter_name } from '
|
|
2
|
-
import type { string_template } from '
|
|
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 {};
|