@promptbook/utils 0.104.0-10 → 0.104.0-12
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 +1 -1
- package/esm/typings/src/_packages/types.index.d.ts +8 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +24 -0
- package/esm/typings/src/book-2.0/agent-source/AgentModelRequirements.d.ts +5 -0
- package/esm/typings/src/book-2.0/agent-source/createAgentModelRequirements.tools.test.d.ts +1 -0
- package/esm/typings/src/book-components/Chat/types/ChatMessage.d.ts +2 -2
- package/esm/typings/src/book-components/_common/Dropdown/Dropdown.d.ts +1 -1
- package/esm/typings/src/book-components/_common/HamburgerMenu/HamburgerMenu.d.ts +1 -1
- package/esm/typings/src/book-components/icons/AboutIcon.d.ts +1 -1
- package/esm/typings/src/book-components/icons/AttachmentIcon.d.ts +1 -1
- package/esm/typings/src/book-components/icons/CameraIcon.d.ts +1 -1
- package/esm/typings/src/book-components/icons/DownloadIcon.d.ts +1 -1
- package/esm/typings/src/book-components/icons/MenuIcon.d.ts +1 -1
- package/esm/typings/src/book-components/icons/SaveIcon.d.ts +1 -1
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentCollectionInSupabase.d.ts +2 -2
- package/esm/typings/src/collection/agent-collection/constructors/agent-collection-in-supabase/AgentsDatabaseSchema.d.ts +0 -54
- package/esm/typings/src/commitments/META/META_DESCRIPTION.d.ts +41 -0
- package/esm/typings/src/commitments/USE_SEARCH_ENGINE/USE_SEARCH_ENGINE.d.ts +2 -2
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForTestingAndScriptsAndPlayground.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsForWizardOrCli.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/utils/count-total-usage/LlmExecutionToolsWithTotalUsage.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/utils/count-total-usage/countUsage.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/utils/count-total-usage/limitTotalUsage.d.ts +1 -1
- package/esm/typings/src/llm-providers/_multiple/getSingleLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/_multiple/joinLlmExecutionTools.d.ts +1 -1
- package/esm/typings/src/llm-providers/agent/Agent.d.ts +6 -1
- package/esm/typings/src/llm-providers/openai/utils/mapToolsToOpenAi.d.ts +8 -0
- package/esm/typings/src/remote-server/ui/ServerApp.d.ts +1 -1
- package/esm/typings/src/search-engines/SearchEngine.d.ts +9 -0
- package/esm/typings/src/search-engines/SearchResult.d.ts +18 -0
- package/esm/typings/src/search-engines/bing/BingSearchEngine.d.ts +15 -0
- package/esm/typings/src/search-engines/dummy/DummySearchEngine.d.ts +15 -0
- package/esm/typings/src/types/LlmToolDefinition.d.ts +20 -0
- package/esm/typings/src/types/ModelRequirements.d.ts +13 -0
- package/esm/typings/src/utils/random/$randomAgentPersona.d.ts +3 -2
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +1 -1
package/esm/index.es.js
CHANGED
|
@@ -18,7 +18,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
18
18
|
* @generated
|
|
19
19
|
* @see https://github.com/webgptorg/promptbook
|
|
20
20
|
*/
|
|
21
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-
|
|
21
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-12';
|
|
22
22
|
/**
|
|
23
23
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
24
24
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { BookParameter } from '../book-2.0/agent-source/AgentBasicInformation';
|
|
2
|
+
import type { AgentCapability } from '../book-2.0/agent-source/AgentBasicInformation';
|
|
2
3
|
import type { AgentBasicInformation } from '../book-2.0/agent-source/AgentBasicInformation';
|
|
3
4
|
import type { AgentModelRequirements } from '../book-2.0/agent-source/AgentModelRequirements';
|
|
4
5
|
import type { string_book } from '../book-2.0/agent-source/string_book';
|
|
@@ -178,6 +179,8 @@ import type { ScraperSourceHandler } from '../scrapers/_common/Scraper';
|
|
|
178
179
|
import type { ScraperIntermediateSource } from '../scrapers/_common/ScraperIntermediateSource';
|
|
179
180
|
import type { JavascriptExecutionToolsOptions } from '../scripting/javascript/JavascriptExecutionToolsOptions';
|
|
180
181
|
import type { PostprocessingFunction } from '../scripting/javascript/JavascriptExecutionToolsOptions';
|
|
182
|
+
import type { SearchEngine } from '../search-engines/SearchEngine';
|
|
183
|
+
import type { SearchResult } from '../search-engines/SearchResult';
|
|
181
184
|
import type { PromptbookStorage } from '../storage/_common/PromptbookStorage';
|
|
182
185
|
import type { FileCacheStorageOptions } from '../storage/file-cache-storage/FileCacheStorageOptions';
|
|
183
186
|
import type { IndexedDbStorageOptions } from '../storage/local-storage/utils/IndexedDbStorageOptions';
|
|
@@ -185,6 +188,7 @@ import type { BookTranspiler } from '../transpilers/_common/BookTranspiler';
|
|
|
185
188
|
import type { BookTranspilerOptions } from '../transpilers/_common/BookTranspilerOptions';
|
|
186
189
|
import type { IntermediateFilesStrategy } from '../types/IntermediateFilesStrategy';
|
|
187
190
|
import type { LlmCall } from '../types/LlmCall';
|
|
191
|
+
import type { LlmToolDefinition } from '../types/LlmToolDefinition';
|
|
188
192
|
import type { Message } from '../types/Message';
|
|
189
193
|
import type { ModelRequirements } from '../types/ModelRequirements';
|
|
190
194
|
import type { CompletionModelRequirements } from '../types/ModelRequirements';
|
|
@@ -367,6 +371,7 @@ import type { ExportJsonOptions } from '../utils/serialization/exportJson';
|
|
|
367
371
|
import type { ITakeChain } from '../utils/take/interfaces/ITakeChain';
|
|
368
372
|
import type { string_promptbook_version } from '../version';
|
|
369
373
|
export type { BookParameter };
|
|
374
|
+
export type { AgentCapability };
|
|
370
375
|
export type { AgentBasicInformation };
|
|
371
376
|
export type { AgentModelRequirements };
|
|
372
377
|
export type { string_book };
|
|
@@ -546,6 +551,8 @@ export type { ScraperSourceHandler };
|
|
|
546
551
|
export type { ScraperIntermediateSource };
|
|
547
552
|
export type { JavascriptExecutionToolsOptions };
|
|
548
553
|
export type { PostprocessingFunction };
|
|
554
|
+
export type { SearchEngine };
|
|
555
|
+
export type { SearchResult };
|
|
549
556
|
export type { PromptbookStorage };
|
|
550
557
|
export type { FileCacheStorageOptions };
|
|
551
558
|
export type { IndexedDbStorageOptions };
|
|
@@ -553,6 +560,7 @@ export type { BookTranspiler };
|
|
|
553
560
|
export type { BookTranspilerOptions };
|
|
554
561
|
export type { IntermediateFilesStrategy };
|
|
555
562
|
export type { LlmCall };
|
|
563
|
+
export type { LlmToolDefinition };
|
|
556
564
|
export type { Message };
|
|
557
565
|
export type { ModelRequirements };
|
|
558
566
|
export type { CompletionModelRequirements };
|
|
@@ -23,6 +23,24 @@ export type BookParameter = {
|
|
|
23
23
|
*/
|
|
24
24
|
description?: string;
|
|
25
25
|
};
|
|
26
|
+
/**
|
|
27
|
+
* Capability of the agent
|
|
28
|
+
* This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
|
|
29
|
+
*/
|
|
30
|
+
export type AgentCapability = {
|
|
31
|
+
/**
|
|
32
|
+
* The type of the capability
|
|
33
|
+
*/
|
|
34
|
+
type: 'browser' | 'search-engine' | 'knowledge';
|
|
35
|
+
/**
|
|
36
|
+
* The label to display for this capability
|
|
37
|
+
*/
|
|
38
|
+
label: string;
|
|
39
|
+
/**
|
|
40
|
+
* The name of the icon to display for this capability
|
|
41
|
+
*/
|
|
42
|
+
iconName: string;
|
|
43
|
+
};
|
|
26
44
|
export type AgentBasicInformation = {
|
|
27
45
|
/**
|
|
28
46
|
* Name of the agent
|
|
@@ -55,6 +73,7 @@ export type AgentBasicInformation = {
|
|
|
55
73
|
*/
|
|
56
74
|
meta: {
|
|
57
75
|
fullname?: string;
|
|
76
|
+
description?: string;
|
|
58
77
|
image?: string_url_image;
|
|
59
78
|
font?: string_fonts;
|
|
60
79
|
color?: string_color;
|
|
@@ -72,6 +91,11 @@ export type AgentBasicInformation = {
|
|
|
72
91
|
* - {parameterName} or {parameter with multiple words} or {parameterName: description text}
|
|
73
92
|
*/
|
|
74
93
|
parameters: BookParameter[];
|
|
94
|
+
/**
|
|
95
|
+
* Capabilities of the agent
|
|
96
|
+
* This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
|
|
97
|
+
*/
|
|
98
|
+
capabilities: AgentCapability[];
|
|
75
99
|
};
|
|
76
100
|
/**
|
|
77
101
|
* TODO: [🐱🚀] Make all properties of `AgentBasicInformation` readonly
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LlmToolDefinition } from '../../types/LlmToolDefinition';
|
|
1
2
|
import type { string_knowledge_source_link } from '../../types/typeAliases';
|
|
2
3
|
import type { TODO_any } from '../../utils/organization/TODO_any';
|
|
3
4
|
/**
|
|
@@ -45,6 +46,10 @@ export type AgentModelRequirements = {
|
|
|
45
46
|
* Top-k sampling value for the agent's responses
|
|
46
47
|
*/
|
|
47
48
|
readonly topK?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Tools available for the agent
|
|
51
|
+
*/
|
|
52
|
+
readonly tools?: ReadonlyArray<LlmToolDefinition>;
|
|
48
53
|
/**
|
|
49
54
|
* Arbitrary metadata storage for commitments
|
|
50
55
|
* Each commitment can store its own data here
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -23,11 +23,11 @@ export type ChatMessage = Omit<Message<id>, 'direction' | 'recipients' | 'thread
|
|
|
23
23
|
*/
|
|
24
24
|
isComplete?: boolean;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
26
|
+
* The expected answer for the message (used for testing or validation)
|
|
27
27
|
*/
|
|
28
28
|
expectedAnswer?: string;
|
|
29
29
|
/**
|
|
30
|
-
*
|
|
30
|
+
* Indicates if the message was sent via a voice call
|
|
31
31
|
*/
|
|
32
32
|
isVoiceCall?: boolean;
|
|
33
33
|
};
|
|
@@ -26,11 +26,11 @@ export declare class AgentCollectionInSupabase {
|
|
|
26
26
|
*/
|
|
27
27
|
listAgents(): Promise<ReadonlyArray<AgentBasicInformation>>;
|
|
28
28
|
/**
|
|
29
|
-
*
|
|
29
|
+
* Retrieves the permanent ID of an agent by its name or permanent ID.
|
|
30
30
|
*/
|
|
31
31
|
getAgentPermanentId(agentNameOrPermanentId: string_agent_name | string_agent_permanent_id): Promise<string_agent_permanent_id>;
|
|
32
32
|
/**
|
|
33
|
-
*
|
|
33
|
+
* Retrieves the source code of an agent by its name or permanent ID.
|
|
34
34
|
*/
|
|
35
35
|
getAgentSource(agentNameOrPermanentId: string_agent_name | string_agent_permanent_id): Promise<string_book>;
|
|
36
36
|
/**
|
|
@@ -108,60 +108,6 @@ export type AgentsDatabaseSchema = {
|
|
|
108
108
|
}
|
|
109
109
|
];
|
|
110
110
|
};
|
|
111
|
-
GenerationLock: {
|
|
112
|
-
Row: {
|
|
113
|
-
id: number;
|
|
114
|
-
createdAt: string;
|
|
115
|
-
updatedAt: string;
|
|
116
|
-
lockKey: string;
|
|
117
|
-
expiresAt: string;
|
|
118
|
-
};
|
|
119
|
-
Insert: {
|
|
120
|
-
id?: number;
|
|
121
|
-
createdAt?: string;
|
|
122
|
-
updatedAt?: string;
|
|
123
|
-
lockKey: string;
|
|
124
|
-
expiresAt: string;
|
|
125
|
-
};
|
|
126
|
-
Update: {
|
|
127
|
-
id?: number;
|
|
128
|
-
createdAt?: string;
|
|
129
|
-
updatedAt?: string;
|
|
130
|
-
lockKey?: string;
|
|
131
|
-
expiresAt?: string;
|
|
132
|
-
};
|
|
133
|
-
Relationships: [];
|
|
134
|
-
};
|
|
135
|
-
Image: {
|
|
136
|
-
Row: {
|
|
137
|
-
id: number;
|
|
138
|
-
createdAt: string;
|
|
139
|
-
updatedAt: string;
|
|
140
|
-
filename: string;
|
|
141
|
-
prompt: string;
|
|
142
|
-
cdnUrl: string;
|
|
143
|
-
cdnKey: string;
|
|
144
|
-
};
|
|
145
|
-
Insert: {
|
|
146
|
-
id?: number;
|
|
147
|
-
createdAt?: string;
|
|
148
|
-
updatedAt?: string;
|
|
149
|
-
filename: string;
|
|
150
|
-
prompt: string;
|
|
151
|
-
cdnUrl: string;
|
|
152
|
-
cdnKey: string;
|
|
153
|
-
};
|
|
154
|
-
Update: {
|
|
155
|
-
id?: number;
|
|
156
|
-
createdAt?: string;
|
|
157
|
-
updatedAt?: string;
|
|
158
|
-
filename?: string;
|
|
159
|
-
prompt?: string;
|
|
160
|
-
cdnUrl?: string;
|
|
161
|
-
cdnKey?: string;
|
|
162
|
-
};
|
|
163
|
-
Relationships: [];
|
|
164
|
-
};
|
|
165
111
|
};
|
|
166
112
|
Views: Record<string, never>;
|
|
167
113
|
Functions: Record<string, never>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { AgentModelRequirements } from '../../book-2.0/agent-source/AgentModelRequirements';
|
|
2
|
+
import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
3
|
+
/**
|
|
4
|
+
* META DESCRIPTION commitment definition
|
|
5
|
+
*
|
|
6
|
+
* The META DESCRIPTION commitment sets the agent's meta description for the profile page.
|
|
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 DESCRIPTION An AI assistant specialized in business tasks
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
17
|
+
*/
|
|
18
|
+
export declare class MetaDescriptionCommitmentDefinition extends BaseCommitmentDefinition<'META DESCRIPTION'> {
|
|
19
|
+
constructor();
|
|
20
|
+
/**
|
|
21
|
+
* Short one-line description of META DESCRIPTION.
|
|
22
|
+
*/
|
|
23
|
+
get description(): string;
|
|
24
|
+
/**
|
|
25
|
+
* Icon for this commitment.
|
|
26
|
+
*/
|
|
27
|
+
get icon(): string;
|
|
28
|
+
/**
|
|
29
|
+
* Markdown documentation for META DESCRIPTION commitment.
|
|
30
|
+
*/
|
|
31
|
+
get documentation(): string;
|
|
32
|
+
applyToAgentModelRequirements(requirements: AgentModelRequirements, content: string): AgentModelRequirements;
|
|
33
|
+
/**
|
|
34
|
+
* Extracts the meta description from the content
|
|
35
|
+
* This is used by the parsing logic
|
|
36
|
+
*/
|
|
37
|
+
extractMetaDescription(content: string): string | null;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
41
|
+
*/
|
|
@@ -6,13 +6,13 @@ import { BaseCommitmentDefinition } from '../_base/BaseCommitmentDefinition';
|
|
|
6
6
|
* The `USE SEARCH ENGINE` commitment indicates that the agent should utilize a search engine tool
|
|
7
7
|
* to access and retrieve up-to-date information from the internet when necessary.
|
|
8
8
|
*
|
|
9
|
-
* The content following `USE SEARCH ENGINE` is
|
|
9
|
+
* The content following `USE SEARCH ENGINE` is an arbitrary text that the agent should know (e.g. search scope or instructions).
|
|
10
10
|
*
|
|
11
11
|
* Example usage in agent source:
|
|
12
12
|
*
|
|
13
13
|
* ```book
|
|
14
14
|
* USE SEARCH ENGINE
|
|
15
|
-
* USE SEARCH ENGINE
|
|
15
|
+
* USE SEARCH ENGINE Hledej informace o Přemyslovcích
|
|
16
16
|
* ```
|
|
17
17
|
*
|
|
18
18
|
* @private [🪔] Maybe export the commitments through some package
|
|
@@ -21,7 +21,7 @@ export declare function $provideLlmToolsForTestingAndScriptsAndPlayground(option
|
|
|
21
21
|
export {};
|
|
22
22
|
/**
|
|
23
23
|
* Note: [⚪] This should never be in any released package
|
|
24
|
-
* TODO: [👷♂️]
|
|
24
|
+
* TODO: [👷♂️] Write a comprehensive manual about the construction of LLM tools
|
|
25
25
|
* TODO: This should be maybe not under `_common` but under `utils-internal` / `utils/internal`
|
|
26
26
|
* TODO: [®] DRY Register logi
|
|
27
27
|
*/
|
|
@@ -51,7 +51,7 @@ export declare function $provideLlmToolsForWizardOrCli(options?: ProvideLlmTools
|
|
|
51
51
|
export {};
|
|
52
52
|
/**
|
|
53
53
|
* Note: [🟢] Code in this file should never be never released in packages that could be imported into browser environment
|
|
54
|
-
* TODO: [👷♂️]
|
|
54
|
+
* TODO: [👷♂️] Write a comprehensive manual about the construction of LLM tools
|
|
55
55
|
* TODO: [🥃] Allow `ptbk make` without llm tools
|
|
56
56
|
* TODO: This should be maybe not under `_common` but under `utils-internal` / `utils/internal`
|
|
57
57
|
* TODO: [®] DRY Register logic
|
|
@@ -17,6 +17,6 @@ export type LlmExecutionToolsWithTotalUsage = LlmExecutionTools & {
|
|
|
17
17
|
spending(): Observable<Usage>;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
* TODO: [👷♂️]
|
|
20
|
+
* TODO: [👷♂️] Write a comprehensive manual about the construction of LLM tools
|
|
21
21
|
* Note: [🥫] Not using getter `get totalUsage` but `getTotalUsage` to allow this object to be proxied
|
|
22
22
|
*/
|
|
@@ -13,5 +13,5 @@ export declare function countUsage(llmTools: LlmExecutionTools): LlmExecutionToo
|
|
|
13
13
|
* TODO: [🧠] Is there some meaningfull way how to test this util
|
|
14
14
|
* TODO: [🧠][🌯] Maybe a way how to hide ability to `get totalUsage`
|
|
15
15
|
* > const [llmToolsWithUsage,getUsage] = countTotalUsage(llmTools);
|
|
16
|
-
* TODO: [👷♂️]
|
|
16
|
+
* TODO: [👷♂️] Write a comprehensive manual explaining the construction and usage of LLM tools in the Promptbook ecosystem
|
|
17
17
|
*/
|
|
@@ -32,5 +32,5 @@ export {};
|
|
|
32
32
|
* TODO: [🧠][💸] Maybe make some common abstraction `interceptLlmTools` and use here (or use javascript Proxy?)
|
|
33
33
|
* TODO: [🧠] Is there some meaningfull way how to test this util
|
|
34
34
|
* TODO: [🧠][🌯] Maybe a way how to hide ability to `get totalUsage`
|
|
35
|
-
* TODO: [👷♂️]
|
|
35
|
+
* TODO: [👷♂️] Write a comprehensive manual about the construction of LLM tools
|
|
36
36
|
*/
|
|
@@ -8,5 +8,5 @@ import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
|
|
|
8
8
|
export declare function getSingleLlmExecutionTools(oneOrMoreLlmExecutionTools: undefined | LlmExecutionTools | ReadonlyArray<LlmExecutionTools>): LlmExecutionTools | MultipleLlmExecutionTools;
|
|
9
9
|
/**
|
|
10
10
|
* TODO: [🙆] `getSingleLlmExecutionTools` vs `joinLlmExecutionTools` - explain difference or pick one
|
|
11
|
-
* TODO: [👷♂️]
|
|
11
|
+
* TODO: [👷♂️] Write a comprehensive manual about how to construct and use LLM execution tools in Promptbook
|
|
12
12
|
*/
|
|
@@ -19,5 +19,5 @@ import { MultipleLlmExecutionTools } from './MultipleLlmExecutionTools';
|
|
|
19
19
|
export declare function joinLlmExecutionTools(title: string_title & string_markdown_text, ...llmExecutionTools: ReadonlyArray<LlmExecutionTools>): MultipleLlmExecutionTools;
|
|
20
20
|
/**
|
|
21
21
|
* TODO: [🙆] `getSingleLlmExecutionTools` vs `joinLlmExecutionTools` - explain difference or pick one
|
|
22
|
-
* TODO: [👷♂️]
|
|
22
|
+
* TODO: [👷♂️] Write a comprehensive manual about how to construct and use LLM execution tools in Promptbook
|
|
23
23
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BehaviorSubject } from 'rxjs';
|
|
2
|
-
import type { AgentBasicInformation, BookParameter } from '../../book-2.0/agent-source/AgentBasicInformation';
|
|
2
|
+
import type { AgentBasicInformation, AgentCapability, BookParameter } from '../../book-2.0/agent-source/AgentBasicInformation';
|
|
3
3
|
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';
|
|
@@ -37,6 +37,11 @@ export declare class Agent extends AgentLlmExecutionTools implements LlmExecutio
|
|
|
37
37
|
* Links found in the agent source
|
|
38
38
|
*/
|
|
39
39
|
links: Array<string_agent_url>;
|
|
40
|
+
/**
|
|
41
|
+
* Capabilities of the agent
|
|
42
|
+
* This is parsed from commitments like USE BROWSER, USE SEARCH ENGINE, KNOWLEDGE, etc.
|
|
43
|
+
*/
|
|
44
|
+
capabilities: AgentCapability[];
|
|
40
45
|
/**
|
|
41
46
|
* Computed hash of the agent source for integrity verification
|
|
42
47
|
*/
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type OpenAI from 'openai';
|
|
2
|
+
import type { LlmToolDefinition } from '../../../types/LlmToolDefinition';
|
|
3
|
+
/**
|
|
4
|
+
* Maps Promptbook tools to OpenAI tools.
|
|
5
|
+
*
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
export declare function mapToolsToOpenAi(tools: ReadonlyArray<LlmToolDefinition>): Array<OpenAI.Chat.Completions.ChatCompletionTool>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { string_markdown, string_markdown_text, string_title } from '../types/typeAliases';
|
|
3
|
+
import type { SearchResult } from './SearchResult';
|
|
4
|
+
export type SearchEngine = {
|
|
5
|
+
readonly title: string_title & string_markdown_text;
|
|
6
|
+
readonly description?: string_markdown;
|
|
7
|
+
checkConfiguration(): Promisable<void>;
|
|
8
|
+
search(query: string): Promise<SearchResult[]>;
|
|
9
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { string_url } from '../types/typeAliases';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a search result from a search engine.
|
|
4
|
+
*/
|
|
5
|
+
export type SearchResult = {
|
|
6
|
+
/**
|
|
7
|
+
* The title of the search result.
|
|
8
|
+
*/
|
|
9
|
+
title: string;
|
|
10
|
+
/**
|
|
11
|
+
* The URL of the search result.
|
|
12
|
+
*/
|
|
13
|
+
url: string_url;
|
|
14
|
+
/**
|
|
15
|
+
* A short snippet or description of the search result.
|
|
16
|
+
*/
|
|
17
|
+
snippet: string;
|
|
18
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
|
|
3
|
+
import type { SearchEngine } from '../SearchEngine';
|
|
4
|
+
import type { SearchResult } from '../SearchResult';
|
|
5
|
+
/**
|
|
6
|
+
* A search engine implementation that uses the Bing Web Search API.
|
|
7
|
+
*
|
|
8
|
+
* @private <- TODO: !!!! Export via some package
|
|
9
|
+
*/
|
|
10
|
+
export declare class BingSearchEngine implements SearchEngine {
|
|
11
|
+
get title(): string_title & string_markdown_text;
|
|
12
|
+
get description(): string_markdown;
|
|
13
|
+
checkConfiguration(): Promisable<void>;
|
|
14
|
+
search(query: string): Promise<SearchResult[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Promisable } from 'type-fest';
|
|
2
|
+
import type { string_markdown, string_markdown_text, string_title } from '../../types/typeAliases';
|
|
3
|
+
import type { SearchEngine } from '../SearchEngine';
|
|
4
|
+
import type { SearchResult } from '../SearchResult';
|
|
5
|
+
/**
|
|
6
|
+
* A dummy implementation of SearchEngine for testing purposes.
|
|
7
|
+
*
|
|
8
|
+
* @private <- TODO: !!!! Export via some package, maybe `@promptbook/search-engines` or `@promptbook/fake-llm`
|
|
9
|
+
*/
|
|
10
|
+
export declare class DummySearchEngine implements SearchEngine {
|
|
11
|
+
get title(): string_title & string_markdown_text;
|
|
12
|
+
get description(): string_markdown;
|
|
13
|
+
checkConfiguration(): Promisable<void>;
|
|
14
|
+
search(query: string): Promise<SearchResult[]>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { string_markdown_text, string_name } from './typeAliases';
|
|
2
|
+
/**
|
|
3
|
+
* Definition of a tool that can be used by the model
|
|
4
|
+
*
|
|
5
|
+
* Note: [🚉] This is fully serializable as JSON
|
|
6
|
+
*/
|
|
7
|
+
export type LlmToolDefinition = {
|
|
8
|
+
/**
|
|
9
|
+
* Name of the tool
|
|
10
|
+
*/
|
|
11
|
+
readonly name: string_name;
|
|
12
|
+
/**
|
|
13
|
+
* Description of the tool
|
|
14
|
+
*/
|
|
15
|
+
readonly description: string_markdown_text;
|
|
16
|
+
/**
|
|
17
|
+
* Parameters of the tool in JSON Schema format
|
|
18
|
+
*/
|
|
19
|
+
readonly parameters: Record<string, unknown>;
|
|
20
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { LlmToolDefinition } from './LlmToolDefinition';
|
|
1
2
|
import type { ModelVariant } from './ModelVariant';
|
|
2
3
|
import type { number_model_temperature, number_seed, string_model_name, string_system_message } from './typeAliases';
|
|
3
4
|
/**
|
|
@@ -28,6 +29,12 @@ export type CompletionModelRequirements = CommonModelRequirements & {
|
|
|
28
29
|
* Maximum number of tokens that can be generated by the model
|
|
29
30
|
*/
|
|
30
31
|
readonly maxTokens?: number;
|
|
32
|
+
/**
|
|
33
|
+
* Tools available for the model
|
|
34
|
+
*
|
|
35
|
+
* Note: [🚉] This is fully serializable as JSON
|
|
36
|
+
*/
|
|
37
|
+
readonly tools?: LlmToolDefinition[];
|
|
31
38
|
};
|
|
32
39
|
/**
|
|
33
40
|
* Model requirements for the chat variant
|
|
@@ -53,6 +60,12 @@ export type ChatModelRequirements = CommonModelRequirements & {
|
|
|
53
60
|
* Maximum number of tokens that can be generated by the model
|
|
54
61
|
*/
|
|
55
62
|
readonly maxTokens?: number;
|
|
63
|
+
/**
|
|
64
|
+
* Tools available for the model
|
|
65
|
+
*
|
|
66
|
+
* Note: [🚉] This is fully serializable as JSON
|
|
67
|
+
*/
|
|
68
|
+
readonly tools?: LlmToolDefinition[];
|
|
56
69
|
};
|
|
57
70
|
/**
|
|
58
71
|
* Model requirements for the image generation variant
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import type { string_persona_description } from '../../types/typeAliases';
|
|
1
2
|
/**
|
|
2
|
-
*
|
|
3
|
+
* Generates a random agent persona description.
|
|
3
4
|
*
|
|
4
5
|
* @private internal helper function
|
|
5
6
|
*/
|
|
6
|
-
export declare function $randomAgentPersona():
|
|
7
|
+
export declare function $randomAgentPersona(): string_persona_description;
|
|
7
8
|
/**
|
|
8
9
|
* TODO: [🤶] Maybe export through `@promptbook/utils` or `@promptbook/random` package
|
|
9
10
|
*/
|
|
@@ -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.104.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.104.0-11`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
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.104.0-
|
|
26
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-12';
|
|
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
|