@yuva-devlab/sdk 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,153 @@
1
+ # 🚀 @yuva-devlab/sdk
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@yuva-devlab/sdk.svg)](https://www.npmjs.com/package/@yuva-devlab/sdk)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
+ [![TypeScript 6](https://img.shields.io/badge/TypeScript-6.x-3178c6.svg)](https://www.typescriptlang.org)
6
+
7
+ > Master TypeScript SDK for the Yuva DevLab ecosystem. Unifies multi-provider AI inference, RAG embeddings, vector stores, tool registries, semantic caching, billing, resilience pipelines, and event buses into one cohesive developer experience.
8
+
9
+ ---
10
+
11
+ ## Features
12
+
13
+ - 🌟 **Single Master Client (`DevLabClient`)**: Instantly access inference, RAG, caching, tools, billing, and events without juggling fragmented packages.
14
+ - 🧠 **Multi-Provider AI Inference**: Built-in adapters for Google Gemini, OpenAI, Anthropic, Groq, and local Ollama models.
15
+ - 🔍 **Embedded RAG & Vector Engine**: Chunk documents, generate embeddings, and execute similarity searches directly.
16
+ - ⚡ **Zero-Config Semantic Caching**: Automatically cache prompt completions to slash token spend and p99 latency.
17
+ - 🛠️ **Autonomous Agent Tool Registry**: Register typed Zod tools and dynamic prompt compilers.
18
+ - 💳 **Billing & Ledger Attribution**: Automatic token metering, quota checks, and audit-grade cost ledgers.
19
+ - 📦 **Re-Exports of Platform Building Blocks**: Centralized imports for `@yuva-devlab/errors`, `@yuva-devlab/events`, `@yuva-devlab/resilience`, and `@yuva-devlab/agent-core`.
20
+
21
+ ---
22
+
23
+ ## Table of Contents
24
+
25
+ 1. [Installation](#installation)
26
+ 2. [Quick Start](#quick-start)
27
+ 3. [Master Client Capabilities](#master-client-capabilities)
28
+ 4. [Agent & Tool Execution](#agent--tool-execution)
29
+ 5. [RAG & Vector Search](#rag--vector-search)
30
+ 6. [Semantic Caching](#semantic-caching)
31
+ 7. [Author & Attribution](#author--attribution)
32
+
33
+ ---
34
+
35
+ ## Installation
36
+
37
+ ```bash
38
+ # pnpm (recommended)
39
+ pnpm add @yuva-devlab/sdk
40
+
41
+ # npm
42
+ npm install @yuva-devlab/sdk
43
+ ```
44
+
45
+ ---
46
+
47
+ ## Quick Start
48
+
49
+ Initialize `DevLabClient` with your platform API key:
50
+
51
+ ```typescript
52
+ import { DevLabClient } from "@yuva-devlab/sdk";
53
+
54
+ const client = new DevLabClient({
55
+ apiKey: process.env.DEVLAB_API_KEY,
56
+ tenantId: "tenant_apex",
57
+ gatewayUrl: "http://localhost:4000",
58
+ });
59
+
60
+ // Execute LLM inference with automatic semantic caching and token metering
61
+ const completion = await client.complete({
62
+ model: "gemini-2.5-flash",
63
+ messages: [
64
+ { role: "system", content: "You are an expert platform architect." },
65
+ {
66
+ role: "user",
67
+ content: "Summarize the DevLab microservice telemetry strategy.",
68
+ },
69
+ ],
70
+ });
71
+
72
+ console.log(completion.text);
73
+ console.log(`Tokens Used: ${completion.usage.totalTokens}`);
74
+ ```
75
+
76
+ ---
77
+
78
+ ## Master Client Capabilities
79
+
80
+ `DevLabClient` exposes dedicated platform namespaces:
81
+
82
+ ```typescript
83
+ // 1. Multi-provider AI inference
84
+ const text = await client.ai.generateText({ prompt: "Hello world" });
85
+
86
+ // 2. Semantic vector caching
87
+ const cached = await client.cache.get("Hello world");
88
+
89
+ // 3. Document chunking & vector store
90
+ await client.vectorStore.upsert({ id: "doc-1", content: "Architecture docs" });
91
+
92
+ // 4. Agent tool registry
93
+ client.tools.register(myCustomTool);
94
+
95
+ // 5. Distributed event bus
96
+ client.events.subscribe("order.created", handleOrder);
97
+
98
+ // 6. Cost ledger
99
+ const tenantSpend = await client.billing.getTenantSummary("tenant_apex");
100
+ ```
101
+
102
+ ---
103
+
104
+ ## Agent & Tool Execution
105
+
106
+ Register universal tools with Zod parameters and invoke them seamlessly:
107
+
108
+ ```typescript
109
+ import { z } from "zod";
110
+ import { defineTool } from "@yuva-devlab/sdk";
111
+
112
+ const currencyConverter = defineTool({
113
+ name: "convert_currency",
114
+ description: "Converts fiat amounts based on current rates",
115
+ parameters: z.object({
116
+ amount: z.number(),
117
+ from: z.string(),
118
+ to: z.string(),
119
+ }),
120
+ execute: async ({ amount, from, to }) => {
121
+ return { amount, from, to, converted: amount * 1.08 };
122
+ },
123
+ });
124
+
125
+ client.tools.register(currencyConverter);
126
+ ```
127
+
128
+ ---
129
+
130
+ ## RAG & Vector Search
131
+
132
+ Index documents and query top matches in fewer than 5 lines:
133
+
134
+ ```typescript
135
+ // Index text with automated chunking
136
+ await client.ingestDocument(
137
+ "policy-doc-1",
138
+ "Standard SLAs require 99.99% uptime.",
139
+ );
140
+
141
+ // Search top matches
142
+ const matches = await client.searchContext("What SLA uptime is required?", {
143
+ topK: 2,
144
+ });
145
+ console.log(matches[0].chunk.content);
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Author & Attribution
151
+
152
+ - **Author**: Yuva DevLab (`yuva.devlab@gmail.com`)
153
+ - **License**: MIT
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants/sdk.constants.ts","../src/client/devlab-client.ts"],"names":["loggerWithConfig","Logger","createDefaultProvider","MockEmbeddingProvider","TextChunker","InMemoryVectorStore","SemanticCache","ToolRegistry","DynamicPricingResolver","CostLedger","BudgetEnforcer","TokenCounter","InMemoryEventBus","compilePrompt"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @file packages/sdk/src/constants/sdk.constants.ts\n * @description Operational constants and default endpoints for the master DevLab client.\n * @module @yuva-devlab/sdk\n */\n\n/** Default client request timeout in milliseconds (30 seconds) */\nexport const DEFAULT_CLIENT_TIMEOUT_MS = 30_000;\n\n/** Default local gateway API base URL */\nexport const DEFAULT_GATEWAY_URL = \"http://localhost:3000\";\n\n/** Current SDK distribution version */\nexport const SDK_VERSION = \"0.1.0\";\n","/**\n * @file packages/sdk/src/client/devlab-client.ts\n * @description Master DevLab platform client unifying AI, RAG, swarms, billing, caching, and events.\n * @module @yuva-devlab/sdk\n */\n\nimport {\n ToolRegistry,\n compilePrompt,\n type UniversalTool,\n} from \"@yuva-devlab/agent-core\";\nimport {\n createDefaultProvider,\n type ILLMProvider,\n type LLMRequest,\n type LLMResponse,\n type LLMStreamChunk,\n} from \"@yuva-devlab/ai-client\";\nimport {\n BudgetEnforcer,\n CostLedger,\n DynamicPricingResolver,\n TokenCounter,\n} from \"@yuva-devlab/billing\";\nimport { InMemoryEventBus, type IEventBus } from \"@yuva-devlab/events\";\nimport { Logger, loggerWithConfig } from \"@yuva-devlab/logger\";\nimport {\n InMemoryVectorStore,\n MockEmbeddingProvider,\n TextChunker,\n type IEmbeddingProvider,\n type RagQuery,\n type RagSearchResult,\n} from \"@yuva-devlab/rag\";\nimport { SemanticCache } from \"@yuva-devlab/semantic-cache\";\nimport { DEFAULT_CLIENT_TIMEOUT_MS, DEFAULT_GATEWAY_URL } from \"../constants\";\nimport type { DevLabClientConfig } from \"../types\";\n\nconst logger = loggerWithConfig(new Logger(\"DevLabClient\"));\n\n/**\n * Master client providing unified access to the complete DevLab platform capabilities.\n *\n * @example\n * ```typescript\n * import { DevLabClient } from \"@yuva-devlab/sdk\";\n *\n * const client = new DevLabClient({ apiKey: \"dlk_...\" });\n * const response = await client.complete({\n * model: \"gemini-2.5-flash\",\n * messages: [{ role: \"user\", content: \"Hello!\" }],\n * });\n * ```\n */\nexport class DevLabClient {\n public readonly ai: ILLMProvider;\n public readonly embedder: IEmbeddingProvider;\n public readonly cache: SemanticCache;\n public readonly tools: ToolRegistry;\n public readonly vectorStore: InMemoryVectorStore;\n public readonly chunker: TextChunker;\n public readonly events: IEventBus;\n public readonly billing: {\n readonly counter: TokenCounter;\n readonly ledger: CostLedger;\n readonly enforcer: BudgetEnforcer;\n readonly pricing: DynamicPricingResolver;\n };\n\n public readonly gatewayUrl: string;\n public readonly tenantId?: string;\n public readonly timeoutMs: number;\n\n /**\n * Initializes the unified DevLab platform client.\n *\n * @param config - Platform client options\n */\n public constructor(config: DevLabClientConfig = {}) {\n this.gatewayUrl = config.gatewayUrl ?? DEFAULT_GATEWAY_URL;\n this.tenantId = config.tenantId;\n this.timeoutMs = config.timeoutMs ?? DEFAULT_CLIENT_TIMEOUT_MS;\n\n // 1. Initialize AI inference\n this.ai = config.aiProvider ?? createDefaultProvider();\n\n // 2. Initialize Embeddings & Vector RAG\n this.embedder = config.embeddingProvider ?? new MockEmbeddingProvider();\n this.chunker = new TextChunker();\n this.vectorStore = new InMemoryVectorStore(this.embedder);\n\n // 3. Initialize Semantic Caching\n this.cache = new SemanticCache(this.embedder);\n\n // 4. Initialize Agent Tool Registry\n this.tools = new ToolRegistry();\n\n // 5. Initialize Server-Driven Billing & Metering\n const pricing = new DynamicPricingResolver({\n loader: config.pricingLoader,\n });\n const ledger = new CostLedger();\n const enforcer = new BudgetEnforcer(ledger);\n const counter = new TokenCounter({ pricingResolver: pricing });\n this.billing = { counter, ledger, enforcer, pricing };\n\n // 6. Initialize Distributed Event Bus\n this.events = config.eventBus ?? new InMemoryEventBus();\n\n logger.debug(\"[constructor] DevLabClient initialized\", {\n gatewayUrl: this.gatewayUrl,\n tenantId: this.tenantId,\n });\n }\n\n /**\n * Completes an LLM prompt request.\n *\n * @param request - LLM completion request\n * @returns Model response\n */\n public async complete(request: LLMRequest): Promise<LLMResponse> {\n logger.debug(\"[complete] Executing AI completion via unified client\", {\n model: request.model,\n });\n return this.ai.complete(request);\n }\n\n /**\n * Streams token chunks incrementally.\n *\n * @param request - LLM completion request\n * @returns Async iterable yielding token deltas\n */\n public async *stream(request: LLMRequest): AsyncIterable<LLMStreamChunk> {\n yield* this.ai.stream(request);\n }\n\n /**\n * Executes a vector similarity search across ingested document chunks.\n *\n * @param query - Search parameters\n * @returns Scored document chunks\n */\n public async search(query: RagQuery): Promise<RagSearchResult> {\n logger.debug(\"[search] Executing RAG search via unified client\", {\n query: query.query,\n });\n return this.vectorStore.search(query);\n }\n\n /**\n * Executes a registered agent tool by name.\n *\n * @param toolName - Registered tool slug\n * @param input - Tool input arguments\n * @param ctx - Tool execution context\n * @returns Tool execution result\n */\n public async executeTool<TInput = unknown, TOutput = unknown>(\n toolName: string,\n input: TInput,\n ctx: { executionId: string; tenantId?: string },\n ): Promise<TOutput> {\n logger.debug(\"[executeTool] Executing registered tool\", { toolName });\n const tool = this.tools.getOrThrow(toolName) as UniversalTool<\n TInput,\n TOutput\n >;\n return tool.execute(input, {\n executionId: ctx.executionId,\n tenantId: ctx.tenantId ?? this.tenantId,\n });\n }\n\n /**\n * Helper to compile a system prompt with tool documentation.\n */\n public compilePrompt(\n template: string,\n variables: Record<string, unknown> = {},\n ): string {\n return compilePrompt({\n template,\n variables,\n tools: this.tools.listAll(),\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/constants/sdk.constants.ts","../src/client/devlab-client.ts"],"names":["loggerWithConfig","Logger","createDefaultProvider","MockEmbeddingProvider","TextChunker","InMemoryVectorStore","SemanticCache","ToolRegistry","DynamicPricingResolver","CostLedger","BudgetEnforcer","TokenCounter","InMemoryEventBus","compilePrompt"],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @file packages/sdk/src/constants/sdk.constants.ts\n * @description Operational constants and default endpoints for the master DevLab client.\n * @module @yuva-devlab/sdk\n */\n\n/** Default client request timeout in milliseconds (30 seconds) */\nexport const DEFAULT_CLIENT_TIMEOUT_MS = 30_000;\n\n/** Default local gateway API base URL */\nexport const DEFAULT_GATEWAY_URL = \"http://localhost:3000\";\n\n/** Current SDK distribution version */\nexport const SDK_VERSION = \"0.1.0\";\n","/**\n * @file packages/sdk/src/client/devlab-client.ts\n * @description Master DevLab platform client unifying AI, RAG, swarms, billing, caching, and events.\n * @module @yuva-devlab/sdk\n */\n\nimport {\n ToolRegistry,\n compilePrompt,\n type UniversalTool,\n} from \"@yuva-devlab/agent-core\";\nimport {\n createDefaultProvider,\n type ILLMProvider,\n type LLMRequest,\n type LLMResponse,\n type LLMStreamChunk,\n} from \"@yuva-devlab/ai-client\";\nimport {\n BudgetEnforcer,\n CostLedger,\n DynamicPricingResolver,\n TokenCounter,\n} from \"@yuva-devlab/billing\";\nimport { InMemoryEventBus, type IEventBus } from \"@yuva-devlab/events\";\nimport { Logger, loggerWithConfig } from \"@yuva-devlab/logger\";\nimport {\n InMemoryVectorStore,\n MockEmbeddingProvider,\n TextChunker,\n type IEmbeddingProvider,\n type RagQuery,\n type RagSearchResult,\n} from \"@yuva-devlab/rag\";\nimport { SemanticCache } from \"@yuva-devlab/semantic-cache\";\nimport { DEFAULT_CLIENT_TIMEOUT_MS, DEFAULT_GATEWAY_URL } from \"@/constants\";\nimport type { DevLabClientConfig } from \"@/types\";\n\nconst logger = loggerWithConfig(new Logger(\"DevLabClient\"));\n\n/**\n * Master client providing unified access to the complete DevLab platform capabilities.\n *\n * @example\n * ```typescript\n * import { DevLabClient } from \"@yuva-devlab/sdk\";\n *\n * const client = new DevLabClient({ apiKey: \"dlk_...\" });\n * const response = await client.complete({\n * model: \"gemini-2.5-flash\",\n * messages: [{ role: \"user\", content: \"Hello!\" }],\n * });\n * ```\n */\nexport class DevLabClient {\n public readonly ai: ILLMProvider;\n public readonly embedder: IEmbeddingProvider;\n public readonly cache: SemanticCache;\n public readonly tools: ToolRegistry;\n public readonly vectorStore: InMemoryVectorStore;\n public readonly chunker: TextChunker;\n public readonly events: IEventBus;\n public readonly billing: {\n readonly counter: TokenCounter;\n readonly ledger: CostLedger;\n readonly enforcer: BudgetEnforcer;\n readonly pricing: DynamicPricingResolver;\n };\n\n public readonly gatewayUrl: string;\n public readonly tenantId?: string;\n public readonly timeoutMs: number;\n\n /**\n * Initializes the unified DevLab platform client.\n *\n * @param config - Platform client options\n */\n public constructor(config: DevLabClientConfig = {}) {\n this.gatewayUrl = config.gatewayUrl ?? DEFAULT_GATEWAY_URL;\n this.tenantId = config.tenantId;\n this.timeoutMs = config.timeoutMs ?? DEFAULT_CLIENT_TIMEOUT_MS;\n\n // 1. Initialize AI inference\n this.ai = config.aiProvider ?? createDefaultProvider();\n\n // 2. Initialize Embeddings & Vector RAG\n this.embedder = config.embeddingProvider ?? new MockEmbeddingProvider();\n this.chunker = new TextChunker();\n this.vectorStore = new InMemoryVectorStore(this.embedder);\n\n // 3. Initialize Semantic Caching\n this.cache = new SemanticCache(this.embedder);\n\n // 4. Initialize Agent Tool Registry\n this.tools = new ToolRegistry();\n\n // 5. Initialize Server-Driven Billing & Metering\n const pricing = new DynamicPricingResolver({\n loader: config.pricingLoader,\n });\n const ledger = new CostLedger();\n const enforcer = new BudgetEnforcer(ledger);\n const counter = new TokenCounter({ pricingResolver: pricing });\n this.billing = { counter, ledger, enforcer, pricing };\n\n // 6. Initialize Distributed Event Bus\n this.events = config.eventBus ?? new InMemoryEventBus();\n\n logger.debug(\"[constructor] DevLabClient initialized\", {\n gatewayUrl: this.gatewayUrl,\n tenantId: this.tenantId,\n });\n }\n\n /**\n * Completes an LLM prompt request.\n *\n * @param request - LLM completion request\n * @returns Model response\n */\n public async complete(request: LLMRequest): Promise<LLMResponse> {\n logger.debug(\"[complete] Executing AI completion via unified client\", {\n model: request.model,\n });\n return this.ai.complete(request);\n }\n\n /**\n * Streams token chunks incrementally.\n *\n * @param request - LLM completion request\n * @returns Async iterable yielding token deltas\n */\n public async *stream(request: LLMRequest): AsyncIterable<LLMStreamChunk> {\n yield* this.ai.stream(request);\n }\n\n /**\n * Executes a vector similarity search across ingested document chunks.\n *\n * @param query - Search parameters\n * @returns Scored document chunks\n */\n public async search(query: RagQuery): Promise<RagSearchResult> {\n logger.debug(\"[search] Executing RAG search via unified client\", {\n query: query.query,\n });\n return this.vectorStore.search(query);\n }\n\n /**\n * Executes a registered agent tool by name.\n *\n * @param toolName - Registered tool slug\n * @param input - Tool input arguments\n * @param ctx - Tool execution context\n * @returns Tool execution result\n */\n public async executeTool<TInput = unknown, TOutput = unknown>(\n toolName: string,\n input: TInput,\n ctx: { executionId: string; tenantId?: string },\n ): Promise<TOutput> {\n logger.debug(\"[executeTool] Executing registered tool\", { toolName });\n const tool = this.tools.getOrThrow(toolName) as UniversalTool<\n TInput,\n TOutput\n >;\n return tool.execute(input, {\n executionId: ctx.executionId,\n tenantId: ctx.tenantId ?? this.tenantId,\n });\n }\n\n /**\n * Helper to compile a system prompt with tool documentation.\n */\n public compilePrompt(\n template: string,\n variables: Record<string, unknown> = {},\n ): string {\n return compilePrompt({\n template,\n variables,\n tools: this.tools.listAll(),\n });\n }\n}\n"]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants/sdk.constants.ts","../src/client/devlab-client.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @file packages/sdk/src/constants/sdk.constants.ts\n * @description Operational constants and default endpoints for the master DevLab client.\n * @module @yuva-devlab/sdk\n */\n\n/** Default client request timeout in milliseconds (30 seconds) */\nexport const DEFAULT_CLIENT_TIMEOUT_MS = 30_000;\n\n/** Default local gateway API base URL */\nexport const DEFAULT_GATEWAY_URL = \"http://localhost:3000\";\n\n/** Current SDK distribution version */\nexport const SDK_VERSION = \"0.1.0\";\n","/**\n * @file packages/sdk/src/client/devlab-client.ts\n * @description Master DevLab platform client unifying AI, RAG, swarms, billing, caching, and events.\n * @module @yuva-devlab/sdk\n */\n\nimport {\n ToolRegistry,\n compilePrompt,\n type UniversalTool,\n} from \"@yuva-devlab/agent-core\";\nimport {\n createDefaultProvider,\n type ILLMProvider,\n type LLMRequest,\n type LLMResponse,\n type LLMStreamChunk,\n} from \"@yuva-devlab/ai-client\";\nimport {\n BudgetEnforcer,\n CostLedger,\n DynamicPricingResolver,\n TokenCounter,\n} from \"@yuva-devlab/billing\";\nimport { InMemoryEventBus, type IEventBus } from \"@yuva-devlab/events\";\nimport { Logger, loggerWithConfig } from \"@yuva-devlab/logger\";\nimport {\n InMemoryVectorStore,\n MockEmbeddingProvider,\n TextChunker,\n type IEmbeddingProvider,\n type RagQuery,\n type RagSearchResult,\n} from \"@yuva-devlab/rag\";\nimport { SemanticCache } from \"@yuva-devlab/semantic-cache\";\nimport { DEFAULT_CLIENT_TIMEOUT_MS, DEFAULT_GATEWAY_URL } from \"../constants\";\nimport type { DevLabClientConfig } from \"../types\";\n\nconst logger = loggerWithConfig(new Logger(\"DevLabClient\"));\n\n/**\n * Master client providing unified access to the complete DevLab platform capabilities.\n *\n * @example\n * ```typescript\n * import { DevLabClient } from \"@yuva-devlab/sdk\";\n *\n * const client = new DevLabClient({ apiKey: \"dlk_...\" });\n * const response = await client.complete({\n * model: \"gemini-2.5-flash\",\n * messages: [{ role: \"user\", content: \"Hello!\" }],\n * });\n * ```\n */\nexport class DevLabClient {\n public readonly ai: ILLMProvider;\n public readonly embedder: IEmbeddingProvider;\n public readonly cache: SemanticCache;\n public readonly tools: ToolRegistry;\n public readonly vectorStore: InMemoryVectorStore;\n public readonly chunker: TextChunker;\n public readonly events: IEventBus;\n public readonly billing: {\n readonly counter: TokenCounter;\n readonly ledger: CostLedger;\n readonly enforcer: BudgetEnforcer;\n readonly pricing: DynamicPricingResolver;\n };\n\n public readonly gatewayUrl: string;\n public readonly tenantId?: string;\n public readonly timeoutMs: number;\n\n /**\n * Initializes the unified DevLab platform client.\n *\n * @param config - Platform client options\n */\n public constructor(config: DevLabClientConfig = {}) {\n this.gatewayUrl = config.gatewayUrl ?? DEFAULT_GATEWAY_URL;\n this.tenantId = config.tenantId;\n this.timeoutMs = config.timeoutMs ?? DEFAULT_CLIENT_TIMEOUT_MS;\n\n // 1. Initialize AI inference\n this.ai = config.aiProvider ?? createDefaultProvider();\n\n // 2. Initialize Embeddings & Vector RAG\n this.embedder = config.embeddingProvider ?? new MockEmbeddingProvider();\n this.chunker = new TextChunker();\n this.vectorStore = new InMemoryVectorStore(this.embedder);\n\n // 3. Initialize Semantic Caching\n this.cache = new SemanticCache(this.embedder);\n\n // 4. Initialize Agent Tool Registry\n this.tools = new ToolRegistry();\n\n // 5. Initialize Server-Driven Billing & Metering\n const pricing = new DynamicPricingResolver({\n loader: config.pricingLoader,\n });\n const ledger = new CostLedger();\n const enforcer = new BudgetEnforcer(ledger);\n const counter = new TokenCounter({ pricingResolver: pricing });\n this.billing = { counter, ledger, enforcer, pricing };\n\n // 6. Initialize Distributed Event Bus\n this.events = config.eventBus ?? new InMemoryEventBus();\n\n logger.debug(\"[constructor] DevLabClient initialized\", {\n gatewayUrl: this.gatewayUrl,\n tenantId: this.tenantId,\n });\n }\n\n /**\n * Completes an LLM prompt request.\n *\n * @param request - LLM completion request\n * @returns Model response\n */\n public async complete(request: LLMRequest): Promise<LLMResponse> {\n logger.debug(\"[complete] Executing AI completion via unified client\", {\n model: request.model,\n });\n return this.ai.complete(request);\n }\n\n /**\n * Streams token chunks incrementally.\n *\n * @param request - LLM completion request\n * @returns Async iterable yielding token deltas\n */\n public async *stream(request: LLMRequest): AsyncIterable<LLMStreamChunk> {\n yield* this.ai.stream(request);\n }\n\n /**\n * Executes a vector similarity search across ingested document chunks.\n *\n * @param query - Search parameters\n * @returns Scored document chunks\n */\n public async search(query: RagQuery): Promise<RagSearchResult> {\n logger.debug(\"[search] Executing RAG search via unified client\", {\n query: query.query,\n });\n return this.vectorStore.search(query);\n }\n\n /**\n * Executes a registered agent tool by name.\n *\n * @param toolName - Registered tool slug\n * @param input - Tool input arguments\n * @param ctx - Tool execution context\n * @returns Tool execution result\n */\n public async executeTool<TInput = unknown, TOutput = unknown>(\n toolName: string,\n input: TInput,\n ctx: { executionId: string; tenantId?: string },\n ): Promise<TOutput> {\n logger.debug(\"[executeTool] Executing registered tool\", { toolName });\n const tool = this.tools.getOrThrow(toolName) as UniversalTool<\n TInput,\n TOutput\n >;\n return tool.execute(input, {\n executionId: ctx.executionId,\n tenantId: ctx.tenantId ?? this.tenantId,\n });\n }\n\n /**\n * Helper to compile a system prompt with tool documentation.\n */\n public compilePrompt(\n template: string,\n variables: Record<string, unknown> = {},\n ): string {\n return compilePrompt({\n template,\n variables,\n tools: this.tools.listAll(),\n });\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/constants/sdk.constants.ts","../src/client/devlab-client.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @file packages/sdk/src/constants/sdk.constants.ts\n * @description Operational constants and default endpoints for the master DevLab client.\n * @module @yuva-devlab/sdk\n */\n\n/** Default client request timeout in milliseconds (30 seconds) */\nexport const DEFAULT_CLIENT_TIMEOUT_MS = 30_000;\n\n/** Default local gateway API base URL */\nexport const DEFAULT_GATEWAY_URL = \"http://localhost:3000\";\n\n/** Current SDK distribution version */\nexport const SDK_VERSION = \"0.1.0\";\n","/**\n * @file packages/sdk/src/client/devlab-client.ts\n * @description Master DevLab platform client unifying AI, RAG, swarms, billing, caching, and events.\n * @module @yuva-devlab/sdk\n */\n\nimport {\n ToolRegistry,\n compilePrompt,\n type UniversalTool,\n} from \"@yuva-devlab/agent-core\";\nimport {\n createDefaultProvider,\n type ILLMProvider,\n type LLMRequest,\n type LLMResponse,\n type LLMStreamChunk,\n} from \"@yuva-devlab/ai-client\";\nimport {\n BudgetEnforcer,\n CostLedger,\n DynamicPricingResolver,\n TokenCounter,\n} from \"@yuva-devlab/billing\";\nimport { InMemoryEventBus, type IEventBus } from \"@yuva-devlab/events\";\nimport { Logger, loggerWithConfig } from \"@yuva-devlab/logger\";\nimport {\n InMemoryVectorStore,\n MockEmbeddingProvider,\n TextChunker,\n type IEmbeddingProvider,\n type RagQuery,\n type RagSearchResult,\n} from \"@yuva-devlab/rag\";\nimport { SemanticCache } from \"@yuva-devlab/semantic-cache\";\nimport { DEFAULT_CLIENT_TIMEOUT_MS, DEFAULT_GATEWAY_URL } from \"@/constants\";\nimport type { DevLabClientConfig } from \"@/types\";\n\nconst logger = loggerWithConfig(new Logger(\"DevLabClient\"));\n\n/**\n * Master client providing unified access to the complete DevLab platform capabilities.\n *\n * @example\n * ```typescript\n * import { DevLabClient } from \"@yuva-devlab/sdk\";\n *\n * const client = new DevLabClient({ apiKey: \"dlk_...\" });\n * const response = await client.complete({\n * model: \"gemini-2.5-flash\",\n * messages: [{ role: \"user\", content: \"Hello!\" }],\n * });\n * ```\n */\nexport class DevLabClient {\n public readonly ai: ILLMProvider;\n public readonly embedder: IEmbeddingProvider;\n public readonly cache: SemanticCache;\n public readonly tools: ToolRegistry;\n public readonly vectorStore: InMemoryVectorStore;\n public readonly chunker: TextChunker;\n public readonly events: IEventBus;\n public readonly billing: {\n readonly counter: TokenCounter;\n readonly ledger: CostLedger;\n readonly enforcer: BudgetEnforcer;\n readonly pricing: DynamicPricingResolver;\n };\n\n public readonly gatewayUrl: string;\n public readonly tenantId?: string;\n public readonly timeoutMs: number;\n\n /**\n * Initializes the unified DevLab platform client.\n *\n * @param config - Platform client options\n */\n public constructor(config: DevLabClientConfig = {}) {\n this.gatewayUrl = config.gatewayUrl ?? DEFAULT_GATEWAY_URL;\n this.tenantId = config.tenantId;\n this.timeoutMs = config.timeoutMs ?? DEFAULT_CLIENT_TIMEOUT_MS;\n\n // 1. Initialize AI inference\n this.ai = config.aiProvider ?? createDefaultProvider();\n\n // 2. Initialize Embeddings & Vector RAG\n this.embedder = config.embeddingProvider ?? new MockEmbeddingProvider();\n this.chunker = new TextChunker();\n this.vectorStore = new InMemoryVectorStore(this.embedder);\n\n // 3. Initialize Semantic Caching\n this.cache = new SemanticCache(this.embedder);\n\n // 4. Initialize Agent Tool Registry\n this.tools = new ToolRegistry();\n\n // 5. Initialize Server-Driven Billing & Metering\n const pricing = new DynamicPricingResolver({\n loader: config.pricingLoader,\n });\n const ledger = new CostLedger();\n const enforcer = new BudgetEnforcer(ledger);\n const counter = new TokenCounter({ pricingResolver: pricing });\n this.billing = { counter, ledger, enforcer, pricing };\n\n // 6. Initialize Distributed Event Bus\n this.events = config.eventBus ?? new InMemoryEventBus();\n\n logger.debug(\"[constructor] DevLabClient initialized\", {\n gatewayUrl: this.gatewayUrl,\n tenantId: this.tenantId,\n });\n }\n\n /**\n * Completes an LLM prompt request.\n *\n * @param request - LLM completion request\n * @returns Model response\n */\n public async complete(request: LLMRequest): Promise<LLMResponse> {\n logger.debug(\"[complete] Executing AI completion via unified client\", {\n model: request.model,\n });\n return this.ai.complete(request);\n }\n\n /**\n * Streams token chunks incrementally.\n *\n * @param request - LLM completion request\n * @returns Async iterable yielding token deltas\n */\n public async *stream(request: LLMRequest): AsyncIterable<LLMStreamChunk> {\n yield* this.ai.stream(request);\n }\n\n /**\n * Executes a vector similarity search across ingested document chunks.\n *\n * @param query - Search parameters\n * @returns Scored document chunks\n */\n public async search(query: RagQuery): Promise<RagSearchResult> {\n logger.debug(\"[search] Executing RAG search via unified client\", {\n query: query.query,\n });\n return this.vectorStore.search(query);\n }\n\n /**\n * Executes a registered agent tool by name.\n *\n * @param toolName - Registered tool slug\n * @param input - Tool input arguments\n * @param ctx - Tool execution context\n * @returns Tool execution result\n */\n public async executeTool<TInput = unknown, TOutput = unknown>(\n toolName: string,\n input: TInput,\n ctx: { executionId: string; tenantId?: string },\n ): Promise<TOutput> {\n logger.debug(\"[executeTool] Executing registered tool\", { toolName });\n const tool = this.tools.getOrThrow(toolName) as UniversalTool<\n TInput,\n TOutput\n >;\n return tool.execute(input, {\n executionId: ctx.executionId,\n tenantId: ctx.tenantId ?? this.tenantId,\n });\n }\n\n /**\n * Helper to compile a system prompt with tool documentation.\n */\n public compilePrompt(\n template: string,\n variables: Record<string, unknown> = {},\n ): string {\n return compilePrompt({\n template,\n variables,\n tools: this.tools.listAll(),\n });\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yuva-devlab/sdk",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Unified Master DevLab Platform Client combining AI inference, RAG, swarms, billing, caching, and events",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -25,27 +25,27 @@
25
25
  },
26
26
  "license": "MIT",
27
27
  "dependencies": {
28
- "zod": "^3.25.76",
29
- "@yuva-devlab/agent-core": "0.2.0",
30
- "@yuva-devlab/ai-client": "0.2.0",
31
- "@yuva-devlab/auth-server": "1.0.0",
32
- "@yuva-devlab/billing": "0.2.0",
28
+ "@yuva-devlab/agent-core": "0.2.1",
29
+ "@yuva-devlab/ai-client": "0.2.1",
30
+ "@yuva-devlab/auth-server": "1.0.1",
31
+ "@yuva-devlab/billing": "0.2.1",
33
32
  "@yuva-devlab/errors": "0.2.0",
34
- "@yuva-devlab/events": "0.2.0",
35
- "@yuva-devlab/logger": "1.2.0",
36
- "@yuva-devlab/rag": "0.2.0",
33
+ "@yuva-devlab/events": "0.2.2",
34
+ "@yuva-devlab/logger": "1.3.0",
35
+ "@yuva-devlab/rag": "0.2.1",
37
36
  "@yuva-devlab/resilience": "0.2.0",
38
- "@yuva-devlab/semantic-cache": "0.2.0"
37
+ "@yuva-devlab/semantic-cache": "0.2.1",
38
+ "zod": "^3.25.76"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@types/node": "^24.10.1",
42
+ "@yuva-devlab/eslint-config": "0.1.1",
43
+ "@yuva-devlab/prettier-config": "0.1.1",
44
+ "@yuva-devlab/typescript-config": "0.1.1",
42
45
  "eslint": "^9.39.1",
43
46
  "prettier": "^3.9.8",
44
47
  "tsup": "^8.5.1",
45
- "typescript": "^6.0.3",
46
- "@yuva-devlab/eslint-config": "0.1.1",
47
- "@yuva-devlab/prettier-config": "0.1.1",
48
- "@yuva-devlab/typescript-config": "0.1.1"
48
+ "typescript": "^6.0.3"
49
49
  },
50
50
  "scripts": {
51
51
  "build": "tsup",