societyai 0.0.1

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 (114) hide show
  1. package/CHANGELOG.md +111 -0
  2. package/LICENSE +21 -0
  3. package/README.md +879 -0
  4. package/dist/builder.d.ts +181 -0
  5. package/dist/builder.d.ts.map +1 -0
  6. package/dist/builder.js +667 -0
  7. package/dist/builder.js.map +1 -0
  8. package/dist/config.d.ts +43 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +11 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/context.d.ts +107 -0
  13. package/dist/context.d.ts.map +1 -0
  14. package/dist/context.js +319 -0
  15. package/dist/context.js.map +1 -0
  16. package/dist/errors.d.ts +31 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +85 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/events.d.ts +219 -0
  21. package/dist/events.d.ts.map +1 -0
  22. package/dist/events.js +395 -0
  23. package/dist/events.js.map +1 -0
  24. package/dist/graph.d.ts +104 -0
  25. package/dist/graph.d.ts.map +1 -0
  26. package/dist/graph.js +366 -0
  27. package/dist/graph.js.map +1 -0
  28. package/dist/index.d.ts +28 -0
  29. package/dist/index.d.ts.map +1 -0
  30. package/dist/index.js +113 -0
  31. package/dist/index.js.map +1 -0
  32. package/dist/logger.d.ts +13 -0
  33. package/dist/logger.d.ts.map +1 -0
  34. package/dist/logger.js +78 -0
  35. package/dist/logger.js.map +1 -0
  36. package/dist/memory.d.ts +146 -0
  37. package/dist/memory.d.ts.map +1 -0
  38. package/dist/memory.js +353 -0
  39. package/dist/memory.js.map +1 -0
  40. package/dist/metrics.d.ts +143 -0
  41. package/dist/metrics.d.ts.map +1 -0
  42. package/dist/metrics.js +271 -0
  43. package/dist/metrics.js.map +1 -0
  44. package/dist/middleware.d.ts +147 -0
  45. package/dist/middleware.d.ts.map +1 -0
  46. package/dist/middleware.js +484 -0
  47. package/dist/middleware.js.map +1 -0
  48. package/dist/models.d.ts +32 -0
  49. package/dist/models.d.ts.map +1 -0
  50. package/dist/models.js +211 -0
  51. package/dist/models.js.map +1 -0
  52. package/dist/patterns.d.ts +6 -0
  53. package/dist/patterns.d.ts.map +1 -0
  54. package/dist/patterns.js +68 -0
  55. package/dist/patterns.js.map +1 -0
  56. package/dist/pipeline.d.ts +84 -0
  57. package/dist/pipeline.d.ts.map +1 -0
  58. package/dist/pipeline.js +569 -0
  59. package/dist/pipeline.js.map +1 -0
  60. package/dist/retry.d.ts +5 -0
  61. package/dist/retry.d.ts.map +1 -0
  62. package/dist/retry.js +70 -0
  63. package/dist/retry.js.map +1 -0
  64. package/dist/society.d.ts +94 -0
  65. package/dist/society.d.ts.map +1 -0
  66. package/dist/society.js +721 -0
  67. package/dist/society.js.map +1 -0
  68. package/dist/strategies.d.ts +55 -0
  69. package/dist/strategies.d.ts.map +1 -0
  70. package/dist/strategies.js +678 -0
  71. package/dist/strategies.js.map +1 -0
  72. package/dist/tools.d.ts +88 -0
  73. package/dist/tools.d.ts.map +1 -0
  74. package/dist/tools.js +366 -0
  75. package/dist/tools.js.map +1 -0
  76. package/dist/types.d.ts +213 -0
  77. package/dist/types.d.ts.map +1 -0
  78. package/dist/types.js +19 -0
  79. package/dist/types.js.map +1 -0
  80. package/dist/validation.d.ts +64 -0
  81. package/dist/validation.d.ts.map +1 -0
  82. package/dist/validation.js +334 -0
  83. package/dist/validation.js.map +1 -0
  84. package/dist/worker-pool.d.ts +17 -0
  85. package/dist/worker-pool.d.ts.map +1 -0
  86. package/dist/worker-pool.js +80 -0
  87. package/dist/worker-pool.js.map +1 -0
  88. package/docs/README.md +468 -0
  89. package/docs/advanced.md +616 -0
  90. package/docs/aggregation-strategies.md +926 -0
  91. package/docs/api-reference.md +771 -0
  92. package/docs/architecture.md +648 -0
  93. package/docs/context-system.md +642 -0
  94. package/docs/event-system.md +1047 -0
  95. package/docs/examples.md +576 -0
  96. package/docs/getting-started.md +564 -0
  97. package/docs/graph-execution.md +389 -0
  98. package/docs/memory-system.md +497 -0
  99. package/docs/metrics-observability.md +560 -0
  100. package/docs/middleware-system.md +1038 -0
  101. package/docs/migration.md +296 -0
  102. package/docs/pipeline-patterns.md +761 -0
  103. package/docs/structured-output.md +612 -0
  104. package/docs/tool-calling.md +491 -0
  105. package/docs/workflows.md +740 -0
  106. package/examples/README.md +234 -0
  107. package/examples/advanced-patterns.ts +115 -0
  108. package/examples/complete-integration.ts +327 -0
  109. package/examples/graph-workflow.ts +161 -0
  110. package/examples/memory-system.ts +155 -0
  111. package/examples/metrics-tracking.ts +243 -0
  112. package/examples/structured-output.ts +231 -0
  113. package/examples/tool-calling.ts +163 -0
  114. package/package.json +94 -0
