@promptbook/markitdown 0.103.0-41 → 0.103.0-43

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 (79) hide show
  1. package/esm/index.es.js +40 -113
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/src/_packages/core.index.d.ts +6 -0
  4. package/esm/typings/src/_packages/node.index.d.ts +0 -2
  5. package/esm/typings/src/_packages/types.index.d.ts +14 -0
  6. package/esm/typings/src/_packages/utils.index.d.ts +2 -0
  7. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +2 -4
  8. package/esm/typings/src/book-2.0/agent-source/padBook.d.ts +1 -1
  9. package/esm/typings/src/book-2.0/agent-source/string_book.d.ts +1 -0
  10. package/esm/typings/src/book-components/AvatarProfile/AvatarProfile/AvatarProfile.d.ts +1 -1
  11. package/esm/typings/src/book-components/BookEditor/BookEditor.d.ts +1 -1
  12. package/esm/typings/src/book-components/Chat/save/_common/ChatSaveFormatDefinition.d.ts +1 -1
  13. package/esm/typings/src/book-components/Chat/types/ChatParticipant.d.ts +1 -1
  14. package/esm/typings/src/book-components/Qr/BrandedQrCode.d.ts +1 -1
  15. package/esm/typings/src/book-components/Qr/useQrCode.d.ts +1 -1
  16. package/esm/typings/src/cli/cli-commands/_boilerplate.d.ts +1 -1
  17. package/esm/typings/src/cli/cli-commands/about.d.ts +1 -1
  18. package/esm/typings/src/cli/cli-commands/hello.d.ts +1 -1
  19. package/esm/typings/src/cli/cli-commands/list-models.d.ts +1 -1
  20. package/esm/typings/src/cli/cli-commands/list-scrapers.d.ts +1 -1
  21. package/esm/typings/src/cli/cli-commands/login.d.ts +1 -1
  22. package/esm/typings/src/cli/cli-commands/make.d.ts +1 -1
  23. package/esm/typings/src/cli/cli-commands/prettify.d.ts +1 -1
  24. package/esm/typings/src/cli/cli-commands/run.d.ts +1 -1
  25. package/esm/typings/src/cli/cli-commands/start-agents-server.d.ts +1 -1
  26. package/esm/typings/src/cli/cli-commands/start-pipelines-server.d.ts +1 -1
  27. package/esm/typings/src/cli/cli-commands/test-command.d.ts +1 -1
  28. package/esm/typings/src/cli/common/$addGlobalOptionsToCommand.d.ts +1 -1
  29. package/esm/typings/src/collection/agent-collection/AgentCollection.d.ts +14 -12
  30. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +55 -0
  31. package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +129 -0
  32. package/esm/typings/src/commands/_common/types/CommandParser.d.ts +1 -1
  33. package/esm/typings/src/config.d.ts +1 -1
  34. package/esm/typings/src/errors/0-index.d.ts +3 -0
  35. package/esm/typings/src/errors/DatabaseError.d.ts +9 -0
  36. package/esm/typings/src/execution/createPipelineExecutor/40-executeAttempts.d.ts +1 -1
  37. package/esm/typings/src/high-level-abstractions/_common/HighLevelAbstraction.d.ts +1 -1
  38. package/esm/typings/src/llm-providers/_common/register/$registeredLlmToolsMessage.d.ts +1 -1
  39. package/esm/typings/src/llm-providers/_common/register/LlmToolsMetadata.d.ts +1 -1
  40. package/esm/typings/src/llm-providers/agent/Agent.d.ts +5 -2
  41. package/esm/typings/src/llm-providers/agent/AgentLlmExecutionTools.d.ts +1 -1
  42. package/esm/typings/src/llm-providers/agent/AgentOptions.d.ts +4 -2
  43. package/esm/typings/src/llm-providers/agent/CreateAgentLlmExecutionToolsOptions.d.ts +2 -2
  44. package/esm/typings/src/llm-providers/agent/createAgentLlmExecutionTools.d.ts +1 -1
  45. package/esm/typings/src/prepare/PrepareAndScrapeOptions.d.ts +1 -0
  46. package/esm/typings/src/remote-server/startAgentServer.d.ts +2 -2
  47. package/esm/typings/src/remote-server/types/RemoteServerOptions.d.ts +0 -19
  48. package/esm/typings/src/storage/env-storage/$EnvStorage.d.ts +1 -1
  49. package/esm/typings/src/transpilers/_common/BookTranspiler.d.ts +5 -1
  50. package/esm/typings/src/transpilers/_common/BookTranspilerOptions.d.ts +1 -1
  51. package/esm/typings/src/transpilers/_common/register/$bookTranspilersRegister.d.ts +1 -1
  52. package/esm/typings/src/transpilers/formatted-book-in-markdown/FormattedBookInMarkdownTranspiler.d.ts +4 -1
  53. package/esm/typings/src/transpilers/formatted-book-in-markdown/register.d.ts +1 -1
  54. package/esm/typings/src/transpilers/openai-sdk/OpenAiSdkTranspiler.d.ts +4 -1
  55. package/esm/typings/src/transpilers/openai-sdk/register.d.ts +1 -1
  56. package/esm/typings/src/utils/color/operators/darken.d.ts +1 -1
  57. package/esm/typings/src/utils/color/operators/grayscale.d.ts +1 -1
  58. package/esm/typings/src/utils/color/operators/lighten.d.ts +1 -1
  59. package/esm/typings/src/utils/color/operators/mixWithColor.d.ts +1 -1
  60. package/esm/typings/src/utils/color/operators/saturate.d.ts +1 -1
  61. package/esm/typings/src/utils/environment/$detectRuntimeEnvironment.d.ts +16 -0
  62. package/esm/typings/src/utils/execCommand/$execCommand.d.ts +1 -1
  63. package/esm/typings/src/utils/execCommand/$execCommands.d.ts +1 -1
  64. package/esm/typings/src/utils/files/$induceBookDownload.d.ts +2 -2
  65. package/esm/typings/src/utils/files/$induceFileDownload.d.ts +2 -2
  66. package/esm/typings/src/utils/files/ObjectUrl.d.ts +1 -1
  67. package/esm/typings/src/utils/misc/aboutPromptbookInformation.d.ts +6 -0
  68. package/esm/typings/src/utils/organization/$side_effect.d.ts +1 -1
  69. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +22 -0
  70. package/esm/typings/src/utils/random/$randomToken.d.ts +1 -0
  71. package/esm/typings/src/utils/serialization/$deepFreeze.d.ts +1 -1
  72. package/esm/typings/src/utils/serialization/serializeToPromptbookJavascript.d.ts +2 -2
  73. package/esm/typings/src/version.d.ts +1 -1
  74. package/package.json +2 -2
  75. package/umd/index.umd.js +40 -113
  76. package/umd/index.umd.js.map +1 -1
  77. package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.d.ts +0 -88
  78. package/esm/typings/src/collection/agent-collection/constructors/AgentCollectionInDirectory.test.d.ts +0 -1
  79. package/esm/typings/src/execution/utils/logLlmCall.d.ts +0 -8
