@promptbook/remote-server 0.70.0-1 → 0.71.0-7

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 (175) hide show
  1. package/README.md +29 -59
  2. package/esm/index.es.js +24 -13
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/promptbook-collection/index.d.ts +0 -3
  5. package/esm/typings/src/_packages/browser.index.d.ts +1 -1
  6. package/esm/typings/src/_packages/core.index.d.ts +37 -11
  7. package/esm/typings/src/_packages/node.index.d.ts +6 -2
  8. package/esm/typings/src/_packages/types.index.d.ts +40 -20
  9. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  10. package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
  11. package/esm/typings/src/cli/cli-commands/hello.d.ts +1 -1
  12. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -2
  13. package/esm/typings/src/cli/cli-commands/prettify.d.ts +1 -1
  14. package/esm/typings/src/cli/main.d.ts +1 -1
  15. package/esm/typings/src/cli/promptbookCli.d.ts +1 -1
  16. package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +8 -5
  17. package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +1 -1
  18. package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +1 -1
  19. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +3 -7
  20. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +27 -0
  21. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -3
  22. package/esm/typings/src/commands/FORMAT/formatCommandParser.d.ts +1 -1
  23. package/esm/typings/src/commands/JOKER/jokerCommandParser.d.ts +1 -1
  24. package/esm/typings/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +1 -1
  25. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.d.ts +11 -0
  26. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.test.d.ts +4 -0
  27. package/esm/typings/src/commands/MODEL/modelCommandParser.d.ts +1 -1
  28. package/esm/typings/src/commands/PARAMETER/parameterCommandParser.d.ts +1 -1
  29. package/esm/typings/src/commands/PERSONA/personaCommandParser.d.ts +1 -1
  30. package/esm/typings/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +1 -1
  31. package/esm/typings/src/commands/PROMPTBOOK_VERSION/promptbookVersionCommandParser.d.ts +1 -1
  32. package/esm/typings/src/commands/TEMPLATE/templateCommandParser.d.ts +1 -1
  33. package/esm/typings/src/commands/URL/urlCommandParser.d.ts +1 -1
  34. package/esm/typings/src/commands/X_ACTION/actionCommandParser.d.ts +1 -1
  35. package/esm/typings/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +1 -1
  36. package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -1
  37. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -4
  38. package/esm/typings/src/config.d.ts +26 -3
  39. package/esm/typings/src/conversion/pipelineStringToJson.d.ts +2 -15
  40. package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
  41. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
  42. package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
  43. package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
  44. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +10 -5
  45. package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceTools.d.ts +2 -2
  46. package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceToolsOptions.d.ts +2 -2
  47. package/esm/typings/src/{knowledge/dialogs → dialogs}/simple-prompt/SimplePromptInterfaceTools.d.ts +4 -4
  48. package/esm/typings/src/errors/AbstractFormatError.d.ts +11 -0
  49. package/esm/typings/src/errors/KnowledgeScrapeError.d.ts +9 -0
  50. package/esm/typings/src/errors/MissingToolsError.d.ts +9 -0
  51. package/esm/typings/src/execution/ExecutionTools.d.ts +3 -3
  52. package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
  53. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +9 -8
  54. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
  55. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +23 -0
  56. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +29 -0
  57. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +13 -0
  58. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +58 -0
  59. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +65 -0
  60. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +15 -0
  61. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
  62. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  63. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  64. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  65. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  66. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  67. package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
  68. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  69. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -0
  70. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  71. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
  72. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +31 -0
  73. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
  74. package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
  75. package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
  76. package/esm/typings/src/formats/index.d.ts +1 -1
  77. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
  78. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
  79. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
  80. package/esm/typings/src/llm-providers/_common/createLlmToolsFromConfigurationFromEnv.d.ts +1 -1
  81. package/esm/typings/src/llm-providers/_common/createLlmToolsFromEnv.d.ts +1 -1
  82. package/esm/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +1 -1
  83. package/esm/typings/src/llm-providers/_common/utils/cache/CacheItem.d.ts +1 -1
  84. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +2 -1
  85. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  86. package/esm/typings/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +2 -2
  87. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -2
  88. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +8 -1
  89. package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +1 -0
  90. package/esm/typings/src/llm-providers/langtail/playground/playground.d.ts +3 -0
  91. package/esm/typings/src/llm-providers/multiple/playground/playground.d.ts +3 -0
  92. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -1
  93. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +2 -1
  94. package/esm/typings/src/llm-providers/remote/playground/playground.d.ts +3 -0
  95. package/esm/typings/src/personas/preparePersona.d.ts +3 -3
  96. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +67 -0
  97. package/esm/typings/src/prepare/isPipelinePrepared.d.ts +1 -1
  98. package/esm/typings/src/prepare/preparePipeline.d.ts +2 -2
  99. package/esm/typings/src/prepare/prepareTemplates.d.ts +3 -3
  100. package/esm/typings/src/scrapers/_common/Converter.d.ts +28 -0
  101. package/esm/typings/src/scrapers/_common/Scraper.d.ts +71 -0
  102. package/esm/typings/src/scrapers/_common/ScraperIntermediateSource.d.ts +11 -0
  103. package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.d.ts +4 -4
  104. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +33 -0
  105. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
  106. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +10 -0
  107. package/esm/typings/src/scrapers/document/documentScraper.d.ts +37 -0
  108. package/esm/typings/src/scrapers/document/documentScraper.test.d.ts +4 -0
  109. package/esm/typings/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
  110. package/esm/typings/src/scrapers/document-legacy/legacyDocumentScraper.d.ts +37 -0
  111. package/esm/typings/src/scrapers/document-legacy/legacyDocumentScraper.test.d.ts +4 -0
  112. package/esm/typings/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
  113. package/esm/typings/src/scrapers/index.d.ts +7 -0
  114. package/esm/typings/src/scrapers/markdown/markdownScraper.d.ts +29 -0
  115. package/esm/typings/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
  116. package/esm/typings/src/scrapers/pdf/pdfScraper.d.ts +35 -0
  117. package/esm/typings/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
  118. package/esm/typings/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
  119. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +12 -0
  120. package/esm/typings/src/scrapers/website/websiteScraper.d.ts +43 -0
  121. package/esm/typings/src/storage/{files-storage/FilesStorage.d.ts → file-cache-storage/FileCacheStorage.d.ts} +4 -4
  122. package/esm/typings/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +10 -0
  123. package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.d.ts +1 -1
  124. package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +1 -1
  125. package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +1 -1
  126. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +9 -2
  127. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  128. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +3 -3
  129. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  130. package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
  131. package/esm/typings/src/types/typeAliases.d.ts +9 -12
  132. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +14 -0
  133. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +17 -0
  134. package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +23 -0
  135. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +10 -0
  136. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  137. package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +3 -3
  138. package/esm/typings/src/utils/files/$isFileExisting.d.ts +3 -3
  139. package/esm/typings/src/utils/files/$listAllFiles.d.ts +4 -4
  140. package/esm/typings/src/utils/files/extensionToMimeType.d.ts +8 -0
  141. package/esm/typings/src/utils/files/getFileExtension.d.ts +8 -0
  142. package/esm/typings/src/utils/files/getFileExtension.test.d.ts +1 -0
  143. package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
  144. package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
  145. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  146. package/esm/typings/src/utils/parameters/extractParameterNames.test.d.ts +1 -0
  147. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  148. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts +1 -0
  149. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  150. package/esm/typings/src/utils/parameters/replaceParameters.test.d.ts +1 -0
  151. package/esm/typings/src/utils/serialization/checkSerializableAsJson.d.ts +1 -1
  152. package/esm/typings/src/utils/serialization/isSerializableAsJson.d.ts +1 -1
  153. package/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -2
  154. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  155. package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  156. package/package.json +17 -13
  157. package/umd/index.umd.js +24 -13
  158. package/umd/index.umd.js.map +1 -1
  159. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  160. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  161. package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +0 -37
  162. package/esm/typings/src/knowledge/prepare-knowledge/markdown/playground/markdown-knowledge-playground.d.ts +0 -2
  163. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +0 -14
  164. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +0 -15
  165. package/esm/typings/src/prepare/PrepareOptions.d.ts +0 -22
  166. package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +0 -10
  167. /package/esm/typings/src/{knowledge/dialogs → dialogs}/user-interface-execution-tools.test.d.ts +0 -0
  168. /package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.test.d.ts +0 -0
  169. /package/esm/typings/src/{knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts → scrapers/markdown/markdownScraper.test.d.ts} +0 -0
  170. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → scrapers/website/utils/markdownConverter.test.d.ts} +0 -0
  171. /package/esm/typings/src/{knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.test.d.ts → scrapers/website/websiteScraper.test.d.ts} +0 -0
  172. /package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.test.d.ts +0 -0
  173. /package/esm/typings/src/{personas/preparePersona.test.d.ts → utils/execCommand/execCommand.test.d.ts} +0 -0
  174. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → execCommand/execCommandNormalizeOptions.test.d.ts} +0 -0
  175. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → files/extensionToMimeType.test.d.ts} +0 -0
