@lantanios/agentic-server 0.1.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.
package/.env.example ADDED
@@ -0,0 +1,16 @@
1
+ # Server
2
+ PORT=3847
3
+ CORS_ORIGINS=http://localhost:3000,http://localhost:5173
4
+
5
+ # MongoDB
6
+ MONGODB_URI=mongodb+srv://user:pass@cluster.mongodb.net/Agentic?retryWrites=true&w=majority
7
+
8
+ # OpenAI (for embeddings + TTS fallback)
9
+ OPENAI_API_KEY=sk-...
10
+
11
+ # Local audio server (your PC)
12
+ LOCAL_STT_ENDPOINT=http://localhost:8001
13
+ LOCAL_TTS_ENDPOINT=http://localhost:8001
14
+
15
+ # Cloud fallbacks (optional)
16
+ DEEPGRAM_API_KEY=
@@ -0,0 +1,18 @@
1
+ export declare const config: {
2
+ port: number;
3
+ mongoUri: string;
4
+ openaiApiKey: string;
5
+ corsOrigins: string[];
6
+ audio: {
7
+ stt: {
8
+ localEndpoint: string;
9
+ deepgramApiKey: string;
10
+ };
11
+ tts: {
12
+ localEndpoint: string;
13
+ openaiApiKey: string;
14
+ };
15
+ };
16
+ };
17
+ export declare function validateConfig(): string[];
18
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;CAuBlB,CAAC;AAEF,wBAAgB,cAAc,IAAI,MAAM,EAAE,CAWzC"}
package/dist/config.js ADDED
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.config = void 0;
7
+ exports.validateConfig = validateConfig;
8
+ const dotenv_1 = __importDefault(require("dotenv"));
9
+ dotenv_1.default.config();
10
+ exports.config = {
11
+ port: parseInt(process.env.PORT || '3847', 10),
12
+ // MongoDB
13
+ mongoUri: process.env.MONGODB_URI || '',
14
+ // OpenAI (for embeddings)
15
+ openaiApiKey: process.env.OPENAI_API_KEY || '',
16
+ // CORS
17
+ corsOrigins: process.env.CORS_ORIGINS?.split(',') || ['http://localhost:3000'],
18
+ // Audio providers
19
+ audio: {
20
+ stt: {
21
+ localEndpoint: process.env.LOCAL_STT_ENDPOINT || 'http://localhost:8001',
22
+ deepgramApiKey: process.env.DEEPGRAM_API_KEY || '',
23
+ },
24
+ tts: {
25
+ localEndpoint: process.env.LOCAL_TTS_ENDPOINT || 'http://localhost:8001',
26
+ openaiApiKey: process.env.OPENAI_API_KEY || '',
27
+ },
28
+ },
29
+ };
30
+ function validateConfig() {
31
+ const errors = [];
32
+ if (!exports.config.mongoUri) {
33
+ errors.push('MONGODB_URI is required');
34
+ }
35
+ if (!exports.config.openaiApiKey) {
36
+ errors.push('OPENAI_API_KEY is required for embeddings');
37
+ }
38
+ return errors;
39
+ }
40
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AA4BA,wCAWC;AAvCD,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAEH,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC;IAE9C,UAAU;IACV,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE;IAEvC,0BAA0B;IAC1B,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;IAE9C,OAAO;IACP,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC;IAE9E,kBAAkB;IAClB,KAAK,EAAE;QACL,GAAG,EAAE;YACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB;YACxE,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE;SACnD;QACD,GAAG,EAAE;YACH,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB;YACxE,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;SAC/C;KACF;CACF,CAAC;AAEF,SAAgB,cAAc;IAC5B,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,cAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,cAAM,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { Application } from 'express';
2
+ import { Server } from 'socket.io';
3
+ declare const app: Application;
4
+ declare const httpServer: import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>;
5
+ declare const io: Server<import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, any>;
6
+ export { io, app, httpServer };
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAG/C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAOnC,QAAA,MAAM,GAAG,EAAE,WAAuB,CAAC;AAInC,QAAA,MAAM,UAAU,oGAAoB,CAAC;AAErC,QAAA,MAAM,EAAE,+HAMN,CAAC;AAwHH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.httpServer = exports.app = exports.io = void 0;
7
+ const express_1 = __importDefault(require("express"));
8
+ const cors_1 = __importDefault(require("cors"));
9
+ const http_1 = require("http");
10
+ const socket_io_1 = require("socket.io");
11
+ const mongoose_1 = __importDefault(require("mongoose"));
12
+ const config_1 = require("./config");
13
+ const namespaces_1 = require("./namespaces");
14
+ const agentic_audio_1 = require("@lantanios/agentic-audio");
15
+ const app = (0, express_1.default)();
16
+ exports.app = app;
17
+ app.use((0, cors_1.default)({ origin: config_1.config.corsOrigins }));
18
+ app.use(express_1.default.json());
19
+ const httpServer = (0, http_1.createServer)(app);
20
+ exports.httpServer = httpServer;
21
+ const io = new socket_io_1.Server(httpServer, {
22
+ cors: {
23
+ origin: config_1.config.corsOrigins,
24
+ methods: ['GET', 'POST'],
25
+ },
26
+ maxHttpBufferSize: 10 * 1024 * 1024, // 10MB for audio chunks
27
+ });
28
+ exports.io = io;
29
+ // Create audio service with priority-based providers
30
+ function createAudioService() {
31
+ const audioConfig = {
32
+ stt: {
33
+ providers: [
34
+ {
35
+ name: 'local-whisper',
36
+ type: 'local-whisper',
37
+ priority: 1,
38
+ endpoint: config_1.config.audio.stt.localEndpoint,
39
+ model: 'large-v3',
40
+ timeout: 30000,
41
+ },
42
+ ...(config_1.config.audio.stt.deepgramApiKey
43
+ ? [{
44
+ name: 'deepgram',
45
+ type: 'deepgram',
46
+ priority: 2,
47
+ apiKey: config_1.config.audio.stt.deepgramApiKey,
48
+ timeout: 30000,
49
+ }]
50
+ : []),
51
+ ],
52
+ },
53
+ tts: {
54
+ providers: [
55
+ {
56
+ name: 'local-piper',
57
+ type: 'local-piper',
58
+ priority: 1,
59
+ endpoint: config_1.config.audio.tts.localEndpoint,
60
+ voice: 'en_US-lessac-medium',
61
+ timeout: 30000,
62
+ },
63
+ ...(config_1.config.audio.tts.openaiApiKey
64
+ ? [{
65
+ name: 'openai-tts',
66
+ type: 'openai-tts',
67
+ priority: 2,
68
+ apiKey: config_1.config.audio.tts.openaiApiKey,
69
+ voice: 'nova',
70
+ }]
71
+ : []),
72
+ ],
73
+ },
74
+ };
75
+ return new agentic_audio_1.AudioService(audioConfig);
76
+ }
77
+ // Health check
78
+ app.get('/health', async (_req, res) => {
79
+ const mongoStatus = mongoose_1.default.connection.readyState === 1 ? 'connected' : 'disconnected';
80
+ res.json({
81
+ status: 'ok',
82
+ timestamp: new Date().toISOString(),
83
+ mongodb: mongoStatus,
84
+ sockets: io.engine.clientsCount,
85
+ });
86
+ });
87
+ // Provider status
88
+ app.get('/providers', async (_req, res) => {
89
+ try {
90
+ const audioService = createAudioService();
91
+ const status = await audioService.checkAllProviders();
92
+ res.json({ status: 'ok', providers: status });
93
+ }
94
+ catch (error) {
95
+ res.status(500).json({ status: 'error', error: error.message });
96
+ }
97
+ });
98
+ async function start() {
99
+ // Validate config
100
+ const errors = (0, config_1.validateConfig)();
101
+ if (errors.length > 0) {
102
+ console.error('Configuration errors:');
103
+ errors.forEach(e => console.error(` - ${e}`));
104
+ console.log('\nStarting anyway with available features...');
105
+ }
106
+ // Connect to MongoDB
107
+ if (config_1.config.mongoUri) {
108
+ try {
109
+ console.log('Connecting to MongoDB...');
110
+ await mongoose_1.default.connect(config_1.config.mongoUri);
111
+ console.log('✓ Connected to MongoDB');
112
+ }
113
+ catch (err) {
114
+ console.error('✗ MongoDB connection failed:', err);
115
+ }
116
+ }
117
+ // Create audio service
118
+ const audioService = createAudioService();
119
+ // Setup Socket.IO namespaces
120
+ (0, namespaces_1.setupMemoryNamespace)(io.of('/memory'));
121
+ (0, namespaces_1.setupAudioNamespace)(io.of('/audio'), { audioService });
122
+ (0, namespaces_1.setupEventsNamespace)(io.of('/events'));
123
+ console.log('✓ Socket.IO namespaces configured');
124
+ // Start server
125
+ httpServer.listen(config_1.config.port, () => {
126
+ console.log(`\n✓ @lantanios/agentic-server running on http://localhost:${config_1.config.port}`);
127
+ console.log('\nNamespaces:');
128
+ console.log(' /memory - Memory CRUD + vector search');
129
+ console.log(' /audio - STT/TTS streaming');
130
+ console.log(' /events - Pub/sub + direct messaging');
131
+ console.log('\nREST endpoints:');
132
+ console.log(' GET /health - Health check');
133
+ console.log(' GET /providers - Audio provider status');
134
+ });
135
+ }
136
+ start().catch(console.error);
137
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA+C;AAC/C,gDAAwB;AACxB,+BAAoC;AACpC,yCAAmC;AACnC,wDAAgC;AAEhC,qCAAkD;AAClD,6CAA+F;AAC/F,4DAA4E;AAE5E,MAAM,GAAG,GAAgB,IAAA,iBAAO,GAAE,CAAC;AAoItB,kBAAG;AAnIhB,GAAG,CAAC,GAAG,CAAC,IAAA,cAAI,EAAC,EAAE,MAAM,EAAE,eAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAC9C,GAAG,CAAC,GAAG,CAAC,iBAAO,CAAC,IAAI,EAAE,CAAC,CAAC;AAExB,MAAM,UAAU,GAAG,IAAA,mBAAY,EAAC,GAAG,CAAC,CAAC;AAgInB,gCAAU;AA9H5B,MAAM,EAAE,GAAG,IAAI,kBAAM,CAAC,UAAU,EAAE;IAChC,IAAI,EAAE;QACJ,MAAM,EAAE,eAAM,CAAC,WAAW;QAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;KACzB;IACD,iBAAiB,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,wBAAwB;CAC9D,CAAC,CAAC;AAwHM,gBAAE;AAtHX,qDAAqD;AACrD,SAAS,kBAAkB;IACzB,MAAM,WAAW,GAAuB;QACtC,GAAG,EAAE;YACH,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,eAAe;oBACrB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa;oBACxC,KAAK,EAAE,UAAU;oBACjB,OAAO,EAAE,KAAK;iBACf;gBACD,GAAG,CAAC,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc;oBACjC,CAAC,CAAC,CAAC;4BACC,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,UAAmB;4BACzB,QAAQ,EAAE,CAAC;4BACX,MAAM,EAAE,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc;4BACvC,OAAO,EAAE,KAAK;yBACf,CAAC;oBACJ,CAAC,CAAC,EAAE,CAAC;aACR;SACF;QACD,GAAG,EAAE;YACH,SAAS,EAAE;gBACT;oBACE,IAAI,EAAE,aAAa;oBACnB,IAAI,EAAE,aAAa;oBACnB,QAAQ,EAAE,CAAC;oBACX,QAAQ,EAAE,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa;oBACxC,KAAK,EAAE,qBAAqB;oBAC5B,OAAO,EAAE,KAAK;iBACf;gBACD,GAAG,CAAC,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY;oBAC/B,CAAC,CAAC,CAAC;4BACC,IAAI,EAAE,YAAY;4BAClB,IAAI,EAAE,YAAqB;4BAC3B,QAAQ,EAAE,CAAC;4BACX,MAAM,EAAE,eAAM,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY;4BACrC,KAAK,EAAE,MAAe;yBACvB,CAAC;oBACJ,CAAC,CAAC,EAAE,CAAC;aACR;SACF;KACF,CAAC;IAEF,OAAO,IAAI,4BAAY,CAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED,eAAe;AACf,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IACrC,MAAM,WAAW,GAAG,kBAAQ,CAAC,UAAU,CAAC,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;IAExF,GAAG,CAAC,IAAI,CAAC;QACP,MAAM,EAAE,IAAI;QACZ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,OAAO,EAAE,WAAW;QACpB,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY;KAChC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;IACxC,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,KAAK;IAClB,kBAAkB;IAClB,MAAM,MAAM,GAAG,IAAA,uBAAc,GAAE,CAAC;IAChC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAC9D,CAAC;IAED,qBAAqB;IACrB,IAAI,eAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,MAAM,kBAAQ,CAAC,OAAO,CAAC,eAAM,CAAC,QAAQ,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAE1C,6BAA6B;IAC7B,IAAA,iCAAoB,EAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACvC,IAAA,gCAAmB,EAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;IACvD,IAAA,iCAAoB,EAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEvC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IAEjD,eAAe;IACf,UAAU,CAAC,MAAM,CAAC,eAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAClC,OAAO,CAAC,GAAG,CAAC,6DAA6D,eAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxF,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { Namespace } from 'socket.io';
2
+ import { AudioService } from '@lantanios/agentic-audio';
3
+ interface AudioNamespaceOptions {
4
+ audioService: AudioService;
5
+ }
6
+ export declare function setupAudioNamespace(io: Namespace, options: AudioNamespaceOptions): void;
7
+ export {};
8
+ //# sourceMappingURL=audio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.d.ts","sourceRoot":"","sources":["../../src/namespaces/audio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,UAAU,qBAAqB;IAC7B,YAAY,EAAE,YAAY,CAAC;CAC5B;AAMD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,QAkIhF"}
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupAudioNamespace = setupAudioNamespace;
4
+ function getAgentId(socket) {
5
+ return socket.data.agentId;
6
+ }
7
+ function setupAudioNamespace(io, options) {
8
+ const { audioService } = options;
9
+ io.use((socket, next) => {
10
+ const agentId = socket.handshake.auth.agentId;
11
+ if (!agentId) {
12
+ return next(new Error('agentId is required'));
13
+ }
14
+ socket.data.agentId = agentId;
15
+ socket.data.audioBuffer = [];
16
+ socket.data.isRecording = false;
17
+ next();
18
+ });
19
+ io.on('connection', (socket) => {
20
+ const agentId = getAgentId(socket);
21
+ console.log(`[audio] Agent connected: ${agentId}`);
22
+ // Start audio stream
23
+ socket.on('stream:start', (options, callback) => {
24
+ socket.data.audioBuffer = [];
25
+ socket.data.isRecording = true;
26
+ console.log(`[audio] Stream started for ${agentId}`);
27
+ callback?.({ success: true });
28
+ });
29
+ // Receive audio chunk
30
+ socket.on('stream:chunk', (chunk) => {
31
+ if (!socket.data.isRecording)
32
+ return;
33
+ const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
34
+ socket.data.audioBuffer.push(buffer);
35
+ });
36
+ // Stop stream and transcribe
37
+ socket.on('stream:stop', async (options, callback) => {
38
+ if (!socket.data.isRecording) {
39
+ return callback?.({ success: false, error: 'Not recording' });
40
+ }
41
+ socket.data.isRecording = false;
42
+ const audioBuffer = socket.data.audioBuffer;
43
+ const audio = Buffer.concat(audioBuffer);
44
+ socket.data.audioBuffer = [];
45
+ if (audio.length === 0) {
46
+ return callback?.({ success: false, error: 'No audio data' });
47
+ }
48
+ try {
49
+ console.log(`[audio] Transcribing ${audio.length} bytes for ${agentId}`);
50
+ const result = await audioService.stt.transcribe(audio, {
51
+ language: options?.language,
52
+ provider: options?.provider,
53
+ });
54
+ callback?.({ success: true, result });
55
+ socket.emit('transcription', result);
56
+ }
57
+ catch (error) {
58
+ console.error(`[audio] Transcription error:`, error);
59
+ callback?.({ success: false, error: error.message });
60
+ }
61
+ });
62
+ // One-shot transcription
63
+ socket.on('transcribe', async (data, callback) => {
64
+ try {
65
+ const audio = Buffer.isBuffer(data.audio) ? data.audio : Buffer.from(data.audio);
66
+ const result = await audioService.stt.transcribe(audio, {
67
+ language: data.language,
68
+ provider: data.provider,
69
+ });
70
+ callback({ success: true, result });
71
+ }
72
+ catch (error) {
73
+ callback({ success: false, error: error.message });
74
+ }
75
+ });
76
+ // Text to speech
77
+ socket.on('speak', async (data, callback) => {
78
+ try {
79
+ const audio = await audioService.tts.speak(data.text, {
80
+ voice: data.voice,
81
+ speed: data.speed,
82
+ format: data.format || 'mp3',
83
+ provider: data.provider,
84
+ });
85
+ callback({ success: true, audio });
86
+ }
87
+ catch (error) {
88
+ callback({ success: false, error: error.message });
89
+ }
90
+ });
91
+ // Stream TTS
92
+ socket.on('speak:stream', async (data) => {
93
+ try {
94
+ socket.emit('speak:start');
95
+ for await (const chunk of audioService.tts.speakStream(data.text, {
96
+ voice: data.voice,
97
+ speed: data.speed,
98
+ format: data.format || 'mp3',
99
+ provider: data.provider,
100
+ })) {
101
+ socket.emit('speak:chunk', chunk);
102
+ }
103
+ socket.emit('speak:end');
104
+ }
105
+ catch (error) {
106
+ socket.emit('speak:error', { error: error.message });
107
+ }
108
+ });
109
+ // Check provider status
110
+ socket.on('providers:status', async (callback) => {
111
+ try {
112
+ const status = await audioService.checkAllProviders();
113
+ callback({ success: true, status });
114
+ }
115
+ catch (error) {
116
+ callback({ success: false, error: error.message });
117
+ }
118
+ });
119
+ socket.on('disconnect', () => {
120
+ socket.data.isRecording = false;
121
+ socket.data.audioBuffer = [];
122
+ console.log(`[audio] Agent disconnected: ${agentId}`);
123
+ });
124
+ });
125
+ }
126
+ //# sourceMappingURL=audio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/namespaces/audio.ts"],"names":[],"mappings":";;AAWA,kDAkIC;AAtID,SAAS,UAAU,CAAC,MAAc;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAiB,CAAC;AACvC,CAAC;AAED,SAAgB,mBAAmB,CAAC,EAAa,EAAE,OAA8B;IAC/E,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEjC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QAChC,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,4BAA4B,OAAO,EAAE,CAAC,CAAC;QAEnD,qBAAqB;QACrB,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;YAC9C,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;YACrD,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,KAA2B,EAAE,EAAE;YACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW;gBAAE,OAAO;YAErC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,WAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;YACnD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7B,OAAO,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAChC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAuB,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAChE,CAAC;YAED,IAAI,CAAC;gBACH,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,CAAC,MAAM,cAAc,OAAO,EAAE,CAAC,CAAC;gBACzE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;oBACtD,QAAQ,EAAE,OAAO,EAAE,QAAQ;oBAC3B,QAAQ,EAAE,OAAO,EAAE,QAAQ;iBAC5B,CAAC,CAAC;gBAEH,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YACvC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;gBACrD,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC/C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACjF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE;oBACtD,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBACH,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,iBAAiB;QACjB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YAC1C,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;oBACpD,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;oBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBAEH,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YACrC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,aAAa;QACb,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACvC,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAE3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE;oBAChE,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;oBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,EAAE,CAAC;oBACH,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC/C,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACtD,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Namespace } from 'socket.io';
2
+ export declare function setupEventsNamespace(io: Namespace): void;
3
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/namespaces/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,WAAW,CAAC;AAgB9C,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,SAAS,QA+HjD"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupEventsNamespace = setupEventsNamespace;
4
+ // Simple pub/sub for cross-agent events
5
+ const channels = new Map();
6
+ function getAgentId(socket) {
7
+ return socket.data.agentId;
8
+ }
9
+ function getSubscriptions(socket) {
10
+ if (!socket.data.subscriptions) {
11
+ socket.data.subscriptions = new Set();
12
+ }
13
+ return socket.data.subscriptions;
14
+ }
15
+ function setupEventsNamespace(io) {
16
+ io.use((socket, next) => {
17
+ const agentId = socket.handshake.auth.agentId;
18
+ if (!agentId) {
19
+ return next(new Error('agentId is required'));
20
+ }
21
+ socket.data.agentId = agentId;
22
+ socket.data.subscriptions = new Set();
23
+ next();
24
+ });
25
+ io.on('connection', (socket) => {
26
+ const agentId = getAgentId(socket);
27
+ console.log(`[events] Agent connected: ${agentId}`);
28
+ // Subscribe to a channel
29
+ socket.on('subscribe', (channel, callback) => {
30
+ if (!channels.has(channel)) {
31
+ channels.set(channel, new Set());
32
+ }
33
+ channels.get(channel).add(socket);
34
+ getSubscriptions(socket).add(channel);
35
+ console.log(`[events] ${agentId} subscribed to ${channel}`);
36
+ callback?.({ success: true, channel });
37
+ });
38
+ // Unsubscribe from a channel
39
+ socket.on('unsubscribe', (channel, callback) => {
40
+ channels.get(channel)?.delete(socket);
41
+ getSubscriptions(socket).delete(channel);
42
+ console.log(`[events] ${agentId} unsubscribed from ${channel}`);
43
+ callback?.({ success: true, channel });
44
+ });
45
+ // Publish to a channel
46
+ socket.on('publish', (data, callback) => {
47
+ const { channel, event, payload } = data;
48
+ const subscribers = channels.get(channel);
49
+ if (!subscribers || subscribers.size === 0) {
50
+ return callback?.({ success: true, delivered: 0 });
51
+ }
52
+ let delivered = 0;
53
+ for (const subscriber of subscribers) {
54
+ if (subscriber.id !== socket.id) { // Don't send to self
55
+ subscriber.emit('event', {
56
+ channel,
57
+ event,
58
+ payload,
59
+ from: agentId,
60
+ timestamp: Date.now(),
61
+ });
62
+ delivered++;
63
+ }
64
+ }
65
+ console.log(`[events] ${agentId} published ${event} to ${channel} (${delivered} recipients)`);
66
+ callback?.({ success: true, delivered });
67
+ });
68
+ // Broadcast to all connected agents (except self)
69
+ socket.on('broadcast', (data, callback) => {
70
+ const { event, payload } = data;
71
+ let delivered = 0;
72
+ for (const [, s] of io.sockets) {
73
+ if (s.id !== socket.id) {
74
+ s.emit('broadcast', {
75
+ event,
76
+ payload,
77
+ from: agentId,
78
+ timestamp: Date.now(),
79
+ });
80
+ delivered++;
81
+ }
82
+ }
83
+ console.log(`[events] ${agentId} broadcast ${event} (${delivered} recipients)`);
84
+ callback?.({ success: true, delivered });
85
+ });
86
+ // Direct message to another agent
87
+ socket.on('dm', (data, callback) => {
88
+ const { to, event, payload } = data;
89
+ let delivered = false;
90
+ for (const [, s] of io.sockets) {
91
+ if (getAgentId(s) === to) {
92
+ s.emit('dm', {
93
+ event,
94
+ payload,
95
+ from: agentId,
96
+ timestamp: Date.now(),
97
+ });
98
+ delivered = true;
99
+ break;
100
+ }
101
+ }
102
+ console.log(`[events] ${agentId} DM to ${to}: ${event} (${delivered ? 'delivered' : 'not found'})`);
103
+ callback?.({ success: delivered, delivered: delivered ? 1 : 0 });
104
+ });
105
+ // List active agents
106
+ socket.on('agents:list', (callback) => {
107
+ const agents = [];
108
+ for (const [, s] of io.sockets) {
109
+ const id = getAgentId(s);
110
+ if (id) {
111
+ agents.push(id);
112
+ }
113
+ }
114
+ callback?.({ success: true, agents });
115
+ });
116
+ socket.on('disconnect', () => {
117
+ // Cleanup subscriptions
118
+ for (const channel of getSubscriptions(socket)) {
119
+ channels.get(channel)?.delete(socket);
120
+ }
121
+ console.log(`[events] Agent disconnected: ${agentId}`);
122
+ });
123
+ });
124
+ }
125
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/namespaces/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { setupMemoryNamespace } from './memory';
2
+ export { setupAudioNamespace } from './audio';
3
+ export { setupEventsNamespace } from './events';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/namespaces/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setupEventsNamespace = exports.setupAudioNamespace = exports.setupMemoryNamespace = void 0;
4
+ var memory_1 = require("./memory");
5
+ Object.defineProperty(exports, "setupMemoryNamespace", { enumerable: true, get: function () { return memory_1.setupMemoryNamespace; } });
6
+ var audio_1 = require("./audio");
7
+ Object.defineProperty(exports, "setupAudioNamespace", { enumerable: true, get: function () { return audio_1.setupAudioNamespace; } });
8
+ var events_1 = require("./events");
9
+ Object.defineProperty(exports, "setupEventsNamespace", { enumerable: true, get: function () { return events_1.setupEventsNamespace; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/namespaces/index.ts"],"names":[],"mappings":";;;AAAA,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA;AAC7B,iCAA8C;AAArC,4GAAA,mBAAmB,OAAA;AAC5B,mCAAgD;AAAvC,8GAAA,oBAAoB,OAAA"}
@@ -0,0 +1,3 @@
1
+ import { Namespace } from 'socket.io';
2
+ export declare function setupMemoryNamespace(io: Namespace): void;
3
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/namespaces/memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,WAAW,CAAC;AAgB9C,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,SAAS,QAoIjD"}