@@ -1,6 +1,9 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
- import { AgentBasicInformation, BookParameter, LlmExecutionTools, string_agent_name, string_book, string_url_image } from '../../_packages/types.index';
3
- import { AgentOptions } from './AgentOptions';
2
+ import type { AgentBasicInformation, BookParameter } from '../../book-2.0/agent-source/AgentBasicInformation';
3
+ import type { string_book } from '../../book-2.0/agent-source/string_book';
4
+ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
5
+ import type { string_agent_name, string_url_image } from '../../types/typeAliases';
6
+ import type { AgentOptions } from './AgentOptions';
4
7
  /**
5
8
  * Represents one AI Agent
6
9
  *
@@ -5,7 +5,7 @@ import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
5
5
  import type { ChatPromptResult } from '../../execution/PromptResult';
6
6
  import type { Prompt } from '../../types/Prompt';
7
7
  import type { string_markdown, string_markdown_text, string_model_name, string_title } from '../../types/typeAliases';
8
- import { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecutionToolsOptions';
8
+ import type { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecutionToolsOptions';
9
9
  /**
10
10
  * Execution Tools for calling LLM models with a predefined agent "soul"
11
11
  * This wraps underlying LLM execution tools and applies agent-specific system prompts and requirements
@@ -1,5 +1,7 @@
1
- import { CommonToolsOptions, ExecutionTools, string_book } from '../../_packages/types.index';
2
- import { Updatable } from '../../types/Updatable';
1
+ import type { string_book } from '../../book-2.0/agent-source/string_book';
2
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
3
+ import type { ExecutionTools } from '../../execution/ExecutionTools';
4
+ import type { Updatable } from '../../types/Updatable';
3
5
  /**
4
6
  * Options for creating an Agent
5
7
  */
