{"_id":"@dysporium-sdk/provider","_rev":"5-cdf66c13bb14f54b6ee52ef12c2e927a","name":"@dysporium-sdk/provider","dist-tags":{"latest":"3.0.0"},"versions":{"0.1.0":{"name":"@dysporium-sdk/provider","version":"0.1.0","keywords":["ai","sdk","provider","llm","language-model"],"license":"MIT","_id":"@dysporium-sdk/provider@0.1.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/dysporium/dysporium-sdk#readme","bugs":{"url":"https://github.com/dysporium/dysporium-sdk/issues"},"dist":{"shasum":"cce5a29d3c11caf3a1c643f2045f52f08648d0c1","tarball":"https://registry.npmjs.org/@dysporium-sdk/provider/-/provider-0.1.0.tgz","fileCount":5,"integrity":"sha512-Qmq/d8aowWKZFl5FJ5F7bOi/6BKgYPtqsHwr6G3DgY7OPenWs4mSeRyLMXg1l1WG+BuKgwIDpdaSMDOMJe5G9g==","signatures":[{"sig":"MEQCIFevElPj8bIODubB+18Z3/pvHyk8L5i4yc2UU6EmkpqHAiAmmOusssUEcr2Ax1pQI+gng99dnsb2fgvpJ+gb/YFu0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9898},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-provider-0.1.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\15cc96504777fbd3ac0529ac615ae235\\dysporium-sdk-provider-0.1.0.tgz","_integrity":"sha512-Qmq/d8aowWKZFl5FJ5F7bOi/6BKgYPtqsHwr6G3DgY7OPenWs4mSeRyLMXg1l1WG+BuKgwIDpdaSMDOMJe5G9g==","repository":{"url":"git+https://github.com/dysporium/dysporium-sdk.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.1.0","description":"Provider interfaces and types for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_0.1.0_1764935656663_0.40950851206886485","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dysporium-sdk/provider","version":"0.1.1","keywords":["ai","sdk","provider","llm","language-model"],"license":"MIT","_id":"@dysporium-sdk/provider@0.1.1","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"188a8da9e58460536c4e798fa16e9356293cafaa","tarball":"https://registry.npmjs.org/@dysporium-sdk/provider/-/provider-0.1.1.tgz","fileCount":4,"integrity":"sha512-+vYtDW0SEZsGDim8+NE3254chDNrVy53GioLx3io7nRWFD/atPFh5qUVnfNL24KTlcd03SnZIcKAfYG5U2B30Q==","signatures":[{"sig":"MEUCIHAzKW76mXGQNlX7M7MCFQDyMsilYKi97lDm80pqdKTkAiEAhD9PWJtDLnagZkAVvoCu2i2jo+0aT0Rj7UEwoAD2Ses=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8853},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d030b8f349e279b4c6a9f0debba28701a554bb8e","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.1.0","description":"Provider interfaces and types for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_0.1.1_1765275403909_0.6525754880655743","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@dysporium-sdk/provider","version":"1.0.0","keywords":["ai","sdk","provider","llm","language-model"],"license":"MIT","_id":"@dysporium-sdk/provider@1.0.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"39c3cb7636f113e9e09187a119005aaf529fa7dd","tarball":"https://registry.npmjs.org/@dysporium-sdk/provider/-/provider-1.0.0.tgz","fileCount":6,"integrity":"sha512-G7BGOAU1IqWQUWAJcSQHz53RbX4N5G+RmGdypyx7ycMeKU7s12mhZFo5JP9IwZsVsnVN4VMP8mk0lWzzmeJZyQ==","signatures":[{"sig":"MEQCIFgtLS917Pvy5QfojlueOMq8SnrHGwRVxCsvFpSptYqyAiByMaxYAkvV7rFKzwuptjKoYPJfAjeYv/JyI2eRg8PLng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":13824},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-provider-1.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\b092c3f31e55d374cdb579e4cd7ce587\\dysporium-sdk-provider-1.0.0.tgz","_integrity":"sha512-G7BGOAU1IqWQUWAJcSQHz53RbX4N5G+RmGdypyx7ycMeKU7s12mhZFo5JP9IwZsVsnVN4VMP8mk0lWzzmeJZyQ==","repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.1.0","description":"Provider interfaces and types for Dysporium SDK","directories":{},"_nodeVersion":"20.18.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_1.0.0_1765276582692_0.6981654597887808","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@dysporium-sdk/provider","version":"2.0.0","keywords":["ai","sdk","provider","llm","language-model"],"license":"MIT","_id":"@dysporium-sdk/provider@2.0.0","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"dist":{"shasum":"7cdf3ad64ce5b3e35b6c0e3d4dbe7fb35e3e1024","tarball":"https://registry.npmjs.org/@dysporium-sdk/provider/-/provider-2.0.0.tgz","fileCount":6,"integrity":"sha512-AlV5BhyQk6yzjuQFEc7jSaOVK3cLgh9aZpYTUAT1qVeKwmeyA/DrCbs1DYxXJT3Go/2IIlAWZINW6NRvFTTGlQ==","signatures":[{"sig":"MEQCID0qL/eCLlyunHJN2R8AtQGRUUsOmFDKPq3JJLhvK7ucAiAb9ZOPCKiUjq0PaaQ9GdgJ1qyB1iV+tDv3x4BNZTRS3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16362},"main":"./dist/index.js","type":"module","_from":"file:dysporium-sdk-provider-2.0.0.tgz","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist"},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\fb8f2ce3f7f2a3fd0f4edc141a999627\\dysporium-sdk-provider-2.0.0.tgz","_integrity":"sha512-AlV5BhyQk6yzjuQFEc7jSaOVK3cLgh9aZpYTUAT1qVeKwmeyA/DrCbs1DYxXJT3Go/2IIlAWZINW6NRvFTTGlQ==","repository":{"url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.1.0","description":"Provider interfaces and types for Dysporium SDK","directories":{},"_nodeVersion":"20.19.6","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_2.0.0_1766772945784_0.06627891274696363","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@dysporium-sdk/provider","version":"3.0.0","description":"Provider interfaces and types for Dysporium SDK","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"keywords":["ai","sdk","provider","llm","language-model"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","directory":"packages/provider"},"publishConfig":{"access":"public"},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0"},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist"},"_id":"@dysporium-sdk/provider@3.0.0","bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","_integrity":"sha512-G1R2k5CmkOHdxD8RfSUg7qt9i69FK2lkwFA0KnFZxqcj/7i0QM2es2l9akFCPZY/gHMYNVfXt9qc8/Kl0zpP7A==","_resolved":"C:\\Users\\paulm\\AppData\\Local\\Temp\\cb74193df0575ecc92cf57f13f9b5b6f\\dysporium-sdk-provider-3.0.0.tgz","_from":"file:dysporium-sdk-provider-3.0.0.tgz","_nodeVersion":"20.19.6","_npmVersion":"11.1.0","dist":{"integrity":"sha512-G1R2k5CmkOHdxD8RfSUg7qt9i69FK2lkwFA0KnFZxqcj/7i0QM2es2l9akFCPZY/gHMYNVfXt9qc8/Kl0zpP7A==","shasum":"e5f3b7c240c5d9ddcca684a76d45931453e89019","tarball":"https://registry.npmjs.org/@dysporium-sdk/provider/-/provider-3.0.0.tgz","fileCount":6,"unpackedSize":16362,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICDgpSQpUnNmpKVu2ioGYy0IW01WWNYiw+tIP+UcmH1rAiEAr/wMdasIrqEltkvw7uNbJOqHeU6ZPgHbJwB85Ef3ZS4="}]},"_npmUser":{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"},"directories":{},"maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider_3.0.0_1766839875706_0.018816854155706553"},"_hasShrinkwrap":false}},"time":{"created":"2025-12-05T11:54:16.596Z","modified":"2025-12-27T12:51:16.059Z","0.1.0":"2025-12-05T11:54:16.825Z","0.1.1":"2025-12-09T10:16:44.061Z","1.0.0":"2025-12-09T10:36:22.851Z","2.0.0":"2025-12-26T18:15:45.955Z","3.0.0":"2025-12-27T12:51:15.848Z"},"bugs":{"url":"https://github.com/Dysporium/dysporium-ai-sdk/issues"},"license":"MIT","homepage":"https://github.com/Dysporium/dysporium-ai-sdk#readme","keywords":["ai","sdk","provider","llm","language-model"],"repository":{"type":"git","url":"git+https://github.com/Dysporium/dysporium-ai-sdk.git","directory":"packages/provider"},"description":"Provider interfaces and types for Dysporium SDK","maintainers":[{"name":"paulmothapo","email":"paulmothapo.personal@gmail.com"}],"readme":"# @dysporium-sdk/provider\r\n\r\nProvider interfaces and types for Dysporium SDK. This package defines the contracts that all AI providers must implement.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @dysporium-sdk/provider\r\n# or\r\npnpm add @dysporium-sdk/provider\r\n# or\r\nyarn add @dysporium-sdk/provider\r\n```\r\n\r\n> **Note:** You typically don't need to install this package directly. It's included as a dependency of `@dysporium-sdk/core` and provider packages like `@dysporium-sdk/openai`.\r\n\r\n## Overview\r\n\r\nThis package provides the foundational types and interfaces for building AI providers. If you're creating a custom provider for a new AI service, you'll implement these interfaces.\r\n\r\n## Interfaces\r\n\r\n### LanguageModel\r\n\r\nThe core interface for language models:\r\n\r\n```typescript\r\ninterface LanguageModel {\r\n  readonly modelId: string;\r\n  readonly provider: string;\r\n\r\n  generate(options: GenerateOptions): Promise<GenerateResult>;\r\n  stream(options: GenerateOptions): AsyncIterable<StreamChunk>;\r\n}\r\n```\r\n\r\n### EmbeddingModel\r\n\r\nInterface for embedding models:\r\n\r\n```typescript\r\ninterface EmbeddingModel {\r\n  readonly modelId: string;\r\n  readonly provider: string;\r\n  readonly dimensions: number;\r\n\r\n  embed(options: EmbeddingOptions): Promise<EmbeddingResult>;\r\n}\r\n```\r\n\r\n### Provider\r\n\r\nFactory interface for creating model instances:\r\n\r\n```typescript\r\ninterface Provider<T extends LanguageModel = LanguageModel> {\r\n  (modelId: string): T;\r\n}\r\n```\r\n\r\n## Types\r\n\r\n### Message\r\n\r\n```typescript\r\ntype Message = {\r\n  role: 'system' | 'user' | 'assistant' | 'tool';\r\n  content: string;\r\n  name?: string;\r\n  toolCallId?: string;\r\n  toolCalls?: ToolCall[];\r\n};\r\n```\r\n\r\n### GenerateOptions\r\n\r\n```typescript\r\ntype GenerateOptions = {\r\n  messages: Message[];\r\n  maxTokens?: number;\r\n  temperature?: number;\r\n  topP?: number;\r\n  stopSequences?: string[];\r\n  tools?: Tool[];\r\n  toolChoice?: ToolChoice;\r\n  responseFormat?: ResponseFormat;\r\n  signal?: AbortSignal;\r\n};\r\n```\r\n\r\n### StreamChunk\r\n\r\n```typescript\r\ntype StreamChunk =\r\n  | TextDeltaChunk\r\n  | ToolCallDeltaChunk\r\n  | ToolCallCompleteChunk\r\n  | FinishChunk;\r\n```\r\n\r\n### RetryConfig\r\n\r\n```typescript\r\ntype RetryConfig = {\r\n  maxRetries: number;\r\n  initialDelay: number;\r\n  maxDelay: number;\r\n  backoffMultiplier: number;\r\n};\r\n```\r\n\r\n## Creating a Custom Provider\r\n\r\nTo create a custom provider, implement the `LanguageModel` interface:\r\n\r\n```typescript\r\nimport type { LanguageModel, GenerateOptions, GenerateResult, StreamChunk } from '@dysporium-sdk/provider';\r\n\r\nclass MyCustomModel implements LanguageModel {\r\n  readonly modelId: string;\r\n  readonly provider = 'my-provider';\r\n\r\n  constructor(modelId: string) {\r\n    this.modelId = modelId;\r\n  }\r\n\r\n  async generate(options: GenerateOptions): Promise<GenerateResult> {\r\n    // Implement generation logic\r\n  }\r\n\r\n  async *stream(options: GenerateOptions): AsyncIterable<StreamChunk> {\r\n    // Implement streaming logic\r\n  }\r\n}\r\n\r\n// Create a provider factory\r\nexport function createMyProvider(config: MyConfig) {\r\n  return (modelId: string) => new MyCustomModel(modelId, config);\r\n}\r\n```\r\n\r\n## Exports\r\n\r\n### Types\r\n\r\n- `Message` - Chat message type\r\n- `GenerateOptions` - Options for text generation\r\n- `GenerateResult` - Result of text generation\r\n- `StreamChunk` - Streaming response chunk types\r\n- `Tool` - Tool/function definition\r\n- `ToolCall` - Tool call from model\r\n- `ToolChoice` - Tool selection strategy\r\n- `ResponseFormat` - Output format specification\r\n- `RetryConfig` - Retry configuration\r\n- `EmbeddingOptions` - Options for embeddings\r\n- `EmbeddingResult` - Result of embedding generation\r\n- `Usage` - Token usage information\r\n\r\n### Interfaces\r\n\r\n- `LanguageModel` - Language model interface\r\n- `EmbeddingModel` - Embedding model interface\r\n- `Provider` - Provider factory interface\r\n- `EmbeddingProvider` - Embedding provider factory interface\r\n\r\n### Constants\r\n\r\n- `DEFAULT_RETRY_CONFIG` - Default retry configuration\r\n\r\n## License\r\n\r\nMIT\r\n\r\n","readmeFilename":"README.md"}