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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (175) hide show
  1. package/README.md +29 -59
  2. package/esm/index.es.js +24 -13
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/promptbook-collection/index.d.ts +0 -3
  5. package/esm/typings/src/_packages/browser.index.d.ts +1 -1
  6. package/esm/typings/src/_packages/core.index.d.ts +37 -11
  7. package/esm/typings/src/_packages/node.index.d.ts +6 -2
  8. package/esm/typings/src/_packages/types.index.d.ts +40 -20
  9. package/esm/typings/src/_packages/utils.index.d.ts +4 -4
  10. package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
  11. package/esm/typings/src/cli/cli-commands/hello.d.ts +1 -1
  12. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -2
  13. package/esm/typings/src/cli/cli-commands/prettify.d.ts +1 -1
  14. package/esm/typings/src/cli/main.d.ts +1 -1
  15. package/esm/typings/src/cli/promptbookCli.d.ts +1 -1
  16. package/esm/typings/src/collection/constructors/createCollectionFromDirectory.d.ts +8 -5
  17. package/esm/typings/src/collection/constructors/createCollectionFromUrl.d.ts +1 -1
  18. package/esm/typings/src/commands/EXPECT/expectCommandParser.d.ts +1 -1
  19. package/esm/typings/src/commands/FOREACH/ForeachCommand.d.ts +3 -7
  20. package/esm/typings/src/commands/FOREACH/ForeachJson.d.ts +27 -0
  21. package/esm/typings/src/commands/FOREACH/foreachCommandParser.d.ts +2 -3
  22. package/esm/typings/src/commands/FORMAT/formatCommandParser.d.ts +1 -1
  23. package/esm/typings/src/commands/JOKER/jokerCommandParser.d.ts +1 -1
  24. package/esm/typings/src/commands/KNOWLEDGE/knowledgeCommandParser.d.ts +1 -1
  25. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.d.ts +11 -0
  26. package/esm/typings/src/commands/KNOWLEDGE/utils/sourceContentToName.test.d.ts +4 -0
  27. package/esm/typings/src/commands/MODEL/modelCommandParser.d.ts +1 -1
  28. package/esm/typings/src/commands/PARAMETER/parameterCommandParser.d.ts +1 -1
  29. package/esm/typings/src/commands/PERSONA/personaCommandParser.d.ts +1 -1
  30. package/esm/typings/src/commands/POSTPROCESS/postprocessCommandParser.d.ts +1 -1
  31. package/esm/typings/src/commands/PROMPTBOOK_VERSION/promptbookVersionCommandParser.d.ts +1 -1
  32. package/esm/typings/src/commands/TEMPLATE/templateCommandParser.d.ts +1 -1
  33. package/esm/typings/src/commands/URL/urlCommandParser.d.ts +1 -1
  34. package/esm/typings/src/commands/X_ACTION/actionCommandParser.d.ts +1 -1
  35. package/esm/typings/src/commands/X_INSTRUMENT/instrumentCommandParser.d.ts +1 -1
  36. package/esm/typings/src/commands/_BOILERPLATE/boilerplateCommandParser.d.ts +1 -1
  37. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -4
  38. package/esm/typings/src/config.d.ts +26 -3
  39. package/esm/typings/src/conversion/pipelineStringToJson.d.ts +2 -15
  40. package/esm/typings/src/conversion/pipelineStringToJsonSync.d.ts +1 -1
  41. package/esm/typings/src/conversion/prettify/renderPipelineMermaidOptions.d.ts +3 -0
  42. package/esm/typings/src/conversion/utils/extractParameterNamesFromTemplate.d.ts +2 -1
  43. package/esm/typings/src/conversion/validation/_importPipeline.d.ts +1 -1
  44. package/esm/typings/src/conversion/validation/validatePipeline.d.ts +10 -5
  45. package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceTools.d.ts +2 -2
  46. package/esm/typings/src/{knowledge/dialogs → dialogs}/callback/CallbackInterfaceToolsOptions.d.ts +2 -2
  47. package/esm/typings/src/{knowledge/dialogs → dialogs}/simple-prompt/SimplePromptInterfaceTools.d.ts +4 -4
  48. package/esm/typings/src/errors/AbstractFormatError.d.ts +11 -0
  49. package/esm/typings/src/errors/KnowledgeScrapeError.d.ts +9 -0
  50. package/esm/typings/src/errors/MissingToolsError.d.ts +9 -0
  51. package/esm/typings/src/execution/ExecutionTools.d.ts +3 -3
  52. package/esm/typings/src/execution/PipelineExecutor.d.ts +1 -0
  53. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +9 -8
  54. package/esm/typings/src/execution/createPipelineExecutor/$OngoingTemplateResult.d.ts +45 -0
  55. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +23 -0
  56. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +29 -0
  57. package/esm/typings/src/execution/createPipelineExecutor/00-createPipelineExecutor.d.ts +13 -0
  58. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +58 -0
  59. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +65 -0
  60. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +15 -0
  61. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +74 -0
  62. package/esm/typings/src/execution/createPipelineExecutor/filterJustOutputParameters.d.ts +34 -0
  63. package/esm/typings/src/execution/createPipelineExecutor/getContextForTemplate.d.ts +10 -0
  64. package/esm/typings/src/execution/createPipelineExecutor/getKnowledgeForTemplate.d.ts +27 -0
  65. package/esm/typings/src/execution/createPipelineExecutor/getReservedParametersForTemplate.d.ts +30 -0
  66. package/esm/typings/src/execution/createPipelineExecutor/getSamplesForTemplate.d.ts +10 -0
  67. package/esm/typings/src/execution/embeddingVectorToString.d.ts +1 -1
  68. package/esm/typings/src/execution/utils/checkExpectations.d.ts +2 -0
  69. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -0
  70. package/esm/typings/src/execution/utils/usageToHuman.d.ts +3 -4
  71. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +14 -15
  72. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +31 -0
  73. package/esm/typings/src/formats/csv/{ListFormatDefinition.d.ts → CsvFormatDefinition.d.ts} +6 -3
  74. package/esm/typings/src/formats/csv/CsvFormatError.d.ts +10 -0
  75. package/esm/typings/src/formats/csv/CsvSettings.d.ts +13 -0
  76. package/esm/typings/src/formats/index.d.ts +1 -1
  77. package/esm/typings/src/formats/json/JsonFormatDefinition.d.ts +4 -3
  78. package/esm/typings/src/formats/text/TextFormatDefinition.d.ts +19 -0
  79. package/esm/typings/src/formats/xml/XmlFormatDefinition.d.ts +4 -3
  80. package/esm/typings/src/llm-providers/_common/createLlmToolsFromConfigurationFromEnv.d.ts +1 -1
  81. package/esm/typings/src/llm-providers/_common/createLlmToolsFromEnv.d.ts +1 -1
  82. package/esm/typings/src/llm-providers/_common/getLlmToolsForCli.d.ts +1 -1
  83. package/esm/typings/src/llm-providers/_common/utils/cache/CacheItem.d.ts +1 -1
  84. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +2 -1
  85. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  86. package/esm/typings/src/llm-providers/anthropic-claude/createAnthropicClaudeExecutionTools.d.ts +2 -2
  87. package/esm/typings/src/llm-providers/anthropic-claude/playground/playground.d.ts +3 -2
  88. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +8 -1
  89. package/esm/typings/src/llm-providers/azure-openai/playground/playground.d.ts +1 -0
  90. package/esm/typings/src/llm-providers/langtail/playground/playground.d.ts +3 -0
  91. package/esm/typings/src/llm-providers/multiple/playground/playground.d.ts +3 -0
  92. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +2 -1
  93. package/esm/typings/src/llm-providers/openai/playground/playground.d.ts +2 -1
  94. package/esm/typings/src/llm-providers/remote/playground/playground.d.ts +3 -0
  95. package/esm/typings/src/personas/preparePersona.d.ts +3 -3
  96. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +67 -0
  97. package/esm/typings/src/prepare/isPipelinePrepared.d.ts +1 -1
  98. package/esm/typings/src/prepare/preparePipeline.d.ts +2 -2
  99. package/esm/typings/src/prepare/prepareTemplates.d.ts +3 -3
  100. package/esm/typings/src/scrapers/_common/Converter.d.ts +28 -0
  101. package/esm/typings/src/scrapers/_common/Scraper.d.ts +71 -0
  102. package/esm/typings/src/scrapers/_common/ScraperIntermediateSource.d.ts +11 -0
  103. package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.d.ts +4 -4
  104. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +33 -0
  105. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.test.d.ts +4 -0
  106. package/esm/typings/src/scrapers/_common/utils/makeKnowledgeSourceHandler.d.ts +10 -0
  107. package/esm/typings/src/scrapers/document/documentScraper.d.ts +37 -0
  108. package/esm/typings/src/scrapers/document/documentScraper.test.d.ts +4 -0
  109. package/esm/typings/src/scrapers/document/playground/document-scraper-playground.d.ts +5 -0
  110. package/esm/typings/src/scrapers/document-legacy/legacyDocumentScraper.d.ts +37 -0
  111. package/esm/typings/src/scrapers/document-legacy/legacyDocumentScraper.test.d.ts +4 -0
  112. package/esm/typings/src/scrapers/document-legacy/playground/legacy-document-scraper-playground.d.ts +5 -0
  113. package/esm/typings/src/scrapers/index.d.ts +7 -0
  114. package/esm/typings/src/scrapers/markdown/markdownScraper.d.ts +29 -0
  115. package/esm/typings/src/scrapers/markdown/playground/markdown-scraper-playground.d.ts +5 -0
  116. package/esm/typings/src/scrapers/pdf/pdfScraper.d.ts +35 -0
  117. package/esm/typings/src/scrapers/pdf/playground/pdf-scraper-playground.d.ts +5 -0
  118. package/esm/typings/src/scrapers/website/playground/website-scraper-playground.d.ts +5 -0
  119. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +12 -0
  120. package/esm/typings/src/scrapers/website/websiteScraper.d.ts +43 -0
  121. package/esm/typings/src/storage/{files-storage/FilesStorage.d.ts → file-cache-storage/FileCacheStorage.d.ts} +4 -4
  122. package/esm/typings/src/storage/file-cache-storage/FileCacheStorageOptions.d.ts +10 -0
  123. package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.d.ts +1 -1
  124. package/esm/typings/src/storage/local-storage/getLocalStorage.d.ts +1 -1
  125. package/esm/typings/src/storage/local-storage/getSessionStorage.d.ts +1 -1
  126. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +9 -2
  127. package/esm/typings/src/types/PipelineJson/ParameterJson.d.ts +1 -0
  128. package/esm/typings/src/types/PipelineJson/PipelineJson.d.ts +3 -3
  129. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +5 -0
  130. package/esm/typings/src/types/execution-report/executionReportJsonToString.d.ts +2 -1
  131. package/esm/typings/src/types/typeAliases.d.ts +9 -12
  132. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +14 -0
  133. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +17 -0
  134. package/esm/typings/src/utils/execCommand/IExecCommandOptions.d.ts +23 -0
  135. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +10 -0
  136. package/esm/typings/src/utils/expectation-counters/index.d.ts +3 -0
  137. package/esm/typings/src/utils/files/$isDirectoryExisting.d.ts +3 -3
  138. package/esm/typings/src/utils/files/$isFileExisting.d.ts +3 -3
  139. package/esm/typings/src/utils/files/$listAllFiles.d.ts +4 -4
  140. package/esm/typings/src/utils/files/extensionToMimeType.d.ts +8 -0
  141. package/esm/typings/src/utils/files/getFileExtension.d.ts +8 -0
  142. package/esm/typings/src/utils/files/getFileExtension.test.d.ts +1 -0
  143. package/esm/typings/src/utils/organization/{f.d.ts → empty_object.d.ts} +5 -1
  144. package/esm/typings/src/utils/organization/just_empty_object.d.ts +12 -0
  145. package/esm/typings/src/utils/{extractParameterNames.d.ts → parameters/extractParameterNames.d.ts} +2 -2
  146. package/esm/typings/src/utils/parameters/extractParameterNames.test.d.ts +1 -0
  147. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.d.ts +27 -0
  148. package/esm/typings/src/utils/parameters/mapAvailableToExpectedParameters.test.d.ts +1 -0
  149. package/esm/typings/src/utils/{replaceParameters.d.ts → parameters/replaceParameters.d.ts} +2 -2
  150. package/esm/typings/src/utils/parameters/replaceParameters.test.d.ts +1 -0
  151. package/esm/typings/src/utils/serialization/checkSerializableAsJson.d.ts +1 -1
  152. package/esm/typings/src/utils/serialization/isSerializableAsJson.d.ts +1 -1
  153. package/esm/typings/src/utils/validators/filePath/isValidFilePath.d.ts +2 -2
  154. package/esm/typings/src/utils/validators/parameterName/validateParameterName.d.ts +10 -0
  155. package/esm/typings/src/utils/validators/parameterName/validateParameterName.test.d.ts +1 -0
  156. package/package.json +17 -13
  157. package/umd/index.umd.js +24 -13
  158. package/umd/index.umd.js.map +1 -1
  159. package/esm/typings/src/execution/createPipelineExecutor.d.ts +0 -72
  160. package/esm/typings/src/formats/list/ListFormatDefinition.d.ts +0 -16
  161. package/esm/typings/src/knowledge/prepare-knowledge/_common/Scraper.d.ts +0 -37
  162. package/esm/typings/src/knowledge/prepare-knowledge/markdown/playground/markdown-knowledge-playground.d.ts +0 -2
  163. package/esm/typings/src/knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.d.ts +0 -14
  164. package/esm/typings/src/knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.d.ts +0 -15
  165. package/esm/typings/src/prepare/PrepareOptions.d.ts +0 -22
  166. package/esm/typings/src/storage/files-storage/FilesStorageOptions.d.ts +0 -10
  167. /package/esm/typings/src/{knowledge/dialogs → dialogs}/user-interface-execution-tools.test.d.ts +0 -0
  168. /package/esm/typings/src/{knowledge/prepare-knowledge → scrapers}/_common/prepareKnowledgePieces.test.d.ts +0 -0
  169. /package/esm/typings/src/{knowledge/prepare-knowledge/markdown/prepareKnowledgeFromMarkdown.test.d.ts → scrapers/markdown/markdownScraper.test.d.ts} +0 -0
  170. /package/esm/typings/src/{execution/utils/usageToHuman.test.d.ts → scrapers/website/utils/markdownConverter.test.d.ts} +0 -0
  171. /package/esm/typings/src/{knowledge/prepare-knowledge/pdf/prepareKnowledgeFromPdf.test.d.ts → scrapers/website/websiteScraper.test.d.ts} +0 -0
  172. /package/esm/typings/src/storage/{files-storage → file-cache-storage}/utils/nameToSubfolderPath.test.d.ts +0 -0
  173. /package/esm/typings/src/{personas/preparePersona.test.d.ts → utils/execCommand/execCommand.test.d.ts} +0 -0
  174. /package/esm/typings/src/utils/{extractParameterNames.test.d.ts → execCommand/execCommandNormalizeOptions.test.d.ts} +0 -0
  175. /package/esm/typings/src/utils/{replaceParameters.test.d.ts → files/extensionToMimeType.test.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import type { PipelineJson } from '../types/PipelineJson/PipelineJson';
2
2
  import type { TemplateJson } from '../types/PipelineJson/TemplateJson';
3
- import type { PrepareOptions } from './PrepareOptions';
3
+ import type { PrepareAndScrapeOptions } from './PrepareAndScrapeOptions';
4
4
  type PrepareTemplateInput = Pick<PipelineJson, 'templates' | 'parameters'> & {
5
5
  /**
6
6
  * @@@
@@ -18,12 +18,12 @@ type PreparedTemplates = {
18
18
  *
19
19
  * @public exported from `@promptbook/core`
20
20
  */
21
- export declare function prepareTemplates(pipeline: PrepareTemplateInput, options: PrepareOptions): Promise<PreparedTemplates>;
21
+ export declare function prepareTemplates(pipeline: PrepareTemplateInput, options: PrepareAndScrapeOptions): Promise<PreparedTemplates>;
22
22
  export {};
23
23
  /**
24
24
  * TODO: [🧠] Add context to each template (if missing)
25
25
  * TODO: [🧠] What is better name `prepareTemplate` or `prepareTemplateAndParameters`
26
- * TODO: [♨] !!! Prepare index the samples and maybe templates
26
+ * TODO: [♨][main] !!! Prepare index the samples and maybe templates
27
27
  * TODO: Write tests for `preparePipeline`
28
28
  * TODO: [🏏] Leverage the batch API and build queues @see https://platform.openai.com/docs/guides/batch
29
29
  * TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
@@ -0,0 +1,28 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { string_mime_type } from '../../types/typeAliases';
3
+ import type { string_promptbook_documentation_url } from '../../types/typeAliases';
4
+ import type { ScraperSourceHandler } from './Scraper';
5
+ import type { ScraperIntermediateSource } from './ScraperIntermediateSource';
6
+ /**
7
+ * @@@
8
+ *
9
+ */
10
+ export type Converter = {
11
+ /**
12
+ * Mime types that this scraper can handle
13
+ */
14
+ readonly mimeTypes: Array<string_mime_type>;
15
+ /**
16
+ * Link to documentation
17
+ */
18
+ readonly documentationUrl: string_promptbook_documentation_url;
19
+ /**
20
+ * Convert the the file and returns intermediate source or `null` if it can't convert it
21
+ *
22
+ * For example, convert a `.docx` to `.doc` file
23
+ * Or convert a `.pdf` to `.md` file
24
+ *
25
+ * Note: `$` is used to indicate that this function is not a pure function - it leaves files on the disk and you are responsible for cleaning them by calling `destroy` method of returned object
26
+ */
27
+ $convert(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<ScraperIntermediateSource>;
28
+ };
@@ -0,0 +1,71 @@
1
+ import type { Promisable } from 'type-fest';
2
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
4
+ import type { string_filename } from '../../types/typeAliases';
5
+ import type { string_knowledge_source_link } from '../../types/typeAliases';
6
+ import type { string_mime_type } from '../../types/typeAliases';
7
+ import type { string_promptbook_documentation_url } from '../../types/typeAliases';
8
+ import type { string_url } from '../../types/typeAliases';
9
+ /**
10
+ * @@@
11
+ *
12
+ */
13
+ export type Scraper = {
14
+ /**
15
+ * Mime types that this scraper can handle
16
+ */
17
+ readonly mimeTypes: Array<string_mime_type>;
18
+ /**
19
+ * Link to documentation
20
+ */
21
+ readonly documentationUrl: string_promptbook_documentation_url;
22
+ /**
23
+ * Scrapes the markdown file and returns the knowledge pieces or `null` if it can't scrape it
24
+ */
25
+ scrape(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promisable<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
26
+ };
27
+ /**
28
+ * @@@
29
+ */
30
+ export type ScraperSourceHandler = {
31
+ /**
32
+ * The source of the knowledge
33
+ */
34
+ readonly source: string_knowledge_source_link;
35
+ /**
36
+ * The path to the file, if it is a file
37
+ *
38
+ * Note: Typically one of the `filename` or `url` is set and the other is `null`
39
+ */
40
+ readonly filename: string_filename | null;
41
+ /**
42
+ * The URL, if it is online
43
+ *
44
+ * Note: Typically one of the `filename` or `url` is set and the other is `null`
45
+ */
46
+ readonly url: string_url | null;
47
+ /**
48
+ * Mime type of the source
49
+ */
50
+ readonly mimeType: string_mime_type;
51
+ /**
52
+ * Get the content as parsed JSON
53
+ */
54
+ asJson(): Promisable<unknown>;
55
+ /**
56
+ * Get the content as a utf-8 string
57
+ */
58
+ asText(): Promisable<string>;
59
+ /**
60
+ * Get the content as a blob
61
+ */
62
+ asBlob(): Promisable<Blob>;
63
+ };
64
+ /**
65
+ * TODO: [🐝] @@@ Annotate all
66
+ * TODO: [🔼] Export via types
67
+ */
68
+ /**
69
+ * TODO: !!!!!! Test that this is catched
70
+ * Note: [⚫] Code in this file should never be published in any package
71
+ */
@@ -0,0 +1,11 @@
1
+ import type { IDestroyable } from 'destroyable';
2
+ import type { string_absolute_filename } from '../../types/typeAliases';
3
+ /**
4
+ * @@@
5
+ */
6
+ export type ScraperIntermediateSource = IDestroyable & {
7
+ /**
8
+ * @@@
9
+ */
10
+ readonly filename: string_absolute_filename;
11
+ };
@@ -1,13 +1,13 @@
1
- import type { PrepareOptions } from '../../../prepare/PrepareOptions';
2
- import type { KnowledgePiecePreparedJson } from '../../../types/PipelineJson/KnowledgePieceJson';
3
- import type { KnowledgeSourceJson } from '../../../types/PipelineJson/KnowledgeSourceJson';
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { KnowledgeSourceJson } from '../../types/PipelineJson/KnowledgeSourceJson';
4
4
  /**
5
5
  * Prepares the knowle
6
6
  *
7
7
  * @see https://github.com/webgptorg/promptbook/discussions/41
8
8
  * @public exported from `@promptbook/core`
9
9
  */
10
- export declare function prepareKnowledgePieces(knowledgeSources: Array<KnowledgeSourceJson>, options: PrepareOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'preparationIds'>>>;
10
+ export declare function prepareKnowledgePieces(knowledgeSources: Array<KnowledgeSourceJson>, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'preparationIds'>>>;
11
11
  /**
12
12
  * TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
13
13
  * Put `knowledgePieces` into `PrepareKnowledgeOptions`
@@ -0,0 +1,33 @@
1
+ import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
2
+ import type { string_file_extension } from '../../../types/typeAliases';
3
+ import type { ScraperSourceHandler } from '../Scraper';
4
+ import type { ScraperIntermediateSource } from '../ScraperIntermediateSource';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private internal utility of `getScraperIntermediateSource`
9
+ */
10
+ type GetScraperIntermediateSourceSource = Pick<ScraperSourceHandler, 'filename' | 'url'>;
11
+ /**
12
+ * @@@
13
+ *
14
+ * @private internal utility of `getScraperIntermediateSource`
15
+ */
16
+ type GetScraperIntermediateSourceHandler = Required<Pick<PrepareAndScrapeOptions, 'rootDirname' | 'cacheDirname' | 'isCacheCleaned' | 'isVerbose'>> & {
17
+ readonly extension: string_file_extension;
18
+ };
19
+ /**
20
+ * Create a filename for intermediate cache for scrapers
21
+ *
22
+ * Note: It also checks if directory exists and creates it if not
23
+ *
24
+ * @private as internal utility for scrapers
25
+ */
26
+ export declare function getScraperIntermediateSource(source: GetScraperIntermediateSourceSource, options: GetScraperIntermediateSourceHandler): Promise<ScraperIntermediateSource>;
27
+ export {};
28
+ /**
29
+ * Note: Not using `FileCacheStorage` for two reasons:
30
+ * 1) Need to store more than serialized JSONs
31
+ * 2) Need to switch between a `rootDirname` and `cacheDirname` <- TODO: !!!!
32
+ * TODO: [🐱‍🐉][🧠] Make some smart crop
33
+ */
@@ -0,0 +1,4 @@
1
+ export {};
2
+ /**
3
+ * TODO: [🐱‍🐉][🧠] Make some smart crop
4
+ */
@@ -0,0 +1,10 @@
1
+ import type { SetOptional } from 'type-fest';
2
+ import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
3
+ import type { KnowledgeSourceJson } from '../../../types/PipelineJson/KnowledgeSourceJson';
4
+ import type { ScraperSourceHandler } from '../Scraper';
5
+ /**
6
+ * @@@
7
+ *
8
+ * @private for scraper utilities
9
+ */
10
+ export declare function makeKnowledgeSourceHandler(knowledgeSource: SetOptional<KnowledgeSourceJson, 'name'>, options?: Pick<PrepareAndScrapeOptions, 'rootDirname' | 'isVerbose'>): Promise<ScraperSourceHandler>;
@@ -0,0 +1,37 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { ScraperSourceHandler } from '../_common/Scraper';
4
+ import type { ScraperIntermediateSource } from '../_common/ScraperIntermediateSource';
5
+ /**
6
+ * Scraper of .docx and .odt files
7
+ *
8
+ * @see `documentationUrl` for more details
9
+ * @public exported from `@promptbook/core`
10
+ */
11
+ export declare const documentScraper: {
12
+ /**
13
+ * Mime types that this scraper can handle
14
+ */
15
+ mimeTypes: string[];
16
+ /**
17
+ * Link to documentation
18
+ */
19
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
20
+ /**
21
+ * Convert the `.docx` or `.odt` to `.md` file and returns intermediate source
22
+ *
23
+ * Note: `$` is used to indicate that this function is not a pure function - it leaves files on the disk and you are responsible for cleaning them by calling `destroy` method of returned object
24
+ */
25
+ $convert(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<ScraperIntermediateSource>;
26
+ /**
27
+ * Scrapes the docx file and returns the knowledge pieces or `null` if it can't scrape it
28
+ */
29
+ scrape(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
30
+ };
31
+ /**
32
+ * TODO: [👣] Converted documents can act as cached items - there is no need to run conversion each time
33
+ * TODO: [🦖] Make some system for putting scrapers to separete packages
34
+ * TODO: [🪂] Do it in parallel 11:11
35
+ * TODO: [🦷] Ideally use `as const satisfies Converter & Scraper` BUT this combination throws errors
36
+ * Note: No need to aggregate usage here, it is done by intercepting the llmTools
37
+ */
@@ -0,0 +1,4 @@
1
+ export {};
2
+ /**
3
+ * TODO: [📓] Maybe test all file in samples (not just 10-simple.docx)
4
+ */
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -0,0 +1,37 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { ScraperSourceHandler } from '../_common/Scraper';
4
+ import type { ScraperIntermediateSource } from '../_common/ScraperIntermediateSource';
5
+ /**
6
+ * Scraper for .docx files
7
+ *
8
+ * @see `documentationUrl` for more details
9
+ * @public exported from `@promptbook/core`
10
+ */
11
+ export declare const legacyDocumentScraper: {
12
+ /**
13
+ * Mime types that this scraper can handle
14
+ */
15
+ mimeTypes: string[];
16
+ /**
17
+ * Link to documentation
18
+ */
19
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
20
+ /**
21
+ * Convert the `.doc` or `.rtf` to `.doc` file and returns intermediate source
22
+ *
23
+ * Note: `$` is used to indicate that this function is not a pure function - it leaves files on the disk and you are responsible for cleaning them by calling `destroy` method of returned object
24
+ */
25
+ $convert(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<ScraperIntermediateSource>;
26
+ /**
27
+ * Scrapes the `.doc` or `.rtf` file and returns the knowledge pieces or `null` if it can't scrape it
28
+ */
29
+ scrape(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
30
+ };
31
+ /**
32
+ * TODO: [👣] Converted documents can act as cached items - there is no need to run conversion each time
33
+ * TODO: [🦖] Make some system for putting scrapers to separete packages
34
+ * TODO: [🪂] Do it in parallel 11:11
35
+ * TODO: [🦷] Ideally use `as const satisfies Converter & Scraper` BUT this combination throws errors
36
+ * Note: No need to aggregate usage here, it is done by intercepting the llmTools
37
+ */
@@ -0,0 +1,4 @@
1
+ export {};
2
+ /**
3
+ * TODO: [📓] Maybe test all file in samples (not just 10-simple.doc)
4
+ */
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -0,0 +1,7 @@
1
+ import type { Scraper } from './_common/Scraper';
2
+ /**
3
+ * @@@
4
+ *
5
+ * @public exported from `@promptbook/core`
6
+ */
7
+ export declare const SCRAPERS: Array<Scraper>;
@@ -0,0 +1,29 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { ScraperSourceHandler } from '../_common/Scraper';
4
+ /**
5
+ * Scraper for markdown files
6
+ *
7
+ * @see `documentationUrl` for more details
8
+ * @public exported from `@promptbook/core`
9
+ */
10
+ export declare const markdownScraper: {
11
+ /**
12
+ * Mime types that this scraper can handle
13
+ */
14
+ mimeTypes: string[];
15
+ /**
16
+ * Link to documentation
17
+ */
18
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
19
+ /**
20
+ * Scrapes the markdown file and returns the knowledge pieces or `null` if it can't scrape it
21
+ */
22
+ scrape(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
23
+ };
24
+ /**
25
+ * TODO: [🦖] Make some system for putting scrapers to separete packages
26
+ * TODO: [🪂] Do it in parallel 11:11
27
+ * TODO: [🦷] Ideally use `as const satisfies Scraper` BUT this combination throws errors
28
+ * Note: No need to aggregate usage here, it is done by intercepting the llmTools
29
+ */
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -0,0 +1,35 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { ScraperSourceHandler } from '../_common/Scraper';
4
+ import type { ScraperIntermediateSource } from '../_common/ScraperIntermediateSource';
5
+ /**
6
+ * Scraper for .docx files
7
+ *
8
+ * @see `documentationUrl` for more details
9
+ * @public exported from `@promptbook/core`
10
+ */
11
+ export declare const pdfScraper: {
12
+ /**
13
+ * Mime types that this scraper can handle
14
+ */
15
+ mimeTypes: string[];
16
+ /**
17
+ * Link to documentation
18
+ */
19
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
20
+ /**
21
+ * Converts the `.pdf` file to `.md` file and returns intermediate source
22
+ */
23
+ $convert(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<ScraperIntermediateSource>;
24
+ /**
25
+ * Scrapes the `.pdf` file and returns the knowledge pieces or `null` if it can't scrape it
26
+ */
27
+ scrape(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
28
+ };
29
+ /**
30
+ * TODO: [👣] Converted documents can act as cached items - there is no need to run conversion each time
31
+ * TODO: [🦖] Make some system for putting scrapers to separete packages
32
+ * TODO: [🪂] Do it in parallel 11:11
33
+ * TODO: [🦷] Ideally use `as const satisfies Converter & Scraper` BUT this combination throws errors
34
+ * Note: No need to aggregate usage here, it is done by intercepting the llmTools
35
+ */
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -0,0 +1,12 @@
1
+ import { Converter } from 'showdown';
2
+ /**
3
+ * A converter instance that uses showdown and highlight extensions
4
+ *
5
+ * @type {Converter}
6
+ * @private for markdown and html knowledge scrapers
7
+ */
8
+ export declare const markdownConverter: Converter;
9
+ /**
10
+ * TODO: !!!!!! Figure out better name not to confuse with `Converter`
11
+ * TODO: !!!!!! Lazy-make converter
12
+ */
@@ -0,0 +1,43 @@
1
+ import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
2
+ import type { KnowledgePiecePreparedJson } from '../../types/PipelineJson/KnowledgePieceJson';
3
+ import type { string_markdown } from '../../types/typeAliases';
4
+ import type { ScraperSourceHandler } from '../_common/Scraper';
5
+ import type { ScraperIntermediateSource } from '../_common/ScraperIntermediateSource';
6
+ /**
7
+ * Scraper for .docx files
8
+ *
9
+ * @see `documentationUrl` for more details
10
+ * @public exported from `@promptbook/core`
11
+ */
12
+ export declare const websiteScraper: {
13
+ /**
14
+ * Mime types that this scraper can handle
15
+ */
16
+ mimeTypes: string[];
17
+ /**
18
+ * Link to documentation
19
+ */
20
+ documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
21
+ /**
22
+ * Convert the website to `.md` file and returns intermediate source
23
+ *
24
+ * Note: `$` is used to indicate that this function is not a pure function - it leaves files on the disk and you are responsible for cleaning them by calling `destroy` method of returned object
25
+ */
26
+ $convert(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<import("destroyable").IDestroyable & {
27
+ readonly filename: string;
28
+ } & {
29
+ markdown: string_markdown;
30
+ }>;
31
+ /**
32
+ * Scrapes the website and returns the knowledge pieces or `null` if it can't scrape it
33
+ */
34
+ scrape(source: ScraperSourceHandler, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
35
+ };
36
+ /**
37
+ * TODO: !!!!!! Put into separate package
38
+ * TODO: [👣] Scraped website in .md can act as cache item - there is no need to run conversion each time
39
+ * TODO: [🦖] Make some system for putting scrapers to separete packages
40
+ * TODO: [🪂] Do it in parallel 11:11
41
+ * TODO: [🦷] Ideally use `as const satisfies Converter & Scraper` BUT this combination throws errors
42
+ * Note: No need to aggregate usage here, it is done by intercepting the llmTools
43
+ */
@@ -1,13 +1,13 @@
1
1
  import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
- import type { FilesStorageOptions } from './FilesStorageOptions';
2
+ import type { FileCacheStorageOptions } from './FileCacheStorageOptions';
3
3
  /**
4
4
  * @@@
5
5
  *
6
6
  * @public exported from `@promptbook/node`
7
7
  */
8
- export declare class FilesStorage<TItem> implements PromptbookStorage<TItem> {
8
+ export declare class FileCacheStorage<TItem> implements PromptbookStorage<TItem> {
9
9
  private readonly options;
10
- constructor(options: FilesStorageOptions);
10
+ constructor(options: FileCacheStorageOptions);
11
11
  /**
12
12
  * @@@
13
13
  */
@@ -27,5 +27,5 @@ export declare class FilesStorage<TItem> implements PromptbookStorage<TItem> {
27
27
  }
28
28
  /**
29
29
  * TODO: [🌗] Maybe some checkers, not all valid JSONs are desired and valid values
30
- * Note: [🟢] This code should never be published outside of `@promptbook/node` and `@promptbook/cli` and `@promptbook/cli`
30
+ * Note: [🟢] Code in this file should never be published outside of `@promptbook/node` and `@promptbook/cli`
31
31
  */
@@ -0,0 +1,10 @@
1
+ import type { string_dirname } from '../../types/typeAliases';
2
+ /**
3
+ * @@@
4
+ */
5
+ export type FileCacheStorageOptions = {
6
+ /**
7
+ * @@@
8
+ */
9
+ rootFolderPath: string_dirname;
10
+ };
@@ -2,6 +2,6 @@ import type { string_name } from '../../../types/typeAliases';
2
2
  /**
3
3
  * @@@
4
4
  *
5
- * @private for `FilesStorage`
5
+ * @private for `FileCacheStorage`
6
6
  */
7
7
  export declare function nameToSubfolderPath(name: string_name): Array<string>;
@@ -6,5 +6,5 @@ import type { PromptbookStorage } from '../_common/PromptbookStorage';
6
6
  */
7
7
  export declare function getLocalStorage<TItem>(): PromptbookStorage<TItem>;
8
8
  /**
9
- * Note: [🔵] This code should never be published outside of `@promptbook/browser`
9
+ * Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
10
10
  */
@@ -6,5 +6,5 @@ import type { PromptbookStorage } from '../_common/PromptbookStorage';
6
6
  */
7
7
  export declare function getSessionStorage<TItem>(): PromptbookStorage<TItem>;
8
8
  /**
9
- * Note: [🔵] This code should never be published outside of `@promptbook/browser`
9
+ * Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
10
10
  */
@@ -11,11 +11,18 @@ import type { string_name } from '../typeAliases';
11
11
  */
12
12
  export type KnowledgeSourceJson = {
13
13
  /**
14
- * @@@
14
+ * Unique identifier of the knowledge source
15
15
  */
16
16
  readonly name: string_name;
17
17
  /**
18
- * @@@
18
+ * Source of one knowledge
19
+ *
20
+ * It can be a link, a relative path to file or direct text or combination of those
21
+ *
22
+ * For example `"https://pavolhejny.com/"`
23
+ * For example `"./pavol-hejny-cv.pdf"`
24
+ * For example `"Pavol Hejný has web https://pavolhejny.com/"`
25
+ * For example `"Pavol Hejný is web developer and creator of Promptbook and Collboard"`
19
26
  */
20
27
  readonly sourceContent: string_knowledge_source_content;
21
28
  };
@@ -33,6 +33,7 @@ export type ParameterJson = {
33
33
  readonly sampleValues?: Array<string_parameter_value>;
34
34
  };
35
35
  /**
36
+ * TODO: [🧠] Should be here registered subparameters from foreach or not?
36
37
  * TODO: [♈] Probbably move expectations from templates to parameters
37
38
  * TODO: [🍙] Make some standard order of json properties
38
39
  */
@@ -1,5 +1,5 @@
1
1
  import type { ModelRequirements } from '../ModelRequirements';
2
- import type { string_file_path } from '../typeAliases';
2
+ import type { string_filename } from '../typeAliases';
3
3
  import type { string_markdown_text } from '../typeAliases';
4
4
  import type { string_pipeline_url } from '../typeAliases';
5
5
  import type { string_semantic_version } from '../typeAliases';
@@ -33,7 +33,7 @@ export type PipelineJson = {
33
33
  /**
34
34
  * Internal helper for tracking the source `.ptbk.md` file of the pipeline
35
35
  */
36
- readonly sourceFile?: string_file_path;
36
+ readonly sourceFile?: string_filename;
37
37
  /**
38
38
  * Title of the promptbook
39
39
  * -It can use simple markdown formatting like **bold**, *italic*, [link](https://example.com), ... BUT not code blocks and structure
@@ -42,7 +42,7 @@ export type PipelineJson = {
42
42
  /**
43
43
  * Version of the .ptbk.json file
44
44
  */
45
- readonly promptbookVersion: string_semantic_version;
45
+ readonly promptbookVersion?: string_semantic_version;
46
46
  /**
47
47
  * Description of the promptbook
48
48
  * It can use multiple paragraphs of simple markdown formatting like **bold**, *italic*, [link](https://example.com), ... BUT not code blocks and structure
@@ -1,3 +1,4 @@
1
+ import type { ForeachJson } from '../../commands/FOREACH/ForeachJson';
1
2
  import type { FormatCommand } from '../../commands/FORMAT/FormatCommand';
2
3
  import type { TemplateType } from '../../commands/TEMPLATE/TemplateTypes';
3
4
  import type { string_javascript } from '../typeAliases';
@@ -42,6 +43,10 @@ export interface TemplateJsonCommon {
42
43
  * @see https://github.com/webgptorg/promptbook/discussions/66
43
44
  */
44
45
  readonly jokerParameterNames?: Array<string_parameter_name>;
46
+ /**
47
+ * @@@
48
+ */
49
+ readonly foreach?: ForeachJson;
45
50
  /**
46
51
  * Type of the execution
47
52
  * This determines if the template is send to LLM, user or some scripting evaluation
@@ -1,3 +1,4 @@
1
+ import type { ReadonlyDeep } from 'type-fest';
1
2
  import type { ExecutionReportJson } from './ExecutionReportJson';
2
3
  import type { ExecutionReportString } from './ExecutionReportString';
3
4
  import type { ExecutionReportStringOptions } from './ExecutionReportStringOptions';
@@ -6,7 +7,7 @@ import type { ExecutionReportStringOptions } from './ExecutionReportStringOption
6
7
  *
7
8
  * @public exported from `@promptbook/core`
8
9
  */
9
- export declare function executionReportJsonToString(executionReportJson: ExecutionReportJson, options?: Partial<ExecutionReportStringOptions>): ExecutionReportString;
10
+ export declare function executionReportJsonToString(executionReportJson: ReadonlyDeep<ExecutionReportJson>, options?: Partial<ExecutionReportStringOptions>): ExecutionReportString;
10
11
  /**
11
12
  * TODO: Add mermaid chart for every report
12
13
  * TODO: [🧠] Allow to filter out some parts of the report by options