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

***

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

# Class: KnowledgePersistence

Defined in: intelligence/knowledge-persistence.js:12

## Constructors

### Constructor

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

Defined in: intelligence/knowledge-persistence.js:13

#### Parameters

##### config?

#### Returns

`KnowledgePersistence`

## Properties

### autoSaveTimer

> **autoSaveTimer**: `number` \| `null`

Defined in: intelligence/knowledge-persistence.js:33

***

### config

> **config**: `object`

Defined in: intelligence/knowledge-persistence.js:14

#### autoSaveInterval

> **autoSaveInterval**: `any`

#### compressionEnabled

> **compressionEnabled**: `boolean`

#### dataDir

> **dataDir**: `any`

#### maxBackups

> **maxBackups**: `any`

#### maxDecisionHistory

> **maxDecisionHistory**: `any`

#### maxEvolutionLog

> **maxEvolutionLog**: `any`

#### maxResearchHistory

> **maxResearchHistory**: `any`

***

### knowledge

> **knowledge**: `object`

Defined in: intelligence/knowledge-persistence.js:24

#### componentStates

> **componentStates**: `object` = `{}`

#### decisionHistory

> **decisionHistory**: `never`[] = `[]`

#### evolutionLog

> **evolutionLog**: `never`[] = `[]`

#### lastUpdated

> **lastUpdated**: `null` = `null`

#### metrics

> **metrics**: `object` = `{}`

#### researchHistory

> **researchHistory**: `never`[] = `[]`

## Methods

### cleanOldBackups()

> **cleanOldBackups**(`backupDir`): `Promise`\<`void`\>

Defined in: intelligence/knowledge-persistence.js:141

Clean old backup files

#### Parameters

##### backupDir

`any`

#### Returns

`Promise`\<`void`\>

***

### createBackup()

> **createBackup**(`filepath`): `Promise`\<`void`\>

Defined in: intelligence/knowledge-persistence.js:114

Create backup of current knowledge file

#### Parameters

##### filepath

`any`

#### Returns

`Promise`\<`void`\>

***

### ensureDataDirectory()

> **ensureDataDirectory**(): `void`

Defined in: intelligence/knowledge-persistence.js:42

Ensure data directory exists

#### Returns

`void`

***

### exportKnowledge()

> **exportKnowledge**(`format?`): `string` \| \{ `componentStates`: \{ \}; `decisionHistory`: `never`[]; `evolutionLog`: `never`[]; `lastUpdated`: `null`; `metrics`: \{ \}; `researchHistory`: `never`[]; \} \| \{ `components`: `string`[]; `recentDecisions`: `never`[]; `recentResearch`: `never`[]; `stats`: \{ `componentCount`: `number`; `decisionCount`: `number`; `lastUpdated`: `null`; `patterns`: \{ \}; `researchCount`: `number`; `totalEvolutions`: `number`; \}; \}

Defined in: intelligence/knowledge-persistence.js:358

Export knowledge for external use

#### Parameters

##### format?

`string` = `'json'`

#### Returns

`string` \| \{ `componentStates`: \{ \}; `decisionHistory`: `never`[]; `evolutionLog`: `never`[]; `lastUpdated`: `null`; `metrics`: \{ \}; `researchHistory`: `never`[]; \} \| \{ `components`: `string`[]; `recentDecisions`: `never`[]; `recentResearch`: `never`[]; `stats`: \{ `componentCount`: `number`; `decisionCount`: `number`; `lastUpdated`: `null`; `patterns`: \{ \}; `researchCount`: `number`; `totalEvolutions`: `number`; \}; \}

***

### getDecisionPatterns()

> **getDecisionPatterns**(): `object`

Defined in: intelligence/knowledge-persistence.js:287

Get decision patterns

#### Returns

`object`

***

### getEvolutionStats()

> **getEvolutionStats**(): `object`

Defined in: intelligence/knowledge-persistence.js:317

Get evolution statistics

#### Returns

`object`

##### componentCount

> **componentCount**: `number`

##### decisionCount

