GunSpec SDK
Typsicheres TypeScript-SDK für die GunSpec-API. Vollständige IntelliSense, automatische Paginierung und integrierte Wiederholungslogik.
- Paket
@buun_group/gunspec-sdk- Registry
- npm
- Neueste Version
0.10.0- Voraussetzung
- Node.js 18+
Erste Schritte
Installiere das SDK und frage die GunSpec-API mit voller TypeScript-Typsicherheit in unter einer Minute ab.
Installieren
npm install @buun_group/gunspec-sdkInitialisieren
// .env.localGUNSPEC_API_KEY=your_api_key // app.tsimport { GunSpec } from '@buun_group/gunspec-sdk';const client = new GunSpec();Abfragen
const { data } = await client.firearms.list({ category: 'pistol',});console.log(data[0].name);Importe
Ein Paket bedient ESM und CommonJS, die Typen sind gebündelt. Node, Bun, Deno, Cloudflare Workers und Browser nutzen denselben Import; die einzige Laufzeitvoraussetzung ist natives fetch.
// ESM (Node 18+, Bun, Deno, Cloudflare Workers, browsers)import { GunSpec, VERSION } from '@buun_group/gunspec-sdk'; // CommonJSconst { GunSpec } = require('@buun_group/gunspec-sdk'); // Types are bundled: nothing else to install.import type { Firearm, Provenance } from '@buun_group/gunspec-sdk';Konfiguration
Das SDK liest die Umgebungsvariable GUNSPEC_API_KEY automatisch aus, oder du kannst sie explizit übergeben.
import { GunSpec } from '@buun_group/gunspec-sdk'; // Reads GUNSPEC_API_KEY from .env automaticallyconst client = new GunSpec(); // Or pass from environment explicitly (never hardcode!)const client = new GunSpec({ apiKey: process.env.GUNSPEC_API_KEY, baseURL: 'https://api.gunspec.io', // optional timeout: 30000, // optional retry: { maxRetries: 3, initialDelayMs: 500, },});Fehlerbehandlung
Das SDK wirft typisierte Fehler, die du gezielt abfangen und behandeln kannst.
import { GunSpec, NotFoundError, RateLimitError, AuthenticationError } from '@buun_group/gunspec-sdk'; const client = new GunSpec(); try { const { data } = await client.firearms.get('nonexistent');} catch (error) { if (error instanceof NotFoundError) { console.log('Firearm not found:', error.message); console.log('Request ID:', error.requestId); } else if (error instanceof RateLimitError) { console.log('Rate limited, retry after:', error.retryAfter); } else if (error instanceof AuthenticationError) { console.log('Invalid API key'); }}Automatische Paginierung
Verwende asynchrone Iteratoren, um automatisch durch große Ergebnismengen zu paginieren.
// Automatically fetches next pages as neededfor await (const firearm of client.firearms.listAutoPaging({ category: 'rifle',})) { console.log(firearm.name); // Breaks or continues as needed - pages fetched on demand}Für Agenten und Tools
@buun_group/gunspec-sdk/tools ist die API als Manifest schreibgeschützter Tools: je ein stabiler Name, eine Beschreibung für das Modell und ein JSON-Schema, dazu Adapter für die Tool-Formate von Anthropic und OpenAI und ein Runner. Übergib das Manifest dem Modell, führe aus, was es aufruft. Die Tool-Referenz listet jedes Tool; die KI-Seite hat die Anleitungspakete.
import { GunSpec } from '@buun_group/gunspec-sdk';import { GUNSPEC_TOOLS, asAnthropicTools, asOpenAITools, executeTool } from '@buun_group/gunspec-sdk/tools'; const client = new GunSpec(); // Hand the manifest to the model as tools ...const tools = asAnthropicTools(GUNSPEC_TOOLS); // or asOpenAITools(GUNSPEC_TOOLS) // ... and run whatever it calls. Every tool is read-only.const result = await executeTool(client, 'gunspec_resolve_firearm', { name: 'G19 gen 5' });Aktuell bleiben
Diese Seite beschreibt 0.10.0, veröffentlicht am 17. September 2026. Das Changelog listet, was sich in jeder Version geändert hat, und jede Version erscheint auch auf npm. Additive Änderungen erscheinen ohne Ankündigung; eine brechende wird dort zuerst mit datiertem Hinweis angekündigt.
npm install @buun_group/gunspec-sdk@latest