@theaiinc/yggdrasil 0.0.1 → 0.2.0

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.
@@ -1,5 +1,3 @@
1
- export { AgentManager } from './services/agent-manager';
2
- export { LoadBalancer } from './services/load-balancer';
3
- export { Logger } from './services/logger';
4
- export type { AgentInfo, AgentMetrics, RequestContext, LoadBalancerConfig, OrchestrationConfig, MonitoringConfig, LogLevel, } from './types';
1
+ export { Logger } from './services/logger.js';
2
+ export type { LogLevel, LoggerConfig, } from './types/index.js';
5
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,YAAY,EACV,SAAS,EACT,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,GACT,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG9C,YAAY,EACV,QAAQ,EACR,YAAY,GACb,MAAM,kBAAkB,CAAC"}
package/dist/src/index.js CHANGED
@@ -1,5 +1,3 @@
1
1
  // Main entry point for @theaiinc/yggdrasil package
2
- export { AgentManager } from './services/agent-manager';
3
- export { LoadBalancer } from './services/load-balancer';
4
- export { Logger } from './services/logger';
2
+ export { Logger } from './services/logger.js';
5
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=orchestration-controller.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-controller.d.ts","sourceRoot":"","sources":["../../src/orchestration-controller.ts"],"names":[],"mappings":""}
@@ -0,0 +1,191 @@
1
+ import express from 'express';
2
+ import cors from 'cors';
3
+ import compression from 'compression';
4
+ import helmet from 'helmet';
5
+ import { getLogger } from './services/logger.js';
6
+ import { nanoid } from 'nanoid';
7
+ const app = express();
8
+ const logger = getLogger();
9
+ const runners = new Map();
10
+ // ─── API key authentication ─────────────────────────────────────
11
+ const API_KEYS = (process.env['API_KEYS'] || '')
12
+ .split(',')
13
+ .map(k => k.trim())
14
+ .filter(k => k !== '');
15
+ function apiKeyAuth(req, res, next) {
16
+ if (req.path === '/health' || req.path === '/metrics') {
17
+ next();
18
+ return;
19
+ }
20
+ if (API_KEYS.length === 0) {
21
+ next();
22
+ return;
23
+ }
24
+ const apiKey = req.headers['x-api-key'];
25
+ if (!apiKey || !API_KEYS.includes(apiKey)) {
26
+ res.status(401).json({ error: 'Unauthorized: invalid or missing API key' });
27
+ return;
28
+ }
29
+ next();
30
+ }
31
+ // ─── Middleware ──────────────────────────────────────────────────
32
+ app.use(helmet({ contentSecurityPolicy: false }));
33
+ app.use(cors());
34
+ app.use(compression());
35
+ app.use(express.json());
36
+ app.use(apiKeyAuth);
37
+ app.use((req, _res, next) => {
38
+ logger.info('Incoming request', {
39
+ method: req.method,
40
+ path: req.path,
41
+ requestId: req.headers['x-request-id'] || 'unknown',
42
+ });
43
+ next();
44
+ });
45
+ // ─── Health / Metrics / Liveness ────────────────────────────────
46
+ app.get('/health', (_req, res) => {
47
+ const online = Array.from(runners.values()).filter(r => r.status === 'online');
48
+ const offlineCount = runners.size - online.length;
49
+ res.json({
50
+ status: 'healthy',
51
+ timestamp: new Date().toISOString(),
52
+ version: '0.1.0',
53
+ uptime: process.uptime(),
54
+ runners: {
55
+ total: runners.size,
56
+ online: online.length,
57
+ offline: offlineCount,
58
+ },
59
+ });
60
+ });
61
+ app.get('/metrics', (_req, res) => {
62
+ const online = Array.from(runners.values()).filter(r => r.status === 'online');
63
+ const metrics = [
64
+ '# HELP yggdrasil_runners_total Total number of registered runners',
65
+ '# TYPE yggdrasil_runners_total gauge',
66
+ `yggdrasil_runners_total ${runners.size}`,
67
+ '# HELP yggdrasil_runners_online Number of online runners',
68
+ '# TYPE yggdrasil_runners_online gauge',
69
+ `yggdrasil_runners_online ${online.length}`,
70
+ '# HELP yggdrasil_runners_offline Number of offline runners',
71
+ '# TYPE yggdrasil_runners_offline gauge',
72
+ `yggdrasil_runners_offline ${runners.size - online.length}`,
73
+ '# HELP yggdrasil_uptime_seconds Server uptime in seconds',
74
+ '# TYPE yggdrasil_uptime_seconds counter',
75
+ `yggdrasil_uptime_seconds ${process.uptime()}`,
76
+ ];
77
+ res.set('Content-Type', 'text/plain; charset=utf-8');
78
+ res.send(metrics.join('\n') + '\n');
79
+ });
80
+ // ─── Runner lifecycle (heartbeat from Ratatoskr daemon) ─────────
81
+ app.post('/runners/register', (req, res) => {
82
+ const body = req.body;
83
+ const runnerId = body.runnerId || nanoid();
84
+ runners.set(runnerId, {
85
+ runnerId,
86
+ name: body.name || 'unknown',
87
+ endpoint: body.endpoint || 'unknown',
88
+ version: body.version || '0.1.0',
89
+ capabilities: body.capabilities || [],
90
+ labels: body.labels || {},
91
+ lastHeartbeat: new Date(),
92
+ status: 'online',
93
+ });
94
+ logger.info('Runner registered', { runnerId, name: body.name, endpoint: body.endpoint });
95
+ res.status(201).json({ runnerId, status: 'registered' });
96
+ });
97
+ app.post('/runners/heartbeat', (req, res) => {
98
+ const body = req.body;
99
+ const runnerId = body.runnerId;
100
+ if (!runnerId || !runners.has(runnerId)) {
101
+ res.status(404).json({ error: 'Runner not found' });
102
+ return;
103
+ }
104
+ const runner = runners.get(runnerId);
105
+ runner.lastHeartbeat = new Date();
106
+ runner.status = 'online';
107
+ logger.debug('Runner heartbeat received', { runnerId });
108
+ res.json({ status: 'ok' });
109
+ });
110
+ app.post('/runners/update', (req, res) => {
111
+ const body = req.body;
112
+ const runnerId = body.runnerId;
113
+ if (!runnerId || !runners.has(runnerId)) {
114
+ res.status(404).json({ error: 'Runner not found' });
115
+ return;
116
+ }
117
+ const runner = runners.get(runnerId);
118
+ runner.endpoint = body.newEndpoint || runner.endpoint;
119
+ runner.lastHeartbeat = new Date();
120
+ logger.info('Runner endpoint updated', { runnerId, newEndpoint: body.newEndpoint });
121
+ res.json({ status: 'updated' });
122
+ });
123
+ app.post('/runners/offline', (req, res) => {
124
+ const body = req.body;
125
+ const runnerId = body.runnerId;
126
+ if (!runnerId || !runners.has(runnerId)) {
127
+ res.status(404).json({ error: 'Runner not found' });
128
+ return;
129
+ }
130
+ runners.get(runnerId).status = 'offline';
131
+ logger.info('Runner went offline', { runnerId });
132
+ res.json({ status: 'offline' });
133
+ });
134
+ // ─── Runner queries ─────────────────────────────────────────────
135
+ app.get('/api/runners', (_req, res) => {
136
+ res.json({
137
+ runners: Array.from(runners.values()).map(r => ({
138
+ runnerId: r.runnerId,
139
+ name: r.name,
140
+ endpoint: r.endpoint,
141
+ version: r.version,
142
+ capabilities: r.capabilities,
143
+ labels: r.labels,
144
+ status: r.status,
145
+ lastHeartbeat: r.lastHeartbeat,
146
+ })),
147
+ count: runners.size,
148
+ });
149
+ });
150
+ app.get('/api/runners/:runnerId', (req, res) => {
151
+ const runner = runners.get(req.params.runnerId);
152
+ if (!runner) {
153
+ res.status(404).json({ error: 'Runner not found' });
154
+ return;
155
+ }
156
+ res.json(runner);
157
+ });
158
+ // ─── Lease-based offline detection ──────────────────────────────
159
+ const LEASE_TTL_MS = parseInt(process.env['LEASE_TTL_MS'] || '60000', 10);
160
+ setInterval(() => {
161
+ const now = Date.now();
162
+ const stale = [];
163
+ for (const [runnerId, runner] of runners.entries()) {
164
+ if (runner.status === 'offline')
165
+ continue;
166
+ const elapsed = now - runner.lastHeartbeat.getTime();
167
+ if (elapsed > LEASE_TTL_MS) {
168
+ stale.push(runnerId);
169
+ }
170
+ }
171
+ for (const runnerId of stale) {
172
+ const runner = runners.get(runnerId);
173
+ runner.status = 'offline';
174
+ logger.warn('Runner marked offline due to heartbeat timeout', {
175
+ runnerId,
176
+ name: runner.name,
177
+ missedBy: `${Math.round((now - runner.lastHeartbeat.getTime()) / 1000)}s`,
178
+ });
179
+ }
180
+ }, 10_000);
181
+ // ─── Start server ───────────────────────────────────────────────
182
+ const PORT = parseInt(process.env['PORT'] || '3000', 10);
183
+ app.listen(PORT, () => {
184
+ logger.info('Orchestration controller started (runner-only mode via Ratatoskr)', {
185
+ port: PORT,
186
+ environment: process.env['NODE_ENV'] || 'development',
187
+ apiKeysConfigured: API_KEYS.length > 0,
188
+ leaseTtlMs: LEASE_TTL_MS,
189
+ });
190
+ });
191
+ //# sourceMappingURL=orchestration-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-controller.js","sourceRoot":"","sources":["../../src/orchestration-controller.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import winston from 'winston';
2
- import { LoggerConfig, LogLevel } from '@/types';
2
+ import { LoggerConfig, LogLevel } from '../types/index.js';
3
3
  /**
4
4
  * Centralized logging service for Yggdrasil orchestration system
5
5
  * Uses Winston for stable, well-documented logging
@@ -20,17 +20,4 @@ export declare class Logger {
20
20
  * Convenience function to get logger instance
21
21
  */