@@ -1,19 +1,6 @@
1
- import type { LlmExecutionTools } from '../execution/LlmExecutionTools';
1
+ import type { PrepareAndScrapeOptions } from '../prepare/PrepareAndScrapeOptions';
2
2
  import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
3
3
  import type { PipelineString } from '../types/PipelineString';
4
- /**
5
- * Options for `pipelineStringToJson`
6
- *
7
- * @public exported from `@promptbook/core`
8
- */
9
- export type PipelineStringToJsonOptions = {
10
- /**
11
- * Tools for processing required for preparation of knowledge *(not for actual execution)*
12
- *
13
- * Note: If you provide `null`, the knowledge will not be prepared
14
- */
15
- readonly llmTools: LlmExecutionTools | null;
16
- };
17
4
  /**
18
5
  * Compile pipeline from string (markdown) format to JSON format
19
6
  *
@@ -31,7 +18,7 @@ export type PipelineStringToJsonOptions = {
31
18
  * @throws {ParseError} if the promptbook string is not valid
32
19
  * @public exported from `@promptbook/core`
33
20
  */
34
- export declare function pipelineStringToJson(pipelineString: PipelineString, options?: PipelineStringToJsonOptions): Promise<PipelineJson>;
21
+ export declare function pipelineStringToJson(pipelineString: PipelineString, options?: PrepareAndScrapeOptions): Promise<PipelineJson>;
35
22
  /**
36
23
  * TODO: [🏏] Leverage the batch API and build queues @see https://platform.openai.com/docs/guides/batch
37
24
  * TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
@@ -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,6 +22,9 @@ export type renderPipelineMermaidOptions = {
22
22
  */
