[**@s4ai/core Documentation v0.3.23**](../../../README.md)

***

[@s4ai/core Documentation](../../../modules.md) / [@s4ai/core](../README.md) / ResearchEngine

# Class: ResearchEngine

Defined in: intelligence/research-engine.js:10

## Constructors

### Constructor

> **new ResearchEngine**(`config?`): `ResearchEngine`

Defined in: intelligence/research-engine.js:11

#### Parameters

##### config?

#### Returns

`ResearchEngine`

## Properties

### config

> **config**: `object`

Defined in: intelligence/research-engine.js:12

#### includeAnswer

> **includeAnswer**: `boolean`

#### includeRawContent

> **includeRawContent**: `any`

#### maxResults

> **maxResults**: `any`

#### mode

> **mode**: `any`

#### monthlyBudgetUsd

> **monthlyBudgetUsd**: `number`

#### monthlyCreditLimit

> **monthlyCreditLimit**: `number`

#### searchDepth

> **searchDepth**: `any`

#### tavilyApiKey

> **tavilyApiKey**: `any`

#### tavilyMcpKey

> **tavilyMcpKey**: `any`

***

### knowledgeBase

> **knowledgeBase**: `Map`\<`any`, `any`\>

Defined in: intelligence/research-engine.js:36

***

### onboardCount

> **onboardCount**: `number`

Defined in: intelligence/research-engine.js:34

***

### researchHistory

> **researchHistory**: `any`[]

Defined in: intelligence/research-engine.js:33

***

### tavilyCount

> **tavilyCount**: `number`

Defined in: intelligence/research-engine.js:35

***

### usage

> **usage**: `object`

Defined in: intelligence/research-engine.js:38

#### monthly

> **monthly**: `any`

***

### usageFile

> **usageFile**: `any`

Defined in: intelligence/research-engine.js:37

## Methods

### assessConfidence()

> **assessConfidence**(`results?`): `number`

Defined in: intelligence/research-engine.js:332

#### Parameters

##### results?

`any`[] = `[]`

#### Returns

`number`

***

### crawl()

> **crawl**(`urls?`, `__namedParameters?`): `Promise`\<\{ `extract`: `any`; `map`: `any`; `source`: `string`; \}\>

Defined in: intelligence/research-engine.js:308

#### Parameters

##### urls?

`any`[] = `[]`

##### \_\_namedParameters?

###### advancedExtract?

`boolean` = `false`

###### instructions?

`null` = `null`

#### Returns

`Promise`\<\{ `extract`: `any`; `map`: `any`; `source`: `string`; \}\>

***

### exportKnowledge()

> **exportKnowledge**(): `object`

Defined in: intelligence/research-engine.js:352

#### Returns

`object`

##### researchHistory

> **researchHistory**: `any`[]

***

### extract()

> **extract**(`urls?`, `__namedParameters?`): `Promise`\<\{ `results`: `any`; `source`: `string`; \}\>

Defined in: intelligence/research-engine.js:249

#### Parameters

##### urls?

`any`[] = `[]`

##### \_\_namedParameters?

###### advanced?

`boolean` = `false`

#### Returns

`Promise`\<\{ `results`: `any`; `source`: `string`; \}\>

***

### extractInsights()

> **extractInsights**(`results?`): `object`[]

Defined in: intelligence/research-engine.js:319

#### Parameters

##### results?

`any`[] = `[]`

#### Returns

`object`[]

***

### generateRecommendations()

> **generateRecommendations**(`results?`): `string`[]

Defined in: intelligence/research-engine.js:327

#### Parameters

##### results?

`any`[] = `[]`

#### Returns

`string`[]

***

### genesisCubedSynthesis()

> **genesisCubedSynthesis**(`crawledResults`): `any`[]

Defined in: intelligence/research-engine.js:56

#### Parameters

##### crawledResults

`any`

#### Returns

`any`[]

***

### getCurrentMonthKey()

> **getCurrentMonthKey**(): `string`

Defined in: intelligence/research-engine.js:222

#### Returns

`string`

***

### getStats()

> **getStats**(): `object`

