@promptbook/remote-server 0.72.0-9 → 0.73.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 (146) hide show
  1. package/README.md +36 -252
  2. package/esm/index.es.js +76 -69
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/core.index.d.ts +24 -18
  5. package/esm/typings/src/_packages/node.index.d.ts +2 -0
  6. package/esm/typings/src/_packages/types.index.d.ts +18 -12
  7. package/esm/typings/src/_packages/utils.index.d.ts +2 -2
  8. package/esm/typings/src/collection/PipelineCollection.d.ts +1 -1
  9. package/esm/typings/src/collection/SimplePipelineCollection.d.ts +2 -2
  10. package/esm/typings/src/collection/collectionToJson.d.ts +1 -1
  11. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +1 -1
  12. package/esm/typings/src/collection/constructors/createCollectionFromPromise.d.ts +1 -1
  13. package/esm/typings/src/commands/TEMPLATE/TemplateTypes.d.ts +1 -1
  14. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +5 -5
  15. package/esm/typings/src/config.d.ts +22 -15
  16. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -3
  17. package/esm/typings/src/conversion/utils/stringifyPipelineJson.d.ts +1 -1
  18. package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
  19. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +2 -2
  20. package/esm/typings/src/executables/$provideExecutablesForNode.d.ts +12 -0
  21. package/esm/typings/src/executables/apps/locateLibreoffice.d.ts +11 -0
  22. package/esm/typings/src/executables/apps/locatePandoc.d.ts +11 -0
  23. package/esm/typings/src/executables/locateApp.d.ts +33 -0
  24. package/esm/typings/src/executables/locateApp.test.d.ts +1 -0
  25. package/esm/typings/src/executables/platforms/locateAppOnLinux.d.ts +12 -0
  26. package/esm/typings/src/executables/platforms/locateAppOnMacOs.d.ts +12 -0
  27. package/esm/typings/src/executables/platforms/locateAppOnWindows.d.ts +12 -0
  28. package/esm/typings/src/execution/EmbeddingVector.d.ts +1 -1
  29. package/esm/typings/src/execution/Executables.d.ts +18 -0
  30. package/esm/typings/src/execution/ExecutionTools.d.ts +9 -3
  31. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  32. package/esm/typings/src/execution/LlmExecutionTools.d.ts +2 -2
  33. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +2 -2
  34. package/esm/typings/src/execution/assertsExecutionSuccessful.d.ts +3 -2
  35. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +29 -6
  36. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +2 -11
  37. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +4 -13
  38. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +9 -14
  39. package/esm/typings/src/execution/createPipelineExecutor/{getSamplesForTemplate.d.ts → getExamplesForTemplate.d.ts} +1 -1
  40. package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +11 -3
  41. package/esm/typings/src/execution/utils/addUsage.d.ts +1 -1
  42. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -1
  43. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +4 -4
  44. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +3 -3
  45. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForCli.d.ts +2 -2
  46. package/esm/typings/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +1 -1
  47. package/esm/typings/src/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +7 -0
  48. package/esm/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +4 -1
  49. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
  50. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +2 -2
  51. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  52. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
  53. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +2 -1
  54. package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +1 -1
  55. package/esm/typings/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +1 -1
  56. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +1 -1
  57. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +1 -1
  58. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +4 -5
  59. package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +1 -1
  60. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +0 -1
  61. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -2
  62. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +2 -2
  63. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  64. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +4 -4
  65. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +15 -6
  66. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Response.d.ts +4 -4
  67. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +6 -12
  68. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Response.d.ts +3 -3
  69. package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +9 -14
  70. package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +23 -8
  71. package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
  72. package/esm/typings/src/personas/preparePersona.d.ts +1 -1
  73. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +4 -23
  74. package/esm/typings/src/prepare/isPipelinePrepared.d.ts +2 -2
  75. package/esm/typings/src/prepare/prepareTemplates.d.ts +2 -2
  76. package/esm/typings/src/scrapers/_common/Scraper.d.ts +2 -9
  77. package/esm/typings/src/scrapers/_common/prepareKnowledgePieces.d.ts +1 -1
  78. package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +2 -2
  79. package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +2 -2
  80. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +2 -2
  81. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +2 -2
  82. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +1 -1
  83. package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +2 -2
  84. package/esm/typings/src/scrapers/document/DocumentScraper.test.d.ts +1 -1
  85. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -1
  86. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -1
  87. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +3 -3
  88. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.test.d.ts +1 -1
  89. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -1
  90. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -1
  91. package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +1 -1
  92. package/esm/typings/src/scrapers/markdown/MarkdownScraper.test.d.ts +1 -1
  93. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -1
  94. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -1
  95. package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +2 -2
  96. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -1
  97. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -1
  98. package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +6 -3
  99. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -1
  100. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -1
  101. package/esm/typings/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
  102. package/esm/typings/src/scrapers/website/utils/createShowdownConverter.test.d.ts +1 -0
  103. package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
  104. package/esm/typings/src/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +1 -1
  105. package/esm/typings/src/types/Arrayable.d.ts +1 -1
  106. package/esm/typings/src/types/IntermediateFilesStrategy.d.ts +7 -0
  107. package/esm/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +4 -4
  108. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +1 -1
  109. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +2 -2
  110. package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +1 -1
  111. package/esm/typings/src/types/PipelineJson/PreparationJson.d.ts +1 -1
  112. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +2 -2
  113. package/esm/typings/src/types/Prompt.d.ts +2 -1
  114. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
  115. package/esm/typings/src/types/typeAliases.d.ts +11 -8
  116. package/esm/typings/src/utils/$Register.d.ts +1 -1
  117. package/esm/typings/src/utils/FromtoItems.d.ts +1 -1
  118. package/esm/typings/src/utils/arrayableToArray.d.ts +1 -1
  119. package/esm/typings/src/utils/emojis.d.ts +1 -1
  120. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +4 -2
  121. package/esm/typings/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +12 -0
  122. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +1 -0
  123. package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +45 -0
  124. package/esm/typings/src/utils/expectation-counters/countSentences.d.ts +1 -1
  125. package/esm/typings/src/utils/files/isExecutable.d.ts +11 -0
  126. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
  127. package/esm/typings/src/utils/markdown/splitMarkdownIntoSections.d.ts +1 -1
  128. package/esm/typings/src/utils/normalization/IKeywords.d.ts +2 -2
  129. package/esm/typings/src/utils/normalization/parseKeywords.d.ts +2 -2
  130. package/esm/typings/src/utils/normalization/parseKeywordsFromString.d.ts +2 -2
  131. package/esm/typings/src/utils/normalization/searchKeywords.d.ts +2 -2
  132. package/esm/typings/src/utils/organization/TODO_USE.d.ts +1 -1
  133. package/esm/typings/src/utils/organization/keepUnused.d.ts +1 -1
  134. package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
  135. package/esm/typings/src/utils/sets/intersection.d.ts +1 -1
  136. package/esm/typings/src/utils/sets/union.d.ts +1 -1
  137. package/esm/typings/src/utils/unwrapResult.d.ts +4 -4
  138. package/package.json +6 -4
  139. package/umd/index.umd.js +76 -69
  140. package/umd/index.umd.js.map +1 -1
  141. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +0 -29
  142. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +0 -12
  143. package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +0 -23
  144. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +0 -10
  145. /package/esm/typings/src/{scrapers/website/WebsiteScraper.test.d.ts → executables/apps/locateLibreoffice.test.d.ts} +0 -0
  146. /package/esm/typings/src/{scrapers/website/utils/markdownConverter.test.d.ts → executables/apps/locatePandoc.test.d.ts} +0 -0
