@promptbook/editable 0.103.0-54 → 0.103.0-56

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.
@@ -0,0 +1,28 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * COMPONENT commitment definition
5
+ *
6
+ * The COMPONENT commitment defines a UI component that the agent can render in the chat.
7
+ *
8
+ * @private [🪔] Maybe export the commitments through some package
9
+ */
10
+ export declare class ComponentCommitmentDefinition extends BaseCommitmentDefinition<'COMPONENT'> {
11
+ constructor();
12
+ /**
13
+ * Short one-line description of COMPONENT.
14
+ */
15
+ get description(): string;
16
+ /**
17
+ * Icon for this commitment.
18
+ */
19
+ get icon(): string;
20
+ /**
21
+ * Markdown documentation for COMPONENT commitment.
22
+ */
23
+ get documentation(): string;
24
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
25
+ }
26
+ /**
27
+ * Note: [💞] Ignore a discrepancy between file name and entity name
28
+ */
@@ -0,0 +1,34 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * FROM commitment definition
5
+ *
6
+ * The FROM commitment tells the agent that its `agentSource` is inherited from another agent.
7
+ *
8
+ * Example usage in agent source:
9
+ *
10
+ * ```book
11
+ * FROM https://s6.ptbk.io/benjamin-white
12
+ * ```
13
+ *
14
+ * @private [🪔] Maybe export the commitments through some package
15
+ */
16
+ export declare class FromCommitmentDefinition extends BaseCommitmentDefinition<'FROM'> {
17
+ constructor(type?: 'FROM');
18
+ /**
19
+ * Short one-line description of FROM.
20
+ */
21
+ get description(): string;
22
+ /**
23
+ * Icon for this commitment.
24
+ */
25
+ get icon(): string;
26
+ /**
27
+ * Markdown documentation for FROM commitment.
28
+ */
29
+ get documentation(): string;
30
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
31
+ }
32
+ /**
33
+ * Note: [💞] Ignore a discrepancy between file name and entity name
34
+ */
@@ -0,0 +1,35 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * LANGUAGE commitment definition
5
+ *
6
+ * The LANGUAGE/LANGUAGES commitment specifies the language(s) the agent should use in its responses.
7
+ *
8
+ * Example usage in agent source:
9
+ *
10
+ * ```book
11
+ * LANGUAGE English
12
+ * LANGUAGE French, English and Czech
13
+ * ```
14
+ *
15
+ * @private [🪔] Maybe export the commitments through some package
16
+ */
17
+ export declare class LanguageCommitmentDefinition extends BaseCommitmentDefinition<'LANGUAGE' | 'LANGUAGES'> {
18
+ constructor(type?: 'LANGUAGE' | 'LANGUAGES');
19
+ /**
20
+ * Short one-line description of LANGUAGE/LANGUAGES.
21
+ */
22
+ get description(): string;
23
+ /**
24
+ * Icon for this commitment.
25
+ */
26
+ get icon(): string;
27
+ /**
28
+ * Markdown documentation for LANGUAGE/LANGUAGES commitment.
29
+ */
30
+ get documentation(): string;
31
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
32
+ }
33
+ /**
34
+ * Note: [💞] Ignore a discrepancy between file name and entity name
35
+ */
@@ -14,6 +14,12 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
14
14
  * META COLOR #00ff00