@@ -1,6 +1,6 @@
1
- import type { string_book } from '../../_packages/types.index';
1
+ import type { string_book } from '../../book-2.0/agent-source/string_book';
2
2
  import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
3
- import type { OpenAiAssistantExecutionTools } from '../openai/OpenAiAssistantExecutionTools';
3
+ import { OpenAiAssistantExecutionTools } from '../openai/OpenAiAssistantExecutionTools';
4
4
  /**
5
5
  * Options for creating AgentLlmExecutionTools
6
6
  */
@@ -1,5 +1,5 @@
1
1
  import { AgentLlmExecutionTools } from './AgentLlmExecutionTools';
2
- import { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecutionToolsOptions';
2
+ import type { CreateAgentLlmExecutionToolsOptions } from './CreateAgentLlmExecutionToolsOptions';
3
3
  /**
4
4
  * Creates new AgentLlmExecutionTools that wrap underlying LLM tools with agent-specific behavior
5
5
  *
@@ -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 { TODO_any } from '../_packages/types.index';
2
- import { number_port } from '../types/typeAliases';
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,5 @@
1
+ import type { $side_effect } from '../../utils/organization/$side_effect';
1
2
  import type { PromptbookStorage } from '../_common/PromptbookStorage';
2
- import { $side_effect } from '../../utils/organization/$side_effect';
3
3
  /**
4
4
  * Stores data in .env variables
5
5
  *
@@ -1,5 +1,9 @@
1
1
  import { Promisable } from 'type-fest';
2
- import { BookTranspilerOptions, ExecutionTools, Registered, string_book, string_name, string_script, string_title } from '../../_packages/types.index';
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,4 @@
1
- import { CommonToolsOptions } from '../../execution/CommonToolsOptions';
1
+ import type { CommonToolsOptions } from '../../execution/CommonToolsOptions';
2
2
  /**
3
3
  * Options for the BookTranspiler.
4
4
  */
@@ -1,5 +1,5 @@
1
1
  import { $Register } from '../../../utils/misc/$Register';
2
- import { BookTranspiler } from '../BookTranspiler';
2
+ import type { BookTranspiler } from '../BookTranspiler';
3
3
  /**
4
4
  * Register for book transpilers.
5
5
  *
@@ -1,4 +1,7 @@
1
- import { BookTranspilerOptions, ExecutionTools, string_book, string_markdown } from '../../_packages/types.index';
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,4 @@
1
- import { Registration } from '../../_packages/types.index';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of transpiler
4
4
  *
@@ -1,4 +1,7 @@
1
- import { BookTranspilerOptions, ExecutionTools, string_book, string_script } from '../../_packages/types.index';
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
  *
@@ -1,4 +1,4 @@
1
- import { Registration } from '../../_packages/types.index';
1
+ import type { Registration } from '../../utils/misc/$Register';
2
2
  /**
3
3
  * Registration of transpiler
4
4
  *
@@ -1,4 +1,4 @@
1
- import { number_percent } from '../../../types/typeAliases';
1
+ import type { number_percent } from '../../../types/typeAliases';
2
2
  import type { ColorTransformer } from './ColorTransformer';
3
3
  /**
4
4
  * Makes color transformer which darker the given color
@@ -1,4 +1,4 @@
1
- import { number_percent } from '../../../types/typeAliases';
1
+ import type { number_percent } from '../../../types/typeAliases';
2
2
  import type { ColorTransformer } from './ColorTransformer';
3
3
  /**
4
4
  * Makes color transformer which returns a grayscale version of the color
@@ -1,5 +1,5 @@
1
+ import type { number_percent } from '../../../types/typeAliases';
1
2
  import type { ColorTransformer } from './ColorTransformer';
2
- import { number_percent } from '../../../types/typeAliases';
3
3
  /**
4
4
  * Makes color transformer which lighten the given color
5
5
  *
@@ -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
  *
@@ -1,4 +1,4 @@
1
- import { number_percent } from '../../../types/typeAliases';
1
+ import type { number_percent } from '../../../types/typeAliases';
2
2
  import type { ColorTransformer } from './ColorTransformer';
3
3
  /**
4
4
  * Makes color transformer which saturate the given color
@@ -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,4 +1,4 @@
1
- import { $side_effect } from '../organization/$side_effect';
1
+ import type { $side_effect } from '../organization/$side_effect';
2
2
  import type { ExecCommandOptions } from './ExecCommandOptions';
3
3
  /**
4
4
  * Run one command in a shell
@@ -1,4 +1,4 @@
1
- import { $side_effect } from '../organization/$side_effect';
1
+ import type { $side_effect } from '../organization/$side_effect';
2
2
  /**
3
3
  * Run multiple commands in a shell in sequence
4
4
  *
@@ -1,5 +1,5 @@
1
- import { string_book } from '../../_packages/types.index';
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, ...
@@ -1,4 +1,4 @@
1
- import { really_any } from './really_any';
1
+ import type { really_any } from './really_any';
2
2
  /**
3
3
  * Organizational helper to mark a function that produces side effects
4
4
  *
@@ -0,0 +1,22 @@
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 } 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;
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 {};
@@ -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
@@ -1,5 +1,5 @@
1
1
  import type { ReadonlyDeep } from 'type-fest';
2
- import { $side_effect } from '../organization/$side_effect';
2
+ import type { $side_effect } from '../organization/$side_effect';
3
3
  /**
4
4
  * Freezes the given object and all its nested objects recursively
5
5
  *
@@ -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-40`).
18
+ * It follows semantic versioning (e.g., `0.103.0-42`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/markitdown",
3
- "version": "0.103.0-41",
3
+ "version": "0.103.0-43",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -91,7 +91,7 @@
91
91
  "module": "./esm/index.es.js",
92
92
  "typings": "./esm/typings/src/_packages/markitdown.index.d.ts",
93
93
  "peerDependencies": {
94
- "@promptbook/core": "0.103.0-41"
94
+ "@promptbook/core": "0.103.0-43"
95
95
  },
96
96
  "dependencies": {
97
97
  "crypto": "1.0.1",
package/umd/index.umd.js CHANGED
@@ -24,7 +24,7 @@
24
24
  * @generated
25
25
  * @see https://github.com/webgptorg/promptbook
26
26
  */
27
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-41';
27
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-43';
28
28
  /**
29
29
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
30
30
  * Note: [💞] Ignore a discrepancy between file name and entity name
@@ -705,6 +705,23 @@
705
705
  * TODO: Maybe connect with textures
706
706
  */
707
707
 
708
+ /**
709
+ * Makes color transformer which returns a grayscale version of the color
710
+ *
711
+ * @param amount from 0 to 1
712
+ *
713
+ * @public exported from `@promptbook/color`
714
+ */
715
+ function grayscale(amount) {
716
+ return ({ red, green, blue, alpha }) => {
717
+ const average = (red + green + blue) / 3;
718
+ red = Math.round(average * amount + red * (1 - amount));
719
+ green = Math.round(average * amount + green * (1 - amount));
720
+ blue = Math.round(average * amount + blue * (1 - amount));
721
+ return Color.fromValues(red, green, blue, alpha);
722
+ };
723
+ }
724
+
708
725
  /**
709
726
  * Converts HSL values to RGB values
710
727
  *
@@ -820,102 +837,6 @@
820
837
  * TODO: Maybe implement by mix+hsl
821
838
  */
822
839
 
823
- /**
824
- * Calculates distance between two colors
825
- *
826
- * @param color1 first color
827
- * @param color2 second color
828
- *
829
- * Note: This function is inefficient. Use colorDistanceSquared instead if possible.
830
- *
831
- * @public exported from `@promptbook/color`
832
- */
833
- /**
834
- * Calculates distance between two colors without square root
835
- *
836
- * @param color1 first color
837
- * @param color2 second color
838
- *
839
- * @public exported from `@promptbook/color`
840
- */
841
- function colorDistanceSquared(color1, color2) {
842
- const rmean = (color1.red + color2.red) / 2;
843
- const r = color1.red - color2.red;
844
- const g = color1.green - color2.green;
845
- const b = color1.blue - color2.blue;
846
- const weightR = 2 + rmean / 256;
847
- const weightG = 4.0;
848
- const weightB = 2 + (255 - rmean) / 256;
849
- const distance = weightR * r * r + weightG * g * g + weightB * b * b;
850
- return distance;
851
- }
852
-
853
- /**
854
- * Makes color transformer which finds the nearest color from the given list
855
- *
856
- * @param colors array of colors to choose from
857
- *
858
- * @public exported from `@promptbook/color`
859
- */
860
- function nearest(...colors) {
861
- return (color) => {
862
- const distances = colors.map((c) => colorDistanceSquared(c, color));
863
- const minDistance = Math.min(...distances);
864
- const minIndex = distances.indexOf(minDistance);
865
- const nearestColor = colors[minIndex];
866
- return nearestColor;
867
- };
868
- }
869
-
870
- /**
871
- * Color transformer which returns the negative color
872
- *
873
- * @public exported from `@promptbook/color`
874
- */
875
- function negative(color) {
876
- const r = 255 - color.red;
877
- const g = 255 - color.green;
878
- const b = 255 - color.blue;
879
- return Color.fromValues(r, g, b, color.alpha);
880
- }
881
-
882
- /**
883
- * Makes color transformer which finds the furthest color from the given list
884
- *
885
- * @param colors array of colors to choose from
886
- *
887
- * @public exported from `@promptbook/color`
888
- */
889
- function furthest(...colors) {
890
- return (color) => {
891
- const furthestColor = negative(nearest(...colors.map(negative))(color));
892
- return furthestColor;
893
- };
894
- }
895
- /**
896
- * Makes color transformer which finds the best text color (black or white) for the given background color
897
- *
898
- * @public exported from `@promptbook/color`
899
- */
900
- furthest(Color.get('white'), Color.from('black'));
901
-
902
- /**
903
- * Makes color transformer which returns a grayscale version of the color
904
- *
905
- * @param amount from 0 to 1
906
- *
907
- * @public exported from `@promptbook/color`
908
- */
909
- function grayscale(amount) {
910
- return ({ red, green, blue, alpha }) => {
911
- const average = (red + green + blue) / 3;
912
- red = Math.round(average * amount + red * (1 - amount));
913
- green = Math.round(average * amount + green * (1 - amount));
914
- blue = Math.round(average * amount + blue * (1 - amount));
915
- return Color.fromValues(red, green, blue, alpha);
916
- };
917
- }
918
-
919
840
  /**
920
841
  * Makes color transformer which saturate the given color
921
842
  *
@@ -3026,6 +2947,7 @@
3026
2947
  /**
3027
2948
  * Generates random token
3028
2949
  *
2950
+ * Note: `$` is used to indicate that this function is not a pure function - it is not deterministic
3029
2951
  * Note: This function is cryptographically secure (it uses crypto.randomBytes internally)
3030
2952
  *
3031
2953
  * @private internal helper function
@@ -3153,6 +3075,19 @@
3153
3075
  }
3154
3076
  }
3155
3077
 
3078
+ /**
3079
+ * This error indicates error from the database
3080
+ *
3081
+ * @public exported from `@promptbook/core`
3082
+ */
3083
+ class DatabaseError extends Error {
3084
+ constructor(message) {
3085
+ super(message);
3086
+ this.name = 'DatabaseError';
3087
+ Object.setPrototypeOf(this, DatabaseError.prototype);
3088
+ }
3089
+ }
3090
+
3156
3091
  /**
3157
3092
  * This error occurs when some expectation is not met in the execution of the pipeline
3158
3093
  *
@@ -3256,6 +3191,7 @@
3256
3191
  UnexpectedError,
3257
3192
  WrappedError,
3258
3193
  NotAllowed,
3194
+ DatabaseError,
3259
3195
  // TODO: [🪑]> VersionMismatchError,
3260
3196
  };
3261
3197
  /**
@@ -5693,18 +5629,6 @@
5693
5629
  return replacedTemplates;
5694
5630
  }
5695
5631
 
5696
- /**
5697
- * Logs an LLM call with the given report.
5698
- *
5699
- * @private internal utility of `createPipelineExecutor`
5700
- */
5701
- function logLlmCall(logLlmCall, report) {
5702
- logLlmCall({
5703
- modelName: 'model' /* <- TODO: How to get model name from the report */,
5704
- report,
5705
- });
5706
- }
5707
-
5708
5632
  /**
5709
5633
  * Extracts all code blocks from markdown.
5710
5634
  *
@@ -6050,7 +5974,7 @@
6050
5974
  */
6051
5975
  async function executeAttempts(options) {
6052
5976
  const { jokerParameterNames, priority, maxAttempts, // <- Note: [💂]
6053
- preparedContent, parameters, task, preparedPipeline, tools, $executionReport, pipelineIdentification, maxExecutionAttempts, onProgress, logLlmCall: logLlmCall$1, } = options;
5977
+ preparedContent, parameters, task, preparedPipeline, tools, $executionReport, pipelineIdentification, maxExecutionAttempts, onProgress, logLlmCall, } = options;
6054
5978
  const $ongoingTaskResult = {
6055
5979
  $result: null,
6056
5980
  $resultString: null,
@@ -6312,8 +6236,11 @@
6312
6236
  : serializeError($ongoingTaskResult.$expectError),
6313
6237
  };
6314
6238
  $executionReport.promptExecutions.push(executionPromptReport);
6315
- if (logLlmCall$1) {
6316
- logLlmCall(logLlmCall$1, executionPromptReport);
6239
+ if (logLlmCall) {
6240
+ logLlmCall({
6241
+ modelName: 'model' /* <- TODO: How to get model name from the report */,
6242
+ report: executionPromptReport,
6243
+ });
6317
6244
  }
6318
6245
  }
6319
6246
  }
@@ -6587,7 +6514,7 @@
6587
6514
  },
6588
6515
  content: task.content,
6589
6516
  parameters,
6590
- };
6517
+ }; /* <- Note: [🤛] */
6591
6518
  const taskEmbeddingResult = await llmTools.callEmbeddingModel(taskEmbeddingPrompt);
6592
6519
  const knowledgePiecesWithRelevance = preparedPipeline.knowledgePieces.map((knowledgePiece) => {
6593
6520
  const { index } = knowledgePiece;