praisonai 1.2.1 → 1.2.2

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.
Files changed (45) hide show
  1. package/dist/cache/index.d.ts +78 -0
  2. package/dist/cache/index.js +235 -0
  3. package/dist/db/postgres.d.ts +84 -0
  4. package/dist/db/postgres.js +266 -0
  5. package/dist/db/redis.d.ts +109 -0
  6. package/dist/db/redis.js +307 -0
  7. package/dist/db/sqlite.d.ts +66 -0
  8. package/dist/db/sqlite.js +339 -0
  9. package/dist/events/index.d.ts +84 -0
  10. package/dist/events/index.js +153 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +84 -1
  13. package/dist/integrations/index.d.ts +7 -0
  14. package/dist/integrations/index.js +26 -0
  15. package/dist/integrations/observability/base.d.ts +123 -0
  16. package/dist/integrations/observability/base.js +183 -0
  17. package/dist/integrations/observability/index.d.ts +8 -0
  18. package/dist/integrations/observability/index.js +29 -0
  19. package/dist/integrations/observability/langfuse.d.ts +32 -0
  20. package/dist/integrations/observability/langfuse.js +174 -0
  21. package/dist/integrations/vector/base.d.ts +110 -0
  22. package/dist/integrations/vector/base.js +158 -0
  23. package/dist/integrations/vector/chroma.d.ts +25 -0
  24. package/dist/integrations/vector/chroma.js +143 -0
  25. package/dist/integrations/vector/index.d.ts +14 -0
  26. package/dist/integrations/vector/index.js +37 -0
  27. package/dist/integrations/vector/pinecone.d.ts +28 -0
  28. package/dist/integrations/vector/pinecone.js +172 -0
  29. package/dist/integrations/vector/qdrant.d.ts +25 -0
  30. package/dist/integrations/vector/qdrant.js +146 -0
  31. package/dist/integrations/vector/weaviate.d.ts +30 -0
  32. package/dist/integrations/vector/weaviate.js +206 -0
  33. package/dist/integrations/voice/base.d.ts +76 -0
  34. package/dist/integrations/voice/base.js +168 -0
  35. package/dist/integrations/voice/index.d.ts +6 -0
  36. package/dist/integrations/voice/index.js +26 -0
  37. package/dist/knowledge/graph-rag.d.ts +125 -0
  38. package/dist/knowledge/graph-rag.js +289 -0
  39. package/dist/knowledge/index.d.ts +2 -0
  40. package/dist/knowledge/index.js +18 -0
  41. package/dist/knowledge/reranker.d.ts +86 -0
  42. package/dist/knowledge/reranker.js +196 -0
  43. package/dist/workflows/yaml-parser.d.ts +48 -0
  44. package/dist/workflows/yaml-parser.js +304 -0
  45. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -15,7 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.createQueryRewriterAgent = exports.QueryRewriterAgent = exports.createDeepResearchAgent = exports.DeepResearchAgent = exports.createImageAgent = exports.ImageAgent = exports.createAutoAgents = exports.AutoAgents = exports.cleanupTelemetry = exports.disableTelemetry = exports.enableTelemetry = exports.getTelemetry = exports.TelemetryCollector = exports.createMemory = exports.Memory = exports.help = exports.version = exports.listProviders = exports.chat = exports.parseSkillFile = exports.createSkillManager = exports.SkillManager = exports.getObservabilityAdapter = exports.setObservabilityAdapter = exports.ConsoleObservabilityAdapter = exports.MemoryObservabilityAdapter = exports.EvalSuite = exports.reliabilityEval = exports.performanceEval = exports.accuracyEval = exports.createKnowledgeBase = exports.KnowledgeBase = exports.createContextAgent = exports.ContextAgent = exports.routeConditions = exports.createRouter = exports.RouterAgent = exports.handoffFilters = exports.handoff = exports.Handoff = exports.getTool = exports.registerTool = exports.getRegistry = exports.ToolRegistry = exports.tool = exports.FunctionTool = exports.createTool = exports.validateTool = exports.ToolValidationError = exports.BaseTool = void 0;
