@promptbook/types 0.103.0-4 → 0.103.0-40

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 (139) hide show
  1. package/README.md +57 -21
  2. package/esm/typings/books/index.d.ts +0 -81
  3. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  4. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  5. package/esm/typings/src/_packages/components.index.d.ts +12 -8
  6. package/esm/typings/src/_packages/core.index.d.ts +30 -10
  7. package/esm/typings/src/_packages/node.index.d.ts +4 -2
  8. package/esm/typings/src/_packages/types.index.d.ts +18 -2
  9. package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
  10. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +1 -0
  11. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +16 -0
  12. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +76 -15
  13. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
  14. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  15. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  16. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  17. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  18. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  19. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  20. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  21. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  22. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  23. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  24. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  25. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  26. package/esm/typings/src/book-components/_common/react-utils/classNames.d.ts +1 -1
  27. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  28. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  29. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  30. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  31. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  32. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  33. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  34. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  35. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  36. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  37. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  38. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  39. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  40. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  41. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  42. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  43. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  44. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  45. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  46. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +36 -0
  47. package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.d.ts +88 -0
  48. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  49. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  50. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  51. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  52. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  53. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  54. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  55. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  56. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  57. package/esm/typings/src/config.d.ts +22 -2
  58. package/esm/typings/src/errors/0-index.d.ts +3 -0
  59. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  60. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  61. package/esm/typings/src/execution/Executables.d.ts +3 -0
  62. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  63. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  64. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  65. package/esm/typings/src/execution/LlmExecutionTools.d.ts +7 -1
  66. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  67. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  68. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  69. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  70. package/esm/typings/src/execution/utils/logLlmCall.d.ts +8 -0
  71. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  72. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  73. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  74. package/esm/typings/src/llm-providers/agent/Agent.d.ts +49 -0
  75. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +9 -4
  76. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +17 -0
  77. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +16 -0
  78. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  79. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +28 -0
  80. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  81. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  82. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  83. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  84. package/esm/typings/src/playground/playground.d.ts +0 -3
  85. package/esm/typings/src/playground/playground1.d.ts +2 -0
  86. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  87. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +22 -8
  88. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  89. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  90. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  91. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  92. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  93. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  94. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  95. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  96. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  97. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  98. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  99. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  100. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  101. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  102. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  103. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +29 -0
  104. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  105. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  106. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +13 -0
  107. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  108. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +13 -0
  109. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  110. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  111. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  112. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  113. package/esm/typings/src/types/Updatable.d.ts +19 -0
  114. package/esm/typings/src/types/typeAliases.d.ts +1 -1
  115. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  116. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  117. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  118. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  119. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  120. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  121. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +21 -0
  122. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  123. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  124. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  125. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  126. package/esm/typings/src/version.d.ts +1 -1
  127. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  128. package/package.json +2 -2
  129. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
  130. package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
  131. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
  132. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  133. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  134. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  135. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → collection/agent-collection/constructors/AgentCollectionInDirectory.test.d.ts} +0 -0
  136. /package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  137. /package/esm/typings/src/collection/{constructors/createCollectionFromJson.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  138. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts} +0 -0
  139. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
