@promptbook/legacy-documents 0.72.0-14 → 0.72.0-15

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 (106) hide show
  1. package/README.md +1 -1
  2. package/esm/index.es.js +89 -95
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/src/_packages/core.index.d.ts +22 -18
  5. package/esm/typings/src/_packages/node.index.d.ts +2 -0
  6. package/esm/typings/src/_packages/types.index.d.ts +10 -10
  7. package/esm/typings/src/_packages/utils.index.d.ts +2 -2
  8. package/esm/typings/src/collection/PipelineCollection.d.ts +1 -1
  9. package/esm/typings/src/collection/SimplePipelineCollection.d.ts +2 -2
  10. package/esm/typings/src/collection/collectionToJson.d.ts +1 -1
  11. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +1 -1
  12. package/esm/typings/src/collection/constructors/createCollectionFromPromise.d.ts +1 -1
  13. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +5 -5
  14. package/esm/typings/src/config.d.ts +21 -14
  15. package/esm/typings/src/execution/EmbeddingVector.d.ts +1 -1
  16. package/esm/typings/src/execution/Executables.d.ts +18 -0
  17. package/esm/typings/src/execution/ExecutionTools.d.ts +9 -3
  18. package/esm/typings/src/execution/LlmExecutionTools.d.ts +1 -1
  19. package/esm/typings/src/execution/PipelineExecutorResult.d.ts +2 -2
  20. package/esm/typings/src/execution/assertsExecutionSuccessful.d.ts +1 -0
  21. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorOptions.d.ts +29 -6
  22. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +2 -11
  23. package/esm/typings/src/execution/createPipelineExecutor/20-executeTemplate.d.ts +4 -13
  24. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +9 -14
  25. package/esm/typings/src/execution/translation/automatic-translate/automatic-translators/LindatAutomaticTranslator.d.ts +11 -3
  26. package/esm/typings/src/execution/utils/addUsage.d.ts +1 -1
  27. package/esm/typings/src/execution/utils/forEachAsync.d.ts +1 -1
  28. package/esm/typings/src/formats/_common/FormatDefinition.d.ts +2 -2
  29. package/esm/typings/src/formats/_common/FormatSubvalueDefinition.d.ts +2 -2
  30. package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForCli.d.ts +2 -2
  31. package/esm/typings/src/llm-providers/_common/register/LlmToolsConfiguration.d.ts +1 -1
  32. package/esm/typings/src/llm-providers/_common/utils/cache/CacheLlmToolsOptions.d.ts +4 -1
  33. package/esm/typings/src/llm-providers/anthropic-claude/AnthropicClaudeExecutionTools.d.ts +1 -1
  34. package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
  35. package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionTools.d.ts +1 -1
  36. package/esm/typings/src/llm-providers/mocked/$fakeTextToExpectations.d.ts +1 -1
  37. package/esm/typings/src/llm-providers/mocked/MockedEchoLlmExecutionTools.d.ts +1 -1
  38. package/esm/typings/src/llm-providers/mocked/MockedFackedLlmExecutionTools.d.ts +1 -1
  39. package/esm/typings/src/llm-providers/multiple/MultipleLlmExecutionTools.d.ts +4 -5
  40. package/esm/typings/src/llm-providers/multiple/joinLlmExecutionTools.d.ts +1 -1
  41. package/esm/typings/src/llm-providers/openai/OpenAiExecutionTools.d.ts +1 -1
  42. package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
  43. package/esm/typings/src/llm-providers/remote/RemoteLlmExecutionTools.d.ts +1 -1
  44. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_ListModels_Response.d.ts +3 -3
  45. package/esm/typings/src/llm-providers/remote/interfaces/PromptbookServer_Prompt_Response.d.ts +2 -2
  46. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +4 -23
  47. package/esm/typings/src/prepare/prepareTemplates.d.ts +1 -1
  48. package/esm/typings/src/scrapers/_common/Scraper.d.ts +1 -5
  49. package/esm/typings/src/scrapers/_common/prepareKnowledgePieces.d.ts +1 -1
  50. package/esm/typings/src/scrapers/_common/register/$provideExecutablesForNode.d.ts +12 -0
  51. package/esm/typings/src/scrapers/_common/register/$provideScrapersForBrowser.d.ts +2 -2
  52. package/esm/typings/src/scrapers/_common/register/$provideScrapersForNode.d.ts +2 -2
  53. package/esm/typings/src/scrapers/_common/register/ScraperAndConverterMetadata.d.ts +2 -2
  54. package/esm/typings/src/scrapers/_common/utils/getScraperIntermediateSource.d.ts +2 -2
  55. package/esm/typings/src/scrapers/document/DocumentScraper.d.ts +2 -2
  56. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -1
  57. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -1
  58. package/esm/typings/src/scrapers/document-legacy/LegacyDocumentScraper.d.ts +3 -3
  59. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -1
  60. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -1
  61. package/esm/typings/src/scrapers/markdown/MarkdownScraper.d.ts +1 -1
  62. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -1
  63. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -1
  64. package/esm/typings/src/scrapers/pdf/PdfScraper.d.ts +2 -2
  65. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -1
  66. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -1
  67. package/esm/typings/src/scrapers/website/WebsiteScraper.d.ts +6 -3
  68. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -1
  69. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -1
  70. package/esm/typings/src/scrapers/website/utils/createShowdownConverter.d.ts +7 -0
  71. package/esm/typings/src/scripting/javascript/utils/preserve.d.ts +1 -1
  72. package/esm/typings/src/storage/file-cache-storage/utils/nameToSubfolderPath.d.ts +1 -1
  73. package/esm/typings/src/types/Arrayable.d.ts +1 -1
  74. package/esm/typings/src/types/IntermediateFilesStrategy.d.ts +7 -0
  75. package/esm/typings/src/types/PipelineJson/KnowledgePieceJson.d.ts +4 -4
  76. package/esm/typings/src/types/PipelineJson/KnowledgeSourceJson.d.ts +1 -1
  77. package/esm/typings/src/types/PipelineJson/PersonaJson.d.ts +1 -1
  78. package/esm/typings/src/types/PipelineJson/TemplateJsonCommon.d.ts +2 -2
  79. package/esm/typings/src/types/Prompt.d.ts +1 -1
  80. package/esm/typings/src/types/execution-report/ExecutionReportJson.d.ts +1 -1
  81. package/esm/typings/src/utils/$Register.d.ts +1 -1
  82. package/esm/typings/src/utils/FromtoItems.d.ts +1 -1
  83. package/esm/typings/src/utils/arrayableToArray.d.ts +1 -1
  84. package/esm/typings/src/utils/emojis.d.ts +1 -1
  85. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -2
  86. package/esm/typings/src/utils/execCommand/{IExecCommandOptions.d.ts → ExecCommandOptions.d.ts} +2 -6
  87. package/esm/typings/src/utils/execCommand/execCommandNormalizeOptions.d.ts +3 -3
  88. package/esm/typings/src/utils/expectation-counters/countSentences.d.ts +1 -1
  89. package/esm/typings/src/utils/markdown/extractAllBlocksFromMarkdown.d.ts +1 -1
  90. package/esm/typings/src/utils/markdown/splitMarkdownIntoSections.d.ts +1 -1
  91. package/esm/typings/src/utils/normalization/IKeywords.d.ts +2 -2
  92. package/esm/typings/src/utils/normalization/parseKeywords.d.ts +2 -2
  93. package/esm/typings/src/utils/normalization/parseKeywordsFromString.d.ts +2 -2
  94. package/esm/typings/src/utils/normalization/searchKeywords.d.ts +2 -2
  95. package/esm/typings/src/utils/organization/TODO_USE.d.ts +1 -1
  96. package/esm/typings/src/utils/organization/keepUnused.d.ts +1 -1
  97. package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
  98. package/esm/typings/src/utils/sets/intersection.d.ts +1 -1
  99. package/esm/typings/src/utils/sets/union.d.ts +1 -1
  100. package/esm/typings/src/utils/unwrapResult.d.ts +4 -4
  101. package/package.json +4 -3
  102. package/umd/index.umd.js +89 -95
  103. package/umd/index.umd.js.map +1 -1
  104. package/esm/typings/src/execution/createPipelineExecutor/00-CreatePipelineExecutorSettings.d.ts +0 -29
  105. package/esm/typings/src/scrapers/website/utils/markdownConverter.d.ts +0 -12
  106. /package/esm/typings/src/scrapers/website/utils/{markdownConverter.test.d.ts → createShowdownConverter.test.d.ts} +0 -0
