@theaiinc/yggdrasil 0.1.0 → 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":"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"}
@@ -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,7 +1,7 @@
1
1
  {
2
2
  "name": "@theaiinc/yggdrasil",
3
- "version": "0.1.0",
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
6
  "license": "MIT",
7
7
  "type": "module",
@@ -10,14 +10,8 @@
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": [
@@ -26,29 +20,18 @@
26
20
  "LICENSE"
27
21
  ],
28
22
  "dependencies": {
29
- "async-lock": "^1.4.0",
30
- "axios": "^1.6.7",
31
23
  "compression": "^1.7.4",
32
24
  "cors": "^2.8.5",
33
- "dotenv": "^17.2.0",
34
25
  "express": "^4.19.2",
35
26
  "helmet": "^8.1.0",
36
27
  "nanoid": "^5.0.6",
37
- "node-cron": "^3.0.3",
38
- "prom-client": "^15.1.0",
39
- "redis": "^4.6.12",
40
- "socket.io": "^4.7.4",
41
- "uuid": "^9.0.1",
42
- "winston": "^3.11.0",
43
- "zod": "^3.22.4"
28
+ "winston": "^3.11.0"
44
29
  },
45
30
  "devDependencies": {
46
31
  "@types/compression": "^1.7.5",
47
32
  "@types/cors": "^2.8.17",
48
33
  "@types/express": "^4.17.21",
49
34
  "@types/node": "^20.17.24",
50
- "@types/node-cron": "^3.0.11",
51
- "@types/uuid": "^9.0.7",
52
35
  "@typescript-eslint/eslint-plugin": "^8.26.1",
53
36
  "@typescript-eslint/parser": "^8.26.1",
54
37
  "eslint": "^9.22.0",
@@ -63,9 +46,8 @@
63
46
  "keywords": [
64
47
  "ai",
65
48
  "orchestration",
49
+ "ratatoskr",
66
50
  "distributed-systems",
67
- "auto-scaling",
68
- "containers",
69
- "agents"
51
+ "runners"
70
52
  ]
71
53
  }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 The AI Inc
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.