@mandible-ai/mandible 0.3.3 → 0.3.5
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/dist/src/cli/server.d.ts +7 -1
- package/dist/src/cli/server.d.ts.map +1 -1
- package/dist/src/cli/server.js +262 -74
- package/dist/src/cli/server.js.map +1 -1
- package/dist/src/cloud/client.d.ts +2 -1
- package/dist/src/cloud/client.d.ts.map +1 -1
- package/dist/src/cloud/client.js +6 -0
- package/dist/src/cloud/client.js.map +1 -1
- package/dist/src/cloud/index.d.ts +1 -1
- package/dist/src/cloud/index.d.ts.map +1 -1
- package/dist/src/cloud/types.d.ts +41 -1
- package/dist/src/cloud/types.d.ts.map +1 -1
- package/dist/src/dsl/mandible.d.ts +22 -3
- package/dist/src/dsl/mandible.d.ts.map +1 -1
- package/dist/src/dsl/mandible.js +73 -10
- package/dist/src/dsl/mandible.js.map +1 -1
- package/package.json +1 -1
package/dist/src/cli/server.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import type { ColonyDefinition, Environment } from '../core/types.js';
|
|
2
|
+
export interface SignalServerConfig {
|
|
3
|
+
url: string;
|
|
4
|
+
apiKey: string;
|
|
5
|
+
project: string;
|
|
6
|
+
}
|
|
2
7
|
export interface MandibleConfig {
|
|
3
|
-
environment
|
|
8
|
+
environment?: Environment;
|
|
9
|
+
signalServer?: SignalServerConfig;
|
|
4
10
|
colonies: ColonyDefinition[];
|
|
5
11
|
dashboard?: {
|
|
6
12
|
port?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/server.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/cli/server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAU,MAAM,kBAAkB,CAAC;AAI9E,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,CAAC;CACf;AAgID,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAsPf"}
|
package/dist/src/cli/server.js
CHANGED
|
@@ -1,31 +1,174 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
// ============================================================
|
|
1
|
+
// PURPOSE: Dashboard Server — HTTP + WebSocket for real-time observability
|
|
2
|
+
// PURPOSE: Supports local mode (direct Environment) and cloud mode (signal server relay)
|
|
4
3
|
import { createServer } from 'node:http';
|
|
5
4
|
import { readFile } from 'node:fs/promises';
|
|
6
5
|
import { join, dirname } from 'node:path';
|
|
7
6
|
import { fileURLToPath } from 'node:url';
|
|
8
|
-
import { WebSocketServer } from 'ws';
|
|
7
|
+
import { WebSocketServer, WebSocket } from 'ws';
|
|
9
8
|
import { createRuntime } from '../core/runtime.js';
|
|
10
9
|
import { EventBus } from '../core/events.js';
|
|
11
10
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
|
+
/** Connect to signal server, authenticate, and return the WebSocket + helpers */
|
|
12
|
+
function connectToSignalServer(config, callbacks) {
|
|
13
|
+
const ws = new WebSocket(config.url);
|
|
14
|
+
let msgCounter = 0;
|
|
15
|
+
const pendingRequests = new Map();
|
|
16
|
+
function nextId() {
|
|
17
|
+
return `dash_${++msgCounter}`;
|
|
18
|
+
}
|
|
19
|
+
function send(msg) {
|
|
20
|
+
if (ws.readyState === WebSocket.OPEN) {
|
|
21
|
+
ws.send(JSON.stringify(msg));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function request(msg) {
|
|
25
|
+
const id = nextId();
|
|
26
|
+
return new Promise((resolve, reject) => {
|
|
27
|
+
pendingRequests.set(id, { resolve, reject });
|
|
28
|
+
send({ ...msg, id });
|
|
29
|
+
setTimeout(() => {
|
|
30
|
+
if (pendingRequests.has(id)) {
|
|
31
|
+
pendingRequests.delete(id);
|
|
32
|
+
reject(new Error(`signal server request timed out: ${msg.type}`));
|
|
33
|
+
}
|
|
34
|
+
}, 30_000);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
ws.on('open', () => {
|
|
38
|
+
send({ type: 'auth', apiKey: config.apiKey, project: config.project });
|
|
39
|
+
});
|
|
40
|
+
ws.on('message', (raw) => {
|
|
41
|
+
let msg;
|
|
42
|
+
try {
|
|
43
|
+
msg = JSON.parse(typeof raw === 'string' ? raw : raw.toString());
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
switch (msg.type) {
|
|
49
|
+
case 'authenticated':
|
|
50
|
+
// Auth succeeded — subscribe to all signals and request initial snapshot
|
|
51
|
+
send({ type: 'subscribe', id: nextId(), query: { type: '*' } });
|
|
52
|
+
callbacks.onReady();
|
|
53
|
+
break;
|
|
54
|
+
case 'result':
|
|
55
|
+
if (msg.id && pendingRequests.has(msg.id)) {
|
|
56
|
+
const pending = pendingRequests.get(msg.id);
|
|
57
|
+
pendingRequests.delete(msg.id);
|
|
58
|
+
pending.resolve(msg.data);
|
|
59
|
+
}
|
|
60
|
+
break;
|
|
61
|
+
case 'error':
|
|
62
|
+
if (msg.id && pendingRequests.has(msg.id)) {
|
|
63
|
+
const pending = pendingRequests.get(msg.id);
|
|
64
|
+
pendingRequests.delete(msg.id);
|
|
65
|
+
pending.reject(new Error(`${msg.code}: ${msg.message}`));
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
callbacks.onError(new Error(`signal server error: ${msg.code} — ${msg.message}`));
|
|
69
|
+
}
|
|
70
|
+
break;
|
|
71
|
+
case 'signal':
|
|
72
|
+
// Subscription push — a new signal was deposited
|
|
73
|
+
if (msg.signal) {
|
|
74
|
+
callbacks.onSignalPush(msg.signal);
|
|
75
|
+
}
|
|
76
|
+
break;
|
|
77
|
+
case 'event':
|
|
78
|
+
// Runtime event relayed from a colony in a zone
|
|
79
|
+
if (msg.data) {
|
|
80
|
+
callbacks.onEvent(msg.data);
|
|
81
|
+
}
|
|
82
|
+
break;
|
|
83
|
+
default:
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
ws.on('error', (err) => {
|
|
88
|
+
callbacks.onError(err instanceof Error ? err : new Error(String(err)));
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
ws,
|
|
92
|
+
snapshot() {
|
|
93
|
+
request({ type: 'snapshot' })
|
|
94
|
+
.then(signals => callbacks.onSnapshot(signals))
|
|
95
|
+
.catch(() => { });
|
|
96
|
+
},
|
|
97
|
+
async deposit(type, payload, tags) {
|
|
98
|
+
return request({
|
|
99
|
+
type: 'deposit',
|
|
100
|
+
signal: {
|
|
101
|
+
type,
|
|
102
|
+
payload,
|
|
103
|
+
meta: { deposited_by: 'dashboard', tags },
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
close() {
|
|
108
|
+
ws.close();
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
12
112
|
export async function startDevServer(config, options) {
|
|
113
|
+
const isCloudMode = !!config.signalServer;
|
|
13
114
|
const eventBus = new EventBus();
|
|
14
115
|
const runtimes = [];
|
|
15
|
-
//
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
116
|
+
// In local mode, create runtimes with shared event bus
|
|
117
|
+
if (!isCloudMode) {
|
|
118
|
+
if (!config.environment) {
|
|
119
|
+
throw new Error('MandibleConfig requires either environment or signalServer');
|
|
120
|
+
}
|
|
121
|
+
for (const colonyDef of config.colonies) {
|
|
122
|
+
const runtime = createRuntime(colonyDef, { eventBus });
|
|
123
|
+
runtimes.push(runtime);
|
|
124
|
+
}
|
|
19
125
|
}
|
|
20
126
|
// Collect recent events for reconnecting clients
|
|
21
127
|
const recentEvents = [];
|
|
22
128
|
const MAX_RECENT = 500;
|
|
23
|
-
|
|
129
|
+
function pushEvent(event) {
|
|
24
130
|
recentEvents.push(event);
|
|
25
131
|
if (recentEvents.length > MAX_RECENT) {
|
|
26
132
|
recentEvents.splice(0, recentEvents.length - MAX_RECENT);
|
|
27
133
|
}
|
|
28
|
-
}
|
|
134
|
+
}
|
|
135
|
+
// In local mode, pipe EventBus events into recent events
|
|
136
|
+
if (!isCloudMode) {
|
|
137
|
+
eventBus.on((event) => pushEvent(event));
|
|
138
|
+
}
|
|
139
|
+
// Signal server relay (cloud mode)
|
|
140
|
+
let signalServerRelay = null;
|
|
141
|
+
let latestSnapshot = [];
|
|
142
|
+
if (isCloudMode) {
|
|
143
|
+
signalServerRelay = connectToSignalServer(config.signalServer, {
|
|
144
|
+
onEvent(event) {
|
|
145
|
+
pushEvent(event);
|
|
146
|
+
broadcastToClients(wss, { type: 'event', data: event });
|
|
147
|
+
},
|
|
148
|
+
onSnapshot(signals) {
|
|
149
|
+
latestSnapshot = signals;
|
|
150
|
+
broadcastToClients(wss, { type: 'snapshot', signals });
|
|
151
|
+
},
|
|
152
|
+
onSignalPush(signal) {
|
|
153
|
+
// Update our local snapshot cache
|
|
154
|
+
const idx = latestSnapshot.findIndex(s => s.id === signal.id);
|
|
155
|
+
if (idx >= 0) {
|
|
156
|
+
latestSnapshot[idx] = signal;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
latestSnapshot.push(signal);
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
onReady() {
|
|
163
|
+
console.log(' connected to signal server');
|
|
164
|
+
// Request initial snapshot
|
|
165
|
+
signalServerRelay.snapshot();
|
|
166
|
+
},
|
|
167
|
+
onError(err) {
|
|
168
|
+
console.error(' signal server error:', err.message);
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
}
|
|
29
172
|
// HTTP server
|
|
30
173
|
const server = createServer(async (req, res) => {
|
|
31
174
|
const url = new URL(req.url ?? '/', `http://localhost:${options.port}`);
|
|
@@ -40,25 +183,52 @@ export async function startDevServer(config, options) {
|
|
|
40
183
|
}
|
|
41
184
|
try {
|
|
42
185
|
if (url.pathname === '/api/state') {
|
|
43
|
-
|
|
44
|
-
|
|
186
|
+
if (isCloudMode) {
|
|
187
|
+
sendJson(res, { signals: latestSnapshot });
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
const signals = await config.environment.snapshot();
|
|
191
|
+
sendJson(res, { signals });
|
|
192
|
+
}
|
|
45
193
|
}
|
|
46
194
|
else if (url.pathname === '/api/colonies') {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
195
|
+
if (isCloudMode) {
|
|
196
|
+
// In cloud mode, report colony defs with placeholder state
|
|
197
|
+
const colonies = config.colonies.map(c => ({
|
|
198
|
+
name: c.name,
|
|
199
|
+
state: 'running',
|
|
200
|
+
activeCount: 0,
|
|
201
|
+
concurrency: c.concurrency,
|
|
202
|
+
stats: { signalsSensed: 0, signalsClaimed: 0, signalsProcessed: 0, signalsDeposited: 0, claimConflicts: 0, errors: 0, avgProcessingMs: 0 },
|
|
203
|
+
}));
|
|
204
|
+
sendJson(res, { colonies });
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
const colonies = runtimes.map(rt => ({
|
|
208
|
+
name: rt.name,
|
|
209
|
+
state: rt.state,
|
|
210
|
+
activeCount: rt.activeCount,
|
|
211
|
+
concurrency: rt.concurrency,
|
|
212
|
+
stats: rt.stats,
|
|
213
|
+
}));
|
|
214
|
+
sendJson(res, { colonies });
|
|
215
|
+
}
|
|
55
216
|
}
|
|
56
217
|
else if (url.pathname === '/api/stats') {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
218
|
+
if (isCloudMode) {
|
|
219
|
+
const stats = config.colonies.map(c => ({
|
|
220
|
+
name: c.name,
|
|
221
|
+
signalsSensed: 0, signalsClaimed: 0, signalsProcessed: 0, signalsDeposited: 0, claimConflicts: 0, errors: 0, avgProcessingMs: 0,
|
|
222
|
+
}));
|
|
223
|
+
sendJson(res, { stats });
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
const stats = runtimes.map(rt => ({
|
|
227
|
+
name: rt.name,
|
|
228
|
+
...rt.stats,
|
|
229
|
+
}));
|
|
230
|
+
sendJson(res, { stats });
|
|
231
|
+
}
|
|
62
232
|
}
|
|
63
233
|
else if (url.pathname === '/api/events') {
|
|
64
234
|
sendJson(res, { events: recentEvents });
|
|
@@ -66,15 +236,21 @@ export async function startDevServer(config, options) {
|
|
|
66
236
|
else if (url.pathname === '/api/signals' && req.method === 'POST') {
|
|
67
237
|
const body = await readBody(req);
|
|
68
238
|
const { type, payload, tags } = JSON.parse(body);
|
|
69
|
-
|
|
70
|
-
type,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
239
|
+
if (isCloudMode) {
|
|
240
|
+
const signal = await signalServerRelay.deposit(type, payload ?? {}, tags);
|
|
241
|
+
sendJson(res, { signal }, 201);
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
const signal = await config.environment.deposit({
|
|
245
|
+
type,
|
|
246
|
+
payload: payload ?? {},
|
|
247
|
+
meta: {
|
|
248
|
+
deposited_by: 'dashboard',
|
|
249
|
+
tags,
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
sendJson(res, { signal }, 201);
|
|
253
|
+
}
|
|
78
254
|
}
|
|
79
255
|
else if (url.pathname === '/' || url.pathname === '/index.html') {
|
|
80
256
|
await serveDashboard(res);
|
|
@@ -90,45 +266,34 @@ export async function startDevServer(config, options) {
|
|
|
90
266
|
res.end(JSON.stringify({ error: err.message }));
|
|
91
267
|
}
|
|
92
268
|
});
|
|
93
|
-
// WebSocket server
|
|
269
|
+
// WebSocket server for dashboard UI clients
|
|
94
270
|
const wss = new WebSocketServer({ server });
|
|
95
271
|
wss.on('connection', (ws) => {
|
|
96
272
|
// Send recent events on connect for catchup
|
|
97
273
|
ws.send(JSON.stringify({ type: 'init', events: recentEvents.slice(-100) }));
|
|
98
274
|
});
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
if (client.readyState === 1) { // WebSocket.OPEN
|
|
104
|
-
client.send(message);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
// Listen for remote events relayed through the signal server
|
|
109
|
-
if ('onEvent' in config.environment && typeof config.environment.onEvent === 'function') {
|
|
110
|
-
config.environment.onEvent((event) => {
|
|
111
|
-
recentEvents.push(event);
|
|
112
|
-
if (recentEvents.length > MAX_RECENT) {
|
|
113
|
-
recentEvents.splice(0, recentEvents.length - MAX_RECENT);
|
|
114
|
-
}
|
|
115
|
-
const message = JSON.stringify({ type: 'event', data: event });
|
|
116
|
-
for (const client of wss.clients) {
|
|
117
|
-
if (client.readyState === 1) {
|
|
118
|
-
client.send(message);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
275
|
+
if (!isCloudMode) {
|
|
276
|
+
// Forward runtime events to all connected WebSocket clients
|
|
277
|
+
eventBus.on((event) => {
|
|
278
|
+
broadcastToClients(wss, { type: 'event', data: event });
|
|
121
279
|
});
|
|
280
|
+
// Listen for remote events relayed through the signal server
|
|
281
|
+
if ('onEvent' in config.environment && typeof config.environment.onEvent === 'function') {
|
|
282
|
+
config.environment.onEvent((event) => {
|
|
283
|
+
pushEvent(event);
|
|
284
|
+
broadcastToClients(wss, { type: 'event', data: event });
|
|
285
|
+
});
|
|
286
|
+
}
|
|
122
287
|
}
|
|
123
288
|
// Periodic snapshot broadcast (for concentration decay animation)
|
|
124
289
|
const snapshotInterval = setInterval(async () => {
|
|
125
290
|
try {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
291
|
+
if (isCloudMode) {
|
|
292
|
+
signalServerRelay.snapshot();
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
const signals = await config.environment.snapshot();
|
|
296
|
+
broadcastToClients(wss, { type: 'snapshot', signals });
|
|
132
297
|
}
|
|
133
298
|
}
|
|
134
299
|
catch { /* ignore snapshot errors */ }
|
|
@@ -137,21 +302,30 @@ export async function startDevServer(config, options) {
|
|
|
137
302
|
server.listen(options.port, () => {
|
|
138
303
|
console.log(` dashboard: http://localhost:${options.port}`);
|
|
139
304
|
});
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
305
|
+
if (!isCloudMode) {
|
|
306
|
+
// Start all colony runtimes (local mode only)
|
|
307
|
+
console.log(` starting ${runtimes.length} colonies...`);
|
|
308
|
+
for (const runtime of runtimes) {
|
|
309
|
+
await runtime.start();
|
|
310
|
+
console.log(` + ${runtime.name} [running]`);
|
|
311
|
+
}
|
|
312
|
+
console.log('');
|
|
313
|
+
}
|
|
314
|
+
else {
|
|
315
|
+
console.log(` cloud mode — ${config.colonies.length} colonies running in Edera zones`);
|
|
316
|
+
for (const col of config.colonies) {
|
|
317
|
+
console.log(` + ${col.name} [cloud]`);
|
|
318
|
+
}
|
|
319
|
+
console.log('');
|
|
145
320
|
}
|
|
146
|
-
console.log('');
|
|
147
321
|
// Auto-open browser
|
|
148
322
|
if (options.open) {
|
|
149
|
-
const
|
|
323
|
+
const dashUrl = `http://localhost:${options.port}`;
|
|
150
324
|
try {
|
|
151
325
|
const { exec } = await import('node:child_process');
|
|
152
326
|
const cmd = process.platform === 'darwin' ? 'open' :
|
|
153
327
|
process.platform === 'win32' ? 'start' : 'xdg-open';
|
|
154
|
-
exec(`${cmd} ${
|
|
328
|
+
exec(`${cmd} ${dashUrl}`);
|
|
155
329
|
}
|
|
156
330
|
catch { /* ignore open errors */ }
|
|
157
331
|
}
|
|
@@ -159,9 +333,15 @@ export async function startDevServer(config, options) {
|
|
|
159
333
|
const shutdown = async () => {
|
|
160
334
|
console.log('\n shutting down...');
|
|
161
335
|
clearInterval(snapshotInterval);
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
console.log(
|
|
336
|
+
if (isCloudMode) {
|
|
337
|
+
signalServerRelay?.close();
|
|
338
|
+
console.log(' signal server connection closed');
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
for (const runtime of runtimes) {
|
|
342
|
+
await runtime.stop();
|
|
343
|
+
console.log(` - ${runtime.name} [stopped]`);
|
|
344
|
+
}
|
|
165
345
|
}
|
|
166
346
|
wss.close();
|
|
167
347
|
server.close();
|
|
@@ -171,6 +351,14 @@ export async function startDevServer(config, options) {
|
|
|
171
351
|
process.on('SIGINT', shutdown);
|
|
172
352
|
process.on('SIGTERM', shutdown);
|
|
173
353
|
}
|
|
354
|
+
function broadcastToClients(wss, data) {
|
|
355
|
+
const message = JSON.stringify(data);
|
|
356
|
+
for (const client of wss.clients) {
|
|
357
|
+
if (client.readyState === WebSocket.OPEN) {
|
|
358
|
+
client.send(message);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
174
362
|
function sendJson(res, data, status = 200) {
|
|
175
363
|
res.writeHead(status, { 'Content-Type': 'application/json' });
|
|
176
364
|
res.end(JSON.stringify(data));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/cli/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CloudConfig, Project, CreateProjectRequest, DeployRequest, DeployResult, ColonyStatus, ZoneStatus, CreateApiKeyResponse } from './types.js';
|
|
1
|
+
import type { CloudConfig, Project, CreateProjectRequest, DeployRequest, DeployResult, ColonyStatus, ZoneStatus, CreateApiKeyResponse, BundleUploadInfo } from './types.js';
|
|
2
2
|
export declare class MandibleCloudError extends Error {
|
|
3
3
|
code: string;
|
|
4
4
|
status: number;
|
|
@@ -19,6 +19,7 @@ export declare class MandibleCloudClient {
|
|
|
19
19
|
stop(projectId?: string): Promise<void>;
|
|
20
20
|
listZones(projectId?: string): Promise<ZoneStatus[]>;
|
|
21
21
|
getZone(zoneId: string, projectId?: string): Promise<ZoneStatus>;
|
|
22
|
+
requestBundleUpload(projectId?: string): Promise<BundleUploadInfo>;
|
|
22
23
|
createApiKey(projectId?: string): Promise<CreateApiKeyResponse>;
|
|
23
24
|
revokeApiKey(keyId: string): Promise<void>;
|
|
24
25
|
private get;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/cloud/client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EAEV,oBAAoB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/cloud/client.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EAEV,oBAAoB,EACpB,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,IAAI,EAAE,MAAM;IAA0B,MAAM,EAAE,MAAM;gBAApD,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAS,MAAM,EAAE,MAAM;CAIxE;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAC,CAAS;gBAEb,MAAM,EAAE,WAAW;IAUzB,aAAa,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI1D,UAAU,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIzC,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlC,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzC,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzD,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIpD,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAQhE,mBAAmB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAWlE,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAI/D,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAQlC,GAAG;YAIH,IAAI;YAQJ,GAAG;YAIH,KAAK;IAyBnB,OAAO,CAAC,cAAc;CAMvB"}
|
package/dist/src/cloud/client.js
CHANGED
|
@@ -66,6 +66,12 @@ export class MandibleCloudClient {
|
|
|
66
66
|
return this.get(`/v1/projects/${projectId ?? this.requireProject()}/zones/${zoneId}`);
|
|
67
67
|
}
|
|
68
68
|
// ----------------------------------------------------------
|
|
69
|
+
// Bundles
|
|
70
|
+
// ----------------------------------------------------------
|
|
71
|
+
async requestBundleUpload(projectId) {
|
|
72
|
+
return this.post(`/v1/projects/${projectId ?? this.requireProject()}/bundles/upload`, {});
|
|
73
|
+
}
|
|
74
|
+
// ----------------------------------------------------------
|
|
69
75
|
// API Keys
|
|
70
76
|
// ----------------------------------------------------------
|
|
71
77
|
async createApiKey(projectId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/cloud/client.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,8BAA8B;AAC9B,+DAA+D;AAC/D,+CAA+C;AAC/C,8DAA8D;AAC9D,+DAA+D;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/cloud/client.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,8BAA8B;AAC9B,+DAA+D;AAC/D,+CAA+C;AAC/C,8DAA8D;AAC9D,+DAA+D;AAgB/D,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACxB;IAAsC;IAAzD,YAAmB,IAAY,EAAE,OAAe,EAAS,MAAc;QACrE,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,SAAI,GAAJ,IAAI,CAAQ;QAA0B,WAAM,GAAN,MAAM,CAAQ;QAErE,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAS;IACf,MAAM,CAAS;IACf,OAAO,CAAU;IAEzB,YAAY,MAAmB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,6DAA6D;IAC7D,WAAW;IACX,6DAA6D;IAE7D,KAAK,CAAC,aAAa,CAAC,GAAyB;QAC3C,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAW;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAW;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,6DAA6D;IAC7D,oBAAoB;IACpB,6DAA6D;IAE7D,KAAK,CAAC,MAAM,CAAC,GAAkB,EAAE,SAAkB;QACjD,OAAO,IAAI,CAAC,IAAI,CAAC,gBAAgB,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAkB;QACnC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,SAAkB;QACxD,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,aAAa,UAAU,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,SAAkB;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACpD,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,QAAQ;IACR,6DAA6D;IAE7D,KAAK,CAAC,SAAS,CAAC,SAAkB;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc,EAAE,SAAkB;QAC9C,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,6DAA6D;IAC7D,UAAU;IACV,6DAA6D;IAE7D,KAAK,CAAC,mBAAmB,CAAC,SAAkB;QAC1C,OAAO,IAAI,CAAC,IAAI,CACd,gBAAgB,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,iBAAiB,EACnE,EAAE,CACH,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,WAAW;IACX,6DAA6D;IAE7D,KAAK,CAAC,YAAY,CAAC,SAAkB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAC,iBAAiB,KAAK,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,6DAA6D;IAC7D,eAAe;IACf,6DAA6D;IAErD,KAAK,CAAC,GAAG,CAAI,IAAY;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACtB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,GAAG,CAAI,IAAY;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,KAAK,CAAI,IAAY,EAAE,IAAiB;QACpD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;YAC3C,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,GAAG,IAAI,CAAC,OAAiC;gBACzC,eAAe,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACxC,YAAY,EAAE,oBAAoB;aACnC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAc,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAC;QACnD,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;IACvC,CAAC;IAEO,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { MandibleCloudClient, MandibleCloudError } from './client.js';
|
|
2
|
-
export type { CloudConfig, Project, CreateProjectRequest, DeployRequest, DeployColonyConfig, DeployResult, DeployedColony, ZoneState, ZoneStatus, ZoneMetrics, HostResources, ColonyStatus, ApiKey, CreateApiKeyResponse, ApiError, } from './types.js';
|
|
2
|
+
export type { Account, CloudConfig, Project, CreateProjectRequest, DeployRequest, DeployColonyConfig, DeployResult, DeployedColony, ZoneState, ZoneStatus, ZoneMetrics, HostResources, ColonyStatus, ApiKey, CreateApiKeyResponse, ApiError, ColonyModuleRef, BundleUploadInfo, } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cloud/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE,YAAY,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cloud/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAEtE,YAAY,EACV,OAAO,EACP,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,UAAU,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,MAAM,EACN,oBAAoB,EACpB,QAAQ,EACR,eAAe,EACf,gBAAgB,GACjB,MAAM,YAAY,CAAC"}
|
|
@@ -4,9 +4,17 @@ export interface CloudConfig {
|
|
|
4
4
|
apiUrl: string;
|
|
5
5
|
apiKey: string;
|
|
6
6
|
project?: string;
|
|
7
|
+
accountId?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Account {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
email?: string;
|
|
13
|
+
createdAt: string;
|
|
7
14
|
}
|
|
8
15
|
export interface Project {
|
|
9
16
|
id: string;
|
|
17
|
+
accountId: string;
|
|
10
18
|
name: string;
|
|
11
19
|
signalServerUrl: string;
|
|
12
20
|
createdAt: string;
|
|
@@ -17,6 +25,8 @@ export interface CreateProjectRequest {
|
|
|
17
25
|
}
|
|
18
26
|
export interface DeployRequest {
|
|
19
27
|
colonies: DeployColonyConfig[];
|
|
28
|
+
bundleS3Key?: string;
|
|
29
|
+
bundleHash?: string;
|
|
20
30
|
}
|
|
21
31
|
export interface DeployColonyConfig {
|
|
22
32
|
name: string;
|
|
@@ -34,6 +44,27 @@ export interface DeployColonyConfig {
|
|
|
34
44
|
concurrency: number;
|
|
35
45
|
config?: Record<string, unknown>;
|
|
36
46
|
resources?: HostResources;
|
|
47
|
+
environmentConfig?: Record<string, unknown>;
|
|
48
|
+
moduleRef?: {
|
|
49
|
+
export: string;
|
|
50
|
+
args?: unknown[];
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Reference to a colony configurator module for cloud deployment.
|
|
55
|
+
* Instead of passing a closure (which can't be serialized), pass a reference
|
|
56
|
+
* to a module file, its exported function name, and optional arguments.
|
|
57
|
+
*
|
|
58
|
+
* For local host: the module is dynamically imported and called.
|
|
59
|
+
* For cloud host: the module is bundled via esbuild and shipped to the zone.
|
|
60
|
+
*/
|
|
61
|
+
export interface ColonyModuleRef {
|
|
62
|
+
/** Path to the module file (relative to cwd or absolute) */
|
|
63
|
+
module: string;
|
|
64
|
+
/** Name of the exported configurator function */
|
|
65
|
+
export: string;
|
|
66
|
+
/** Arguments to pass to the configurator function */
|
|
67
|
+
args?: unknown[];
|
|
37
68
|
}
|
|
38
69
|
export interface DeployResult {
|
|
39
70
|
projectId: string;
|
|
@@ -83,16 +114,25 @@ export interface ColonyStatus {
|
|
|
83
114
|
}
|
|
84
115
|
export interface ApiKey {
|
|
85
116
|
id: string;
|
|
117
|
+
accountId: string;
|
|
86
118
|
prefix: string;
|
|
87
|
-
|
|
119
|
+
scopes: string[];
|
|
120
|
+
projectIds?: string[];
|
|
88
121
|
createdAt: string;
|
|
89
122
|
lastUsedAt?: string;
|
|
123
|
+
expiresAt?: string;
|
|
90
124
|
}
|
|
91
125
|
export interface CreateApiKeyResponse {
|
|
92
126
|
id: string;
|
|
93
127
|
key: string;
|
|
94
128
|
prefix: string;
|
|
95
129
|
}
|
|
130
|
+
export interface BundleUploadInfo {
|
|
131
|
+
/** Presigned S3 PUT URL for uploading the bundle */
|
|
132
|
+
url: string;
|
|
133
|
+
/** S3 key where the bundle will be stored */
|
|
134
|
+
s3Key: string;
|
|
135
|
+
}
|
|
96
136
|
export interface ApiError {
|
|
97
137
|
code: string;
|
|
98
138
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cloud/types.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/cloud/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { ColonyBuilder } from './builder.js';
|
|
2
2
|
import type { Environment, ColonyDefinition, Host } from '../core/types.js';
|
|
3
|
+
import type { ColonyModuleRef } from '../cloud/types.js';
|
|
3
4
|
type ColonyConfigurator = (builder: ColonyBuilder) => ColonyBuilder;
|
|
5
|
+
interface ColonyEntry {
|
|
6
|
+
name: string;
|
|
7
|
+
configurator?: ColonyConfigurator;
|
|
8
|
+
moduleRef?: ColonyModuleRef;
|
|
9
|
+
}
|
|
4
10
|
export declare class MandibleBuilder {
|
|
5
11
|
private _name;
|
|
6
12
|
private _env?;
|
|
@@ -14,8 +20,21 @@ export declare class MandibleBuilder {
|
|
|
14
20
|
* If not specified, defaults to LocalHost (runs in current process).
|
|
15
21
|
*/
|
|
16
22
|
host(host: Host): this;
|
|
17
|
-
/**
|
|
18
|
-
|
|
23
|
+
/**
|
|
24
|
+
* Add a colony.
|
|
25
|
+
*
|
|
26
|
+
* Accepts either a configurator closure (for local usage) or a module
|
|
27
|
+
* reference (for cloud deployment where closures can't be serialized).
|
|
28
|
+
*
|
|
29
|
+
* @example Closure (local host):
|
|
30
|
+
* .colony('scout', c => c.sense('task:ready').do('work', handler))
|
|
31
|
+
*
|
|
32
|
+
* @example Module ref (cloud host):
|
|
33
|
+
* .colony('scout', { module: './scout.js', export: 'configureScout', args: [repoRoot] })
|
|
34
|
+
*/
|
|
35
|
+
colony(name: string, configure: ColonyConfigurator | ColonyModuleRef): this;
|
|
36
|
+
/** Get the raw colony entries (used by CloudHost for bundling) */
|
|
37
|
+
get colonyEntries(): ReadonlyArray<Readonly<ColonyEntry>>;
|
|
19
38
|
/**
|
|
20
39
|
* Start colonies on the configured host.
|
|
21
40
|
* What "start" means depends on the host:
|
|
@@ -32,7 +51,7 @@ export declare class MandibleBuilder {
|
|
|
32
51
|
* Build colony definitions without starting anything.
|
|
33
52
|
* Useful for testing or custom orchestration.
|
|
34
53
|
*/
|
|
35
|
-
build(env?: Environment): ColonyDefinition[]
|
|
54
|
+
build(env?: Environment): Promise<ColonyDefinition[]>;
|
|
36
55
|
private buildDefinitions;
|
|
37
56
|
private resolveHost;
|
|
38
57
|
private requireEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandible.d.ts","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mandible.d.ts","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"AA6CA,OAAO,EAAE,aAAa,EAA2B,MAAM,cAAc,CAAC;AACtE,OAAO,KAAK,EACV,WAAW,EAAE,gBAAgB,EAC7B,IAAI,EACL,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,KAAK,kBAAkB,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,CAAC;AAEpE,UAAU,WAAW;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAcD,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,IAAI,CAAC,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAC,CAAO;IACrB,OAAO,CAAC,SAAS,CAAqB;gBAE1B,IAAI,EAAE,MAAM;IAIxB,gEAAgE;IAChE,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAKnC;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAKtB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,GAAG,eAAe,GAAG,IAAI;IAS3E,kEAAkE;IAClE,IAAI,aAAa,IAAI,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAExD;IAED;;;;;;;;;;OAUG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5B;;;OAGG;IACG,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAU7C,gBAAgB;YAgBhB,WAAW;IAOzB,OAAO,CAAC,UAAU;CAQnB;AAuBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAEtD"}
|
package/dist/src/dsl/mandible.js
CHANGED
|
@@ -31,7 +31,11 @@
|
|
|
31
31
|
// const host = await mandible('review')
|
|
32
32
|
// .environment(env) // same environment, real signal substrate
|
|
33
33
|
// .host(cloud({ apiKey: CLOUD_KEY })) // colonies run in Edera microVMs
|
|
34
|
-
// .colony('
|
|
34
|
+
// .colony('scout', {
|
|
35
|
+
// module: './scout.js',
|
|
36
|
+
// export: 'configureScout',
|
|
37
|
+
// args: [TARGET_REPO],
|
|
38
|
+
// })
|
|
35
39
|
// .start();
|
|
36
40
|
//
|
|
37
41
|
// // Dashboard is opt-in after start:
|
|
@@ -39,6 +43,15 @@
|
|
|
39
43
|
//
|
|
40
44
|
// ============================================================
|
|
41
45
|
import { colony as colonyBuilder } from './builder.js';
|
|
46
|
+
/** Check if a value is a ColonyModuleRef (has module + export fields) */
|
|
47
|
+
function isModuleRef(value) {
|
|
48
|
+
return (typeof value === 'object' &&
|
|
49
|
+
value !== null &&
|
|
50
|
+
'module' in value &&
|
|
51
|
+
'export' in value &&
|
|
52
|
+
typeof value.module === 'string' &&
|
|
53
|
+
typeof value.export === 'string');
|
|
54
|
+
}
|
|
42
55
|
export class MandibleBuilder {
|
|
43
56
|
_name;
|
|
44
57
|
_env;
|
|
@@ -60,11 +73,31 @@ export class MandibleBuilder {
|
|
|
60
73
|
this._host = host;
|
|
61
74
|
return this;
|
|
62
75
|
}
|
|
63
|
-
/**
|
|
76
|
+
/**
|
|
77
|
+
* Add a colony.
|
|
78
|
+
*
|
|
79
|
+
* Accepts either a configurator closure (for local usage) or a module
|
|
80
|
+
* reference (for cloud deployment where closures can't be serialized).
|
|
81
|
+
*
|
|
82
|
+
* @example Closure (local host):
|
|
83
|
+
* .colony('scout', c => c.sense('task:ready').do('work', handler))
|
|
84
|
+
*
|
|
85
|
+
* @example Module ref (cloud host):
|
|
86
|
+
* .colony('scout', { module: './scout.js', export: 'configureScout', args: [repoRoot] })
|
|
87
|
+
*/
|
|
64
88
|
colony(name, configure) {
|
|
65
|
-
|
|
89
|
+
if (isModuleRef(configure)) {
|
|
90
|
+
this._colonies.push({ name, moduleRef: configure });
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
this._colonies.push({ name, configurator: configure });
|
|
94
|
+
}
|
|
66
95
|
return this;
|
|
67
96
|
}
|
|
97
|
+
/** Get the raw colony entries (used by CloudHost for bundling) */
|
|
98
|
+
get colonyEntries() {
|
|
99
|
+
return this._colonies;
|
|
100
|
+
}
|
|
68
101
|
/**
|
|
69
102
|
* Start colonies on the configured host.
|
|
70
103
|
* What "start" means depends on the host:
|
|
@@ -79,7 +112,11 @@ export class MandibleBuilder {
|
|
|
79
112
|
async start() {
|
|
80
113
|
const env = this.requireEnv();
|
|
81
114
|
const host = await this.resolveHost();
|
|
82
|
-
const definitions = this.buildDefinitions(env);
|
|
115
|
+
const definitions = await this.buildDefinitions(env);
|
|
116
|
+
// Pass colony entries to the host if it supports module refs (CloudHost)
|
|
117
|
+
if ('setColonyEntries' in host && typeof host.setColonyEntries === 'function') {
|
|
118
|
+
host.setColonyEntries(this._colonies);
|
|
119
|
+
}
|
|
83
120
|
await host.start(definitions);
|
|
84
121
|
return host;
|
|
85
122
|
}
|
|
@@ -87,18 +124,28 @@ export class MandibleBuilder {
|
|
|
87
124
|
* Build colony definitions without starting anything.
|
|
88
125
|
* Useful for testing or custom orchestration.
|
|
89
126
|
*/
|
|
90
|
-
build(env) {
|
|
127
|
+
async build(env) {
|
|
91
128
|
const targetEnv = env ?? this._env;
|
|
92
129
|
if (!targetEnv) {
|
|
93
130
|
throw new Error(`"${this._name}" requires an environment. Call .environment(env) or pass one to .build(env).`);
|
|
94
131
|
}
|
|
95
132
|
return this.buildDefinitions(targetEnv);
|
|
96
133
|
}
|
|
97
|
-
buildDefinitions(env) {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
134
|
+
async buildDefinitions(env) {
|
|
135
|
+
const results = [];
|
|
136
|
+
for (const entry of this._colonies) {
|
|
137
|
+
if (entry.configurator) {
|
|
138
|
+
const builder = entry.configurator(colonyBuilder(entry.name));
|
|
139
|
+
results.push(builder.in(env).build());
|
|
140
|
+
}
|
|
141
|
+
else if (entry.moduleRef) {
|
|
142
|
+
// For module refs, resolve via dynamic import (works for local host)
|
|
143
|
+
const configurator = await resolveModuleRef(entry.moduleRef);
|
|
144
|
+
const builder = configurator(colonyBuilder(entry.name));
|
|
145
|
+
results.push(builder.in(env).build());
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return results;
|
|
102
149
|
}
|
|
103
150
|
async resolveHost() {
|
|
104
151
|
if (this._host)
|
|
@@ -114,6 +161,22 @@ export class MandibleBuilder {
|
|
|
114
161
|
return this._env;
|
|
115
162
|
}
|
|
116
163
|
}
|
|
164
|
+
/**
|
|
165
|
+
* Resolve a ColonyModuleRef to a live configurator function via dynamic import.
|
|
166
|
+
* Used by LocalHost to run module-ref-based colonies locally.
|
|
167
|
+
*/
|
|
168
|
+
async function resolveModuleRef(ref) {
|
|
169
|
+
const mod = await import(ref.module);
|
|
170
|
+
const fn = mod[ref.export];
|
|
171
|
+
if (typeof fn !== 'function') {
|
|
172
|
+
throw new Error(`Module "${ref.module}" does not export a function named "${ref.export}"`);
|
|
173
|
+
}
|
|
174
|
+
const result = fn(...(ref.args ?? []));
|
|
175
|
+
if (typeof result !== 'function') {
|
|
176
|
+
throw new Error(`"${ref.export}" from "${ref.module}" must return a configurator function (builder => builder), got ${typeof result}`);
|
|
177
|
+
}
|
|
178
|
+
return result;
|
|
179
|
+
}
|
|
117
180
|
/**
|
|
118
181
|
* Entry point for the mandible DSL.
|
|
119
182
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandible.js","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,4CAA4C;AAC5C,+DAA+D;AAC/D,uBAAuB;AACvB,kEAAkE;AAClE,mEAAmE;AACnE,EAAE;AACF,SAAS;AACT,EAAE;AACF,oFAAoF;AACpF,EAAE;AACF,kEAAkE;AAClE,EAAE;AACF,+CAA+C;AAC/C,wBAAwB;AACxB,sEAAsE;AACtE,+BAA+B;AAC/B,kDAAkD;AAClD,qDAAqD;AACrD,wBAAwB;AACxB,QAAQ;AACR,+BAA+B;AAC/B,uDAAuD;AACvD,sDAAsD;AACtD,QAAQ;AACR,gBAAgB;AAChB,EAAE;AACF,kDAAkD;AAClD,gDAAgD;AAChD,EAAE;AACF,0CAA0C;AAC1C,kFAAkF;AAClF,4EAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"mandible.js","sourceRoot":"","sources":["../../../src/dsl/mandible.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED