@promptbook/openai 0.103.0-4 → 0.103.0-41

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 (145) hide show
  1. package/README.md +64 -30
  2. package/esm/index.es.js +166 -8
  3. package/esm/index.es.js.map +1 -1
  4. package/esm/typings/books/index.d.ts +0 -81
  5. package/esm/typings/src/_packages/browser.index.d.ts +6 -0
  6. package/esm/typings/src/_packages/cli.index.d.ts +4 -0
  7. package/esm/typings/src/_packages/components.index.d.ts +12 -8
  8. package/esm/typings/src/_packages/core.index.d.ts +30 -10
  9. package/esm/typings/src/_packages/node.index.d.ts +4 -2
  10. package/esm/typings/src/_packages/remote-server.index.d.ts +2 -0
  11. package/esm/typings/src/_packages/types.index.d.ts +18 -2
  12. package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
  13. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +1 -0
  14. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +16 -0
  15. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +76 -15
  16. package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
  17. package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
  18. package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
  19. package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
  20. package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
  21. package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
  22. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
  23. package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
  24. package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
  25. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
  26. package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
  27. package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
  28. package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
  29. package/esm/typings/src/book-components/_common/react-utils/classNames.d.ts +1 -1
  30. package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
  31. package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
  32. package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
  33. package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
  34. package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
  35. package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
  36. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
  37. package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
  38. package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
  39. package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
  40. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
  41. package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
  42. package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
  43. package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
  44. package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
  45. package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
  46. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
  47. package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
  48. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
  49. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +36 -0
  50. package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.d.ts +88 -0
  51. package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
  52. package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
  53. package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
  54. package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
  55. package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
  56. package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
  57. package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
  58. package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
  59. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
  60. package/esm/typings/src/config.d.ts +22 -2
  61. package/esm/typings/src/errors/0-index.d.ts +3 -0
  62. package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
  63. package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
  64. package/esm/typings/src/execution/Executables.d.ts +3 -0
  65. package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
  66. package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
  67. package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
  68. package/esm/typings/src/execution/LlmExecutionTools.d.ts +7 -1
  69. package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
  70. package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
  71. package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
  72. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
  73. package/esm/typings/src/execution/utils/logLlmCall.d.ts +8 -0
  74. package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
  75. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
  76. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
  77. package/esm/typings/src/llm-providers/agent/Agent.d.ts +49 -0
  78. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +9 -4
  79. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +17 -0
  80. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +16 -0
  81. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
  82. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +28 -0
  83. package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
  84. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  85. package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
  86. package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
  87. package/esm/typings/src/playground/playground.d.ts +0 -3
  88. package/esm/typings/src/playground/playground1.d.ts +2 -0
  89. package/esm/typings/src/remote-server/startAgentServer.d.ts +23 -0
  90. package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
  91. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +22 -8
  92. package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
  93. package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
  94. package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
  95. package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
  96. package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
  97. package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
  98. package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
  99. package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
  100. package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
  101. package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
  102. package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
  103. package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
  104. package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
  105. package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
  106. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
  107. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +29 -0
  108. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
  109. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
  110. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +13 -0
  111. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
  112. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +13 -0
  113. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
  114. package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
  115. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
  116. package/esm/typings/src/types/LlmCall.d.ts +20 -0
  117. package/esm/typings/src/types/Updatable.d.ts +19 -0
  118. package/esm/typings/src/types/typeAliases.d.ts +1 -1
  119. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
  120. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
  121. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
  122. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
  123. package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
  124. package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
  125. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +21 -0
  126. package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
  127. package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
  128. package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
  129. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
  130. package/esm/typings/src/version.d.ts +1 -1
  131. package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
  132. package/package.json +7 -6
  133. package/umd/index.umd.js +169 -12
  134. package/umd/index.umd.js.map +1 -1
  135. package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
  136. package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
  137. package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
  138. package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
  139. package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
  140. package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
  141. /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → collection/agent-collection/constructors/AgentCollectionInDirectory.test.d.ts} +0 -0
  142. /package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
  143. /package/esm/typings/src/collection/{constructors/createCollectionFromJson.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
  144. /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts} +0 -0
  145. /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