@@ -1,4 +1,5 @@
1
1
  import type { CsvSettings } from './formats/csv/CsvSettings';
2
+ import type { IntermediateFilesStrategy } from './types/IntermediateFilesStrategy';
2
3
  /**
3
4
  * Warning message for the generated sections and files files
4
5
  *
@@ -12,7 +13,7 @@ export declare const GENERATOR_WARNING = "\u26A0\uFE0F WARNING: This code has be
12
13
  *
13
14
  * @public exported from `@promptbook/core`
14
15
  */
15
- export declare const CLAIM = "Supercharge LLM models with Promptbook";
16
+ export declare const CLAIM = "Build responsible, controlled and transparent applications on top of LLM models!";
16
17
  /**
17
18
  * Warning message for the generated sections and files files
18
19
  *
@@ -50,37 +51,43 @@ export declare const CONNECTION_RETRIES_LIMIT = 5;
50
51
  */
51
52
  export declare const IMMEDIATE_TIME = 10;
52
53
  /**
53
- * The maximum number of (LLM) tasks running in parallel
54
+ * The maximum length of the (generated) filename
54
55
  *
55
56
  * @public exported from `@promptbook/core`
56
57
  */
57
- export declare const MAX_PARALLEL_COUNT = 5;
58
+ export declare const MAX_FILENAME_LENGTH = 30;
58
59
  /**
59
- * The maximum number of attempts to execute LLM task before giving up
60
+ * Strategy for caching the intermediate results for knowledge sources
60
61
  *
61
62
  * @public exported from `@promptbook/core`
62
63
  */
