@promptbook/editable 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.
Files changed (29) hide show
  1. package/esm/index.es.js +22 -4
  2. package/esm/index.es.js.map +1 -1
  3. package/esm/typings/src/_packages/components.index.d.ts +2 -2
  4. package/esm/typings/src/_packages/types.index.d.ts +6 -0
  5. package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +2 -1
  6. package/esm/typings/src/book-2.0/agent-source/createCommitmentRegex.d.ts +1 -1
  7. package/esm/typings/src/book-components/Chat/AgentChat/AgentChat.d.ts +3 -0
  8. package/esm/typings/src/book-components/Chat/Chat/ChatProps.d.ts +6 -0
  9. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentIntegration.d.ts +52 -0
  10. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgentSeamlessIntegration.d.ts +14 -0
  11. package/esm/typings/src/book-components/icons/SendIcon.d.ts +3 -0
  12. package/esm/typings/src/commitments/CLOSED/CLOSED.d.ts +4 -0
  13. package/esm/typings/src/commitments/CLOSED/CLOSED.test.d.ts +4 -0
  14. package/esm/typings/src/commitments/USE_BROWSER/USE_BROWSER.d.ts +4 -0
  15. package/esm/typings/src/commitments/_base/BaseCommitmentDefinition.d.ts +6 -0
  16. package/esm/typings/src/llm-providers/agent/Agent.d.ts +3 -1
  17. package/esm/typings/src/other/templates/getTemplatesPipelineCollection.d.ts +1 -1
  18. package/esm/typings/src/types/typeAliases.d.ts +6 -0
  19. package/esm/typings/src/utils/color/Color.d.ts +1 -1
  20. package/esm/typings/src/utils/random/$generateBookBoilerplate.d.ts +6 -0
  21. package/esm/typings/src/utils/random/CzechNamePool.d.ts +7 -0
  22. package/esm/typings/src/utils/random/EnglishNamePool.d.ts +7 -0
  23. package/esm/typings/src/utils/random/NamePool.d.ts +17 -0
  24. package/esm/typings/src/utils/random/getNamePool.d.ts +10 -0
  25. package/esm/typings/src/version.d.ts +1 -1
  26. package/package.json +3 -3
  27. package/umd/index.umd.js +22 -4
  28. package/umd/index.umd.js.map +1 -1
  29. package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +0 -29
@@ -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
+ */
@@ -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
+ */
@@ -6,3 +6,6 @@
6
6
  export declare const SendIcon: ({ size }: {
7
7
  size: number;
8
8
  }) => import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * TODO: !!!! Search ACRY for "currentColor", it probably does not work and make no sense to have it in project
11
+ */
@@ -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
  */
@@ -0,0 +1,4 @@
1
+ export {};
2
+ /**
3
+ * TODO: !!!! Must be last commitment to take effect
4
+ */
@@ -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/pipeline-collection/PipelineCollection';
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,7 @@
1
+ import type { NamePool } from './NamePool';
2
+ /**
3
+ * Name pool for Czech names
4
+ *
5
+ * @private [πŸ‡] Maybe expose via some package
6
+ */
7
+ export declare const CzechNamePool: NamePool;
@@ -0,0 +1,7 @@
1
+ import type { NamePool } from './NamePool';
2
+ /**
3
+ * Name pool for English names
4
+ *
5
+ * @private [πŸ‡] Maybe expose via some package
6
+ */
7
+ export declare const EnglishNamePool: NamePool;
@@ -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-55`).
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/editable",
3
- "version": "0.103.0-56",
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": [
@@ -95,7 +95,7 @@
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-56"
98
+ "@promptbook/core": "0.103.0-67"
99
99
  },
100
100
  "dependencies": {
101
101
  "crypto-js": "4.2.0",
package/umd/index.umd.js CHANGED
@@ -23,7 +23,7 @@
23
23
  * @generated
24
24
  * @see https://github.com/webgptorg/promptbook
25
25
  */
26
- const PROMPTBOOK_ENGINE_VERSION = '0.103.0-56';
26
+ const PROMPTBOOK_ENGINE_VERSION = '0.103.0-67';
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
@@ -289,15 +289,33 @@
289
289
  * @param color
290
290
  * @returns Color object
291
291
  */
292
- static from(color) {
293
- if (color instanceof Color) {
292
+ static from(color, _isSingleValue = false) {
293
+ if (color === '') {
294
+ throw new Error(`Can not create color from empty string`);
295
+ }
296
+ else if (color instanceof Color) {
294
297
  return take(color);
295
298
  }
296
299
  else if (Color.isColor(color)) {
297
300
  return take(color);
298
301
  }
299
302
  else if (typeof color === 'string') {
300
- return Color.fromString(color);
303
+ try {
304
+ return Color.fromString(color);
305
+ }
306
+ catch (error) {
307
+ // <- Note: Can not use `assertsError(error)` here because it causes circular dependency
308
+ if (_isSingleValue) {
309
+ throw error;
310
+ }
311
+ const parts = color.split(/[\s+,;|]/);
312
+ if (parts.length > 0) {
313
+ return Color.from(parts[0].trim(), true);
314
+ }
315
+ else {
316
+ throw new Error(`Can not create color from given string "${color}"`);
317
+ }
318
+ }
301
319
  }
302
320
  else {
303
321
  console.error({ color });