@@ -1,19 +1,5 @@
1
- import type { string_book } from '../../book-2.0/agent-source/string_book';
2
- import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
1
  import { AgentLlmExecutionTools } from './AgentLlmExecutionTools';
4
- /**
5
- * Options for creating AgentLlmExecutionTools
6
- */
7
- export type CreateAgentLlmExecutionToolsOptions = {
8
- /**
9
- * The underlying LLM execution tools to wrap
10
- */
11
- llmTools: LlmExecutionTools;
12
- /**
13
- * The agent source string that defines the agent's behavior
14
- */
15
- agentSource: string_book;
16
- };
2
+ import { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecutionToolsOptions';
17
3
  /**
18
4
  * Creates new AgentLlmExecutionTools that wrap underlying LLM tools with agent-specific behavior
19
5
  *
@@ -23,7 +9,3 @@ export declare const createAgentLlmExecutionTools: ((options: CreateAgentLlmExec
23
9
  packageName: string;
24
10
  className: string;
25
11
  };
26
- /**
27
- * TODO: [🧠] Consider adding validation for agent source format
28
- * TODO: [🧠] Consider adding options for caching behavior
29
- */
@@ -9,10 +9,17 @@ import { OpenAiExecutionTools } from './OpenAiExecutionTools';
9
9
  *
10
10
  * This is useful for calling OpenAI API with a single assistant, for more wide usage use `OpenAiExecutionTools`.
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
  * @public exported from `@promptbook/openai`
13
19
  */
14
20
  export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools implements LlmExecutionTools {
15
21
  private readonly assistantId;
22
+ private readonly isCreatingNewAssistantsAllowed;
16
23
  /**
17
24
  * Creates OpenAI Execution Tools.
18
25
  *
@@ -25,6 +32,27 @@ export declare class OpenAiAssistantExecutionTools extends OpenAiExecutionTools
25
32
  * Calls OpenAI API to use a chat model.
26
33
  */
27
34
  callChatModel(prompt: Pick<Prompt, 'content' | 'parameters' | 'modelRequirements' | 'format'>): Promise<ChatPromptResult>;
35
+ playground(): Promise<void>;
36
+ createNewAssistant(options: {
37
+ /**
38
+ * Name of the new assistant
39
+ */
40
+ readonly name: string_title;
41
+ /**
42
+ * Instructions for the new assistant
43
+ */
44
+ readonly instructions: string_markdown;
45
+ }): Promise<OpenAiAssistantExecutionTools>;
46
+ /**
47
+ * Discriminant for type guards
48
+ */
49
+ protected get discriminant(): string;
50
+ /**
51
+ * Type guard to check if given `LlmExecutionTools` are instanceof `OpenAiAssistantExecutionTools`
52
+ *
53
+ * Note: This is useful when you can possibly have multiple versions of `@promptbook/openai` installed
54
+ */
55
+ static isOpenAiAssistantExecutionTools(llmExecutionTools: LlmExecutionTools): llmExecutionTools is OpenAiAssistantExecutionTools;
28
56
  }
29
57
  /**
30
58
  * TODO: [🧠][🧙‍♂️] Maybe there can be some wizard for those who want to use just OpenAI
@@ -7,8 +7,14 @@ import type { OpenAiCompatibleExecutionToolsOptions } from './OpenAiCompatibleEx
7
7
  * @public exported from `@promptbook/openai`
8
8
  */
9
9
  export type OpenAiAssistantExecutionToolsOptions = OpenAiCompatibleExecutionToolsOptions & ClientOptions & {
10
+ /**
11
+ * Whether creating new assistants is allowed
12
+ *
13
+ * @default false
14
+ */
15
+ readonly isCreatingNewAssistantsAllowed?: boolean;
10
16
  /**
11
17
  * Which assistant to use
12
18
  */
13
- assistantId: string_token;
19
+ readonly assistantId: string_token;
14
20
  };
@@ -1,4 +1,4 @@
1
- import type { PipelineCollection } from '../../collection/PipelineCollection';
1
+ import type { PipelineCollection } from '../../collection/pipeline-collection/pipeline-collection/PipelineCollection';
2
2
  /**
3
3
  * Get pipeline collection for Untitled Promptbook project
4
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,5 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -1,5 +1,2 @@
1
1
  #!/usr/bin/env ts-node
2
2
  export {};
3
- /**
4
- * Note: [⚫] Code in this file should never be published in any package
5
- */
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env ts-node
2
+ export {};
@@ -0,0 +1,23 @@
1
+ import { TODO_any } from '../_packages/types.index';
2
+ import { number_port } from '../types/typeAliases';
3
+ type AgentsServerOptions = {
4
+ /**
5
+ * !!!
6
+ *
7
+ * @default 4440
8
+ */
9
+ port: number_port;
10
+ };
11
+ /**
12
+ * !!!!!
13
+ * Remote server is a proxy server that uses its execution tools internally and exposes the executor interface externally.
14
+ *
15
+ * You can simply use `RemoteExecutionTools` on client-side javascript and connect to your remote server.
16
+ * This is useful to make all logic on browser side but not expose your API keys or no need to use customer's GPU.
17
+ *
18
+ * @see https://github.com/webgptorg/promptbook#remote-server
19
+ * @public exported from `@promptbook/remote-server`
20
+ * <- TODO: !!!! Maybe change to `@promptbook/agent-server`
21
+ */
22
+ export declare function startAgentServer(options: AgentsServerOptions): Promise<TODO_any>;
23
+ export {};
@@ -11,11 +11,14 @@ import type { RemoteServerOptions } from './types/RemoteServerOptions';
11
11
  */
12
12
  export declare function startRemoteServer<TCustomOptions = undefined>(options: RemoteServerOptions<TCustomOptions>): RemoteServer;
13
13
  /**
14
+ * TODO !!!! Add agent
15
+ * TODO: !!!! Allow to chat with agents directly via remote server
16
+ * TODO: [🕋] Use here `aboutPromptbookInformation`
14
17
  * TODO: [🌡] Add CORS and security - probably via `helmet`
15
18
  * TODO: Split this file into multiple functions - handler for each request
16
19
  * TODO: Maybe use `$exportJson`
17
20
  * TODO: [🧠][🛍] Maybe not `isAnonymous: boolean` BUT `mode: 'ANONYMOUS'|'COLLECTION'`
18
- * TODO: [⚖] Expose the collection to be able to connect to same collection via createCollectionFromUrl
21
+ * TODO: [⚖] Expose the collection to be able to connect to same collection via createPipelineCollectionFromUrl
19
22
  * TODO: Handle progress - support streaming
20
23
  * TODO: [🗯] Do not hang up immediately but wait until client closes OR timeout
21
24
  * TODO: [🗯] Timeout on chat to free up resources
@@ -1,17 +1,13 @@
1
1
  import type { Request, Response } from 'express';
2
2
  import type { Promisable } from 'type-fest';
3
- import type { PipelineCollection } from '../../collection/PipelineCollection';
3
+ import { really_any } from '../../_packages/types.index';
4
+ import type { PipelineCollection } from '../../collection/pipeline-collection/PipelineCollection';
4
5
  import { AuthenticationError } from '../../errors/AuthenticationError';
5
6
  import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
6
7
  import type { ExecutionTools } from '../../execution/ExecutionTools';
7
8
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
8
- import type { string_app_id } from '../../types/typeAliases';
9
- import type { string_email } from '../../types/typeAliases';
10
- import type { string_password } from '../../types/typeAliases';
11
- import type { string_token } from '../../types/typeAliases';
12
- import type { string_user_id } from '../../types/typeAliases';
13
- import type { ApplicationModeIdentification } from '../socket-types/_subtypes/Identification';
14
- import type { Identification } from '../socket-types/_subtypes/Identification';
9
+ import type { string_app_id, string_email, string_password, string_token, string_user_id } from '../../types/typeAliases';
10
+ import type { ApplicationModeIdentification, Identification } from '../socket-types/_subtypes/Identification';
15
11
  /**
16
12
  * Options for configuring the Promptbook remote server.
17
13
  *
@@ -31,6 +27,24 @@ export type RemoteServerOptions<TCustomOptions> = CommonToolsOptions & {
31
27
  * @property {number} port The port number the server will listen on.
32
28
  */
33
29
  readonly port: number;
30
+ /**
31
+ * CORS options to apply to all endpoints (REST, UI, socket.io, etc.).
32
+ * Accepts the same options as the `cors` npm package and socket.io's CORS config.
33
+ * If not provided, defaults to permissive CORS (origin: '*').
34
+ * @see https://www.npmjs.com/package/cors
35
+ * @see https://socket.io/docs/v4/server-options/#cors
36
+ */
37
+ readonly cors?: {
38
+ origin?: string | string[] | boolean;
39
+ methods?: string | string[];
40
+ allowedHeaders?: string | string[];
41
+ exposedHeaders?: string | string[];
42
+ credentials?: boolean;
43
+ maxAge?: number;
44
+ preflightContinue?: boolean;
45
+ optionsSuccessStatus?: number;
46
+ [key: string]: really_any;
47
+ };
34
48
  /**
35
49
  * Enable rich UI (React + Tailwind) at `/` path.
36
50
  * Default: true
@@ -1,20 +1,9 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { BoilerplateScraper } from './BoilerplateScraper';
4
1
  /**
5
2
  * Constructor of `BoilerplateScraper`
6
3
  *
7
4
  * @public exported from `@promptbook/boilerplate`
8
5
  */
9
- export declare const createBoilerplateScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => BoilerplateScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
10
- title: string;
11
- packageName: string;
12
- className: string;
13
- mimeTypes: string[];
14
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
- isAvailableInBrowser: false;
16
- requiredExecutables: never[];
17
- }>;
6
+ export declare const createBoilerplateScraper: any;
18
7
  /**
19
8
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
20
9
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const boilerplateScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const boilerplateScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,20 +1,9 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { DocumentScraper } from './DocumentScraper';
4
1
  /**
5
2
  * Creates a scraper for document content.
6
3
  *
7
4
  * @public exported from `@promptbook/documents`
8
5
  */