@@ -0,0 +1,88 @@
1
+ import { Agent } from '../../../_packages/core.index';
2
+ import { CommonToolsOptions, string_book } from '../../../_packages/types.index';
3
+ import type { ExecutionTools } from '../../../execution/ExecutionTools';
4
+ import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
5
+ import type { string_agent_name, string_dirname } from '../../../types/typeAliases';
6
+ import type { AgentCollection } from '../AgentCollection';
7
+ /**
8
+ * Options for `createAgentCollectionFromDirectory` function
9
+ *
10
+ * Note: `rootDirname` is not needed because it is the folder in which `.book` or `.book` file is located
11
+ * This is not same as `path` which is the first argument of `createAgentCollectionFromDirectory` - it can be a subfolder
12
+ */
13
+ type CreateAgentCollectionInDirectoryOptions = Omit<PrepareAndScrapeOptions, 'rootDirname'> & CommonToolsOptions & {
14
+ /**
15
+ * If true, the directory is searched recursively for pipelines
16
+ *
17
+ * @default true
18
+ */
19
+ isRecursive?: boolean;
20
+ /**
21
+ * If true, directory will be scanned only when needed not during the construction
22
+ *
23
+ * @default false
24
+ */
25
+ isLazyLoaded?: boolean;
26
+ /**
27
+ * If true, whole collection creation crashes on error in any pipeline
28
+ * If true and isLazyLoaded is true, the error is thrown on first access to the pipeline
29
+ *
30
+ * @default true
31
+ */
32
+ isCrashedOnError?: boolean;
33
+ };
34
+ /**
35
+ * Agent collection stored in directory
36
+ *
37
+ * Note: Works only in Node.js environment because it reads the file system
38
+ *
39
+ * @public exported from `@promptbook/node`
40
+ */
41
+ export declare class AgentCollectionInDirectory implements AgentCollection {
42
+ readonly rootPath: string_dirname;
43
+ private readonly tools?;
44
+ readonly options?: CreateAgentCollectionInDirectoryOptions | undefined;
45
+ /**
46
+ * @param rootPath - path to the directory with agents
47
+ * @param tools - Execution tools to be used in `Agent` itself and listing the agents
48
+ * @param options - Options for the collection creation
49
+ */
50
+ constructor(rootPath: string_dirname, tools?: Pick<ExecutionTools, "llm" | "fs" | "scrapers"> | undefined, options?: CreateAgentCollectionInDirectoryOptions | undefined);
51
+ /**
52
+ * Cached defined execution tools
53
+ */
54
+ private _definedTools;
55
+ /**
56
+ * Gets or creates execution tools for the collection
57
+ */
58
+ private getTools;
59
+ /**
60
+ * Gets all agents in the collection
61
+ */
62
+ listAgents(): Promise<ReadonlyArray<string_agent_name>>;
63
+ /**
64
+ * Get one agent by its name
65
+ *
66
+ * Note: Agents are existing independently of you getting them or not, you can get the same agent multiple times.
67
+ * Note: Agents are changed by interacting with `Agent` objects directly. Only creation and deletion is done via the collection.
68
+ */
69
+ getAgentByName(agentName: string_agent_name): Promise<Agent>;
70
+ /**
71
+ * Deletes an agent from the collection
72
+ *
73
+ * Note: When you want delete an agent by name, first get the agent using `getAgentByName` and then pass it to `deleteAgent`.
74
+ */
75
+ deleteAgent(agent: Agent): Promise<void>;
76
+ /**
77
+ * Creates a new agent in the collection
78
+ *
79
+ * Note: You can set 'PARENT' in the agent source to inherit from another agent in the collection.
80
+ */
81
+ createAgent(agentSource: string_book): Promise<Agent>;
82
+ }
83
+ export {};
84
+ /**
85
+ * TODO: [🖇] What about symlinks? Maybe option `isSymlinksFollowed`
86
+ * TODO: [🧠] Maybe add option `isImmutable`
87
+ * Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
88
+ */
@@ -1,9 +1,13 @@
1
1
  import type { Promisable } from 'type-fest';
2
- import type { PipelineJson } from '../pipeline/PipelineJson/PipelineJson';
3
- import type { Prompt } from '../types/Prompt';
4
- import type { string_pipeline_url } from '../types/typeAliases';
2
+ import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
3
+ import type { Prompt } from '../../types/Prompt';
4
+ import type { string_pipeline_url } from '../../types/typeAliases';
5
5
  /**
6
6
  * Collection that groups together pipelines, knowledge, personas, tools and actions
7
+ *
8
+ * Note: [🧸] There are two types of collections:
9
+ * - `AgentCollection` - which groups together AI Agents
10
+ * - `PipelineCollection` - which groups together *(deprecated)* pipelines
7
11
  */
