@promptbook/node 0.92.0-32 → 0.92.0-34
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 +46 -20
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/core.index.d.ts +4 -4
- package/esm/typings/src/_packages/types.index.d.ts +2 -0
- package/esm/typings/src/execution/ExecutionTask.d.ts +19 -1
- package/esm/typings/src/llm-providers/_common/register/$provideLlmToolsFromEnv.d.ts +1 -1
- package/esm/typings/src/llm-providers/_common/register/createLlmToolsFromConfiguration.d.ts +1 -1
- package/esm/typings/src/llm-providers/azure-openai/AzureOpenAiExecutionToolsOptions.d.ts +4 -4
- package/esm/typings/src/storage/local-storage/getIndexedDbStorage.d.ts +2 -1
- package/esm/typings/src/storage/local-storage/utils/IndexedDbStorageOptions.d.ts +14 -0
- package/esm/typings/src/storage/local-storage/utils/makePromptbookStorageFromIndexedDb.d.ts +2 -1
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +46 -20
- package/umd/index.umd.js.map +1 -1
- /package/esm/typings/src/llm-providers/{multiple → _multiple}/MultipleLlmExecutionTools.d.ts +0 -0
- /package/esm/typings/src/llm-providers/{multiple → _multiple}/joinLlmExecutionTools.d.ts +0 -0
- /package/esm/typings/src/llm-providers/{multiple → _multiple}/playground/playground.d.ts +0 -0
|
@@ -102,12 +102,12 @@ import { createLlmToolsFromConfiguration } from '../llm-providers/_common/regist
|
|
|
102
102
|
import { cacheLlmTools } from '../llm-providers/_common/utils/cache/cacheLlmTools';
|
|
103
103
|
import { countUsage } from '../llm-providers/_common/utils/count-total-usage/countUsage';
|
|
104
104
|
import { limitTotalUsage } from '../llm-providers/_common/utils/count-total-usage/limitTotalUsage';
|
|
105
|
+
import { joinLlmExecutionTools } from '../llm-providers/_multiple/joinLlmExecutionTools';
|
|
106
|
+
import { MultipleLlmExecutionTools } from '../llm-providers/_multiple/MultipleLlmExecutionTools';
|
|
105
107
|
import { _AnthropicClaudeMetadataRegistration } from '../llm-providers/anthropic-claude/register-configuration';
|
|
106
108
|
import { _AzureOpenAiMetadataRegistration } from '../llm-providers/azure-openai/register-configuration';
|
|
107
109
|
import { _DeepseekMetadataRegistration } from '../llm-providers/deepseek/register-configuration';
|
|
108
110
|
import { _GoogleMetadataRegistration } from '../llm-providers/google/register-configuration';
|
|
109
|
-
import { joinLlmExecutionTools } from '../llm-providers/multiple/joinLlmExecutionTools';
|
|
110
|
-
import { MultipleLlmExecutionTools } from '../llm-providers/multiple/MultipleLlmExecutionTools';
|
|
111
111
|
import { _OpenAiMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
112
112
|
import { _OpenAiAssistantMetadataRegistration } from '../llm-providers/openai/register-configuration';
|
|
113
113
|
import { migratePipeline } from '../migrations/migratePipeline';
|
|
@@ -249,12 +249,12 @@ export { createLlmToolsFromConfiguration };
|
|
|
249
249
|
export { cacheLlmTools };
|
|
250
250
|
export { countUsage };
|
|
251
251
|
export { limitTotalUsage };
|
|
252
|
+
export { joinLlmExecutionTools };
|
|
253
|
+
export { MultipleLlmExecutionTools };
|
|
252
254
|
export { _AnthropicClaudeMetadataRegistration };
|
|
253
255
|
export { _AzureOpenAiMetadataRegistration };
|
|
254
256
|
export { _DeepseekMetadataRegistration };
|
|
255
257
|
export { _GoogleMetadataRegistration };
|
|
256
|
-
export { joinLlmExecutionTools };
|
|
257
|
-
export { MultipleLlmExecutionTools };
|
|
258
258
|
export { _OpenAiMetadataRegistration };
|
|
259
259
|
export { _OpenAiAssistantMetadataRegistration };
|
|
260
260
|
export { migratePipeline };
|
|
@@ -134,6 +134,7 @@ import type { JavascriptExecutionToolsOptions } from '../scripting/javascript/Ja
|
|
|
134
134
|
import type { PostprocessingFunction } from '../scripting/javascript/JavascriptExecutionToolsOptions';
|
|
135
135
|
import type { PromptbookStorage } from '../storage/_common/PromptbookStorage';
|
|
136
136
|
import type { FileCacheStorageOptions } from '../storage/file-cache-storage/FileCacheStorageOptions';
|
|
137
|
+
import type { IndexedDbStorageOptions } from '../storage/local-storage/utils/IndexedDbStorageOptions';
|
|
137
138
|
import type { IntermediateFilesStrategy } from '../types/IntermediateFilesStrategy';
|
|
138
139
|
import type { ModelRequirements } from '../types/ModelRequirements';
|
|
139
140
|
import type { CompletionModelRequirements } from '../types/ModelRequirements';
|
|
@@ -431,6 +432,7 @@ export type { JavascriptExecutionToolsOptions };
|
|
|
431
432
|
export type { PostprocessingFunction };
|
|
432
433
|
export type { PromptbookStorage };
|
|
433
434
|
export type { FileCacheStorageOptions };
|
|
435
|
+
export type { IndexedDbStorageOptions };
|
|
434
436
|
export type { IntermediateFilesStrategy };
|
|
435
437
|
export type { ModelRequirements };
|
|
436
438
|
export type { CompletionModelRequirements };
|
|
@@ -2,6 +2,7 @@ import type { Observable } from 'rxjs';
|
|
|
2
2
|
import { PartialDeep } from 'type-fest';
|
|
3
3
|
import type { task_id } from '../types/typeAliases';
|
|
4
4
|
import type { string_SCREAMING_CASE } from '../utils/normalization/normalizeTo_SCREAMING_CASE';
|
|
5
|
+
import type { string_promptbook_version } from '../version';
|
|
5
6
|
import type { AbstractTaskResult } from './AbstractTaskResult';
|
|
6
7
|
import type { PipelineExecutorResult } from './PipelineExecutorResult';
|
|
7
8
|
/**
|
|
@@ -12,12 +13,21 @@ type CreateTaskOptions<TTaskResult extends AbstractTaskResult> = {
|
|
|
12
13
|
* The type of task to create
|
|
13
14
|
*/
|
|
14
15
|
readonly taskType: AbstractTask<TTaskResult>['taskType'];
|
|
16
|
+
/**
|
|
17
|
+
* Human-readable title of the task - used for displaying in the UI
|
|
18
|
+
*/
|
|
19
|
+
readonly title: AbstractTask<TTaskResult>['title'];
|
|
15
20
|
/**
|
|
16
21
|
* Callback that processes the task and updates the ongoing result
|
|
17
22
|
* @param ongoingResult The partial result of the task processing
|
|
18
23
|
* @returns The final task result
|
|
19
24
|
*/
|
|
20
|
-
taskProcessCallback(updateOngoingResult: (newOngoingResult: PartialDeep<TTaskResult>
|
|
25
|
+
taskProcessCallback(updateOngoingResult: (newOngoingResult: PartialDeep<TTaskResult> & {
|
|
26
|
+
/**
|
|
27
|
+
* Optional update of the task title
|
|
28
|
+
*/
|
|
29
|
+
readonly title?: AbstractTask<TTaskResult>['title'];
|
|
30
|
+
}) => void): Promise<TTaskResult>;
|
|
21
31
|
};
|
|
22
32
|
/**
|
|
23
33
|
* Helper to create a new task
|
|
@@ -52,10 +62,18 @@ export type AbstractTask<TTaskResult extends AbstractTaskResult> = {
|
|
|
52
62
|
* Type of the task
|
|
53
63
|
*/
|
|
54
64
|
readonly taskType: string_SCREAMING_CASE;
|
|
65
|
+
/**
|
|
66
|
+
* Version of the promptbook used to run the task
|
|
67
|
+
*/
|
|
68
|
+
readonly promptbookVersion: string_promptbook_version;
|
|
55
69
|
/**
|
|
56
70
|
* Unique identifier for the task
|
|
57
71
|
*/
|
|
58
72
|
readonly taskId: task_id;
|
|
73
|
+
/**
|
|
74
|
+
* Human-readable title of the task - used for displaying in the UI
|
|
75
|
+
*/
|
|
76
|
+
readonly title: string;
|
|
59
77
|
/**
|
|
60
78
|
* Status of the task
|
|
61
79
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MultipleLlmExecutionTools } from '../../
|
|
1
|
+
import { MultipleLlmExecutionTools } from '../../_multiple/MultipleLlmExecutionTools';
|
|
2
2
|
import type { CreateLlmToolsFromConfigurationOptions } from './createLlmToolsFromConfiguration';
|
|
3
3
|
/**
|
|
4
4
|
* Automatically configures LLM tools from environment variables in Node.js
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { string_user_id } from '../../../types/typeAliases';
|
|
2
|
-
import { MultipleLlmExecutionTools } from '../../
|
|
2
|
+
import { MultipleLlmExecutionTools } from '../../_multiple/MultipleLlmExecutionTools';
|
|
3
3
|
import type { LlmToolsConfiguration } from './LlmToolsConfiguration';
|
|
4
4
|
/**
|
|
5
5
|
* Options for `$provideLlmToolsFromEnv`
|
|
@@ -9,6 +9,10 @@ import type { string_user_id } from '../../types/typeAliases';
|
|
|
9
9
|
* @public exported from `@promptbook/azure-openai`
|
|
10
10
|
*/
|
|
11
11
|
export type AzureOpenAiExecutionToolsOptions = CommonToolsOptions & {
|
|
12
|
+
/**
|
|
13
|
+
* The API key of the Azure OpenAI resource
|
|
14
|
+
*/
|
|
15
|
+
readonly apiKey: string_token;
|
|
12
16
|
/**
|
|
13
17
|
* The resource name of the Azure OpenAI resource
|
|
14
18
|
*
|
|
@@ -23,10 +27,6 @@ export type AzureOpenAiExecutionToolsOptions = CommonToolsOptions & {
|
|
|
23
27
|
* Note: Typically you have one resource and multiple deployments.
|
|
24
28
|
*/
|
|
25
29
|
readonly deploymentName: string_name;
|
|
26
|
-
/**
|
|
27
|
-
* The API key of the Azure OpenAI resource
|
|
28
|
-
*/
|
|
29
|
-
readonly apiKey: string_token;
|
|
30
30
|
/**
|
|
31
31
|
* A unique identifier representing your end-user, which can help Azure OpenAI to monitor
|
|
32
32
|
* and detect abuse.
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { PromptbookStorage } from '../_common/PromptbookStorage';
|
|
2
|
+
import type { IndexedDbStorageOptions } from './utils/IndexedDbStorageOptions';
|
|
2
3
|
/**
|
|
3
4
|
* Gets wrapper around IndexedDB which can be used as PromptbookStorage
|
|
4
5
|
*
|
|
5
6
|
* @public exported from `@promptbook/browser`
|
|
6
7
|
*/
|
|
7
|
-
export declare function getIndexedDbStorage<TItem>(): PromptbookStorage<TItem>;
|
|
8
|
+
export declare function getIndexedDbStorage<TItem>(options: IndexedDbStorageOptions): PromptbookStorage<TItem>;
|
|
8
9
|
/**
|
|
9
10
|
* Note: [🔵] Code in this file should never be published outside of `@promptbook/browser`
|
|
10
11
|
*/
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { string_name } from '../../../types/typeAliases';
|
|
2
|
+
/**
|
|
3
|
+
* Options for IndexedDB storage
|
|
4
|
+
*/
|
|
5
|
+
export type IndexedDbStorageOptions = {
|
|
6
|
+
/**
|
|
7
|
+
* Name of the database
|
|
8
|
+
*/
|
|
9
|
+
databaseName: string_name;
|
|
10
|
+
/**
|
|
11
|
+
* Name of the object store (table) in the database
|
|
12
|
+
*/
|
|
13
|
+
storeName: string_name;
|
|
14
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { PromptbookStorage } from '../../_common/PromptbookStorage';
|
|
2
|
+
import type { IndexedDbStorageOptions } from './IndexedDbStorageOptions';
|
|
2
3
|
/**
|
|
3
4
|
* Creates a PromptbookStorage backed by IndexedDB.
|
|
4
5
|
* Uses a single object store named 'promptbook'.
|
|
5
6
|
* @private for `getIndexedDbStorage`
|
|
6
7
|
*/
|
|
7
|
-
export declare function makePromptbookStorageFromIndexedDb<TValue>(
|
|
8
|
+
export declare function makePromptbookStorageFromIndexedDb<TValue>(options: IndexedDbStorageOptions): PromptbookStorage<TValue>;
|
|
@@ -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.92.0-
|
|
18
|
+
* It follows semantic versioning (e.g., `0.92.0-33`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/node",
|
|
3
|
-
"version": "0.92.0-
|
|
3
|
+
"version": "0.92.0-34",
|
|
4
4
|
"description": "It's time for a paradigm shift. The future of software in plain English, French or Latin",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"module": "./esm/index.es.js",
|
|
52
52
|
"typings": "./esm/typings/src/_packages/node.index.d.ts",
|
|
53
53
|
"peerDependencies": {
|
|
54
|
-
"@promptbook/core": "0.92.0-
|
|
54
|
+
"@promptbook/core": "0.92.0-34"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"colors": "1.4.0",
|
package/umd/index.umd.js
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
* @generated
|
|
47
47
|
* @see https://github.com/webgptorg/promptbook
|
|
48
48
|
*/
|
|
49
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-
|
|
49
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.92.0-34';
|
|
50
50
|
/**
|
|
51
51
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
52
52
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -2102,6 +2102,7 @@
|
|
|
2102
2102
|
*/
|
|
2103
2103
|
function createTask(options) {
|
|
2104
2104
|
const { taskType, taskProcessCallback } = options;
|
|
2105
|
+
let { title } = options;
|
|
2105
2106
|
// TODO: [🐙] DRY
|
|
2106
2107
|
const taskId = `${taskType.toLowerCase().substring(0, 4)}-${$randomToken(8 /* <- TODO: To global config + Use Base58 to avoid simmilar char conflicts */)}`;
|
|
2107
2108
|
let status = 'RUNNING';
|
|
@@ -2113,6 +2114,10 @@
|
|
|
2113
2114
|
const partialResultSubject = new rxjs.Subject();
|
|
2114
2115
|
// <- Note: Not using `BehaviorSubject` because on error we can't access the last value
|
|
2115
2116
|
const finalResultPromise = /* not await */ taskProcessCallback((newOngoingResult) => {
|
|
2117
|
+
if (newOngoingResult.title) {
|
|
2118
|
+
title = newOngoingResult.title;
|
|
2119
|
+
}
|
|
2120
|
+
updatedAt = new Date();
|
|
2116
2121
|
Object.assign(currentValue, newOngoingResult);
|
|
2117
2122
|
// <- TODO: assign deep
|
|
2118
2123
|
partialResultSubject.next(newOngoingResult);
|
|
@@ -2158,17 +2163,24 @@
|
|
|
2158
2163
|
return {
|
|
2159
2164
|
taskType,
|
|
2160
2165
|
taskId,
|
|
2166
|
+
get promptbookVersion() {
|
|
2167
|
+
return PROMPTBOOK_ENGINE_VERSION;
|
|
2168
|
+
},
|
|
2169
|
+
get title() {
|
|
2170
|
+
return title;
|
|
2171
|
+
// <- Note: [1] Theese must be getters to allow changing the value in the future
|
|
2172
|
+
},
|
|
2161
2173
|
get status() {
|
|
2162
2174
|
return status;
|
|
2163
|
-
// <- Note: [1]
|
|
2175
|
+
// <- Note: [1] --||--
|
|
2164
2176
|
},
|
|
2165
2177
|
get createdAt() {
|
|
2166
2178
|
return createdAt;
|
|
2167
|
-
// <- Note: [1]
|
|
2179
|
+
// <- Note: [1] --||--
|
|
2168
2180
|
},
|
|
2169
2181
|
get updatedAt() {
|
|
2170
2182
|
return updatedAt;
|
|
2171
|
-
// <- Note: [1]
|
|
2183
|
+
// <- Note: [1] --||--
|
|
2172
2184
|
},
|
|
2173
2185
|
asPromise,
|
|
2174
2186
|
asObservable() {
|
|
@@ -2176,15 +2188,15 @@
|
|
|
2176
2188
|
},
|
|
2177
2189
|
get errors() {
|
|
2178
2190
|
return errors;
|
|
2179
|
-
// <- Note: [1]
|
|
2191
|
+
// <- Note: [1] --||--
|
|
2180
2192
|
},
|
|
2181
2193
|
get warnings() {
|
|
2182
2194
|
return warnings;
|
|
2183
|
-
// <- Note: [1]
|
|
2195
|
+
// <- Note: [1] --||--
|
|
2184
2196
|
},
|
|
2185
2197
|
get currentValue() {
|
|
2186
2198
|
return currentValue;
|
|
2187
|
-
// <- Note: [1]
|
|
2199
|
+
// <- Note: [1] --||--
|
|
2188
2200
|
},
|
|
2189
2201
|
};
|
|
2190
2202
|
}
|
|
@@ -2926,7 +2938,14 @@
|
|
|
2926
2938
|
return 'Multiple LLM Providers';
|
|
2927
2939
|
}
|
|
2928
2940
|
get description() {
|
|
2929
|
-
|
|
2941
|
+
const innerModelsTitlesAndDescriptions = this.llmExecutionTools
|
|
2942
|
+
.map(({ title, description }, index) => `${index + 1}) \`${title}\`\n${description}`)
|
|
2943
|
+
.join('\n\n');
|
|
2944
|
+
return spaceTrim__default["default"]((block) => `
|
|
2945
|
+
Multiple LLM Providers:
|
|
2946
|
+
|
|
2947
|
+
${block(innerModelsTitlesAndDescriptions)}
|
|
2948
|
+
`);
|
|
2930
2949
|
}
|
|
2931
2950
|
/**
|
|
2932
2951
|
* Check the configuration of all execution tools
|
|
@@ -4258,6 +4277,7 @@
|
|
|
4258
4277
|
*/
|
|
4259
4278
|
async function getKnowledgeForTask(options) {
|
|
4260
4279
|
const { tools, preparedPipeline, task, parameters } = options;
|
|
4280
|
+
console.log('!!! getKnowledgeForTask', options);
|
|
4261
4281
|
const firstKnowlegePiece = preparedPipeline.knowledgePieces[0];
|
|
4262
4282
|
const firstKnowlegeIndex = firstKnowlegePiece === null || firstKnowlegePiece === void 0 ? void 0 : firstKnowlegePiece.index[0];
|
|
4263
4283
|
// <- TODO: Do not use just first knowledge piece and first index to determine embedding model, use also keyword search
|
|
@@ -4296,7 +4316,7 @@
|
|
|
4296
4316
|
});
|
|
4297
4317
|
const knowledgePiecesSorted = knowledgePiecesWithRelevance.sort((a, b) => a.relevance - b.relevance);
|
|
4298
4318
|
const knowledgePiecesLimited = knowledgePiecesSorted.slice(0, 5);
|
|
4299
|
-
console.log('!!! Embedding', {
|
|
4319
|
+
console.log('!!! `getKnowledgeForTask` Embedding', {
|
|
4300
4320
|
task,
|
|
4301
4321
|
taskEmbeddingPrompt,
|
|
4302
4322
|
taskEmbeddingResult,
|
|
@@ -4332,6 +4352,7 @@
|
|
|
4332
4352
|
*/
|
|
4333
4353
|
async function getReservedParametersForTask(options) {
|
|
4334
4354
|
const { tools, preparedPipeline, task, parameters, pipelineIdentification } = options;
|
|
4355
|
+
console.log('!!! getReservedParametersForTask', options);
|
|
4335
4356
|
const context = await getContextForTask(); // <- [🏍]
|
|
4336
4357
|
const knowledge = await getKnowledgeForTask({ tools, preparedPipeline, task, parameters });
|
|
4337
4358
|
const examples = await getExamplesForTask();
|
|
@@ -4368,6 +4389,7 @@
|
|
|
4368
4389
|
*/
|
|
4369
4390
|
async function executeTask(options) {
|
|
4370
4391
|
const { currentTask, preparedPipeline, parametersToPass, tools, onProgress, $executionReport, pipelineIdentification, maxExecutionAttempts, maxParallelCount, csvSettings, isVerbose, rootDirname, cacheDirname, intermediateFilesStrategy, isAutoInstalled, isNotPreparedWarningSupressed, } = options;
|
|
4392
|
+
console.log('!!! executeTask', options);
|
|
4371
4393
|
const priority = preparedPipeline.tasks.length - preparedPipeline.tasks.indexOf(currentTask);
|
|
4372
4394
|
// Note: Check consistency of used and dependent parameters which was also done in `validatePipeline`, but it’s good to doublecheck
|
|
4373
4395
|
const usedParameterNames = extractParameterNamesFromTask(currentTask);
|
|
@@ -4391,14 +4413,15 @@
|
|
|
4391
4413
|
|
|
4392
4414
|
`));
|
|
4393
4415
|
}
|
|
4416
|
+
const reservedParameters = await getReservedParametersForTask({
|
|
4417
|
+
tools,
|
|
4418
|
+
preparedPipeline,
|
|
4419
|
+
task: currentTask,
|
|
4420
|
+
pipelineIdentification,
|
|
4421
|
+
parameters: parametersToPass,
|
|
4422
|
+
});
|
|
4394
4423
|
const definedParameters = Object.freeze({
|
|
4395
|
-
...
|
|
4396
|
-
tools,
|
|
4397
|
-
preparedPipeline,
|
|
4398
|
-
task: currentTask,
|
|
4399
|
-
pipelineIdentification,
|
|
4400
|
-
parameters: parametersToPass,
|
|
4401
|
-
})),
|
|
4424
|
+
...reservedParameters,
|
|
4402
4425
|
...parametersToPass,
|
|
4403
4426
|
});
|
|
4404
4427
|
const definedParameterNames = new Set(Object.keys(definedParameters));
|
|
@@ -4845,6 +4868,7 @@
|
|
|
4845
4868
|
};
|
|
4846
4869
|
const pipelineExecutor = (inputParameters) => createTask({
|
|
4847
4870
|
taskType: 'EXECUTION',
|
|
4871
|
+
title: pipeline.title,
|
|
4848
4872
|
taskProcessCallback(updateOngoingResult) {
|
|
4849
4873
|
return pipelineExecutorWithCallback(inputParameters, async (newOngoingResult) => {
|
|
4850
4874
|
updateOngoingResult(newOngoingResult);
|
|
@@ -4896,12 +4920,14 @@
|
|
|
4896
4920
|
const spending = new rxjs.Subject();
|
|
4897
4921
|
const proxyTools = {
|
|
4898
4922
|
get title() {
|
|
4899
|
-
|
|
4900
|
-
|
|
4923
|
+
return `${llmTools.title} (+usage)`;
|
|
4924
|
+
// <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
|
|
4925
|
+
// <- TODO: [🧈][🧠] Does it make sence to suffix "(+usage)"?
|
|
4901
4926
|
},
|
|
4902
4927
|
get description() {
|
|
4903
|
-
|
|
4904
|
-
|
|
4928
|
+
return `${llmTools.description} (+usage)`;
|
|
4929
|
+
// <- TODO: [🧈] Maybe standartize the suffix when wrapping `LlmExecutionTools` up
|
|
4930
|
+
// <- TODO: [🧈][🧠] Does it make sence to suffix "(+usage)"?
|
|
4905
4931
|
},
|
|
4906
4932
|
checkConfiguration() {
|
|
4907
4933
|
return /* not await */ llmTools.checkConfiguration();
|