9
- export declare const createDocumentScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => DocumentScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
10
- title: string;
11
- packageName: string;
12
- className: string;
13
- mimeTypes: string[];
14
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
- isAvailableInBrowser: false;
16
- requiredExecutables: "Pandoc"[];
17
- }>;
6
+ export declare const createDocumentScraper: any;
18
7
  /**
19
8
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
20
9
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const documentScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: "Pandoc"[];
15
- }>;
7
+ export declare const documentScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { LegacyDocumentScraper } from './LegacyDocumentScraper';
4
1
  /**
5
2
  * Creates a scraper for legacy document formats (.doc, .rtf, etc).
6
3
  * Uses LibreOffice for conversion to extract content from older document formats.
7
4
  *
8
5
  * @public exported from `@promptbook/legacy-documents`
9
6
  */
10
- export declare const createLegacyDocumentScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => LegacyDocumentScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: ("Pandoc" | "LibreOffice")[];
18
- }>;
7
+ export declare const createLegacyDocumentScraper: any;
19
8
  /**
20
9
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
21
10
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const legacyDocumentScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: ("Pandoc" | "LibreOffice")[];
15
- }>;
7
+ export declare const legacyDocumentScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,20 +1,9 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { MarkdownScraper } from './MarkdownScraper';
4
1
  /**
5
2
  * Creates a scraper for markdown content.
6
3
  *
7
4
  * @public exported from `@promptbook/markdown-utils`
8
5
  */