8
12
  export type PipelineCollection = {
9
13
  /**
@@ -1,12 +1,12 @@
1
- import type { PipelineJson } from '../pipeline/PipelineJson/PipelineJson';
2
- import type { Prompt } from '../types/Prompt';
3
- import type { string_pipeline_url } from '../types/typeAliases';
1
+ import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
2
+ import type { Prompt } from '../../types/Prompt';
3
+ import type { string_pipeline_url } from '../../types/typeAliases';
4
4
  import type { PipelineCollection } from './PipelineCollection';
5
5
  /**
6
6
  * Library of pipelines that groups together pipelines for an application.
7
7
  * This implementation is a very thin wrapper around the Array / Map of pipelines.
8
8
  *
9
- * @private internal function of `createCollectionFromJson`, use `createCollectionFromJson` instead
9
+ * @private internal function of `createPipelineCollectionFromJson`, use `createPipelineCollectionFromJson` instead
10
10
  * @see https://github.com/webgptorg/pipeline#pipeline-collection
11
11
  */
12
12
  export declare class SimplePipelineCollection implements PipelineCollection {
@@ -17,7 +17,7 @@ export declare class SimplePipelineCollection implements PipelineCollection {
17
17
  * @param pipelines Array of pipeline JSON objects to include in the collection
18
18
  *
19
19
  * Note: During the construction logic of all pipelines are validated
20
- * Note: It is not recommended to use this constructor directly, use `createCollectionFromJson` *(or other variant)* instead
20
+ * Note: It is not recommended to use this constructor directly, use `createPipelineCollectionFromJson` *(or other variant)* instead
21
21
  */
22
22
  constructor(...pipelines: ReadonlyArray<PipelineJson>);
23
23
  /**
@@ -1,13 +1,12 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import type { string_dirname } from '../../types/typeAliases';
4
- import type { string_pipeline_root_url } from '../../types/typeAliases';
1
+ import type { ExecutionTools } from '../../../execution/ExecutionTools';
2
+ import type { PrepareAndScrapeOptions } from '../../../prepare/PrepareAndScrapeOptions';
3
+ import type { string_dirname, string_pipeline_root_url } from '../../../types/typeAliases';
5
4
  import type { PipelineCollection } from '../PipelineCollection';
6
5
  /**
7
- * Options for `createCollectionFromDirectory` function
6
+ * Options for `createPipelineCollectionFromDirectory` function
8
7
  *
9
8
  * Note: `rootDirname` is not needed because it is the folder in which `.book` or `.book` file is located
10
- * This is not same as `path` which is the first argument of `createCollectionFromDirectory` - it can be a subfolder
9
+ * This is not same as `path` which is the first argument of `createPipelineCollectionFromDirectory` - it can be a subfolder
11
10
  */
12
11
  type CreatePipelineCollectionFromDirectoryOptions = Omit<PrepareAndScrapeOptions, 'rootDirname'> & {
13
12
  /**
@@ -28,8 +27,6 @@ type CreatePipelineCollectionFromDirectoryOptions = Omit<PrepareAndScrapeOptions
28
27
  * It has 2 purposes:
29
28
  * 1) Every pipeline in the collection is checked if it is a child of `rootUrl`
30
29
  * 2) If the pipeline does not have a URL, it is created from the `rootUrl` and path to the pipeline
31
- *
32
- * @default false
33
30
  */
34
31
  rootUrl?: string_pipeline_root_url;
35
32
  /**
@@ -47,7 +44,7 @@ type CreatePipelineCollectionFromDirectoryOptions = Omit<PrepareAndScrapeOptions
47
44
  isCrashedOnError?: boolean;
48
45
  };
49
46
  /**
50
- * Constructs Pipeline from given directory
47
+ * Constructs `PipelineCollection` from given directory
51
48
  *
52
49
  * Note: Works only in Node.js environment because it reads the file system
53
50
  *
@@ -57,9 +54,9 @@ type CreatePipelineCollectionFromDirectoryOptions = Omit<PrepareAndScrapeOptions
57
54
  * @returns PipelineCollection
58
55
  * @public exported from `@promptbook/node`
59
56
  */
60
- export declare function createCollectionFromDirectory(rootPath: string_dirname, tools?: Pick<ExecutionTools, 'llm' | 'fs' | 'scrapers'>, options?: CreatePipelineCollectionFromDirectoryOptions): Promise<PipelineCollection>;
57
+ export declare function createPipelineCollectionFromDirectory(rootPath: string_dirname, tools?: Pick<ExecutionTools, 'llm' | 'fs' | 'scrapers'>, options?: CreatePipelineCollectionFromDirectoryOptions): Promise<PipelineCollection>;
61
58
  export {};
62
59
  /**
63
- * TODO: [🖇] What about symlinks? Maybe option isSymlinksFollowed
60
+ * TODO: [🖇] What about symlinks? Maybe option `isSymlinksFollowed`
64
61
  * TODO: Maybe move from `@promptbook/node` to `@promptbook/core` as we removes direct dependency on `fs`
65
62
  */
@@ -0,0 +1,13 @@
1
+ import type { PipelineJson } from '../../../pipeline/PipelineJson/PipelineJson';
2
+ import type { PipelineCollection } from '../PipelineCollection';
3
+ /**
4
+ * Creates `PipelineCollection` from array of PipelineJson or PipelineString
5
+ *
6
+ * Note: Functions `pipelineCollectionToJson` and `createPipelineCollectionFromJson` are complementary
7
+ * Note: Syntax, parsing, and logic consistency checks are performed on all sources during build
8
+ *
9
+ * @param promptbookSources
10
+ * @returns PipelineCollection
11
+ * @public exported from `@promptbook/core`
12
+ */
13
+ export declare function createPipelineCollectionFromJson(...promptbooks: ReadonlyArray<PipelineJson>): PipelineCollection;
@@ -1,23 +1,24 @@
1
- import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
1
+ import type { PipelineJson } from '../../../pipeline/PipelineJson/PipelineJson';
2
2
  import type { PipelineCollection } from '../PipelineCollection';
3
3
  /**
4
- * Constructs Promptbook from async sources
4
+ * Constructs `PipelineCollection` from async sources
5
+ *
5
6
  * It can be one of the following:
6
7
  * - Promise of array of PipelineJson or PipelineString
7
8
  * - Factory function that returns Promise of array of PipelineJson or PipelineString
8
9
  *
9
10
  * Note: This is useful as internal tool for other constructor functions like
10
- * `createCollectionFromUrl` or `createCollectionFromDirectory`
11
+ * `createPipelineCollectionFromUrl` or `createPipelineCollectionFromDirectory`
11
12
  * Consider using those functions instead of this one
12
13
  *
13
14
  * Note: The function does NOT return promise it returns the collection directly which waits for the sources to be resolved
14
15
  * when error occurs in given promise or factory function, it is thrown during `listPipelines` or `getPipelineByUrl` call
15
16
  *
16
- * Note: Consider using `createCollectionFromDirectory` or `createCollectionFromUrl`
17
+ * Note: Consider using `createPipelineCollectionFromDirectory` or `createPipelineCollectionFromUrl`
17
18
  *
18
19
  * @param promptbookSourcesPromiseOrFactory
19
20
  * @returns PipelineCollection
20
21
  * @deprecated Do not use, it will became internal tool for other constructor functions
21
22
  * @public exported from `@promptbook/core`
22
23
  */
23
- export declare function createCollectionFromPromise(promptbookSourcesPromiseOrFactory: Promise<ReadonlyArray<PipelineJson>> | (() => Promise<ReadonlyArray<PipelineJson>>)): PipelineCollection;
24
+ export declare function createPipelineCollectionFromPromise(promptbookSourcesPromiseOrFactory: Promise<ReadonlyArray<PipelineJson>> | (() => Promise<ReadonlyArray<PipelineJson>>)): PipelineCollection;
@@ -1,7 +1,7 @@
1
- import type { string_url } from '../../types/typeAliases';
1
+ import type { string_url } from '../../../types/typeAliases';
2
2
  import type { PipelineCollection } from '../PipelineCollection';
3
3
  /**
4
- * Options for `createCollectionFromDirectory` function
4
+ * Options for `createPipelineCollectionFromDirectory` function
5
5
  */
6
6
  type CreatePipelineCollectionFromUrlyOptions = {
7
7
  /**
@@ -22,7 +22,7 @@ type CreatePipelineCollectionFromUrlyOptions = {
22
22
  * @returns PipelineCollection
23
23
  * @public exported from `@promptbook/core`
24
24
  */
25
- export declare function createCollectionFromUrl(url: string_url | URL, options: CreatePipelineCollectionFromUrlyOptions): Promise<PipelineCollection>;
25
+ export declare function createPipelineCollectionFromUrl(url: string_url | URL, options: CreatePipelineCollectionFromUrlyOptions): Promise<PipelineCollection>;
26
26
  export {};
27
27
  /**
28
28
  * TODO: [main] !!4 [🧠] Library precompilation and do not mix markdown and json promptbooks
@@ -1,7 +1,7 @@
1
- import type { string_pipeline_url } from '../../types/typeAliases';
1
+ import type { string_pipeline_url } from '../../../types/typeAliases';
2
2
  import type { PipelineCollection } from '../PipelineCollection';
3
3
  /**
4
- * Creates PipelineCollection as a subset of another PipelineCollection
4
+ * Creates `PipelineCollection` as a subset of another `PipelineCollection`
5
5
  *
6
6
  * Note: You can use any type of collection as a parent collection - local, remote, etc.
7
7
  * Note: This is just a thin wrapper / proxy around the parent collection
@@ -10,4 +10,4 @@ import type { PipelineCollection } from '../PipelineCollection';
10
10
  * @returns PipelineCollection
11
11
  * @public exported from `@promptbook/core`
12
12
  */
13
- export declare function createSubcollection(collection: PipelineCollection, predicate: (url: string_pipeline_url) => boolean): PipelineCollection;
13
+ export declare function createPipelineSubcollection(collection: PipelineCollection, predicate: (url: string_pipeline_url) => boolean): PipelineCollection;
@@ -0,0 +1,13 @@
1
+ import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
2
+ import type { PipelineCollection } from './PipelineCollection';
3
+ /**
4
+ * Converts PipelineCollection to serialized JSON
5
+ *
6
+ * Note: Functions `pipelineCollectionToJson` and `createPipelineCollectionFromJson` are complementary
7
+ *
8
+ * @public exported from `@promptbook/core`
9
+ */
10
+ export declare function pipelineCollectionToJson(collection: PipelineCollection): Promise<ReadonlyArray<PipelineJson>>;
11
+ /**
12
+ * TODO: [🧠] Maybe clear `sourceFile` or clear when exposing through API or remote server
13
+ */
@@ -1,10 +1,9 @@
1
1
  import type { SetOptional, WritableDeep } from 'type-fest';
2
2
  import type { PipelineJson } from '../../../pipeline/PipelineJson/PipelineJson';
3
3
  import type { TaskJson } from '../../../pipeline/PipelineJson/TaskJson';
4
- import type { string_markdown_text } from '../../../types/typeAliases';
5
- import type { string_name } from '../../../types/typeAliases';
6
- import type { string_promptbook_documentation_url } from '../../../types/typeAliases';
4
+ import type { string_markdown_text, string_name, string_promptbook_documentation_url } from '../../../types/typeAliases';
7
5
  import type { string_SCREAMING_CASE } from '../../../utils/normalization/normalizeTo_SCREAMING_CASE';
6
+ import { $side_effect } from '../../../utils/organization/$side_effect';
8
7
  import type { ___and___ } from '../../../utils/organization/___and___';
9
8
  import type { CommandUsagePlace } from './CommandUsagePlaces';
10
9
  /**
@@ -98,7 +97,7 @@ export type PipelineHeadCommandParser<TCommand extends CommandBase> = CommonComm
98
97
  *
99
98
  * Note: `$` is used to indicate that this function mutates given `pipelineJson`
100
99
  */
101
- $applyToPipelineJson(command: TCommand, $pipelineJson: $PipelineJson): void;
100
+ $applyToPipelineJson(command: TCommand, $pipelineJson: $PipelineJson): $side_effect;
102
101
  /**
103
102
  * Reads the command from the `PipelineJson`
104
103
  *
@@ -126,7 +125,7 @@ export type PipelineTaskCommandParser<TCommand extends CommandBase> = CommonComm
126
125
  *
127
126
  * Note: `$` is used to indicate that this function mutates given `taskJson` and/or `pipelineJson`
128
127
  */
129
- $applyToTaskJson(command: TCommand, $taskJson: $TaskJson, $pipelineJson: $PipelineJson): void;
128
+ $applyToTaskJson(command: TCommand, $taskJson: $TaskJson, $pipelineJson: $PipelineJson): $side_effect;
130
129
  /**
131
130
  * Reads the command from the `TaskJson`
132
131
  *
@@ -45,7 +45,20 @@ export declare const CLAIM = "Turn your company's scattered knowledge into AI re
45
45
  */
46
46
  export declare const PROMPTBOOK_COLOR: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
47
47
  /**
48
- * Dark color of the Promptbook
48
+ * Colors for syntax highlighting in the `<BookEditor/>`
49
+ *
50
+ * TODO: [🗽] Unite branding and make single place for it
51
+ *
52
+ * @public exported from `@promptbook/core`
53
+ */
54
+ export declare const PROMPTBOOK_SYNTAX_COLORS: {
55
+ readonly TITLE: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
56
+ readonly LINE: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
57
+ readonly COMMITMENT: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
58
+ readonly PARAMETER: import("./utils/take/interfaces/ITakeChain").WithTake<Color>;
59
+ };
60
+ /**
61
+ * Chat color of the Promptbook (in chat)
49
62
  *
50
63
  * TODO: [🗽] Unite branding and make single place for it
51
64
  *
@@ -220,6 +233,13 @@ export declare const DEFAULT_MAX_KNOWLEDGE_SOURCES_SCRAPING_TOTAL = 200;
220
233
  * @public exported from `@promptbook/core`
221
234
  */
222
235
  export declare const DEFAULT_BOOKS_DIRNAME = "./books";
236
+ /**
237
+ * Where to store your agents (also book files)
238
+ * This is kind of a "src" for your books
239
+ *
240
+ * @public exported from `@promptbook/core`
241
+ */
242
+ export declare const DEFAULT_AGENTS_DIRNAME = "./agents";
223
243
  /**
224
244
  * Where to store the temporary downloads
225
245
  *
@@ -257,7 +277,7 @@ export declare const CLI_APP_ID: string_app_id;
257
277
  */
258
278
  export declare const PLAYGROUND_APP_ID: string_app_id;
259
279
  /**
260
- * The name of the builded pipeline collection made by CLI `ptbk make` and for lookup in `createCollectionFromDirectory`
280
+ * The name of the builded pipeline collection made by CLI `ptbk make` and for lookup in `createPipelineCollectionFromDirectory`
261
281
  *
262
282
  * @public exported from `@promptbook/core`
263
283
  */
@@ -7,6 +7,7 @@ import { ExpectError } from './ExpectError';
7
7
  import { KnowledgeScrapeError } from './KnowledgeScrapeError';
8
8
  import { LimitReachedError } from './LimitReachedError';
9
9
  import { MissingToolsError } from './MissingToolsError';
10
+ import { NotAllowed } from './NotAllowed';
10
11
  import { NotFoundError } from './NotFoundError';
11
12
  import { NotYetImplementedError } from './NotYetImplementedError';
12
13
  import { ParseError } from './ParseError';
@@ -40,6 +41,7 @@ export declare const PROMPTBOOK_ERRORS: {
40
41
  readonly PromptbookFetchError: typeof PromptbookFetchError;
41
42
  readonly UnexpectedError: typeof UnexpectedError;
42
43
  readonly WrappedError: typeof WrappedError;
44
+ readonly NotAllowed: typeof NotAllowed;
43
45
  };
44
46
  /**
45
47
  * Index of all javascript errors
@@ -88,6 +90,7 @@ export declare const ALL_ERRORS: {
88
90
  readonly PromptbookFetchError: typeof PromptbookFetchError;
89
91
  readonly UnexpectedError: typeof UnexpectedError;
90
92
  readonly WrappedError: typeof WrappedError;
93
+ readonly NotAllowed: typeof NotAllowed;
91
94
  };
92
95
  /**
93
96
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This error indicates that promptbook operation is not allowed
3
+ *
4
+ * @public exported from `@promptbook/core`
5
+ */
6
+ export declare class NotAllowed extends Error {
7
+ readonly name = "NotAllowed";
8
+ constructor(message: string);
9
+ }
@@ -46,5 +46,6 @@ export type AvailableModel = {
46
46
  readonly isDeprecated?: boolean;
47
47
  };
48
48
  /**
49
+ * TODO: [🕛] Extend this from sth like `AgentBasicInformation` / `ModelBasicInformation`
49
50
  * TODO: [🧠] Maybe rename to something else - like `ModelInformation` or `ModelMetadata`
50
51
  */
@@ -16,3 +16,6 @@ export type Executables = {
16
16
  */
17
17
  libreOfficePath?: string_executable_path;
18
18
  };
19
+ /**
20
+ * <- TODO: Add !!! `browserPath` to `Executables`
21
+ */
@@ -1,8 +1,9 @@
1
1
  import type { Observable } from 'rxjs';
2
2
  import { PartialDeep } from 'type-fest';
3
- import type { number_percent } from '../types/typeAliases';
4
- import type { task_id } from '../types/typeAliases';
3
+ import type { LlmCall } from '../types/LlmCall';
4
+ import type { number_percent, task_id } from '../types/typeAliases';
5
5
  import type { string_SCREAMING_CASE } from '../utils/normalization/normalizeTo_SCREAMING_CASE';
6
+ import type { really_any } from '../utils/organization/really_any';
6
7
  import type { string_promptbook_version } from '../version';
7
8
  import type { AbstractTaskResult } from './AbstractTaskResult';
8
9
  import type { PipelineExecutorResult } from './PipelineExecutorResult';
@@ -32,7 +33,7 @@ type CreateTaskOptions<TTaskResult extends AbstractTaskResult> = {
32
33
  }) => void, updateTldr: (tldrInfo: {
33
34
  readonly percent: number_percent;
34
35
  readonly message: string;
35
- }) => void): Promise<TTaskResult>;
36
+ }) => void, logLlmCall: (llmCall: LlmCall) => void): Promise<TTaskResult>;
36
37
  };