18
- exports.BaseProvider = exports.GoogleProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.getAvailableProviders = exports.isProviderAvailable = exports.parseModelString = exports.getDefaultProvider = exports.createProvider = exports.createPlanStorage = exports.createTodoList = exports.createPlan = exports.PlanStorage = exports.TodoItem = exports.TodoList = exports.PlanStep = exports.Plan = exports.createLLMGuardrail = exports.LLMGuardrail = exports.createChunking = exports.Chunking = exports.createPromptExpanderAgent = exports.PromptExpanderAgent = void 0;
18
+ exports.createQdrantStore = exports.QdrantVectorStore = exports.createWeaviateStore = exports.WeaviateVectorStore = exports.createPineconeStore = exports.PineconeVectorStore = exports.createMemoryVectorStore = exports.MemoryVectorStore = exports.BaseVectorStore = exports.createPostgresSessionStorage = exports.createMemoryPostgres = exports.createNeonPostgres = exports.PostgresSessionStorage = exports.MemoryPostgresAdapter = exports.NeonPostgresAdapter = exports.createMemoryRedis = exports.createUpstashRedis = exports.MemoryRedisAdapter = exports.UpstashRedisAdapter = exports.createSQLiteAdapter = exports.SQLiteAdapter = exports.validateWorkflowDefinition = exports.loadWorkflowFromFile = exports.createWorkflowFromYAML = exports.parseYAMLWorkflow = exports.createPubSub = exports.createEventBus = exports.AgentEvents = exports.AgentEventBus = exports.EventEmitterPubSub = exports.PubSub = exports.createFileCache = exports.createMemoryCache = exports.FileCache = exports.MemoryCache = exports.BaseCache = exports.createPlanStorage = exports.createTodoList = exports.createPlan = exports.PlanStorage = exports.TodoItem = exports.TodoList = exports.PlanStep = exports.Plan = exports.createLLMGuardrail = exports.LLMGuardrail = exports.createChunking = exports.Chunking = exports.createPromptExpanderAgent = exports.PromptExpanderAgent = void 0;
19
+ exports.BaseProvider = exports.GoogleProvider = exports.AnthropicProvider = exports.OpenAIProvider = exports.getAvailableProviders = exports.isProviderAvailable = exports.parseModelString = exports.getDefaultProvider = exports.createProvider = exports.createGraphRAG = exports.GraphRAG = exports.GraphStore = exports.createLLMReranker = exports.createCrossEncoderReranker = exports.createCohereReranker = exports.LLMReranker = exports.CrossEncoderReranker = exports.CohereReranker = exports.BaseReranker = exports.createElevenLabsVoice = exports.createOpenAIVoice = exports.ElevenLabsVoiceProvider = exports.OpenAIVoiceProvider = exports.BaseVoiceProvider = exports.createLangfuseObservability = exports.createMemoryObservability = exports.createConsoleObservability = exports.LangfuseObservabilityProvider = exports.MemoryObservabilityProvider = exports.ConsoleObservabilityProvider = exports.BaseObservabilityProvider = exports.createChromaStore = exports.ChromaVectorStore = void 0;
19
20
  // Export all public modules
20
21
  __exportStar(require("./agent"), exports);
21
22
  __exportStar(require("./knowledge"), exports);