63
- export declare const MAX_EXECUTION_ATTEMPTS = 3;
64
+ export declare const DEFAULT_INTERMEDIATE_FILES_STRATEGY: IntermediateFilesStrategy;
64
65
  /**
65
- * The maximum length of the (generated) filename
66
+ * The maximum number of (LLM) tasks running in parallel
66
67
  *
67
68
  * @public exported from `@promptbook/core`
68
69
  */
69
- export declare const MAX_FILENAME_LENGTH = 30;
70
+ export declare const DEFAULT_MAX_PARALLEL_COUNT = 5;
71
+ /**
72
+ * The maximum number of attempts to execute LLM task before giving up
73
+ *
74
+ * @public exported from `@promptbook/core`
75
+ */
76
+ export declare const DEFAULT_MAX_EXECUTION_ATTEMPTS = 3;
70
77
  /**
71
78
  * @@@
72
79
  * TODO: [🐝][main] !!! Use
73
80
  *
74
81
  * @public exported from `@promptbook/core`
75
82
  */
76
- export declare const MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH = 3;
83
+ export declare const DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_DEPTH = 3;
77
84
  /**
78
85
  * @@@
79
86
  * TODO: [🐝][main] !!! Use
80
87
  *
81
88
  * @public exported from `@promptbook/core`
82
89
  */
83
- export declare const MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL = 200;
90
+ export declare const DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL = 200;
84
91
  /**
85
92
  * Where to store the cache of executions for promptbook CLI
86
93
  *
@@ -88,7 +95,7 @@ export declare const MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL = 200;
88
95
  *
89
96
  * @public exported from `@promptbook/core`
90
97
  */
91
- export declare const EXECUTIONS_CACHE_DIRNAME = "/.promptbook/executions-cache";
98
+ export declare const DEFAULT_EXECUTIONS_CACHE_DIRNAME = "/.promptbook/executions-cache";
92
99
  /**
93
100
  * Where to store the scrape cache
94
101
  *
@@ -96,13 +103,13 @@ export declare const EXECUTIONS_CACHE_DIRNAME = "/.promptbook/executions-cache";
96
103
  *
97
104
  * @public exported from `@promptbook/core`
98
105
  */
99
- export declare const SCRAPE_CACHE_DIRNAME = "/.promptbook/scrape-cache";
106
+ export declare const DEFAULT_SCRAPE_CACHE_DIRNAME = "/.promptbook/scrape-cache";
100
107
  /**
101
108
  * The name of the builded pipeline collection made by CLI `ptbk make` and for lookup in `createCollectionFromDirectory`
102
109
  *
103
110
  * @public exported from `@promptbook/core`
104
111
  */
105
- export declare const PIPELINE_COLLECTION_BASE_FILENAME = "index";
112
+ export declare const DEFAULT_PIPELINE_COLLECTION_BASE_FILENAME = "index";
106
113
  /**
107
114
  * Nonce which is used for replacing things in strings
108
115
  *
@@ -114,7 +121,7 @@ export declare const REPLACING_NONCE = "u$k42k%!V2zo34w7Fu#@QUHYPW";
114
121
  *
115
122
  * @public exported from `@promptbook/core`
116
123
  */
117
- export declare const RESERVED_PARAMETER_NAMES: readonly ["content", "context", "knowledge", "samples", "modelName", "currentDate"];
124
+ export declare const RESERVED_PARAMETER_NAMES: readonly ["content", "context", "knowledge", "examples", "modelName", "currentDate"];
118
125
  /**
119
126
  * @@@
120
127
  *
@@ -159,13 +166,13 @@ export declare const DEFAULT_CSV_SETTINGS: CsvSettings;
159
166
  *
160
167
  * @public exported from `@promptbook/core`
161
168
  */