23
23
  export declare function renderPromptbookMermaid(pipelineJson: PipelineJson, options?: renderPipelineMermaidOptions): string;
24
24
  /**
25
+ * TODO: !!!!! FOREACH in mermaid graph
26
+ * TODO: !!!!! Knowledge in mermaid graph
27
+ * TODO: !!!!! Personas in mermaid graph
25
28
  * TODO: Maybe use some Mermaid package instead of string templating
26
29
  * TODO: [🕌] When more than 2 functionalities, split into separate functions
27
30
  */
@@ -1,3 +1,4 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
1
2
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
2
3
  import type { string_parameter_name } from '../../types/typeAliases';
3
4
  /**
@@ -8,7 +9,7 @@ import type { string_parameter_name } from '../../types/typeAliases';
8
9
  * @throws {ParseError} if the script is invalid
9
10
  * @public exported from `@promptbook/utils`
10
11
  */
11
- export declare function extractParameterNamesFromTemplate(template: Pick<TemplateJson, 'title' | 'description' | 'templateType' | 'content' | 'preparedContent' | 'jokerParameterNames'>): Set<string_parameter_name>;
12
+ export declare function extractParameterNamesFromTemplate(template: ReadonlyDeep<Pick<TemplateJson, 'title' | 'description' | 'templateType' | 'content' | 'preparedContent' | 'jokerParameterNames' | 'foreach'>>): Set<string_parameter_name>;
12
13
  /**
13
14
  * TODO: [🔣] If script require contentLanguage
14
15
  */
@@ -25,5 +25,5 @@ export declare function importPipelineJson(path: `${string}.ptbk.json`): Pipelin
25
25
  */
26
26
  export declare function importPipelineJsonAsString(path: `${string}.ptbk.json`): string_json<PipelineJson>;
27
27
  /**
28
- * TODO: [🥯] This should be part of scripting + testing utilities set which are not builded into packages
28
+ * Note: [] Code in this file should never be published in any package
29
29
  */
