@promptbook/types 0.69.0-8 → 0.69.0

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 (67) hide show
  1. package/README.md +4 -1
  2. package/esm/typings/promptbook-collection/index.d.ts +0 -3
  3. package/esm/typings/src/_packages/core.index.d.ts +12 -0
  4. package/esm/typings/src/_packages/types.index.d.ts +6 -0
  5. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  6. package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
  7. package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +1 -1
  8. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +1 -1
  9. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +6 -5
  10. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +1 -2
  11. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +1 -1
  12. package/esm/typings/src/config.d.ts +11 -4
  13. package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
  14. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -3
  15. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +6 -5
  16. package/esm/typings/src/errors/AbstractFormatError.d.ts +11 -0
  17. package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
  18. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +5 -6
  19. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +24 -0
  20. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +7 -0
  21. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +3 -0
  22. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +4 -1
  23. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +3 -0
  24. package/esm/typings/src/execution/createPipelineExecutor/{30-executeFormatCells.d.ts → 30-executeFormatSubvalues.d.ts} +2 -2
  25. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +2 -8
  26. package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
  27. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  28. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  29. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
  30. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +31 -0
  31. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
  32. package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
  33. package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
  34. package/esm/typings/src/formats/index.d.ts +1 -1
  35. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
  36. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
  37. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
  38. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +1 -1
  39. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +1 -1
  40. package/esm/typings/src/llm-providers/_common/utils/cache/CacheItem.d.ts +1 -1
  41. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  42. package/esm/typings/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +2 -2
  43. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +2 -2
  44. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +1 -1
  45. package/esm/typings/src/personas/preparePersona.d.ts +1 -1
  46. package/esm/typings/src/prepare/isPipelinePrepared.d.ts +1 -1
  47. package/esm/typings/src/prepare/prepareTemplates.d.ts +1 -1
  48. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -1
  49. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +1 -1
  50. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +0 -3
  51. package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
  52. package/esm/typings/src/types/typeAliases.d.ts +1 -1
  53. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  54. package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
  55. package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
  56. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  57. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  58. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  59. package/esm/typings/src/utils/serialization/checkSerializableAsJson.d.ts +1 -1
  60. package/esm/typings/src/utils/serialization/isSerializableAsJson.d.ts +1 -1
  61. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  62. package/package.json +17 -13
  63. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  64. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → parameters/extractParameterNames.test.d.ts} +0 -0
  65. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → utils/parameters/mapAvailableToExpectedParameters.test.d.ts} +0 -0
  66. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → parameters/replaceParameters.test.d.ts} +0 -0
  67. /package/esm/typings/src/{personas/preparePersona.test.d.ts → utils/validators/parameterName/validateParameterName.test.d.ts} +0 -0
package/README.md CHANGED
@@ -16,6 +16,10 @@ Supercharge your use of large language models
16
16
 
17
17
 
18
18
 