162
- export declare const IS_VERBOSE = false;
169
+ export declare const DEFAULT_IS_VERBOSE = false;
163
170
  /**
164
171
  * @@@
165
172
  *
166
173
  * @public exported from `@promptbook/core`
167
174
  */
168
- export declare const IS_AUTO_INSTALLED = false;
175
+ export declare const DEFAULT_IS_AUTO_INSTALLED = false;
169
176
  /**
170
177
  * @@@
171
178
  *
@@ -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
  */
@@ -9,7 +9,7 @@ import type { string_json } from '../../types/typeAliases';
9
9
  */
10
10
  export declare function stringifyPipelineJson<TType>(pipeline: TType): string_json<TType>;
11
11
  /**
12
- * TODO: [🐝] Not Working propperly @see https://promptbook.studio/samples/mixed-knowledge.ptbk.md
12
+ * TODO: [🐝] Not Working propperly @see https://promptbook.studio/examples/mixed-knowledge.ptbk.md
13
13
  * TODO: [🧠][0] Maybe rename to `stringifyPipelineJson`, `stringifyIndexedJson`,...
14
14
  * TODO: [🧠] Maybe more elegant solution than replacing via regex
15
15
  * TODO: [🍙] Make some standard order of json properties
@@ -7,7 +7,7 @@ import type { string_json } from '../../types/typeAliases';
7
7
  * Note: Using here custom import to work in jest tests
8
8
  * Note: Using sync version is 💩 in the production code, but it's ok here in tests
9
9
  *
10
- * @param path - The path to the file relative to samples/pipelines directory
10
+ * @param path - The path to the file relative to examples/pipelines directory
11
11
  * @private internal function of tests
12
12
  */
13
13
  export declare function importPipelineWithoutPreparation(path: `${string}.ptbk.md`): PipelineString;
@@ -20,7 +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
+ * TODO: !! [🧞‍♀️] Do not allow joker + foreach
24
24
  * TODO: [🧠] Work with promptbookVersion
25
25
  * TODO: Use here some json-schema, Zod or something similar and change it to:
26
26
  * > /**
@@ -32,7 +32,7 @@ export declare function validatePipelineCore(pipeline: PipelineJson): void;
32
32
  * > ex port function validatePipeline(promptbook: really_unknown): asserts promptbook is PipelineJson {
33
33
  */
34
34
  /**
35
- * TODO: [🧳][main] !!!! Validate that all samples match expectations
35
+ * TODO: [🧳][main] !!!! Validate that all examples match expectations
36
36
  * TODO: [🧳][🐝][main] !!!! Validate that knowledge is valid (non-void)
37
37
  * TODO: [🧳][main] !!!! Validate that persona can be used only with CHAT variant
38
38
  * TODO: [🧳][main] !!!! Validate that parameter with reserved name not used RESERVED_PARAMETER_NAMES
@@ -0,0 +1,12 @@
1
+ import type { Executables } from '../execution/Executables';
2
+ import type { PrepareAndScrapeOptions } from '../prepare/PrepareAndScrapeOptions';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @public exported from `@promptbook/node`
7
+ */
8
+ export declare function $provideExecutablesForNode(options?: PrepareAndScrapeOptions): Promise<Executables>;
9
+ /**
10
+ * TODO: [🧠] Allow to override the executables without need to call `locatePandoc` / `locateLibreoffice` in case of provided
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -0,0 +1,11 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ /**
3
+ * @@@
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export declare function locateLibreoffice(): Promise<string_executable_path | null>;
8
+ /**
9
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node` OR `@promptbook/legacy-documents`
10
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
11
+ */
@@ -0,0 +1,11 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ /**
3
+ * @@@
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export declare function locatePandoc(): Promise<string_executable_path | null>;
8
+ /**
9
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node` OR `@promptbook/documents`
10
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
11
+ */
@@ -0,0 +1,33 @@
1
+ import type { RequireAtLeastOne } from 'type-fest';
2
+ import type { string_executable_path } from '../types/typeAliases';
3
+ /**
4
+ * Options for locating any application
5
+ */
6
+ export interface LocateAppOptions {
7
+ /**
8
+ * Name of the application
9
+ */
10
+ appName: string;
11
+ /**
12
+ * Name of the executable on Linux
13
+ */
14
+ linuxWhich?: string;
15
+ /**
16
+ * Path suffix on Windows
17
+ */
18
+ windowsSuffix?: string;
19
+ /**
20
+ * Name of the application on macOS
21
+ */
22
+ macOsName?: string;
23
+ }
24
+ /**
25
+ * Locates an application on the system
26
+ *
27
+ * @private within the repository
28
+ */
29
+ export declare function locateApp(options: RequireAtLeastOne<LocateAppOptions, 'linuxWhich' | 'windowsSuffix' | 'macOsName'>): Promise<string_executable_path | null>;
30
+ /**
31
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
32
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
33
+ */
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,12 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ import type { LocateAppOptions } from '../locateApp';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function locateAppOnLinux({ appName, linuxWhich, }: Pick<Required<LocateAppOptions>, 'appName' | 'linuxWhich'>): Promise<string_executable_path | null>;
9
+ /**
10
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -0,0 +1,12 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ import type { LocateAppOptions } from '../locateApp';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function locateAppOnMacOs({ appName, macOsName, }: Pick<Required<LocateAppOptions>, 'appName' | 'macOsName'>): Promise<string_executable_path | null>;
9
+ /**
10
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -0,0 +1,12 @@
1
+ import type { string_executable_path } from '../../types/typeAliases';
2
+ import type { LocateAppOptions } from '../locateApp';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function locateAppOnWindows({ appName, windowsSuffix, }: Pick<Required<LocateAppOptions>, 'appName' | 'windowsSuffix'>): Promise<string_executable_path | null>;
9
+ /**
10
+ * TODO: [🧠][♿] Maybe export through `@promptbook/node`
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Represents a vector in an latent space of the embedding model
3
3
  */
