@promptbook/browser 0.104.0-11 → 0.104.0-13
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 -26
- package/esm/index.es.js.map +1 -1
- package/esm/typings/src/_packages/types.index.d.ts +2 -0
- package/esm/typings/src/book-2.0/agent-source/AgentBasicInformation.d.ts +1 -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/save/_common/string_chat_format_name.d.ts +1 -1
- package/esm/typings/src/commands/_common/types/Command.d.ts +1 -1
- 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/commitments/_base/BookCommitment.d.ts +1 -1
- package/esm/typings/src/formfactors/_common/FormfactorDefinition.d.ts +1 -1
- 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/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/openai/utils/mapToolsToOpenAi.d.ts +8 -0
- package/esm/typings/src/search-engines/SearchResult.d.ts +4 -4
- package/esm/typings/src/search-engines/bing/BingSearchEngine.d.ts +1 -1
- package/esm/typings/src/search-engines/dummy/DummySearchEngine.d.ts +1 -1
- 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/$randomItem.d.ts +1 -1
- package/esm/typings/src/utils/random/$randomSeed.d.ts +1 -1
- package/esm/typings/src/version.d.ts +1 -1
- package/package.json +2 -2
- package/umd/index.umd.js +65 -26
- package/umd/index.umd.js.map +1 -1
|
@@ -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
|
|
@@ -7,4 +7,4 @@ import { FORMFACTOR_DEFINITIONS } from '../index';
|
|
|
7
7
|
* Note: [🚉] This is fully serializable as JSON
|
|
8
8
|
* @see https://github.com/webgptorg/promptbook/discussions/172
|
|
9
9
|
*/
|
|
10
|
-
export type FormfactorDefinition = typeof FORMFACTOR_DEFINITIONS[number];
|
|
10
|
+
export type FormfactorDefinition = (typeof FORMFACTOR_DEFINITIONS)[number];
|
|
@@ -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
|
*/
|
|
@@ -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
|
*/
|
|
@@ -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>;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import type { string_url } from '../types/typeAliases';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Represents a search result from a search engine.
|
|
4
4
|
*/
|
|
5
5
|
export type SearchResult = {
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* The title of the search result.
|
|
8
8
|
*/
|
|
9
9
|
title: string;
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* The URL of the search result.
|
|
12
12
|
*/
|
|
13
13
|
url: string_url;
|
|
14
14
|
/**
|
|
15
|
-
*
|
|
15
|
+
* A short snippet or description of the search result.
|
|
16
16
|
*/
|
|
17
17
|
snippet: string;
|
|
18
18
|
};
|
|
@@ -3,7 +3,7 @@ import type { string_markdown, string_markdown_text, string_title } from '../../
|
|
|
3
3
|
import type { SearchEngine } from '../SearchEngine';
|
|
4
4
|
import type { SearchResult } from '../SearchResult';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* A search engine implementation that uses the Bing Web Search API.
|
|
7
7
|
*
|
|
8
8
|
* @private <- TODO: !!!! Export via some package
|
|
9
9
|
*/
|
|
@@ -3,7 +3,7 @@ import type { string_markdown, string_markdown_text, string_title } from '../../
|
|
|
3
3
|
import type { SearchEngine } from '../SearchEngine';
|
|
4
4
|
import type { SearchResult } from '../SearchResult';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* A dummy implementation of SearchEngine for testing purposes.
|
|
7
7
|
*
|
|
8
8
|
* @private <- TODO: !!!! Export via some package, maybe `@promptbook/search-engines` or `@promptbook/fake-llm`
|
|
9
9
|
*/
|
|
@@ -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
|
|
@@ -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-12`).
|
|
19
19
|
*
|
|
20
20
|
* @generated
|
|
21
21
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@promptbook/browser",
|
|
3
|
-
"version": "0.104.0-
|
|
3
|
+
"version": "0.104.0-13",
|
|
4
4
|
"description": "Promptbook: Turn your company's scattered knowledge into AI ready books",
|
|
5
5
|
"private": false,
|
|
6
6
|
"sideEffects": false,
|
|
@@ -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.104.0-
|
|
97
|
+
"@promptbook/core": "0.104.0-13"
|
|
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.104.0-
|
|
26
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.104.0-13';
|
|
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
|
|
@@ -3189,9 +3189,7 @@
|
|
|
3189
3189
|
// Get existing dictionary entries from metadata
|
|
3190
3190
|
const existingDictionary = ((_a = requirements.metadata) === null || _a === void 0 ? void 0 : _a.DICTIONARY) || '';
|
|
3191
3191
|
// Merge the new dictionary entry with existing entries
|
|
3192
|
-
const mergedDictionary = existingDictionary
|
|
3193
|
-
? `${existingDictionary}\n${trimmedContent}`
|
|
3194
|
-
: trimmedContent;
|
|
3192
|
+
const mergedDictionary = existingDictionary ? `${existingDictionary}\n${trimmedContent}` : trimmedContent;
|
|
3195
3193
|
// Store the merged dictionary in metadata for debugging and inspection
|
|
3196
3194
|
const updatedMetadata = {
|
|
3197
3195
|
...requirements.metadata,
|
|
@@ -5720,19 +5718,37 @@
|
|
|
5720
5718
|
`);
|
|
5721
5719
|
}
|
|
5722
5720
|
applyToAgentModelRequirements(requirements, content) {
|
|
5723
|
-
// We simply mark that browser capability is enabled in metadata
|
|
5724
|
-
// Get existing metadata
|
|
5725
|
-
const existingMetadata = requirements.metadata || {};
|
|
5726
5721
|
// Get existing tools array or create new one
|
|
5727
|
-
const existingTools =
|
|
5728
|
-
// Add '
|
|
5729
|
-
const updatedTools = existingTools.
|
|
5730
|
-
|
|
5722
|
+
const existingTools = requirements.tools || [];
|
|
5723
|
+
// Add 'web_browser' to tools if not already present
|
|
5724
|
+
const updatedTools = existingTools.some((tool) => tool.name === 'web_browser')
|
|
5725
|
+
? existingTools
|
|
5726
|
+
: [
|
|
5727
|
+
...existingTools,
|
|
5728
|
+
{
|
|
5729
|
+
name: 'web_browser',
|
|
5730
|
+
description: spaceTrim$1.spaceTrim(`
|
|
5731
|
+
A tool that can browse the web.
|
|
5732
|
+
Use this tool when you need to access specific websites or browse the internet.
|
|
5733
|
+
`),
|
|
5734
|
+
parameters: {
|
|
5735
|
+
type: 'object',
|
|
5736
|
+
properties: {
|
|
5737
|
+
url: {
|
|
5738
|
+
type: 'string',
|
|
5739
|
+
description: 'The URL to browse',
|
|
5740
|
+
},
|
|
5741
|
+
},
|
|
5742
|
+
required: ['url'],
|
|
5743
|
+
},
|
|
5744
|
+
},
|
|
5745
|
+
];
|
|
5746
|
+
// Return requirements with updated tools and metadata
|
|
5731
5747
|
return {
|
|
5732
5748
|
...requirements,
|
|
5749
|
+
tools: updatedTools,
|
|
5733
5750
|
metadata: {
|
|
5734
|
-
...
|
|
5735
|
-
tools: updatedTools,
|
|
5751
|
+
...requirements.metadata,
|
|
5736
5752
|
useBrowser: true,
|
|
5737
5753
|
},
|
|
5738
5754
|
};
|
|
@@ -5825,13 +5841,13 @@
|
|
|
5825
5841
|
* The `USE SEARCH ENGINE` commitment indicates that the agent should utilize a search engine tool
|
|
5826
5842
|
* to access and retrieve up-to-date information from the internet when necessary.
|
|
5827
5843
|
*
|
|
5828
|
-
* The content following `USE SEARCH ENGINE` is
|
|
5844
|
+
* The content following `USE SEARCH ENGINE` is an arbitrary text that the agent should know (e.g. search scope or instructions).
|
|
5829
5845
|
*
|
|
5830
5846
|
* Example usage in agent source:
|
|
5831
5847
|
*
|
|
5832
5848
|
* ```book
|
|
5833
5849
|
* USE SEARCH ENGINE
|
|
5834
|
-
* USE SEARCH ENGINE
|
|
5850
|
+
* USE SEARCH ENGINE Hledej informace o Přemyslovcích
|
|
5835
5851
|
* ```
|
|
5836
5852
|
*
|
|
5837
5853
|
* @private [🪔] Maybe export the commitments through some package
|
|
@@ -5863,7 +5879,7 @@
|
|
|
5863
5879
|
|
|
5864
5880
|
## Key aspects
|
|
5865
5881
|
|
|
5866
|
-
- The content following \`USE SEARCH ENGINE\` is
|
|
5882
|
+
- The content following \`USE SEARCH ENGINE\` is an arbitrary text that the agent should know (e.g. search scope or instructions).
|
|
5867
5883
|
- The actual search engine tool usage is handled by the agent runtime
|
|
5868
5884
|
- Allows the agent to search for current information from the web
|
|
5869
5885
|
- Useful for research tasks, finding facts, and accessing dynamic content
|
|
@@ -5888,20 +5904,39 @@
|
|
|
5888
5904
|
`);
|
|
5889
5905
|
}
|
|
5890
5906
|
applyToAgentModelRequirements(requirements, content) {
|
|
5891
|
-
// We simply mark that search engine capability is enabled in metadata
|
|
5892
|
-
// Get existing metadata
|
|
5893
|
-
const existingMetadata = requirements.metadata || {};
|
|
5894
5907
|
// Get existing tools array or create new one
|
|
5895
|
-
const existingTools =
|
|
5896
|
-
// Add '
|
|
5897
|
-
const updatedTools = existingTools.
|
|
5898
|
-
|
|
5908
|
+
const existingTools = requirements.tools || [];
|
|
5909
|
+
// Add 'web_search' to tools if not already present
|
|
5910
|
+
const updatedTools = existingTools.some((tool) => tool.name === 'web_search')
|
|
5911
|
+
? existingTools
|
|
5912
|
+
: [
|
|
5913
|
+
...existingTools,
|
|
5914
|
+
{
|
|
5915
|
+
name: 'web_search',
|
|
5916
|
+
description: spaceTrim$1.spaceTrim(`
|
|
5917
|
+
Search the internet for information.
|
|
5918
|
+
Use this tool when you need to find up-to-date information or facts that you don't know.
|
|
5919
|
+
${!content ? '' : `Search scope / instructions: ${content}`}
|
|
5920
|
+
`),
|
|
5921
|
+
parameters: {
|
|
5922
|
+
type: 'object',
|
|
5923
|
+
properties: {
|
|
5924
|
+
query: {
|
|
5925
|
+
type: 'string',
|
|
5926
|
+
description: 'The search query',
|
|
5927
|
+
},
|
|
5928
|
+
},
|
|
5929
|
+
required: ['query'],
|
|
5930
|
+
},
|
|
5931
|
+
},
|
|
5932
|
+
];
|
|
5933
|
+
// Return requirements with updated tools and metadata
|
|
5899
5934
|
return {
|
|
5900
5935
|
...requirements,
|
|
5936
|
+
tools: updatedTools,
|
|
5901
5937
|
metadata: {
|
|
5902
|
-
...
|
|
5903
|
-
|
|
5904
|
-
useSearchEngine: true,
|
|
5938
|
+
...requirements.metadata,
|
|
5939
|
+
useSearchEngine: content || true,
|
|
5905
5940
|
},
|
|
5906
5941
|
};
|
|
5907
5942
|
}
|
|
@@ -6366,6 +6401,10 @@
|
|
|
6366
6401
|
meta.image = spaceTrim__default["default"](commitment.content);
|
|
6367
6402
|
continue;
|
|
6368
6403
|
}
|
|
6404
|
+
if (commitment.type === 'META DESCRIPTION') {
|
|
6405
|
+
meta.description = spaceTrim__default["default"](commitment.content);
|
|
6406
|
+
continue;
|
|
6407
|
+
}
|
|
6369
6408
|
if (commitment.type === 'META COLOR') {
|
|
6370
6409
|
meta.color = normalizeSeparator(commitment.content);
|
|
6371
6410
|
continue;
|