import json
import os
import sys
import anthropic

key = os.environ.get('ANTHROPIC_API_KEY')
if not key:
    raise SystemExit('اضبط أولًا مفتاح API لمساحة عمل واحدة من مؤسسة Console المرتبطة.')

# يتطلب بيئة التدريب النظيفة ونسخة حديثة من SDK الرسمية.
# عُطلت إعادة المحاولة لهذا الطلب التشخيصي الواحد.
client = anthropic.Anthropic(
    api_key=key,
    base_url='https://api.anthropic.com',
    timeout=30.0,
    max_retries=0,
)

try:
    raw = client.messages.with_raw_response.create(
        model='claude-haiku-5-5',
        max_tokens=128,
        thinking={'type': 'disabled'},
        output_config={'effort': 'low'},
        messages=[{'role': 'user', 'content': 'أجب فقط: تم الاتصال بواجهة API بنجاح'}],
    )
    message = raw.parse()  # تحليل الاستجابة المستلمة بالفعل، دون إرسال طلب ثانٍ.
    for name in ('request-id', 'anthropic-organization-id', 'anthropic-workspace-id'):
        print(name+':', raw.headers.get(name, '(لم تُرجع القيمة)'))
    print('model:', message.model)
    print('stop_reason:', message.stop_reason)
    print('text:', '\n'.join(block.text for block in message.content if block.type == 'text'))
    print('usage:', json.dumps(message.usage.model_dump(), ensure_ascii=False))
except anthropic.APIStatusError as exc:
    print(f'HTTP {exc.status_code}; request-id={exc.request_id}', file=sys.stderr)
    raise SystemExit(1)
except anthropic.APIConnectionError:
    print('فشل الاتصال أو انتهت مهلته؛ راجع السجلات والشبكة قبل تقرير إعادة المحاولة.', file=sys.stderr)
    raise SystemExit(1)
finally:
    client.close()
