> ## 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.

# SDK TypeScript

> SDK TypeScript typé et sans dépendance pour l'API partenaire Conare — fonctionne sur Node, Bun, Deno et Cloudflare Workers via le runtime fetch global.

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

Fonctionne sur Node 18+, Bun, Deno et Cloudflare Workers via le `fetch` global. Zéro dépendance. Gardez la clé `cint_...` dans un gestionnaire de secrets côté serveur.

## Configuration

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

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

// Test de fumée de déploiement sans effet secondaire : clé, config namespace, saut backend.
await conare.status();
```

## Rappel au démarrage de session

```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` restreint l'union : les plans qui épuisent leur quota de rappel approfondi se rabattent sur des résultats bruts au lieu de lever une exception, si bien que l'assemblage de votre prompt n'est jamais rompu.

## Enregistrer des observations

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

## Surface du client

| Méthode                                              | Rôle                                                                |
| ---------------------------------------------------- | ------------------------------------------------------------------- |
| `status`                                             | Vérification de disponibilité authentifiée et sans effet secondaire |
| `memories.save`, `memories.saveBatch`                | Observations distillées en ajout seul                               |
| `memories.search`                                    | Récupération hybride brute rapide, sans synthèse                    |
| `memories.getSource`, `upsertSource`, `deleteSource` | [Cycle de vie détenu par la source](/memory/lifecycle)              |
| `memories.lifecycleBatch`                            | Amorçage en masse versionné avec résultats par élément              |
| `recall`                                             | Réponse personnalisée étayée par des citations                      |
| `suggestions`                                        | Jusqu'à cinq actions proactives ancrées                             |
| `deleteContainer`                                    | Supprimer les mémoires d'un conteneur                               |
| `deleteUser`                                         | Suppression complète de l'utilisateur final (RGPD)                  |

## Restreindre la portée de la récupération

`search`, `recall` et `suggestions` acceptent un `containerTag` optionnel qui restreint la récupération à un seul conteneur avant toute synthèse. Étiquetez chaque écriture avec votre identifiant de workspace et restreignez chaque lecture avec la même étiquette — les faits d'un workspace ne peuvent jamais apparaître dans les réponses d'un autre.

## Observabilité

Chaque requête envoie un `X-Request-Id` sûr (les tentatives le conservent) ; chaque réponse le renvoie, et `ConareError.requestId` l'expose pour la corrélation avec le support. Passez un hook `onResponse` pour alimenter vos métriques :

```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,
    });
  },
});
```