15
15
  * ```
16
16
  *
17
+ * You can also specify multiple colors separated by comma:
18
+ *
19
+ * ```book
20
+ * META COLOR #ff0000, #00ff00, #0000ff
21
+ * ```
22
+ *
17
23
  * @private [🪔] Maybe export the commitments through some package
18
24
  */
19
25
  export declare class MetaColorCommitmentDefinition extends BaseCommitmentDefinition<'META COLOR'> {
@@ -0,0 +1,42 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * META FONT commitment definition
5
+ *
6
+ * The META FONT commitment sets the agent's font.
7
+ * This commitment is special because it doesn't affect the system message,
8
+ * but is handled separately in the parsing logic.
9
+ *
10
+ * Example usage in agent source:
11
+ *
12
+ * ```book
13
+ * META FONT Poppins, Arial, sans-serif
14
+ * META FONT Roboto
15
+ * ```
16
+ *
17
+ * @private [🪔] Maybe export the commitments through some package
18
+ */
19
+ export declare class MetaFontCommitmentDefinition extends BaseCommitmentDefinition<'META FONT'> {
20
+ constructor();
21
+ /**
22
+ * Short one-line description of META FONT.
23
+ */
24
+ get description(): string;
25
+ /**
26
+ * Icon for this commitment.
27
+ */
28
+ get icon(): string;
29
+ /**
30
+ * Markdown documentation for META FONT commitment.
31
+ */
32
+ get documentation(): string;
33
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
34
+ /**
35
+ * Extracts the font from the content
36
+ * This is used by the parsing logic
37
+ */
38
+ extractProfileFont(content: string): string | null;
39
+ }
40
+ /**
41
+ * Note: [💞] Ignore a discrepancy between file name and entity name
42
+ */
@@ -0,0 +1,35 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * OPEN commitment definition
5
+ *
6
+ * The OPEN commitment specifies that the agent can be modified by conversation.
7
+ * This is the default behavior.
8
+ *
9
+ * Example usage in agent source:
10
+ *
11
+ * ```book
12
+ * OPEN
13
+ * ```
14
+ *
15
+ * @private [🪔] Maybe export the commitments through some package
16
+ */
17
+ export declare class OpenCommitmentDefinition extends BaseCommitmentDefinition<'OPEN'> {
18
+ constructor();
19
+ /**
20
+ * Short one-line description of OPEN.
21
+ */
22
+ get description(): string;
23
+ /**
24
+ * Icon for this commitment.
25
+ */
26
+ get icon(): string;
27
+ /**
28
+ * Markdown documentation for OPEN commitment.
29
+ */
30
+ get documentation(): string;
31
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, _content: string): AgentModelRequirements;
32
+ }
33
+ /**
34
+ * Note: [💞] Ignore a discrepancy between file name and entity name
35
+ */
@@ -0,0 +1,53 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * USE commitment definition
5
+ *
6
+ * The USE commitment indicates that the agent should utilize specific tools or capabilities
7
+ * to access and interact with external systems when necessary.
8
+ *
9
+ * Supported USE types:
10
+ * - USE BROWSER: Enables the agent to use a web browser tool
11
+ * - USE SEARCH ENGINE (future): Enables search engine access
12
+ * - USE FILE SYSTEM (future): Enables file system operations
13
+ * - USE MCP (future): Enables MCP server connections
14
+ *
15
+ * The content following the USE commitment is ignored (similar to NOTE).
16
+ *
17
+ * Example usage in agent source:
18
+ *
19
+ * ```book
20
+ * USE BROWSER
21
+ * USE SEARCH ENGINE
22
+ * ```
23
+ *
24
+ * @private [🪔] Maybe export the commitments through some package
25
+ */
26
+ export declare class UseCommitmentDefinition extends BaseCommitmentDefinition<`USE${string}`> {
27
+ constructor();
28
+ /**
29
+ * Short one-line description of USE commitments.
30
+ */
31
+ get description(): string;
32
+ /**
33
+ * Icon for this commitment.
34
+ */
35
+ get icon(): string;
36
+ /**
37
+ * Markdown documentation for USE commitment.
38
+ */
39
+ get documentation(): string;
40
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
41
+ /**
42
+ * Extracts the tool type from the USE commitment
43
+ * This is used by the parsing logic
44
+ */
45
+ extractToolType(content: string): string | null;
46
+ /**
47
+ * Checks if this is a known USE type
48
+ */
49
+ isKnownUseType(useType: string): boolean;
50
+ }
51
+ /**
52
+ * Note: [💞] Ignore a discrepancy between file name and entity name
53
+ */
@@ -0,0 +1,38 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * USE BROWSER commitment definition
5
+ *
6
+ * The `USE BROWSER` commitment indicates that the agent should utilize a web browser tool
7
+ * to access and retrieve up-to-date information from the internet when necessary.
8
+ *
9
+ * The content following `USE BROWSER` is ignored (similar to NOTE).
10
+ *
11
+ * Example usage in agent source:
12
+ *
13
+ * ```book
14
+ * USE BROWSER
15
+ * USE BROWSER This will be ignored
16
+ * ```
17
+ *
18
+ * @private [🪔] Maybe export the commitments through some package
19
+ */
20
+ export declare class UseBrowserCommitmentDefinition extends BaseCommitmentDefinition<'USE BROWSER'> {
21
+ constructor();
22
+ /**
23
+ * Short one-line description of USE BROWSER.
24
+ */
25
+ get description(): string;
26
+ /**
27
+ * Icon for this commitment.
28
+ */
29
+ get icon(): string;
30
+ /**
31
+ * Markdown documentation for USE BROWSER commitment.
32
+ */
33
+ get documentation(): string;
34
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
35
+ }
36
+ /**
37
+ * Note: [💞] Ignore a discrepancy between file name and entity name
38
+ */
@@ -0,0 +1,37 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * USE MCP commitment definition
5
+ *
6
+ * The `USE MCP` commitment allows to specify an MCP server URL which the agent will connect to
7
+ * for retrieving additional instructions and actions.
8
+ *
9
+ * The content following `USE MCP` is the URL of the MCP server.
10
+ *
11
+ * Example usage in agent source:
12
+ *
13
+ * ```book
14
+ * USE MCP http://mcp-server-url.com
15
+ * ```
16
+ *
17
+ * @private [🪔] Maybe export the commitments through some package
18
+ */
19
+ export declare class UseMcpCommitmentDefinition extends BaseCommitmentDefinition<'USE MCP'> {
20
+ constructor();
21
+ /**
22
+ * Short one-line description of USE MCP.
23
+ */
24
+ get description(): string;
25
+ /**
26
+ * Icon for this commitment.
27
+ */
28
+ get icon(): string;
29
+ /**
30
+ * Markdown documentation for USE MCP commitment.
31
+ */
32
+ get documentation(): string;
33
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
34
+ }
35
+ /**
36
+ * Note: [💞] Ignore a discrepancy between file name and entity name
37
+ */
@@ -0,0 +1,38 @@
1
+ import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
2
+ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
3
+ /**
4
+ * USE SEARCH ENGINE commitment definition
5
+ *
6
+ * The `USE SEARCH ENGINE` commitment indicates that the agent should utilize a search engine tool
7
+ * to access and retrieve up-to-date information from the internet when necessary.
8
+ *
9
+ * The content following `USE SEARCH ENGINE` is ignored (similar to NOTE).
10
+ *
11
+ * Example usage in agent source:
12
+ *
13
+ * ```book
14
+ * USE SEARCH ENGINE
15
+ * USE SEARCH ENGINE This will be ignored
16
+ * ```
17
+ *
18
+ * @private [🪔] Maybe export the commitments through some package
19
+ */
20
+ export declare class UseSearchEngineCommitmentDefinition extends BaseCommitmentDefinition<'USE SEARCH ENGINE'> {
21
+ constructor();
22
+ /**
23
+ * Short one-line description of USE SEARCH ENGINE.
24
+ */
25
+ get description(): string;
26
+ /**
27
+ * Icon for this commitment.
28
+ */
29
+ get icon(): string;
30
+ /**
31
+ * Markdown documentation for USE SEARCH ENGINE commitment.
32
+ */
33
+ get documentation(): string;
34
+ applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
35
+ }
36
+ /**
37
+ * Note: [💞] Ignore a discrepancy between file name and entity name
38
+ */
@@ -1,10 +1,14 @@
1
1
  import type { BookCommitment } from './_base/BookCommitment';
2
2
  import type { CommitmentDefinition } from './_base/CommitmentDefinition';
3
3
  import { ActionCommitmentDefinition } from './ACTION/ACTION';
4
+ import { ClosedCommitmentDefinition } from './CLOSED/CLOSED';
5
+ import { ComponentCommitmentDefinition } from './COMPONENT/COMPONENT';
4
6
  import { DeleteCommitmentDefinition } from './DELETE/DELETE';
5
7
  import { FormatCommitmentDefinition } from './FORMAT/FORMAT';
8
+ import { FromCommitmentDefinition } from './FROM/FROM';
6
9
  import { GoalCommitmentDefinition } from './GOAL/GOAL';
7
10
  import { KnowledgeCommitmentDefinition } from './KNOWLEDGE/KNOWLEDGE';
11
+ import { LanguageCommitmentDefinition } from './LANGUAGE/LANGUAGE';
8
12
  import { MemoryCommitmentDefinition } from './MEMORY/MEMORY';
9
13
  import { AgentMessageCommitmentDefinition } from './MESSAGE/AgentMessageCommitmentDefinition';
10
14
  import { InitialMessageCommitmentDefinition } from './MESSAGE/InitialMessageCommitmentDefinition';
@@ -12,14 +16,21 @@ import { MessageCommitmentDefinition } from './MESSAGE/MESSAGE';
12
16
  import { UserMessageCommitmentDefinition } from './MESSAGE/UserMessageCommitmentDefinition';
13
17
  import { MetaCommitmentDefinition } from './META/META';
14
18
  import { MetaColorCommitmentDefinition } from './META_COLOR/META_COLOR';
19
+ import { MetaFontCommitmentDefinition } from './META_FONT/META_FONT';
15
20
  import { MetaImageCommitmentDefinition } from './META_IMAGE/META_IMAGE';
21
+ import { MetaLinkCommitmentDefinition } from './META_LINK/META_LINK';
16
22
  import { ModelCommitmentDefinition } from './MODEL/MODEL';
17
23
  import { NoteCommitmentDefinition } from './NOTE/NOTE';
24
+ import { OpenCommitmentDefinition } from './OPEN/OPEN';
18
25
  import { PersonaCommitmentDefinition } from './PERSONA/PERSONA';
19
26
  import { RuleCommitmentDefinition } from './RULE/RULE';
20
27
  import { SampleCommitmentDefinition } from './SAMPLE/SAMPLE';
21
28
  import { ScenarioCommitmentDefinition } from './SCENARIO/SCENARIO';
22
29
  import { StyleCommitmentDefinition } from './STYLE/STYLE';
30
+ import { UseCommitmentDefinition } from './USE/USE';
31
+ import { UseBrowserCommitmentDefinition } from './USE_BROWSER/USE_BROWSER';
32
+ import { UseMcpCommitmentDefinition } from './USE_MCP/USE_MCP';
33
+ import { UseSearchEngineCommitmentDefinition } from './USE_SEARCH_ENGINE/USE_SEARCH_ENGINE';
23
34
  import { NotYetImplementedCommitmentDefinition } from './_base/NotYetImplementedCommitmentDefinition';
24
35
  /**
25
36
  * Registry of all available commitment definitions
@@ -28,7 +39,7 @@ import { NotYetImplementedCommitmentDefinition } from './_base/NotYetImplemented
28
39
  *
29
40
  * @private Use functions to access commitments instead of this array directly
30
41
  */
31
- export declare const COMMITMENT_REGISTRY: readonly [PersonaCommitmentDefinition, PersonaCommitmentDefinition, KnowledgeCommitmentDefinition, MemoryCommitmentDefinition, MemoryCommitmentDefinition, StyleCommitmentDefinition, StyleCommitmentDefinition, RuleCommitmentDefinition, RuleCommitmentDefinition, SampleCommitmentDefinition, SampleCommitmentDefinition, FormatCommitmentDefinition, FormatCommitmentDefinition, ModelCommitmentDefinition, ModelCommitmentDefinition, ActionCommitmentDefinition, ActionCommitmentDefinition, MetaImageCommitmentDefinition, MetaColorCommitmentDefinition, MetaCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, GoalCommitmentDefinition, GoalCommitmentDefinition, InitialMessageCommitmentDefinition, UserMessageCommitmentDefinition, AgentMessageCommitmentDefinition, MessageCommitmentDefinition, MessageCommitmentDefinition, ScenarioCommitmentDefinition, ScenarioCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, NotYetImplementedCommitmentDefinition<"EXPECT">, NotYetImplementedCommitmentDefinition<"BEHAVIOUR">, NotYetImplementedCommitmentDefinition<"BEHAVIOURS">, NotYetImplementedCommitmentDefinition<"AVOID">, NotYetImplementedCommitmentDefinition<"AVOIDANCE">, NotYetImplementedCommitmentDefinition<"CONTEXT">];
42
+ export declare const COMMITMENT_REGISTRY: readonly [PersonaCommitmentDefinition, PersonaCommitmentDefinition, KnowledgeCommitmentDefinition, MemoryCommitmentDefinition, MemoryCommitmentDefinition, StyleCommitmentDefinition, StyleCommitmentDefinition, RuleCommitmentDefinition, RuleCommitmentDefinition, LanguageCommitmentDefinition, LanguageCommitmentDefinition, SampleCommitmentDefinition, SampleCommitmentDefinition, FormatCommitmentDefinition, FormatCommitmentDefinition, FromCommitmentDefinition, ModelCommitmentDefinition, ModelCommitmentDefinition, ActionCommitmentDefinition, ActionCommitmentDefinition, ComponentCommitmentDefinition, MetaImageCommitmentDefinition, MetaColorCommitmentDefinition, MetaFontCommitmentDefinition, MetaLinkCommitmentDefinition, MetaCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, NoteCommitmentDefinition, GoalCommitmentDefinition, GoalCommitmentDefinition, InitialMessageCommitmentDefinition, UserMessageCommitmentDefinition, AgentMessageCommitmentDefinition, MessageCommitmentDefinition, MessageCommitmentDefinition, ScenarioCommitmentDefinition, ScenarioCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, DeleteCommitmentDefinition, OpenCommitmentDefinition, ClosedCommitmentDefinition, UseBrowserCommitmentDefinition, UseSearchEngineCommitmentDefinition, UseMcpCommitmentDefinition, UseCommitmentDefinition, NotYetImplementedCommitmentDefinition<"EXPECT">, NotYetImplementedCommitmentDefinition<"BEHAVIOUR">, NotYetImplementedCommitmentDefinition<"BEHAVIOURS">, NotYetImplementedCommitmentDefinition<"AVOID">, NotYetImplementedCommitmentDefinition<"AVOIDANCE">, NotYetImplementedCommitmentDefinition<"CONTEXT">];
32
43
  /**
33
44
  * Gets a commitment definition by its type
34
45
  * @param type The commitment type to look up
@@ -1,2 +1,5 @@
1
1
  #!/usr/bin/env ts-node
2
2
  export {};
3
+ /**
4
+ * Note: [⚫] Code in this file should never be published in any package
5
+ */
@@ -24,6 +24,14 @@ export declare class Color {
24
24
  * @returns Color object
25
25
  */
26
26
  static from(color: string_color | Color): WithTake<Color>;
27
+ /**
28
+ * Creates a new Color instance from miscellaneous formats
29
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
30
+ *
31
+ * @param color
32
+ * @returns Color object
33
+ */
34
+ static fromSafe(color: string_color | Color): WithTake<Color>;
27
35
  /**
28
36
  * Creates a new Color instance from miscellaneous string formats
29
37
  *
@@ -4,6 +4,7 @@
4
4
  * @public exported from `@promptbook/color`
5
5
  */
6
6
  export declare const CSS_COLORS: {
7
+ readonly promptbook: "#79EAFD";
7
8
  readonly transparent: "rgba(0,0,0,0)";
8
9
  readonly aliceblue: "#f0f8ff";
9
10
  readonly antiquewhite: "#faebd7";
@@ -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-53`).
18
+ * It follows semantic versioning (e.g., `0.103.0-55`).
19
19
  *
