@promptbook/node 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 +6132 -5818
  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 -6
  176. package/umd/index.umd.js +6133 -5813
  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,20 @@
1
+ import type { ExecutionTools } from '../../execution/ExecutionTools';
2
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
+ import { WebsiteScraper } from './WebsiteScraper';
4
+ /**
5
+ * @@@
6
+ *
7
+ * @public exported from `@promptbook/website-crawler`
8
+ */
9
+ export declare const createWebsiteScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => WebsiteScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
10
+ title: string;
11
+ packageName: string;
12
+ className: string;
13
+ mimeTypes: string[];
14
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
+ isAvilableInBrowser: false;
16
+ requiredExecutables: never[];
17
+ }>;
18
+ /**
19
+ * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
20
+ */
@@ -0,0 +1,13 @@
1
+ import type { Registration } from '../../utils/$Register';
2
+ /**
3
+ * Registration of known scraper
4
+ *
5
+ * Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available known scrapers
6
+ *
7
+ * @public exported from `@promptbook/website-crawler`
8
+ * @public exported from `@promptbook/cli`
9
+ */
10
+ export declare const _WebsiteScraperRegistration: Registration;
11
+ /**
12
+ * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
13
+ */
@@ -0,0 +1,24 @@
1
+ import type { Registration } from '../../utils/$Register';
2
+ /**
3
+ * Metadata of the scraper
4
+ *
5
+ * @private within the scraper directory
6
+ */
7
+ export declare const websiteScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
+ title: string;
9
+ packageName: string;
10
+ className: string;
11
+ mimeTypes: string[];
12
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
+ isAvilableInBrowser: false;
14
+ requiredExecutables: never[];
15
+ }>;
16
+ /**
17
+ * Registration of known scraper metadata
18
+ *
19
+ * Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available known scrapers
20
+ *
21
+ * @public exported from `@promptbook/core`
22
+ * @public exported from `@promptbook/cli`
23
+ */
24
+ export declare const _WebsiteScraperMetadataRegistration: Registration;
@@ -0,0 +1,7 @@
1
+ import { Converter as ShowdownConverter } from 'showdown';
2
+ /**
3
+ * Create a new showdown converter instance
4
+ *
5
+ * @private utility of `WebsiteScraper`
6
+ */
7
+ export declare function createShowdownConverter(): ShowdownConverter;
@@ -1,10 +1,10 @@
1
1
  import type { Promisable } from 'type-fest';
2
- import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
2
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
3
  import type { string_postprocessing_function_name } from '../../types/typeAliases';
4
4
  /**
5
5
  * Options for `JavascriptExecutionTools`
6
6
  */