@@ -16,6 +16,11 @@ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
16
16
  */
17
17
  export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
18
18
  /**
19
+ * @private internal function for `validatePipeline`
20
+ */
21
+ export declare function validatePipelineCore(pipeline: PipelineJson): void;
22
+ /**
23
+ * TODO: !!!!! [🧞‍♀️] Do not allow joker + foreach
19
24
  * TODO: [🧠] Work with promptbookVersion
20
25
  * TODO: Use here some json-schema, Zod or something similar and change it to:
21
26
  * > /**
@@ -27,11 +32,11 @@ export declare function validatePipeline(pipeline: PipelineJson): PipelineJson;
27
32
  * > ex port function validatePipeline(promptbook: really_unknown): asserts promptbook is PipelineJson {
28
33
  */
29
34
  /**
30
- * TODO: [🐣] !!!! Validate that all samples match expectations
31
- * TODO: [🐣][🐝] !!!! Validate that knowledge is valid (non-void)
32
- * TODO: [🐣] !!!! Validate that persona can be used only with CHAT variant
33
- * TODO: [🐣] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
34
- * 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
35
40
  * TODO: [🧠] Validation not only logic itself but imports around - files and websites and rerefenced pipelines exists
36
41
  * TODO: [🛠] Actions, instruments (and maybe knowledge) => Functions and tools
37
42
  */
@@ -1,5 +1,5 @@
1
- import type { UserInterfaceTools } from '../../../execution/UserInterfaceTools';
2
- import type { UserInterfaceToolsPromptDialogOptions } from '../../../execution/UserInterfaceTools';
1
+ import type { UserInterfaceTools } from '../../execution/UserInterfaceTools';
2
+ import type { UserInterfaceToolsPromptDialogOptions } from '../../execution/UserInterfaceTools';
3
3
  import type { CallbackInterfaceToolsOptions } from './CallbackInterfaceToolsOptions';
4
4
  /**
5
5
  * Delagates the user interaction to a async callback function
@@ -1,6 +1,6 @@
1
1
  import type { Promisable } from 'type-fest';
2
- import type { CommonExecutionToolsOptions } from '../../../execution/CommonExecutionToolsOptions';
3
- import type { UserInterfaceToolsPromptDialogOptions } from '../../../execution/UserInterfaceTools';
2
+ import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
3
+ import type { UserInterfaceToolsPromptDialogOptions } from '../../execution/UserInterfaceTools';
4
4
  /**
5
5
  * Options for `CallbackInterfaceTools`
6
6
  *
@@ -1,6 +1,6 @@
1
- import type { CommonExecutionToolsOptions } from '../../../execution/CommonExecutionToolsOptions';
2
- import type { UserInterfaceTools } from '../../../execution/UserInterfaceTools';
3
- import type { UserInterfaceToolsPromptDialogOptions } from '../../../execution/UserInterfaceTools';
1
+ import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
2
+ import type { UserInterfaceTools } from '../../execution/UserInterfaceTools';
3
+ import type { UserInterfaceToolsPromptDialogOptions } from '../../execution/UserInterfaceTools';
4
4
  /**
5
5
  * Wrapper around `window.prompt` synchronous function that interacts with the user via browser prompt
6
6
  *
@@ -18,5 +18,5 @@ export declare class SimplePromptInterfaceTools implements UserInterfaceTools {
18
18
  promptDialog(options: UserInterfaceToolsPromptDialogOptions): Promise<string>;
19
19
  }
20
20
  /**
21
- * Note: [🔵] This code should never be published outside of `@promptbook/browser`
21
+ * Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
22
22
  */
