@promptbook/cli 0.103.0-56 → 0.103.0-67
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/apps/agents-server/TODO.txt +5 -1
- package/apps/agents-server/config.ts +3 -1
- package/apps/agents-server/package-lock.json +1220 -47
- package/apps/agents-server/package.json +4 -1
- package/apps/agents-server/src/app/actions.ts +3 -1
- package/apps/agents-server/src/app/agents/[agentName]/AgentOptionsMenu.tsx +72 -6
- package/apps/agents-server/src/app/agents/[agentName]/AgentProfileChat.tsx +21 -8
- package/apps/agents-server/src/app/agents/[agentName]/AgentProfileWrapper.tsx +44 -0
- package/apps/agents-server/src/app/agents/[agentName]/generateAgentMetadata.ts +7 -3
- package/apps/agents-server/src/app/agents/[agentName]/layout.tsx +41 -0
- package/apps/agents-server/src/app/agents/[agentName]/page.tsx +47 -100
- package/apps/agents-server/src/app/agents/[agentName]/website-integration/page.tsx +11 -2
- package/apps/agents-server/src/app/embed/page.tsx +2 -2
- package/apps/agents-server/src/app/layout.tsx +8 -24
- package/apps/agents-server/src/app/manifest.ts +8 -3
- package/apps/agents-server/src/components/AgentProfile/AgentProfile.tsx +339 -0
- package/apps/agents-server/src/components/AgentProfile/AgentProfileFromSource.tsx +23 -0
- package/apps/agents-server/src/{app/agents/[agentName] → components/AgentProfile}/AgentQrCode.tsx +8 -1
- package/apps/agents-server/src/components/LayoutWrapper/LayoutWrapper.tsx +7 -6
- package/apps/agents-server/src/database/metadataDefaults.ts +6 -0
- package/apps/agents-server/src/tools/$provideCdnForServer.ts +13 -1
- package/apps/agents-server/src/utils/cdn/classes/DigitalOceanSpaces.ts +119 -0
- package/apps/agents-server/src/utils/cdn/classes/VercelBlobStorage.ts +2 -1
- package/esm/index.es.js +65 -10
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/components.index.d.ts +2 -2
- package/esm/typings/src/_packages/types.index.d.ts +6 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +2 -1
- package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +1 -1
- package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +3 -0
- package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +6 -0
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +52 -0
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +14 -0
- package/esm/typings/src/book-components/icons/SendIcon.d.ts +3 -0
- package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +4 -0
- package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
- package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +4 -0
- package/esm/typings/src/commitments/_base/BaseCommitmentDefinition.d.ts +6 -0
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +3 -1
- package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
- package/esm/typings/src/types/typeAliases.d.ts +6 -0
- package/esm/typings/src/utils/color/Color.d.ts +1 -1
- package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +6 -0
- package/esm/typings/src/utils/random/CzechNamePool.d.ts +7 -0
- package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
- package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
- package/esm/typings/src/utils/random/getNamePool.d.ts +10 -0
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +65 -10
- package/umd/index.umd.js.map +1 -1
- package/apps/agents-server/src/app/agents/[agentName]/AgentProfileView.tsx +0 -233
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +0 -29
- /package/apps/agents-server/src/{app/agents/[agentName] → components/AgentProfile}/QrCodeModal.tsx +0 -0
|
@@ -52,7 +52,7 @@ import { ResetIcon } from '../book-components/icons/ResetIcon';
|
|
|
52
52
|
import { SaveIcon } from '../book-components/icons/SaveIcon';
|
|
53
53
|
import { SendIcon } from '../book-components/icons/SendIcon';
|
|
54
54
|
import { TemplateIcon } from '../book-components/icons/TemplateIcon';
|
|
55
|
-
import {
|
|
55
|
+
import { PromptbookAgentIntegration } from '../book-components/PromptbookAgent/PromptbookAgentIntegration';
|
|
56
56
|
import { BrandedQrCode } from '../book-components/Qr/BrandedQrCode';
|
|
57
57
|
import { GenericQrCode } from '../book-components/Qr/GenericQrCode';
|
|
58
58
|
import { PromptbookQrCode } from '../book-components/Qr/PromptbookQrCode';
|
|
@@ -112,7 +112,7 @@ export { ResetIcon };
|
|
|
112
112
|
export { SaveIcon };
|
|
113
113
|
export { SendIcon };
|
|
114
114
|
export { TemplateIcon };
|
|
115
|
-
export {
|
|
115
|
+
export { PromptbookAgentIntegration };
|
|
116
116
|
export { BrandedQrCode };
|
|
117
117
|
export { GenericQrCode };
|
|
118
118
|
export { PromptbookQrCode };
|
|
@@ -245,6 +245,7 @@ import type { string_typescript } from '../types/typeAliases';
|
|
|
245
245
|
import type { string_json } from '../types/typeAliases';
|
|
246
246
|
import type { string_css_class } from '../types/typeAliases';
|
|
247
247
|
import type { string_css_property } from '../types/typeAliases';
|
|
248
|
+
import type { string_fonts } from '../types/typeAliases';
|
|
248
249
|
import type { string_css_value } from '../types/typeAliases';
|
|
249
250
|
import type { string_css_selector } from '../types/typeAliases';
|
|
250
251
|
import type { string_url } from '../types/typeAliases';
|
|
@@ -352,6 +353,8 @@ import type { empty_object } from '../utils/organization/empty_object';
|
|
|
352
353
|
import type { really_any } from '../utils/organization/really_any';
|
|
353
354
|
import type { TODO_any } from '../utils/organization/TODO_any';
|
|
354
355
|
import type { RandomFullnameWithColorResult } from '../utils/random/$randomFullnameWithColor';
|
|
356
|
+
import type { GenerateNameResult } from '../utils/random/NamePool';
|
|
357
|
+
import type { NamePool } from '../utils/random/NamePool';
|
|
355
358
|
import type { CheckSerializableAsJsonOptions } from '../utils/serialization/checkSerializableAsJson';
|
|
356
359
|
import type { ExportJsonOptions } from '../utils/serialization/exportJson';
|
|
357
360
|
import type { ITakeChain } from '../utils/take/interfaces/ITakeChain';
|
|
@@ -603,6 +606,7 @@ export type { string_typescript };
|
|
|
603
606
|
export type { string_json };
|
|
604
607
|
export type { string_css_class };
|
|
605
608
|
export type { string_css_property };
|
|
609
|
+
export type { string_fonts };
|
|
606
610
|
export type { string_css_value };
|
|
607
611
|
export type { string_css_selector };
|
|
608
612
|
export type { string_url };
|
|
@@ -710,6 +714,8 @@ export type { empty_object };
|
|
|
710
714
|
export type { really_any };
|
|
711
715
|
export type { TODO_any };
|
|
712
716
|
export type { RandomFullnameWithColorResult };
|
|
717
|
+
export type { GenerateNameResult };
|
|
718
|
+
export type { NamePool };
|
|
713
719
|
export type { CheckSerializableAsJsonOptions };
|
|
714
720
|
export type { ExportJsonOptions };
|
|
715
721
|
export type { ITakeChain };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { string_agent_hash, string_agent_name, string_agent_url, string_color, string_url_image } from '../../types/typeAliases';
|
|
1
|
+
import type { string_agent_hash, string_agent_name, string_agent_url, string_color, string_fonts, string_url_image } from '../../types/typeAliases';
|
|
2
2
|
/**
|
|
3
3
|
* Unified parameter representation that supports two different notations:
|
|
4
4
|
* 1. @Parameter - single word parameter starting with @
|
|
@@ -51,6 +51,7 @@ export type AgentBasicInformation = {
|
|
|
51
51
|
meta: {
|
|
52
52
|
fullname?: string;
|
|
53
53
|
image?: string_url_image;
|
|
54
|
+
font?: string_fonts;
|
|
54
55
|
color?: string_color;
|
|
55
56
|
[key: string]: string | undefined;
|
|
56
57
|
};
|
|
@@ -7,7 +7,7 @@ import type { BookCommitment } from '../../commitments/_base/BookCommitment';
|
|
|
7
7
|
*
|
|
8
8
|
* @private - TODO: [🧠] Maybe should be public?
|
|
9
9
|
*/
|
|
10
|
-
export declare function createCommitmentRegex(commitment: BookCommitment, aliases?: BookCommitment[]): RegExp;
|
|
10
|
+
export declare function createCommitmentRegex(commitment: BookCommitment, aliases?: BookCommitment[], requiresContent?: boolean): RegExp;
|
|
11
11
|
/**
|
|
12
12
|
* Generates a regex pattern to match a specific commitment type
|
|
13
13
|
*
|
|
@@ -12,3 +12,6 @@ import type { AgentChatProps } from './AgentChatProps';
|
|
|
12
12
|
* @public exported from `@promptbook/components`
|
|
13
13
|
*/
|
|
14
14
|
export declare function AgentChat(props: AgentChatProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
/**
|
|
16
|
+
* TODO: !!!! Search ACRY ".meta.color" and make sure that we count that we count color can be array
|
|
17
|
+
*/
|
|
@@ -3,6 +3,8 @@ import type { Promisable } from 'type-fest';
|
|
|
3
3
|
import type { string_chat_format_name } from '../save/_common/string_chat_format_name';
|
|
4
4
|
import type { ChatMessage } from '../types/ChatMessage';
|
|
5
5
|
import type { ChatParticipant } from '../types/ChatParticipant';
|
|
6
|
+
import { string_color } from '../../../types/typeAliases';
|
|
7
|
+
import { Color } from '../../../_packages/color.index';
|
|
6
8
|
/**
|
|
7
9
|
* @public exported from `@promptbook/components`
|
|
8
10
|
*/
|
|
@@ -87,6 +89,10 @@ export type ChatProps = {
|
|
|
87
89
|
* instead of its default position within the chat.
|
|
88
90
|
*/
|
|
89
91
|
readonly actionsContainer?: HTMLElement | null;
|
|
92
|
+
/**
|
|
93
|
+
* Color of the action buttons (send, reset, voice, etc.)
|
|
94
|
+
*/
|
|
95
|
+
readonly buttonColor?: string_color | Color;
|
|
90
96
|
/**
|
|
91
97
|
* Optional CSS class name which will be added to root <div/> element
|
|
92
98
|
*/
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { CSSProperties } from 'react';
|
|
2
|
+
import type { AgentBasicInformation } from '../../book-2.0/agent-source/AgentBasicInformation';
|
|
3
|
+
import { string_css_class } from '../../types/typeAliases';
|
|
4
|
+
/**
|
|
5
|
+
* @private props of PromptbookAgentIntegration component
|
|
6
|
+
*/
|
|
7
|
+
export type PromptbookAgentIntegrationProps = {
|
|
8
|
+
/**
|
|
9
|
+
* URL of the agent to connect to
|
|
10
|
+
*
|
|
11
|
+
* @example "http://s6.ptbk.io/benjamin-white"
|
|
12
|
+
*/
|
|
13
|
+
readonly agentUrl: string;
|
|
14
|
+
/**
|
|
15
|
+
* Form of the agent integration
|
|
16
|
+
*
|
|
17
|
+
* @default `seamless`
|
|
18
|
+
*
|
|
19
|
+
* - `seamless` Default, current behavior
|
|
20
|
+
* - `book` Show the Agent as a book in BookEditor
|
|
21
|
+
* - `chat` Show the Agent as a chat which is not floating but as AgentChat component
|
|
22
|
+
* - `profile` Show the Agent as a profile using
|
|
23
|
+
*/
|
|
24
|
+
readonly formfactor?: 'seamless' | 'book' | 'chat' | 'profile';
|
|
25
|
+
/**
|
|
26
|
+
* Optional metadata to show before the agent is connected
|
|
27
|
+
* Or to override the agent metadata if the agent does not provide it
|
|
28
|
+
*/
|
|
29
|
+
readonly meta?: Partial<AgentBasicInformation['meta']>;
|
|
30
|
+
/**
|
|
31
|
+
* Callback when the window is opened or closed
|
|
32
|
+
*/
|
|
33
|
+
onOpenChange?(isOpen: boolean): void;
|
|
34
|
+
/**
|
|
35
|
+
* Optional CSS class name which will be added to root element
|
|
36
|
+
*/
|
|
37
|
+
readonly className?: string_css_class;
|
|
38
|
+
/**
|
|
39
|
+
* Optional CSS style which will be added to root element
|
|
40
|
+
*/
|
|
41
|
+
readonly style?: CSSProperties;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Renders a floating agent button that opens a chat window with the remote agent.
|
|
45
|
+
*
|
|
46
|
+
* @public exported from `@promptbook/components`
|
|
47
|
+
*/
|
|
48
|
+
export declare function PromptbookAgentIntegration(props: PromptbookAgentIntegrationProps): import("react/jsx-runtime").JSX.Element | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* TODO: !!! Load the full branding
|
|
51
|
+
* TODO: !!! <promptbook-agent> element
|
|
52
|
+
*/
|
package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PromptbookAgentIntegrationProps } from './PromptbookAgentIntegration';
|
|
2
|
+
type PromptbookAgentSeamlessIntegrationProps = Omit<PromptbookAgentIntegrationProps, 'formfactor'>;
|
|
3
|
+
/**
|
|
4
|
+
* Renders a floating agent button that opens a chat window with the remote agent.
|
|
5
|
+
*
|
|
6
|
+
* @private component of PromptbookAgentIntegration
|
|
7
|
+
*/
|
|
8
|
+
export declare function PromptbookAgentSeamlessIntegration(props: PromptbookAgentSeamlessIntegrationProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
/**
|
|
11
|
+
* TODO: !!!! Use iframe here instead of implementing the chat directly, allow to switch between seamless and iframe mode via `isIframeUsed` prop
|
|
12
|
+
* TODO: !!! Load the full branding
|
|
13
|
+
* TODO: !!! <promptbook-agent> element
|
|
14
|
+
*/
|
|
@@ -16,6 +16,10 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
|
16
16
|
*/
|
|
17
17
|
export declare class ClosedCommitmentDefinition extends BaseCommitmentDefinition<'CLOSED'> {
|
|
18
18
|
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* The `CLOSED` commitment is standalone.
|
|
21
|
+
*/
|
|
22
|
+
get requiresContent(): boolean;
|
|
19
23
|
/**
|
|
20
24
|
* Short one-line description of CLOSED.
|
|
21
25
|
*/
|
|
@@ -19,6 +19,10 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
|
19
19
|
*/
|
|
20
20
|
export declare class UseBrowserCommitmentDefinition extends BaseCommitmentDefinition<'USE BROWSER'> {
|
|
21
21
|
constructor();
|
|
22
|
+
/**
|
|
23
|
+
* The `USE BROWSER` commitment is standalone.
|
|
24
|
+
*/
|
|
25
|
+
get requiresContent(): boolean;
|
|
22
26
|
/**
|
|
23
27
|
* Short one-line description of USE BROWSER.
|
|
24
28
|
*/
|
|
@@ -15,6 +15,12 @@ export declare abstract class BaseCommitmentDefinition<TBookCommitment extends s
|
|
|
15
15
|
* Must be implemented by each concrete commitment.
|
|
16
16
|
*/
|
|
17
17
|
abstract get description(): string;
|
|
18
|
+
/**
|
|
19
|
+
* Whether this commitment requires content.
|
|
20
|
+
* If true, regex will match only if there is content after the commitment keyword.
|
|
21
|
+
* If false, regex will match even if there is no content.
|
|
22
|
+
*/
|
|
23
|
+
get requiresContent(): boolean;
|
|
18
24
|
/**
|
|
19
25
|
* Icon for this commitment.
|
|
20
26
|
* It should be a single emoji.
|
|
@@ -4,7 +4,7 @@ import type { string_book } from '../../book-2.0/agent-source/string_book';
|
|
|
4
4
|
import type { LlmExecutionTools } from '../../execution/LlmExecutionTools';
|
|
5
5
|
import type { ChatPromptResult } from '../../execution/PromptResult';
|
|
6
6
|
import type { Prompt } from '../../types/Prompt';
|
|
7
|
-
import type { string_agent_hash, string_agent_name, string_agent_url, string_url_image } from '../../types/typeAliases';
|
|
7
|
+
import type { string_agent_hash, string_agent_name, string_agent_url, string_color, string_fonts, string_url_image } from '../../types/typeAliases';
|
|
8
8
|
import { AgentLlmExecutionTools } from './AgentLlmExecutionTools';
|
|
9
9
|
import type { AgentOptions } from './AgentOptions';
|
|
10
10
|
/**
|
|
@@ -48,6 +48,8 @@ export declare class Agent extends AgentLlmExecutionTools implements LlmExecutio
|
|
|
48
48
|
fullname?: string;
|
|
49
49
|
image?: string_url_image;
|
|
50
50
|
link?: string;
|
|
51
|
+
font?: string_fonts;
|
|
52
|
+
color?: string_color;
|
|
51
53
|
title?: string;
|
|
52
54
|
description?: string;
|
|
53
55
|
[key: string]: string | undefined;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PipelineCollection } from '../../collection/pipeline-collection/
|
|
1
|
+
import type { PipelineCollection } from '../../collection/pipeline-collection/PipelineCollection';
|
|
2
2
|
/**
|
|
3
3
|
* Get pipeline collection for Untitled Promptbook project
|
|
4
4
|
*
|
|
@@ -330,6 +330,12 @@ export type string_css_class = string;
|
|
|
330
330
|
* For example `border`
|
|
331
331
|
*/
|
|
332
332
|
export type string_css_property = string;
|
|
333
|
+
/**
|
|
334
|
+
* Semantic helper
|
|
335
|
+
*
|
|
336
|
+
* For example `"Arial, sans-serif"`
|
|
337
|
+
*/
|
|
338
|
+
export type string_fonts = string;
|
|
333
339
|
/**
|
|
334
340
|
* Semantic helper
|
|
335
341
|
*
|
|
@@ -23,7 +23,7 @@ export declare class Color {
|
|
|
23
23
|
* @param color
|
|
24
24
|
* @returns Color object
|
|
25
25
|
*/
|
|
26
|
-
static from(color: string_color | Color): WithTake<Color>;
|
|
26
|
+
static from(color: string_color | Color, _isSingleValue?: boolean): WithTake<Color>;
|
|
27
27
|
/**
|
|
28
28
|
* Creates a new Color instance from miscellaneous formats
|
|
29
29
|
* It just does not throw error when it fails, it returns PROMPTBOOK_COLOR instead
|
|
@@ -9,6 +9,12 @@ type GenerateBookBoilerplateOptions = PartialDeep<Omit<AgentBasicInformation, 'p
|
|
|
9
9
|
* @default 'Adam'
|
|
10
10
|
*/
|
|
11
11
|
parentAgentName?: string_agent_name_in_book;
|
|
12
|
+
/**
|
|
13
|
+
* Name pool to use for generating agent name
|
|
14
|
+
*
|
|
15
|
+
* @default 'ENGLISH'
|
|
16
|
+
*/
|
|
17
|
+
namePool?: string;
|
|
12
18
|
};
|
|
13
19
|
/**
|
|
14
20
|
* Generates boilerplate for a new agent book
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { string_color, string_person_fullname } from '../../types/typeAliases';
|
|
2
|
+
/**
|
|
3
|
+
* Result of generating a name
|
|
4
|
+
*/
|
|
5
|
+
export type GenerateNameResult = {
|
|
6
|
+
fullname: string_person_fullname;
|
|
7
|
+
color: string_color;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Interface for a name pool
|
|
11
|
+
*/
|
|
12
|
+
export type NamePool = {
|
|
13
|
+
/**
|
|
14
|
+
* Generates a random name
|
|
15
|
+
*/
|
|
16
|
+
generateName(): GenerateNameResult;
|
|
17
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { NamePool } from './NamePool';
|
|
2
|
+
/**
|
|
3
|
+
* Gets the name pool based on the language code
|
|
4
|
+
*
|
|
5
|
+
* @param language - The language code (e.g. 'ENGLISH', 'CZECH')
|
|
6
|
+
* @returns The name pool
|
|
7
|
+
*
|
|
8
|
+
* @private [🍇] Maybe expose via some package
|
|
9
|
+
*/
|
|
10
|
+
export declare function getNamePool(language: string): NamePool;
|
|
@@ -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-66`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/cli",
|
|
3
|
-
"version": "0.103.0-
|
|
3
|
+
"version": "0.103.0-67",
|
|
4
4
|
"description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/webgptorg/promptbook"
|
|
9
|
+
"url": "git+https://github.com/webgptorg/promptbook.git"
|
|
10
10
|
},
|
|
11
11
|
"author": "Pavol Hejný <pavol@ptbk.io> (https://www.pavolhejny.com/)",
|
|
12
12
|
"contributors": [
|
package/umd/index.umd.js
CHANGED
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
* @generated
|
|
57
57
|
* @see https://github.com/webgptorg/promptbook
|
|
58
58
|
*/
|
|
59
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-
|
|
59
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-67';
|
|
60
60
|
/**
|
|
61
61
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
62
62
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -383,15 +383,33 @@
|
|
|
383
383
|
* @param color
|
|
384
384
|
* @returns Color object
|
|
385
385
|
*/
|
|
386
|
-
static from(color) {
|
|
387
|
-
if (color
|
|
386
|
+
static from(color, _isSingleValue = false) {
|
|
387
|
+
if (color === '') {
|
|
388
|
+
throw new Error(`Can not create color from empty string`);
|
|
389
|
+
}
|
|
390
|
+
else if (color instanceof Color) {
|
|
388
391
|
return take(color);
|
|
389
392
|
}
|
|
390
393
|
else if (Color.isColor(color)) {
|
|
391
394
|
return take(color);
|
|
392
395
|
}
|
|
393
396
|
else if (typeof color === 'string') {
|
|
394
|
-
|
|
397
|
+
try {
|
|
398
|
+
return Color.fromString(color);
|
|
399
|
+
}
|
|
400
|
+
catch (error) {
|
|
401
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
402
|
+
if (_isSingleValue) {
|
|
403
|
+
throw error;
|
|
404
|
+
}
|
|
405
|
+
const parts = color.split(/[\s+,;|]/);
|
|
406
|
+
if (parts.length > 0) {
|
|
407
|
+
return Color.from(parts[0].trim(), true);
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
throw new Error(`Can not create color from given string "${color}"`);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
395
413
|
}
|
|
396
414
|
else {
|
|
397
415
|
console.error({ color });
|
|
@@ -22463,15 +22481,19 @@
|
|
|
22463
22481
|
*
|
|
22464
22482
|
* @private - TODO: [🧠] Maybe should be public?
|
|
22465
22483
|
*/
|
|
22466
|
-
function createCommitmentRegex(commitment, aliases = []) {
|
|
22484
|
+
function createCommitmentRegex(commitment, aliases = [], requiresContent = true) {
|
|
22467
22485
|
const allCommitments = [commitment, ...aliases];
|
|
22468
22486
|
const patterns = allCommitments.map((c) => {
|
|
22469
22487
|
const escapedCommitment = c.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
22470
22488
|
return escapedCommitment.split(/\s+/).join('\\s+');
|
|
22471
22489
|
});
|
|
22472
22490
|
const keywordPattern = patterns.join('|');
|
|
22473
|
-
|
|
22474
|
-
|
|
22491
|
+
if (requiresContent) {
|
|
22492
|
+
return new RegExp(`^\\s*(?<type>${keywordPattern})\\b\\s+(?<contents>.+)$`, 'gim');
|
|
22493
|
+
}
|
|
22494
|
+
else {
|
|
22495
|
+
return new RegExp(`^\\s*(?<type>${keywordPattern})\\b(?:\\s+(?<contents>.+))?$`, 'gim');
|
|
22496
|
+
}
|
|
22475
22497
|
}
|
|
22476
22498
|
/**
|
|
22477
22499
|
* Generates a regex pattern to match a specific commitment type
|
|
@@ -22504,12 +22526,20 @@
|
|
|
22504
22526
|
this.type = type;
|
|
22505
22527
|
this.aliases = aliases;
|
|
22506
22528
|
}
|
|
22529
|
+
/**
|
|
22530
|
+
* Whether this commitment requires content.
|
|
22531
|
+
* If true, regex will match only if there is content after the commitment keyword.
|
|
22532
|
+
* If false, regex will match even if there is no content.
|
|
22533
|
+
*/
|
|
22534
|
+
get requiresContent() {
|
|
22535
|
+
return true;
|
|
22536
|
+
}
|
|
22507
22537
|
/**
|
|
22508
22538
|
* Creates a regex pattern to match this commitment in agent source
|
|
22509
22539
|
* Uses the existing createCommitmentRegex function as internal helper
|
|
22510
22540
|
*/
|
|
22511
22541
|
createRegex() {
|
|
22512
|
-
return createCommitmentRegex(this.type, this.aliases);
|
|
22542
|
+
return createCommitmentRegex(this.type, this.aliases, this.requiresContent);
|
|
22513
22543
|
}
|
|
22514
22544
|
/**
|
|
22515
22545
|
* Creates a regex pattern to match just the commitment type
|
|
@@ -22661,6 +22691,12 @@
|
|
|
22661
22691
|
constructor() {
|
|
22662
22692
|
super('CLOSED');
|
|
22663
22693
|
}
|
|
22694
|
+
/**
|
|
22695
|
+
* The `CLOSED` commitment is standalone.
|
|
22696
|
+
*/
|
|
22697
|
+
get requiresContent() {
|
|
22698
|
+
return false;
|
|
22699
|
+
}
|
|
22664
22700
|
/**
|
|
22665
22701
|
* Short one-line description of CLOSED.
|
|
22666
22702
|
*/
|
|
@@ -25340,6 +25376,12 @@
|
|
|
25340
25376
|
constructor() {
|
|
25341
25377
|
super('USE BROWSER', ['BROWSER']);
|
|
25342
25378
|
}
|
|
25379
|
+
/**
|
|
25380
|
+
* The `USE BROWSER` commitment is standalone.
|
|
25381
|
+
*/
|
|
25382
|
+
get requiresContent() {
|
|
25383
|
+
return false;
|
|
25384
|
+
}
|
|
25343
25385
|
/**
|
|
25344
25386
|
* Short one-line description of USE BROWSER.
|
|
25345
25387
|
*/
|
|
@@ -26180,11 +26222,11 @@
|
|
|
26180
26222
|
continue;
|
|
26181
26223
|
}
|
|
26182
26224
|
if (commitment.type === 'META COLOR') {
|
|
26183
|
-
meta.color =
|
|
26225
|
+
meta.color = normalizeSeparator(commitment.content);
|
|
26184
26226
|
continue;
|
|
26185
26227
|
}
|
|
26186
26228
|
if (commitment.type === 'META FONT') {
|
|
26187
|
-
meta.font =
|
|
26229
|
+
meta.font = normalizeSeparator(commitment.content);
|
|
26188
26230
|
continue;
|
|
26189
26231
|
}
|
|
26190
26232
|
if (commitment.type !== 'META') {
|
|
@@ -26220,6 +26262,19 @@
|
|
|
26220
26262
|
parameters,
|
|
26221
26263
|
};
|
|
26222
26264
|
}
|
|
26265
|
+
/**
|
|
26266
|
+
* Normalizes the separator in the content
|
|
26267
|
+
*
|
|
26268
|
+
* @param content - The content to normalize
|
|
26269
|
+
* @returns The content with normalized separators
|
|
26270
|
+
*/
|
|
26271
|
+
function normalizeSeparator(content) {
|
|
26272
|
+
const trimmed = spaceTrim__default["default"](content);
|
|
26273
|
+
if (trimmed.includes(',')) {
|
|
26274
|
+
return trimmed;
|
|
26275
|
+
}
|
|
26276
|
+
return trimmed.split(/\s+/).join(', ');
|
|
26277
|
+
}
|
|
26223
26278
|
/**
|
|
26224
26279
|
* TODO: [🕛] Unite `AgentBasicInformation`, `ChatParticipant`, `LlmExecutionTools` + `LlmToolsMetadata`
|
|
26225
26280
|
*/
|