4
- export type EmbeddingVector = Array<number>;
4
+ export type EmbeddingVector = ReadonlyArray<number>;
5
5
  /**
6
6
  * TODO: Figure out how to use NPM package xyzt
7
7
  * Not using IVectorData due to HUGE dimensionality
@@ -0,0 +1,18 @@
1
+ import type { string_executable_path } from '../types/typeAliases';
2
+ /**
3
+ * Paths to the external programs executables
4
+ */
5
+ export type Executables = {
6
+ /**
7
+ * Path to the `pandoc` executable
8
+ *
9
+ * @example 'C:/Users/me/AppData/Local/Pandoc/pandoc.exe'
10
+ */
11
+ pandocPath?: string_executable_path;
12
+ /**
13
+ * Path to the LibreOffice executable
14
+ *
15
+ * @example 'C:/Program Files/LibreOffice/program/swriter.exe'
16
+ */
17
+ libreOfficePath?: string_executable_path;
18
+ };
@@ -1,5 +1,6 @@
1
1
  import type { Scraper } from '../scrapers/_common/Scraper';
2
2
  import type { Arrayable } from '../types/Arrayable';
3
+ import type { Executables } from './Executables';
3
4
  import type { FilesystemTools } from './FilesystemTools';
4
5
  import type { LlmExecutionTools } from './LlmExecutionTools';
5
6
  import type { ScriptExecutionTools } from './ScriptExecutionTools';
@@ -26,6 +27,14 @@ export type ExecutionTools = {
26
27
  * @default undefined - If not provided, no filesystem operations will be possible
27
28
  */
28
29
  readonly fs?: FilesystemTools;
30
+ /**
31
+ * Scrapers for extracting knowledge from external sources
32
+ *
33
+ * Tip: Use `$provideExecutablesForNode`
34
+ *
35
+ * @default [] - If not provided, no external knowledge extraction will be possible
36
+ */
37
+ readonly executables?: Executables;
29
38
  /**
30
39
  * Scrapers for extracting knowledge from external sources
31
40
  *
@@ -51,6 +60,3 @@ export type ExecutionTools = {
51
60
  */
52
61
  readonly userInterface?: UserInterfaceTools;
53
62
  };
54
- /**
55
- * TODO: !!!!!! Move here also the executables and make $provideXxxxForNode
56
- */
@@ -3,7 +3,7 @@ import type fs from 'fs/promises';
3
3
  /**
4
4
  * Container for all the tools needed to manipulate with filesystem
5
5
  */