9
- export declare const createMarkdownScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => MarkdownScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
10
- title: string;
11
- packageName: string;
12
- className: string;
13
- mimeTypes: string[];
14
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
15
- isAvailableInBrowser: true;
16
- requiredExecutables: never[];
17
- }>;
6
+ export declare const createMarkdownScraper: any;
18
7
  /**
19
8
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
20
9
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const markdownScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: true;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const markdownScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { MarkitdownScraper } from './MarkitdownScraper';
4
1
  /**
5
2
  * Constructor of `MarkitdownScraper`
6
3
  *
7
4
  * @public exported from `@promptbook/markitdown`
8
5
  * @public exported from `@promptbook/pdf`
9
6
  */
10
- export declare const createMarkitdownScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => MarkitdownScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: never[];
18
- }>;
7
+ export declare const createMarkitdownScraper: any;
19
8
  /**
20
9
  * TODO: [🧠][🌜] Export only from `@promptbook/markitdown` or `@promptbook/pdf` NOT both
21
10
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const markitdownScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const markitdownScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { PdfScraper } from './PdfScraper';
4
1
  /**
5
2
  * Factory function to create an instance of PdfScraper.
6
3
  * It bundles the scraper class with its metadata.
7
4
  *
8
5
  * @public exported from `@promptbook/pdf`
9
6
  */