7
- export type JavascriptExecutionToolsOptions = CommonExecutionToolsOptions & {
7
+ export type JavascriptExecutionToolsOptions = CommonToolsOptions & {
8
8
  /**
9
9
  * Functions to be executed in the JavaScript evaluation.
10
10
  *
@@ -7,7 +7,7 @@ import type { really_any } from '../../../utils/organization/really_any';
7
7
  * @returns nothing
8
8
  * @private internal function of `JavascriptExecutionTools` and `JavascriptEvalExecutionTools`
9
9
  */
10
- export declare function preserve(func: (...params: Array<really_any>) => unknown): void;
10
+ export declare function preserve(func: (...params: ReadonlyArray<really_any>) => unknown): void;
11
11
  /**
12
12
  * TODO: !! [1] This maybe does memory leak
13
13
  */
@@ -1,4 +1,4 @@
1
- import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
1
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
2
2
  import type { ScriptExecutionTools } from '../../execution/ScriptExecutionTools';
3
3
  import type { ScriptExecutionToolsExecuteOptions } from '../../execution/ScriptExecutionTools';
4
4
  /**
@@ -9,8 +9,8 @@ import type { ScriptExecutionToolsExecuteOptions } from '../../execution/ScriptE
9
9
  * @private still in development
10
10
  */
11
11
  export declare class PythonExecutionTools implements ScriptExecutionTools {
12
- protected readonly options: CommonExecutionToolsOptions;
13
- constructor(options?: CommonExecutionToolsOptions);
12
+ protected readonly options: CommonToolsOptions;
13
+ constructor(options?: CommonToolsOptions);
14
14
  /**
15
15
  * Executes a Python
16
16
  */
@@ -1,4 +1,4 @@
1
- import type { CommonExecutionToolsOptions } from '../../execution/CommonExecutionToolsOptions';
1
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
2
2
  import type { ScriptExecutionTools } from '../../execution/ScriptExecutionTools';
3
3
  import type { ScriptExecutionToolsExecuteOptions } from '../../execution/ScriptExecutionTools';
4
4
  /**
@@ -9,8 +9,8 @@ import type { ScriptExecutionToolsExecuteOptions } from '../../execution/ScriptE
9
9
  * @private still in development
10
10
  */
11
11
  export declare class TypescriptExecutionTools implements ScriptExecutionTools {
12
- protected readonly options: CommonExecutionToolsOptions;
13
- constructor(options?: CommonExecutionToolsOptions);
12
+ protected readonly options: CommonToolsOptions;
13
+ constructor(options?: CommonToolsOptions);
14
14
  /**
15
15
  * Executes a TypeScript
16
16
  */
@@ -1,3 +1,4 @@
1
+ import type { ExecutionTools } from '../../execution/ExecutionTools';
1
2
  import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
3
  import type { FileCacheStorageOptions } from './FileCacheStorageOptions';
3
4
  /**
@@ -6,8 +7,9 @@ import type { FileCacheStorageOptions } from './FileCacheStorageOptions';
6
7
  * @public exported from `@promptbook/node`
7
8
  */
8
9
  export declare class FileCacheStorage<TItem> implements PromptbookStorage<TItem> {
9
- protected readonly options: FileCacheStorageOptions;
10
- constructor(options: FileCacheStorageOptions);
10
+ protected readonly tools: Required<Pick<ExecutionTools, 'fs'>>;
11
+ private readonly options;
12
+ constructor(tools: Required<Pick<ExecutionTools, 'fs'>>, options: FileCacheStorageOptions);
11
13
  /**
12
14
  * @@@
13
15
  */
@@ -27,5 +29,5 @@ export declare class FileCacheStorage<TItem> implements PromptbookStorage<TItem>
27
29
  }
28
30
  /**
29
31
  * TODO: [🌗] Maybe some checkers, not all valid JSONs are desired and valid values
30
- * Note: [🟢] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
32
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
31
33
  */
@@ -4,4 +4,4 @@ import type { string_name } from '../../../types/typeAliases';
4
4
  *
5
5
  * @private for `FileCacheStorage`
6
6
  */
7
- export declare function nameToSubfolderPath(name: string_name): Array<string>;
7
+ export declare function nameToSubfolderPath(name: string_name): ReadonlyArray<string>;
@@ -1,5 +1,5 @@
1
1
  import type { Promisable } from 'type-fest';
2
- import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
+ import type { PromptbookStorage } from '../../_common/PromptbookStorage';
3
3
  /**
4
4
  * This class behaves like LocalStorage but separates keys by prefix
5
5
  *
@@ -1,4 +1,4 @@
1
- import type { PromptbookStorage } from '../_common/PromptbookStorage';
1
+ import type { PromptbookStorage } from '../../_common/PromptbookStorage';
2
2
  /**
3
3
  * @@@
4
4
  *
@@ -7,4 +7,4 @@
7
7
  *
8
8
  * @private internal type
9
9
  */
10
- export type Arrayable<TItem> = TItem | Array<TItem> | undefined;
10
+ export type Arrayable<TItem> = TItem | ReadonlyArray<TItem> | undefined;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @@@
3
+ */
4
+ export type IntermediateFilesStrategy = 'HIDE_AND_CLEAN' | 'HIDE_AND_KEEP';
5
+ /**
6
+ * TODO: [🎅] Maube add options for all kinds of cache, unite with `isCacheReloaded` and make `cacheStrategy` (which is not specific only for intermediate files)
7
+ */
@@ -31,7 +31,7 @@ export type KnowledgePiecePreparedJson = {
31
31
  /**
32
32
  * List of sources where the information comes from
33
33
  */
34
- readonly sources: Array<{
34
+ readonly sources: ReadonlyArray<{
35
35
  /**
36
36
  * Identifier of the source
37
37
  */
@@ -48,11 +48,11 @@ export type KnowledgePiecePreparedJson = {
48
48
  /**
49
49
  * List of keywords that are associated with the knowledge piece
50
50
  */
51
- readonly keywords: Array<string_keyword>;
51
+ readonly keywords: ReadonlyArray<string_keyword>;
52
52
  /**
53
53
  * List of models embeddings that are associated with the knowledge piece
54
54
  */
55
- readonly index: Array<{
55
+ readonly index: ReadonlyArray<{
56
56
  /**
57
57
  * Model name which generated the embedding
58
58
  */
@@ -65,7 +65,7 @@ export type KnowledgePiecePreparedJson = {
65
65
  /**
66
66
  * List of preparation ids that were used to prepare this knowledge piece
67
67
  */
68
- readonly preparationIds: Array<number_id>;
68
+ readonly preparationIds: ReadonlyArray<number_id>;
69
69
  };
70
70
  /**
71
71
  * TODO: [🍙] Make some standard order of json properties
@@ -37,7 +37,7 @@ export type KnowledgeSourcePreparedJson = KnowledgeSourceJson & {
37
37
  /**
38
38
  * List of preparation ids that were used to prepare this knowledge source to knowledge pieces
39
39
  */
40
- readonly preparationIds: Array<number_id>;
40
+ readonly preparationIds: ReadonlyArray<number_id>;
41
41
  };
42
42
  /**
43
43
  * TODO: [🍙] Make some standard order of json properties
@@ -38,7 +38,7 @@ export type PersonaPreparedJson = PersonaJson & {
38
38
  /**
39
39
  * List of preparation ids that were used to prepare this persona
40
40
  */
41
- readonly preparationIds: Array<number_id>;
41
+ readonly preparationIds: ReadonlyArray<number_id>;
42
42
  };
43
43
  /**
44
44
  * TODO: [🍙] Make some standard order of json properties
@@ -13,7 +13,7 @@ import type { Expectations } from './Expectations';
13
13
  /**
14
14
  * Common properties of all templates
15
15
  */
16
- export interface TemplateJsonCommon {
16
+ export type TemplateJsonCommon = {
17
17
  /**
18
18
  * Name of the template
19
19
  * - It must be unique across the pipeline
@@ -93,7 +93,7 @@ export interface TemplateJsonCommon {
93
93
  * Name of the parameter that is the result of the template
94
94
  */
95
95
  readonly resultingParameterName: string_name;
96
- }
96
+ };
97
97
  /**
98
98
  * TODO: use one helper type> (string_prompt | string_javascript | string_markdown) & string_template
99
99
  * TODO: [♈] Probbably move expectations from templates to parameters
@@ -77,7 +77,7 @@ export type CommonPrompt = {
77
77
  /**
78
78
  * List of postprocessing steps that are executed after the prompt
79
79
  */
80
- readonly postprocessingFunctionNames?: Array<string_postprocessing_function_name>;
80
+ readonly postprocessingFunctionNames?: ReadonlyArray<string_postprocessing_function_name>;
81
81
  /**
82
82
  * Expectations for the answer
83
83
  *
@@ -107,4 +107,5 @@ export type CommonPrompt = {
107
107
  * TODO: [🧄] Replace all "github.com/webgptorg/promptbook#xxx" with "ptbk.io/xxx"
108
108
  * TODO: [✔] Check ModelRequirements in runtime
109
109
  * TODO: [🏳] Add options for translation - maybe create `TranslationPrompt`
110
+ * TODO: [🧠][🤺] Maybe allow overriding of `userId` for each prompt
110
111
  */
@@ -37,5 +37,5 @@ export type ExecutionReportJson = {
37
37
  /**
38
38
  * Sequence of templates in order which were executed
39
39
  */
40
- readonly promptExecutions: Array<ExecutionPromptReportJson>;
40
+ readonly promptExecutions: ReadonlyArray<ExecutionPromptReportJson>;
41
41
  };
@@ -331,6 +331,13 @@ export type string_href = string;
331
331
  * For example `"https://collboard.com/9SeSQTupmQHwuSrLi.png?width=1200&height=630"`
332
332
  */
333
333
  export type string_url_image = string;
334
+ /**
335
+ * Semantic helper
336
+ *
337
+ * For example `"C:/Users/me/AppData/Local/Pandoc/pandoc.exe"`
338
+ * For example `"C:/Program Files/LibreOffice/program/swriter.exe"`
339
+ */
340
+ export type string_executable_path = string;
334
341
  /**
335
342
  * Semantic helper
336
343
  *
@@ -343,12 +350,6 @@ export type string_uri = string;
343
350
  * For example `"9SeSQTupmQHwuSrLi"`
344
351
  */
345
352
  export type string_uri_part = string;
346
- /**
347
- * Semantic helper, ID of the board used in URL and API
348
- *
349
- * For example `"9SeSQTupmQHwuSrLi"` <- TODO: !! Update
350
- */
351
- export type string_uriid = string_uri_part;
352
353
  /**
353
354
  * Semantic helper
354
355
  *
@@ -392,9 +393,17 @@ export type string_uuid = string & {
392
393
  readonly _type: 'uuid';
393
394
  };
394
395
  /**
395
- * End user identifier;
396
+ * Application identifier
397
+ *
398
+ * @@@
399
+ */
400
+ export type string_app_id = id;
401
+ /**
402
+ * End user identifier
403
+ *
404
+ * @@@
396
405
  */
397
- export type string_user_id = string;
406
+ export type string_user_id = id;
398
407
  /**
399
408
  * Semantic helper
400
409
  *
@@ -516,6 +525,7 @@ export type string_javascript_name = string;
516
525
  * Semantic helper; For example "unwrapResult" or "spaceTrim"
517
526
  */
518
527
  export type string_postprocessing_function_name = string;
528
+ export type id = string | number;
519
529
  export type string_token = string;
520
530
  export type string_license_token = string_token;
521
531
  export type string_password = string;
@@ -1,14 +1,27 @@
1
- import type { string_javascript_name } from '../types/typeAliases';
1
+ import { type IDestroyable } from 'destroyable';
2
+ import type { string_name } from '../types/typeAliases';
2
3
  import type { TODO_string } from './organization/TODO_string';
4
+ /**
5
+ * @@@
6
+ */
3
7
  export type Registered = {
4
8
  /**
5
9
  * @@@
6
10
  */
7
- packageName: TODO_string;
11
+ readonly packageName: TODO_string;
12
+ /**
13
+ * @@@
14
+ */
15
+ readonly className: TODO_string;
16
+ };
17
+ /**
18
+ * @@@
19
+ */
20
+ export type Registration = Registered & IDestroyable & {
8
21
  /**
9
22
  * @@@
10
23
  */
11
- className: TODO_string;
24
+ readonly registerName: string_name;
12
25
  };
13
26
  /**
14
27
  * Register is @@@
@@ -18,9 +31,9 @@ export type Registered = {
18
31
  * @private internal utility, exported are only signleton instances of this class
19
32
  */
20
33
  export declare class $Register<TRegistered extends Registered> {
21
- private readonly storageName;
34
+ private readonly registerName;
22
35
  private readonly storage;
23
- constructor(storageName: string_javascript_name);
24
- list(): Array<TRegistered>;
25
- register(registered: TRegistered): void;
36
+ constructor(registerName: string_name);
37
+ list(): ReadonlyArray<TRegistered>;
38
+ register(registered: TRegistered): Registration;
26
39
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Represents items which are compared to each other
3
3
  */
4
- export type FromtoItems = Array<{
4
+ export type FromtoItems = ReadonlyArray<{
5
5
  /**
6
6
  * The title of the item
7
7
  */
@@ -8,4 +8,4 @@ import type { Arrayable } from '../types/Arrayable';
8
8
  *
9
9
  * @private internal utility
10
10
  */
11
- export declare function arrayableToArray<TItem>(input?: Arrayable<TItem>): Array<TItem>;
11
+ export declare function arrayableToArray<TItem>(input?: Arrayable<TItem>): ReadonlyArray<TItem>;
@@ -8,7 +8,7 @@ import type { string_char_emoji } from '../types/typeAliasEmoji';
8
8
  * @private within the repository
9
9
  * @deprecated Use /\p{Extended_Pictographic}/ instead
10
10
  */
11
- export declare const EMOJIS_IN_CATEGORIES: Record<string, Array<string_char_emoji>>;
11
+ export declare const EMOJIS_IN_CATEGORIES: Record<string, ReadonlyArray<string_char_emoji>>;
12
12
  /**
13
13
  *
14
14
  * All possible emoji chars like "🍆", "🍡", "🍤"...
@@ -1,14 +1,16 @@
1
- import type { IExecCommandOptions } from './IExecCommandOptions';
1
+ import type { ExecCommandOptions } from './ExecCommandOptions';
2
2
  /**
3
3
  * Run one command in a shell
4
4
  *
5
+ *
5
6
  * Note: There are 2 similar functions in the codebase:
6
7
  * - `$execCommand` which runs a single command
7
8
  * - `$execCommands` which runs multiple commands
9
+ * Note: `$` is used to indicate that this function is not a pure function - it runs a command in a shell
8
10
  *
9
11
  * @public exported from `@promptbook/node`
10
12
  */
11
- export declare function $execCommand(options: IExecCommandOptions): Promise<string>;
13
+ export declare function $execCommand(options: ExecCommandOptions): Promise<string>;
12
14
  /**
13
- * Note: [🟢 <- TODO: [🦖] !!!!!! Split scrapers into packages and enable] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
15
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
14
16
  */
@@ -0,0 +1,12 @@
1
+ import type { ExecCommandOptions } from './ExecCommandOptions';
2
+ import type { ExecCommandOptionsAdvanced } from './ExecCommandOptions';
3
+ /**
4
+ * Normalize options for `execCommand` and `execCommands`
5
+ *
6
+ * Note: `$` is used to indicate that this function behaves differently according to `process.platform`
7
+ *
8
+ * @private internal utility of `execCommand` and `execCommands`
9
+ */
10
+ export declare function $execCommandNormalizeOptions(options: ExecCommandOptions): Pick<ExecCommandOptionsAdvanced, 'command' | 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose'> & {
11
+ humanReadableCommand: string;
12
+ };
@@ -4,6 +4,7 @@
4
4
  * Note: There are 2 similar functions in the codebase:
5
5
  * - `$execCommand` which runs a single command
6
6
  * - `$execCommands` which runs multiple commands
7
+ * Note: `$` is used to indicate that this function is not a pure function - it runs a commands in a shell
7
8
  *
8
9
  * @public exported from `@promptbook/node`
9
10
  */
@@ -13,5 +14,5 @@ export declare function $execCommands({ commands, cwd, crashOnError, }: {
13
14
  readonly crashOnError?: boolean;
14
15
  }): Promise<void>;
15
16
  /**
16
- * Note: [🟢 <- TODO: [🦖] !!!!!! Split scrapers into packages and enable] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
17
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
17
18
  */
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @deprecated Use sth from type-fest or move this to type helpers
3
+ */
4
+ type RequiredAndOptional<TBase, TRequired extends keyof TBase, TOptional extends keyof TBase> = Pick<TBase, TRequired> & Partial<Pick<TBase, TOptional>>;
5
+ /**
6
+ * Simple options for `execCommand`
7
+ */
8
+ export type ExecCommandOptions = string | RequiredAndOptional<ExecCommandOptionsAdvanced, 'command', 'args' | 'cwd' | 'crashOnError' | 'timeout' | 'isVerbose'>;
9
+ /**
10
+ * Advanced options for `execCommand`
11
+ */
12
+ export type ExecCommandOptionsAdvanced = {
13
+ /**
14
+ * Command to run
15
+ */
16
+ readonly command: string;
17
+ /**
18
+ * Arguments for the command
19
+ */
20
+ readonly args: string[];
21
+ /**
22
+ * Current working directory
23
+ *
24
+ * @default process.cwd()
25
+ */
26
+ readonly cwd: string;
27
+ /**
28
+ * If `true` then the command will throw an error if the return code is not `0`
29
+ */
30
+ readonly crashOnError: boolean;
31
+ /**
32
+ * Timeout in milliseconds
33
+ */
34
+ readonly timeout: number;
35
+ /**
36
+ * If `true` then the command and entire CLI output will be logged to the console
37
+ *
38
+ * @default false
39
+ */
40
+ readonly isVerbose?: boolean;
41
+ };
42
+ export {};
43
+ /**
44
+ * TODO: [⏳] Make DEFAULT_TIMEOUT_MS as global constant
45
+ */
@@ -4,7 +4,7 @@ import type { ExpectationAmount } from '../../types/PipelineJson/Expectations';
4
4
  *
5
5
  * @public exported from `@promptbook/utils`
6
6
  */
7
- export declare function splitIntoSentences(text: string): Array<string>;
7
+ export declare function splitIntoSentences(text: string): ReadonlyArray<string>;
8
8
  /**
9
9
  * Counts number of sentences in the text
10
10
  *
@@ -0,0 +1,14 @@
1
+ import type { FilesystemTools } from '../../execution/FilesystemTools';
2
+ import type { string_dirname } from '../../types/typeAliases';
3
+ /**
4
+ * Checks if the directory exists
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function isDirectoryExisting(directoryPath: string_dirname, fs: FilesystemTools): Promise<boolean>;
9
+ /**
10
+ * Note: Not [~🟢~] because it is not directly dependent on `fs
11
+ * TODO: [🐠] This can be a validator - with variants that return true/false and variants that throw errors with meaningless messages
12
+ * TODO: [🧠][📂] "directory" vs "folder"
13
+ * TODO: [🖇] What about symlinks?
14
+ */
@@ -0,0 +1,11 @@
1
+ import type { FilesystemTools } from '../../execution/FilesystemTools';
2
+ /**
3
+ * Checks if the file is executable
4
+ *
5
+ * @private within the repository
6
+ */
7
+ export declare function isExecutable(path: string, fs: FilesystemTools): Promise<boolean>;
8
+ /**
9
+ * Note: Not [~🟢~] because it is not directly dependent on `fs
10
+ * TODO: [🖇] What about symlinks?
11
+ */
@@ -0,0 +1,13 @@
1
+ import type { FilesystemTools } from '../../execution/FilesystemTools';
2
+ import type { string_filename } from '../../types/typeAliases';
3
+ /**
4
+ * Checks if the file exists
5
+ *
6
+ * @private within the repository
7
+ */
8
+ export declare function isFileExisting(filename: string_filename, fs: FilesystemTools): Promise<boolean>;
9
+ /**
10
+ * Note: Not [~🟢~] because it is not directly dependent on `fs
11
+ * TODO: [🐠] This can be a validator - with variants that return true/false and variants that throw errors with meaningless messages
12
+ * TODO: [🖇] What about symlinks?
13
+ */
@@ -1,18 +1,17 @@
1
+ import type { FilesystemTools } from '../../execution/FilesystemTools';
1
2
  import type { string_dirname } from '../../types/typeAliases';
2
3
  import type { string_filename } from '../../types/typeAliases';
3
4
  /**
4
5
  * Reads all files in the directory
5
6
  *
6
- * Note: `$` is used to indicate that this function is not a pure function - it looks at the filesystem
7
- *
8
7
  * @param path
9
8
  * @param isRecursive
10
9
  * @returns List of all files in the directory
11
10
  * @private internal function of `createCollectionFromDirectory`
12
11
  */
13
- export declare function $listAllFiles(path: string_dirname, isRecursive: boolean): Promise<Array<string_filename>>;
12
+ export declare function listAllFiles(path: string_dirname, isRecursive: boolean, fs: FilesystemTools): Promise<Array<string_filename>>;
14
13
  /**
15
14
  * TODO: [😶] Unite floder listing
16
- * Note: [🟢 <- TODO: [🦖] !!!!!! Split scrapers into packages and enable] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
15
+ * Note: Not [~🟢~] because it is not directly dependent on `fs
17
16
  * TODO: [🖇] What about symlinks?
18
17
  */
@@ -0,0 +1 @@
1
+ export {};
@@ -30,7 +30,7 @@ export type CodeBlock = {
30
30
  * @throws {ParseError} if block is not closed properly
31
31
  * @public exported from `@promptbook/markdown-utils`
32
32
  */
33
- export declare function extractAllBlocksFromMarkdown(markdown: string_markdown): Array<CodeBlock>;
33
+ export declare function extractAllBlocksFromMarkdown(markdown: string_markdown): ReadonlyArray<CodeBlock>;
34
34
  /**
35
35
  * TODO: Maybe name for `blockNotation` instead of '```' and '>'
36
36
  */
@@ -5,7 +5,7 @@ import type { string_markdown_section } from '../../types/typeAliases';
5
5
  *
6
6
  * @public exported from `@promptbook/markdown-utils`
7
7
  */
8
- export declare function splitMarkdownIntoSections(markdown: string_markdown): Array<string_markdown_section>;
8
+ export declare function splitMarkdownIntoSections(markdown: string_markdown): ReadonlyArray<string_markdown_section>;
9
9
  /**
10
10
  * TODO: [🏛] This can be part of markdown builder
11
11
  * Note: [🕞] In past (commit 42086e1603cbed506482997c00a8ee979af0a247) there was much more
@@ -2,7 +2,7 @@
2
2
  * Semantic helper
3
3
  *
4
4
  * Keyword is string without diacritics in lowercase [a-z1-9]
5
- * Words are splitted between multiple keywords @see IKeywords
5
+ * Words are splitted between multiple keywords @see Keywords
6
6
  *
7
7
  * For example `"keyword"`
8
8
  *
@@ -15,7 +15,7 @@ export type string_keyword = string;
15
15
  *
16
16
  * @public exported from `@promptbook/utils`
17
17
  */
18
- export type IKeywords = Set<string_keyword>;
18
+ export type Keywords = Set<string_keyword>;
19
19
  /**
20
20
  * TODO: [🌮] Keywords with weight
21
21
  */