{"_id":"@agentic-eng/provider","_rev":"5-c55308c2d4bda53740074dcaf6537578","name":"@agentic-eng/provider","dist-tags":{"latest":"0.2.4"},"versions":{"0.2.0":{"name":"@agentic-eng/provider","version":"0.2.0","keywords":["agent","ai","framework","typescript","llm","easa","provider"],"author":{"name":"EASA Contributors"},"license":"MIT","_id":"@agentic-eng/provider@0.2.0","maintainers":[{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"}],"homepage":"https://github.com/easa-framework/easa#readme","bugs":{"url":"https://github.com/easa-framework/easa/issues"},"dist":{"shasum":"9991e0bc4a90e4a2d4cae3a9de5568612b00e410","tarball":"https://registry.npmjs.org/@agentic-eng/provider/-/provider-0.2.0.tgz","fileCount":9,"integrity":"sha512-vd7FEBzQCFornRV0Bl4TjXkv+HLOh5U+LCnDv22i5zJl+gOW5Pwg+l4oEDrW2e281cQkwMBdWOGJFuPpDQp/iw==","signatures":[{"sig":"MEUCIF+b9BzRZGEVSyFeeHcRUJ3G7Ngry+LSG+RWlRbRsj7kAiEAufDN4cHAD7RXMKGQrbR9qrw4pJPn4wwL8d5+hzjmHSg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":10694},"main":"./dist/index.cjs","type":"module","_from":"file:agentic-eng-provider-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"},"_resolved":"/private/var/folders/k6/7jtqlk5j4tl6phv4kk70ltcm0000gn/T/50693ffa3e1adaa25861aba8462c17d9/agentic-eng-provider-0.2.0.tgz","_integrity":"sha512-vd7FEBzQCFornRV0Bl4TjXkv+HLOh5U+LCnDv22i5zJl+gOW5Pwg+l4oEDrW2e281cQkwMBdWOGJFuPpDQp/iw==","repository":{"url":"git+https://github.com/easa-framework/easa.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.5.1","description":"Provider interfaces (LLM, Memory, Observability) for the EASA framework.","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"@agentic-eng/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_0.2.0_1774628652904_0.4964656071186775","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@agentic-eng/provider","version":"0.2.1","keywords":["agent","ai","framework","typescript","llm","easa","provider"],"author":{"name":"EASA Contributors"},"license":"MIT","_id":"@agentic-eng/provider@0.2.1","maintainers":[{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"}],"homepage":"https://github.com/easa-framework/easa#readme","bugs":{"url":"https://github.com/easa-framework/easa/issues"},"dist":{"shasum":"62762421f6ac9fa9be61517ca19871f07f58b655","tarball":"https://registry.npmjs.org/@agentic-eng/provider/-/provider-0.2.1.tgz","fileCount":15,"integrity":"sha512-AVjdAd1ggU1Y9qyahzo8nYisBCG7LgAZAWeOa0YY72Dg1NgAKmMMNMMuiDDaUJ+hPe6jSjoduK01n851WhjWPg==","signatures":[{"sig":"MEQCIC7ikKfrXPSA/Hcg88dvz/QOa9wJEH5STO9FXrOsfTLWAiA/WWSUpqVPq20/3g77wz6lDSlvlvs+kGc17PvKnv1IgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17431},"main":"./dist/index.cjs","type":"module","_from":"file:agentic-eng-provider-0.2.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"},"_resolved":"/private/var/folders/k6/7jtqlk5j4tl6phv4kk70ltcm0000gn/T/8e65e47f459516edd4c3c275719e69b1/agentic-eng-provider-0.2.1.tgz","_integrity":"sha512-AVjdAd1ggU1Y9qyahzo8nYisBCG7LgAZAWeOa0YY72Dg1NgAKmMMNMMuiDDaUJ+hPe6jSjoduK01n851WhjWPg==","repository":{"url":"git+https://github.com/easa-framework/easa.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.5.1","description":"Provider interfaces (LLM, Memory, Observability) for the EASA framework.","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"@agentic-eng/core":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_0.2.1_1774629357735_0.1178818134835391","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@agentic-eng/provider","version":"0.2.2","keywords":["agent","ai","framework","typescript","llm","easa","provider"],"author":{"name":"Lahiru Ratnayaka"},"license":"MIT","_id":"@agentic-eng/provider@0.2.2","maintainers":[{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"}],"homepage":"https://github.com/easa-framework/easa#readme","bugs":{"url":"https://github.com/easa-framework/easa/issues"},"dist":{"shasum":"42a43605b74fe26b4bc1314302e87d310fee3022","tarball":"https://registry.npmjs.org/@agentic-eng/provider/-/provider-0.2.2.tgz","fileCount":15,"integrity":"sha512-gIO3JaaWxJUEn33aGyGodDTYgNMV9aagVb8NNU7YAd/CC+zVaZbOeim9ymQFOcIEVJ/AQ65miNEzmwf9bSrI6g==","signatures":[{"sig":"MEUCIQDKd9hz5lhSaMhR9Hj8CoUVxmu+ebaGPJXe+//xLpVkXQIgBj+Rw7Nt1mMg/rloyq/ZGFI0J6I+iDZTS4fDtsxM0N4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21891},"main":"./dist/index.cjs","type":"module","_from":"file:agentic-eng-provider-0.2.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"},"_resolved":"/private/var/folders/k6/7jtqlk5j4tl6phv4kk70ltcm0000gn/T/c962d7357660c3d170e33ed950dc3e75/agentic-eng-provider-0.2.2.tgz","_integrity":"sha512-gIO3JaaWxJUEn33aGyGodDTYgNMV9aagVb8NNU7YAd/CC+zVaZbOeim9ymQFOcIEVJ/AQ65miNEzmwf9bSrI6g==","repository":{"url":"git+https://github.com/easa-framework/easa.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.5.1","description":"Provider interfaces (LLM, Memory, Observability) for the EASA framework.","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"@agentic-eng/core":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_0.2.2_1774630264270_0.6841199842550647","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@agentic-eng/provider","version":"0.2.3","keywords":["agent","ai","framework","typescript","llm","easa","provider"],"author":{"name":"Lahiru Ratnayaka"},"license":"MIT","_id":"@agentic-eng/provider@0.2.3","maintainers":[{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"}],"homepage":"https://github.com/easa-framework/easa#readme","bugs":{"url":"https://github.com/easa-framework/easa/issues"},"dist":{"shasum":"ea1f4633dc4c74a6a6107c83ebbd73ad296eca70","tarball":"https://registry.npmjs.org/@agentic-eng/provider/-/provider-0.2.3.tgz","fileCount":10,"integrity":"sha512-mi6Djv1k9AaUwqmXyoK2xgmsEM9orjZ2SkdHg1DqEZqF+S8xD+KgbcxrHmCaYzhM4mXIqB+upkfONECW9VVjwQ==","signatures":[{"sig":"MEUCIADf3UWtNymTxULo/2YUIPtW4F50akmT682XBGkQ8qReAiEAj1lqWxUjBrfadNVFNYCXAQTfaNbIJDr1xpitO4pLrog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18377},"main":"./dist/index.cjs","type":"module","_from":"file:agentic-eng-provider-0.2.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"},"_resolved":"/private/var/folders/k6/7jtqlk5j4tl6phv4kk70ltcm0000gn/T/f3b5486f0693b443b06f5eea62d129fc/agentic-eng-provider-0.2.3.tgz","_integrity":"sha512-mi6Djv1k9AaUwqmXyoK2xgmsEM9orjZ2SkdHg1DqEZqF+S8xD+KgbcxrHmCaYzhM4mXIqB+upkfONECW9VVjwQ==","repository":{"url":"git+https://github.com/easa-framework/easa.git","type":"git","directory":"packages/provider"},"_npmVersion":"11.5.1","description":"Provider interfaces (LLM, Memory, Observability) for the EASA framework.","directories":{},"sideEffects":false,"_nodeVersion":"24.7.0","dependencies":{"@agentic-eng/core":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.4.0"},"_npmOperationalInternal":{"tmp":"tmp/provider_0.2.3_1774630888228_0.8628506665509543","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@agentic-eng/provider","version":"0.2.4","description":"Provider interfaces (LLM, Memory, Observability) for the EASA framework.","keywords":["agent","ai","framework","typescript","llm","easa","provider"],"license":"MIT","author":{"name":"Lahiru Ratnayaka"},"repository":{"type":"git","url":"git+https://github.com/easa-framework/easa.git","directory":"packages/provider"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"sideEffects":false,"engines":{"node":">=18.0.0"},"dependencies":{"@agentic-eng/core":"0.2.4"},"devDependencies":{"tsup":"^8.0.0","typescript":"^5.4.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsup","dev":"tsup --watch","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc --noEmit"},"_id":"@agentic-eng/provider@0.2.4","bugs":{"url":"https://github.com/easa-framework/easa/issues"},"homepage":"https://github.com/easa-framework/easa#readme","_integrity":"sha512-6sH054TzepxWqeuVrdy+4zno6PF9GTiaGkeObSJYCeTrizEU/NOEbfOZRAxV69t7hv/kZuEukltx1aCYZvj9ww==","_resolved":"/private/var/folders/k6/7jtqlk5j4tl6phv4kk70ltcm0000gn/T/8ed212cca044086cd415c1a32d193dde/agentic-eng-provider-0.2.4.tgz","_from":"file:agentic-eng-provider-0.2.4.tgz","_nodeVersion":"24.7.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-6sH054TzepxWqeuVrdy+4zno6PF9GTiaGkeObSJYCeTrizEU/NOEbfOZRAxV69t7hv/kZuEukltx1aCYZvj9ww==","shasum":"bb29eee58a3ad314064eccedab9f620ac9546630","tarball":"https://registry.npmjs.org/@agentic-eng/provider/-/provider-0.2.4.tgz","fileCount":9,"unpackedSize":15238,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDauwexwWTYfC/E7jqJCbt94I2f3TQvCYsqcI2ympwNYQIgXaVXAWxOjuA707yZZdGbsi2Re+hafVWg6GrV2fNp0eI="}]},"_npmUser":{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"},"directories":{},"maintainers":[{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/provider_0.2.4_1778603835976_0.9045609027172588"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-27T16:24:12.789Z","modified":"2026-05-12T16:37:16.260Z","0.2.0":"2026-03-27T16:24:13.052Z","0.2.1":"2026-03-27T16:35:57.897Z","0.2.2":"2026-03-27T16:51:04.434Z","0.2.3":"2026-03-27T17:01:28.380Z","0.2.4":"2026-05-12T16:37:16.133Z"},"bugs":{"url":"https://github.com/easa-framework/easa/issues"},"author":{"name":"Lahiru Ratnayaka"},"license":"MIT","homepage":"https://github.com/easa-framework/easa#readme","keywords":["agent","ai","framework","typescript","llm","easa","provider"],"repository":{"type":"git","url":"git+https://github.com/easa-framework/easa.git","directory":"packages/provider"},"description":"Provider interfaces (LLM, Memory, Observability) for the EASA framework.","maintainers":[{"name":"lahiruratnayaka","email":"lahirunimantha@outlook.com"}],"readme":"# @agentic-eng/provider\n\n> Interface-only contracts for LLM, Memory, and Observability providers in the [Agentic Engineering Framework](https://github.com/easa-framework/easa).\n\n[![npm](https://img.shields.io/npm/v/@agentic-eng/provider)](https://www.npmjs.com/package/@agentic-eng/provider)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.4+-blue.svg)](https://www.typescriptlang.org/)\n\n---\n\n## Part of the Agentic Engineering Framework\n\nThe Agentic Engineering Framework is a minimal, type-safe TypeScript framework for building LLM-powered agent systems. It provides building blocks for agents that can **reason**, **use tools**, **persist knowledge**, and **emit observable events** — with zero LLM lock-in.\n\n| Package | Description |\n| --- | --- |\n| [`@agentic-eng/agent`](https://www.npmjs.com/package/@agentic-eng/agent) | `Agent` class and reasoning loop — **start here** |\n| [`@agentic-eng/core`](https://www.npmjs.com/package/@agentic-eng/core) | Shared types, enums, and error classes |\n| **`@agentic-eng/provider`** (this package) | Interface-only contracts (`LlmProvider`, `MemoryProvider`, `ObservabilityProvider`) |\n| [`@agentic-eng/tool`](https://www.npmjs.com/package/@agentic-eng/tool) | `Tool` interface and `ToolRegistry` |\n| [`@agentic-eng/memory`](https://www.npmjs.com/package/@agentic-eng/memory) | Memory implementations (`FlatFileMemory`) |\n| [`@agentic-eng/observability`](https://www.npmjs.com/package/@agentic-eng/observability) | Observability implementations (`ConsoleObserver`, `NoopObserver`) |\n\n> **Most users don't need to install this package directly.** It is automatically included as a dependency of [`@agentic-eng/agent`](https://www.npmjs.com/package/@agentic-eng/agent), which re-exports all provider interfaces. Install `@agentic-eng/provider` directly only if you are building a standalone implementation package.\n\n---\n\n## What This Package Does\n\n`@agentic-eng/provider` defines the **interface contracts** that connect the agent to external systems. It contains **no concrete implementations** — only TypeScript interfaces.\n\nThere are three provider interfaces:\n\n| Interface | Purpose | Concrete implementations |\n| --- | --- | --- |\n| `LlmProvider` | Connect any LLM backend | You implement this (OpenAI, Anthropic, etc.) |\n| `MemoryProvider` | Persist agent knowledge | [`FlatFileMemory`](https://www.npmjs.com/package/@agentic-eng/memory) or your own |\n| `ObservabilityProvider` | Receive lifecycle events | [`ConsoleObserver`](https://www.npmjs.com/package/@agentic-eng/observability) or your own |\n\nThis separation lets you swap implementations without touching agent code.\n\n---\n\n## Installation\n\n```bash\nnpm install @agentic-eng/provider\n```\n\nOr, if you're using `@agentic-eng/agent`, all interfaces are already re-exported:\n\n```bash\nnpm install @agentic-eng/agent    # includes provider interfaces automatically\n```\n\n---\n\n## `LlmProvider`\n\nThe core interface — connect any LLM backend to the framework. You **must** implement this to use the agent.\n\n```typescript\nimport type { LlmProvider, Message, ChatOptions, Completion, CompletionChunk } from '@agentic-eng/provider';\n\nconst myProvider: LlmProvider = {\n  async chat(messages: Message[], options?: ChatOptions): Promise<Completion> {\n    // Call OpenAI, Anthropic, local model, etc.\n    const response = await callYourLLM(messages);\n    return { message: { role: 'assistant', content: response.text } };\n  },\n\n  async *chatStream(messages: Message[], options?: ChatOptions): AsyncIterable<CompletionChunk> {\n    for await (const chunk of streamYourLLM(messages)) {\n      yield { delta: chunk.text, done: chunk.finished };\n    }\n  },\n};\n```\n\nThen pass it to the agent:\n\n```typescript\nimport { Agent } from '@agentic-eng/agent';\n\nconst agent = new Agent({ name: 'assistant', provider: myProvider });\n```\n\n---\n\n## `MemoryProvider`\n\nOptional — lets the agent persist knowledge across invocations. The LLM decides *when* to store information.\n\n```typescript\nimport type { MemoryProvider, MemoryEntry } from '@agentic-eng/provider';\n\nclass PostgresMemory implements MemoryProvider {\n  async store(agentName: string, entry: MemoryEntry): Promise<void> {\n    // INSERT INTO memories ...\n  }\n  async retrieve(agentName: string): Promise<MemoryEntry[]> {\n    // SELECT FROM memories WHERE agent_name = ...\n  }\n}\n```\n\nThe framework ships a built-in implementation in [`@agentic-eng/memory`](https://www.npmjs.com/package/@agentic-eng/memory) — `FlatFileMemory` persists knowledge as KNL DATA blocks in flat files.\n\n---\n\n## `ObservabilityProvider`\n\nOptional — receives structured lifecycle events from the agent for logging, monitoring, or tracing.\n\n```typescript\nimport type { ObservabilityProvider, AgentEvent } from '@agentic-eng/provider';\n\nclass OtelObserver implements ObservabilityProvider {\n  emit(event: AgentEvent): void {\n    tracer.startSpan(event.type, { attributes: event.data });\n  }\n}\n```\n\nThe framework ships built-in implementations in [`@agentic-eng/observability`](https://www.npmjs.com/package/@agentic-eng/observability):\n- **`ConsoleObserver`** — formatted console logging for development\n- **`NoopObserver`** — silently discards events (used internally as default)\n\n---\n\n## How It Fits Together\n\n```\n@agentic-eng/core (types + errors)\n    ↑\n@agentic-eng/provider (interfaces: LlmProvider, MemoryProvider, ObservabilityProvider)  ← you are here\n    ↑\n@agentic-eng/tool (Tool interface + ToolRegistry)\n@agentic-eng/memory (FlatFileMemory — implements MemoryProvider)\n@agentic-eng/observability (ConsoleObserver — implements ObservabilityProvider)\n    ↑\n@agentic-eng/agent (Agent class — composes everything)\n```\n\n---\n\n## Feedback & Contact\n\nHave questions, feedback, or ideas? We'd love to hear from you:\n\n- **GitHub Issues:** [easa-framework/easa](https://github.com/easa-framework/easa/issues)\n- **Email:** [lahirunimantha@outlook.com](mailto:lahirunimantha@outlook.com)\n- **LinkedIn:** [Lahiru Nimantha](https://www.linkedin.com/in/lahirunimantha/)\n\n## License\n\n[MIT](./LICENSE)\n","readmeFilename":"README.md"}