@@ -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
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This error indicates that the promptbook can not retrieve knowledge from external sources
3
+ *
4
+ * @public exported from `@promptbook/core`
5
+ */
6
+ export declare class KnowledgeScrapeError extends Error {
7
+ readonly name = "KnowledgeScrapeError";
8
+ constructor(message: string);
9
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This error type indicates that some tools are missing for pipeline execution or preparation
3
+ *
4
+ * @public exported from `@promptbook/core`
5
+ */
6
+ export declare class MissingToolsError extends Error {
7
+ readonly name = "MissingToolsError";
8
+ constructor(message: string);
9
+ }
@@ -14,7 +14,7 @@ export type ExecutionTools = {
14
14
  * Tip: Use `createLlmToolsFromEnv()` to use all available LLM providers you configured
15
15
  * @see https://github.com/webgptorg/promptbook/?tab=readme-ov-file#llm-execution-tools
16
16
  */
17
- llm?: Arrayable<LlmExecutionTools>;
17
+ readonly llm?: Arrayable<LlmExecutionTools>;
18
18
  /**
19
19
  * Tools for executing scripts
20
20
  *
@@ -25,12 +25,12 @@ export type ExecutionTools = {
25
25
  * @see https://github.com/webgptorg/promptbook/?tab=readme-ov-file#script-execution-tools
26
26
  * @default [] - If not provided, no script execution will be possible
27
27
  */
28
- script?: Arrayable<ScriptExecutionTools>;
28
+ readonly script?: Arrayable<ScriptExecutionTools>;
29
29
  /**
30
30
  * Tools for interacting with the user
31
31
  *
32
32
  * Note: When undefined, the user interface is disabled and promptbook which requires user interaction will fail
33
33
  * @see https://github.com/webgptorg/promptbook/?tab=readme-ov-file#user-interface-tools
34
34
  */
35
- userInterface?: UserInterfaceTools;
35
+ readonly userInterface?: UserInterfaceTools;
36
36
  };
@@ -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
  */
@@ -1,7 +1,8 @@
1
+ import { ReadonlyDeep } from 'type-fest';
2
+ import type { ErrorJson } from '../errors/utils/ErrorJson';
1
3
  import type { ExecutionReportJson } from '../types/execution-report/ExecutionReportJson';
2
- import type { Parameters } from '../types/typeAliases';
3
4
  import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
4
- import type { ErrorJson } from '../errors/utils/ErrorJson';
5
+ import type { Parameters } from '../types/typeAliases';
5
6
  import type { PromptResultUsage } from './PromptResultUsage';
6
7
  /**
7
8
  * @@@
@@ -14,7 +15,7 @@ export type PipelineExecutorResult = {
14
15
  *
15
16
  * Note: If the execution was not successful, there are only some of the result parameters
16
17
  */
17
- readonly outputParameters: Parameters;
18
+ readonly outputParameters: Readonly<Parameters>;
18
19
  /**
19
20
  * Whether the execution was successful, details are aviable in `executionReport`
20
21
  */
@@ -22,26 +23,26 @@ export type PipelineExecutorResult = {
22
23
  /**
23
24
  * Added usage of whole execution, detailed usage is aviable in `executionReport`
24
25
  */
25
- readonly usage: PromptResultUsage;
26
+ readonly usage: ReadonlyDeep<PromptResultUsage>;
26
27
  /**
27
28
  * Errors that occured during the execution, details are aviable in `executionReport`
28
29
  */
29
- readonly errors: Array<ErrorJson>;
30
+ readonly errors: ReadonlyDeep<Array<ErrorJson>>;
30
31
  /**
31
32
  * Warnings that occured during the execution, details are aviable in `executionReport`
32
33
  */
33
- readonly warnings: Array<ErrorJson>;
34
+ readonly warnings: ReadonlyDeep<Array<ErrorJson>>;
34
35
  /**
35
36
  * The report of the execution with all details
36
37
  */
37
- readonly executionReport: ExecutionReportJson;
38
+ readonly executionReport: ReadonlyDeep<ExecutionReportJson>;
38
39
  /**
39
40
  * The prepared pipeline that was used for the execution
40
41
  *
41
42
  * Note: If you called `createPipelineExecutor` with fully prepared pipeline, this is the same object as this pipeline
42
43
  * If you passed not fully prepared pipeline, this is same pipeline but fully prepared
43
44
  */
44
- readonly preparedPipeline: PipelineJson;
45
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
45
46
  };
46
47
  /**
47
48
  * TODO: [🧠] Should this file be in /execution or /types folder?
@@ -0,0 +1,45 @@
1
+ import { ExpectError } from '../../errors/ExpectError';
2
+ import type { Prompt } from '../../types/Prompt';
3
+ import type { ChatPromptResult } from '../PromptResult';
4
+ import type { CompletionPromptResult } from '../PromptResult';
5
+ import type { EmbeddingPromptResult } from '../PromptResult';
6
+ import type { PromptResult } from '../PromptResult';
7
+ /**
8
+ * @@@
9
+ *
10
+ * @private internal utility of `createPipelineExecutor`
11
+ */
12
+ export type $OngoingTemplateResult = {
13
+ /**
14
+ * @@@
15
+ */
16
+ $prompt?: Prompt;
17
+ /**
18
+ * @@@
19
+ */
20
+ $chatResult?: ChatPromptResult;
21
+ /**
22
+ * @@@
23
+ */
24
+ $completionResult?: CompletionPromptResult;
25
+ /**
26
+ * @@@
27
+ */
28
+ $embeddingResult?: EmbeddingPromptResult;
29
+ /**
30
+ * @@@
31
+ */
32
+ $result: PromptResult | null;
33
+ /**
34
+ * @@@
35
+ */
36
+ $resultString: string | null;
37
+ /**
38
+ * @@@
39
+ */
40
+ $expectError: ExpectError | null;
41
+ /**
42
+ * @@@
43
+ */
44
+ $scriptPipelineExecutionErrors: Array<Error>;
45
+ };
@@ -0,0 +1,23 @@
1
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
2
+ import type { ExecutionTools } from '../ExecutionTools';
3
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
4
+ /**
5
+ * Options for `createPipelineExecutor`
6
+ */
7
+ export type CreatePipelineExecutorOptions = {
8
+ /**
9
+ * The pipeline to be executed
10
+ */
11
+ readonly pipeline: PipelineJson;
12
+ /**
13
+ * The execution tools to be used during the execution of the pipeline
14
+ */
15
+ readonly tools: ExecutionTools;
16
+ /**
17
+ * Optional settings for the pipeline executor
18
+ */
19
+ readonly settings?: Partial<CreatePipelineExecutorSettings>;
20
+ };
21
+ /**
22
+ * TODO: !!!!!! Unite `CreatePipelineExecutorOptions` and `CreatePipelineExecutorSettings` OR describe the difference
23
+ */
@@ -0,0 +1,29 @@
1
+ import type { CsvSettings } from '../../formats/csv/CsvSettings';
2
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
+ export type CreatePipelineExecutorSettings = Omit<PrepareAndScrapeOptions, 'llmTools'> & {
4
+ /**
5
+ * When executor does not satisfy expectations it will be retried this amount of times
6
+ *
7
+ * @default MAX_EXECUTION_ATTEMPTS
8
+ */
9
+ readonly maxExecutionAttempts: number;
10
+ /**
11
+ * Settings for CSV format
12
+ *
13
+ * @default DEFAULT_CSV_SETTINGS
14
+ */
15
+ readonly csvSettings: CsvSettings;
16
+ /**
17
+ * If you pass fully prepared pipeline, this does not matter
18
+ *
19
+ * Otherwise:
20
+ * If false or not set, warning is shown when pipeline is not prepared
21
+ * If true, warning is suppressed
22
+ *
23
+ * @default false
24
+ */
25
+ readonly isNotPreparedWarningSupressed: boolean;
26
+ };
27
+ /**
28
+ * TODO: [🤹‍♂️] More granular setting for limits of execution + better waiting for queue
29
+ */
@@ -0,0 +1,13 @@
1
+ import type { PipelineExecutor } from '../PipelineExecutor';
2
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
3
+ /**
4
+ * Creates executor function from pipeline and execution tools.
5
+ *
6
+ * @returns The executor function
7
+ * @throws {PipelineLogicError} on logical error in the pipeline
8
+ * @public exported from `@promptbook/core`
9
+ */
10
+ export declare function createPipelineExecutor(options: CreatePipelineExecutorOptions): PipelineExecutor;
11
+ /**
12
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
13
+ */
@@ -0,0 +1,58 @@
1
+ import type { Promisable, ReadonlyDeep } from 'type-fest';
2
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
+ import type { TaskProgress } from '../../types/TaskProgress';
4
+ import type { Parameters } from '../../types/typeAliases';
5
+ import type { ExecutionTools } from '../ExecutionTools';
6
+ import type { PipelineExecutorResult } from '../PipelineExecutorResult';
7
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
8
+ /**
9
+ * @@@
10
+ *
11
+ * @private internal type of `executePipelinex`
12
+ */
13
+ type ExecutePipelineOptions = {
14
+ /**
15
+ * @@@
16
+ */
17
+ readonly inputParameters: Readonly<Parameters>;
18
+ /**
19
+ * @@@
20
+ */
21
+ readonly tools: ExecutionTools;
22
+ /**
23
+ * @@@
24
+ */
25
+ onProgress?(taskProgress: TaskProgress): Promisable<void>;
26
+ /**
27
+ * @@@
28
+ */
29
+ readonly pipeline: PipelineJson;
30
+ /**
31
+ * @@@
32
+ */
33
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
34
+ /**
35
+ * @@@
36
+ */
37
+ readonly setPreparedPipeline: (preparedPipeline: ReadonlyDeep<PipelineJson>) => void;
38
+ /**
39
+ * @@@
40
+ */
41
+ readonly pipelineIdentification: string;
42
+ /**
43
+ * Settings for the pipeline executor
44
+ */
45
+ readonly settings: CreatePipelineExecutorSettings;
46
+ };
47
+ /**
48
+ * @@@
49
+ *
50
+ * Note: This is not a `PipelineExecutor` (which is binded with one exact pipeline), but a utility function of `createPipelineExecutor` which creates `PipelineExecutor`
51
+ *
52
+ * @private internal utility of `createPipelineExecutor`
53
+ */
54
+ export declare function executePipeline(options: ExecutePipelineOptions): Promise<PipelineExecutorResult>;
55
+ export {};
56
+ /**
57
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
58
+ */
@@ -0,0 +1,65 @@
1
+ import { Promisable, ReadonlyDeep } from 'type-fest';
2
+ import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
3
+ import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
4
+ import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
5
+ import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
6
+ import type { TaskProgress } from '../../types/TaskProgress';
7
+ import type { Parameters } from '../../types/typeAliases';
8
+ import type { ExecutionTools } from '../ExecutionTools';
9
+ import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
10
+ /**
11
+ * @@@
12
+ *
13
+ * @private internal type of `executeTemplate`
14
+ */
15
+ type executeSingleTemplateOptions = {
16
+ /**
17
+ * @@@
18
+ */
19
+ readonly currentTemplate: ReadonlyDeep<TemplateJson>;
20
+ /**
21
+ * @@@
22
+ */
23
+ readonly preparedPipeline: ReadonlyDeep<PipelineJson>;
24
+ /**
25
+ * @@@
26
+ */
27
+ readonly parametersToPass: Readonly<Parameters>;
28
+ /**
29
+ * @@@
30
+ */
31
+ readonly tools: Omit<ExecutionTools, 'llm'>;
32
+ /**
33
+ * @@@
34
+ */
35
+ readonly llmTools: MultipleLlmExecutionTools;
36
+ /**
37
+ * @@@
38
+ */
39
+ readonly onProgress: (taskProgress: TaskProgress) => Promisable<void>;
40
+ /**
41
+ * Settings for the pipeline executor
42
+ */
43
+ readonly settings: CreatePipelineExecutorSettings;
44
+ /**
45
+ * @@@
46
+ */
47
+ readonly $executionReport: ExecutionReportJson;
48
+ /**
49
+ * @@@
50
+ */
51
+ readonly pipelineIdentification: string;
52
+ };
53
+ /**
54
+ * @@@
55
+ *
56
+ * @private internal utility of `createPipelineExecutor`
57
+ */
58
+ export declare function executeTemplate(options: executeSingleTemplateOptions): Promise<Readonly<Parameters>>;
59
+ export {};
60
+ /**
61
+ * TODO: [🤹‍♂️]
62
+ */
63
+ /**
64
+ * TODO: [🐚] Change onProgress to object that represents the running execution, can be subscribed via RxJS to and also awaited
65
+ */
@@ -0,0 +1,15 @@
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 `executeFormatSubvalues`
7
+ */
8
+ type ExecuteFormatCellsOptions = ExecuteAttemptsOptions;
9
+ /**
10
+ * @@@
11
+ *
12
+ * @private internal utility of `createPipelineExecutor`
13
+ */
14
+ export declare function executeFormatSubvalues(options: ExecuteFormatCellsOptions): Promise<TODO_any>;
15
+ export {};
@@ -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>;