> ## 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 مُنمَّطة وخالية من التبعيات لواجهة 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();
```

## الاستدعاء عند بدء الجلسة

```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` نطاق النوع الموحَّد: الخطط التي تستنفد حصة الاستدعاء العميق تتراجع إلى النتائج الخام بدلاً من رمي استثناء، بحيث لا ينكسر تجميع الموجّه لديك أبداً.

## احفظ الملاحظات

```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`                | ملاحظات مُقطَّرة تُضاف فقط                   |
| `memories.search`                                    | استرجاع هجين خام سريع، بدون تركيب            |
| `memories.getSource`, `upsertSource`, `deleteSource` | [دورة حياة مملوكة للمصدر](/memory/lifecycle) |
| `memories.lifecycleBatch`                            | تمهيد مجمّع بإصدارات مع نتائج لكل عنصر       |
| `recall`                                             | إجابة شخصية مُدعَّمة بالاستشهادات            |
| `suggestions`                                        | حتى خمس إجراءات استباقية مُدعَّمة            |
| `deleteContainer`                                    | إسقاط ذكريات حاوية واحدة                     |
| `deleteUser`                                         | حذف كامل للمستخدم النهائي (GDPR)             |

## تقييد نطاق الاسترجاع

تقبل `search` و`recall` و`suggestions` قيمة اختيارية `containerTag` تحصر الاسترجاع في حاوية واحدة قبل أي تركيب. ضع وسماً لكل عملية كتابة بمعرّف مساحة العمل لديك، وحدِّد نطاق كل قراءة بالوسم نفسه — لا يمكن لحقائق مساحة عمل واحدة أن تظهر في إجابات مساحة أخرى.

## القابلية للملاحظة

يرسل كل طلب `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,
    });
  },
});
```