10
- export declare const createPdfScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => PdfScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: never[];
18
- }>;
7
+ export declare const createPdfScraper: any;
19
8
  /**
20
9
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
21
10
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const pdfScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const pdfScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,21 +1,10 @@
1
- import type { ExecutionTools } from '../../execution/ExecutionTools';
2
- import type { PrepareAndScrapeOptions } from '../../prepare/PrepareAndScrapeOptions';
3
- import { WebsiteScraper } from './WebsiteScraper';
4
1
  /**
5
2
  * Factory function to create an instance of WebsiteScraper.
6
3
  * It bundles the scraper class with its metadata.
7
4
  *
8
5
  * @public exported from `@promptbook/website-crawler`
9
6
  */
10
- export declare const createWebsiteScraper: ((tools: Pick<ExecutionTools, 'llm'>, options: PrepareAndScrapeOptions) => WebsiteScraper) & import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
11
- title: string;
12
- packageName: string;
13
- className: string;
14
- mimeTypes: string[];
15
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
16
- isAvailableInBrowser: false;
17
- requiredExecutables: never[];
18
- }>;
7
+ export declare const createWebsiteScraper: any;
19
8
  /**
20
9
  * TODO: [🎶] Naming "constructor" vs "creator" vs "factory"
21
10
  */
@@ -4,15 +4,7 @@ import type { Registration } from '../../utils/misc/$Register';
4
4
  *
5
5
  * @private within the scraper directory
6
6
  */
7
- export declare const websiteScraperMetadata: import("type-fest/source/readonly-deep").ReadonlyObjectDeep<{
8
- title: string;
9
- packageName: string;
10
- className: string;
11
- mimeTypes: string[];
12
- documentationUrl: "https://github.com/webgptorg/promptbook/discussions/@@";
13
- isAvailableInBrowser: false;
14
- requiredExecutables: never[];
15
- }>;
7
+ export declare const websiteScraperMetadata: any;
16
8
  /**
17
9
  * Registration of known scraper metadata
18
10
  *
@@ -1,4 +1,5 @@
1
1
  import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
+ import { $side_effect } from '../../utils/organization/$side_effect';
2
3
  /**
3
4
  * Stores data in .env variables
4
5
  *
@@ -29,7 +30,7 @@ export declare class $EnvStorage<TItem> implements PromptbookStorage<TItem> {
29
30
  /**
30
31
  * Sets the value of the pair identified by key to value, creating a new key/value pair if none existed for key previously.
31
32
  */
32
- setItem(key: string, value: TItem): Promise<void>;
33
+ setItem(key: string, value: TItem): Promise<$side_effect>;
33
34
  /**
34
35
  * Removes the key/value pair with the given key from the list associated with the object, if a key/value pair with the given key exists.
35
36
  */