Defined in: intelligence/research-engine.js:356

#### Returns

`object`

##### onboardCount

> **onboardCount**: `number`

##### tavilyCount

> **tavilyCount**: `number`

##### totalResearches

> **totalResearches**: `number`

***

### importKnowledge()

> **importKnowledge**(`data`): `boolean`

Defined in: intelligence/research-engine.js:346

#### Parameters

##### data

`any`

#### Returns

`boolean`

***

### isCreditLimitExceeded()

> **isCreditLimitExceeded**(`nextCredits?`): `boolean`

Defined in: intelligence/research-engine.js:202

#### Parameters

##### nextCredits?

`number` = `0`

#### Returns

`boolean`

***

### loadUsage()

> **loadUsage**(): `object`

Defined in: intelligence/research-engine.js:227

#### Returns

`object`

##### monthly

> **monthly**: `any`

***

### map()

> **map**(`urls?`, `__namedParameters?`): `Promise`\<\{ `results`: `any`; `source`: `string`; \}\>

Defined in: intelligence/research-engine.js:278

#### Parameters

##### urls?

`any`[] = `[]`

##### \_\_namedParameters?

###### instructions?

`null` = `null`

#### Returns

`Promise`\<\{ `results`: `any`; `source`: `string`; \}\>

***

### onboardFetchAndParse()

> **onboardFetchAndParse**(`url`): `Promise`\<\{ `error?`: `undefined`; `text`: `string`; `title`: `string`; `url`: `any`; \} \| \{ `error`: `any`; `text?`: `undefined`; `title?`: `undefined`; `url`: `any`; \}\>

Defined in: intelligence/research-engine.js:42

#### Parameters

##### url

`any`

#### Returns

`Promise`\<\{ `error?`: `undefined`; `text`: `string`; `title`: `string`; `url`: `any`; \} \| \{ `error`: `any`; `text?`: `undefined`; `title?`: `undefined`; `url`: `any`; \}\>

***

### onboardWebSearch()

> **onboardWebSearch**(`query`, `maxResults?`): `Promise`\<`any`\>

Defined in: intelligence/research-engine.js:75

#### Parameters

##### query

`any`

##### maxResults?

`number` = `5`

#### Returns

`Promise`\<`any`\>

***

### performTavilySearch()

> **performTavilySearch**(`query`, `options`): `Promise`\<`any`\>

Defined in: intelligence/research-engine.js:160

#### Parameters

##### query

`any`

##### options

`any`

#### Returns

`Promise`\<`any`\>

***

### research()

> **research**(`query`, `options?`): `Promise`\<\{ `confidence`: `number`; `genesisCubedInsights`: `any`[]; `insights`: `object`[]; `query`: `any`; `recommendations`: `string`[]; `results`: `any`; `source`: `string`; `timestamp`: `number`; \} \| \{ `confidence`: `number`; `error`: `any`; `query`: `any`; `results`: `never`[]; `source`: `string`; `timestamp`: `number`; \}\>

Defined in: intelligence/research-engine.js:91

#### Parameters

##### query

`any`

##### options?

#### Returns

`Promise`\<\{ `confidence`: `number`; `genesisCubedInsights`: `any`[]; `insights`: `object`[]; `query`: `any`; `recommendations`: `string`[]; `results`: `any`; `source`: `string`; `timestamp`: `number`; \} \| \{ `confidence`: `number`; `error`: `any`; `query`: `any`; `results`: `never`[]; `source`: `string`; `timestamp`: `number`; \}\>

***

### saveUsage()

> **saveUsage**(): `void`

Defined in: intelligence/research-engine.js:239

#### Returns

`void`

***

### trackCredits()

> **trackCredits**(`operation`, `credits`): `void`

Defined in: intelligence/research-engine.js:208

#### Parameters

##### operation

`any`

##### credits

`any`

#### Returns

`void`

***

### updateKnowledgeBase()

> **updateKnowledgeBase**(`query`, `research`): `void`

Defined in: intelligence/research-engine.js:338

#### Parameters

##### query

`any`

##### research

`any`

#### Returns

`void`