@@ -134,6 +135,88 @@ Object.defineProperty(exports, "PlanStorage", { enumerable: true, get: function
134
135
  Object.defineProperty(exports, "createPlan", { enumerable: true, get: function () { return planning_1.createPlan; } });
135
136
  Object.defineProperty(exports, "createTodoList", { enumerable: true, get: function () { return planning_1.createTodoList; } });
136
137
  Object.defineProperty(exports, "createPlanStorage", { enumerable: true, get: function () { return planning_1.createPlanStorage; } });
138
+ // Export Cache
139
+ var cache_1 = require("./cache");
140
+ Object.defineProperty(exports, "BaseCache", { enumerable: true, get: function () { return cache_1.BaseCache; } });
141
+ Object.defineProperty(exports, "MemoryCache", { enumerable: true, get: function () { return cache_1.MemoryCache; } });
142
+ Object.defineProperty(exports, "FileCache", { enumerable: true, get: function () { return cache_1.FileCache; } });
143
+ Object.defineProperty(exports, "createMemoryCache", { enumerable: true, get: function () { return cache_1.createMemoryCache; } });
144
+ Object.defineProperty(exports, "createFileCache", { enumerable: true, get: function () { return cache_1.createFileCache; } });
145
+ // Export Events
146
+ var events_1 = require("./events");
147
+ Object.defineProperty(exports, "PubSub", { enumerable: true, get: function () { return events_1.PubSub; } });
148
+ Object.defineProperty(exports, "EventEmitterPubSub", { enumerable: true, get: function () { return events_1.EventEmitterPubSub; } });
149
+ Object.defineProperty(exports, "AgentEventBus", { enumerable: true, get: function () { return events_1.AgentEventBus; } });
150
+ Object.defineProperty(exports, "AgentEvents", { enumerable: true, get: function () { return events_1.AgentEvents; } });
151
+ Object.defineProperty(exports, "createEventBus", { enumerable: true, get: function () { return events_1.createEventBus; } });
152
+ Object.defineProperty(exports, "createPubSub", { enumerable: true, get: function () { return events_1.createPubSub; } });
153
+ // Export YAML Workflow Parser
154
+ var yaml_parser_1 = require("./workflows/yaml-parser");
155
+ Object.defineProperty(exports, "parseYAMLWorkflow", { enumerable: true, get: function () { return yaml_parser_1.parseYAMLWorkflow; } });
156
+ Object.defineProperty(exports, "createWorkflowFromYAML", { enumerable: true, get: function () { return yaml_parser_1.createWorkflowFromYAML; } });
157
+ Object.defineProperty(exports, "loadWorkflowFromFile", { enumerable: true, get: function () { return yaml_parser_1.loadWorkflowFromFile; } });
158
+ Object.defineProperty(exports, "validateWorkflowDefinition", { enumerable: true, get: function () { return yaml_parser_1.validateWorkflowDefinition; } });
159
+ // Export SQLite Adapter
160
+ var sqlite_1 = require("./db/sqlite");
161
+ Object.defineProperty(exports, "SQLiteAdapter", { enumerable: true, get: function () { return sqlite_1.SQLiteAdapter; } });
162
+ Object.defineProperty(exports, "createSQLiteAdapter", { enumerable: true, get: function () { return sqlite_1.createSQLiteAdapter; } });
163
+ // Export Redis Adapter
164
+ var redis_1 = require("./db/redis");
165
+ Object.defineProperty(exports, "UpstashRedisAdapter", { enumerable: true, get: function () { return redis_1.UpstashRedisAdapter; } });
166
+ Object.defineProperty(exports, "MemoryRedisAdapter", { enumerable: true, get: function () { return redis_1.MemoryRedisAdapter; } });
167
+ Object.defineProperty(exports, "createUpstashRedis", { enumerable: true, get: function () { return redis_1.createUpstashRedis; } });
168
+ Object.defineProperty(exports, "createMemoryRedis", { enumerable: true, get: function () { return redis_1.createMemoryRedis; } });
169
+ // Export PostgreSQL Adapter
170
+ var postgres_1 = require("./db/postgres");
171
+ Object.defineProperty(exports, "NeonPostgresAdapter", { enumerable: true, get: function () { return postgres_1.NeonPostgresAdapter; } });
172
+ Object.defineProperty(exports, "MemoryPostgresAdapter", { enumerable: true, get: function () { return postgres_1.MemoryPostgresAdapter; } });
173
+ Object.defineProperty(exports, "PostgresSessionStorage", { enumerable: true, get: function () { return postgres_1.PostgresSessionStorage; } });
174
+ Object.defineProperty(exports, "createNeonPostgres", { enumerable: true, get: function () { return postgres_1.createNeonPostgres; } });
175
+ Object.defineProperty(exports, "createMemoryPostgres", { enumerable: true, get: function () { return postgres_1.createMemoryPostgres; } });
176
+ Object.defineProperty(exports, "createPostgresSessionStorage", { enumerable: true, get: function () { return postgres_1.createPostgresSessionStorage; } });
177
+ // Export Integrations - Vector Stores
178
+ var vector_1 = require("./integrations/vector");
179
+ Object.defineProperty(exports, "BaseVectorStore", { enumerable: true, get: function () { return vector_1.BaseVectorStore; } });
180
+ Object.defineProperty(exports, "MemoryVectorStore", { enumerable: true, get: function () { return vector_1.MemoryVectorStore; } });
181
+ Object.defineProperty(exports, "createMemoryVectorStore", { enumerable: true, get: function () { return vector_1.createMemoryVectorStore; } });
182
+ Object.defineProperty(exports, "PineconeVectorStore", { enumerable: true, get: function () { return vector_1.PineconeVectorStore; } });
183
+ Object.defineProperty(exports, "createPineconeStore", { enumerable: true, get: function () { return vector_1.createPineconeStore; } });
184
+ Object.defineProperty(exports, "WeaviateVectorStore", { enumerable: true, get: function () { return vector_1.WeaviateVectorStore; } });
185
+ Object.defineProperty(exports, "createWeaviateStore", { enumerable: true, get: function () { return vector_1.createWeaviateStore; } });
186
+ Object.defineProperty(exports, "QdrantVectorStore", { enumerable: true, get: function () { return vector_1.QdrantVectorStore; } });
187
+ Object.defineProperty(exports, "createQdrantStore", { enumerable: true, get: function () { return vector_1.createQdrantStore; } });
188
+ Object.defineProperty(exports, "ChromaVectorStore", { enumerable: true, get: function () { return vector_1.ChromaVectorStore; } });
189
+ Object.defineProperty(exports, "createChromaStore", { enumerable: true, get: function () { return vector_1.createChromaStore; } });
190
+ // Export Integrations - Observability
191
+ var observability_2 = require("./integrations/observability");
192
+ Object.defineProperty(exports, "BaseObservabilityProvider", { enumerable: true, get: function () { return observability_2.BaseObservabilityProvider; } });
193
+ Object.defineProperty(exports, "ConsoleObservabilityProvider", { enumerable: true, get: function () { return observability_2.ConsoleObservabilityProvider; } });
194
+ Object.defineProperty(exports, "MemoryObservabilityProvider", { enumerable: true, get: function () { return observability_2.MemoryObservabilityProvider; } });
195
+ Object.defineProperty(exports, "LangfuseObservabilityProvider", { enumerable: true, get: function () { return observability_2.LangfuseObservabilityProvider; } });
196
+ Object.defineProperty(exports, "createConsoleObservability", { enumerable: true, get: function () { return observability_2.createConsoleObservability; } });
197
+ Object.defineProperty(exports, "createMemoryObservability", { enumerable: true, get: function () { return observability_2.createMemoryObservability; } });
198
+ Object.defineProperty(exports, "createLangfuseObservability", { enumerable: true, get: function () { return observability_2.createLangfuseObservability; } });
199
+ // Export Integrations - Voice
200
+ var voice_1 = require("./integrations/voice");
201
+ Object.defineProperty(exports, "BaseVoiceProvider", { enumerable: true, get: function () { return voice_1.BaseVoiceProvider; } });
202
+ Object.defineProperty(exports, "OpenAIVoiceProvider", { enumerable: true, get: function () { return voice_1.OpenAIVoiceProvider; } });
203
+ Object.defineProperty(exports, "ElevenLabsVoiceProvider", { enumerable: true, get: function () { return voice_1.ElevenLabsVoiceProvider; } });
204
+ Object.defineProperty(exports, "createOpenAIVoice", { enumerable: true, get: function () { return voice_1.createOpenAIVoice; } });
205
+ Object.defineProperty(exports, "createElevenLabsVoice", { enumerable: true, get: function () { return voice_1.createElevenLabsVoice; } });
206
+ // Export Reranker
207
+ var reranker_1 = require("./knowledge/reranker");
208
+ Object.defineProperty(exports, "BaseReranker", { enumerable: true, get: function () { return reranker_1.BaseReranker; } });
209
+ Object.defineProperty(exports, "CohereReranker", { enumerable: true, get: function () { return reranker_1.CohereReranker; } });
210
+ Object.defineProperty(exports, "CrossEncoderReranker", { enumerable: true, get: function () { return reranker_1.CrossEncoderReranker; } });
211
+ Object.defineProperty(exports, "LLMReranker", { enumerable: true, get: function () { return reranker_1.LLMReranker; } });
212
+ Object.defineProperty(exports, "createCohereReranker", { enumerable: true, get: function () { return reranker_1.createCohereReranker; } });
213
+ Object.defineProperty(exports, "createCrossEncoderReranker", { enumerable: true, get: function () { return reranker_1.createCrossEncoderReranker; } });
214
+ Object.defineProperty(exports, "createLLMReranker", { enumerable: true, get: function () { return reranker_1.createLLMReranker; } });
215
+ // Export Graph RAG
216
+ var graph_rag_1 = require("./knowledge/graph-rag");
217
+ Object.defineProperty(exports, "GraphStore", { enumerable: true, get: function () { return graph_rag_1.GraphStore; } });
218
+ Object.defineProperty(exports, "GraphRAG", { enumerable: true, get: function () { return graph_rag_1.GraphRAG; } });
219
+ Object.defineProperty(exports, "createGraphRAG", { enumerable: true, get: function () { return graph_rag_1.createGraphRAG; } });
137
220
  // Export providers with explicit names to avoid conflicts
138
221
  var providers_1 = require("./llm/providers");
139
222
  Object.defineProperty(exports, "createProvider", { enumerable: true, get: function () { return providers_1.createProvider; } });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * PraisonAI Integrations
3
+ * Extensions for vector stores, observability, and voice
4
+ */
5
+ export * from './vector';
6
+ export * from './observability';
7
+ export * from './voice';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * PraisonAI Integrations
4
+ * Extensions for vector stores, observability, and voice
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ // Vector Store Integrations
22
+ __exportStar(require("./vector"), exports);
23
+ // Observability Integrations
24
+ __exportStar(require("./observability"), exports);
25
+ // Voice Integrations
26
+ __exportStar(require("./voice"), exports);
@@ -0,0 +1,123 @@
1
+ /**
2
+ * Base Observability - Abstract class for observability integrations
3
+ * Supports tracing, logging, and metrics
4
+ */
5
+ export interface Span {
6
+ id: string;
7
+ traceId: string;
8
+ parentId?: string;
9
+ name: string;
10
+ startTime: number;
11
+ endTime?: number;
12
+ status: 'ok' | 'error' | 'unset';
13
+ attributes: Record<string, any>;
14
+ events: SpanEvent[];
15
+ }
16
+ export interface SpanEvent {
17
+ name: string;
18
+ timestamp: number;
19
+ attributes?: Record<string, any>;
20
+ }
21
+ export interface TraceContext {
22
+ traceId: string;
23
+ spanId: string;
24
+ parentSpanId?: string;
25
+ }
26
+ export interface LogEntry {
27
+ level: 'debug' | 'info' | 'warn' | 'error';
28
+ message: string;
29
+ timestamp: number;
30
+ traceId?: string;
31
+ spanId?: string;
32
+ attributes?: Record<string, any>;
33
+ }
34
+ export interface Metric {
35
+ name: string;
36
+ value: number;
37
+ type: 'counter' | 'gauge' | 'histogram';
38
+ timestamp: number;
39
+ tags?: Record<string, string>;
40
+ }
41
+ /**
42
+ * Abstract base class for observability providers
43
+ */
44
+ export declare abstract class BaseObservabilityProvider {
45
+ readonly name: string;
46
+ constructor(name: string);
47
+ /**
48
+ * Start a new span
49
+ */
50
+ abstract startSpan(name: string, attributes?: Record<string, any>, parentContext?: TraceContext): Span;
51
+ /**
52
+ * End a span
53
+ */
54
+ abstract endSpan(span: Span, status?: 'ok' | 'error', error?: Error): void;
55
+ /**
56
+ * Add event to span
57
+ */
58
+ abstract addSpanEvent(span: Span, name: string, attributes?: Record<string, any>): void;
59
+ /**
60
+ * Log a message
61
+ */
62
+ abstract log(entry: LogEntry): void;
63
+ /**
64
+ * Record a metric
65
+ */
66
+ abstract recordMetric(metric: Metric): void;
67
+ /**
68
+ * Flush all pending data
69
+ */
70
+ abstract flush(): Promise<void>;
71
+ /**
72
+ * Shutdown the provider
73
+ */
74
+ abstract shutdown(): Promise<void>;
75
+ /**
76
+ * Helper to create trace context
77
+ */
78
+ protected createTraceContext(span: Span): TraceContext;
79
+ /**
80
+ * Generate unique ID
81
+ */
82
+ protected generateId(): string;
83
+ }
84
+ /**
85
+ * Console-based observability provider for development
86
+ */
87
+ export declare class ConsoleObservabilityProvider extends BaseObservabilityProvider {
88
+ private spans;
89
+ private verbose;
90
+ constructor(config?: {
91
+ verbose?: boolean;
92
+ });
93
+ startSpan(name: string, attributes?: Record<string, any>, parentContext?: TraceContext): Span;
94
+ endSpan(span: Span, status?: 'ok' | 'error', error?: Error): void;
95
+ addSpanEvent(span: Span, name: string, attributes?: Record<string, any>): void;
96
+ log(entry: LogEntry): void;
97
+ recordMetric(metric: Metric): void;
98
+ flush(): Promise<void>;
99
+ shutdown(): Promise<void>;
100
+ }
101
+ /**
102
+ * Memory-based observability provider for testing
103
+ */
104
+ export declare class MemoryObservabilityProvider extends BaseObservabilityProvider {
105
+ spans: Span[];
106
+ logs: LogEntry[];
107
+ metrics: Metric[];
108
+ constructor();
109
+ startSpan(name: string, attributes?: Record<string, any>, parentContext?: TraceContext): Span;
110
+ endSpan(span: Span, status?: 'ok' | 'error', error?: Error): void;
111
+ addSpanEvent(span: Span, name: string, attributes?: Record<string, any>): void;
112
+ log(entry: LogEntry): void;
113
+ recordMetric(metric: Metric): void;
114
+ flush(): Promise<void>;
115
+ shutdown(): Promise<void>;
116
+ getSpansByName(name: string): Span[];
117
+ getLogsByLevel(level: LogEntry['level']): LogEntry[];
118
+ getMetricsByName(name: string): Metric[];
119
+ }
120
+ export declare function createConsoleObservability(config?: {
121
+ verbose?: boolean;
122
+ }): ConsoleObservabilityProvider;
123
+ export declare function createMemoryObservability(): MemoryObservabilityProvider;
@@ -0,0 +1,183 @@
1
+ "use strict";
2
+ /**
3
+ * Base Observability - Abstract class for observability integrations
4
+ * Supports tracing, logging, and metrics
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.MemoryObservabilityProvider = exports.ConsoleObservabilityProvider = exports.BaseObservabilityProvider = void 0;
8
+ exports.createConsoleObservability = createConsoleObservability;
9
+ exports.createMemoryObservability = createMemoryObservability;
10
+ /**
11
+ * Abstract base class for observability providers
12
+ */
13
+ class BaseObservabilityProvider {
14
+ constructor(name) {
15
+ this.name = name;
16
+ }
17
+ /**
18
+ * Helper to create trace context
19
+ */
20
+ createTraceContext(span) {
21
+ return {
22
+ traceId: span.traceId,
23
+ spanId: span.id,
24
+ parentSpanId: span.parentId
25
+ };
26
+ }
27
+ /**
28
+ * Generate unique ID
29
+ */
30
+ generateId() {
31
+ return crypto.randomUUID().replace(/-/g, '');
32
+ }
33
+ }
34
+ exports.BaseObservabilityProvider = BaseObservabilityProvider;
35
+ /**
36
+ * Console-based observability provider for development
37
+ */
38
+ class ConsoleObservabilityProvider extends BaseObservabilityProvider {
39
+ constructor(config = {}) {
40
+ super('ConsoleObservability');
41
+ this.spans = new Map();
42
+ this.verbose = config.verbose ?? false;
43
+ }
44
+ startSpan(name, attributes, parentContext) {
45
+ const span = {
46
+ id: this.generateId(),
47
+ traceId: parentContext?.traceId || this.generateId(),
48
+ parentId: parentContext?.spanId,
49
+ name,
50
+ startTime: Date.now(),
51
+ status: 'unset',
52
+ attributes: attributes || {},
53
+ events: []
54
+ };
55
+ this.spans.set(span.id, span);
56
+ if (this.verbose) {
57
+ console.log(`[SPAN START] ${name}`, { traceId: span.traceId, spanId: span.id });
58
+ }
59
+ return span;
60
+ }
61
+ endSpan(span, status = 'ok', error) {
62
+ span.endTime = Date.now();
63
+ span.status = status;
64
+ if (error) {
65
+ span.attributes.error = error.message;
66
+ span.attributes.errorStack = error.stack;
67
+ }
68
+ const duration = span.endTime - span.startTime;
69
+ if (this.verbose) {
70
+ console.log(`[SPAN END] ${span.name}`, {
71
+ duration: `${duration}ms`,
72
+ status,
73
+ ...(error && { error: error.message })
74
+ });
75
+ }
76
+ this.spans.delete(span.id);
77
+ }
78
+ addSpanEvent(span, name, attributes) {
79
+ span.events.push({
80
+ name,
81
+ timestamp: Date.now(),
82
+ attributes
83
+ });
84
+ if (this.verbose) {
85
+ console.log(`[SPAN EVENT] ${span.name} -> ${name}`, attributes);
86
+ }
87
+ }
88
+ log(entry) {
89
+ const prefix = `[${entry.level.toUpperCase()}]`;
90
+ const context = entry.traceId ? ` [trace:${entry.traceId.slice(0, 8)}]` : '';
91
+ switch (entry.level) {
92
+ case 'debug':
93
+ console.debug(`${prefix}${context} ${entry.message}`, entry.attributes);
94
+ break;
95
+ case 'info':
96
+ console.info(`${prefix}${context} ${entry.message}`, entry.attributes);
97
+ break;
98
+ case 'warn':
99
+ console.warn(`${prefix}${context} ${entry.message}`, entry.attributes);
100
+ break;
101
+ case 'error':
102
+ console.error(`${prefix}${context} ${entry.message}`, entry.attributes);
103
+ break;
104
+ }
105
+ }
106
+ recordMetric(metric) {
107
+ if (this.verbose) {
108
+ console.log(`[METRIC] ${metric.name}: ${metric.value} (${metric.type})`, metric.tags);
109
+ }
110
+ }
111
+ async flush() {
112
+ // Console provider doesn't need flushing
113
+ }
114
+ async shutdown() {
115
+ this.spans.clear();
116
+ }
117
+ }
118
+ exports.ConsoleObservabilityProvider = ConsoleObservabilityProvider;
119
+ /**
120
+ * Memory-based observability provider for testing
121
+ */
122
+ class MemoryObservabilityProvider extends BaseObservabilityProvider {
123
+ constructor() {
124
+ super('MemoryObservability');
125
+ this.spans = [];
126
+ this.logs = [];
127
+ this.metrics = [];
128
+ }
129
+ startSpan(name, attributes, parentContext) {
130
+ const span = {
131
+ id: this.generateId(),
132
+ traceId: parentContext?.traceId || this.generateId(),
133
+ parentId: parentContext?.spanId,
134
+ name,
135
+ startTime: Date.now(),
136
+ status: 'unset',
137
+ attributes: attributes || {},
138
+ events: []
139
+ };
140
+ this.spans.push(span);
141
+ return span;
142
+ }
143
+ endSpan(span, status = 'ok', error) {
144
+ span.endTime = Date.now();
145
+ span.status = status;
146
+ if (error) {
147
+ span.attributes.error = error.message;
148
+ }
149
+ }
150
+ addSpanEvent(span, name, attributes) {
151
+ span.events.push({ name, timestamp: Date.now(), attributes });
152
+ }
153
+ log(entry) {
154
+ this.logs.push(entry);
155
+ }
156
+ recordMetric(metric) {
157
+ this.metrics.push(metric);
158
+ }
159
+ async flush() { }
160
+ async shutdown() {
161
+ this.spans = [];
162
+ this.logs = [];
163
+ this.metrics = [];
164
+ }
165
+ // Helper methods for testing
166
+ getSpansByName(name) {
167
+ return this.spans.filter(s => s.name === name);
168
+ }
169
+ getLogsByLevel(level) {
170
+ return this.logs.filter(l => l.level === level);
171
+ }
172
+ getMetricsByName(name) {
173
+ return this.metrics.filter(m => m.name === name);
174
+ }
175
+ }
176
+ exports.MemoryObservabilityProvider = MemoryObservabilityProvider;
177
+ // Factory functions
178
+ function createConsoleObservability(config) {
179
+ return new ConsoleObservabilityProvider(config);
180
+ }
181
+ function createMemoryObservability() {
182
+ return new MemoryObservabilityProvider();
183
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Observability Integrations
3
+ * Provides adapters for various observability platforms
4
+ */
5
+ export * from './base';
6
+ export * from './langfuse';
7
+ export { createConsoleObservability, createMemoryObservability } from './base';
8
+ export { createLangfuseObservability } from './langfuse';
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ /**
3
+ * Observability Integrations
4
+ * Provides adapters for various observability platforms
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.createLangfuseObservability = exports.createMemoryObservability = exports.createConsoleObservability = void 0;
22
+ __exportStar(require("./base"), exports);
23
+ __exportStar(require("./langfuse"), exports);
24
+ // Re-export factory functions
25
+ var base_1 = require("./base");
26
+ Object.defineProperty(exports, "createConsoleObservability", { enumerable: true, get: function () { return base_1.createConsoleObservability; } });
27
+ Object.defineProperty(exports, "createMemoryObservability", { enumerable: true, get: function () { return base_1.createMemoryObservability; } });
28
+ var langfuse_1 = require("./langfuse");
29
+ Object.defineProperty(exports, "createLangfuseObservability", { enumerable: true, get: function () { return langfuse_1.createLangfuseObservability; } });
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Langfuse Observability Integration
3
+ */
4
+ import { BaseObservabilityProvider, Span, TraceContext, LogEntry, Metric } from './base';
5
+ export interface LangfuseConfig {
6
+ publicKey: string;
7
+ secretKey: string;
8
+ baseUrl?: string;
9
+ flushAt?: number;
10
+ flushInterval?: number;
11
+ }
12
+ export declare class LangfuseObservabilityProvider extends BaseObservabilityProvider {
13
+ private publicKey;
14
+ private secretKey;
15
+ private baseUrl;
16
+ private queue;
17
+ private flushAt;
18
+ private flushInterval;
19
+ private flushTimer?;
20
+ constructor(config: LangfuseConfig);
21
+ private startFlushTimer;
22
+ private request;
23
+ private enqueue;
24
+ startSpan(name: string, attributes?: Record<string, any>, parentContext?: TraceContext): Span;
25
+ endSpan(span: Span, status?: 'ok' | 'error', error?: Error): void;
26
+ addSpanEvent(span: Span, name: string, attributes?: Record<string, any>): void;
27
+ log(entry: LogEntry): void;
28
+ recordMetric(metric: Metric): void;
29
+ flush(): Promise<void>;
30
+ shutdown(): Promise<void>;
31
+ }
32
+ export declare function createLangfuseObservability(config: LangfuseConfig): LangfuseObservabilityProvider;