> **decisionCount**: `number`

##### lastUpdated

> **lastUpdated**: `null`

##### patterns

> **patterns**: `object`

##### researchCount

> **researchCount**: `number`

##### totalEvolutions

> **totalEvolutions**: `number`

***

### getKnowledgeFilename()

> **getKnowledgeFilename**(): `string`

Defined in: intelligence/knowledge-persistence.js:205

Get knowledge filename

#### Returns

`string`

***

### getResearchInsights()

> **getResearchInsights**(`query`): `never`[]

Defined in: intelligence/knowledge-persistence.js:278

Get research insights

#### Parameters

##### query

`any`

#### Returns

`never`[]

***

### getSummary()

> **getSummary**(): `object`

Defined in: intelligence/knowledge-persistence.js:437

Get knowledge summary

#### Returns

`object`

##### componentCount

> **componentCount**: `number`

##### decisionCount

> **decisionCount**: `number`

##### evolutionEvents

> **evolutionEvents**: `number`

##### lastUpdated

> **lastUpdated**: `null`

##### researchCount

> **researchCount**: `number`

##### stats

> **stats**: `object`

###### stats.componentCount

> **componentCount**: `number`

###### stats.decisionCount

> **decisionCount**: `number`

###### stats.lastUpdated

> **lastUpdated**: `null`

###### stats.patterns

> **patterns**: `object`

###### stats.researchCount

> **researchCount**: `number`

###### stats.totalEvolutions

> **totalEvolutions**: `number`

***

### importKnowledge()

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

Defined in: intelligence/knowledge-persistence.js:376

Import knowledge from external source

#### Parameters

##### data

`any`

#### Returns

`boolean`

***

### load()

> **load**(): `Promise`\<`boolean`\>

Defined in: intelligence/knowledge-persistence.js:83

Load knowledge from disk

#### Returns

`Promise`\<`boolean`\>

***

### loadFromBackup()

> **loadFromBackup**(): `Promise`\<`boolean`\>

Defined in: intelligence/knowledge-persistence.js:169

Load knowledge from most recent backup

#### Returns

`Promise`\<`boolean`\>

***

### logEvolution()

> **logEvolution**(`event`): `void`

Defined in: intelligence/knowledge-persistence.js:263

Log evolution event

#### Parameters

##### event

`any`

#### Returns

`void`

***

### reset()

> **reset**(): `Promise`\<`boolean`\>

Defined in: intelligence/knowledge-persistence.js:419

Reset knowledge (use with caution)

#### Returns

`Promise`\<`boolean`\>

***

### save()

> **save**(): `Promise`\<`boolean`\>

Defined in: intelligence/knowledge-persistence.js:52

Save knowledge to disk

#### Returns

`Promise`\<`boolean`\>

***

### startAutoSave()

> **startAutoSave**(): `void`

Defined in: intelligence/knowledge-persistence.js:331

Start auto-save

#### Returns

`void`

***

### stopAutoSave()

> **stopAutoSave**(): `void`

Defined in: intelligence/knowledge-persistence.js:347

Stop auto-save

#### Returns

`void`

***

### updateComponentState()

> **updateComponentState**(`componentName`, `state`): `void`

Defined in: intelligence/knowledge-persistence.js:242

Update component state

#### Parameters

##### componentName

`any`

##### state

`any`

#### Returns

`void`

***

### updateDecisionHistory()

> **updateDecisionHistory**(`decision`): `void`

Defined in: intelligence/knowledge-persistence.js:227

Update decision history

#### Parameters

##### decision

`any`

#### Returns

`void`

***

### updateMetrics()

> **updateMetrics**(`metrics`): `void`

Defined in: intelligence/knowledge-persistence.js:252

Update metrics

#### Parameters

##### metrics

`any`

#### Returns

`void`

***

### updateResearchHistory()

> **updateResearchHistory**(`research`): `void`

Defined in: intelligence/knowledge-persistence.js:212

Update research history

#### Parameters

##### research

`any`

#### Returns

`void`