20
20
  * @generated
21
21
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@promptbook/editable",
3
- "version": "0.103.0-54",
3
+ "version": "0.103.0-56",
4
4
  "description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
5
5
  "private": false,
6
6
  "sideEffects": false,
@@ -88,14 +88,14 @@
88
88
  },
89
89
  "homepage": "https://ptbk.io/",
90
90
  "engines": {
91
- "node": ">=16.0.0",
91
+ "node": ">=18.18.0",
92
92
  "npm": ">=8.0.0"
93
93
  },
94
94
  "main": "./umd/index.umd.js",
95
95
  "module": "./esm/index.es.js",
96
96
  "typings": "./esm/typings/src/_packages/editable.index.d.ts",
97
97
  "peerDependencies": {
98
- "@promptbook/core": "0.103.0-54"
98
+ "@promptbook/core": "0.103.0-56"
99
99
  },
100
100
  "dependencies": {
101
101
  "crypto-js": "4.2.0",
package/umd/index.umd.js CHANGED
@@ -1,12 +1,12 @@
1
1
  (function (global, factory) {
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('spacetrim'), require('papaparse'), require('crypto-js'), require('crypto-js/enc-hex')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', 'spacetrim', 'papaparse', 'crypto-js', 'crypto-js/enc-hex'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-editable"] = {}, global.spaceTrim, global.papaparse, global.cryptoJs, global.hexEncoder));
5
- })(this, (function (exports, spaceTrim, papaparse, cryptoJs, hexEncoder) { 'use strict';
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global["promptbook-editable"] = {}, global.spaceTrim$1, global.papaparse, global.cryptoJs, global.hexEncoder));
5
+ })(this, (function (exports, spaceTrim$1, papaparse, cryptoJs, hexEncoder) { 'use strict';
6
6
 
7
7
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
8
 
9
- var spaceTrim__default = /*#__PURE__*/_interopDefaultLegacy(spaceTrim);
9
+ var spaceTrim__default = /*#__PURE__*/_interopDefaultLegacy(spaceTrim$1);
10
10
  var hexEncoder__default = /*#__PURE__*/_interopDefaultLegacy(hexEncoder);
11
11
 
12
12
  // ⚠️ WARNING: This code has been generated so that any manual changes will be overwritten
@@ -23,12 +23,23 @@
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-54';
26
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-56';
27
27
  /**
28
28
  * TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
29
29
  * Note: [💞] Ignore a discrepancy between file name and entity name
30
30
  */
31
31
 
32
+ /**
33
+ * Trims string from all 4 sides
34
+ *
35
+ * Note: This is a re-exported function from the `spacetrim` package which is
36
+ * Developed by same author @hejny as this package
37
+ *
38
+ * @public exported from `@promptbook/utils`
39
+ * @see https://github.com/hejny/spacetrim#usage
40
+ */
41
+ const spaceTrim = spaceTrim$1.spaceTrim;
42
+
32
43
  /**
33
44
  * @private util of `@promptbook/color`
34
45
  * @de
@@ -77,6 +88,7 @@
77
88
  * @public exported from `@promptbook/color`
78
89
  */
79
90
  const CSS_COLORS = {
91
+ promptbook: '#79EAFD',
80
92
  transparent: 'rgba(0,0,0,0)',
81
93
  aliceblue: '#f0f8ff',
82
94
  antiquewhite: '#faebd7',
@@ -292,6 +304,28 @@
292
304
  throw new Error(`Can not create color from given object`);
293
305
  }
294
306
  }
307
+ /**
308
+ * Creates a new Color instance from miscellaneous formats
309
+ * It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
310
+ *
311
+ * @param color
312
+ * @returns Color object
313
+ */
314
+ static fromSafe(color) {
315
+ try {
316
+ return Color.from(color);
317
+ }
318
+ catch (error) {
319
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
320
+ console.warn(spaceTrim((block) => `
321
+ Color.fromSafe error:
322
+ ${block(error.message)}
323
+
324
+ Returning default PROMPTBOOK_COLOR.
325
+ `));
326
+ return Color.fromString('promptbook');
327
+ }
328
+ }
295
329
  /**
296
330
  * Creates a new Color instance from miscellaneous string formats
297
331
  *
@@ -901,7 +935,7 @@
901
935
  *
902
936
  * @public exported from `@promptbook/core`
903
937
  */
904
- const PROMPTBOOK_COLOR = Color.fromHex('#79EAFD');
938
+ const PROMPTBOOK_COLOR = Color.fromString('promptbook');
905
939
  // <- TODO: [🧠][🈵] Using `Color` here increases the package size approx 3kb, maybe remove it
906
940
  /**
907
941
  * Colors for syntax highlighting in the `<BookEditor/>`
@@ -1030,7 +1064,7 @@
1030
1064
  */
1031
1065
  class UnexpectedError extends Error {
1032
1066
  constructor(message) {
1033
- super(spaceTrim.spaceTrim((block) => `
1067
+ super(spaceTrim$1.spaceTrim((block) => `
1034
1068
  ${block(message)}
1035
1069
 
1036
1070
  Note: This error should not happen.
@@ -1163,7 +1197,7 @@
1163
1197
  */
1164
1198
  class NotYetImplementedError extends Error {
1165
1199
  constructor(message) {
1166
- super(spaceTrim.spaceTrim((block) => `
1200
+ super(spaceTrim$1.spaceTrim((block) => `
1167
1201
  ${block(message)}
1168
1202
 
1169
1203
  Note: This feature is not implemented yet but it will be soon.
@@ -1306,7 +1340,7 @@
1306
1340
  constructor(whatWasThrown) {
1307
1341
  const tag = `[🤮]`;
1308
1342
  console.error(tag, whatWasThrown);
1309
- super(spaceTrim.spaceTrim(`
1343
+ super(spaceTrim$1.spaceTrim(`
1310
1344
  Non-Error object was thrown
1311
1345
 
1312
1346
  Note: Look for ${tag} in the console for more details
@@ -4661,7 +4695,7 @@
4661
4695
  function getParserForCommand(command) {
4662
4696
  const commandParser = COMMANDS.find((commandParser) => commandParser.name === command.type);
4663
4697
  if (commandParser === undefined) {
4664
- throw new UnexpectedError(spaceTrim.spaceTrim((block) => `
4698
+ throw new UnexpectedError(spaceTrim$1.spaceTrim((block) => `
4665
4699
  Command ${command.type} parser is not found
4666
4700
 
4667
4701
  ${block(JSON.stringify(command, null, 4)
@@ -4737,7 +4771,7 @@
4737
4771
  .map(removeMarkdownFormatting)
4738
4772
  .map((item) => item.trim());
4739
4773
  if (items.length === 0 || items[0] === '') {
4740
- throw new ParseError(spaceTrim.spaceTrim((block) => `
4774
+ throw new ParseError(spaceTrim$1.spaceTrim((block) => `
4741
4775
  Malformed command:
4742
4776
  - ${raw}
4743
4777
 
@@ -4773,7 +4807,7 @@
4773
4807
  return command;
4774
4808
  }
4775
4809
  }
4776
- throw new ParseError(spaceTrim.spaceTrim((block) => `
4810
+ throw new ParseError(spaceTrim$1.spaceTrim((block) => `
4777
4811
  Malformed or unknown command:
4778
4812
  - ${raw}
4779
4813
 
@@ -4824,7 +4858,7 @@
4824
4858
  if (!(error instanceof ParseError)) {
4825
4859
  throw error;
4826
4860
  }
4827
- throw new ParseError(spaceTrim.spaceTrim((block) => `
4861
+ throw new ParseError(spaceTrim$1.spaceTrim((block) => `
4828
4862
  Invalid ${commandName} command:
4829
4863
 
4830
4864
  Your command:
@@ -4942,7 +4976,7 @@
4942
4976
  * @public exported from `@promptbook/markdown-utils`
4943
4977
  */
4944
4978
  function removeMarkdownComments(content) {
4945
- return spaceTrim.spaceTrim(content.replace(/<!--(.*?)-->/gs, ''));
4979
+ return spaceTrim$1.spaceTrim(content.replace(/<!--(.*?)-->/gs, ''));
4946
4980
  }
4947
4981
 
4948
4982
  /**