@viberlabs/orchestrator 2.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.
Files changed (59) hide show
  1. package/LICENSE.md +25 -0
  2. package/README.md +170 -0
  3. package/dist/core/src/db/index.d.ts +295 -0
  4. package/dist/core/src/db/index.d.ts.map +1 -0
  5. package/dist/core/src/db/index.js +1114 -0
  6. package/dist/core/src/db/index.js.map +1 -0
  7. package/dist/core/src/engine/index.d.ts +38 -0
  8. package/dist/core/src/engine/index.d.ts.map +1 -0
  9. package/dist/core/src/engine/index.js +117 -0
  10. package/dist/core/src/engine/index.js.map +1 -0
  11. package/dist/core/src/engine/sentry.d.ts +36 -0
  12. package/dist/core/src/engine/sentry.d.ts.map +1 -0
  13. package/dist/core/src/engine/sentry.js +131 -0
  14. package/dist/core/src/engine/sentry.js.map +1 -0
  15. package/dist/core/src/protocol/index.d.ts +140 -0
  16. package/dist/core/src/protocol/index.d.ts.map +1 -0
  17. package/dist/core/src/protocol/index.js +7 -0
  18. package/dist/core/src/protocol/index.js.map +1 -0
  19. package/dist/index.d.ts +8 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +15 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/opencode/src/index.d.ts +56 -0
  24. package/dist/opencode/src/index.d.ts.map +1 -0
  25. package/dist/opencode/src/index.js +322 -0
  26. package/dist/opencode/src/index.js.map +1 -0
  27. package/dist/orca/index.d.ts +137 -0
  28. package/dist/orca/index.d.ts.map +1 -0
  29. package/dist/orca/index.js +215 -0
  30. package/dist/orca/index.js.map +1 -0
  31. package/dist/orchestrator/src/daemon.d.ts +66 -0
  32. package/dist/orchestrator/src/daemon.d.ts.map +1 -0
  33. package/dist/orchestrator/src/daemon.js +523 -0
  34. package/dist/orchestrator/src/daemon.js.map +1 -0
  35. package/dist/orchestrator/src/index.d.ts +8 -0
  36. package/dist/orchestrator/src/index.d.ts.map +1 -0
  37. package/dist/orchestrator/src/index.js +15 -0
  38. package/dist/orchestrator/src/index.js.map +1 -0
  39. package/dist/orchestrator/src/orca/index.d.ts +137 -0
  40. package/dist/orchestrator/src/orca/index.d.ts.map +1 -0
  41. package/dist/orchestrator/src/orca/index.js +215 -0
  42. package/dist/orchestrator/src/orca/index.js.map +1 -0
  43. package/dist/orchestrator/src/pool/index.d.ts +51 -0
  44. package/dist/orchestrator/src/pool/index.d.ts.map +1 -0
  45. package/dist/orchestrator/src/pool/index.js +152 -0
  46. package/dist/orchestrator/src/pool/index.js.map +1 -0
  47. package/dist/orchestrator/src/workflow/index.d.ts +65 -0
  48. package/dist/orchestrator/src/workflow/index.d.ts.map +1 -0
  49. package/dist/orchestrator/src/workflow/index.js +148 -0
  50. package/dist/orchestrator/src/workflow/index.js.map +1 -0
  51. package/dist/pool/index.d.ts +51 -0
  52. package/dist/pool/index.d.ts.map +1 -0
  53. package/dist/pool/index.js +152 -0
  54. package/dist/pool/index.js.map +1 -0
  55. package/dist/workflow/index.d.ts +65 -0
  56. package/dist/workflow/index.d.ts.map +1 -0
  57. package/dist/workflow/index.js +148 -0
  58. package/dist/workflow/index.js.map +1 -0
  59. package/package.json +65 -0