19
+ ## ✨ New Features
20
+
21
+ - ✨ **Support of [OpenAI o1 model](https://openai.com/o1/)**
22
+
19
23
  ## 📦 Package `@promptbook/types`
20
24
 
21
25
  - Promptbooks are [divided into several](#-packages) packages, all are published from [single monorepo](https://github.com/webgptorg/promptbook).
@@ -109,7 +113,6 @@ File `write-website-content.ptbk.md`:
109
113
  > Instructions for creating web page content.
110
114
  >
111
115
  > - PIPELINE URL https://promptbook.studio/webgpt/write-website-content.ptbk.md
112
- > - PROMPTBOOK VERSION 0.0.1
113
116
  > - INPUT  PARAM `{rawTitle}` Automatically suggested a site name or empty text
114
117
  > - INPUT  PARAM `{rawAssigment}` Automatically generated site entry from image recognition
115
118
  > - OUTPUT PARAM `{websiteContent}` Web content
@@ -1,7 +1,6 @@
1
1
  declare const _default: ({
2
2
  title: string;
3
3
  pipelineUrl: string;
4
- promptbookVersion: string;
5
4
  parameters: {
6
5
  name: string;
7
6
  description: string;
@@ -24,7 +23,6 @@ declare const _default: ({
24
23
  } | {
25
24
  title: string;
26
25
  pipelineUrl: string;
27
- promptbookVersion: string;
28
26
  parameters: {
29
27
  name: string;
30
28
  description: string;
@@ -53,7 +51,6 @@ declare const _default: ({
53
51
  } | {
54
52
  title: string;
55
53
  pipelineUrl: string;
56
- promptbookVersion: string;
57
54
  parameters: {
58
55
  name: string;
59
56
  description: string;
@@ -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';
@@ -25,6 +26,7 @@ import { pipelineStringToJsonSync } from '../conversion/pipelineStringToJsonSync
25
26
  import { prettifyPipelineString } from '../conversion/prettify/prettifyPipelineString';
26
27
  import { stringifyPipelineJson } from '../conversion/utils/stringifyPipelineJson';
27
28
  import { validatePipeline } from '../conversion/validation/validatePipeline';
29
+ import { AbstractFormatError } from '../errors/AbstractFormatError';
28
30
  import { CollectionError } from '../errors/CollectionError';
29
31
  import { EnvironmentMismatchError } from '../errors/EnvironmentMismatchError';
30
32
  import { ExpectError } from '../errors/ExpectError';
@@ -45,6 +47,10 @@ import { addUsage } from '../execution/utils/addUsage';
45
47
  import { isPassingExpectations } from '../execution/utils/checkExpectations';
46
48
  import { usageToHuman } from '../execution/utils/usageToHuman';
47
49
  import { usageToWorktime } from '../execution/utils/usageToWorktime';
50
+ import { CsvFormatDefinition } from '../formats/csv/CsvFormatDefinition';
51
+ import { CsvFormatError } from '../formats/csv/CsvFormatError';
52
+ import { MANDATORY_CSV_SETTINGS } from '../formats/csv/CsvSettings';
53
+ import { TextFormatDefinition } from '../formats/text/TextFormatDefinition';
48
54
  import { CallbackInterfaceTools } from '../knowledge/dialogs/callback/CallbackInterfaceTools';
49
55
  import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
50
56
  import { prepareKnowledgePieces } from '../knowledge/prepare-knowledge/_common/prepareKnowledgePieces';
@@ -90,6 +96,7 @@ export { PIPELINE_COLLECTION_BASE_FILENAME };
90
96
  export { RESERVED_PARAMETER_NAMES };
91
97
  export { DEFAULT_REMOTE_URL };
92
98
  export { DEFAULT_REMOTE_URL_PATH };
99
+ export { DEFAULT_CSV_SETTINGS };
93
100
  export { IS_VERBOSE };
94
101
  export { pipelineJsonToString };
95
102
  export type { PipelineStringToJsonOptions };
@@ -98,6 +105,7 @@ export { pipelineStringToJsonSync };
98
105
  export { prettifyPipelineString };
99
106
  export { stringifyPipelineJson };
100
107
  export { validatePipeline };
108
+ export { AbstractFormatError };
101
109
  export { CollectionError };
102
110
  export { EnvironmentMismatchError };
103
111
  export { ExpectError };
@@ -118,6 +126,10 @@ export { addUsage };
118
126
  export { isPassingExpectations };
119
127
  export { usageToHuman };
120
128
  export { usageToWorktime };
129
+ export { CsvFormatDefinition };
130
+ export { CsvFormatError };
131
+ export { MANDATORY_CSV_SETTINGS };
132
+ export { TextFormatDefinition };
121
133
  export { CallbackInterfaceTools };
122
134
  export type { CallbackInterfaceToolsOptions };
123
135
  export { prepareKnowledgePieces };
@@ -35,6 +35,8 @@ import type { ScriptExecutionToolsExecuteOptions } from '../execution/ScriptExec
35
35
  import type { UncertainNumber } from '../execution/UncertainNumber';
36
36
  import type { UserInterfaceTools } from '../execution/UserInterfaceTools';
37
37
  import type { UserInterfaceToolsPromptDialogOptions } from '../execution/UserInterfaceTools';
38
+ import type { FormatSubvalueDefinition } from '../formats/_common/FormatSubvalueDefinition';
39
+ import type { CsvSettings } from '../formats/csv/CsvSettings';
38
40
  import type { CallbackInterfaceToolsOptions } from '../knowledge/dialogs/callback/CallbackInterfaceToolsOptions';
39
41
  import type { LlmToolsConfiguration } from '../llm-providers/_common/LlmToolsConfiguration';
40
42
  import type { LlmToolsMetadata } from '../llm-providers/_common/LlmToolsMetadata';
@@ -223,6 +225,7 @@ import type { string_camelCase } from '../utils/normalization/normalizeTo_camelC
223
225
  import type { string_PascalCase } from '../utils/normalization/normalizeTo_PascalCase';
224
226
  import type { string_SCREAMING_CASE } from '../utils/normalization/normalizeTo_SCREAMING_CASE';
225
227
  import type { string_snake_case } from '../utils/normalization/normalizeTo_snake_case';
228
+ import type { empty_object } from '../utils/organization/empty_object';
226
229
  import type { really_any } from '../utils/organization/really_any';
227
230
  import type { TODO_any } from '../utils/organization/TODO_any';
228
231
  import type { string_promptbook_version } from '../version';
@@ -263,6 +266,8 @@ export type { ScriptExecutionToolsExecuteOptions };
263
266
  export type { UncertainNumber };
264
267
  export type { UserInterfaceTools };
265
268
  export type { UserInterfaceToolsPromptDialogOptions };
269
+ export type { FormatSubvalueDefinition };
270
+ export type { CsvSettings };
266
271
  export type { CallbackInterfaceToolsOptions };
267
272
  export type { LlmToolsConfiguration };
268
273
  export type { LlmToolsMetadata };
@@ -451,6 +456,7 @@ export type { string_camelCase };
451
456
  export type { string_PascalCase };
452
457
  export type { string_SCREAMING_CASE };
453
458
  export type { string_snake_case };
459
+ export type { empty_object };
454
460
  export type { really_any };
455
461
  export type { TODO_any };
456
462
  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 };
@@ -6,7 +6,7 @@ import type { Command as Program } from 'commander';
6
6
  */
7
7
  export declare function initializeMakeCommand(program: Program): void;
8
8
  /**
9
- * TODO: [🥃] !!! Allow `ptbk make` without configuring any llm tools
9
+ * TODO: [🥃][main] !!! Allow `ptbk make` without configuring any llm tools
10
10
  * TODO: Maybe remove this command - "about" command should be enough?
11
11
  * TODO: [0] DRY Javascript and typescript - Maybe make ONLY typescript and for javascript just remove types
12
12
  * Note: [🟡] This code should never be published outside of `@promptbook/cli`
@@ -25,5 +25,5 @@ type CreatePipelineCollectionFromUrlyOptions = {
25
25
  export declare function createCollectionFromUrl(url: string_url | URL, options: CreatePipelineCollectionFromUrlyOptions): Promise<PipelineCollection>;
26
26
  export {};
27
27
  /**
28
- * TODO: !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
28
+ * TODO: [main] !!!! [🧠] Library precompilation and do not mix markdown and json promptbooks
29
29
  */
@@ -1,6 +1,6 @@
1
1
  import type { ForeachJson } from './ForeachJson';
2
2
  /**
3
- * Parsed FOREACH command <- Write [🍭] !!!!!!
3
+ * Parsed FOREACH command which is used to iterate over a table of values
4
4
  *
5
5
  * @see ./foreachCommandParser.ts for more details
6
6
  * @private within the commands folder
@@ -11,7 +11,7 @@ export type ForeachJson = {
11
11
  /**
12
12
  * @@@
13
13
  */
14
- readonly cellName: TODO_string;
14
+ readonly subformatName: TODO_string;
15
15
  /**
16
16
  * @@@
17
17
  */
@@ -19,8 +19,9 @@ export type ForeachJson = {
19
19
  /**
20
20
  * @@@
21
21
  */
22
- readonly subparameterName: string_parameter_name;
22
+ readonly inputSubparameterNames: Array<string_parameter_name>;
23
+ /**
24
+ * @@@
25
+ */
26
+ readonly outputSubparameterName: string_parameter_name;
23
27
  };
24
- /**
25
- * TODO: [🧠] Betetr name for `parameterName` and `subparameterName`
26
- */
@@ -10,6 +10,5 @@ import type { ForeachCommand } from './ForeachCommand';
10
10
  */
11
11
  export declare const foreachCommandParser: PipelineTemplateCommandParser<ForeachCommand>;
12
12
  /**
13
- * TODO: !!!!!! Comment console logs
14
- * 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
15
14
  */
@@ -156,7 +156,7 @@ export type CommandParserInput = {
156
156
  * @@@
157
157
  *
158
158
  * @example 'promptbook version 0.62.0'
159
- * @example 'FOREACH List Line `{customers}` -> `{customer}`'
159
+ * @example 'FOREACH Text Line `{customers}` -> `{customer}`'
160
160
  */
161
161
  readonly raw: string_markdown_text;
162
162
  /**
@@ -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
  *
@@ -68,14 +69,14 @@ export declare const MAX_EXECUTION_ATTEMPTS = 3;
68
69
  export declare const MAX_FILENAME_LENGTH = 30;
69
70
  /**
70
71
  * @@@
71
- * TODO: [🐝] !!! Use
72
+ * TODO: [🐝][main] !!! Use
72
73
  *
73
74
  * @public exported from `@promptbook/core`
74
75
  */
75
76
  export declare const MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH = 3;
76
77
  /**
77
78
  * @@@
78
- * TODO: [🐝] !!! Use
79
+ * TODO: [🐝][main] !!! Use
79
80
  *
80
81
  * @public exported from `@promptbook/core`
81
82
  */
@@ -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,13 +155,13 @@ export declare const IS_VERBOSE = false;
148
155
  *
149
156
  * @private within the repository
150
157
  */
151
- export declare const IS_COST_PREVENTED: boolean;
158
+ export declare const IS_PIPELINE_LOGIC_VALIDATED: boolean;
152
159
  /**
153
160
  * @@@
154
161
  *
155
162
  * @private within the repository
156
163
  */
157
- export declare const IS_PIPELINE_LOGIC_VALIDATED: boolean;
164
+ export declare const IS_COST_PREVENTED: boolean;
158
165
  /**
159
166
  * TODO: [🧠][🧜‍♂️] Maybe join remoteUrl and path into single value
160
167
  */
@@ -18,7 +18,7 @@ import type { PipelineString } from '../types/PipelineString';
18
18
  */
19
19
  export declare function pipelineStringToJsonSync(pipelineString: PipelineString): PipelineJson;
20
20
  /**
21
- * TODO: !!!! Warn if used only sync version
21
+ * TODO: [main] !!!! Warn if used only sync version
22
22
  * TODO: [🚞] Report here line/column of error
23
23
  * TODO: Use spaceTrim more effectively
24
24
  * TODO: [🧠] Parameter flags - isInput, isOutput, isInternal
@@ -22,9 +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
+ * TODO: !!!!! FOREACH in mermaid graph
26
+ * TODO: !!!!! Knowledge in mermaid graph
27
+ * TODO: !!!!! Personas in mermaid graph
28
28
  * TODO: Maybe use some Mermaid package instead of string templating
29
29
  * TODO: [🕌] When more than 2 functionalities, split into separate functions
30
30
  */
@@ -20,6 +20,7 @@ export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
20
20
  */
21
21
  export declare function validatePipelineCore(pipeline: PipelineJson): void;
22
22
  /**
23
+ * TODO: !!!!! [🧞‍♀️] Do not allow joker + foreach
23
24
  * TODO: [🧠] Work with promptbookVersion
24
25
  * TODO: Use here some json-schema, Zod or something similar and change it to:
25
26
  * > /**
@@ -31,11 +32,11 @@ export declare function validatePipelineCore(pipeline: PipelineJson): void;
31
32
  * > ex port function validatePipeline(promptbook: really_unknown): asserts promptbook is PipelineJson {
32
33
  */
33
34
  /**
34
- * TODO: [🐣] !!!! Validate that all samples match expectations
35
- * TODO: [🐣][🐝] !!!! Validate that knowledge is valid (non-void)
36
- * TODO: [🐣] !!!! Validate that persona can be used only with CHAT variant
37
- * TODO: [🐣] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
38
- * TODO: [🐣] !!!! Validate that reserved parameter is not used as joker
35
+ * TODO: [🐣][main] !!!! Validate that all samples match expectations
36
+ * TODO: [🐣][🐝][main] !!!! Validate that knowledge is valid (non-void)
37
+ * TODO: [🐣][main] !!!! Validate that persona can be used only with CHAT variant
38
+ * TODO: [🐣][main] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
39
+ * TODO: [🐣][main] !!!! Validate that reserved parameter is not used as joker
39
40
  * TODO: [🧠] Validation not only logic itself but imports around - files and websites and rerefenced pipelines exists
40
41
  * TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
41
42
  */
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This error indicates problems parsing the format value
3
+ *
4
+ * For example, when the format value is not a valid JSON or CSV
5
+ * This is not thrown directly but in extended classes
6
+ *
7
+ * @public exported from `@promptbook/core`
8
+ */
9
+ export declare class AbstractFormatError extends Error {
10
+ constructor(message: string);
11
+ }
@@ -14,5 +14,6 @@ export type PipelineExecutor = {
14
14
  (inputParameters: Parameters, onProgress?: (taskProgress: TaskProgress) => Promisable<void>): Promise<PipelineExecutorResult>;
15
15
  };
16
16
  /**
17
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
17
18
  * TODO: [🧠] Should this file be in /execution or /types folder?
18
19
  */
@@ -15,7 +15,7 @@ export type PipelineExecutorResult = {
15
15
  *
16
16
  * Note: If the execution was not successful, there are only some of the result parameters
17
17
  */
18
- readonly outputParameters: Parameters;
18
+ readonly outputParameters: Readonly<Parameters>;
19
19
  /**
20
20
  * Whether the execution was successful, details are aviable in `executionReport`
21
21
  */
@@ -23,19 +23,19 @@ export type PipelineExecutorResult = {
23
23
  /**
24
24
  * Added usage of whole execution, detailed usage is aviable in `executionReport`
25
25
  */
26
- readonly usage: PromptResultUsage;
26
+ readonly usage: ReadonlyDeep<PromptResultUsage>;
27
27
  /**
28
28
  * Errors that occured during the execution, details are aviable in `executionReport`
29
29
  */
30
- readonly errors: Array<ErrorJson>;
30
+ readonly errors: ReadonlyDeep<Array<ErrorJson>>;
31
31
  /**
32
32
  * Warnings that occured during the execution, details are aviable in `executionReport`
33
33
  */
34
- readonly warnings: Array<ErrorJson>;
34
+ readonly warnings: ReadonlyDeep<Array<ErrorJson>>;
35
35
  /**
36
36
  * The report of the execution with all details
37
37
  */
38
- readonly executionReport: ExecutionReportJson;
38
+ readonly executionReport: ReadonlyDeep<ExecutionReportJson>;
39
39
  /**
40
40
  * The prepared pipeline that was used for the execution
41
41
  *
@@ -45,7 +45,6 @@ export type PipelineExecutorResult = {
45
45
  readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
46
46
  };
47
47
  /**
48
- * TODO: !!!!!! Maybe add ReadonlyDeep< to all
49
48
  * TODO: [🧠] Should this file be in /execution or /types folder?
50
49
  * TODO: [🧠] Maybe constrain `ErrorJson` -> `ErrorJson & { name: 'PipelineExecutionError' | 'Error' }`
51
50
  */
@@ -10,12 +10,36 @@ import type { PromptResult } from '../PromptResult';
10
10
  * @private internal utility of `createPipelineExecutor`
11
11
  */
12
12
  export type $OngoingTemplateResult = {
13
+ /**
14
+ * @@@
15
+ */
13
16
  $prompt?: Prompt;
17
+ /**
18
+ * @@@
19
+ */
14
20
  $chatResult?: ChatPromptResult;
21
+ /**
22
+ * @@@
23
+ */
15
24
  $completionResult?: CompletionPromptResult;
25
+ /**
26
+ * @@@
27
+ */
16
28
  $embeddingResult?: EmbeddingPromptResult;
29
+ /**
30
+ * @@@
31
+ */
17
32
  $result: PromptResult | null;
33
+ /**
34
+ * @@@
35
+ */
18
36
  $resultString: string | null;
37
+ /**
38
+ * @@@
39
+ */
19
40
  $expectError: ExpectError | null;
41
+ /**
42
+ * @@@
43
+ */
20
44
  $scriptPipelineExecutionErrors: Array<Error>;
21
45
  };
@@ -1,3 +1,4 @@
1
+ import type { CsvSettings } from '../../formats/csv/CsvSettings';
1
2
  export type CreatePipelineExecutorSettings = {
2
3
  /**
3
4
  * When executor does not satisfy expectations it will be retried this amount of times
@@ -17,6 +18,12 @@ export type CreatePipelineExecutorSettings = {
17
18
  * @default false
18
19
  */
19
20
  readonly isVerbose: boolean;
21
+ /**
22
+ * Settings for CSV format
23
+ *
24
+ * @default DEFAULT_CSV_SETTINGS
25
+ */
26
+ readonly csvSettings: CsvSettings;
20
27
  /**
21
28
  * If you pass fully prepared pipeline, this does not matter
22
29
  *
@@ -8,3 +8,6 @@ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorO
8
8
  * @public exported from `@promptbook/core`
9
9
  */
10
10
  export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
11
+ /**
12
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
13
+ */
@@ -22,7 +22,7 @@ type ExecutePipelineOptions = {
22
22
  /**
23
23
  * @@@
24
24
  */
25
- readonly onProgress?: (taskProgress: TaskProgress) => Promisable<void>;
25
+ onProgress?(taskProgress: TaskProgress): Promisable<void>;
26
26
  /**
27
27
  * @@@
28
28
  */
@@ -53,3 +53,6 @@ type ExecutePipelineOptions = {
53
53
  */
54
54
  export declare function executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecutorResult>;
55
55
  export {};
56
+ /**
57
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
58
+ */
@@ -60,3 +60,6 @@ export {};
60
60
  /**
61
61
  * TODO: [🤹‍♂️]
62
62
  */
63
+ /**
64
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
65
+ */
@@ -3,7 +3,7 @@ import type { ExecuteAttemptsOptions } from './40-executeAttempts';
3
3
  /**
4
4
  * @@@
5
5
  *
6
- * @private internal type of `executeFormatCells`
6
+ * @private internal type of `executeFormatSubvalues`
7
7
  */
8
8
  type ExecuteFormatCellsOptions = ExecuteAttemptsOptions;
9
9
  /**
@@ -11,5 +11,5 @@ type ExecuteFormatCellsOptions = ExecuteAttemptsOptions;
11
11
  *
12
12
  * @private internal utility of `createPipelineExecutor`
13
13
  */
14
- export declare function executeFormatCells(options: ExecuteFormatCellsOptions): Promise<TODO_any>;
14
+ export declare function executeFormatSubvalues(options: ExecuteFormatCellsOptions): Promise<TODO_any>;
15
15
  export {};
@@ -5,10 +5,8 @@ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
5
5
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
6
6
  import type { Parameters } from '../../types/typeAliases';
7
7
  import type { string_parameter_name } from '../../types/typeAliases';
8
- import type { TODO_any } from '../../utils/organization/TODO_any';
9
8
  import type { TODO_string } from '../../utils/organization/TODO_string';
10
9
  import type { ExecutionTools } from '../ExecutionTools';
11
- import type { $OngoingTemplateResult } from './$OngoingTemplateResult';
12
10
  import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
13
11
  /**
14
12
  * @@@
@@ -16,10 +14,6 @@ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutor
16
14
  * @private internal type of `executeAttempts`
17
15
  */
18
16
  export type ExecuteAttemptsOptions = {
19
- /**
20
- * @@@
21
- */
22
- readonly $ongoingTemplateResult: $OngoingTemplateResult;
23
17
  /**
24
18
  * @@@
25
19
  */
@@ -39,7 +33,7 @@ export type ExecuteAttemptsOptions = {
39
33
  /**
40
34
  * @@@
41
35
  */
42
- readonly parameters: ReadonlyDeep<Parameters>;
36
+ readonly parameters: Readonly<Parameters>;
43
37
  /**
44
38
  * @@@
45
39
  */
@@ -74,7 +68,7 @@ export type ExecuteAttemptsOptions = {
74
68
  *
75
69
  * @private internal utility of `createPipelineExecutor`
76
70
  */
77
- export declare function executeAttempts(options: ExecuteAttemptsOptions): Promise<TODO_any>;
71
+ export declare function executeAttempts(options: ExecuteAttemptsOptions): Promise<TODO_string>;
78
72
  /**
79
73
  * TODO: Break into smaller functions
80
74
  */
@@ -4,4 +4,4 @@ import type { EmbeddingVector } from './EmbeddingVector';
4
4
  *
5
5
  * @public exported from `@promptbook/core`
6
6
  */
7
- export declare function embeddingVectorToString(embeddingVector: EmbeddingVector): string;
7
+ export declare function embeddingVectorToString(embeddingVector: Readonly<EmbeddingVector>): string;
@@ -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 object> = {
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 name: string_name;
20
+ readonly formatName: string_name & string_SCREAMING_CASE;
16
21
  /**
17
- * Aliases for the name
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
- * 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"]
59
+ * @@@
61
60
  */
62
- extractValues(value: string, schema?: TSchema): Array<string>;
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,31 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { Parameters } from '../../types/typeAliases';
3
+ import type { string_parameter_name } from '../../types/typeAliases';
4
+ import type { string_name } from '../../types/typeAliases';
5
+ import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
6
+ import type { empty_object } from '../../utils/organization/empty_object';
7
+ /**
8
+ * @@@
9
+ */
10
+ export type FormatSubvalueDefinition<TValue extends string, TSettings extends empty_object> = {
11
+ /**
12
+ * The name of the format used in .ptbk.md files
13
+ *
14
+ * @sample "CELL"
15
+ */
16
+ readonly subvalueName: string_name & string_SCREAMING_CASE;
17
+ /**
18
+ * Aliases for the `subvalueName`
19
+ */
20
+ readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
21
+ /**
22
+ * Maps values
23
+ *
24
+ * For example, if you have a JSON object and you want to map all values to uppercase
25
+ * Or iterate over all CSV cells @@@
26
+ */
27
+ mapValues(value: TValue, outputParameterName: string_parameter_name, settings: TSettings, mapCallback: (subvalues: Parameters, index: number) => Promisable<string>): Promise<string>;
28
+ };
29
+ /**
30
+ * Note: [👩🏾‍🤝‍🧑🏽]
31
+ */
@@ -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
- * @private still in development [🏢]
7
+ * @public exported from `@promptbook/core`
8
+ * <- TODO: [🏢] Export from package `@promptbook/csv`
6
9
  */
7
- export declare const CsvFormatDefinition: FormatDefinition<string, string, object>;
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 `extractValues`
15
+ * TODO: [🍓] In `CsvFormatDefinition` implement `subvalueDefinitions`
13
16
  * TODO: [🏢] Allow to expect something inside CSV objects and other formats
14
17
  */
@@ -0,0 +1,10 @@
1
+ import { AbstractFormatError } from "../../errors/AbstractFormatError";
2
+ /**
3
+ * This error indicates problem with parsing of CSV
4
+ *
5
+ * @public exported from `@promptbook/core`
6
+ */
7
+ export declare class CsvFormatError extends AbstractFormatError {
8
+ readonly name = "CsvFormatError";
9
+ constructor(message: string);
10
+ }
@@ -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, object>[];
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, object>;
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 `extractValues`
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, object>;
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 `extractValues`
17
+ * TODO: [🍓] In `XmlFormatDefinition` implement `subvalueDefinitions`
17
18
  * TODO: [🏢] Allow to expect something inside XML and other formats
18
19
  */
@@ -8,7 +8,7 @@ import type { string_markdown } from '../../../types/typeAliases';
8
8
  */
9
9
  export declare function prepareKnowledgeFromMarkdown(knowledgeContent: string_markdown, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>>>;
10
10
  /**
11
- * TODO: [🐝][🔼] !!! Export via `@promptbook/markdown`
11
+ * TODO: [🐝][🔼][main] !!! Export via `@promptbook/markdown`
12
12
  * TODO: [🪂] Do it in parallel 11:11
13
13
  * Note: No need to aggregate usage here, it is done by intercepting the llmTools
14
14
  */
@@ -8,7 +8,7 @@ import type { string_base64 } from '../../../types/typeAliases';
8
8
  */
9
9
  export declare function prepareKnowledgeFromPdf(content: string_base64, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>>>;
10
10
  /**
11
- * TODO: [🐝][🔼] !!! Export via `@promptbook/pdf`
11
+ * TODO: [🐝][🔼][main] !!! Export via `@promptbook/pdf`
12
12
  * TODO: [🧺] In future, content can be alse File or Blob BUT for now for wider compatibility its only base64
13
13
  * @see https://stackoverflow.com/questions/14653349/node-js-cant-create-blobs
14
14
  * TODO: [🪂] Do it in parallel
@@ -13,7 +13,7 @@ export type CacheItem = {
13
13
  /**
14
14
  * @@@
15
15
  */
16
- promptbookVersion: string_promptbook_version;
16
+ promptbookVersion?: string_promptbook_version;
17
17
  /**
18
18
  * @@@
19
19
  */
@@ -16,7 +16,7 @@ export declare const ANTHROPIC_CLAUDE_MODELS: Array<AvailableModel & {
16
16
  }>;
17
17
  /**
18
18
  * Note: [🤖] Add models of new variant
19
- * TODO: [🧠] !!! Add embedding models OR Anthropic has only chat+completion models?
19
+ * TODO: [🧠][main] !!! Add embedding models OR Anthropic has only chat+completion models?
20
20
  * TODO: [🧠] Some mechanism to propagate unsureness
21
21
  * TODO: [🧠][👮‍♀️] Put here more info like description, isVision, trainingDateCutoff, languages, strengths ( Top-level performance, intelligence, fluency, and understanding), contextWindow,...
22
22
  * TODO: [🎰] Some mechanism to auto-update available models
@@ -11,8 +11,8 @@ export declare const createAnthropicClaudeExecutionTools: ((options: AnthropicCl
11
11
  className: string;
12
12
  };
13
13
  /**
14
- * TODO: [🧠] !!!! Make anonymous this with all LLM providers
15
- * TODO: [🧠][🧱] !!!! Maybe change all `new AnthropicClaudeExecutionTools` -> `createAnthropicClaudeExecutionTools` in manual
14
+ * TODO: [🧠][main] !!!! Make anonymous this with all LLM providers
15
+ * TODO: [🧠][🧱][main] !!!! Maybe change all `new AnthropicClaudeExecutionTools` -> `createAnthropicClaudeExecutionTools` in manual
16
16
  * TODO: [🧠] Maybe auto-detect usage in browser and determine default value of `isProxied`
17
17
  * TODO: [🦺] Is there some way how to put `packageName` and `className` on top and function definition on bottom?
18
18
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env ts-node
2
2
  export {};
3
3
  /**
4
- * TODO: !!! Playground with WebGPT / Promptbook.studio anonymous server
5
- * TODO: !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
4
+ * TODO: [main] !!! Playground with WebGPT / Promptbook.studio anonymous server
5
+ * TODO: [main] !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
6
6
  */
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ts-node
2
2
  export {};
3
3
  /**
4
- * TODO: !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
4
+ * TODO: [main] !!! Test here that `systemMessage`, `temperature` and `seed` are working correctly
5
5
  */
@@ -9,7 +9,7 @@ import type { string_persona_description } from '../types/typeAliases';
9
9
  */
10
10
  export declare function preparePersona(personaDescription: string_persona_description, options: PrepareOptions): Promise<PersonaPreparedJson['modelRequirements']>;
11
11
  /**
12
- * TODO: [🔃] !!!!! If the persona was prepared with different version or different set of models, prepare it once again
12
+ * TODO: [🔃][main] !!!!! If the persona was prepared with different version or different set of models, prepare it once again
13
13
  * TODO: [🏢] !! Check validity of `modelName` in pipeline
14
14
  * TODO: [🏢] !! Check validity of `systemMessage` in pipeline
15
15
  * TODO: [🏢] !! Check validity of `temperature` in pipeline
@@ -6,7 +6,7 @@ import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
6
6
  */
7
7
  export declare function isPipelinePrepared(pipeline: PipelineJson): boolean;
8
8
  /**
9
- * TODO: [🔃] !!!!! If the pipeline was prepared with different version or different set of models, prepare it once again
9
+ * TODO: [🔃][main] !!!!! If the pipeline was prepared with different version or different set of models, prepare it once again
10
10
  * TODO: [🐠] Maybe base this on `makeValidator`
11
11
  * TODO: [🧊] Pipeline can be partially prepared, this should return true ONLY if fully prepared
12
12
  * TODO: [🧿] Maybe do same process with same granularity and subfinctions as `preparePipeline`
@@ -23,7 +23,7 @@ export {};
23
23
  /**
24
24
  * TODO: [🧠] Add context to each template (if missing)
25
25
  * TODO: [🧠] What is better name `prepareTemplate` or `prepareTemplateAndParameters`
26
- * TODO: [♨] !!! Prepare index the samples and maybe templates
26
+ * TODO: [♨][main] !!! Prepare index the samples and maybe templates
27
27
  * TODO: Write tests for `preparePipeline`
28
28
  * TODO: [🏏] Leverage the batch API and build queues @see https://platform.openai.com/docs/guides/batch
29
29
  * TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
@@ -33,7 +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
+ * TODO: [🧠] Should be here registered subparameters from foreach or not?
37
37
  * TODO: [♈] Probbably move expectations from templates to parameters
38
38
  * TODO: [🍙] Make some standard order of json properties
39
39
  */
@@ -42,7 +42,7 @@ export type PipelineJson = {
42
42
  /**
43
43
  * Version of the .ptbk.json file
44
44
  */
45
- readonly promptbookVersion: string_semantic_version;
45
+ readonly promptbookVersion?: string_semantic_version;
46
46
  /**
47
47
  * Description of the promptbook
48
48
  * It can use multiple paragraphs of simple markdown formatting like **bold**, *italic*, [link](https://example.com), ... BUT not code blocks and structure
@@ -39,6 +39,3 @@ export type ExecutionReportJson = {
39
39
  */
40
40
  readonly promptExecutions: Array<ExecutionPromptReportJson>;
41
41
  };
42
- /**
43
- * TODO: !!!!!! FOREACH in report
44
- */
@@ -1,3 +1,4 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
1
2
  import type { ExecutionReportJson } from './ExecutionReportJson';
2
3
  import type { ExecutionReportString } from './ExecutionReportString';
3
4
  import type { ExecutionReportStringOptions } from './ExecutionReportStringOptions';
@@ -6,7 +7,7 @@ import type { ExecutionReportStringOptions } from './ExecutionReportStringOption
6
7
  *
7
8
  * @public exported from `@promptbook/core`
8
9
  */
9
- export declare function executionReportJsonToString(executionReportJson: ExecutionReportJson, options?: Partial<ExecutionReportStringOptions>): ExecutionReportString;
10
+ export declare function executionReportJsonToString(executionReportJson: ReadonlyDeep<ExecutionReportJson>, options?: Partial<ExecutionReportStringOptions>): ExecutionReportString;
10
11
  /**
11
12
  * TODO: Add mermaid chart for every report
12
13
  * TODO: [🧠] Allow to filter out some parts of the report by options
@@ -592,7 +592,7 @@ export type number_megabytes = number_positive;
592
592
  export type number_gigabytes = number_positive;
593
593
  export type number_terabytes = number_positive;
594
594
  /**.
595
- * TODO: !!! Change "For example" to @example
595
+ * TODO: [main] !!! Change "For example" to @example
596
596
  * TODO: !! Change to branded types
597
597
  * TODO: Delete type aliases that are not exported or used internally
598
598
  */
@@ -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 really_empty_object = Record<string, never>;
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>;
@@ -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
  *
@@ -22,6 +22,6 @@ import type { string_name } from '../../types/typeAliases';
22
22
  export declare function checkSerializableAsJson(name: string_name, value: unknown): void;
23
23
  /**
24
24
  * TODO: [🧠][🛣] More elegant way to tracking than passing `name`
25
- * TODO: [🧠] !!! In-memory cache of same values to prevent multiple checks
25
+ * TODO: [🧠][main] !!! In-memory cache of same values to prevent multiple checks
26
26
  * Note: [🐠] This is how `checkSerializableAsJson` + `isSerializableAsJson` together can just retun true/false or rich error message
27
27
  */
@@ -19,6 +19,6 @@
19
19
  */
20
20
  export declare function isSerializableAsJson(value: unknown): boolean;
21
21
  /**
22
- * TODO: [🧠] !!! In-memory cache of same values to prevent multiple checks
22
+ * TODO: [🧠][main] !!! In-memory cache of same values to prevent multiple checks
23
23
  * TODO: [🧠][💺] Can be done this on type-level?
24
24
  */
@@ -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-8",
3
+ "version": "0.69.0",
4
4
  "description": "Supercharge your use of large language models",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -12,21 +12,25 @@
12
12
  "Pavol Hejný <me@pavolhejny.com> (https://www.pavolhejny.com/)"
13
13
  ],
14
14
  "keywords": [
15
- "autogpt",
16
- "openai",
17
- "gpt-3",
18
- "gpt-4",
19
- "chatgpt",
20
15
  "ai",
16
+ "llm",
17
+ "prompt",
18
+ "template",
19
+ "language-model",
20
+ "chatgpt",
21
+ "autogpt",
21
22
  "machine-learning",
22
23
  "natural-language-processing",
23
24
  "nlp",
24
- "prompt",
25
- "template",
26
- "pipeline",
27
- "automation",
28
- "text-generation",
29
- "language-model"
25
+ "openai",
26
+ "gpt-3",
27
+ "gpt-4",
28
+ "gpt-4o",
29
+ "gpt-4o-mini",
30
+ "o1",
31
+ "o1-mini",
32
+ "o1-preview",
33
+ "anthropic"
30
34
  ],
31
35
  "license": "CC-BY-4.0",
32
36
  "bugs": {
@@ -45,6 +49,6 @@
45
49
  ],
46
50
  "typings": "./esm/typings/src/_packages/types.index.d.ts",
47
51
  "peerDependencies": {
48
- "@promptbook/core": "0.69.0-8"
52
+ "@promptbook/core": "0.69.0"
49
53
  }
50
54
  }
@@ -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
- */