> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conare.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# TypeScript SDK

> Типізований TypeScript SDK без залежностей для партнерського API Conare — працює в Node, Bun, Deno і Cloudflare Workers на глобальному рантаймі fetch.

```bash theme={null}
bun add @conare/sdk   # or: npm i @conare/sdk
```

Працює в Node 18+, Bun, Deno та Cloudflare Workers через глобальний `fetch`. Без залежностей. Тримайте ключ `cint_...` у серверному секрет-менеджері.

## Налаштування

```ts theme={null}
import { Conare, ConareError, hasAnswer } from "@conare/sdk";

const conare = new Conare({
  apiKey: process.env.CONARE_API_KEY!,
});

// Side-effect-free deploy smoke test: key, namespace config, backend hop.
await conare.status();
```

## Recall на старті сесії

```ts theme={null}
const recalled = await conare.recall({
  endUserId: "u_123",
  query: "what matters to this user right now",
});
if (hasAnswer(recalled)) {
  systemPrompt += `\n\nWhat we know about this user:\n${recalled.answer}`;
}
```

`hasAnswer` звужує обʼєднання: плани, у яких вичерпалася квота deep recall, деградують до сирих результатів замість того, щоб кидати помилку, — тож формування вашого промпту ніколи не ламається.

## Збереження спостережень

```ts theme={null}
await conare.memories.save({
  endUserId: "u_123",
  content: "User prefers smaller islands and wants to avoid crowds.",
  containerTag: "conversation-observation",
});
```

## Поверхня клієнта

| Метод                                                | Призначення                                                  |
| ---------------------------------------------------- | ------------------------------------------------------------ |
| `status`                                             | Автентифікована перевірка готовності без побічних ефектів    |
| `memories.save`, `memories.saveBatch`                | Append-only збереження дистильованих спостережень            |
| `memories.search`                                    | Швидкий сирий гібридний пошук, без синтезу                   |
| `memories.getSource`, `upsertSource`, `deleteSource` | [Життєвий цикл, керований джерелом](/memory/lifecycle)       |
| `memories.lifecycleBatch`                            | Версіонований пакетний бутстрап з попозиційними результатами |
| `recall`                                             | Персоналізована відповідь, підкріплена цитуваннями           |
| `suggestions`                                        | До пʼяти проактивних дій, підкріплених фактами               |
| `deleteContainer`                                    | Видалити памʼять одного контейнера                           |
| `deleteUser`                                         | Повне видалення кінцевого користувача (GDPR)                 |

## Обмеження області пошуку

`search`, `recall` і `suggestions` приймають необовʼязковий `containerTag`, який відсікає пошук до одного контейнера ще до будь-якого синтезу. Тегуйте кожен запис ID свого воркспейсу і обмежуйте кожне читання тим самим тегом — факти одного воркспейсу ніколи не зʼявляться у відповідях іншого.

## Спостережуваність

Кожен запит надсилає безпечний `X-Request-Id` (повторні спроби його зберігають); кожна відповідь його повертає, а `ConareError.requestId` надає його для кореляції в підтримці. Передайте хук `onResponse`, щоб живити ваші метрики:

```ts theme={null}
const conare = new Conare({
  apiKey: process.env.CONARE_API_KEY!,
  onResponse(meta) {
    metrics.timing("conare.request", meta.durationMs, {
      status: String(meta.status),
      requestId: meta.requestId,
    });
  },
});
```
