@promptbook/remote-server 0.72.0-8 → 0.72.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 (196) hide show
  1. package/README.md +8 -8
  2. package/esm/index.es.js +183 -78
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/browser.index.d.ts +2 -0
  5. package/esm/typings/src/_packages/cli.index.d.ts +20 -0
  6. package/esm/typings/src/_packages/core.index.d.ts +42 -30
  7. package/esm/typings/src/_packages/documents.index.d.ts +8 -0
  8. package/esm/typings/src/_packages/legacy-documents.index.d.ts +8 -0
  9. package/esm/typings/src/_packages/markdown-utils.index.d.ts +6 -0
  10. package/esm/typings/src/_packages/node.index.d.ts +12 -4
  11. package/esm/typings/src/_packages/pdf.index.d.ts +8 -0
  12. package/esm/typings/src/_packages/types.index.d.ts +33 -17
  13. package/esm/typings/src/_packages/utils.index.d.ts +2 -2
  14. package/esm/typings/src/_packages/website-crawler.index.d.ts +8 -0
  15. package/esm/typings/src/collection/PipelineCollection.d.ts +1 -1
  16. package/esm/typings/src/collection/SimplePipelineCollection.d.ts +2 -2
  17. package/esm/typings/src/collection/collectionToJson.d.ts +1 -1
  18. package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +5 -3
  19. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +1 -1
  20. package/esm/typings/src/collection/constructors/createCollectionFromPromise.d.ts +1 -1
  21. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +5 -5
  22. package/esm/typings/src/config.d.ts +26 -13
  23. package/esm/typings/src/conversion/pipelineStringToJson.d.ts +3 -1
  24. package/esm/typings/src/dialogs/callback/CallbackInterfaceToolsOptions.d.ts +2 -2
  25. package/esm/typings/src/dialogs/simple-prompt/SimplePromptInterfaceTools.d.ts +3 -3
  26. package/esm/typings/src/executables/$provideExecutablesForNode.d.ts +12 -0
  27. package/esm/typings/src/executables/apps/locateLibreoffice.d.ts +11 -0
  28. package/esm/typings/src/executables/apps/locatePandoc.d.ts +11 -0
  29. package/esm/typings/src/executables/locateApp.d.ts +33 -0
  30. package/esm/typings/src/executables/platforms/locateAppOnLinux.d.ts +12 -0
  31. package/esm/typings/src/executables/platforms/locateAppOnMacOs.d.ts +12 -0
  32. package/esm/typings/src/executables/platforms/locateAppOnWindows.d.ts +12 -0
  33. package/esm/typings/src/execution/{CommonExecutionToolsOptions.d.ts → CommonToolsOptions.d.ts} +1 -1
  34. package/esm/typings/src/execution/EmbeddingVector.d.ts +1 -1
  35. package/esm/typings/src/execution/Executables.d.ts +18 -0
  36. package/esm/typings/src/execution/ExecutionTools.d.ts +32 -6
  37. package/esm/typings/src/execution/FilesystemTools.d.ts +9 -0
  38. package/esm/typings/src/execution/LlmExecutionTools.d.ts +2 -2
  39. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +2 -2
  40. package/esm/typings/src/execution/assertsExecutionSuccessful.d.ts +3 -2
  41. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +29 -6
  42. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +3 -12
  43. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +4 -18
  44. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +9 -19
  45. package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +11 -3
  46. package/esm/typings/src/execution/translation/automatic-translate/translateMessages.d.ts +1 -0
  47. package/esm/typings/src/execution/utils/$provideExecutionToolsForNode.d.ts +13 -0
  48. package/esm/typings/src/execution/utils/addUsage.d.ts +1 -1
  49. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -1
  50. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +2 -2
  51. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +2 -2
  52. package/esm/typings/src/llm-providers/_common/{$llmToolsMetadataRegister.d.ts → register/$llmToolsMetadataRegister.d.ts} +4 -1
  53. package/esm/typings/src/llm-providers/_common/{$llmToolsRegister.d.ts → register/$llmToolsRegister.d.ts} +5 -2
  54. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfigurationFromEnv.d.ts → register/$provideLlmToolsConfigurationFromEnv.d.ts} +3 -3
  55. package/esm/typings/src/llm-providers/_common/{getLlmToolsForCli.d.ts → register/$provideLlmToolsForCli.d.ts} +4 -11
  56. package/esm/typings/src/llm-providers/_common/{getLlmToolsForTestingAndScriptsAndPlayground.d.ts → register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts} +4 -3
  57. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromEnv.d.ts → register/$provideLlmToolsFromEnv.d.ts} +6 -5
  58. package/esm/typings/src/llm-providers/_common/{$registeredLlmToolsMessage.d.ts → register/$registeredLlmToolsMessage.d.ts} +5 -2
  59. package/esm/typings/src/llm-providers/_common/{LlmToolsConfiguration.d.ts → register/LlmToolsConfiguration.d.ts} +6 -5
  60. package/esm/typings/src/llm-providers/_common/{LlmToolsMetadata.d.ts → register/LlmToolsMetadata.d.ts} +5 -4
  61. package/esm/typings/src/llm-providers/_common/{LlmToolsOptions.d.ts → register/LlmToolsOptions.d.ts} +4 -1
  62. package/esm/typings/src/llm-providers/_common/{createLlmToolsFromConfiguration.d.ts → register/createLlmToolsFromConfiguration.d.ts} +12 -4
  63. package/esm/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +4 -1
  64. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
  65. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionToolsOptions.d.ts +5 -5
  66. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  67. package/esm/typings/src/llm-providers/anthropic-claude/register-configuration.d.ts +4 -3
  68. package/esm/typings/src/llm-providers/anthropic-claude/register-constructor.d.ts +4 -3
  69. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
  70. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +4 -3
  71. package/esm/typings/src/llm-providers/azure-openai/register-configuration.d.ts +4 -3
  72. package/esm/typings/src/llm-providers/azure-openai/register-constructor.d.ts +4 -3
  73. package/esm/typings/src/llm-providers/langtail/LangtailExecutionTools.d.ts +1 -1
  74. package/esm/typings/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +1 -1
  75. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +4 -4
  76. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +4 -4
  77. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +4 -4
  78. package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +1 -1
  79. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +0 -1
  80. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -2
  81. package/esm/typings/src/llm-providers/openai/OpenAiExecutionToolsOptions.d.ts +4 -4
  82. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  83. package/esm/typings/src/llm-providers/openai/register-configuration.d.ts +5 -4
  84. package/esm/typings/src/llm-providers/openai/register-constructor.d.ts +5 -4
  85. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +4 -4
  86. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Request.d.ts +16 -7
  87. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Response.d.ts +4 -4
  88. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Request.d.ts +7 -13
  89. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Response.d.ts +3 -3
  90. package/esm/typings/src/llm-providers/remote/interfaces/RemoteLlmExecutionToolsOptions.d.ts +11 -16
  91. package/esm/typings/src/llm-providers/remote/interfaces/RemoteServerOptions.d.ts +24 -9
  92. package/esm/typings/src/llm-providers/remote/startRemoteServer.d.ts +1 -1
  93. package/esm/typings/src/personas/preparePersona.d.ts +2 -1
  94. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +10 -28
  95. package/esm/typings/src/prepare/preparePipeline.d.ts +2 -1
  96. package/esm/typings/src/prepare/prepareTemplates.d.ts +3 -2
  97. package/esm/typings/src/scrapers/_common/Converter.d.ts +4 -10
  98. package/esm/typings/src/scrapers/_common/Scraper.d.ts +5 -17
  99. package/esm/typings/src/scrapers/_common/prepareKnowledgePieces.d.ts +2 -1
  100. package/esm/typings/src/scrapers/_common/register/$provideFilesystemForNode.d.ts +11 -0
  101. package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +12 -0
  102. package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +15 -0
  103. package/esm/typings/src/scrapers/_common/register/$registeredScrapersMessage.d.ts +12 -0
  104. package/esm/typings/src/scrapers/_common/register/$scrapersMetadataRegister.d.ts +13 -0
  105. package/esm/typings/src/scrapers/_common/register/$scrapersRegister.d.ts +13 -0
  106. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +41 -0
  107. package/esm/typings/src/scrapers/_common/register/ScraperConstructor.d.ts +12 -0
  108. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +3 -2
  109. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +3 -2
  110. package/esm/typings/src/scrapers/document/{documentScraper.d.ts → DocumentScraper.d.ts} +18 -12
  111. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +20 -0
  112. package/esm/typings/src/scrapers/document/register-constructor.d.ts +13 -0
  113. package/esm/typings/src/scrapers/document/register-metadata.d.ts +24 -0
  114. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +43 -0
  115. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +20 -0
  116. package/esm/typings/src/scrapers/document-legacy/register-constructor.d.ts +13 -0
  117. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +24 -0
  118. package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +29 -0
  119. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +20 -0
  120. package/esm/typings/src/scrapers/markdown/register-constructor.d.ts +13 -0
  121. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +24 -0
  122. package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +40 -0
  123. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +20 -0
  124. package/esm/typings/src/scrapers/pdf/register-constructor.d.ts +13 -0
  125. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +24 -0
  126. package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +50 -0
  127. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +20 -0
  128. package/esm/typings/src/scrapers/website/register-constructor.d.ts +13 -0
  129. package/esm/typings/src/scrapers/website/register-metadata.d.ts +24 -0
  130. package/esm/typings/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
  131. package/esm/typings/src/scripting/javascript/JavascriptExecutionToolsOptions.d.ts +2 -2
  132. package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
  133. package/esm/typings/src/scripting/python/PythonExecutionTools.d.ts +3 -3
  134. package/esm/typings/src/scripting/typescript/TypescriptExecutionTools.d.ts +3 -3
  135. package/esm/typings/src/storage/file-cache-storage/FileCacheStorage.d.ts +5 -3
  136. package/esm/typings/src/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +1 -1
  137. package/esm/typings/src/storage/{utils → memory/utils}/PrefixStorage.d.ts +1 -1
  138. package/esm/typings/src/storage/{utils → memory/utils}/makePromptbookStorageFromWebStorage.d.ts +1 -1
  139. package/esm/typings/src/types/Arrayable.d.ts +1 -1
  140. package/esm/typings/src/types/IntermediateFilesStrategy.d.ts +7 -0
  141. package/esm/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +4 -4
  142. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +1 -1
  143. package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +1 -1
  144. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +2 -2
  145. package/esm/typings/src/types/Prompt.d.ts +2 -1
  146. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
  147. package/esm/typings/src/types/typeAliases.d.ts +18 -8
  148. package/esm/typings/src/utils/$Register.d.ts +20 -7
  149. package/esm/typings/src/utils/FromtoItems.d.ts +1 -1
  150. package/esm/typings/src/utils/arrayableToArray.d.ts +1 -1
  151. package/esm/typings/src/utils/emojis.d.ts +1 -1
  152. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +5 -3
  153. package/esm/typings/src/utils/execCommand/$execCommandNormalizeOptions.d.ts +12 -0
  154. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  155. package/esm/typings/src/utils/execCommand/ExecCommandOptions.d.ts +45 -0
  156. package/esm/typings/src/utils/expectation-counters/countSentences.d.ts +1 -1
  157. package/esm/typings/src/utils/files/isDirectoryExisting.d.ts +14 -0
  158. package/esm/typings/src/utils/files/isExecutable.d.ts +11 -0
  159. package/esm/typings/src/utils/files/isFileExisting.d.ts +13 -0
  160. package/esm/typings/src/utils/files/isFileExisting.test.d.ts +1 -0
  161. package/esm/typings/src/utils/files/{$listAllFiles.d.ts → listAllFiles.d.ts} +3 -4
  162. package/esm/typings/src/utils/files/listAllFiles.test.d.ts +1 -0
  163. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
  164. package/esm/typings/src/utils/markdown/splitMarkdownIntoSections.d.ts +1 -1
  165. package/esm/typings/src/utils/normalization/IKeywords.d.ts +2 -2
  166. package/esm/typings/src/utils/normalization/parseKeywords.d.ts +2 -2
  167. package/esm/typings/src/utils/normalization/parseKeywordsFromString.d.ts +2 -2
  168. package/esm/typings/src/utils/normalization/searchKeywords.d.ts +2 -2
  169. package/esm/typings/src/utils/organization/TODO_USE.d.ts +1 -1
  170. package/esm/typings/src/utils/organization/keepUnused.d.ts +1 -1
  171. package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
  172. package/esm/typings/src/utils/sets/intersection.d.ts +1 -1
  173. package/esm/typings/src/utils/sets/union.d.ts +1 -1
  174. package/esm/typings/src/utils/unwrapResult.d.ts +4 -4
  175. package/package.json +4 -3
  176. package/umd/index.umd.js +183 -78
  177. package/umd/index.umd.js.map +1 -1
  178. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +0 -29
  179. package/esm/typings/src/scrapers/document-legacy/legacyDocumentScraper.d.ts +0 -37
  180. package/esm/typings/src/scrapers/index.d.ts +0 -8
  181. package/esm/typings/src/scrapers/markdown/markdownScraper.d.ts +0 -29
  182. package/esm/typings/src/scrapers/pdf/pdfScraper.d.ts +0 -35
  183. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +0 -12
  184. package/esm/typings/src/scrapers/website/websiteScraper.d.ts +0 -43
  185. package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +0 -23
  186. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +0 -10
  187. package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +0 -15
  188. package/esm/typings/src/utils/files/$isFileExisting.d.ts +0 -14
  189. /package/esm/typings/src/{scrapers/website/utils/markdownConverter.test.d.ts → executables/apps/locateLibreoffice.test.d.ts} +0 -0
  190. /package/esm/typings/src/{scrapers/website/websiteScraper.test.d.ts → executables/apps/locatePandoc.test.d.ts} +0 -0
  191. /package/esm/typings/src/{utils/files/$isDirectoryExisting.test.d.ts → executables/locateApp.test.d.ts} +0 -0
  192. /package/esm/typings/src/scrapers/document/{documentScraper.test.d.ts → DocumentScraper.test.d.ts} +0 -0
  193. /package/esm/typings/src/scrapers/document-legacy/{legacyDocumentScraper.test.d.ts → LegacyDocumentScraper.test.d.ts} +0 -0
  194. /package/esm/typings/src/scrapers/markdown/{markdownScraper.test.d.ts → MarkdownScraper.test.d.ts} +0 -0
  195. /package/esm/typings/src/{utils/files/$isFileExisting.test.d.ts → scrapers/website/utils/createShowdownConverter.test.d.ts} +0 -0
  196. /package/esm/typings/src/utils/files/{$listAllFiles.test.d.ts → isDirectoryExisting.test.d.ts} +0 -0
