@promptbook/openai 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.
- package/README.md +64 -30
- package/esm/index.es.js +166 -8
- package/esm/index.es.js.map +1 -1
- package/esm/typings/books/index.d.ts +0 -81
- package/esm/typings/src/_packages/browser.index.d.ts +6 -0
- package/esm/typings/src/_packages/cli.index.d.ts +4 -0
- package/esm/typings/src/_packages/components.index.d.ts +12 -8
- package/esm/typings/src/_packages/core.index.d.ts +30 -10
- package/esm/typings/src/_packages/node.index.d.ts +4 -2
- package/esm/typings/src/_packages/types.index.d.ts +18 -2
- package/esm/typings/src/_packages/wizard.index.d.ts +4 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +1 -0
- package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +16 -0
- package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +76 -15
- package/esm/typings/src/book-components/BookEditor/BookEditorActionbar.d.ts +14 -0
- package/esm/typings/src/book-components/BookEditor/BookEditorMonaco.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/MarkdownContent/MarkdownContent.d.ts +15 -0
- package/esm/typings/src/book-components/Chat/MockedChat/MockedChat.d.ts +5 -0
- package/esm/typings/src/book-components/Chat/save/html/htmlSaveFormatDefinition.d.ts +1 -0
- package/esm/typings/src/book-components/Chat/save/pdf/pdfSaveFormatDefinition.d.ts +4 -0
- package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/GenericQrCode.d.ts +10 -0
- package/esm/typings/src/book-components/Qr/PromptbookQrCode.d.ts +18 -0
- package/esm/typings/src/book-components/Qr/useQrCode.d.ts +15 -0
- package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +15 -0
- package/esm/typings/src/book-components/_common/Modal/Modal.d.ts +2 -2
- package/esm/typings/src/book-components/_common/Tooltip/Tooltip.d.ts +47 -0
- package/esm/typings/src/book-components/_common/react-utils/classNames.d.ts +1 -1
- package/esm/typings/src/book-components/icons/AboutIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/CloseIcon.d.ts +4 -8
- package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +9 -0
- package/esm/typings/src/book-components/icons/ExitFullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/FullscreenIcon.d.ts +7 -0
- package/esm/typings/src/book-components/icons/MenuIcon.d.ts +12 -0
- package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/about.d.ts +3 -1
- package/esm/typings/src/cli/cli-commands/hello.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-models.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/login.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/prettify.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/run.d.ts +2 -1
- package/esm/typings/src/cli/cli-commands/{start-server.d.ts → start-agents-server.d.ts} +3 -2
- package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +15 -0
- package/esm/typings/src/cli/cli-commands/test-command.d.ts +2 -1
- package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +2 -1
- package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +36 -0
- package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.d.ts +88 -0
- package/esm/typings/src/collection/{PipelineCollection.d.ts → pipeline-collection/PipelineCollection.d.ts} +7 -3
- package/esm/typings/src/collection/{SimplePipelineCollection.d.ts → pipeline-collection/SimplePipelineCollection.d.ts} +5 -5
- package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.d.ts} +8 -11
- package/esm/typings/src/collection/pipeline-collection/constructors/createPipelineCollectionFromJson.d.ts +13 -0
- package/esm/typings/src/collection/{constructors/createCollectionFromPromise.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.d.ts} +6 -5
- package/esm/typings/src/collection/{constructors/createCollectionFromUrl.d.ts → pipeline-collection/constructors/createPipelineCollectionFromUrl.d.ts} +3 -3
- package/esm/typings/src/collection/{constructors/createSubcollection.d.ts → pipeline-collection/constructors/createPipelineSubcollection.d.ts} +3 -3
- package/esm/typings/src/collection/pipeline-collection/pipelineCollectionToJson.d.ts +13 -0
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +4 -5
- package/esm/typings/src/config.d.ts +22 -2
- package/esm/typings/src/errors/0-index.d.ts +3 -0
- package/esm/typings/src/errors/NotAllowed.d.ts +9 -0
- package/esm/typings/src/execution/AvailableModel.d.ts +1 -0
- package/esm/typings/src/execution/Executables.d.ts +3 -0
- package/esm/typings/src/execution/ExecutionTask.d.ts +12 -3
- package/esm/typings/src/execution/ExecutionTools.d.ts +5 -0
- package/esm/typings/src/execution/FilesystemTools.d.ts +1 -1
- package/esm/typings/src/execution/LlmExecutionTools.d.ts +7 -1
- package/esm/typings/src/execution/createPipelineExecutor/10-executePipeline.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/20-executeTask.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/30-executeFormatSubvalues.d.ts +5 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +5 -0
- package/esm/typings/src/execution/utils/logLlmCall.d.ts +8 -0
- package/esm/typings/src/execution/utils/usage-constants.d.ts +4 -124
- package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +2 -1
- package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +2 -1
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +49 -0
- package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +9 -4
- package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +17 -0
- package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +16 -0
- package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -19
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionTools.d.ts +28 -0
- package/esm/typings/src/llm-providers/openai/OpenAiAssistantExecutionToolsOptions.d.ts +7 -1
- package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
- package/esm/typings/src/playground/permanent/_boilerplate.d.ts +5 -0
- package/esm/typings/src/playground/permanent/agent-with-browser-playground.d.ts +5 -0
- package/esm/typings/src/playground/playground.d.ts +0 -3
- package/esm/typings/src/playground/playground1.d.ts +2 -0
- package/esm/typings/src/remote-server/startRemoteServer.d.ts +4 -1
- package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +22 -8
- package/esm/typings/src/scrapers/_boilerplate/createBoilerplateScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/_boilerplate/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document/createDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/document-legacy/createLegacyDocumentScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/document-legacy/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markdown/createMarkdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/markitdown/createMarkitdownScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/markitdown/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/pdf/createPdfScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/pdf/register-metadata.d.ts +1 -9
- package/esm/typings/src/scrapers/website/createWebsiteScraper.d.ts +1 -12
- package/esm/typings/src/scrapers/website/register-metadata.d.ts +1 -9
- package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +2 -1
- package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +29 -0
- package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +18 -0
- package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +15 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +13 -0
- package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +15 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +13 -0
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.test.d.ts +1 -0
- package/esm/typings/src/transpilers/openai-sdk/playground/playground.d.ts +5 -0
- package/esm/typings/src/transpilers/openai-sdk/register.d.ts +15 -0
- package/esm/typings/src/types/LlmCall.d.ts +20 -0
- package/esm/typings/src/types/Updatable.d.ts +19 -0
- package/esm/typings/src/types/typeAliases.d.ts +1 -1
- package/esm/typings/src/utils/execCommand/$execCommand.d.ts +2 -1
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +2 -1
- package/esm/typings/src/utils/files/$induceBookDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/$induceFileDownload.d.ts +13 -0
- package/esm/typings/src/utils/files/ObjectUrl.d.ts +46 -0
- package/esm/typings/src/utils/files/listAllFiles.d.ts +2 -3
- package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +21 -0
- package/esm/typings/src/utils/misc/injectCssModuleIntoShadowRoot.d.ts +1 -0
- package/esm/typings/src/utils/misc/xAboutPromptbookInformation.d.ts +13 -0
- package/esm/typings/src/utils/organization/$side_effect.d.ts +7 -0
- package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +2 -1
- package/esm/typings/src/version.d.ts +1 -1
- package/esm/typings/src/wizard/$getCompiledBook.d.ts +1 -2
- package/package.json +7 -6
- package/umd/index.umd.js +169 -12
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-components/BookEditor/BookEditorInner.d.ts +0 -5
- package/esm/typings/src/book-components/BookEditor/BookEditorWrapper.d.ts +0 -9
- package/esm/typings/src/book-components/BookEditor/config.d.ts +0 -10
- package/esm/typings/src/book-components/Chat/utils/renderMarkdown.d.ts +0 -21
- package/esm/typings/src/collection/collectionToJson.d.ts +0 -13
- package/esm/typings/src/collection/constructors/createCollectionFromJson.d.ts +0 -13
- /package/esm/typings/src/{book-components/Chat/utils/renderMarkdown.test.d.ts → collection/agent-collection/constructors/AgentCollectionInDirectory.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{constructors/createCollectionFromDirectory.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromDirectory.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{constructors/createCollectionFromJson.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromJson.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{constructors/createCollectionFromPromise.test.d.ts → pipeline-collection/constructors/createPipelineCollectionFromPromise.test.d.ts} +0 -0
- /package/esm/typings/src/collection/{collectionToJson.test.d.ts → pipeline-collection/pipelineCollectionToJson.test.d.ts} +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ExecutionPromptReportJson } from '../execution/execution-report/ExecutionPromptReportJson';
|
|
2
|
+
import type { string_model_name } from './typeAliases';
|
|
3
|
+
/**
|
|
4
|
+
* Represents a single LLM call with its report.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/webgptorg/promptbook/issues/24
|
|
7
|
+
*/
|
|
8
|
+
export type LlmCall = {
|
|
9
|
+
/**
|
|
10
|
+
* The name of the model used for the call.
|
|
11
|
+
*/
|
|
12
|
+
readonly modelName: string_model_name;
|
|
13
|
+
/**
|
|
14
|
+
* The report of the LLM execution.
|
|
15
|
+
*/
|
|
16
|
+
readonly report: ExecutionPromptReportJson;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* TODO: !!! Maybe different shape of LlmCall
|
|
20
|
+
*/
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
|
2
|
+
/**
|
|
3
|
+
* A type that represents a value that can be updated over time:
|
|
4
|
+
*
|
|
5
|
+
* 1) It can be a static value of type `TValue`
|
|
6
|
+
* 2) Or a `BehaviorSubject` that emits values of type `TValue`
|
|
7
|
+
* 3) Or pair of `[getValue, setValue]` functions for getting and setting the value
|
|
8
|
+
*/
|
|
9
|
+
export type Updatable<TValue> = TValue | BehaviorSubject<TValue> | [TValue, (value: TValue) => void];
|
|
10
|
+
/**
|
|
11
|
+
* Restricts an Updatable to a (2) BehaviorSubject variant
|
|
12
|
+
*
|
|
13
|
+
* @see Updatable
|
|
14
|
+
* @private internal utility <- TODO: [🧠] Maybe export from `@promptbook/types`
|
|
15
|
+
*/
|
|
16
|
+
export declare function asUpdatableSubject<TValue>(value: Updatable<TValue>): BehaviorSubject<TValue>;
|
|
17
|
+
/**
|
|
18
|
+
* TODO: [🧠] Maybe `BehaviorSubject` is too heavy for this use case, maybe just tuple `[value,setValue]` is enough
|
|
19
|
+
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { $side_effect } from '../organization/$side_effect';
|
|
1
2
|
import type { ExecCommandOptions } from './ExecCommandOptions';
|
|
2
3
|
/**
|
|
3
4
|
* Run one command in a shell
|
|
@@ -10,7 +11,7 @@ import type { ExecCommandOptions } from './ExecCommandOptions';
|
|
|
10
11
|
*
|
|
11
12
|
* @public exported from `@promptbook/node`
|
|
12
13
|
*/
|
|
13
|
-
export declare function $execCommand(options: ExecCommandOptions): Promise
|
|
14
|
+
export declare function $execCommand(options: ExecCommandOptions): Promise<$side_effect & string>;
|
|
14
15
|
/**
|
|
15
16
|
* Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
|
|
16
17
|
*/
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { $side_effect } from '../organization/$side_effect';
|
|
1
2
|
/**
|
|
2
3
|
* Run multiple commands in a shell in sequence
|
|
3
4
|
*
|
|
@@ -8,7 +9,7 @@
|
|
|
8
9
|
*
|
|
9
10
|
* @public exported from `@promptbook/node`
|
|
10
11
|
*/
|
|
11
|
-
export declare function $execCommands({ commands, cwd, crashOnError, }: {
|
|
12
|
+
export declare function $execCommands({ commands, cwd, crashOnError, }: $side_effect & {
|
|
12
13
|
readonly commands: string[];
|
|
13
14
|
readonly cwd: string;
|
|
14
15
|
readonly crashOnError?: boolean;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { string_book } from '../../_packages/types.index';
|
|
2
|
+
import { $side_effect } from '../organization/$side_effect';
|
|
3
|
+
/**
|
|
4
|
+
* Download a Book in a browser
|
|
5
|
+
*
|
|
6
|
+
* Note: `$` is used to indicate that this function is not a pure function - its purpose is to cause a side effect (download a file)
|
|
7
|
+
*
|
|
8
|
+
* @public exported from `@promptbook/browser`
|
|
9
|
+
*/
|
|
10
|
+
export declare function $induceBookDownload(book: string_book): Promise<$side_effect>;
|
|
11
|
+
/**
|
|
12
|
+
* Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
|
|
13
|
+
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { string_url } from '../../types/typeAliases';
|
|
2
|
+
import { $side_effect } from '../organization/$side_effect';
|
|
3
|
+
/**
|
|
4
|
+
* Download a File in a browser
|
|
5
|
+
*
|
|
6
|
+
* Note: `$` is used to indicate that this function is not a pure function - its purpose is to cause a side effect (download a file)
|
|
7
|
+
*
|
|
8
|
+
* @public exported from `@promptbook/browser`
|
|
9
|
+
*/
|
|
10
|
+
export declare function $induceFileDownload(fileOrBlobOrUrl: File | Blob | URL | string_url): Promise<$side_effect>;
|
|
11
|
+
/**
|
|
12
|
+
* Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
|
|
13
|
+
*/
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { IDestroyable, Registration } from 'destroyable';
|
|
2
|
+
import { string_mime_type, string_url } from '../../types/typeAliases';
|
|
3
|
+
/**
|
|
4
|
+
* Converts Blob, File or MediaSource to url using URL.createObjectURL
|
|
5
|
+
*
|
|
6
|
+
* @public exported from `@promptbook/browser`
|
|
7
|
+
*/
|
|
8
|
+
export declare class ObjectUrl extends Registration implements IDestroyable {
|
|
9
|
+
readonly src: string_url;
|
|
10
|
+
private constructor();
|
|
11
|
+
/**
|
|
12
|
+
* Creates ObjectUrl from multiple input types
|
|
13
|
+
* Note: DO NOT forget to call destroy() when you are done with it
|
|
14
|
+
*/
|
|
15
|
+
static from(source: Blob | File | MediaSource | string, mimeType: string_mime_type): ObjectUrl;
|
|
16
|
+
/**
|
|
17
|
+
* Creates ObjectUrl from string
|
|
18
|
+
* Note: DO NOT forget to call destroy() when you are done with it
|
|
19
|
+
*/
|
|
20
|
+
static fromString(source: string, mimeType: string_mime_type): ObjectUrl;
|
|
21
|
+
/**
|
|
22
|
+
* Creates ObjectUrl
|
|
23
|
+
* DO NOT forget to call destroy() when you are done with it
|
|
24
|
+
*/
|
|
25
|
+
static fromBlob(source: Blob | File | MediaSource): ObjectUrl;
|
|
26
|
+
/**
|
|
27
|
+
* Creates ObjectUrl:
|
|
28
|
+
* 1) With functionality for Blobs, Files or MediaSources
|
|
29
|
+
* 2) Just a wrapper for string urls
|
|
30
|
+
*
|
|
31
|
+
* DO NOT forget to call destroy() when you are done with it
|
|
32
|
+
*/
|
|
33
|
+
static fromBlobOrUrl(source: Blob | File | MediaSource | URL | string_url): ObjectUrl;
|
|
34
|
+
/**
|
|
35
|
+
* Gets object url as string
|
|
36
|
+
* @alias src
|
|
37
|
+
*/
|
|
38
|
+
get href(): string_url;
|
|
39
|
+
/**
|
|
40
|
+
* Gets object url as URL object
|
|
41
|
+
*/
|
|
42
|
+
get url(): URL;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
|
|
46
|
+
*/
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import type { FilesystemTools } from '../../execution/FilesystemTools';
|
|
2
|
-
import type { string_dirname } from '../../types/typeAliases';
|
|
3
|
-
import type { string_filename } from '../../types/typeAliases';
|
|
2
|
+
import type { string_dirname, string_filename } from '../../types/typeAliases';
|
|
4
3
|
/**
|
|
5
4
|
* Reads all files in the directory
|
|
6
5
|
*
|
|
7
6
|
* @param path
|
|
8
7
|
* @param isRecursive
|
|
9
8
|
* @returns List of all files in the directory
|
|
10
|
-
* @private internal function of `
|
|
9
|
+
* @private internal function of `AgentCollectionInDirectory` and `createPipelineCollectionFromDirectory`
|
|
11
10
|
*/
|
|
12
11
|
export declare function listAllFiles(path: string_dirname, isRecursive: boolean, fs: FilesystemTools): Promise<Array<string_filename>>;
|
|
13
12
|
/**
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
2
|
+
export type AboutPromptbookInformationOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Include information about available servers
|
|
5
|
+
*
|
|
6
|
+
* @default true
|
|
7
|
+
*/
|
|
8
|
+
isServersInfoIncluded?: boolean;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Provide information about Promptbook, engine version, book language version, servers, ...
|
|
12
|
+
*
|
|
13
|
+
* @param options Which information to include
|
|
14
|
+
* @returns Information about Promptbook in markdown format
|
|
15
|
+
*
|
|
16
|
+
* @public exported from `@promptbook/core`
|
|
17
|
+
*/
|
|
18
|
+
export declare function aboutPromptbookInformation(options?: AboutPromptbookInformationOptions): string_markdown;
|
|
19
|
+
/**
|
|
20
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
21
|
+
*/
|
|
@@ -16,5 +16,6 @@ export type InjectCssModuleIntoShadowRootOptions = {
|
|
|
16
16
|
*
|
|
17
17
|
* @public exported from `@promptbook/components`
|
|
18
18
|
* <- TODO: [🧠] Make `@promptbook/components-utils`
|
|
19
|
+
* @deprecated This was used for BookEditor shadow DOM support, which is no longer needed
|
|
19
20
|
*/
|
|
20
21
|
export declare function injectCssModuleIntoShadowRoot(options: InjectCssModuleIntoShadowRootOptions): void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AboutPromptbookInformationOptions } from './aboutPromptbookInformation';
|
|
2
|
+
type AboutPromptbookInformationProps = AboutPromptbookInformationOptions;
|
|
3
|
+
/**
|
|
4
|
+
* Provide information about Promptbook, engine version, book language version, servers, ...
|
|
5
|
+
*
|
|
6
|
+
* @public exported from `@promptbook/components`
|
|
7
|
+
*/
|
|
8
|
+
export declare function AboutPromptbookInformation(props: AboutPromptbookInformationProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
/**
|
|
11
|
+
* TODO: !!! Remove "x" from filename
|
|
12
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
13
|
+
*/
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ReadonlyDeep } from 'type-fest';
|
|
2
|
+
import { $side_effect } from '../organization/$side_effect';
|
|
2
3
|
/**
|
|
3
4
|
* Freezes the given object and all its nested objects recursively
|
|
4
5
|
*
|
|
@@ -8,7 +9,7 @@ import type { ReadonlyDeep } from 'type-fest';
|
|
|
8
9
|
* @returns The same object as the input, but deeply frozen
|
|
9
10
|
* @public exported from `@promptbook/utils`
|
|
10
11
|
*/
|
|
11
|
-
export declare function $deepFreeze<TObject>(objectValue: TObject): ReadonlyDeep
|
|
12
|
+
export declare function $deepFreeze<TObject>(objectValue: TObject): ReadonlyDeep<$side_effect & TObject>;
|
|
12
13
|
/**
|
|
13
14
|
* TODO: [🧠] Is there a way how to meaningfully test this utility
|
|
14
15
|
*/
|
|
@@ -15,7 +15,7 @@ export declare const BOOK_LANGUAGE_VERSION: string_semantic_version;
|
|
|
15
15
|
export declare const PROMPTBOOK_ENGINE_VERSION: string_promptbook_version;
|
|
16
16
|
/**
|
|
17
17
|
* Represents the version string of the Promptbook engine.
|
|
18
|
-
* It follows semantic versioning (e.g., `0.103.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.103.0-39`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
|
@@ -2,8 +2,7 @@ import type { ExecutionTools } from '../execution/ExecutionTools';
|
|
|
2
2
|
import type { PipelineJson } from '../pipeline/PipelineJson/PipelineJson';
|
|
3
3
|
import type { PipelineString } from '../pipeline/PipelineString';
|
|
4
4
|
import type { PrepareAndScrapeOptions } from '../prepare/PrepareAndScrapeOptions';
|
|
5
|
-
import type { string_filename } from '../types/typeAliases';
|
|
6
|
-
import type { string_pipeline_url } from '../types/typeAliases';
|
|
5
|
+
import type { string_filename, string_pipeline_url } from '../types/typeAliases';
|
|
7
6
|
/**
|
|
8
7
|
* @see ./wizard.ts `getPipeline` method
|
|
9
8
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/openai",
|
|
3
|
-
"version": "0.103.0-
|
|
3
|
+
"version": "0.103.0-40",
|
|
4
4
|
"description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -102,14 +102,15 @@
|
|
|
102
102
|
"module": "./esm/index.es.js",
|
|
103
103
|
"typings": "./esm/typings/src/_packages/openai.index.d.ts",
|
|
104
104
|
"peerDependencies": {
|
|
105
|
-
"@promptbook/core": "0.103.0-
|
|
105
|
+
"@promptbook/core": "0.103.0-40"
|
|
106
106
|
},
|
|
107
107
|
"dependencies": {
|
|
108
|
-
"bottleneck": "
|
|
109
|
-
"colors": "1.4.0",
|
|
108
|
+
"bottleneck": "2.19.5",
|
|
109
|
+
"colors": "^1.4.0",
|
|
110
110
|
"crypto": "1.0.1",
|
|
111
111
|
"openai": "4.63.0",
|
|
112
|
-
"socket.io-client": "4.7.
|
|
113
|
-
"spacetrim": "0.11.
|
|
112
|
+
"socket.io-client": "4.7.5",
|
|
113
|
+
"spacetrim": "0.11.60",
|
|
114
|
+
"waitasecond": "1.11.160"
|
|
114
115
|
}
|
|
115
116
|
}
|
package/umd/index.umd.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
(function (global, factory) {
|
|
2
|
-
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('colors'), require('spacetrim'), require('crypto'), require('bottleneck'), require('openai'), require('socket.io-client')) :
|
|
3
|
-
typeof define === 'function' && define.amd ? define(['exports', 'colors', 'spacetrim', 'crypto', 'bottleneck', 'openai', 'socket.io-client'], factory) :
|
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-openai"] = {}, global.colors, global.spaceTrim, global.crypto, global.Bottleneck, global.OpenAI, global.socket_ioClient));
|
|
5
|
-
})(this, (function (exports, colors, spaceTrim, crypto, Bottleneck, OpenAI, socket_ioClient) { 'use strict';
|
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('colors'), require('waitasecond'), require('spacetrim'), require('crypto'), require('bottleneck'), require('openai'), require('socket.io-client')) :
|
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports', 'colors', 'waitasecond', 'spacetrim', 'crypto', 'bottleneck', 'openai', 'socket.io-client'], factory) :
|
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-openai"] = {}, global.colors, global.waitasecond, global.spaceTrim, global.crypto, global.Bottleneck, global.OpenAI, global.socket_ioClient));
|
|
5
|
+
})(this, (function (exports, colors, waitasecond, spaceTrim, crypto, Bottleneck, OpenAI, socket_ioClient) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
8
8
|
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* @generated
|
|
26
26
|
* @see https://github.com/webgptorg/promptbook
|
|
27
27
|
*/
|
|
28
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-
|
|
28
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-40';
|
|
29
29
|
/**
|
|
30
30
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
31
31
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -71,6 +71,19 @@
|
|
|
71
71
|
* TODO: [🎺]
|
|
72
72
|
*/
|
|
73
73
|
|
|
74
|
+
/**
|
|
75
|
+
* This error indicates that promptbook operation is not allowed
|
|
76
|
+
*
|
|
77
|
+
* @public exported from `@promptbook/core`
|
|
78
|
+
*/
|
|
79
|
+
class NotAllowed extends Error {
|
|
80
|
+
constructor(message) {
|
|
81
|
+
super(message);
|
|
82
|
+
this.name = 'NotAllowed';
|
|
83
|
+
Object.setPrototypeOf(this, NotAllowed.prototype);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
74
87
|
/**
|
|
75
88
|
* This error type indicates that some part of the code is not implemented yet
|
|
76
89
|
*
|
|
@@ -1153,15 +1166,30 @@
|
|
|
1153
1166
|
* @public exported from `@promptbook/core`
|
|
1154
1167
|
*/
|
|
1155
1168
|
const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
|
|
1156
|
-
// <- TODO: [🧠] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1169
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1170
|
+
/**
|
|
1171
|
+
* Colors for syntax highlighting in the `<BookEditor/>`
|
|
1172
|
+
*
|
|
1173
|
+
* TODO: [🗽] Unite branding and make single place for it
|
|
1174
|
+
*
|
|
1175
|
+
* @public exported from `@promptbook/core`
|
|
1176
|
+
*/
|
|
1177
|
+
({
|
|
1178
|
+
TITLE: Color.fromHex('#244EA8'),
|
|
1179
|
+
LINE: Color.fromHex('#eeeeee'),
|
|
1180
|
+
COMMITMENT: Color.fromHex('#DA0F78'),
|
|
1181
|
+
PARAMETER: Color.fromHex('#8e44ad'),
|
|
1182
|
+
});
|
|
1183
|
+
// <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
|
|
1157
1184
|
/**
|
|
1158
|
-
*
|
|
1185
|
+
* Chat color of the Promptbook (in chat)
|
|
1159
1186
|
*
|
|
1160
1187
|
* TODO: [🗽] Unite branding and make single place for it
|
|
1161
1188
|
*
|
|
1162
1189
|
* @public exported from `@promptbook/core`
|
|
1163
1190
|
*/
|
|
1164
1191
|
PROMPTBOOK_COLOR.then(lighten(0.1)).then(saturate(0.9)).then(grayscale(0.9));
|
|
1192
|
+
// <- TODO: [🧠][🈵] Using `Color` and `lighten`, `saturate`,... here increases the package size approx 3kb, maybe remove it
|
|
1165
1193
|
/**
|
|
1166
1194
|
* Color of the user (in chat)
|
|
1167
1195
|
*
|
|
@@ -1831,10 +1859,13 @@
|
|
|
1831
1859
|
* @public exported from `@promptbook/utils`
|
|
1832
1860
|
*/
|
|
1833
1861
|
function countLines(text) {
|
|
1862
|
+
if (text === '') {
|
|
1863
|
+
return 0;
|
|
1864
|
+
}
|
|
1834
1865
|
text = text.replace('\r\n', '\n');
|
|
1835
1866
|
text = text.replace('\r', '\n');
|
|
1836
1867
|
const lines = text.split('\n');
|
|
1837
|
-
return lines.reduce((count, line) => count + Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 0);
|
|
1868
|
+
return lines.reduce((count, line) => count + Math.max(Math.ceil(line.length / CHARACTERS_PER_STANDARD_LINE), 1), 0);
|
|
1838
1869
|
}
|
|
1839
1870
|
/**
|
|
1840
1871
|
* TODO: [🥴] Implement counting in formats - like JSON, CSV, XML,...
|
|
@@ -3601,6 +3632,12 @@
|
|
|
3601
3632
|
*
|
|
3602
3633
|
* This is useful for calling OpenAI API with a single assistant, for more wide usage use `OpenAiExecutionTools`.
|
|
3603
3634
|
*
|
|
3635
|
+
* Note: [🦖] There are several different things in Promptbook:
|
|
3636
|
+
* - `Agent` - which represents an AI Agent with its source, memories, actions, etc. Agent is a higher-level abstraction which is internally using:
|
|
3637
|
+
* - `LlmExecutionTools` - which wraps one or more LLM models and provides an interface to execute them
|
|
3638
|
+
* - `AgentLlmExecutionTools` - which is a specific implementation of `LlmExecutionTools` that wraps another LlmExecutionTools and applies agent-specific system prompts and requirements
|
|
3639
|
+
* - `OpenAiAssistantExecutionTools` - which is a specific implementation of `LlmExecutionTools` for OpenAI models with assistant capabilities, recommended for usage in `Agent` or `AgentLlmExecutionTools`
|
|
3640
|
+
*
|
|
3604
3641
|
* @public exported from `@promptbook/openai`
|
|
3605
3642
|
*/
|
|
3606
3643
|
class OpenAiAssistantExecutionTools extends OpenAiExecutionTools {
|
|
@@ -3610,11 +3647,18 @@
|
|
|
3610
3647
|
* @param options which are relevant are directly passed to the OpenAI client
|
|
3611
3648
|
*/
|
|
3612
3649
|
constructor(options) {
|
|
3650
|
+
var _a;
|
|
3613
3651
|
if (options.isProxied) {
|
|
3614
3652
|
throw new NotYetImplementedError(`Proxy mode is not yet implemented for OpenAI assistants`);
|
|
3615
3653
|
}
|
|
3616
3654
|
super(options);
|
|
3655
|
+
this.isCreatingNewAssistantsAllowed = false;
|
|
3617
3656
|
this.assistantId = options.assistantId;
|
|
3657
|
+
this.isCreatingNewAssistantsAllowed = (_a = options.isCreatingNewAssistantsAllowed) !== null && _a !== void 0 ? _a : false;
|
|
3658
|
+
if (this.assistantId === null && !this.isCreatingNewAssistantsAllowed) {
|
|
3659
|
+
throw new NotAllowed(`Assistant ID is null and creating new assistants is not allowed - this configuration does not make sense`);
|
|
3660
|
+
}
|
|
3661
|
+
// <- TODO: !!! `OpenAiAssistantExecutionToolsOptions` - Allow `assistantId: null` together with `isCreatingNewAssistantsAllowed: true`
|
|
3618
3662
|
// TODO: [👱] Make limiter same as in `OpenAiExecutionTools`
|
|
3619
3663
|
}
|
|
3620
3664
|
get title() {
|
|
@@ -3673,14 +3717,13 @@
|
|
|
3673
3717
|
// TODO: [👨👨👧👧][🧠] What about system message for assistants, does it make sense - combination of OpenAI assistants with Promptbook Personas
|
|
3674
3718
|
assistant_id: this.assistantId,
|
|
3675
3719
|
thread: {
|
|
3676
|
-
messages: 'thread' in prompt &&
|
|
3720
|
+
messages: 'thread' in prompt &&
|
|
3721
|
+
Array.isArray(prompt.thread)
|
|
3677
3722
|
? prompt.thread.map((msg) => ({
|
|
3678
3723
|
role: msg.role === 'assistant' ? 'assistant' : 'user',
|
|
3679
3724
|
content: msg.content,
|
|
3680
3725
|
}))
|
|
3681
|
-
: [
|
|
3682
|
-
{ role: 'user', content: rawPromptContent },
|
|
3683
|
-
],
|
|
3726
|
+
: [{ role: 'user', content: rawPromptContent }],
|
|
3684
3727
|
},
|
|
3685
3728
|
// <- TODO: Add user identification here> user: this.options.user,
|
|
3686
3729
|
};
|
|
@@ -3760,7 +3803,120 @@
|
|
|
3760
3803
|
},
|
|
3761
3804
|
});
|
|
3762
3805
|
}
|
|
3806
|
+
async playground() {
|
|
3807
|
+
const client = await this.getClient();
|
|
3808
|
+
// List all assistants
|
|
3809
|
+
const assistants = await client.beta.assistants.list();
|
|
3810
|
+
console.log('!!! Assistants:', assistants);
|
|
3811
|
+
// Get details of a specific assistant
|
|
3812
|
+
const assistantId = 'asst_MO8fhZf4dGloCfXSHeLcIik0';
|
|
3813
|
+
const assistant = await client.beta.assistants.retrieve(assistantId);
|
|
3814
|
+
console.log('!!! Assistant Details:', assistant);
|
|
3815
|
+
// Update an assistant
|
|
3816
|
+
const updatedAssistant = await client.beta.assistants.update(assistantId, {
|
|
3817
|
+
name: assistant.name + '(M)',
|
|
3818
|
+
description: 'Updated description via Promptbook',
|
|
3819
|
+
metadata: {
|
|
3820
|
+
[Math.random().toString(36).substring(2, 15)]: new Date().toISOString(),
|
|
3821
|
+
},
|
|
3822
|
+
});
|
|
3823
|
+
console.log('!!! Updated Assistant:', updatedAssistant);
|
|
3824
|
+
await waitasecond.forEver();
|
|
3825
|
+
}
|
|
3826
|
+
async createNewAssistant(options) {
|
|
3827
|
+
if (!this.isCreatingNewAssistantsAllowed) {
|
|
3828
|
+
throw new NotAllowed(`Creating new assistants is not allowed. Set \`isCreatingNewAssistantsAllowed: true\` in options to enable this feature.`);
|
|
3829
|
+
}
|
|
3830
|
+
await this.playground();
|
|
3831
|
+
const { name, instructions } = options;
|
|
3832
|
+
const client = await this.getClient();
|
|
3833
|
+
/*
|
|
3834
|
+
TODO: !!!
|
|
3835
|
+
async function downloadFile(url: string, folder = './tmp'): Promise<string> {
|
|
3836
|
+
const filename = path.basename(url.split('?')[0]);
|
|
3837
|
+
const filepath = path.join(folder, filename);
|
|
3838
|
+
|
|
3839
|
+
if (!fs.existsSync(folder)) fs.mkdirSync(folder);
|
|
3840
|
+
|
|
3841
|
+
const res = await fetch(url);
|
|
3842
|
+
if (!res.ok) throw new Error(`Download error: ${url}`);
|
|
3843
|
+
const buffer = await res.arrayBuffer();
|
|
3844
|
+
fs.writeFileSync(filepath, Buffer.from(buffer));
|
|
3845
|
+
console.log(`📥 File downloaded: ${filename}`);
|
|
3846
|
+
|
|
3847
|
+
return filepath;
|
|
3848
|
+
}
|
|
3849
|
+
|
|
3850
|
+
async function uploadFileToOpenAI(filepath: string) {
|
|
3851
|
+
const file = await client.files.create({
|
|
3852
|
+
file: fs.createReadStream(filepath),
|
|
3853
|
+
purpose: 'assistants',
|
|
3854
|
+
});
|
|
3855
|
+
console.log(`⬆️ File uploaded to OpenAI: ${file.filename} (${file.id})`);
|
|
3856
|
+
return file;
|
|
3857
|
+
}
|
|
3858
|
+
|
|
3859
|
+
// 🌐 URL addresses of files to upload
|
|
3860
|
+
const fileUrls = [
|
|
3861
|
+
'https://raw.githubusercontent.com/vercel/next.js/canary/packages/next/README.md',
|
|
3862
|
+
'https://raw.githubusercontent.com/openai/openai-cookbook/main/examples/How_to_call_the_Assistants_API_with_Node.js.ipynb',
|
|
3863
|
+
];
|
|
3864
|
+
|
|
3865
|
+
// 1️⃣ Download files from URL
|
|
3866
|
+
const localFiles = [];
|
|
3867
|
+
for (const url of fileUrls) {
|
|
3868
|
+
const filepath = await downloadFile(url);
|
|
3869
|
+
localFiles.push(filepath);
|
|
3870
|
+
}
|
|
3871
|
+
|
|
3872
|
+
// 2️⃣ Upload files to OpenAI
|
|
3873
|
+
const uploadedFiles = [];
|
|
3874
|
+
for (const filepath of localFiles) {
|
|
3875
|
+
const file = await uploadFileToOpenAI(filepath);
|
|
3876
|
+
uploadedFiles.push(file.id);
|
|
3877
|
+
}
|
|
3878
|
+
*/
|
|
3879
|
+
alert('!!!! Creating new OpenAI assistant');
|
|
3880
|
+
// 3️⃣ Create assistant with uploaded files
|
|
3881
|
+
const assistant = await client.beta.assistants.create({
|
|
3882
|
+
name,
|
|
3883
|
+
description: 'Assistant created via Promptbook',
|
|
3884
|
+
model: 'gpt-4o',
|
|
3885
|
+
instructions,
|
|
3886
|
+
tools: [/* TODO: [🧠] Maybe add { type: 'code_interpreter' }, */ { type: 'file_search' }],
|
|
3887
|
+
// !!!! file_ids: uploadedFiles,
|
|
3888
|
+
});
|
|
3889
|
+
console.log(`✅ Assistant created: ${assistant.id}`);
|
|
3890
|
+
// TODO: !!!! Try listing existing assistants
|
|
3891
|
+
// TODO: !!!! Try marking existing assistants by DISCRIMINANT
|
|
3892
|
+
// TODO: !!!! Allow to update and reconnect to existing assistants
|
|
3893
|
+
return new OpenAiAssistantExecutionTools({
|
|
3894
|
+
...this.options,
|
|
3895
|
+
isCreatingNewAssistantsAllowed: false,
|
|
3896
|
+
assistantId: assistant.id,
|
|
3897
|
+
});
|
|
3898
|
+
}
|
|
3899
|
+
/**
|
|
3900
|
+
* Discriminant for type guards
|
|
3901
|
+
*/
|
|
3902
|
+
get discriminant() {
|
|
3903
|
+
return DISCRIMINANT;
|
|
3904
|
+
}
|
|
3905
|
+
/**
|
|
3906
|
+
* Type guard to check if given `LlmExecutionTools` are instanceof `OpenAiAssistantExecutionTools`
|
|
3907
|
+
*
|
|
3908
|
+
* Note: This is useful when you can possibly have multiple versions of `@promptbook/openai` installed
|
|
3909
|
+
*/
|
|
3910
|
+
static isOpenAiAssistantExecutionTools(llmExecutionTools) {
|
|
3911
|
+
return llmExecutionTools.discriminant === DISCRIMINANT;
|
|
3912
|
+
}
|
|
3763
3913
|
}
|
|
3914
|
+
/**
|
|
3915
|
+
* Discriminant for type guards
|
|
3916
|
+
*
|
|
3917
|
+
* @private const of `OpenAiAssistantExecutionTools`
|
|
3918
|
+
*/
|
|
3919
|
+
const DISCRIMINANT = 'OPEN_AI_ASSISTANT_V1';
|
|
3764
3920
|
/**
|
|
3765
3921
|
* TODO: [🧠][🧙♂️] Maybe there can be some wizard for those who want to use just OpenAI
|
|
3766
3922
|
* TODO: Maybe make custom OpenAiError
|
|
@@ -3996,6 +4152,7 @@
|
|
|
3996
4152
|
PromptbookFetchError,
|
|
3997
4153
|
UnexpectedError,
|
|
3998
4154
|
WrappedError,
|
|
4155
|
+
NotAllowed,
|
|
3999
4156
|
// TODO: [🪑]> VersionMismatchError,
|
|
4000
4157
|
};
|
|
4001
4158
|
/**
|