@@ -0,0 +1,29 @@
1
+ import { Promisable } from 'type-fest';
2
+ import { BookTranspilerOptions, ExecutionTools, Registered, string_book, string_name, string_script, string_title } from '../../_packages/types.index';
3
+ /**
4
+ * Transpiler takes a book and transpiles it into another format (e.g., Langchain).
5
+ */
6
+ export type BookTranspiler = Registered & {
7
+ /**
8
+ * The name of the transpiler.
9
+ * It is used to identify the transpiler in the register.
10
+ *
11
+ * @example 'python-langchain'
12
+ */
13
+ readonly name: string_name;
14
+ /**
15
+ * The title of the transpiler.
16
+ * It is used to display the transpiler in the UI.
17
+ *
18
+ * @example 'Python Langchain'
19
+ */
20
+ readonly title: string_title;
21
+ /**
22
+ * Transpiles a book.
23
+ *
24
+ * @param book book to transpile
25
+ * @param options additional options for the transpiler
26
+ * @returns transpiled book
27
+ */
28
+ transpileBook(book: string_book, tools: ExecutionTools, options?: BookTranspilerOptions): Promisable<string_script>;
29
+ };
@@ -0,0 +1,18 @@
1
+ import { CommonToolsOptions } from '../../execution/CommonToolsOptions';
2
+ /**
3
+ * Options for the BookTranspiler.
4
+ */
5
+ export type BookTranspilerOptions = Omit<CommonToolsOptions, 'maxRequestsPerMinute'> & {
6
+ /**
7
+ * If true, the transpiler will log verbose information to the console.
8
+ *
9
+ * @default false
10
+ */
11
+ readonly isVerbose?: boolean;
12
+ /**
13
+ * If true, the transpiler will include comments in the output.
14
+ *
15
+ * @default true
16
+ */
17
+ readonly shouldIncludeComments?: boolean;
18
+ };
@@ -0,0 +1,15 @@
1
+ import { $Register } from '../../../utils/misc/$Register';
2
+ import { BookTranspiler } from '../BookTranspiler';
3
+ /**
4
+ * Register for book transpilers.
5
+ *
6
+ * Note: `$` is used to indicate that this interacts with the global scope
7
+ * @singleton Only one instance of each register is created per build, but there can be more instances across different builds or environments.
8
+ * @see https://github.com/webgptorg/promptbook/issues/249
9
+ *
10
+ * @public exported from `@promptbook/core`
11
+ */
12
+ export declare const $bookTranspilersRegister: $Register<BookTranspiler>;
13
+ /**
14
+ * TODO: [®] DRY Register logic
15
+ */
@@ -0,0 +1,13 @@
1
+ import { BookTranspilerOptions, ExecutionTools, string_book, string_markdown } from '../../_packages/types.index';
2
+ /**
3
+ * Converts a book into a 1:1 formatted markdown
4
+ *
5
+ * @public exported from `@promptbook/core`
6
+ */
7
+ export declare const FormattedBookInMarkdownTranspiler: {
8
+ readonly name: "formatted-book-in-markdown";
9
+ readonly title: "Formatted Book in Markdown";
10
+ readonly packageName: "@promptbook/core";
11
+ readonly className: "FormattedBookInMarkdownTranspiler";
12
+ readonly transpileBook: (book: string_book, tools: ExecutionTools, options?: BookTranspilerOptions) => string_markdown;
13
+ };
@@ -0,0 +1,15 @@
1
+ import { Registration } from '../../_packages/types.index';
2
+ /**
3
+ * Registration of transpiler
4
+ *
5
+ * Warning: This is not useful for the end user, it is just a side effect of the mechanism that handles all available LLM tools
6
+ *
7
+ * @public exported from `@promptbook/wizard`
8
+ * @public exported from `@promptbook/cli`
9
+ *
10
+ * TODO: !!! Which package should export this?
11
+ */
12
+ export declare const _FormattedBookInMarkdownTranspilerRegistration: Registration;
13
+ /**
14
+ * Note: [💞] Ignore a discrepancy between file name and entity name
15
+ */
@@ -0,0 +1,13 @@
1
+ import { BookTranspilerOptions, ExecutionTools, string_book, string_script } from '../../_packages/types.index';
2
+ /**
3
+ * Transpiler to Javascript code using OpenAI SDK.
4
+ *
5
+ * @public exported from `@promptbook/core`
6
+ */
7
+ export declare const OpenAiSdkTranspiler: {
8
+ readonly name: "openai-sdk";
9
+ readonly title: "OpenAI SDK";
10
+ readonly packageName: "@promptbook/core";
11
+ readonly className: "OpenAiSdkTranspiler";
12
+ readonly transpileBook: (book: string_book, tools: ExecutionTools, options?: BookTranspilerOptions) => Promise<string_script>;
13
+ };
@@ -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
+ */