37
38
  /**
38
39
  * Helper to create a new task
@@ -136,6 +137,14 @@ export type AbstractTask<TTaskResult extends AbstractTaskResult> = {
136
137
  * List of warnings that occurred during the task processing
137
138
  */
138
139
  readonly warnings: Array<Error>;
140
+ /**
141
+ * List of LLM calls that occurred during the task processing
142
+ */
143
+ readonly llmCalls: Array<LlmCall>;
144
+ /**
145
+ * Optional nonce to correlate logs with version of the Promptbook engine
146
+ */
147
+ readonly ptbkNonce?: really_any;
139
148
  };
140
149
  export type Task = ExecutionTask | PreparationTask;
141
150
  export {};
@@ -67,3 +67,8 @@ export type ExecutionTools = {
67
67
  */
68
68
  readonly userInterface?: UserInterfaceTools;
69
69
  };
70
+ /**
71
+ * <- TODO: Add !!! `promptbookAgent` to `ExecutionTools`
72
+ * <- TODO: Add !!! `mcps` to `ExecutionTools`
73
+ * <- TODO: Add !!! `prepareCache` to `ExecutionTools`
74
+ */
@@ -3,7 +3,7 @@ import type fs from 'fs/promises';
3
3
  /**
4
4
  * Container for all the tools needed to manipulate with filesystem
5
5
  */
