UNPKG

aiwg

Version:

Deployment tool and support utility for AI context. Copies agents, skills, commands, rules, and behaviors into the paths each AI platform reads (Claude Code, Codex, Copilot, Cursor, Warp, OpenClaw, and 6 more) so one source of truth works across 10 platfo

238 lines 5.58 kB
/** * Type definitions for the Research Framework * * @module research/types */ /** * Research paper metadata */ export interface ResearchPaper { /** Paper identifier (DOI, arXiv ID, etc.) */ id: string; /** Paper title */ title: string; /** List of authors */ authors: Author[]; /** Publication year */ year: number; /** Abstract or summary */ abstract?: string; /** DOI if available */ doi?: string; /** arXiv ID if available */ arxivId?: string; /** Publication venue */ venue?: string; /** Citation count */ citationCount?: number; /** PDF URL if available */ pdfUrl?: string; /** Publication type */ type?: 'journal' | 'conference' | 'preprint' | 'book' | 'thesis' | 'other'; /** Source of the data */ source: 'semantic-scholar' | 'crossref' | 'arxiv' | 'unpaywall'; /** Timestamp when data was retrieved */ retrievedAt: string; } /** * Author information */ export interface Author { /** Author name */ name: string; /** Author ID (if available) */ id?: string; /** Affiliations */ affiliations?: string[]; } /** * API response for Semantic Scholar */ export interface SemanticScholarResponse { paperId: string; title: string; abstract?: string; year?: number; authors: Array<{ authorId?: string; name: string; }>; citationCount?: number; venue?: string; externalIds?: { DOI?: string; ArXiv?: string; }; openAccessPdf?: { url: string; } | null; } /** * API response for CrossRef */ export interface CrossRefResponse { DOI: string; title?: string[]; abstract?: string; author?: Array<{ given?: string; family?: string; affiliation?: Array<{ name: string; }>; }>; published?: { 'date-parts': number[][]; }; 'container-title'?: string[]; 'is-referenced-by-count'?: number; type?: string; } /** * API response for arXiv */ export interface ArxivResponse { id: string; title: string; summary: string; authors: Array<{ name: string; }>; published: string; updated: string; doi?: string; 'journal-ref'?: string; 'pdf-url'?: string; } /** * API response for Unpaywall */ export interface UnpaywallResponse { doi: string; title?: string; year?: number; journal_name?: string; authors?: Array<{ given?: string; family?: string; }>; best_oa_location?: { url_for_pdf?: string; url?: string; } | null; } /** * Cache entry structure */ export interface CacheEntry<T> { /** Cached data */ data: T; /** Timestamp when cached */ cachedAt: string; /** TTL in seconds */ ttl: number; /** Cache key */ key: string; } /** * Rate limit configuration */ export interface RateLimitConfig { /** Maximum tokens */ maxTokens: number; /** Refill rate (tokens per second) */ refillRate: number; /** Current tokens available */ currentTokens: number; /** Last refill timestamp */ lastRefill: number; } /** * Retry configuration */ export interface RetryConfig { /** Maximum retry attempts */ maxRetries: number; /** Initial delay in ms */ initialDelay: number; /** Maximum delay in ms */ maxDelay: number; /** Backoff multiplier */ backoffMultiplier: number; } /** * Client configuration */ export interface ClientConfig { /** Base URL for the API */ baseUrl: string; /** Timeout in ms */ timeout: number; /** Rate limit configuration */ rateLimit: RateLimitConfig; /** Retry configuration */ retry: RetryConfig; /** API key (if required) */ apiKey?: string; /** Email for Unpaywall */ email?: string; } /** * Research Framework error codes */ export declare enum ResearchErrorCode { RF_100 = "RF-100: Invalid request parameters", RF_101 = "RF-101: Missing required parameter", RF_102 = "RF-102: Invalid API key", RF_103 = "RF-103: Rate limit exceeded", RF_104 = "RF-104: Request timeout", RF_200 = "RF-200: API server error", RF_201 = "RF-201: Service unavailable", RF_202 = "RF-202: Gateway timeout", RF_300 = "RF-300: Resource not found", RF_301 = "RF-301: Invalid response format", RF_302 = "RF-302: Missing required field", RF_400 = "RF-400: Cache read error", RF_401 = "RF-401: Cache write error", RF_402 = "RF-402: Cache invalidation error", RF_500 = "RF-500: Network error", RF_501 = "RF-501: Connection refused", RF_502 = "RF-502: DNS resolution failed" } /** * Research Framework error */ export declare class ResearchError extends Error { code: ResearchErrorCode; cause?: Error | undefined; constructor(code: ResearchErrorCode, message: string, cause?: Error | undefined); } /** * Search options */ export interface SearchOptions { /** Maximum results to return */ limit?: number; /** Offset for pagination */ offset?: number; /** Fields to include in response */ fields?: string[]; /** Whether to use cache */ useCache?: boolean; } /** * Search result */ export interface SearchResult { /** Total results found */ total: number; /** Papers in this page */ papers: ResearchPaper[]; /** Offset used */ offset: number; /** Limit used */ limit: number; /** Whether more results are available */ hasMore: boolean; } //# sourceMappingURL=types.d.ts.map