@promptbook/browser 0.103.0-56 → 0.103.0-66
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/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 +3 -3
- package/umd/index.umd.js +65 -10
- package/umd/index.umd.js.map +1 -1
- package/esm/typings/src/book-components/PromptbookAgent/PromptbookAgent.d.ts +0 -29
|
@@ -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-65`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/browser",
|
|
3
|
-
"version": "0.103.0-
|
|
3
|
+
"version": "0.103.0-66",
|
|
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": [
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"module": "./esm/index.es.js",
|
|
95
95
|
"typings": "./esm/typings/src/_packages/browser.index.d.ts",
|
|
96
96
|
"peerDependencies": {
|
|
97
|
-
"@promptbook/core": "0.103.0-
|
|
97
|
+
"@promptbook/core": "0.103.0-66"
|
|
98
98
|
},
|
|
99
99
|
"dependencies": {
|
|
100
100
|
"crypto": "1.0.1",
|
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-
|
|
26
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.103.0-66';
|
|
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
|
|
@@ -415,15 +415,33 @@
|
|
|
415
415
|
* @param color
|
|
416
416
|
* @returns Color object
|
|
417
417
|
*/
|
|
418
|
-
static from(color) {
|
|
419
|
-
if (color
|
|
418
|
+
static from(color, _isSingleValue = false) {
|
|
419
|
+
if (color === '') {
|
|
420
|
+
throw new Error(`Can not create color from empty string`);
|
|
421
|
+
}
|
|
422
|
+
else if (color instanceof Color) {
|
|
420
423
|
return take(color);
|
|
421
424
|
}
|
|
422
425
|
else if (Color.isColor(color)) {
|
|
423
426
|
return take(color);
|
|
424
427
|
}
|
|
425
428
|
else if (typeof color === 'string') {
|
|
426
|
-
|
|
429
|
+
try {
|
|
430
|
+
return Color.fromString(color);
|
|
431
|
+
}
|
|
432
|
+
catch (error) {
|
|
433
|
+
// <- Note: Can not use `assertsError(error)` here because it causes circular dependency
|
|
434
|
+
if (_isSingleValue) {
|
|
435
|
+
throw error;
|
|
436
|
+
}
|
|
437
|
+
const parts = color.split(/[\s+,;|]/);
|
|
438
|
+
if (parts.length > 0) {
|
|
439
|
+
return Color.from(parts[0].trim(), true);
|
|
440
|
+
}
|
|
441
|
+
else {
|
|
442
|
+
throw new Error(`Can not create color from given string "${color}"`);
|
|
443
|
+
}
|
|
444
|
+
}
|
|
427
445
|
}
|
|
428
446
|
else {
|
|
429
447
|
console.error({ color });
|
|
@@ -2708,15 +2726,19 @@
|
|
|
2708
2726
|
*
|
|
2709
2727
|
* @private - TODO: [🧠] Maybe should be public?
|
|
2710
2728
|
*/
|
|
2711
|
-
function createCommitmentRegex(commitment, aliases = []) {
|
|
2729
|
+
function createCommitmentRegex(commitment, aliases = [], requiresContent = true) {
|
|
2712
2730
|
const allCommitments = [commitment, ...aliases];
|
|
2713
2731
|
const patterns = allCommitments.map((c) => {
|
|
2714
2732
|
const escapedCommitment = c.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
2715
2733
|
return escapedCommitment.split(/\s+/).join('\\s+');
|
|
2716
2734
|
});
|
|
2717
2735
|
const keywordPattern = patterns.join('|');
|
|
2718
|
-
|
|
2719
|
-
|
|
2736
|
+
if (requiresContent) {
|
|
2737
|
+
return new RegExp(`^\\s*(?<type>${keywordPattern})\\b\\s+(?<contents>.+)$`, 'gim');
|
|
2738
|
+
}
|
|
2739
|
+
else {
|
|
2740
|
+
return new RegExp(`^\\s*(?<type>${keywordPattern})\\b(?:\\s+(?<contents>.+))?$`, 'gim');
|
|
2741
|
+
}
|
|
2720
2742
|
}
|
|
2721
2743
|
/**
|
|
2722
2744
|
* Generates a regex pattern to match a specific commitment type
|
|
@@ -2749,12 +2771,20 @@
|
|
|
2749
2771
|
this.type = type;
|
|
2750
2772
|
this.aliases = aliases;
|
|
2751
2773
|
}
|
|
2774
|
+
/**
|
|
2775
|
+
* Whether this commitment requires content.
|
|
2776
|
+
* If true, regex will match only if there is content after the commitment keyword.
|
|
2777
|
+
* If false, regex will match even if there is no content.
|
|
2778
|
+
*/
|
|
2779
|
+
get requiresContent() {
|
|
2780
|
+
return true;
|
|
2781
|
+
}
|
|
2752
2782
|
/**
|
|
2753
2783
|
* Creates a regex pattern to match this commitment in agent source
|
|
2754
2784
|
* Uses the existing createCommitmentRegex function as internal helper
|
|
2755
2785
|
*/
|
|
2756
2786
|
createRegex() {
|
|
2757
|
-
return createCommitmentRegex(this.type, this.aliases);
|
|
2787
|
+
return createCommitmentRegex(this.type, this.aliases, this.requiresContent);
|
|
2758
2788
|
}
|
|
2759
2789
|
/**
|
|
2760
2790
|
* Creates a regex pattern to match just the commitment type
|
|
@@ -2906,6 +2936,12 @@
|
|
|
2906
2936
|
constructor() {
|
|
2907
2937
|
super('CLOSED');
|
|
2908
2938
|
}
|
|
2939
|
+
/**
|
|
2940
|
+
* The `CLOSED` commitment is standalone.
|
|
2941
|
+
*/
|
|
2942
|
+
get requiresContent() {
|
|
2943
|
+
return false;
|
|
2944
|
+
}
|
|
2909
2945
|
/**
|
|
2910
2946
|
* Short one-line description of CLOSED.
|
|
2911
2947
|
*/
|
|
@@ -5585,6 +5621,12 @@
|
|
|
5585
5621
|
constructor() {
|
|
5586
5622
|
super('USE BROWSER', ['BROWSER']);
|
|
5587
5623
|
}
|
|
5624
|
+
/**
|
|
5625
|
+
* The `USE BROWSER` commitment is standalone.
|
|
5626
|
+
*/
|
|
5627
|
+
get requiresContent() {
|
|
5628
|
+
return false;
|
|
5629
|
+
}
|
|
5588
5630
|
/**
|
|
5589
5631
|
* Short one-line description of USE BROWSER.
|
|
5590
5632
|
*/
|
|
@@ -6192,11 +6234,11 @@
|
|
|
6192
6234
|
continue;
|
|
6193
6235
|
}
|
|
6194
6236
|
if (commitment.type === 'META COLOR') {
|
|
6195
|
-
meta.color =
|
|
6237
|
+
meta.color = normalizeSeparator(commitment.content);
|
|
6196
6238
|
continue;
|
|
6197
6239
|
}
|
|
6198
6240
|
if (commitment.type === 'META FONT') {
|
|
6199
|
-
meta.font =
|
|
6241
|
+
meta.font = normalizeSeparator(commitment.content);
|
|
6200
6242
|
continue;
|
|
6201
6243
|
}
|
|
6202
6244
|
if (commitment.type !== 'META') {
|
|
@@ -6232,6 +6274,19 @@
|
|
|
6232
6274
|
parameters,
|
|
6233
6275
|
};
|
|
6234
6276
|
}
|
|
6277
|
+
/**
|
|
6278
|
+
* Normalizes the separator in the content
|
|
6279
|
+
*
|
|
6280
|
+
* @param content - The content to normalize
|
|
6281
|
+
* @returns The content with normalized separators
|
|
6282
|
+
*/
|
|
6283
|
+
function normalizeSeparator(content) {
|
|
6284
|
+
const trimmed = spaceTrim__default["default"](content);
|
|
6285
|
+
if (trimmed.includes(',')) {
|
|
6286
|
+
return trimmed;
|
|
6287
|
+
}
|
|
6288
|
+
return trimmed.split(/\s+/).join(', ');
|
|
6289
|
+
}
|
|
6235
6290
|
/**
|
|
6236
6291
|
* TODO: [🕛] Unite `AgentBasicInformation`, `ChatParticipant`, `LlmExecutionTools` + `LlmToolsMetadata`
|
|
6237
6292
|
*/
|