6
- export type FilesystemTools = Pick<typeof fs, 'access' | 'constants' | 'readFile' | 'stat' | 'readdir'>;
6
+ export type FilesystemTools = Pick<typeof fs, 'access' | 'constants' | 'readFile' | 'writeFile' | 'stat' | 'readdir'>;
7
7
  /**
8
8
  * TODO: Implement destroyable pattern to free resources
9
9
  */
@@ -37,7 +37,7 @@ export type LlmExecutionTools = {
37
37
  /**
38
38
  * List all available models that can be used
39
39
  */
40
- listModels(): Promisable<Array<AvailableModel>>;
40
+ listModels(): Promisable<ReadonlyArray<AvailableModel>>;
41
41
  /**
42
42
  * Calls a chat model
43
43
  */
@@ -52,7 +52,7 @@ export type LlmExecutionTools = {
52
52
  callEmbeddingModel?(prompt: Prompt): Promise<EmbeddingPromptResult>;
53
53
  };
54
54
  /**
55
- * TODO: Implement destroyable pattern to free resources
55
+ * TODO: [🍚] Implement destroyable pattern to free resources
56
56
  * TODO: [🏳] Add `callTranslationModel`
57
57
  * TODO: [🧠] Emulation of one type of model with another one - emuate chat with completion; emulate translation with chat
58
58
  * TODO: [🍓][♐] Some heuristic to pick the best model in listed models
@@ -27,11 +27,11 @@ export type PipelineExecutorResult = {
27
27
  /**
28
28
  * Errors that occured during the execution, details are aviable in `executionReport`
29
29
  */
30
- readonly errors: ReadonlyDeep<Array<ErrorJson>>;
30
+ readonly errors: ReadonlyDeep<ReadonlyArray<ErrorJson>>;
31
31
  /**
32
32
  * Warnings that occured during the execution, details are aviable in `executionReport`
33
33
  */
34
- readonly warnings: ReadonlyDeep<Array<ErrorJson>>;
34
+ readonly warnings: ReadonlyDeep<ReadonlyArray<ErrorJson>>;
35
35
  /**
36
36
  * The report of the execution with all details
37
37
  */
@@ -1,4 +1,4 @@
1
- import type { PipelineExecutor } from './PipelineExecutor';
1
+ import type { PipelineExecutorResult } from './PipelineExecutorResult';
2
2
  /**
3
3
  * Asserts that the execution of a Promptbook is successful
4
4
  *
@@ -6,7 +6,8 @@ import type { PipelineExecutor } from './PipelineExecutor';
6
6
  * @throws {PipelineExecutionError} If the execution is not successful or if multiple errors occurred
7
7
  * @public exported from `@promptbook/core`
8
8
  */
9
- export declare function assertsExecutionSuccessful(executionResult: Pick<Awaited<ReturnType<PipelineExecutor>>, 'isSuccessful' | 'errors'>): void;
9
+ export declare function assertsExecutionSuccessful(executionResult: Pick<PipelineExecutorResult, 'isSuccessful' | 'errors'>): void;
10
10
  /**
11
+ * TODO: [🐚] This function should be removed OR changed OR be completely rewritten
11
12
  * TODO: [🧠] Can this return type be better typed than void
12
13
  */
@@ -1,10 +1,11 @@
1
+ import type { CsvSettings } from '../../formats/csv/CsvSettings';
2
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
1
3
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
2
4
  import type { ExecutionTools } from '../ExecutionTools';
3
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
4
5
  /**
5
6
  * Options for `createPipelineExecutor`
6
7
  */
7
- export type CreatePipelineExecutorOptions = {
8
+ export type CreatePipelineExecutorOptions = PrepareAndScrapeOptions & {
8
9
  /**
9
10
  * The pipeline to be executed
10
11
  */
@@ -14,10 +15,32 @@ export type CreatePipelineExecutorOptions = {
14
15
  */
15
16
  readonly tools: ExecutionTools;
16
17
  /**
17
- * Optional settings for the pipeline executor
18
+ * When executor does not satisfy expectations it will be retried this amount of times
19
+ *
20
+ * @default MAX_EXECUTION_ATTEMPTS
18
21
  */
19
- readonly settings?: Partial<CreatePipelineExecutorSettings>;
22
+ readonly maxExecutionAttempts?: number;
23
+ /**
24
+ * Settings for CSV format
25
+ *
26
+ * @default DEFAULT_CSV_SETTINGS
27
+ */
28
+ readonly csvSettings?: CsvSettings;
29
+ /**
30
+ * If you pass fully prepared pipeline, this does not matter
31
+ *
32
+ * Otherwise:
33
+ * If false or not set, warning is shown when pipeline is not prepared
34
+ * If true, warning is suppressed
35
+ *
36
+ * @default false
37
+ */
38
+ readonly isNotPreparedWarningSupressed?: boolean;
20
39
  };
21
40
  /**
22
- * TODO: !!!!!! Unite `CreatePipelineExecutorOptions` and `CreatePipelineExecutorSettings` OR describe the difference
23
- */
41
+ * TODO: [🧎][🧠] Move `csvSettings` to some better place
42
+ * 1) either to some dependency in `ExecutionTools`
43
+ * 2) or make here container for multiple formats
44
+ * 3) or make the setting more universal and which just sets things like `delimiter` and `quote` without specifying the format
45
+ * TODO: [🤹‍♂️] More granular setting for limits of execution + better waiting for queue
46
+ */
@@ -2,23 +2,18 @@ import type { Promisable, ReadonlyDeep } from 'type-fest';
2
2
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
3
3
  import type { TaskProgress } from '../../types/TaskProgress';
