@promptbook/utils 0.103.0-42 → 0.103.0-44
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 +6 -18
- package/esm/index.es.js +58 -99
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +6 -0
- package/esm/typings/src/_packages/node.index.d.ts +0 -2
- package/esm/typings/src/_packages/types.index.d.ts +22 -0
- package/esm/typings/src/_packages/utils.index.d.ts +2 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +2 -4
- package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +1 -1
- package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +1 -0
- package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +6 -1
- package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
- package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +1 -1
- package/esm/typings/src/book-components/Qr/useQrCode.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/hello.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/list-models.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/login.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/prettify.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/run.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/start-agents-server.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +1 -1
- package/esm/typings/src/cli/cli-commands/test-command.d.ts +1 -1
- package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +1 -1
- package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +2 -29
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +107 -0
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +129 -0
- package/esm/typings/src/commands/_common/types/CommandParser.d.ts +1 -1
- package/esm/typings/src/config.d.ts +1 -1
- package/esm/typings/src/errors/0-index.d.ts +3 -0
- package/esm/typings/src/errors/DatabaseError.d.ts +12 -0
- package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +1 -1
- package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
- package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -0
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +5 -2
- package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +4 -2
- package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +4 -3
- package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/anthropic-claude/anthropic-claude-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/google/google-models.d.ts +1 -1
- package/esm/typings/src/llm-providers/openai/openai-models.d.ts +1 -1
- package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
- package/esm/typings/src/remote-server/startAgentServer.d.ts +2 -2
- package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +0 -19
- package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +1 -1
- package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +5 -1
- package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +1 -1
- package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +1 -1
- package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +4 -1
- package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +1 -1
- package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +4 -1
- package/esm/typings/src/transpilers/openai-sdk/register.d.ts +1 -1
- package/esm/typings/src/types/typeAliases.d.ts +19 -1
- package/esm/typings/src/utils/color/$randomColor.d.ts +1 -0
- package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
- package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
- package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
- package/esm/typings/src/utils/execCommand/$execCommand.d.ts +1 -1
- package/esm/typings/src/utils/execCommand/$execCommands.d.ts +1 -1
- package/esm/typings/src/utils/files/$induceBookDownload.d.ts +2 -2
- package/esm/typings/src/utils/files/$induceFileDownload.d.ts +2 -2
- package/esm/typings/src/utils/files/ObjectUrl.d.ts +1 -1
- package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +6 -0
- package/esm/typings/src/utils/organization/$side_effect.d.ts +1 -1
- package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +25 -0
- package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomFullnameWithColor.d.ts +13 -0
- package/esm/typings/src/utils/random/$randomItem.d.ts +9 -0
- package/esm/typings/src/utils/random/$randomSeed.d.ts +3 -0
- package/esm/typings/src/utils/random/$randomToken.d.ts +2 -0
- package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +1 -1
- package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +58 -98
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.d.ts +0 -89
- package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.test.d.ts +0 -1
- package/esm/typings/src/commands/_common/parseCommand.test.d.ts +0 -1
- package/esm/typings/src/execution/utils/logLlmCall.d.ts +0 -8
|
@@ -3,7 +3,7 @@ import type { number_usd } from '../../types/typeAliases';
|
|
|
3
3
|
/**
|
|
4
4
|
* List of available Google models with descriptions
|
|
5
5
|
*
|
|
6
|
-
* Note: Synced with official API docs at 2025-
|
|
6
|
+
* Note: Synced with official API docs at 2025-11-19
|
|
7
7
|
*
|
|
8
8
|
* @see https://ai.google.dev/models/gemini
|
|
9
9
|
* @public exported from `@promptbook/google`
|
|
@@ -2,7 +2,7 @@ import type { AvailableModel } from '../../execution/AvailableModel';
|
|
|
2
2
|
/**
|
|
3
3
|
* List of available OpenAI models with pricing
|
|
4
4
|
*
|
|
5
|
-
* Note: Synced with official API docs at 2025-
|
|
5
|
+
* Note: Synced with official API docs at 2025-11-19
|
|
6
6
|
*
|
|
7
7
|
* @see https://platform.openai.com/docs/models/
|
|
8
8
|
* @see https://openai.com/api/pricing/
|
|
@@ -47,5 +47,6 @@ export type PrepareAndScrapeOptions = {
|
|
|
47
47
|
readonly isVerbose?: boolean;
|
|
48
48
|
};
|
|
49
49
|
/**
|
|
50
|
+
* TODO: [🧠] Maybe extend from `CommonToolsOptions`
|
|
50
51
|
* TODO: [🧠] Maybe split `PrepareAndScrapeOptions` and `ScrapeOptions` (`ScrapeOptions` should be extended from `PrepareAndScrapeOptions`)
|
|
51
52
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { number_port } from '../types/typeAliases';
|
|
2
|
+
import type { TODO_any } from '../utils/organization/TODO_any';
|
|
3
3
|
type AgentsServerOptions = {
|
|
4
4
|
/**
|
|
5
5
|
* !!!
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Request, Response } from 'express';
|
|
2
2
|
import type { Promisable } from 'type-fest';
|
|
3
|
-
import { really_any } from '../../_packages/types.index';
|
|
4
3
|
import type { PipelineCollection } from '../../collection/pipeline-collection/PipelineCollection';
|
|
5
4
|
import { AuthenticationError } from '../../errors/AuthenticationError';
|
|
6
5
|
import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
|
|
@@ -27,24 +26,6 @@ export type RemoteServerOptions<TCustomOptions> = CommonToolsOptions & {
|
|
|
27
26
|
* @property {number} port The port number the server will listen on.
|
|
28
27
|
*/
|
|
29
28
|
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
|
-
};
|
|
48
29
|
/**
|
|
49
30
|
* Enable rich UI (React + Tailwind) at `/` path.
|
|
50
31
|
* Default: true
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { Promisable } from 'type-fest';
|
|
2
|
-
import {
|
|
2
|
+
import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
3
|
+
import type { ExecutionTools } from '../../execution/ExecutionTools';
|
|
4
|
+
import type { string_name, string_script, string_title } from '../../types/typeAliases';
|
|
5
|
+
import type { Registered } from '../../utils/misc/$Register';
|
|
6
|
+
import type { BookTranspilerOptions } from './BookTranspilerOptions';
|
|
3
7
|
/**
|
|
4
8
|
* Transpiler takes a book and transpiles it into another format (e.g., Langchain).
|
|
5
9
|
*/
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
2
|
+
import type { ExecutionTools } from '../../execution/ExecutionTools';
|
|
3
|
+
import type { string_markdown } from '../../types/typeAliases';
|
|
4
|
+
import type { BookTranspilerOptions } from '../_common/BookTranspilerOptions';
|
|
2
5
|
/**
|
|
3
6
|
* Converts a book into a 1:1 formatted markdown
|
|
4
7
|
*
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
2
|
+
import type { ExecutionTools } from '../../execution/ExecutionTools';
|
|
3
|
+
import type { string_script } from '../../types/typeAliases';
|
|
4
|
+
import type { BookTranspilerOptions } from '../_common/BookTranspilerOptions';
|
|
2
5
|
/**
|
|
3
6
|
* Transpiler to Javascript code using OpenAI SDK.
|
|
4
7
|
*
|
|
@@ -142,6 +142,12 @@ export type string_title = string;
|
|
|
142
142
|
* For example `"My AI Assistant"`
|
|
143
143
|
*/
|
|
144
144
|
export type string_agent_name = string;
|
|
145
|
+
/**
|
|
146
|
+
* Semantic helper
|
|
147
|
+
*
|
|
148
|
+
* For example `"My AI Assistant"`
|
|
149
|
+
*/
|
|
150
|
+
export type string_agent_name_in_book = string;
|
|
145
151
|
/**
|
|
146
152
|
* Unstructured description of the persona
|
|
147
153
|
*
|
|
@@ -530,7 +536,19 @@ export type string_dirname = string_absolute_dirname | string_relative_dirname;
|
|
|
530
536
|
*
|
|
531
537
|
* For example `"John Smith"`
|
|
532
538
|
*/
|
|
533
|
-
export type string_person_fullname = string;
|
|
539
|
+
export type string_person_fullname = `${string_person_firstname} ${string_person_lastname}` | string;
|
|
540
|
+
/**
|
|
541
|
+
* Semantic helper
|
|
542
|
+
*
|
|
543
|
+
* For example `"John Smith"`
|
|
544
|
+
*/
|
|
545
|
+
export type string_person_firstname = string;
|
|
546
|
+
/**
|
|
547
|
+
* Semantic helper
|
|
548
|
+
*
|
|
549
|
+
* For example `"John Smith"`
|
|
550
|
+
*/
|
|
551
|
+
export type string_person_lastname = string;
|
|
534
552
|
/**
|
|
535
553
|
* Semantic helper
|
|
536
554
|
* Full profile of the person with his email and web (like in package.json)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { number_percent } from '../../../types/typeAliases';
|
|
1
2
|
import { Color } from '../Color';
|
|
2
3
|
import type { ColorTransformer } from './ColorTransformer';
|
|
3
|
-
import { number_percent } from '../../../types/typeAliases';
|
|
4
4
|
/**
|
|
5
5
|
* Makes color transformer which returns a mix of two colors based on a ratio
|
|
6
6
|
*
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns information about the current runtime environment
|
|
3
|
+
*
|
|
4
|
+
* Note: `$` is used to indicate that this function is not a pure function - it looks at the global object to determine the environments
|
|
5
|
+
*
|
|
6
|
+
* @public exported from `@promptbook/utils`
|
|
7
|
+
*/
|
|
8
|
+
export declare function $detectRuntimeEnvironment(): {
|
|
9
|
+
isRunningInBrowser: any;
|
|
10
|
+
isRunningInJest: any;
|
|
11
|
+
isRunningInNode: any;
|
|
12
|
+
isRunningInWebWorker: any;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* TODO: [🎺] Also detect and report node version here
|
|
16
|
+
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { string_book } from '../../
|
|
2
|
-
import { $side_effect } from '../organization/$side_effect';
|
|
1
|
+
import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
2
|
+
import type { $side_effect } from '../organization/$side_effect';
|
|
3
3
|
/**
|
|
4
4
|
* Download a Book in a browser
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { string_url } from '../../types/typeAliases';
|
|
2
|
-
import { $side_effect } from '../organization/$side_effect';
|
|
1
|
+
import type { string_url } from '../../types/typeAliases';
|
|
2
|
+
import type { $side_effect } from '../organization/$side_effect';
|
|
3
3
|
/**
|
|
4
4
|
* Download a File in a browser
|
|
5
5
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDestroyable, Registration } from 'destroyable';
|
|
2
|
-
import { string_mime_type, string_url } from '../../types/typeAliases';
|
|
2
|
+
import type { string_mime_type, string_url } from '../../types/typeAliases';
|
|
3
3
|
/**
|
|
4
4
|
* Converts Blob, File or MediaSource to url using URL.createObjectURL
|
|
5
5
|
*
|
|
@@ -6,6 +6,12 @@ export type AboutPromptbookInformationOptions = {
|
|
|
6
6
|
* @default true
|
|
7
7
|
*/
|
|
8
8
|
isServersInfoIncluded?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Include information about runtime environment
|
|
11
|
+
*
|
|
12
|
+
* @default true
|
|
13
|
+
*/
|
|
14
|
+
isRuntimeEnvironmentInfoIncluded?: boolean;
|
|
9
15
|
};
|
|
10
16
|
/**
|
|
11
17
|
* Provide information about Promptbook, engine version, book language version, servers, ...
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { PartialDeep } from 'type-fest';
|
|
2
|
+
import type { AgentBasicInformation } from '../../book-2.0/agent-source/AgentBasicInformation';
|
|
3
|
+
import { string_book } from '../../book-2.0/agent-source/string_book';
|
|
4
|
+
import { string_agent_name_in_book } from '../../types/typeAliases';
|
|
5
|
+
type GenerateBookBoilerplateOptions = PartialDeep<Omit<AgentBasicInformation, 'parameters'>> & {
|
|
6
|
+
/**
|
|
7
|
+
* Name of the parent agent to inherit from
|
|
8
|
+
*
|
|
9
|
+
* @default 'Adam'
|
|
10
|
+
*/
|
|
11
|
+
parentAgentName?: string_agent_name_in_book;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Generates boilerplate for a new agent book
|
|
15
|
+
*
|
|
16
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
17
|
+
* Note: This function is using cryptographically secure components internally
|
|
18
|
+
*
|
|
19
|
+
* @public exported from `@promptbook/core`
|
|
20
|
+
*/
|
|
21
|
+
export declare function $generateBookBoilerplate(options?: GenerateBookBoilerplateOptions): string_book;
|
|
22
|
+
export {};
|
|
23
|
+
/**
|
|
24
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
25
|
+
*/
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { string_color, string_person_fullname } from '../../types/typeAliases';
|
|
2
|
+
export type RandomFullnameWithColorResult = {
|
|
3
|
+
fullname: string_person_fullname;
|
|
4
|
+
color: string_color;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
* @private internal helper function
|
|
9
|
+
*/
|
|
10
|
+
export declare function $randomFullnameWithColor(): RandomFullnameWithColorResult;
|
|
11
|
+
/**
|
|
12
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
13
|
+
*/
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pick random item from the received array
|
|
3
|
+
*
|
|
4
|
+
* @private internal helper function
|
|
5
|
+
*/
|
|
6
|
+
export declare function $randomItem<TItem>(...items: Array<TItem>): TItem;
|
|
7
|
+
/**
|
|
8
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
9
|
+
*/
|
|
@@ -2,6 +2,7 @@ import type { string_token } from '../../types/typeAliases';
|
|
|
2
2
|
/**
|
|
3
3
|
* Generates random token
|
|
4
4
|
*
|
|
5
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
5
6
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
6
7
|
*
|
|
7
8
|
* @private internal helper function
|
|
@@ -9,5 +10,6 @@ import type { string_token } from '../../types/typeAliases';
|
|
|
9
10
|
*/
|
|
10
11
|
export declare function $randomToken(randomness: number): string_token;
|
|
11
12
|
/**
|
|
13
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
12
14
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
13
15
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { string_javascript } from '../../types/typeAliases';
|
|
2
|
-
import { TODO_any } from '../organization/TODO_any';
|
|
1
|
+
import type { string_javascript } from '../../types/typeAliases';
|
|
2
|
+
import type { TODO_any } from '../organization/TODO_any';
|
|
3
3
|
type SerializeToPromptbookJavascriptReturn = {
|
|
4
4
|
/**
|
|
5
5
|
* Array of import statements required for the `value` to work
|
|
@@ -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-43`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
package/umd/index.umd.js
CHANGED
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
* @generated
|
|
16
16
|
* @see https://github.com/webgptorg/book
|
|
17
17
|
*/
|
|
18
|
-
const BOOK_LANGUAGE_VERSION = '
|
|
18
|
+
const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
19
19
|
/**
|
|
20
20
|
* The version of the Promptbook engine
|
|
21
21
|
*
|
|
22
22
|
* @generated
|
|
23
23
|
* @see https://github.com/webgptorg/promptbook
|
|
24
24
|
*/
|
|
25
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-
|
|
25
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-44';
|
|
26
26
|
/**
|
|
27
27
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
28
28
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -686,6 +686,23 @@
|
|
|
686
686
|
* TODO: Maybe connect with textures
|
|
687
687
|
*/
|
|
688
688
|
|
|
689
|
+
/**
|
|
690
|
+
* Makes color transformer which returns a grayscale version of the color
|
|
691
|
+
*
|
|
692
|
+
* @param amount from 0 to 1
|
|
693
|
+
*
|
|
694
|
+
* @public exported from `@promptbook/color`
|
|
695
|
+
*/
|
|
696
|
+
function grayscale(amount) {
|
|
697
|
+
return ({ red, green, blue, alpha }) => {
|
|
698
|
+
const average = (red + green + blue) / 3;
|
|
699
|
+
red = Math.round(average * amount + red * (1 - amount));
|
|
700
|
+
green = Math.round(average * amount + green * (1 - amount));
|
|
701
|
+
blue = Math.round(average * amount + blue * (1 - amount));
|
|
702
|
+
return Color.fromValues(red, green, blue, alpha);
|
|
703
|
+
};
|
|
704
|
+
}
|
|
705
|
+
|
|
689
706
|
/**
|
|
690
707
|
* Converts HSL values to RGB values
|
|
691
708
|
*
|
|
@@ -801,102 +818,6 @@
|
|
|
801
818
|
* TODO: Maybe implement by mix+hsl
|
|
802
819
|
*/
|
|
803
820
|
|
|
804
|
-
/**
|
|
805
|
-
* Calculates distance between two colors
|
|
806
|
-
*
|
|
807
|
-
* @param color1 first color
|
|
808
|
-
* @param color2 second color
|
|
809
|
-
*
|
|
810
|
-
* Note: This function is inefficient. Use colorDistanceSquared instead if possible.
|
|
811
|
-
*
|
|
812
|
-
* @public exported from `@promptbook/color`
|
|
813
|
-
*/
|
|
814
|
-
/**
|
|
815
|
-
* Calculates distance between two colors without square root
|
|
816
|
-
*
|
|
817
|
-
* @param color1 first color
|
|
818
|
-
* @param color2 second color
|
|
819
|
-
*
|
|
820
|
-
* @public exported from `@promptbook/color`
|
|
821
|
-
*/
|
|
822
|
-
function colorDistanceSquared(color1, color2) {
|
|
823
|
-
const rmean = (color1.red + color2.red) / 2;
|
|
824
|
-
const r = color1.red - color2.red;
|
|
825
|
-
const g = color1.green - color2.green;
|
|
826
|
-
const b = color1.blue - color2.blue;
|
|
827
|
-
const weightR = 2 + rmean / 256;
|
|
828
|
-
const weightG = 4.0;
|
|
829
|
-
const weightB = 2 + (255 - rmean) / 256;
|
|
830
|
-
const distance = weightR * r * r + weightG * g * g + weightB * b * b;
|
|
831
|
-
return distance;
|
|
832
|
-
}
|
|
833
|
-
|
|
834
|
-
/**
|
|
835
|
-
* Makes color transformer which finds the nearest color from the given list
|
|
836
|
-
*
|
|
837
|
-
* @param colors array of colors to choose from
|
|
838
|
-
*
|
|
839
|
-
* @public exported from `@promptbook/color`
|
|
840
|
-
*/
|
|
841
|
-
function nearest(...colors) {
|
|
842
|
-
return (color) => {
|
|
843
|
-
const distances = colors.map((c) => colorDistanceSquared(c, color));
|
|
844
|
-
const minDistance = Math.min(...distances);
|
|
845
|
-
const minIndex = distances.indexOf(minDistance);
|
|
846
|
-
const nearestColor = colors[minIndex];
|
|
847
|
-
return nearestColor;
|
|
848
|
-
};
|
|
849
|
-
}
|
|
850
|
-
|
|
851
|
-
/**
|
|
852
|
-
* Color transformer which returns the negative color
|
|
853
|
-
*
|
|
854
|
-
* @public exported from `@promptbook/color`
|
|
855
|
-
*/
|
|
856
|
-
function negative(color) {
|
|
857
|
-
const r = 255 - color.red;
|
|
858
|
-
const g = 255 - color.green;
|
|
859
|
-
const b = 255 - color.blue;
|
|
860
|
-
return Color.fromValues(r, g, b, color.alpha);
|
|
861
|
-
}
|
|
862
|
-
|
|
863
|
-
/**
|
|
864
|
-
* Makes color transformer which finds the furthest color from the given list
|
|
865
|
-
*
|
|
866
|
-
* @param colors array of colors to choose from
|
|
867
|
-
*
|
|
868
|
-
* @public exported from `@promptbook/color`
|
|
869
|
-
*/
|
|
870
|
-
function furthest(...colors) {
|
|
871
|
-
return (color) => {
|
|
872
|
-
const furthestColor = negative(nearest(...colors.map(negative))(color));
|
|
873
|
-
return furthestColor;
|
|
874
|
-
};
|
|
875
|
-
}
|
|
876
|
-
/**
|
|
877
|
-
* Makes color transformer which finds the best text color (black or white) for the given background color
|
|
878
|
-
*
|
|
879
|
-
* @public exported from `@promptbook/color`
|
|
880
|
-
*/
|
|
881
|
-
furthest(Color.get('white'), Color.from('black'));
|
|
882
|
-
|
|
883
|
-
/**
|
|
884
|
-
* Makes color transformer which returns a grayscale version of the color
|
|
885
|
-
*
|
|
886
|
-
* @param amount from 0 to 1
|
|
887
|
-
*
|
|
888
|
-
* @public exported from `@promptbook/color`
|
|
889
|
-
*/
|
|
890
|
-
function grayscale(amount) {
|
|
891
|
-
return ({ red, green, blue, alpha }) => {
|
|
892
|
-
const average = (red + green + blue) / 3;
|
|
893
|
-
red = Math.round(average * amount + red * (1 - amount));
|
|
894
|
-
green = Math.round(average * amount + green * (1 - amount));
|
|
895
|
-
blue = Math.round(average * amount + blue * (1 - amount));
|
|
896
|
-
return Color.fromValues(red, green, blue, alpha);
|
|
897
|
-
};
|
|
898
|
-
}
|
|
899
|
-
|
|
900
821
|
/**
|
|
901
822
|
* Makes color transformer which saturate the given color
|
|
902
823
|
*
|
|
@@ -2088,6 +2009,22 @@
|
|
|
2088
2009
|
}
|
|
2089
2010
|
}
|
|
2090
2011
|
|
|
2012
|
+
/**
|
|
2013
|
+
* This error indicates error from the database
|
|
2014
|
+
*
|
|
2015
|
+
* @public exported from `@promptbook/core`
|
|
2016
|
+
*/
|
|
2017
|
+
class DatabaseError extends Error {
|
|
2018
|
+
constructor(message) {
|
|
2019
|
+
super(message);
|
|
2020
|
+
this.name = 'DatabaseError';
|
|
2021
|
+
Object.setPrototypeOf(this, DatabaseError.prototype);
|
|
2022
|
+
}
|
|
2023
|
+
}
|
|
2024
|
+
/**
|
|
2025
|
+
* TODO: !!!! Explain that NotFoundError (!!! and other specific errors) has priority over DatabaseError in some contexts
|
|
2026
|
+
*/
|
|
2027
|
+
|
|
2091
2028
|
/**
|
|
2092
2029
|
* This error type indicates that you try to use a feature that is not available in the current environment
|
|
2093
2030
|
*
|
|
@@ -2229,6 +2166,7 @@
|
|
|
2229
2166
|
/**
|
|
2230
2167
|
* Generates random token
|
|
2231
2168
|
*
|
|
2169
|
+
* Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
|
|
2232
2170
|
* Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
|
|
2233
2171
|
*
|
|
2234
2172
|
* @private internal helper function
|
|
@@ -2238,6 +2176,7 @@
|
|
|
2238
2176
|
return crypto.randomBytes(randomness).toString('hex');
|
|
2239
2177
|
}
|
|
2240
2178
|
/**
|
|
2179
|
+
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
2241
2180
|
* TODO: Maybe use nanoid instead https://github.com/ai/nanoid
|
|
2242
2181
|
*/
|
|
2243
2182
|
|
|
@@ -2324,6 +2263,7 @@
|
|
|
2324
2263
|
UnexpectedError,
|
|
2325
2264
|
WrappedError,
|
|
2326
2265
|
NotAllowed,
|
|
2266
|
+
DatabaseError,
|
|
2327
2267
|
// TODO: [🪑]> VersionMismatchError,
|
|
2328
2268
|
};
|
|
2329
2269
|
/**
|
|
@@ -2845,6 +2785,25 @@
|
|
|
2845
2785
|
* TODO: [🎺]
|
|
2846
2786
|
*/
|
|
2847
2787
|
|
|
2788
|
+
/**
|
|
2789
|
+
* Returns information about the current runtime environment
|
|
2790
|
+
*
|
|
2791
|
+
* Note: `$` is used to indicate that this function is not a pure function - it looks at the global object to determine the environments
|
|
2792
|
+
*
|
|
2793
|
+
* @public exported from `@promptbook/utils`
|
|
2794
|
+
*/
|
|
2795
|
+
function $detectRuntimeEnvironment() {
|
|
2796
|
+
return {
|
|
2797
|
+
isRunningInBrowser: $isRunningInBrowser(),
|
|
2798
|
+
isRunningInJest: $isRunningInJest(),
|
|
2799
|
+
isRunningInNode: $isRunningInNode(),
|
|
2800
|
+
isRunningInWebWorker: $isRunningInWebWorker(),
|
|
2801
|
+
};
|
|
2802
|
+
}
|
|
2803
|
+
/**
|
|
2804
|
+
* TODO: [🎺] Also detect and report node version here
|
|
2805
|
+
*/
|
|
2806
|
+
|
|
2848
2807
|
/**
|
|
2849
2808
|
* Number of characters per standard line with 11pt Arial font size.
|
|
2850
2809
|
*
|
|
@@ -3855,6 +3814,7 @@
|
|
|
3855
3814
|
}
|
|
3856
3815
|
|
|
3857
3816
|
exports.$deepFreeze = $deepFreeze;
|
|
3817
|
+
exports.$detectRuntimeEnvironment = $detectRuntimeEnvironment;
|
|
3858
3818
|
exports.$getCurrentDate = $getCurrentDate;
|
|
3859
3819
|
exports.$isRunningInBrowser = $isRunningInBrowser;
|
|
3860
3820
|
exports.$isRunningInJest = $isRunningInJest;
|