- Update version to 0.4.19 in all components - Regenerate OpenAPI spec and client SDKs - Python packages: hindsight-api, hindsight-dev, hindsight-all, hindsight-litellm, hindsight-crewai, hindsight-pydantic-ai, hindsight-hermes, hindsight-agno, hindsight-embed - Python client: hindsight-clients/python - TypeScript client: hindsight-clients/typescript - Rust CLI: hindsight-cli - Control Plane: hindsight-control-plane - OpenClaw integration: hindsight-integrations/openclaw - AI SDK integration: hindsight-integrations/ai-sdk - Chat SDK integration: hindsight-integrations/chat - Helm chart - Sync documentation to version-0.4
139 lines
3.1 KiB
Markdown
139 lines
3.1 KiB
Markdown
---
|
|
sidebar_position: 2
|
|
---
|
|
|
|
# TypeScript / JavaScript Client
|
|
|
|
Official TypeScript/JavaScript client for the Hindsight API. Supports **Node.js** and **Deno**.
|
|
|
|
## Installation
|
|
|
|
### Node.js
|
|
|
|
```bash
|
|
npm install @vectorize-io/hindsight-client
|
|
```
|
|
|
|
### Deno
|
|
|
|
No installation needed — import directly via the `npm:` specifier:
|
|
|
|
```typescript
|
|
import { HindsightClient } from "npm:@vectorize-io/hindsight-client";
|
|
```
|
|
|
|
## Quick Start
|
|
|
|
```typescript
|
|
import { HindsightClient } from '@vectorize-io/hindsight-client';
|
|
|
|
const client = new HindsightClient({ baseUrl: 'http://localhost:8888' });
|
|
|
|
// Retain a memory
|
|
await client.retain('my-bank', 'Alice works at Google');
|
|
|
|
// Recall memories
|
|
const response = await client.recall('my-bank', 'What does Alice do?');
|
|
for (const r of response.results) {
|
|
console.log(r.text);
|
|
}
|
|
|
|
// Reflect - generate response with disposition
|
|
const answer = await client.reflect('my-bank', 'Tell me about Alice');
|
|
console.log(answer.text);
|
|
```
|
|
|
|
## Client Initialization
|
|
|
|
```typescript
|
|
import { HindsightClient } from '@vectorize-io/hindsight-client';
|
|
|
|
const client = new HindsightClient({
|
|
baseUrl: 'http://localhost:8888',
|
|
});
|
|
```
|
|
|
|
## Core Operations
|
|
|
|
### Retain (Store Memory)
|
|
|
|
```typescript
|
|
// Simple
|
|
await client.retain('my-bank', 'Alice works at Google');
|
|
|
|
// With options
|
|
await client.retain('my-bank', 'Alice got promoted', {
|
|
timestamp: new Date('2024-01-15'),
|
|
context: 'career update',
|
|
metadata: { source: 'slack' },
|
|
async: false, // Set true for background processing
|
|
});
|
|
```
|
|
|
|
### Retain Batch
|
|
|
|
```typescript
|
|
await client.retainBatch('my-bank', [
|
|
{ content: 'Alice works at Google', context: 'career' },
|
|
{ content: 'Bob is a data scientist', context: 'career' },
|
|
], {
|
|
async: false,
|
|
});
|
|
```
|
|
|
|
### Recall (Search)
|
|
|
|
```typescript
|
|
// Simple - returns RecallResponse
|
|
const response = await client.recall('my-bank', 'What does Alice do?');
|
|
|
|
for (const r of response.results) {
|
|
console.log(`${r.text} (type: ${r.type})`);
|
|
}
|
|
|
|
// With options
|
|
const response = await client.recall('my-bank', 'What does Alice do?', {
|
|
types: ['world', 'observation'], // Filter by fact type
|
|
maxTokens: 4096,
|
|
budget: 'high', // 'low', 'mid', or 'high'
|
|
});
|
|
```
|
|
|
|
### Reflect (Generate Response)
|
|
|
|
```typescript
|
|
const answer = await client.reflect('my-bank', 'What should I know about Alice?', {
|
|
budget: 'low', // 'low', 'mid', or 'high'
|
|
context: 'preparing for a meeting',
|
|
});
|
|
|
|
console.log(answer.text); // Generated response
|
|
```
|
|
|
|
## Bank Management
|
|
|
|
### Create Bank
|
|
|
|
```typescript
|
|
await client.createBank('my-bank', {
|
|
name: 'Assistant',
|
|
mission: "You're a helpful AI assistant - keep track of user preferences and conversation history.",
|
|
disposition: {
|
|
skepticism: 3, // 1-5: trusting to skeptical
|
|
literalism: 3, // 1-5: flexible to literal
|
|
empathy: 3, // 1-5: detached to empathetic
|
|
},
|
|
});
|
|
```
|
|
|
|
### List Memories
|
|
|
|
```typescript
|
|
const response = await client.listMemories('my-bank', {
|
|
type: 'world', // Optional filter
|
|
q: 'Alice', // Optional text search
|
|
limit: 100,
|
|
offset: 0,
|
|
});
|
|
console.log(response)
|
|
```
|