4
4
  import type { Parameters } from '../../types/typeAliases';
5
- import type { ExecutionTools } from '../ExecutionTools';
6
5
  import type { PipelineExecutorResult } from '../PipelineExecutorResult';
7
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
6
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
8
7
  /**
9
8
  * @@@
10
9
  *
11
10
  * @private internal type of `executePipeline`
12
11
  */
13
- type ExecutePipelineOptions = {
12
+ type ExecutePipelineOptions = CreatePipelineExecutorOptions & {
14
13
  /**
15
14
  * @@@
16
15
  */
17
16
  readonly inputParameters: Readonly<Parameters>;
18
- /**
19
- * @@@
20
- */
21
- readonly tools: ExecutionTools;
22
17
  /**
23
18
  * @@@
24
19
  */
@@ -39,10 +34,6 @@ type ExecutePipelineOptions = {
39
34
  * @@@
40
35
  */
41
36
  readonly pipelineIdentification: string;
42
- /**
43
- * Settings for the pipeline executor
44
- */
45
- readonly settings: CreatePipelineExecutorSettings;
46
37
  };
47
38
  /**
48
39
  * @@@
@@ -1,17 +1,16 @@
1
- import { Promisable, ReadonlyDeep } from 'type-fest';
1
+ import type { Promisable, ReadonlyDeep, WritableDeep } from 'type-fest';
2
2
  import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
3
3
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
4
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
5
5
  import type { TaskProgress } from '../../types/TaskProgress';
6
6
  import type { Parameters } from '../../types/typeAliases';
7
- import type { ExecutionTools } from '../ExecutionTools';
8
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
7
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
9
8
  /**
10
9
  * @@@
11
10
  *
12
11
  * @private internal type of `executeTemplate`
13
12
  */
14
- type executeSingleTemplateOptions = {
13
+ type executeSingleTemplateOptions = CreatePipelineExecutorOptions & {
15
14
  /**
16
15
  * @@@
17
16
  */
@@ -24,22 +23,14 @@ type executeSingleTemplateOptions = {
24
23
  * @@@
25
24
  */
26
25
  readonly parametersToPass: Readonly<Parameters>;
27
- /**
28
- * @@@
29
- */
30
- readonly tools: ExecutionTools;
31
26
  /**
32
27
  * @@@
33
28
  */
34
29
  readonly onProgress: (taskProgress: TaskProgress) => Promisable<void>;
35
- /**
36
- * Settings for the pipeline executor
37
- */
38
- readonly settings: CreatePipelineExecutorSettings;
39
30
  /**
40
31
  * @@@
41
32
  */
42
- readonly $executionReport: ExecutionReportJson;
33
+ readonly $executionReport: WritableDeep<ExecutionReportJson>;
43
34
  /**
44
35
  * @@@
45
36
  */
@@ -1,28 +1,31 @@
1
- import type { ReadonlyDeep } from 'type-fest';
1
+ import type { ReadonlyDeep, WritableDeep } from 'type-fest';
2
2
  import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
3
3
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
4
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
5
5
  import type { Parameters } from '../../types/typeAliases';
6
6
  import type { string_parameter_name } from '../../types/typeAliases';
7
7
  import type { TODO_string } from '../../utils/organization/TODO_string';
8
- import type { ExecutionTools } from '../ExecutionTools';
9
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
8
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
10
9
  /**
11
10
  * @@@
12
11
  *
13
12
  * @private internal type of `executeAttempts`
14
13
  */
15
- export type ExecuteAttemptsOptions = {
14
+ export type ExecuteAttemptsOptions = Omit<CreatePipelineExecutorOptions, 'pipeline'> & {
16
15
  /**
17
16
  * @@@
18
17
  */
19
- readonly jokerParameterNames: Readonly<Array<string_parameter_name>>;
18
+ readonly jokerParameterNames: Readonly<ReadonlyArray<string_parameter_name>>;
20
19
  /**
21
20
  * @@@
22
21
  */
23
22
  readonly priority: number;
24
23
  /**
25
24
  * @@@
25
+ *
26
+ * Note: [💂] There are two distinct variabiles
27
+ * 1) `maxExecutionAttempts` - the amount of attempts LLM model
28
+ * 2) `maxAttempts` - the amount of attempts for any template - LLM, SCRIPT, DIALOG, etc.
26
29
  */
27
30
  readonly maxAttempts: number;
28
31
  /**
@@ -44,15 +47,7 @@ export type ExecuteAttemptsOptions = {
44
47
  /**
45
48
  * @@@
46
49
  */
47
- readonly tools: ExecutionTools;
48
- /**
49
- * Settings for the pipeline executor
50
- */
51
- readonly settings: CreatePipelineExecutorSettings;
52
- /**
53
- * @@@
54
- */
55
- readonly $executionReport: ExecutionReportJson;
50
+ readonly $executionReport: WritableDeep<ExecutionReportJson>;
56
51
  /**
57
52
  * @@@
58
53
  */
@@ -7,4 +7,4 @@ import type { string_parameter_value } from '../../types/typeAliases';
7
7
  *
8
8
  * @private internal utility of `createPipelineExecutor`
9
9
  */
10
- export declare function getSamplesForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
10
+ export declare function getExamplesForTemplate(template: ReadonlyDeep<TemplateJson>): Promise<string_parameter_value & string_markdown>;
@@ -1,9 +1,17 @@
1
1
  import type { AutomaticTranslator } from './AutomaticTranslator';
2
2
  import type { TranslatorOptions } from './TranslatorOptions';
3
- interface LindatAutomaticTranslatorOptions extends TranslatorOptions {
4
- apiUrl?: URL;
5
- }
6
3
  /**
4
+ * @@@
5
+ */
6
+ type LindatAutomaticTranslatorOptions = TranslatorOptions & {
7
+ /**
8
+ * @@@
9
+ */
10
+ readonly apiUrl?: URL;
11
+ };
12
+ /**
13
+ * @@@
14
+ *
7
15
  * @private still in development [🏳]
8
16
  */
9
17
  export declare class LindatAutomaticTranslator implements AutomaticTranslator {
@@ -6,4 +6,4 @@ import type { PromptResultUsage } from '../PromptResultUsage';
6
6
  *
7
7
  * @public exported from `@promptbook/core`
8
8
  */
9
- export declare function addUsage(...usageItems: Array<PromptResultUsage>): PromptResultUsage;
9
+ export declare function addUsage(...usageItems: ReadonlyArray<PromptResultUsage>): PromptResultUsage;
@@ -16,5 +16,5 @@ type ForEachAsyncOptions = {
16
16
  * @public exported from `@promptbook/utils`
17
17
  * @deprecated [🪂] Use queues instead
18
18
  */
19
- export declare function forEachAsync<TItem>(array: Array<TItem>, options: ForEachAsyncOptions, callbackfunction: (value: TItem, index: number, array: Array<TItem>) => Promisable<void>): Promise<void>;
19
+ export declare function forEachAsync<TItem>(array: ReadonlyArray<TItem>, options: ForEachAsyncOptions, callbackfunction: (value: TItem, index: number, array: ReadonlyArray<TItem>) => Promisable<void>): Promise<void>;
20
20
  export {};