استفاده به‌عنوان SDK

فراخوانی AiraCode از داخل برنامهٔ خودت — Node.js، Python، Go.

AiraCode یک CLI استاندارد POSIX‌ست — یعنی هر زبانی که می‌تونه subprocess اجرا کنه، می‌تونه ازش به‌عنوان SDK استفاده کنه. این الگو رو «shell-out SDK» می‌گن و یکی از پایدارترین interface‌هاست.

از Node.js

import { execa } from 'execa';

const { stdout } = await execa('aira', [
  '-p', 'خلاصهٔ این کدبیس رو بنویس',
  '--model', 'aira-pro',
  '--output-format', 'json',
], {
  env: { ...process.env, AIRA_API_KEY: process.env.AIRA_API_KEY },
});

const result = JSON.parse(stdout);

از Python

import subprocess, json, os

result = subprocess.run(
    ['aira', '-p', 'تست‌ها رو اجرا کن', '--output-format', 'json'],
    capture_output=True, text=True,
    env={**os.environ, 'AIRA_API_KEY': os.environ['AIRA_API_KEY']},
    check=True,
)
data = json.loads(result.stdout)

از Go

cmd := exec.Command("aira", "-p", "خروجی توابع رو type-check کن", "--output-format", "json")
cmd.Env = append(os.Environ(), "AIRA_API_KEY="+token)
out, err := cmd.Output()

خروجی stream

برای دیدن خروجی real-time به جای منتظر ماندن، از --output-format stream-json استفاده کن. هر event به‌صورت یک خط JSON روی stdout می‌آد.

aira -p "..." --output-format stream-json | while read line; do
  echo "event: $line"
done

حالت server (advanced)

برای کاهش overhead startup در use case‌های latency-sensitive، AiraCode از یک حالت persistent server هم پشتیبانی می‌کنه:

# server-side:
aira server --port 9000 --auth-token my-secret

# client-side (هر تعداد req):
curl -X POST -H "Authorization: Bearer my-secret" \
     -d '{"prompt":"..."}' http://localhost:9000/run