@@ -1,28 +1,31 @@
1
- import type { ReadonlyDeep } from 'type-fest';
1
+ import type { ReadonlyDeep, WritableDeep } from 'type-fest';
2
2
  import type { ExecutionReportJson } from '../../types/execution-report/ExecutionReportJson';
3
3
  import type { PipelineJson } from '../../types/PipelineJson/PipelineJson';
4
4
  import type { TemplateJson } from '../../types/PipelineJson/TemplateJson';
5
5
  import type { Parameters } from '../../types/typeAliases';
6
6
  import type { string_parameter_name } from '../../types/typeAliases';
7
7
  import type { TODO_string } from '../../utils/organization/TODO_string';
8
- import type { ExecutionTools } from '../ExecutionTools';
9
- import type { CreatePipelineExecutorSettings } from './00-CreatePipelineExecutorSettings';
8
+ import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
10
9
  /**
11
10
  * @@@
12
11
  *
13
12
  * @private internal type of `executeAttempts`
14
13
  */
15
- export type ExecuteAttemptsOptions = {
14
+ export type ExecuteAttemptsOptions = Omit<CreatePipelineExecutorOptions, 'pipeline'> & {
16
15
  /**
17
16
  * @@@
18
17
  */
19
- readonly jokerParameterNames: Readonly<Array<string_parameter_name>>;
18
+ readonly jokerParameterNames: Readonly<ReadonlyArray<string_parameter_name>>;
20
19
  /**
21
20
  * @@@
22
21
  */
23
22
  readonly priority: number;
24
23
  /**
25
24
  * @@@
25
+ *
26
+ * Note: [💂] There are two distinct variabiles
27
+ * 1) `maxExecutionAttempts` - the amount of attempts LLM model
28
+ * 2) `maxAttempts` - the amount of attempts for any template - LLM, SCRIPT, DIALOG, etc.
26
29
  */
27
30
  readonly maxAttempts: number;
28
31
  /**
@@ -44,15 +47,7 @@ export type ExecuteAttemptsOptions = {
44
47
  /**
45
48
  * @@@
46
49
  */
47
- readonly tools: ExecutionTools;
48
- /**
49
- * Settings for the pipeline executor
50
- */
51
- readonly settings: CreatePipelineExecutorSettings;
52
- /**
53
- * @@@
54
- */
55
- readonly $executionReport: ExecutionReportJson;
50
+ readonly $executionReport: WritableDeep<ExecutionReportJson>;
56
51
  /**
57
52
  * @@@
58
53
  */
@@ -1,9 +1,17 @@
1
1
  import type { AutomaticTranslator } from './AutomaticTranslator';
2
2
  import type { TranslatorOptions } from './TranslatorOptions';
3
- interface LindatAutomaticTranslatorOptions extends TranslatorOptions {
4
- apiUrl?: URL;
5
- }
6
3
  /**
4
+ * @@@
5
+ */
6
+ type LindatAutomaticTranslatorOptions = TranslatorOptions & {
7
+ /**
8
+ * @@@
9
+ */
10
+ readonly apiUrl?: URL;
11
+ };
12
+ /**
13
+ * @@@
14
+ *
7
15
  * @private still in development [🏳]
8
16
  */
9
17
  export declare class LindatAutomaticTranslator implements AutomaticTranslator {
@@ -6,4 +6,4 @@ import type { PromptResultUsage } from '../PromptResultUsage';
6
6
  *
7
7
  * @public exported from `@promptbook/core`
8
8
  */
9
- export declare function addUsage(...usageItems: Array<PromptResultUsage>): PromptResultUsage;
9
+ export declare function addUsage(...usageItems: ReadonlyArray<PromptResultUsage>): PromptResultUsage;
@@ -16,5 +16,5 @@ type ForEachAsyncOptions = {
16
16
  * @public exported from `@promptbook/utils`
17
17
  * @deprecated [🪂] Use queues instead
18
18
  */
19
- export declare function forEachAsync<TItem>(array: Array<TItem>, options: ForEachAsyncOptions, callbackfunction: (value: TItem, index: number, array: Array<TItem>) => Promisable<void>): Promise<void>;
19
+ export declare function forEachAsync<TItem>(array: ReadonlyArray<TItem>, options: ForEachAsyncOptions, callbackfunction: (value: TItem, index: number, array: ReadonlyArray<TItem>) => Promisable<void>): Promise<void>;
20
20
  export {};
@@ -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,11 +1,11 @@
1
- import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
1
+ import type { CacheLlmToolsOptions } from '../utils/cache/CacheLlmToolsOptions';
2
2
  import type { LlmExecutionToolsWithTotalUsage } from '../utils/count-total-usage/LlmExecutionToolsWithTotalUsage';
3
3
  /**
4
4
  * Returns LLM tools for CLI
5
5
  *
6
6
  * @private within the repository - for CLI utils
7
7
  */
8
- export declare function $provideLlmToolsForCli(options?: Pick<PrepareAndScrapeOptions, 'isCacheCleaned'>): LlmExecutionToolsWithTotalUsage;
8
+ export declare function $provideLlmToolsForCli(options?: Pick<CacheLlmToolsOptions, 'isCacheReloaded'>): LlmExecutionToolsWithTotalUsage;
9
9
  /**
10
10
  * Note: [🟡] Code in this file should never be published outside of `@promptbook/cli`
11
11
  * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
@@ -6,7 +6,7 @@ import type { LlmToolsOptions } from './LlmToolsOptions';
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
  */
@@ -1,5 +1,8 @@
1
1
  import type { PromptbookStorage } from '../../../../storage/_common/PromptbookStorage';
2
2
  import type { CacheItem } from './CacheItem';
3
+ /**
4
+ * @@@
5
+ */
3
6
  export type CacheLlmToolsOptions = {
4
7
  /**
5
8
  * @@@
@@ -12,5 +15,5 @@ export type CacheLlmToolsOptions = {
12
15
  *
13
16
  * @default false
14
17
  */
15
- isReloaded?: boolean;
18
+ isCacheReloaded?: boolean;
16
19
  };
@@ -35,7 +35,7 @@ export declare class AnthropicClaudeExecutionTools implements LlmExecutionTools
35
35
  /**
36
36
  * List all available Anthropic Claude models that can be used
37
37
  */
38
- listModels(): Array<AvailableModel>;
38
+ listModels(): ReadonlyArray<AvailableModel>;
39
39
  /**
40
40
  * Calls Anthropic Claude API to use a chat model.
41
41
  */
@@ -8,7 +8,7 @@ import type { number_usd } from '../../types/typeAliases';
8
8
  * @see https://docs.anthropic.com/en/docs/models-overview
9
9
  * @public exported from `@promptbook/anthropic-claude`
10
10
  */
11
- export declare const ANTHROPIC_CLAUDE_MODELS: Array<AvailableModel & {
11
+ export declare const ANTHROPIC_CLAUDE_MODELS: ReadonlyArray<AvailableModel & {
12
12
  pricing?: {
13
13
  readonly prompt: number_usd;
14
14
  readonly output: number_usd;
@@ -35,7 +35,7 @@ export declare class AzureOpenAiExecutionTools implements LlmExecutionTools {
35
35
  /**
36
36
  * List all available Azure OpenAI models that can be used
37
37
  */
38
- listModels(): Promise<Array<AvailableModel>>;
38
+ listModels(): Promise<ReadonlyArray<AvailableModel>>;
39
39
  /**
40
40
  * Calls OpenAI API to use a chat model.
41
41
  */
@@ -9,7 +9,7 @@ import type { string_postprocessing_function_name } from '../../types/typeAliase
9
9
  *
10
10
  * @private internal utility for MockedFackedLlmExecutionTools
11
11
  */
12
- export declare function $fakeTextToExpectations(expectations: Expectations, postprocessingFunctionNames?: Array<string_postprocessing_function_name>): Promise<string>;
12
+ export declare function $fakeTextToExpectations(expectations: Expectations, postprocessingFunctionNames?: ReadonlyArray<string_postprocessing_function_name>): Promise<string>;
13
13
  /**
14
14
  * TODO: [💝] Unite object for expecting amount and format - use here also a format
15
15
  */
@@ -24,7 +24,7 @@ export declare class MockedEchoLlmExecutionTools implements LlmExecutionTools {
24
24
  /**
25
25
  * List all available mocked-models that can be used
26
26
  */
27
- listModels(): Array<AvailableModel>;
27
+ listModels(): ReadonlyArray<AvailableModel>;
28
28
  /**
29
29
  * Mocks chat model
30
30
  */
@@ -25,7 +25,7 @@ export declare class MockedFackedLlmExecutionTools implements LlmExecutionTools
25
25
  /**
26
26
  * List all available fake-models that can be used
27
27
  */
28
- listModels(): Array<AvailableModel>;
28
+ listModels(): ReadonlyArray<AvailableModel>;
29
29
  /**
30
30
  * Fakes chat model
31
31
  */
@@ -15,18 +15,17 @@ import type { string_title } from '../../types/typeAliases';
15
15
  * Multiple LLM Execution Tools is a proxy server that uses multiple execution tools internally and exposes the executor interface externally.
16
16
  *
17
17
  * Note: Internal utility of `joinLlmExecutionTools` but exposed type
18
- * @public exported from `@promptbook/types`
19
- * TODO: !!!!!! Export as runtime class not just type
18
+ * @public exported from `@promptbook/core`
20
19
  */
21
20
  export declare class MultipleLlmExecutionTools implements LlmExecutionTools {
22
21
  /**
23
22
  * Array of execution tools in order of priority
24
23
  */
25
- readonly llmExecutionTools: Array<LlmExecutionTools>;
24
+ readonly llmExecutionTools: ReadonlyArray<LlmExecutionTools>;
26
25
  /**
27
26
  * Gets array of execution tools in order of priority
28
27
  */
29
- constructor(...llmExecutionTools: Array<LlmExecutionTools>);
28
+ constructor(...llmExecutionTools: ReadonlyArray<LlmExecutionTools>);
30
29
  get title(): string_title & string_markdown_text;
31
30
  get description(): string_markdown;
32
31
  /**
@@ -37,7 +36,7 @@ export declare class MultipleLlmExecutionTools implements LlmExecutionTools {
37
36
  * List all available models that can be used
38
37
  * This lists is a combination of all available models from all execution tools
39
38
  */
40
- listModels(): Promise<Array<AvailableModel>>;
39
+ listModels(): Promise<ReadonlyArray<AvailableModel>>;
41
40
  /**
42
41
  * Calls the best available chat model
43
42
  */
@@ -15,7 +15,7 @@ import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
15
15
  *
16
16
  * @public exported from `@promptbook/core`
17
17
  */
18
- export declare function joinLlmExecutionTools(...llmExecutionTools: Array<LlmExecutionTools>): MultipleLlmExecutionTools;
18
+ export declare function joinLlmExecutionTools(...llmExecutionTools: ReadonlyArray<LlmExecutionTools>): MultipleLlmExecutionTools;
19
19
  /**
20
20
  * TODO: [👷‍♂️] @@@ Manual about construction of llmTools
21
21
  */
@@ -45,7 +45,7 @@ export declare class OpenAiExecutionTools implements LlmExecutionTools {
45
45
  /**
46
46
  * List all available OpenAI models that can be used
47
47
  */
48
- listModels(): Array<AvailableModel>;
48
+ listModels(): ReadonlyArray<AvailableModel>;
49
49
  /**
50
50
  * Calls OpenAI API to use a chat model.
51
51
  */
@@ -9,7 +9,7 @@ import type { number_usd } from '../../types/typeAliases';
9
9
  * @see https://openai.com/api/pricing/
10
10
  * @public exported from `@promptbook/openai`
11
11
  */
12
- export declare const OPENAI_MODELS: Array<AvailableModel & {
12
+ export declare const OPENAI_MODELS: ReadonlyArray<AvailableModel & {
13
13
  pricing?: {
14
14
  readonly prompt: number_usd;
15
15
  readonly output: number_usd;
@@ -31,7 +31,7 @@ export declare class RemoteLlmExecutionTools<TCustomOptions = undefined> impleme
31
31
  /**
32
32
  * List all available models that can be used
33
33
  */
34
- listModels(): Promise<Array<AvailableModel>>;
34
+ listModels(): Promise<ReadonlyArray<AvailableModel>>;
35
35
  /**
36
36
  * Creates a connection to the remote proxy server.
37
37
  */
@@ -4,12 +4,12 @@ import type { AvailableModel } from '../../../execution/AvailableModel';
4
4
  *
5
5
  * This is sent from server to client when models are listed
6
6
  */
7
- export interface PromptbookServer_ListModels_Response {
7
+ export type PromptbookServer_ListModels_Response = {
8
8
  /**
9
9
  * Available models that can be used
10
10
  */
11
- readonly models: Array<AvailableModel>;
12
- }
11
+ readonly models: ReadonlyArray<AvailableModel>;
12
+ };
13
13
  /**
14
14
  * TODO: [👒] Listing models (and checking configuration) probbably should go through REST API not Socket.io
15
15
  */
@@ -4,9 +4,9 @@ import type { PromptResult } from '../../../execution/PromptResult';
4
4
  *
5
5
  * This is sent from server to client when the generated text is completed
6
6
  */
7
- export interface PromptbookServer_Prompt_Response {
7
+ export type PromptbookServer_Prompt_Response = {
8
8
  /**
9
9
  * The result of the prompt
10
10
  */
11
11
  readonly promptResult: PromptResult;
12
- }
12
+ };
@@ -1,3 +1,4 @@
1
+ import type { IntermediateFilesStrategy } from '../types/IntermediateFilesStrategy';
1
2
  import type { string_dirname } from '../types/typeAliases';
2
3
  /**
3
4
  * Options for preparation of the pipeline
@@ -21,37 +22,17 @@ export type PrepareAndScrapeOptions = {
21
22
  */
22
23
  readonly cacheDirname?: string_dirname;
23
24
  /**
24
- * If true, the cache is cleaned after the scraping
25
+ * Strategy for caching the intermediate results for knowledge source
25
26
  *
26
- *
27
- * @default false // <- TODO: !!!!!! Change to `cacheStrategy`/`intermediateFiles`, Put to global config, change to `true` and explicitly set to `false` in all playgrounds
27
+ * @default DEFAULT_INTERMEDIATE_FILES_STRATEGY
28
28
  */
29
- readonly isCacheCleaned?: boolean;
29
+ readonly intermediateFilesStrategy?: IntermediateFilesStrategy;
30
30
  /**
31
31
  * Maximum number of tasks running in parallel
32
32
  *
33
33
  * @default MAX_PARALLEL_COUNT
34
34
  */
35
35
  readonly maxParallelCount?: number;
36
- /**
37
- * Path to the external programs executables
38
- *
39
- * TODO: !!!!!! Transform to scrapers and make them Classy
40
- */
41
- readonly externalProgramsPaths?: {
42
- /**
43
- * Path to the `pandoc` executable
44
- *
45
- * @example 'C:/Users/me/AppData/Local/Pandoc/pandoc.exe'
46
- */
47
- readonly pandocPath?: string;
48
- /**
49
- * Path to the LibreOffice executable
50
- *
51
- * @example 'C:/Program Files/LibreOffice/program/swriter.exe'
52
- */
53
- readonly libreOfficePath?: string;
54
- };
55
36
  /**
56
37
  * If true, the missing software is automatically installed
57
38
  */
@@ -12,7 +12,7 @@ type PreparedTemplates = {
12
12
  /**
13
13
  * @@@ Sequence of templates that are chained together to form a pipeline
14
14
  */
15
- readonly templatesPrepared: Array<TemplateJson>;
15
+ readonly templatesPrepared: ReadonlyArray<TemplateJson>;
16
16
  };
17
17
  /**
18
18
  * @@@
@@ -17,7 +17,7 @@ export type Scraper = {
17
17
  /**
18
18
  * Scrapes the markdown file and returns the knowledge pieces or `null` if it can't scrape it
19
19
  */
20
- scrape(source: ScraperSourceHandler): Promisable<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
20
+ scrape(source: ScraperSourceHandler): Promisable<ReadonlyArray<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
21
21
  };
22
22
  /**
23
23
  * @@@
@@ -60,7 +60,3 @@ export type ScraperSourceHandler = {
60
60
  * TODO: [🐝] @@@ Annotate all
61
61
  * TODO: [🔼] Export via types
62
62
  */
63
- /**
64
- * TODO: !!!!!! Test that this is catched
65
- * Note: [⚫] Code in this file should never be published in any package
66
- */
@@ -8,7 +8,7 @@ import type { ExecutionTools } from '../../execution/ExecutionTools';
8
8
  * @see https://github.com/webgptorg/promptbook/discussions/41
9
9
  * @public exported from `@promptbook/core`
10
10
  */
11
- export declare function prepareKnowledgePieces(knowledgeSources: Array<KnowledgeSourceJson>, tools: Pick<ExecutionTools, 'llm' | 'fs' | 'scrapers'>, options: PrepareAndScrapeOptions): Promise<Array<Omit<KnowledgePiecePreparedJson, 'preparationIds'>>>;
11
+ export declare function prepareKnowledgePieces(knowledgeSources: ReadonlyArray<KnowledgeSourceJson>, tools: Pick<ExecutionTools, 'llm' | 'fs' | 'scrapers'>, options: PrepareAndScrapeOptions): Promise<ReadonlyArray<Omit<KnowledgePiecePreparedJson, 'preparationIds'>>>;
12
12
  /**
13
13
  * TODO: [🧊] In future one preparation can take data from previous preparation and save tokens and time
14
14
  * Put `knowledgePieces` into `PrepareKnowledgeOptions`
@@ -0,0 +1,12 @@
1
+ import type { Executables } from '../../../execution/Executables';
2
+ import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
3
+ /**
4
+ * @@@
5
+ *
6
+ * @public exported from `@promptbook/node`
7
+ */
8
+ export declare function $provideExecutablesForNode(options?: PrepareAndScrapeOptions): Promise<Executables>;
9
+ /**
10
+ * TODO: [🧠] THis should be maybe in different folder
11
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
12
+ */
@@ -2,11 +2,11 @@ import type { ExecutionTools } from '../../../execution/ExecutionTools';
2
2
  import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
3
3
  import type { Scraper } from '../Scraper';
4
4
  /**
5
- * @@@!!!!!!
5
+ * @@@
6
6
  *
7
7
  * 1) @@@
8
8
  * 2) @@@
9
9
  *
10
10
  * @public exported from `@promptbook/browser`
11
11
  */
12
- export declare function $provideScrapersForBrowser(tools: Pick<ExecutionTools, 'llm'>, options?: PrepareAndScrapeOptions): Promise<Array<Scraper>>;
12
+ export declare function $provideScrapersForBrowser(tools: Pick<ExecutionTools, 'llm'>, options?: PrepareAndScrapeOptions): Promise<ReadonlyArray<Scraper>>;
@@ -2,14 +2,14 @@ import type { ExecutionTools } from '../../../execution/ExecutionTools';
2
2
  import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
3
3
  import type { Scraper } from '../Scraper';
4
4
  /**
5
- * !!!!!!
5
+ * @@@
6
6
  *
7
7
  * 1) @@@
8
8
  * 2) @@@
9
9
  *
10
10
  * @public exported from `@promptbook/node`
11
11
  */
12
- export declare function $provideScrapersForNode(tools: Pick<ExecutionTools, 'fs' | 'llm'>, options?: PrepareAndScrapeOptions): Promise<Array<Scraper>>;
12
+ export declare function $provideScrapersForNode(tools: Pick<ExecutionTools, 'fs' | 'llm' | 'executables'>, options?: PrepareAndScrapeOptions): Promise<ReadonlyArray<Scraper>>;
13
13
  /**
14
14
  * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
15
15
  */
@@ -1,8 +1,8 @@
1
+ import type { Executables } from '../../../execution/Executables';
1
2
  import type { string_mime_type } from '../../../types/typeAliases';
2
3
  import type { string_promptbook_documentation_url } from '../../../types/typeAliases';
3
4
  import type { string_title } from '../../../types/typeAliases';
4
5
  import type { Registered } from '../../../utils/$Register';
5
- import type { TODO_any } from '../../../utils/organization/TODO_any';
6
6
  /**
7
7
  * @@@
8
8
  *
@@ -33,7 +33,7 @@ export type ScraperAndConverterMetadata = Registered & {
33
33
  /**
34
34
  * @@@
35
35
  */
36
- readonly requiredExecutables: TODO_any;
36
+ readonly requiredExecutables: ReadonlyArray<Capitalize<keyof Executables extends `${infer N}Path` ? N : never>>;
37
37
  /**
38
38
  * Link to documentation
39
39
  */
@@ -13,7 +13,7 @@ type GetScraperIntermediateSourceSource = Pick<ScraperSourceHandler, 'filename'
13
13
  *
14
14
  * @private internal utility of `getScraperIntermediateSource`
15
15
  */
16
- type GetScraperIntermediateSourceHandler = Required<Pick<PrepareAndScrapeOptions, 'rootDirname' | 'cacheDirname' | 'isCacheCleaned' | 'isVerbose'>> & {
16
+ type GetScraperIntermediateSourceHandler = Required<Pick<PrepareAndScrapeOptions, 'rootDirname' | 'cacheDirname' | 'intermediateFilesStrategy' | 'isVerbose'>> & {
17
17
  readonly extension: string_file_extension;
18
18
  };
19
19
  /**
@@ -28,7 +28,7 @@ export {};
28
28
  /**
29
29
  * Note: Not using `FileCacheStorage` for two reasons:
30
30
  * 1) Need to store more than serialized JSONs
31
- * 2) Need to switch between a `rootDirname` and `cacheDirname` <- TODO: !!!!
31
+ * 2) Need to switch between a `rootDirname` and `cacheDirname` <- TODO: [😡]
32
32
  * TODO: [🐱‍🐉][🧠] Make some smart crop
33
33
  * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
34
34
  */
@@ -23,7 +23,7 @@ export declare class DocumentScraper implements Converter, Scraper {
23
23
  * Markdown scraper is used internally
24
24
  */
25
25
  private readonly markdownScraper;
26
- constructor(tools: Pick<ExecutionTools, 'fs' | 'llm'>, options: PrepareAndScrapeOptions);
26
+ constructor(tools: Pick<ExecutionTools, 'fs' | 'llm' | 'executables'>, options: PrepareAndScrapeOptions);
27
27
  /**
28
28
  * Convert the `.docx` or `.odt` to `.md` file and returns intermediate source
29
29
  *
@@ -33,7 +33,7 @@ export declare class DocumentScraper implements Converter, Scraper {
33
33
  /**
34
34
  * Scrapes the docx file and returns the knowledge pieces or `null` if it can't scrape it
35
35
  */
36
- scrape(source: ScraperSourceHandler): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
36
+ scrape(source: ScraperSourceHandler): Promise<ReadonlyArray<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
37
37
  }
38
38
  /**
39
39
  * TODO: [👣] Converted documents can act as cached items - there is no need to run conversion each time
@@ -13,7 +13,7 @@ export declare const createDocumentScraper: ((tools: Pick<ExecutionTools, 'llm'>
13
13
  mimeTypes: string[];
14
14
  documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
15
  isAvilableInBrowser: false;
16
- requiredExecutables: string[];
16
+ requiredExecutables: "Pandoc"[];
17
17
  }>;
18
18
  /**
19
19
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
@@ -11,7 +11,7 @@ export declare const documentScraperMetadata: import("type-fest/source/readonly-
11
11
  mimeTypes: string[];
12
12
  documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
13
  isAvilableInBrowser: false;
14
- requiredExecutables: string[];
14
+ requiredExecutables: "Pandoc"[];
15
15
  }>;
16
16
  /**
17
17
  * Registration of known scraper metadata
@@ -7,7 +7,7 @@ import type { Scraper } from '../_common/Scraper';
7
7
  import type { ScraperSourceHandler } from '../_common/Scraper';
8
8
  import type { ScraperIntermediateSource } from '../_common/ScraperIntermediateSource';
9
9
  /**
10
- * Scraper for .docx files
10
+ * Scraper for old document files (like .doc and .rtf)
11
11
  *
12
12
  * @see `documentationUrl` for more details
13
13
  * @public exported from `@promptbook/legacy-documents`
@@ -23,7 +23,7 @@ export declare class LegacyDocumentScraper implements Converter, Scraper {
23
23
  * Document scraper is used internally
24
24
  */
25
25
  private readonly documentScraper;
26
- constructor(tools: Pick<ExecutionTools, 'fs' | 'llm'>, options: PrepareAndScrapeOptions);
26
+ constructor(tools: Pick<ExecutionTools, 'fs' | 'llm' | 'executables'>, options: PrepareAndScrapeOptions);
27
27
  /**
28
28
  * Convert the `.doc` or `.rtf` to `.doc` file and returns intermediate source
29
29
  *
@@ -33,7 +33,7 @@ export declare class LegacyDocumentScraper implements Converter, Scraper {
33
33
  /**
34
34
  * Scrapes the `.doc` or `.rtf` file and returns the knowledge pieces or `null` if it can't scrape it
35
35
  */
36
- scrape(source: ScraperSourceHandler): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
36
+ scrape(source: ScraperSourceHandler): Promise<ReadonlyArray<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
37
37
  }
38
38
  /**
39
39
  * TODO: [👣] Converted documents can act as cached items - there is no need to run conversion each time
@@ -13,7 +13,7 @@ export declare const createLegacyDocumentScraper: ((tools: Pick<ExecutionTools,
13
13
  mimeTypes: string[];
14
14
  documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
15
  isAvilableInBrowser: false;
16
- requiredExecutables: string[];
16
+ requiredExecutables: ("Pandoc" | "LibreOffice")[];
17
17
  }>;
18
18
  /**
19
19
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
@@ -11,7 +11,7 @@ export declare const legacyDocumentScraperMetadata: import("type-fest/source/rea
11
11
  mimeTypes: string[];
12
12
  documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
13
  isAvilableInBrowser: false;
14
- requiredExecutables: string[];
14
+ requiredExecutables: ("Pandoc" | "LibreOffice")[];
15
15
  }>;
16
16
  /**
17
17
  * Registration of known scraper metadata
@@ -21,7 +21,7 @@ export declare class MarkdownScraper implements Scraper {
21
21
  /**
22
22
  * Scrapes the markdown file and returns the knowledge pieces or `null` if it can't scrape it
23
23
  */
24
- scrape(source: ScraperSourceHandler): Promise<Array<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
24
+ scrape(source: ScraperSourceHandler): Promise<ReadonlyArray<Omit<KnowledgePiecePreparedJson, 'sources' | 'preparationIds'>> | null>;
25
25
  }
26
26
  /**
27
27
  * TODO: [🪂] Do it in parallel 11:11
@@ -13,7 +13,7 @@ export declare const createMarkdownScraper: ((tools: Pick<ExecutionTools, 'llm'>
13
13
  mimeTypes: string[];
14
14
  documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
15
  isAvilableInBrowser: true;
16
- requiredExecutables: string[];
16
+ requiredExecutables: never[];
17
17
  }>;
18
18
  /**
19
19
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
@@ -11,7 +11,7 @@ export declare const markdownScraperMetadata: import("type-fest/source/readonly-
11
11
  mimeTypes: string[];
12
12
  documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
13
  isAvilableInBrowser: true;
14
- requiredExecutables: string[];
14
+ requiredExecutables: never[];
15
15
  }>;
16
16
  /**
17
17
  * Registration of known scraper metadata