6
- export type FilesystemTools = Pick<typeof fs, 'access' | 'constants' | 'readFile' | 'writeFile' | 'stat' | 'readdir' | 'mkdir'>;
6
+ export type FilesystemTools = Pick<typeof fs, 'access' | 'constants' | 'readFile' | 'writeFile' | 'stat' | 'readdir' | 'mkdir' | 'watch'>;
7
7
  /**
8
8
  * TODO: Implement destroyable pattern to free resources
9
9
  */
@@ -9,6 +9,12 @@ import type { ChatPromptResult, CompletionPromptResult, EmbeddingPromptResult }
9
9
  * On its interface it exposes common methods for prompt execution.
10
10
  * Inside (in constructor) it calls OpenAI, Azure, GPU, proxy, cache, logging,...
11
11
  *
12
+ * Note: [🦖] There are several different things in Promptbook:
13
+ * - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
14
+ * - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
15
+ * - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
16
+ * - `OpenAiAssistantExecutionTools` - which is a specific implementation of `LlmExecutionTools` for OpenAI models with assistant capabilities, recommended for usage in `Agent` or `AgentLlmExecutionTools`
17
+ *
12
18
  * @see https://github.com/webgptorg/promptbook#llm-execution-tools
13
19
  */
14
20
  export type LlmExecutionTools = {
@@ -56,7 +62,7 @@ export type LlmExecutionTools = {
56
62
  callEmbeddingModel?(prompt: Prompt): Promise<EmbeddingPromptResult>;
57
63
  };
58
64
  /**
59
- * TODO: [🕛] Extend this from sth class
65
+ * TODO: [🕛] Extend this from sth class - like `AgentBasicInformation` / `ModelBasicInformation``
60
66
  * TODO: [🍚] Implement destroyable pattern to free resources
61
67
  * TODO: [🏳] Add `callTranslationModel`
62
68
  * TODO: [🧠] Emulation of one type of model with another one - emuate chat with completion; emulate translation with chat
@@ -2,6 +2,7 @@ import type { PartialDeep, Promisable, ReadonlyDeep } from 'type-fest';
2
2
  import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
3
3
  import type { InputParameters } from '../../types/typeAliases';
4
4
  import type { PipelineExecutorResult } from '../PipelineExecutorResult';
5
+ import type { LlmCall } from '../../types/LlmCall';
5
6
  import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
6
7
  /**
7
8
  * Options for executing an entire pipeline, including input parameters, pipeline context, and progress callbacks.
@@ -17,6 +18,10 @@ type ExecutePipelineOptions = Required<CreatePipelineExecutorOptions> & {
17
18
  * Optional callback invoked with partial results as the pipeline execution progresses.
18
19
  */
19
20
  onProgress?(newOngoingResult: PartialDeep<PipelineExecutorResult>): Promisable<void>;
21
+ /**
22
+ * Optional callback invoked with each LLM call.
23
+ */
24
+ logLlmCall?(llmCall: LlmCall): Promisable<void>;
20
25
  /**
21
26
  * The pipeline definition to execute.
22
27
  */
@@ -2,6 +2,7 @@ import type { PartialDeep, Promisable, ReadonlyDeep, WritableDeep } from 'type-f
2
2
  import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
3
3
  import type { TaskJson } from '../../pipeline/PipelineJson/TaskJson';
4
4
  import type { Parameters } from '../../types/typeAliases';
5
+ import type { LlmCall } from '../../types/LlmCall';
5
6
  import type { ExecutionReportJson } from '../execution-report/ExecutionReportJson';
6
7
  import type { PipelineExecutorResult } from '../PipelineExecutorResult';
7
8
  import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
@@ -27,6 +28,10 @@ type executeSingleTaskOptions = Required<CreatePipelineExecutorOptions> & {
27
28
  * Callback invoked with partial results as the execution progresses.
28
29
  */
29
30
  onProgress(newOngoingResult: PartialDeep<PipelineExecutorResult>): Promisable<void>;
31
+ /**
32
+ * Optional callback invoked with each LLM call.
33
+ */
34
+ logLlmCall?(llmCall: LlmCall): Promisable<void>;
30
35
  /**
31
36
  * Mutable execution report object for tracking execution details.
32
37
  */
@@ -1,5 +1,6 @@
1
1
  import type { PartialDeep, Promisable } from 'type-fest';
2
2
  import type { TODO_any } from '../../utils/organization/TODO_any';
3
+ import type { LlmCall } from '../../types/LlmCall';
3
4
  import type { PipelineExecutorResult } from '../PipelineExecutorResult';
4
5
  import type { ExecuteAttemptsOptions } from './40-executeAttempts';
5
6
  /**
@@ -13,6 +14,10 @@ type ExecuteFormatCellsOptions = ExecuteAttemptsOptions & {
13
14
  * Callback invoked with partial results as the execution progresses.
14
15
  */
15
16
  onProgress(newOngoingResult: PartialDeep<PipelineExecutorResult>): Promisable<void>;
17
+ /**
18
+ * Optional callback invoked with each LLM call.
19
+ */
20
+ logLlmCall?(llmCall: LlmCall): Promisable<void>;
16
21
  };
17
22
  /**
18
23
  * Executes a pipeline task that requires mapping or iterating over subvalues of a parameter (such as rows in a CSV).
@@ -3,6 +3,7 @@ import type { PipelineJson } from '../../pipeline/PipelineJson/PipelineJson';
3
3
  import type { TaskJson } from '../../pipeline/PipelineJson/TaskJson';
4
4
  import type { Parameters, string_parameter_name } from '../../types/typeAliases';
5
5
  import type { TODO_string } from '../../utils/organization/TODO_string';
6
+ import type { LlmCall } from '../../types/LlmCall';
6
7
  import type { ExecutionReportJson } from '../execution-report/ExecutionReportJson';
7
8
  import type { PipelineExecutorResult } from '../PipelineExecutorResult';
8
9
  import type { CreatePipelineExecutorOptions } from './00-CreatePipelineExecutorOptions';
@@ -50,6 +51,10 @@ export type ExecuteAttemptsOptions = Required<Omit<CreatePipelineExecutorOptions
50
51
  * Callback invoked with partial results as the execution progresses.
51
52
  */
52
53
  onProgress(newOngoingResult: PartialDeep<PipelineExecutorResult>): Promisable<void>;
54
+ /**
55
+ * Optional callback invoked with each LLM call.
56
+ */
57
+ logLlmCall?(llmCall: LlmCall): Promisable<void>;
53
58
  /**
54
59
  * The execution report object, which is updated during execution.
55
60
  */
@@ -0,0 +1,8 @@
1
+ import type { LlmCall } from '../../types/LlmCall';
2
+ import type { ExecutionPromptReportJson } from '../execution-report/ExecutionPromptReportJson';
3
+ /**
4
+ * Logs an LLM call with the given report.
5
+ *
6
+ * @private internal utility of `createPipelineExecutor`
7
+ */
8
+ export declare function logLlmCall(logLlmCall: (llmCall: LlmCall) => void, report: ExecutionPromptReportJson): void;