@@ -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,4 +1,7 @@
1
+ import type { Scraper } from '../scrapers/_common/Scraper';
1
2
  import type { Arrayable } from '../types/Arrayable';
3
+ import type { Executables } from './Executables';
4
+ import type { FilesystemTools } from './FilesystemTools';
2
5
  import type { LlmExecutionTools } from './LlmExecutionTools';
3
6
  import type { ScriptExecutionTools } from './ScriptExecutionTools';
4
7
  import type { UserInterfaceTools } from './UserInterfaceTools';
@@ -9,20 +12,44 @@ import type { UserInterfaceTools } from './UserInterfaceTools';
9
12
  */
10
13
  export type ExecutionTools = {
11
14
  /**
12
- * Tools for executing prompts to large language models like GPT-4
15
+ * Tools for executing prompts in large language models
13
16
  *
14
- * Tip: Use `createLlmToolsFromEnv()` to use all available LLM providers you configured
15
- * @see https://github.com/webgptorg/promptbook/?tab=readme-ov-file#llm-execution-tools
17
+ * Tip: Use `$provideLlmToolsFromEnv` to use all available LLM providers you configured
18
+ *
19
+ * @default [] - If not provided, no LLM execution will be possible - it does not make sense in most cases
16
20
  */
17
21
  readonly llm?: Arrayable<LlmExecutionTools>;
22
+ /**
23
+ * Tools for filesystem operations
24
+ *
25
+ * Tip: Use `$provideFilesystemForNode` to use filesystem in Node.js
26
+ *
27
+ * @default undefined - If not provided, no filesystem operations will be possible
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;
38
+ /**
39
+ * Scrapers for extracting knowledge from external sources
40
+ *
41
+ * Tip: Use `$provideScrapersForNode` OR `$provideScrapersForBrowser` to use all available scrapers
42
+ *
43
+ * @default [] - If not provided, no external knowledge extraction will be possible
44
+ */
45
+ readonly scrapers?: Arrayable<Scraper>;
18
46
  /**
19
47
  * Tools for executing scripts
20
48
  *
21
49
  * Note: You can pass multiple ScriptExecutionTools, they will be tried one by one until one of them supports the script
22
50
  * If none of them supports the script, an error is thrown
23
- * Tip: Use here `new JavascriptExecutionTools()`
51
+ * Tip: Use here `new JavascriptExecutionTools`
24
52
  *
25
- * @see https://github.com/webgptorg/promptbook/?tab=readme-ov-file#script-execution-tools
26
53
  * @default [] - If not provided, no script execution will be possible
27
54
  */
28
55
  readonly script?: Arrayable<ScriptExecutionTools>;
@@ -30,7 +57,6 @@ export type ExecutionTools = {
30
57
  * Tools for interacting with the user
31
58
  *
32
59
  * Note: When undefined, the user interface is disabled and promptbook which requires user interaction will fail
33
- * @see https://github.com/webgptorg/promptbook/?tab=readme-ov-file#user-interface-tools
34
60
  */
35
61
  readonly userInterface?: UserInterfaceTools;
36
62
  };
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ import type fs from 'fs/promises';
3
+ /**
4
+ * Container for all the tools needed to manipulate with filesystem
5
+ */
6
+ export type FilesystemTools = Pick<typeof fs, 'access' | 'constants' | 'readFile' | 'writeFile' | 'stat' | 'readdir'>;
7
+ /**
8
+ * TODO: Implement destroyable pattern to free resources
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
- * @private internal type of `executePipelinex`
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,18 +1,16 @@
1
- import { Promisable, ReadonlyDeep } from 'type-fest';
2
- import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
1
+ import type { Promisable, ReadonlyDeep, WritableDeep } from 'type-fest';
3
2
  import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
4
3
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
5
4
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
6
5
  import type { TaskProgress } from '../../types/TaskProgress';
7
6
  import type { Parameters } from '../../types/typeAliases';
8
- import type { ExecutionTools } from '../ExecutionTools';
9
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
7
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
10
8
  /**
11
9
  * @@@
12
10
  *
13
11
  * @private internal type of `executeTemplate`
14
12
  */
15
- type executeSingleTemplateOptions = {
13
+ type executeSingleTemplateOptions = CreatePipelineExecutorOptions & {
16
14
  /**
17
15
  * @@@
18
16
  */
@@ -25,26 +23,14 @@ type executeSingleTemplateOptions = {
25
23
  * @@@
26
24
  */
27
25
  readonly parametersToPass: Readonly<Parameters>;
28
- /**
29
- * @@@
30
- */
31
- readonly tools: Omit<ExecutionTools, 'llm'>;
32
- /**
33
- * @@@
34
- */
35
- readonly llmTools: MultipleLlmExecutionTools;
36
26
  /**
37
27
  * @@@
38
28
  */
39
29
  readonly onProgress: (taskProgress: TaskProgress) => Promisable<void>;
40
- /**
41
- * Settings for the pipeline executor
42
- */
43
- readonly settings: CreatePipelineExecutorSettings;
44
30
  /**
45
31
  * @@@
46
32
  */
47
- readonly $executionReport: ExecutionReportJson;
33
+ readonly $executionReport: WritableDeep<ExecutionReportJson>;
48
34
  /**
49
35
  * @@@
50
36
  */
@@ -1,29 +1,31 @@
1
- import type { ReadonlyDeep } from 'type-fest';
2
- import { MultipleLlmExecutionTools } from '../../llm-providers/multiple/MultipleLlmExecutionTools';
1
+ import type { ReadonlyDeep, WritableDeep } from 'type-fest';
3
2
  import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
4
3
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
5
4
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
6
5
  import type { Parameters } from '../../types/typeAliases';
7
6
  import type { string_parameter_name } from '../../types/typeAliases';
8
7
  import type { TODO_string } from '../../utils/organization/TODO_string';
9
- import type { ExecutionTools } from '../ExecutionTools';
10
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
8
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
11
9
  /**
12
10
  * @@@
13
11
  *
14
12
  * @private internal type of `executeAttempts`
15
13
  */
16
- export type ExecuteAttemptsOptions = {
14
+ export type ExecuteAttemptsOptions = Omit<CreatePipelineExecutorOptions, 'pipeline'> & {
17
15
  /**
18
16
  * @@@
19
17
  */
20
- readonly jokerParameterNames: Readonly<Array<string_parameter_name>>;
18
+ readonly jokerParameterNames: Readonly<ReadonlyArray<string_parameter_name>>;
21
19
  /**
22
20
  * @@@
23
21
  */
24
22
  readonly priority: number;
25
23
  /**
26
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.
27
29
  */
28
30
  readonly maxAttempts: number;
29
31
  /**
@@ -45,19 +47,7 @@ export type ExecuteAttemptsOptions = {
45
47
  /**
46
48
  * @@@
47
49
  */
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;
50
+ readonly $executionReport: WritableDeep<ExecutionReportJson>;
61
51
  /**
62
52
  * @@@
63
53
  */
@@ -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 {
@@ -8,4 +8,5 @@ export declare function translateMessages({ automaticTranslator, from, to, }: {
8
8
  } & TranslatorOptions): Promise<void>;
9
9
  /**
10
10
  * TODO: [😶] Unite floder listing
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
11
12
  */
@@ -0,0 +1,13 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { ExecutionTools } from '../ExecutionTools';
3
+ /**
4
+ * Note: There is unfortunately no equivalent for this function in the browser environment
5
+ * because it is not possible automatically detect configured LLM providers
6
+ * you need to provide them manually BUT you can help by utilities like `$provideScrapersForBrowser`
7
+ *
8
+ * @public exported from `@promptbook/node`
9
+ */
10
+ export declare function $provideExecutionToolsForNode(options?: PrepareAndScrapeOptions): Promise<ExecutionTools>;
11
+ /**
12
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
13
+ */
@@ -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 {};
@@ -21,7 +21,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
21
21
  /**
22
22
  * Aliases for the `formatName`
23
23
  */
24
- readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
24
+ readonly aliases?: ReadonlyArray<string_name & string_SCREAMING_CASE>;
25
25
  /**
26
26
  * The mime type of the format (if any)
27
27
  *
@@ -58,7 +58,7 @@ export type FormatDefinition<TValue extends TPartialValue, TPartialValue extends
58
58
  /**
59
59
  * @@@
60
60
  */
61
- readonly subvalueDefinitions: Array<FormatSubvalueDefinition<TValue, TSettings>>;
61
+ readonly subvalueDefinitions: ReadonlyArray<FormatSubvalueDefinition<TValue, TSettings>>;
62
62
  };
63
63
  /**
64
64
  * TODO: [♏] Add some prepare hook to modify prompt according to the format
@@ -1,7 +1,7 @@
1
1
  import type { Promisable } from 'type-fest';
2
2
  import type { Parameters } from '../../types/typeAliases';
3
- import type { string_parameter_name } from '../../types/typeAliases';
4
3
  import type { string_name } from '../../types/typeAliases';
4
+ import type { string_parameter_name } from '../../types/typeAliases';
5
5
  import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE';
6
6
  import type { empty_object } from '../../utils/organization/empty_object';
7
7
  /**
@@ -17,7 +17,7 @@ export type FormatSubvalueDefinition<TValue extends string, TSettings extends em
17
17
  /**
18
18
  * Aliases for the `subvalueName`
19
19
  */
20
- readonly aliases?: Array<string_name & string_SCREAMING_CASE>;
20
+ readonly aliases?: ReadonlyArray<string_name & string_SCREAMING_CASE>;
21
21
  /**
22
22
  * Maps values
23
23
  *
@@ -1,4 +1,4 @@
1
- import { $Register } from '../../utils/$Register';
1
+ import { $Register } from '../../../utils/$Register';
2
2
  import type { LlmToolsMetadata } from './LlmToolsMetadata';
3
3
  /**
4
4
  * @@@
@@ -8,3 +8,6 @@ import type { LlmToolsMetadata } from './LlmToolsMetadata';
8
8
  * @public exported from `@promptbook/core`
9
9
  */
10
10
  export declare const $llmToolsMetadataRegister: $Register<LlmToolsMetadata>;
11
+ /**
12
+ * TODO: [®] DRY Register logic
13
+ */
@@ -1,5 +1,5 @@
1
- import type { LlmExecutionToolsConstructor } from '../../execution/LlmExecutionToolsConstructor';
2
- import { $Register } from '../../utils/$Register';
1
+ import type { LlmExecutionToolsConstructor } from '../../../execution/LlmExecutionToolsConstructor';
2
+ import { $Register } from '../../../utils/$Register';
3
3
  /**
4
4
  * @@@
5
5
  *
@@ -8,3 +8,6 @@ import { $Register } from '../../utils/$Register';
8
8
  * @public exported from `@promptbook/core`
9
9
  */
10
10
  export declare const $llmToolsRegister: $Register<LlmExecutionToolsConstructor>;
11
+ /**
12
+ * TODO: [®] DRY Register logic
13
+ */
@@ -11,14 +11,14 @@ import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
11
11
  * @returns @@@
12
12
  * @public exported from `@promptbook/node`
13
13
  */
14
- export declare function createLlmToolsFromConfigurationFromEnv(): LlmToolsConfiguration;
14
+ export declare function $provideLlmToolsConfigurationFromEnv(): LlmToolsConfiguration;
15
15
  /**
16
16
  * TODO: [🧠][🪁] Maybe do allow to do auto-install if package not registered and not found
17
17
  * TODO: Add Azure OpenAI
18
18
  * TODO: [🧠][🍛]
19
19
  * TODO: [🧠] Is there some meaningfull way how to test this util
20
- * Note: [🟢] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
20
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
21
21
  * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
22
22
  * TODO: This should be maybe not under `_common` but under `utils`
23
23
  * TODO: [🧠] Maybe pass env as argument
24
- */
24
+ * TODO: [®] DRY Register logic */
@@ -1,22 +1,15 @@
1
- import type { LlmExecutionToolsWithTotalUsage } from './utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
2
- type GetLlmToolsForCliOptions = {
3
- /**
4
- * @@@
5
- *
6
- * @default false
7
- */
8
- isCacheReloaded?: boolean;
9
- };
1
+ import type { CacheLlmToolsOptions } from '../utils/cache/CacheLlmToolsOptions';
2
+ import type { LlmExecutionToolsWithTotalUsage } from '../utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
10
3
  /**
11
4
  * Returns LLM tools for CLI
12
5
  *
13
6
  * @private within the repository - for CLI utils
14
7
  */
15
- export declare function getLlmToolsForCli(options?: GetLlmToolsForCliOptions): LlmExecutionToolsWithTotalUsage;
16
- export {};
8
+ export declare function $provideLlmToolsForCli(options?: Pick<CacheLlmToolsOptions, 'isCacheReloaded'>): LlmExecutionToolsWithTotalUsage;
17
9
  /**
18
10
  * Note: [🟡] Code in this file should never be published outside of `@promptbook/cli`
19
11
  * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
20
12
  * TODO: [🥃] Allow `ptbk make` without llm tools
21
13
  * TODO: This should be maybe not under `_common` but under `utils-internal` / `utils/internal`
14
+ * TODO: [®] DRY Register logic
22
15
  */
@@ -1,6 +1,6 @@
1
- import '../../_packages/cli.index';
1
+ import '../../../_packages/cli.index';
2
+ import type { LlmExecutionToolsWithTotalUsage } from '../utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
2
3
  import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFromConfiguration';
3
- import type { LlmExecutionToolsWithTotalUsage } from './utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
4
4
  type GetLlmToolsForTestingAndScriptsAndPlaygroundOptions = CreateLlmToolsFromConfigurationOptions & {
5
5
  /**
6
6
  * @@@
@@ -14,10 +14,11 @@ type GetLlmToolsForTestingAndScriptsAndPlaygroundOptions = CreateLlmToolsFromCon
14
14
  *
15
15
  * @private within the repository - JUST FOR TESTS, SCRIPTS AND PLAYGROUND
16
16
  */
17
- export declare function getLlmToolsForTestingAndScriptsAndPlayground(options?: GetLlmToolsForTestingAndScriptsAndPlaygroundOptions): LlmExecutionToolsWithTotalUsage;
17
+ export declare function $provideLlmToolsForTestingAndScriptsAndPlayground(options?: GetLlmToolsForTestingAndScriptsAndPlaygroundOptions): LlmExecutionToolsWithTotalUsage;
18
18
  export {};
19
19
  /**
20
20
  * Note: [⚪] This should never be in any released package
21
21
  * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
22
22
  * TODO: This should be maybe not under `_common` but under `utils-internal` / `utils/internal`
23
+ * TODO: [®] DRY Register logic
23
24
  */
@@ -1,4 +1,4 @@
1
- import { MultipleLlmExecutionTools } from '../multiple/MultipleLlmExecutionTools';
1
+ import { MultipleLlmExecutionTools } from '../../multiple/MultipleLlmExecutionTools';
2
2
  import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFromConfiguration';
3
3
  /**
4
4
  * @@@
@@ -14,12 +14,13 @@ import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFro
14
14
  * @returns @@@
15
15
  * @public exported from `@promptbook/node`
16
16
  */
17
- export declare function createLlmToolsFromEnv(options?: CreateLlmToolsFromConfigurationOptions): MultipleLlmExecutionTools;
17
+ export declare function $provideLlmToolsFromEnv(options?: CreateLlmToolsFromConfigurationOptions): MultipleLlmExecutionTools;
18
18
  /**
19
- * TODO: @@@ write `createLlmToolsFromEnv` vs `createLlmToolsFromConfigurationFromEnv` vs `createLlmToolsFromConfiguration`
20
- * TODO: [🧠][🍛] Which name is better `createLlmToolsFromEnv` or `createLlmToolsFromEnvironment`?
19
+ * TODO: @@@ write `$provideLlmToolsFromEnv` vs `$provideLlmToolsConfigurationFromEnv` vs `createLlmToolsFromConfiguration`
20
+ * TODO: [🧠][🍛] Which name is better `$provideLlmToolsFromEnv` or `$provideLlmToolsFromEnvironment`?
21
21
  * TODO: [🧠] Is there some meaningfull way how to test this util
22
- * Note: [🟢] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
22
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
23
23
  * TODO: [🥃] Allow `ptbk make` without llm tools
24
24
  * TODO: This should be maybe not under `_common` but under `utils`
25
+ * TODO: [®] DRY Register logic
25
26
  */
@@ -1,9 +1,12 @@
1
- import type { string_markdown } from '../../types/typeAliases';
1
+ import type { string_markdown } from '../../../types/typeAliases';
2
2
  /**
3
3
  * Creates a message with all registered LLM tools
4
4
  *
5
5
  * Note: This function is used to create a (error) message when there is no constructor for some LLM provider
6
6
  *
7
- * @private internal function of `createLlmToolsFromConfiguration` and `createLlmToolsFromEnv`
7
+ * @private internal function of `createLlmToolsFromConfiguration` and `$provideLlmToolsFromEnv`
8
8
  */
9
9
  export declare function $registeredLlmToolsMessage(): string_markdown;
10
+ /**
11
+ * TODO: [®] DRY Register logic
12
+ */
@@ -1,22 +1,23 @@
1
- import type { string_title } from '../../types/typeAliases';
2
- import type { Registered } from '../../utils/$Register';
1
+ import type { string_title } from '../../../types/typeAliases';
2
+ import type { Registered } from '../../../utils/$Register';
3
3
  import type { LlmToolsOptions } from './LlmToolsOptions';
4
4
  /**
5
5
  * @@@
6
6
  *
7
7
  * @@@ `LlmToolsMetadata` vs `LlmToolsConfiguration` vs `LlmToolsOptions` (vs `Registered`)
8
8
  */
9
- export type LlmToolsConfiguration = Array<Registered & {
9
+ export type LlmToolsConfiguration = ReadonlyArray<Registered & {
10
10
  /**
11
11
  * @@@
12
12
  */
13
- title: string_title;
13
+ readonly title: string_title;
14
14
  /**
15
15
  * @@@
16
16
  */
17
- options: LlmToolsOptions;
17
+ readonly options: LlmToolsOptions;
18
18
  }>;
19
19
  /**
20
20
  * TODO: [🧠][🌰] `title` is redundant BUT maybe allow each provider pass it's own title for tracking purposes
21
21
  * TODO: Maybe instead of `LlmToolsConfiguration[number]` make `LlmToolsConfigurationItem`
22
+ * TODO: [®] DRY Register logic
22
23
  */
@@ -1,6 +1,6 @@
1
- import type { string_name } from '../../types/typeAliases';
2
- import type { string_title } from '../../types/typeAliases';
3
- import type { Registered } from '../../utils/$Register';
1
+ import type { string_name } from '../../../types/typeAliases';
2
+ import type { string_title } from '../../../types/typeAliases';
3
+ import type { Registered } from '../../../utils/$Register';
4
4
  import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
5
5
  /**
6
6
  * @@@
@@ -11,7 +11,7 @@ export type LlmToolsMetadata = Registered & {
11
11
  /**
12
12
  * @@@
13
13
  */
14
- title: string_title;
14
+ readonly title: string_title;
15
15
  /**
16
16
  * @@@
17
17
  */
@@ -24,4 +24,5 @@ export type LlmToolsMetadata = Registered & {
24
24
  /**
25
25
  * TODO: Add configuration schema and maybe some documentation link
26
26
  * TODO: Maybe constrain LlmToolsConfiguration[number] by generic to ensure that `createConfigurationFromEnv` and `getBoilerplateConfiguration` always create same `packageName` and `className`
27
+ * TODO: [®] DRY Register logic
27
28
  */