@@ -0,0 +1,523 @@
1
+ "use strict";
2
+ /**
3
+ * DOCUMENT: ORCA Daemon (MVP)
4
+ * PROJECT: VIBER Universal v2
5
+ * PURPOSE: Always-on daemon that processes pending agents from SQLite and spawns OpenCode sessions.
6
+ * UPDATE PATTERN: Update when queue contract or OpenCode endpoints change.
7
+ * LOCATION: packages/orchestrator/src/daemon.ts
8
+ * RELATED: packages/core/src/db/index.ts, packages/opencode-plugin/src/index.ts
9
+ * LAST UPDATED: 2026-03-11
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.OpenCodeHttpError = void 0;
49
+ exports.createDeterministicOpenCodeClient = createDeterministicOpenCodeClient;
50
+ exports.processPendingAgentsOnce = processPendingAgentsOnce;
51
+ exports.loadOrcaDaemonConfigFromDiskAndEnv = loadOrcaDaemonConfigFromDiskAndEnv;
52
+ exports.runOrcaDaemon = runOrcaDaemon;
53
+ const fs_1 = __importDefault(require("fs"));
54
+ const path_1 = __importDefault(require("path"));
55
+ const http = __importStar(require("node:http"));
56
+ const https = __importStar(require("node:https"));
57
+ const db_1 = require("@viberlabs/viber-core/db");
58
+ class OpenCodeHttpError extends Error {
59
+ status;
60
+ url;
61
+ constructor(args) {
62
+ super(args.message);
63
+ this.name = "OpenCodeHttpError";
64
+ this.status = args.status;
65
+ this.url = args.url;
66
+ }
67
+ }
68
+ exports.OpenCodeHttpError = OpenCodeHttpError;
69
+ function defaultLogger(line) {
70
+ // eslint-disable-next-line no-console
71
+ console.log(line);
72
+ }
73
+ function formatTransitionLog(args) {
74
+ const sessionPart = args.opencodeSessionId ? ` session=${args.opencodeSessionId}` : "";
75
+ const errorPart = args.error ? ` error=${JSON.stringify(args.error)}` : "";
76
+ return `[ORCA] agent=${args.agentId} ${args.from}->${args.to}${sessionPart}${errorPart}`;
77
+ }
78
+ function isTransientOpenCodeFailure(err) {
79
+ if (err instanceof OpenCodeHttpError) {
80
+ if (err.status === 401 || err.status === 403)
81
+ return false;
82
+ return err.status === 0 || err.status >= 500;
83
+ }
84
+ const msg = err instanceof Error ? err.message : String(err);
85
+ return (msg.includes("ECONNREFUSED") ||
86
+ msg.includes("ENOTFOUND") ||
87
+ msg.toLowerCase().includes("timeout"));
88
+ }
89
+ function getBasicAuthHeader(username, password) {
90
+ return `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`;
91
+ }
92
+ function normalizeAgentRole(role) {
93
+ if (role === "planner" || role === "coder" || role === "reviewer" || role === "tester") {
94
+ return role;
95
+ }
96
+ return "planner";
97
+ }
98
+ function resolveDefaultRole(task) {
99
+ if (!task.metadata)
100
+ return "planner";
101
+ try {
102
+ const parsed = JSON.parse(task.metadata);
103
+ if (typeof parsed.defaultRole === "string") {
104
+ return normalizeAgentRole(parsed.defaultRole);
105
+ }
106
+ }
107
+ catch {
108
+ // ignore invalid metadata
109
+ }
110
+ return "planner";
111
+ }
112
+ async function scheduleEligibleTaskOnce(args) {
113
+ if (process.env["VIBER_ORCA_SCHEDULER"] !== "1")
114
+ return false;
115
+ const allowSlope = process.env["VIBER_ORCA_SCHEDULER_ALLOW_SLOPE"] === "1";
116
+ const candidates = await args.db.getEligibleTasksForScheduling({
117
+ projectId: "default",
118
+ allowSlope,
119
+ });
120
+ for (const task of candidates) {
121
+ const hasAgents = await args.db.taskHasAgents(task.id);
122
+ if (hasAgents)
123
+ continue;
124
+ const role = resolveDefaultRole(task);
125
+ const agent = {
126
+ id: `agent-${task.id}-${Date.now()}`,
127
+ taskId: task.id,
128
+ role,
129
+ status: "pending",
130
+ provider: "opencode",
131
+ };
132
+ await args.db.createAgent(agent);
133
+ await args.db.updateTask(task.id, { status: "executing" });
134
+ args.logger?.(`[ORCA] scheduler queued agent=${agent.id} task=${task.id} role=${role}`);
135
+ return true;
136
+ }
137
+ return false;
138
+ }
139
+ async function httpRequestJson(args) {
140
+ return await new Promise((resolve, reject) => {
141
+ const target = new URL(args.url);
142
+ const lib = target.protocol === "https:" ? https : http;
143
+ const timeoutMs = args.timeoutMs ?? 8000;
144
+ const req = lib.request({
145
+ protocol: target.protocol,
146
+ hostname: target.hostname,
147
+ port: target.port,
148
+ path: `${target.pathname}${target.search}`,
149
+ method: args.method,
150
+ headers: {
151
+ "content-type": "application/json",
152
+ ...(args.headers ?? {}),
153
+ },
154
+ }, (res) => {
155
+ const chunks = [];
156
+ res.on("data", (d) => chunks.push(Buffer.isBuffer(d) ? d : Buffer.from(d)));
157
+ res.on("end", () => {
158
+ const raw = Buffer.concat(chunks).toString("utf-8");
159
+ let parsed = null;
160
+ try {
161
+ parsed = raw.length > 0 ? JSON.parse(raw) : null;
162
+ }
163
+ catch {
164
+ parsed = raw.length > 0 ? { raw } : null;
165
+ }
166
+ const status = res.statusCode ?? 0;
167
+ resolve({ ok: status >= 200 && status < 300, status, json: parsed });
168
+ });
169
+ });
170
+ req.on("error", (err) => reject(err));
171
+ req.setTimeout(timeoutMs, () => {
172
+ req.destroy(new Error(`Request timeout after ${timeoutMs}ms`));
173
+ });
174
+ if (args.body !== undefined) {
175
+ req.write(JSON.stringify(args.body));
176
+ }
177
+ req.end();
178
+ });
179
+ }
180
+ function createDeterministicOpenCodeClient(config) {
181
+ const baseUrl = config.baseUrl.replace(/\/$/, "");
182
+ const authHeader = getBasicAuthHeader(config.username, config.password);
183
+ return {
184
+ async createSession(args) {
185
+ const url = `${baseUrl}/session`;
186
+ const res = await httpRequestJson({
187
+ url,
188
+ method: "POST",
189
+ headers: { authorization: authHeader },
190
+ body: { title: args.title, parentID: args.parentID },
191
+ timeoutMs: 8000,
192
+ });
193
+ if (res.status === 401 || res.status === 403) {
194
+ throw new OpenCodeHttpError({
195
+ status: res.status,
196
+ url,
197
+ message: "OpenCode unauthorized: bad OPENCODE_SERVER_PASSWORD or auth file",
198
+ });
199
+ }
200
+ if (!res.ok) {
201
+ throw new OpenCodeHttpError({
202
+ status: res.status,
203
+ url,
204
+ message: `OpenCode create session failed (${res.status})`,
205
+ });
206
+ }
207
+ const json = res.json;
208
+ if (!json || typeof json.id !== "string") {
209
+ throw new Error("OpenCode create session: unexpected response");
210
+ }
211
+ return { id: json.id };
212
+ },
213
+ async promptAsync(args) {
214
+ const url = `${baseUrl}/session/${encodeURIComponent(args.sessionId)}/prompt_async`;
215
+ const res = await httpRequestJson({
216
+ url,
217
+ method: "POST",
218
+ headers: { authorization: authHeader },
219
+ body: { agent: args.agent, parts: args.parts },
220
+ timeoutMs: 8000,
221
+ });
222
+ if (res.status === 401 || res.status === 403) {
223
+ throw new OpenCodeHttpError({
224
+ status: res.status,
225
+ url,
226
+ message: "OpenCode unauthorized: bad OPENCODE_SERVER_PASSWORD or auth file",
227
+ });
228
+ }
229
+ // prompt_async returns 204 No Content on success.
230
+ if (!res.ok) {
231
+ throw new OpenCodeHttpError({
232
+ status: res.status,
233
+ url,
234
+ message: `OpenCode prompt_async failed (${res.status})`,
235
+ });
236
+ }
237
+ },
238
+ };
239
+ }
240
+ async function processPendingAgentsOnce(args) {
241
+ const logger = args.logger ?? defaultLogger;
242
+ const pending = await args.db.getAgents({ status: "pending" });
243
+ if (pending.length === 0)
244
+ return { processed: 0, skipped: 0 };
245
+ // FIFO by startedAt.
246
+ const queue = [...pending].sort((a, b) => {
247
+ if (a.startedAt === b.startedAt)
248
+ return a.id < b.id ? -1 : 1;
249
+ return a.startedAt < b.startedAt ? -1 : 1;
250
+ });
251
+ const agent = queue[0];
252
+ if (!agent)
253
+ return { processed: 0, skipped: 0 };
254
+ const task = await args.db.getTask(agent.taskId);
255
+ if (!task) {
256
+ const from = agent.status;
257
+ await args.db.updateAgent(agent.id, {
258
+ status: "failed",
259
+ error: `ORCA: task not found (${agent.taskId})`,
260
+ });
261
+ logger(formatTransitionLog({
262
+ agentId: agent.id,
263
+ from,
264
+ to: "failed",
265
+ opencodeSessionId: agent.opencodeSessionId ?? null,
266
+ error: `ORCA: task not found (${agent.taskId})`,
267
+ }));
268
+ return { processed: 1, skipped: 0 };
269
+ }
270
+ try {
271
+ const from = agent.status;
272
+ await args.db.updateAgent(agent.id, {
273
+ status: "spawned",
274
+ provider: agent.provider ?? "opencode",
275
+ });
276
+ logger(formatTransitionLog({
277
+ agentId: agent.id,
278
+ from,
279
+ to: "spawned",
280
+ opencodeSessionId: agent.opencodeSessionId ?? null,
281
+ error: null,
282
+ }));
283
+ const sessionId = agent.opencodeSessionId && agent.opencodeSessionId.length > 0
284
+ ? agent.opencodeSessionId
285
+ : (await args.client.createSession({
286
+ title: `VIBER ORCA: ${agent.role} - ${task.title}`,
287
+ })).id;
288
+ if (sessionId !== agent.opencodeSessionId) {
289
+ await args.db.updateAgent(agent.id, {
290
+ opencodeSessionId: sessionId,
291
+ });
292
+ }
293
+ const promptText = `You are the ${agent.role} agent for task ${task.id}.
294
+
295
+ ${task.description}`;
296
+ await args.client.promptAsync({
297
+ sessionId,
298
+ agent: agent.role,
299
+ parts: [{ type: "text", text: promptText }],
300
+ });
301
+ const from2 = "spawned";
302
+ await args.db.updateAgent(agent.id, {
303
+ status: "working",
304
+ error: null,
305
+ });
306
+ logger(formatTransitionLog({
307
+ agentId: agent.id,
308
+ from: from2,
309
+ to: "working",
310
+ opencodeSessionId: sessionId,
311
+ error: null,
312
+ }));
313
+ return { processed: 1, skipped: 0 };
314
+ }
315
+ catch (error) {
316
+ const err = error;
317
+ const msg = err instanceof OpenCodeHttpError
318
+ ? `ORCA OpenCode error: ${err.message} (status=${err.status}, url=${err.url})`
319
+ : `ORCA error: ${err.message}`;
320
+ const from = "spawned";
321
+ const transient = isTransientOpenCodeFailure(error);
322
+ const to = transient ? "pending" : "failed";
323
+ await args.db.updateAgent(agent.id, {
324
+ status: to,
325
+ error: msg,
326
+ });
327
+ logger(formatTransitionLog({
328
+ agentId: agent.id,
329
+ from,
330
+ to,
331
+ opencodeSessionId: agent.opencodeSessionId ?? null,
332
+ error: msg,
333
+ }));
334
+ // Signal the daemon loop to apply backoff / fail-fast.
335
+ if (error instanceof OpenCodeHttpError && (error.status === 401 || error.status === 403)) {
336
+ throw error;
337
+ }
338
+ if (transient)
339
+ throw error;
340
+ return { processed: 1, skipped: 0 };
341
+ }
342
+ }
343
+ function loadOrcaDaemonConfigFromDiskAndEnv(args) {
344
+ const rootDir = args.rootDir;
345
+ const intervalMsRaw = args.intervalMs ?? Number(process.env["VIBER_ORCA_INTERVAL_MS"] ?? "2000");
346
+ const intervalMs = Number.isFinite(intervalMsRaw) && intervalMsRaw >= 250 ? intervalMsRaw : 2000;
347
+ const authPath = path_1.default.join(rootDir, ".viber", "opencode-auth.json");
348
+ let fileAuth = null;
349
+ if (fs_1.default.existsSync(authPath)) {
350
+ try {
351
+ fileAuth = JSON.parse(fs_1.default.readFileSync(authPath, "utf-8"));
352
+ }
353
+ catch {
354
+ fileAuth = null;
355
+ }
356
+ }
357
+ const password = (typeof process.env["OPENCODE_SERVER_PASSWORD"] === "string" &&
358
+ process.env["OPENCODE_SERVER_PASSWORD"].length > 0
359
+ ? process.env["OPENCODE_SERVER_PASSWORD"]
360
+ : typeof fileAuth?.password === "string" && fileAuth.password.length > 0
361
+ ? fileAuth.password
362
+ : "");
363
+ if (!password) {
364
+ throw new Error("Missing OpenCode password. Set OPENCODE_SERVER_PASSWORD or write .viber/opencode-auth.json");
365
+ }
366
+ const username = (typeof process.env["OPENCODE_SERVER_USERNAME"] === "string" &&
367
+ process.env["OPENCODE_SERVER_USERNAME"].length > 0
368
+ ? process.env["OPENCODE_SERVER_USERNAME"]
369
+ : typeof fileAuth?.username === "string" && fileAuth.username.length > 0
370
+ ? fileAuth.username
371
+ : "opencode");
372
+ const envBaseUrl = process.env["OPENCODE_BASE_URL"];
373
+ const fileBaseUrl = typeof fileAuth?.baseUrl === "string" ? fileAuth.baseUrl : undefined;
374
+ const baseUrlFromEnvOrFile = typeof envBaseUrl === "string" && envBaseUrl.length > 0
375
+ ? envBaseUrl
376
+ : typeof fileBaseUrl === "string" && fileBaseUrl.length > 0
377
+ ? fileBaseUrl
378
+ : "";
379
+ const portRaw = typeof process.env["OPENCODE_SERVER_PORT"] === "string"
380
+ ? Number(process.env["OPENCODE_SERVER_PORT"])
381
+ : typeof fileAuth?.port === "number"
382
+ ? fileAuth.port
383
+ : 4096;
384
+ const port = Number.isFinite(portRaw) && portRaw > 0 ? portRaw : 4096;
385
+ const baseUrl = baseUrlFromEnvOrFile.length > 0
386
+ ? baseUrlFromEnvOrFile
387
+ : `http://127.0.0.1:${port}`;
388
+ return {
389
+ rootDir,
390
+ intervalMs,
391
+ opencode: { baseUrl, username, password },
392
+ };
393
+ }
394
+ function parseArgs(argv) {
395
+ let rootDir = process.cwd();
396
+ let intervalMs;
397
+ for (let i = 0; i < argv.length; i += 1) {
398
+ const a = argv[i];
399
+ if (!a)
400
+ continue;
401
+ if (a.startsWith("--rootDir=")) {
402
+ rootDir = a.slice("--rootDir=".length);
403
+ continue;
404
+ }
405
+ if (a === "--rootDir") {
406
+ const v = argv[i + 1];
407
+ if (typeof v === "string" && v.length > 0) {
408
+ rootDir = v;
409
+ i += 1;
410
+ }
411
+ continue;
412
+ }
413
+ if (a.startsWith("--intervalMs=")) {
414
+ intervalMs = Number(a.slice("--intervalMs=".length));
415
+ continue;
416
+ }
417
+ if (a === "--intervalMs") {
418
+ const v = argv[i + 1];
419
+ if (typeof v === "string" && v.length > 0) {
420
+ intervalMs = Number(v);
421
+ i += 1;
422
+ }
423
+ continue;
424
+ }
425
+ }
426
+ return { rootDir, intervalMs };
427
+ }
428
+ async function runOrcaDaemon(config) {
429
+ const dbPath = path_1.default.join(config.rootDir, ".viber", "state.db");
430
+ const db = new db_1.ViberDatabase(dbPath);
431
+ await db.initialize();
432
+ const client = createDeterministicOpenCodeClient(config.opencode);
433
+ const logger = defaultLogger;
434
+ logger(`[ORCA] running. rootDir=${config.rootDir} intervalMs=${config.intervalMs} baseUrl=${config.opencode.baseUrl}`);
435
+ let stopped = false;
436
+ let running = false;
437
+ let backoffMs = 0;
438
+ let timer = null;
439
+ const schedule = (delayMs) => {
440
+ if (stopped)
441
+ return;
442
+ if (timer)
443
+ clearTimeout(timer);
444
+ timer = setTimeout(() => {
445
+ void tick();
446
+ }, delayMs);
447
+ };
448
+ const applyBackoff = () => {
449
+ const base = config.intervalMs;
450
+ const next = backoffMs > 0 ? Math.min(backoffMs * 2, 30000) : Math.min(base, 30000);
451
+ backoffMs = next;
452
+ return next;
453
+ };
454
+ const resetBackoff = () => {
455
+ backoffMs = 0;
456
+ };
457
+ const tick = async () => {
458
+ if (stopped || running)
459
+ return;
460
+ running = true;
461
+ try {
462
+ const scheduled = await scheduleEligibleTaskOnce({
463
+ db,
464
+ rootDir: config.rootDir,
465
+ logger,
466
+ });
467
+ const { processed } = await processPendingAgentsOnce({
468
+ db,
469
+ client,
470
+ rootDir: config.rootDir,
471
+ logger,
472
+ });
473
+ resetBackoff();
474
+ schedule(processed > 0 || scheduled ? 0 : config.intervalMs);
475
+ }
476
+ catch (error) {
477
+ if (error instanceof OpenCodeHttpError && (error.status === 401 || error.status === 403)) {
478
+ logger(`[ORCA] fatal auth error: ${error.message} (status=${error.status}, url=${error.url})`);
479
+ shutdown("AUTH");
480
+ return;
481
+ }
482
+ const msg = error instanceof Error ? error.message : String(error);
483
+ logger(`[ORCA] backoff: ${msg}`);
484
+ const wait = applyBackoff();
485
+ schedule(wait);
486
+ }
487
+ finally {
488
+ running = false;
489
+ }
490
+ };
491
+ const shutdown = (signal) => {
492
+ if (stopped)
493
+ return;
494
+ stopped = true;
495
+ if (timer)
496
+ clearTimeout(timer);
497
+ timer = null;
498
+ logger(`[ORCA] shutdown requested (${signal})`);
499
+ db.close();
500
+ };
501
+ process.once("SIGINT", () => shutdown("SIGINT"));
502
+ process.once("SIGTERM", () => shutdown("SIGTERM"));
503
+ schedule(0);
504
+ await new Promise((resolve) => {
505
+ const check = () => {
506
+ if (stopped)
507
+ return resolve();
508
+ setTimeout(check, 50);
509
+ };
510
+ check();
511
+ });
512
+ }
513
+ // CLI entry
514
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
515
+ if (require.main === module) {
516
+ const parsed = parseArgs(process.argv.slice(2));
517
+ const config = loadOrcaDaemonConfigFromDiskAndEnv({
518
+ rootDir: parsed.rootDir,
519
+ intervalMs: parsed.intervalMs,
520
+ });
521
+ void runOrcaDaemon(config);
522
+ }
523
+ //# sourceMappingURL=daemon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon.js","sourceRoot":"","sources":["../../../src/daemon.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @viberlabs/orchestrator
3
+ * Agent orchestration layer for VIBER
4
+ */
5
+ export { Orca, orcaMachine, type OrcaContext, type OrcaEvent, type OrcaState } from "./orca";
6
+ export { AgentPool, type PoolConfig } from "./pool";
7
+ export { WorkflowExecutor, type WorkflowResult, type WorkflowStepResult } from "./workflow";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,KAAK,cAAc,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * @viberlabs/orchestrator
4
+ * Agent orchestration layer for VIBER
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.WorkflowExecutor = exports.AgentPool = exports.orcaMachine = exports.Orca = void 0;
8
+ var orca_1 = require("./orca");
9
+ Object.defineProperty(exports, "Orca", { enumerable: true, get: function () { return orca_1.Orca; } });
10
+ Object.defineProperty(exports, "orcaMachine", { enumerable: true, get: function () { return orca_1.orcaMachine; } });
11
+ var pool_1 = require("./pool");
12
+ Object.defineProperty(exports, "AgentPool", { enumerable: true, get: function () { return pool_1.AgentPool; } });
13
+ var workflow_1 = require("./workflow");
14
+ Object.defineProperty(exports, "WorkflowExecutor", { enumerable: true, get: function () { return workflow_1.WorkflowExecutor; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+BAA6F;AAApF,4FAAA,IAAI,OAAA;AAAE,mGAAA,WAAW,OAAA;AAC1B,+BAAoD;AAA3C,iGAAA,SAAS,OAAA;AAClB,uCAA4F;AAAnF,4GAAA,gBAAgB,OAAA"}