22
22
  export declare const getLogger: (config?: LoggerConfig) => Logger;
23
- /**
24
- * Structured logging helpers for common operations
25
- */
26
- export declare class StructuredLogger {
27
- private logger;
28
- constructor(logger: Logger);
29
- agentHealthCheck(agentId: string, healthy: boolean, responseTime: number, error?: string): void;
30
- requestRouted(requestId: string, agentId: string, sessionId?: string): void;
31
- scalingEvent(currentInstances: number, targetInstances: number, reason: string): void;
32
- circuitBreakerOpened(agentId: string, failureCount: number): void;
33
- queueMetrics(queueDepth: number, oldestItemAge: number): void;
34
- performanceMetrics(agentId: string, metrics: Record<string, unknown>): void;
35
- }
36
23
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjD;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAEhC,OAAO;WAiDO,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM;IAYjD,GAAG,CACR,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI;IAIA,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM;CAG5D;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,YAAY,KAAG,MAEjD,CAAC;AAEF;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAInB,gBAAgB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI;IAUA,aAAa,CAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI;IASA,YAAY,CACjB,gBAAgB,EAAE,MAAM,EACxB,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,GACb,IAAI;IASA,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAQjE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAQ7D,kBAAkB,CACvB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI;CAOR"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE3D;;;GAGG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAEhC,OAAO;WAiDO,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM;IAYjD,GAAG,CACR,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI;IAIA,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM;CAG5D;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,YAAY,KAAG,MAEjD,CAAC"}
@@ -68,59 +68,4 @@ export class Logger {
68
68
  export const getLogger = (config) => {
69
69
  return Logger.getInstance(config);
70
70
  };
71
- /**
72
- * Structured logging helpers for common operations
73
- */
74
- export class StructuredLogger {
75
- logger;
76
- constructor(logger) {
77
- this.logger = logger;
78
- }
79
- agentHealthCheck(agentId, healthy, responseTime, error) {
80
- this.logger.info('Agent health check completed', {
81
- agentId,
82
- healthy,
83
- responseTime,
84
- error,
85
- operation: 'health_check',
86
- });
87
- }
88
- requestRouted(requestId, agentId, sessionId) {
89
- this.logger.info('Request routed to agent', {
90
- requestId,
91
- agentId,
92
- sessionId,
93
- operation: 'request_routing',
94
- });
95
- }
96
- scalingEvent(currentInstances, targetInstances, reason) {
97
- this.logger.info('Scaling event triggered', {
98
- currentInstances,
99
- targetInstances,
100
- reason,
101
- operation: 'scaling',
102
- });
103
- }
104
- circuitBreakerOpened(agentId, failureCount) {
105
- this.logger.warn('Circuit breaker opened for agent', {
106
- agentId,
107
- failureCount,
108
- operation: 'circuit_breaker',
109
- });
110
- }
111
- queueMetrics(queueDepth, oldestItemAge) {
112
- this.logger.debug('Queue metrics', {
113
- queueDepth,
114
- oldestItemAge,
115
- operation: 'queue_metrics',
116
- });
117
- }
118
- performanceMetrics(agentId, metrics) {
119
- this.logger.debug('Performance metrics collected', {
120
- agentId,
121
- metrics,
122
- operation: 'performance_metrics',
123
- });
124
- }
125
- }
126
71
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/services/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/services/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B;;;GAGG;AACH,MAAM,OAAO,MAAM;IACT,MAAM,CAAiB;IACvB,MAAM,CAAC,QAAQ,CAAS;IAEhC,YAAoB,MAAoB;QACtC,MAAM,UAAU,GAAwB;YACtC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,MAAM,CAAC,MAAM,KAAK,MAAM;oBACtB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;oBACvB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EACzB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CACxB,CACN;aACF,CAAC;SACH,CAAC;QAEF,oCAAoC;QACpC,IAAI,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvC,UAAU,CAAC,IAAI,CACb,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,gBAAgB;gBAC1B,KAAK,EAAE,OAAO;gBACd,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;aACF,CAAC,EACF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;gBAC1B,QAAQ,EAAE,mBAAmB;gBAC7B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;aACF,CAAC,CACH,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YACjC,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAC5B,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CACtB;YACD,WAAW,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;YACrC,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,MAAqB;QAC7C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,aAAa,GAAiB;gBAClC,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,MAAM;gBACd,UAAU,EAAE,CAAC,SAAS,CAAC;aACxB,CAAC;YACF,MAAM,CAAC,QAAQ,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC;IACzB,CAAC;IAEM,GAAG,CACR,KAAe,EACf,OAAe,EACf,IAA8B;QAE9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACxC,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,IAA8B;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,IAAI,CAAC,OAAe,EAAE,IAA8B;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,IAAI,CAAC,OAAe,EAAE,IAA8B;QACzD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAEM,KAAK,CAAC,OAAe,EAAE,IAA8B;QAC1D,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAEM,KAAK,CAAC,IAA6B;QACxC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAqB,EAAU,EAAE;IACzD,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC,CAAC"}
@@ -1,139 +1,10 @@
1
1
  /**
2
2
  * Core types for the Yggdrasil orchestration system
3
3
  */
4
- export interface AgentInfo {
5
- id: string;
6
- url: string;
7
- health: AgentHealth;
8
- metrics: AgentMetrics;
9
- lastSeen: Date;
10
- sessionId?: string;
11
- }
12
- export interface AgentHealth {
13
- status: 'healthy' | 'unhealthy' | 'unknown';
14
- lastCheck: Date;
15
- responseTime: number;
16
- errorCount: number;
17
- consecutiveFailures: number;
18
- }
19
- export interface AgentMetrics {
20
- cpuUsage: number;
21
- memoryUsage: number;
22
- requestCount: number;
23
- errorRate: number;
24
- averageResponseTime: number;
25
- activeConnections: number;
26
- }
27
- export interface RequestContext {
28
- id: string;
29
- sessionId?: string;
30
- timestamp: Date;
31
- priority: 'low' | 'normal' | 'high' | 'critical';
32
- retryCount: number;
33
- maxRetries: number;
34
- timeout: number;
35
- }
36
- export interface OrchestrationConfig {
37
- maxConcurrency: number;
38
- minInstances: number;
39
- maxInstances: number;
40
- healthCheckInterval: number;
41
- retryBackoffMs: number;
42
- maxRetries: number;
43
- sessionAffinity: boolean;
44
- circuitBreakerThreshold: number;
45
- queueTimeoutMs: number;
46
- }
47
- export interface LoadBalancerConfig {
48
- algorithm: 'round-robin' | 'least-connections' | 'ip-hash' | 'weighted';
49
- healthCheckPath: string;
50
- healthCheckInterval: number;
51
- sessionAffinity: boolean;
52
- stickySessionTimeout: number;
53
- }
54
- export interface MonitoringConfig {
55
- prometheusEnabled: boolean;
56
- prometheusPort: number;
57
- grafanaEnabled: boolean;
58
- grafanaPort: number;
59
- customMetrics: boolean;
60
- alertingEnabled: boolean;
61
- }
62
- export interface QueueItem {
63
- id: string;
64
- request: Record<string, unknown>;
65
- context: RequestContext;
66
- timestamp: Date;
67
- priority: number;
68
- }
69
- export interface CircuitBreakerState {
70
- isOpen: boolean;
71
- failureCount: number;
72
- lastFailureTime: Date;
73
- nextAttemptTime: Date;
74
- }
75
- export interface ScalingMetrics {
76
- currentInstances: number;
77
- targetInstances: number;
78
- cpuUtilization: number;
79
- memoryUtilization: number;
80
- queueDepth: number;
81
- errorRate: number;
82
- responseTime: number;
83
- }
84
- export interface HealthCheckResult {
85
- agentId: string;
86
- healthy: boolean;
87
- responseTime: number;
88
- error?: string;
89
- timestamp: Date;
90
- }
91
- export interface SessionInfo {
92
- sessionId: string;
93
- agentId: string;
94
- createdAt: Date;
95
- lastActivity: Date;
96
- requestCount: number;
97
- }
98
- export interface MetricsData {
99
- timestamp: Date;
100
- agentId: string;
101
- metrics: AgentMetrics;
102
- scalingMetrics: ScalingMetrics;
103
- }
104
4
  export type LogLevel = 'error' | 'warn' | 'info' | 'debug';
105
5
  export interface LoggerConfig {
106
6
  level: LogLevel;
107
7
  format: 'json' | 'simple';
108
8
  transports: string[];
109
9
  }
110
- export interface DockerConfig {
111
- image: string;
112
- tag: string;
113
- ports: number[];
114
- environment: Record<string, string>;
115
- volumes: string[];
116
- resourceLimits: {
117
- cpu: string;
118
- memory: string;
119
- };
120
- }
121
- export interface CloudRunConfig {
122
- serviceName: string;
123
- region: string;
124
- maxConcurrency: number;
125
- minInstances: number;
126
- maxInstances: number;
127
- cpu: number;
128
- memory: string;
129
- timeout: number;
130
- }
131
- export interface DeploymentConfig {
132
- environment: 'local' | 'staging' | 'production';
133
- docker: DockerConfig;
134
- cloudRun?: CloudRunConfig;
135
- monitoring: MonitoringConfig;
136
- orchestration: OrchestrationConfig;
137
- loadBalancer: LoadBalancerConfig;
138
- }
139
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB"}
package/package.json CHANGED
@@ -1,53 +1,37 @@
1
1
  {
2
2
  "name": "@theaiinc/yggdrasil",
3
- "version": "0.0.1",
4
- "description": "Distributed orchestration system for agent containers with auto-scaling",
3
+ "version": "0.2.0",
4
+ "description": "Distributed runner orchestration receives runner registrations and heartbeats via Ratatoskr",
5
5
  "author": "The AI Inc",
6
- "license": "UNLICENSED",
6
+ "license": "MIT",
7
7
  "type": "module",
8
8
  "main": "dist/src/index.js",
9
9
  "scripts": {
10
10
  "build": "tsc -p ./tsconfig.json",
11
11
  "dev": "nodemon --exec \"node --loader ts-node/esm src/orchestration-controller.ts\"",
12
12
  "start": "node dist/src/orchestration-controller.js",
13
- "test": "vitest",
14
- "test:coverage": "vitest --coverage",
13
+ "test": "echo 'No tests yet'",
15
14
  "lint": "eslint . --ext .ts",
16
- "docker:build": "docker build -t yggdrasil-agent ./agent",
17
- "docker:compose": "docker-compose up -d",
18
- "docker:compose:dev": "docker-compose -f docker-compose.dev.yml up",
19
- "load:test": "node scripts/load-test.js",
20
- "health:check": "node scripts/health-check.js",
21
15
  "prepublishOnly": "npm run build"
22
16
  },
23
17
  "files": [
24
18
  "dist/src/",
25
- "README.md"
19
+ "README.md",
20
+ "LICENSE"
26
21
  ],
27
22
  "dependencies": {
28
- "async-lock": "^1.4.0",
29
- "axios": "^1.6.7",
30
23
  "compression": "^1.7.4",
31
24
  "cors": "^2.8.5",
32
- "dotenv": "^17.2.0",
33
25
  "express": "^4.19.2",
34
26
  "helmet": "^8.1.0",
35
27
  "nanoid": "^5.0.6",
36
- "node-cron": "^3.0.3",
37
- "prom-client": "^15.1.0",
38
- "redis": "^4.6.12",
39
- "socket.io": "^4.7.4",
40
- "uuid": "^9.0.1",
41
- "winston": "^3.11.0",
42
- "zod": "^3.22.4"
28
+ "winston": "^3.11.0"
43
29
  },
44
30
  "devDependencies": {
45
31
  "@types/compression": "^1.7.5",
46
32
  "@types/cors": "^2.8.17",
47
33
  "@types/express": "^4.17.21",
48
34
  "@types/node": "^20.17.24",
49
- "@types/node-cron": "^3.0.11",
50
- "@types/uuid": "^9.0.7",
51
35
  "@typescript-eslint/eslint-plugin": "^8.26.1",
52
36
  "@typescript-eslint/parser": "^8.26.1",
53
37
  "eslint": "^9.22.0",
@@ -62,9 +46,8 @@
62
46
  "keywords": [
63
47
  "ai",
64
48
  "orchestration",
49
+ "ratatoskr",
65
50
  "distributed-systems",
66
- "auto-scaling",
67
- "containers",
68
- "agents"
51
+ "runners"
69
52
  ]
70
53
  }