@@ -0,0 +1,271 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CommonCostConfigs = exports.PerformanceProfiler = exports.TokenCounter = exports.MetricsBuilder = exports.MetricsTracker = void 0;
4
+ const logger_1 = require("./logger");
5
+ class MetricsTracker {
6
+ constructor(options = {}) {
7
+ this.snapshots = new Map();
8
+ this.history = [];
9
+ this.costConfigs = new Map();
10
+ this.logger = (0, logger_1.getLogger)();
11
+ this.trackTokens = false;
12
+ this.trackCost = false;
13
+ this.trackTokens = options.trackTokens ?? false;
14
+ this.trackCost = options.trackCost ?? false;
15
+ }
16
+ start(id, metadata) {
17
+ const snapshot = {
18
+ id,
19
+ execution: {
20
+ startTime: Date.now(),
21
+ success: false,
22
+ },
23
+ metadata,
24
+ };
25
+ this.snapshots.set(id, snapshot);
26
+ this.logger.debug(`Started tracking: ${id}`);
27
+ }
28
+ end(id, options) {
29
+ const snapshot = this.snapshots.get(id);
30
+ if (!snapshot) {
31
+ throw new Error(`No tracking found for: ${id}`);
32
+ }
33
+ snapshot.execution.endTime = Date.now();
34
+ snapshot.execution.duration = snapshot.execution.endTime - snapshot.execution.startTime;
35
+ snapshot.execution.success = true;
36
+ if (options?.tokens && this.trackTokens) {
37
+ snapshot.tokens = options.tokens;
38
+ if (this.trackCost && options.tokens.model) {
39
+ const costConfig = this.costConfigs.get(options.tokens.model);
40
+ if (costConfig) {
41
+ snapshot.cost = this.calculateCost(options.tokens, costConfig);
42
+ }
43
+ }
44
+ }
45
+ if (options?.custom) {
46
+ snapshot.custom = options.custom;
47
+ }
48
+ this.history.push(snapshot);
49
+ this.snapshots.delete(id);
50
+ this.logger.debug(`Ended tracking: ${id} (${snapshot.execution.duration}ms)`);
51
+ return snapshot;
52
+ }
53
+ fail(id, error) {
54
+ const snapshot = this.snapshots.get(id);
55
+ if (!snapshot) {
56
+ throw new Error(`No tracking found for: ${id}`);
57
+ }
58
+ snapshot.execution.endTime = Date.now();
59
+ snapshot.execution.duration = snapshot.execution.endTime - snapshot.execution.startTime;
60
+ snapshot.execution.success = false;
61
+ snapshot.execution.error = error;
62
+ this.history.push(snapshot);
63
+ this.snapshots.delete(id);
64
+ this.logger.debug(`Failed tracking: ${id} (${error.message})`);
65
+ return snapshot;
66
+ }
67
+ addCostConfig(config) {
68
+ this.costConfigs.set(config.model, config);
69
+ this.logger.debug(`Added cost config for: ${config.model}`);
70
+ }
71
+ calculateCost(tokens, config) {
72
+ const inputCost = (tokens.inputTokens / 1000) * config.inputCostPer1K;
73
+ const outputCost = (tokens.outputTokens / 1000) * config.outputCostPer1K;
74
+ return {
75
+ inputCost,
76
+ outputCost,
77
+ totalCost: inputCost + outputCost,
78
+ currency: config.currency ?? 'USD',
79
+ };
80
+ }
81
+ getCurrent(id) {
82
+ return this.snapshots.get(id);
83
+ }
84
+ getHistory(filter) {
85
+ if (!filter)
86
+ return this.history;
87
+ return this.history.filter((snapshot) => {
88
+ if (filter.id && snapshot.id !== filter.id)
89
+ return false;
90
+ if (filter.success !== undefined && snapshot.execution.success !== filter.success) {
91
+ return false;
92
+ }
93
+ return true;
94
+ });
95
+ }
96
+ getAggregated(filter) {
97
+ const snapshots = this.getHistory(filter);
98
+ const successful = snapshots.filter((s) => s.execution.success);
99
+ const failed = snapshots.filter((s) => !s.execution.success);
100
+ const totalDuration = snapshots.reduce((sum, s) => sum + (s.execution.duration ?? 0), 0);
101
+ const totalTokens = snapshots.reduce((sum, s) => sum + (s.tokens?.totalTokens ?? 0), 0);
102
+ const totalCost = snapshots.reduce((sum, s) => sum + (s.cost?.totalCost ?? 0), 0);
103
+ const byAgent = {};
104
+ for (const snapshot of snapshots) {
105
+ if (!byAgent[snapshot.id]) {
106
+ byAgent[snapshot.id] = [];
107
+ }
108
+ byAgent[snapshot.id].push(snapshot);
109
+ }
110
+ return {
111
+ totalExecutions: snapshots.length,
112
+ successfulExecutions: successful.length,
113
+ failedExecutions: failed.length,
114
+ totalDuration,
115
+ averageDuration: snapshots.length > 0 ? totalDuration / snapshots.length : 0,
116
+ totalTokens: totalTokens > 0 ? totalTokens : undefined,
117
+ totalCost: totalCost > 0 ? totalCost : undefined,
118
+ byAgent,
119
+ };
120
+ }
121
+ clearHistory() {
122
+ this.history = [];
123
+ this.logger.debug('Cleared metrics history');
124
+ }
125
+ export() {
126
+ return JSON.stringify({
127
+ current: Array.from(this.snapshots.values()),
128
+ history: this.history,
129
+ aggregated: this.getAggregated(),
130
+ }, null, 2);
131
+ }
132
+ exportOTel() {
133
+ return this.history.map((snapshot) => ({
134
+ traceId: this.generateTraceId(),
135
+ spanId: this.generateSpanId(),
136
+ name: snapshot.id,
137
+ kind: 'INTERNAL',
138
+ startTimeUnixNano: snapshot.execution.startTime * 1000000,
139
+ endTimeUnixNano: (snapshot.execution.endTime ?? Date.now()) * 1000000,
140
+ attributes: {
141
+ 'societyai.success': snapshot.execution.success,
142
+ 'societyai.duration_ms': snapshot.execution.duration,
143
+ 'societyai.tokens.input': snapshot.tokens?.inputTokens,
144
+ 'societyai.tokens.output': snapshot.tokens?.outputTokens,
145
+ 'societyai.tokens.total': snapshot.tokens?.totalTokens,
146
+ 'societyai.cost.total': snapshot.cost?.totalCost,
147
+ 'societyai.cost.currency': snapshot.cost?.currency,
148
+ ...snapshot.custom,
149
+ },
150
+ status: {
151
+ code: snapshot.execution.success ? 'OK' : 'ERROR',
152
+ message: snapshot.execution.error?.message,
153
+ },
154
+ }));
155
+ }
156
+ generateTraceId() {
157
+ return Array.from({ length: 32 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
158
+ }
159
+ generateSpanId() {
160
+ return Array.from({ length: 16 }, () => Math.floor(Math.random() * 16).toString(16)).join('');
161
+ }
162
+ }
163
+ exports.MetricsTracker = MetricsTracker;
164
+ class MetricsBuilder {
165
+ constructor() {
166
+ this.trackTokens = false;
167
+ this.trackCost = false;
168
+ this.costConfigs = [];
169
+ }
170
+ static create() {
171
+ return new MetricsBuilder();
172
+ }
173
+ withTokenTracking() {
174
+ this.trackTokens = true;
175
+ return this;
176
+ }
177
+ withCostTracking(config) {
178
+ this.trackCost = true;
179
+ this.costConfigs.push(config);
180
+ return this;
181
+ }
182
+ build() {
183
+ const tracker = new MetricsTracker({
184
+ trackTokens: this.trackTokens,
185
+ trackCost: this.trackCost,
186
+ });
187
+ for (const config of this.costConfigs) {
188
+ tracker.addCostConfig(config);
189
+ }
190
+ return tracker;
191
+ }
192
+ }
193
+ exports.MetricsBuilder = MetricsBuilder;
194
+ class TokenCounter {
195
+ static estimate(text) {
196
+ return Math.ceil(text.length / 4);
197
+ }
198
+ static count(prompt, response) {
199
+ const inputTokens = this.estimate(prompt);
200
+ const outputTokens = this.estimate(response);
201
+ return {
202
+ inputTokens,
203
+ outputTokens,
204
+ totalTokens: inputTokens + outputTokens,
205
+ };
206
+ }
207
+ }
208
+ exports.TokenCounter = TokenCounter;
209
+ class PerformanceProfiler {
210
+ constructor() {
211
+ this.marks = new Map();
212
+ this.measures = new Map();
213
+ }
214
+ mark(name) {
215
+ this.marks.set(name, Date.now());
216
+ }
217
+ measure(name, startMark, endMark) {
218
+ const start = this.marks.get(startMark);
219
+ if (!start) {
220
+ throw new Error(`Start mark not found: ${startMark}`);
221
+ }
222
+ const end = endMark ? this.marks.get(endMark) : Date.now();
223
+ if (!end) {
224
+ throw new Error(`End mark not found: ${endMark}`);
225
+ }
226
+ const duration = end - start;
227
+ this.measures.set(name, duration);
228
+ return duration;
229
+ }
230
+ getMeasures() {
231
+ return Object.fromEntries(this.measures);
232
+ }
233
+ clear() {
234
+ this.marks.clear();
235
+ this.measures.clear();
236
+ }
237
+ }
238
+ exports.PerformanceProfiler = PerformanceProfiler;
239
+ exports.CommonCostConfigs = {
240
+ 'gpt-4': {
241
+ model: 'gpt-4',
242
+ inputCostPer1K: 0.03,
243
+ outputCostPer1K: 0.06,
244
+ currency: 'USD',
245
+ },
246
+ 'gpt-4-turbo': {
247
+ model: 'gpt-4-turbo',
248
+ inputCostPer1K: 0.01,
249
+ outputCostPer1K: 0.03,
250
+ currency: 'USD',
251
+ },
252
+ 'gpt-3.5-turbo': {
253
+ model: 'gpt-3.5-turbo',
254
+ inputCostPer1K: 0.0015,
255
+ outputCostPer1K: 0.002,
256
+ currency: 'USD',
257
+ },
258
+ 'claude-3-opus': {
259
+ model: 'claude-3-opus',
260
+ inputCostPer1K: 0.015,
261
+ outputCostPer1K: 0.075,
262
+ currency: 'USD',
263
+ },
264
+ 'claude-3-sonnet': {
265
+ model: 'claude-3-sonnet',
266
+ inputCostPer1K: 0.003,
267
+ outputCostPer1K: 0.015,
268
+ currency: 'USD',
269
+ },
270
+ };
271
+ //# sourceMappingURL=metrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ import { AIModel, StepResult, WorkflowContext } from './types';
2
+ export interface MiddlewareContext {
3
+ input: unknown;
4
+ processedInput: unknown;
5
+ metadata: Map<string, unknown>;
6
+ startTime: number;
7
+ agentId?: string;
8
+ stepId?: string;
9
+ signal?: AbortSignal;
10
+ }
11
+ export interface MiddlewareResult {
12
+ output: string;
13
+ continue: boolean;
14
+ metadata?: Record<string, unknown>;
15
+ }
16
+ export type NextFunction = (ctx: MiddlewareContext) => Promise<MiddlewareResult>;
17
+ export type MiddlewareFn = (ctx: MiddlewareContext, next: NextFunction) => Promise<MiddlewareResult>;
18
+ export interface Middleware {
19
+ name: string;
20
+ description?: string;
21
+ priority?: number;
22
+ fn: MiddlewareFn;
23
+ }
24
+ export declare class MiddlewareChain {
25
+ private middlewares;
26
+ private model?;
27
+ static create(): MiddlewareChain;
28
+ use(middleware: Middleware | MiddlewareFn): this;
29
+ useAt(index: number, middleware: Middleware): this;
30
+ useBefore(name: string, middleware: Middleware): this;
31
+ useAfter(name: string, middleware: Middleware): this;
32
+ remove(name: string): this;
33
+ forModel(model: AIModel): this;
34
+ getMiddlewares(): readonly Middleware[];
35
+ sortByPriority(): this;
36
+ build(): ComposedMiddleware;
37
+ wrap(model: AIModel): MiddlewareWrappedModel;
38
+ }
39
+ export declare class ComposedMiddleware {
40
+ private middlewares;
41
+ private model?;
42
+ constructor(middlewares: Middleware[], model?: AIModel | undefined);
43
+ execute(input: unknown, signal?: AbortSignal): Promise<MiddlewareResult>;
44
+ }
45
+ export declare class MiddlewareWrappedModel implements AIModel {
46
+ private model;
47
+ private chain;
48
+ constructor(model: AIModel, middlewares: Middleware[]);
49
+ name(): string;
50
+ process(prompt: unknown, signal?: AbortSignal): Promise<string>;
51
+ supportsPromptType(promptType: string): boolean;
52
+ }
53
+ export declare const Middlewares: {
54
+ readonly logging: (options?: {
55
+ prefix?: string;
56
+ logInput?: boolean;
57
+ logOutput?: boolean;
58
+ }) => Middleware;
59
+ readonly timing: (options?: {
60
+ onComplete?: (durationMs: number) => void;
61
+ }) => Middleware;
62
+ readonly retry: (options?: {
63
+ maxAttempts?: number;
64
+ delay?: number;
65
+ backoffFactor?: number;
66
+ retryOn?: (error: Error) => boolean;
67
+ }) => Middleware;
68
+ readonly cache: (options?: {
69
+ ttl?: number;
70
+ keyGenerator?: (input: unknown) => string;
71
+ storage?: Map<string, {
72
+ value: string;
73
+ expires: number;
74
+ }>;
75
+ }) => Middleware;
76
+ readonly rateLimit: (options: {
77
+ maxRequests: number;
78
+ windowMs: number;
79
+ onLimitReached?: () => void;
80
+ }) => Middleware;
81
+ readonly timeout: (ms: number) => Middleware;
82
+ readonly transformInput: (transformer: (input: unknown) => unknown) => Middleware;
83
+ readonly transformOutput: (transformer: (output: string) => string) => Middleware;
84
+ readonly validation: (options: {
85
+ validateInput?: (input: unknown) => boolean | string;
86
+ validateOutput?: (output: string) => boolean | string;
87
+ }) => Middleware;
88
+ readonly fallback: (fallbackValue: string | ((error: Error) => string)) => Middleware;
89
+ readonly metrics: (collector: MetricsCollector) => Middleware;
90
+ readonly circuitBreaker: (options: {
91
+ threshold: number;
92
+ timeout: number;
93
+ onOpen?: () => void;
94
+ onClose?: () => void;
95
+ onHalfOpen?: () => void;
96
+ }) => Middleware;
97
+ readonly dedupe: () => Middleware;
98
+ };
99
+ export interface MetricsCollector {
100
+ incrementCounter(name: string, value?: number): void;
101
+ recordHistogram(name: string, value: number): void;
102
+ recordGauge(name: string, value: number): void;
103
+ }
104
+ export declare class InMemoryMetricsCollector implements MetricsCollector {
105
+ private counters;
106
+ private histograms;
107
+ private gauges;
108
+ incrementCounter(name: string, value?: number): void;
109
+ recordHistogram(name: string, value: number): void;
110
+ recordGauge(name: string, value: number): void;
111
+ getCounter(name: string): number;
112
+ getHistogram(name: string): {
113
+ count: number;
114
+ sum: number;
115
+ avg: number;
116
+ min: number;
117
+ max: number;
118
+ };
119
+ getGauge(name: string): number;
120
+ getAll(): {
121
+ counters: Record<string, number>;
122
+ histograms: Record<string, number[]>;
123
+ gauges: Record<string, number>;
124
+ };
125
+ reset(): void;
126
+ }
127
+ export interface StepMiddlewareContext {
128
+ stepId: string;
129
+ stepName: string;
130
+ agentIds: string[];
131
+ input: string;
132
+ workflowContext: WorkflowContext;
133
+ metadata: Map<string, unknown>;
134
+ }
135
+ export type StepMiddlewareFn = (ctx: StepMiddlewareContext, next: () => Promise<StepResult[]>) => Promise<StepResult[]>;
136
+ export interface StepMiddleware {
137
+ name: string;
138
+ description?: string;
139
+ fn: StepMiddlewareFn;
140
+ }
141
+ export declare const StepMiddlewares: {
142
+ readonly logging: () => StepMiddleware;
143
+ readonly timing: (onComplete?: (stepId: string, durationMs: number) => void) => StepMiddleware;
144
+ readonly filterResults: (predicate: (result: StepResult) => boolean) => StepMiddleware;
145
+ readonly enrichResults: (enricher: (result: StepResult, ctx: StepMiddlewareContext) => StepResult) => StepMiddleware;
146
+ };
147
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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"}