@openrig/cli 0.1.5 → 0.1.7

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 (151) hide show
  1. package/daemon/dist/adapters/claude-resume.js +1 -1
  2. package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -1
  3. package/daemon/dist/adapters/cmux-transport.js +40 -3
  4. package/daemon/dist/adapters/cmux-transport.js.map +1 -1
  5. package/daemon/dist/adapters/cmux.d.ts +4 -2
  6. package/daemon/dist/adapters/cmux.d.ts.map +1 -1
  7. package/daemon/dist/adapters/cmux.js +90 -11
  8. package/daemon/dist/adapters/cmux.js.map +1 -1
  9. package/daemon/dist/adapters/compose-services-adapter.d.ts +73 -0
  10. package/daemon/dist/adapters/compose-services-adapter.d.ts.map +1 -0
  11. package/daemon/dist/adapters/compose-services-adapter.js +195 -0
  12. package/daemon/dist/adapters/compose-services-adapter.js.map +1 -0
  13. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -1
  14. package/daemon/dist/adapters/tmux-exec.js +22 -2
  15. package/daemon/dist/adapters/tmux-exec.js.map +1 -1
  16. package/daemon/dist/db/migrations/020_rig_services.d.ts +3 -0
  17. package/daemon/dist/db/migrations/020_rig_services.d.ts.map +1 -0
  18. package/daemon/dist/db/migrations/020_rig_services.js +17 -0
  19. package/daemon/dist/db/migrations/020_rig_services.js.map +1 -0
  20. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +7 -0
  21. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -1
  22. package/daemon/dist/domain/bootstrap-orchestrator.js +73 -1
  23. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -1
  24. package/daemon/dist/domain/compose-project-name.d.ts +3 -0
  25. package/daemon/dist/domain/compose-project-name.d.ts.map +1 -0
  26. package/daemon/dist/domain/compose-project-name.js +16 -0
  27. package/daemon/dist/domain/compose-project-name.js.map +1 -0
  28. package/daemon/dist/domain/native-resume-probe.js +5 -2
  29. package/daemon/dist/domain/native-resume-probe.js.map +1 -1
  30. package/daemon/dist/domain/node-cmux-service.d.ts +19 -0
  31. package/daemon/dist/domain/node-cmux-service.d.ts.map +1 -0
  32. package/daemon/dist/domain/node-cmux-service.js +75 -0
  33. package/daemon/dist/domain/node-cmux-service.js.map +1 -0
  34. package/daemon/dist/domain/node-inventory.js +1 -1
  35. package/daemon/dist/domain/node-inventory.js.map +1 -1
  36. package/daemon/dist/domain/restore-orchestrator.d.ts +2 -0
  37. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -1
  38. package/daemon/dist/domain/restore-orchestrator.js +13 -0
  39. package/daemon/dist/domain/restore-orchestrator.js.map +1 -1
  40. package/daemon/dist/domain/rig-repository.d.ts +6 -1
  41. package/daemon/dist/domain/rig-repository.d.ts.map +1 -1
  42. package/daemon/dist/domain/rig-repository.js +65 -0
  43. package/daemon/dist/domain/rig-repository.js.map +1 -1
  44. package/daemon/dist/domain/rig-teardown.d.ts +1 -0
  45. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -1
  46. package/daemon/dist/domain/rig-teardown.js +17 -0
  47. package/daemon/dist/domain/rig-teardown.js.map +1 -1
  48. package/daemon/dist/domain/rigspec-instantiator.d.ts +7 -0
  49. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -1
  50. package/daemon/dist/domain/rigspec-instantiator.js +7 -0
  51. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -1
  52. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -1
  53. package/daemon/dist/domain/rigspec-schema.js +200 -0
  54. package/daemon/dist/domain/rigspec-schema.js.map +1 -1
  55. package/daemon/dist/domain/service-orchestrator.d.ts +59 -0
  56. package/daemon/dist/domain/service-orchestrator.d.ts.map +1 -0
  57. package/daemon/dist/domain/service-orchestrator.js +172 -0
  58. package/daemon/dist/domain/service-orchestrator.js.map +1 -0
  59. package/daemon/dist/domain/services-readiness.d.ts +23 -0
  60. package/daemon/dist/domain/services-readiness.d.ts.map +1 -0
  61. package/daemon/dist/domain/services-readiness.js +63 -0
  62. package/daemon/dist/domain/services-readiness.js.map +1 -0
  63. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -1
  64. package/daemon/dist/domain/snapshot-capture.js +10 -0
  65. package/daemon/dist/domain/snapshot-capture.js.map +1 -1
  66. package/daemon/dist/domain/spec-library-service.d.ts +1 -0
  67. package/daemon/dist/domain/spec-library-service.d.ts.map +1 -1
  68. package/daemon/dist/domain/spec-library-service.js +7 -0
  69. package/daemon/dist/domain/spec-library-service.js.map +1 -1
  70. package/daemon/dist/domain/spec-review-service.d.ts +29 -0
  71. package/daemon/dist/domain/spec-review-service.d.ts.map +1 -1
  72. package/daemon/dist/domain/spec-review-service.js +26 -0
  73. package/daemon/dist/domain/spec-review-service.js.map +1 -1
  74. package/daemon/dist/domain/types.d.ts +83 -0
  75. package/daemon/dist/domain/types.d.ts.map +1 -1
  76. package/daemon/dist/openrig-compat.d.ts.map +1 -1
  77. package/daemon/dist/openrig-compat.js +4 -1
  78. package/daemon/dist/openrig-compat.js.map +1 -1
  79. package/daemon/dist/routes/adapters.js +3 -2
  80. package/daemon/dist/routes/adapters.js.map +1 -1
  81. package/daemon/dist/routes/env.d.ts +3 -0
  82. package/daemon/dist/routes/env.d.ts.map +1 -0
  83. package/daemon/dist/routes/env.js +119 -0
  84. package/daemon/dist/routes/env.js.map +1 -0
  85. package/daemon/dist/routes/sessions.d.ts.map +1 -1
  86. package/daemon/dist/routes/sessions.js +14 -0
  87. package/daemon/dist/routes/sessions.js.map +1 -1
  88. package/daemon/dist/routes/spec-library.d.ts.map +1 -1
  89. package/daemon/dist/routes/spec-library.js +21 -0
  90. package/daemon/dist/routes/spec-library.js.map +1 -1
  91. package/daemon/dist/server.d.ts +3 -0
  92. package/daemon/dist/server.d.ts.map +1 -1
  93. package/daemon/dist/server.js +5 -0
  94. package/daemon/dist/server.js.map +1 -1
  95. package/daemon/dist/startup.d.ts.map +1 -1
  96. package/daemon/dist/startup.js +15 -3
  97. package/daemon/dist/startup.js.map +1 -1
  98. package/daemon/specs/agents/apps/vault-specialist/agent.yaml +36 -0
  99. package/daemon/specs/agents/apps/vault-specialist/guidance/role.md +34 -0
  100. package/daemon/specs/agents/apps/vault-specialist/skills/vault-user/SKILL.md +64 -0
  101. package/daemon/specs/agents/apps/vault-specialist/startup/context.md +46 -0
  102. package/daemon/specs/agents/development/implementer/agent.yaml +1 -1
  103. package/daemon/specs/agents/development/implementer/guidance/role.md +1 -0
  104. package/daemon/specs/agents/orchestration/orchestrator/agent.yaml +1 -1
  105. package/daemon/specs/agents/orchestration/orchestrator/guidance/role.md +1 -0
  106. package/daemon/specs/agents/shared/agent.yaml +2 -0
  107. package/daemon/specs/agents/shared/skills/core/openrig-user/SKILL.md +53 -2
  108. package/daemon/specs/agents/shared/skills/mental-model-ha/SKILL.md +953 -0
  109. package/daemon/specs/rigs/launch/secrets-manager/rig.yaml +37 -0
  110. package/daemon/specs/rigs/launch/secrets-manager/secrets-manager.compose.yaml +18 -0
  111. package/dist/commands/destroy.d.ts +9 -0
  112. package/dist/commands/destroy.d.ts.map +1 -0
  113. package/dist/commands/destroy.js +175 -0
  114. package/dist/commands/destroy.js.map +1 -0
  115. package/dist/commands/doctor.d.ts +1 -0
  116. package/dist/commands/doctor.d.ts.map +1 -1
  117. package/dist/commands/doctor.js +82 -7
  118. package/dist/commands/doctor.js.map +1 -1
  119. package/dist/commands/down.d.ts.map +1 -1
  120. package/dist/commands/down.js +2 -1
  121. package/dist/commands/down.js.map +1 -1
  122. package/dist/commands/env.d.ts +4 -0
  123. package/dist/commands/env.d.ts.map +1 -0
  124. package/dist/commands/env.js +139 -0
  125. package/dist/commands/env.js.map +1 -0
  126. package/dist/commands/restore.d.ts.map +1 -1
  127. package/dist/commands/restore.js +2 -1
  128. package/dist/commands/restore.js.map +1 -1
  129. package/dist/commands/specs.d.ts.map +1 -1
  130. package/dist/commands/specs.js +11 -4
  131. package/dist/commands/specs.js.map +1 -1
  132. package/dist/commands/up.d.ts.map +1 -1
  133. package/dist/commands/up.js +9 -2
  134. package/dist/commands/up.js.map +1 -1
  135. package/dist/destroy-helpers.d.ts +63 -0
  136. package/dist/destroy-helpers.d.ts.map +1 -0
  137. package/dist/destroy-helpers.js +224 -0
  138. package/dist/destroy-helpers.js.map +1 -0
  139. package/dist/index.d.ts +3 -0
  140. package/dist/index.d.ts.map +1 -1
  141. package/dist/index.js +4 -0
  142. package/dist/index.js.map +1 -1
  143. package/dist/openrig-compat.d.ts.map +1 -1
  144. package/dist/openrig-compat.js +4 -1
  145. package/dist/openrig-compat.js.map +1 -1
  146. package/package.json +1 -1
  147. package/ui/dist/assets/index-BsXbqPEl.css +1 -0
  148. package/ui/dist/assets/index-CXZYxZbF.js +225 -0
  149. package/ui/dist/index.html +2 -2
  150. package/ui/dist/assets/index-DGPFTQEV.css +0 -1
  151. package/ui/dist/assets/index-VA_A8dpm.js +0 -224
@@ -1,10 +1,14 @@
1
1
  import { validateSafePath } from "./path-safety.js";
2
2
  import { validateStartupBlock, normalizeStartupBlock } from "./startup-validation.js";
3
+ import { COMPOSE_PROJECT_NAME_PATTERN, deriveComposeProjectName } from "./compose-project-name.js";
3
4
  // -- Canonical pod-aware RigSpec validation (AgentSpec reboot) --
4
5
  const VALID_EDGE_KINDS = new Set(["delegates_to", "spawned_by", "can_observe", "collaborates_with", "escalates_to"]);
5
6
  const VALID_SYNC_TRIGGERS = new Set(["pre_compaction", "pre_shutdown", "manual", "milestone"]);
6
7
  const VALID_RESTORE_POLICIES = new Set(["resume_if_possible", "relaunch_fresh", "checkpoint_only"]);
7
8
  const VALID_IMPORT_PREFIXES = ["local:", "path:"];
9
+ const VALID_SERVICES_KIND = new Set(["compose"]);
10
+ const VALID_DOWN_POLICIES = new Set(["leave_running", "down", "down_and_volumes"]);
11
+ const VALID_WAIT_TARGET_CONDITIONS = new Set(["healthy"]);
8
12
  /**
9
13
  * Pod-aware RigSpec validator. Canonical contract for the AgentSpec reboot.
10
14
  */
@@ -40,6 +44,10 @@ export class RigSpecSchema {
40
44
  if (obj["startup"] !== undefined) {
41
45
  errors.push(...validateStartupBlock(obj["startup"], "startup"));
42
46
  }
47
+ // services: optional top-level sibling of pods
48
+ if (obj["services"] !== undefined) {
49
+ errors.push(...validateServicesBlock(obj["services"], "services"));
50
+ }
43
51
  // pods: required array
44
52
  if (!obj["pods"] || !Array.isArray(obj["pods"])) {
45
53
  errors.push("pods: required non-empty array");
@@ -99,6 +107,7 @@ export class RigSpecSchema {
99
107
  summary: raw["summary"],
100
108
  cultureFile: raw["culture_file"],
101
109
  startup: raw["startup"] ? normalizeStartupBlock(raw["startup"]) : undefined,
110
+ services: raw["services"] ? normalizeServicesBlock(raw["services"], raw["name"]) : undefined,
102
111
  pods,
103
112
  edges,
104
113
  };
@@ -303,6 +312,197 @@ function validateCrossPodEdge(edge, index, allQualifiedIds) {
303
312
  }
304
313
  return errors;
305
314
  }
315
+ function validateServicesBlock(raw, prefix) {
316
+ if (!raw || typeof raw !== "object")
317
+ return [`${prefix}: must be an object`];
318
+ const obj = raw;
319
+ const errors = [];
320
+ if (!obj["kind"] || typeof obj["kind"] !== "string" || !VALID_SERVICES_KIND.has(obj["kind"])) {
321
+ errors.push(`${prefix}.kind: must be one of ${[...VALID_SERVICES_KIND].join(", ")} (got "${obj["kind"]}")`);
322
+ }
323
+ if (!obj["compose_file"] || typeof obj["compose_file"] !== "string") {
324
+ errors.push(`${prefix}.compose_file: required non-empty string`);
325
+ }
326
+ else {
327
+ const pathErr = validateSafePath(obj["compose_file"], `${prefix}.compose_file`);
328
+ if (pathErr)
329
+ errors.push(pathErr);
330
+ }
331
+ if (obj["project_name"] !== undefined) {
332
+ if (typeof obj["project_name"] !== "string") {
333
+ errors.push(`${prefix}.project_name: must be a string`);
334
+ }
335
+ else if (!COMPOSE_PROJECT_NAME_PATTERN.test(obj["project_name"])) {
336
+ errors.push(`${prefix}.project_name: must match ${COMPOSE_PROJECT_NAME_PATTERN.source} (got "${obj["project_name"]}")`);
337
+ }
338
+ }
339
+ if (obj["profiles"] !== undefined) {
340
+ if (!Array.isArray(obj["profiles"])) {
341
+ errors.push(`${prefix}.profiles: must be an array`);
342
+ }
343
+ else {
344
+ obj["profiles"].forEach((p, index) => {
345
+ if (typeof p !== "string" || !p)
346
+ errors.push(`${prefix}.profiles[${index}]: must be a non-empty string`);
347
+ });
348
+ }
349
+ }
350
+ if (obj["down_policy"] !== undefined && !VALID_DOWN_POLICIES.has(obj["down_policy"])) {
351
+ errors.push(`${prefix}.down_policy: must be one of ${[...VALID_DOWN_POLICIES].join(", ")} (got "${obj["down_policy"]}")`);
352
+ }
353
+ if (obj["wait_for"] !== undefined) {
354
+ if (!Array.isArray(obj["wait_for"])) {
355
+ errors.push(`${prefix}.wait_for: must be an array`);
356
+ }
357
+ else {
358
+ for (let i = 0; i < obj["wait_for"].length; i++) {
359
+ errors.push(...validateWaitTarget(obj["wait_for"][i], i, prefix));
360
+ }
361
+ }
362
+ }
363
+ if (obj["surfaces"] !== undefined) {
364
+ errors.push(...validateSurfaces(obj["surfaces"], prefix));
365
+ }
366
+ if (obj["checkpoints"] !== undefined) {
367
+ errors.push(...validateCheckpointHooks(obj["checkpoints"], prefix));
368
+ }
369
+ return errors;
370
+ }
371
+ function validateWaitTarget(raw, index, prefix) {
372
+ const errors = [];
373
+ const targetPrefix = `${prefix}.wait_for[${index}]`;
374
+ const hasService = typeof raw["service"] === "string" && raw["service"];
375
+ const hasUrl = typeof raw["url"] === "string" && raw["url"];
376
+ const hasTcp = typeof raw["tcp"] === "string" && raw["tcp"];
377
+ const targetCount = [hasService, hasUrl, hasTcp].filter(Boolean).length;
378
+ if (targetCount === 0) {
379
+ errors.push(`${targetPrefix}: must define exactly one of service, url, or tcp`);
380
+ }
381
+ else if (targetCount > 1) {
382
+ errors.push(`${targetPrefix}: must define exactly one of service, url, or tcp`);
383
+ }
384
+ if (hasService) {
385
+ if (!raw["condition"] || raw["condition"] !== "healthy") {
386
+ errors.push(`${targetPrefix}.condition: service targets must use condition "healthy"`);
387
+ }
388
+ }
389
+ if (raw["condition"] !== undefined && !VALID_WAIT_TARGET_CONDITIONS.has(raw["condition"])) {
390
+ errors.push(`${targetPrefix}.condition: must be one of ${[...VALID_WAIT_TARGET_CONDITIONS].join(", ")} (got "${raw["condition"]}")`);
391
+ }
392
+ else if (!hasService && raw["condition"] !== undefined) {
393
+ errors.push(`${targetPrefix}.condition: only service targets may specify condition`);
394
+ }
395
+ return errors;
396
+ }
397
+ function validateSurfaces(raw, prefix) {
398
+ if (!raw || typeof raw !== "object")
399
+ return [`${prefix}.surfaces: must be an object`];
400
+ const obj = raw;
401
+ const errors = [];
402
+ if (obj["urls"] !== undefined) {
403
+ if (!Array.isArray(obj["urls"])) {
404
+ errors.push(`${prefix}.surfaces.urls: must be an array`);
405
+ }
406
+ else {
407
+ for (let i = 0; i < obj["urls"].length; i++) {
408
+ const url = obj["urls"][i];
409
+ if (!url["name"] || typeof url["name"] !== "string") {
410
+ errors.push(`${prefix}.surfaces.urls[${i}].name: required non-empty string`);
411
+ }
412
+ if (!url["url"] || typeof url["url"] !== "string") {
413
+ errors.push(`${prefix}.surfaces.urls[${i}].url: required non-empty string`);
414
+ }
415
+ }
416
+ }
417
+ }
418
+ if (obj["commands"] !== undefined) {
419
+ if (!Array.isArray(obj["commands"])) {
420
+ errors.push(`${prefix}.surfaces.commands: must be an array`);
421
+ }
422
+ else {
423
+ for (let i = 0; i < obj["commands"].length; i++) {
424
+ const command = obj["commands"][i];
425
+ if (!command["name"] || typeof command["name"] !== "string") {
426
+ errors.push(`${prefix}.surfaces.commands[${i}].name: required non-empty string`);
427
+ }
428
+ if (!command["command"] || typeof command["command"] !== "string") {
429
+ errors.push(`${prefix}.surfaces.commands[${i}].command: required non-empty string`);
430
+ }
431
+ }
432
+ }
433
+ }
434
+ return errors;
435
+ }
436
+ function validateCheckpointHooks(raw, prefix) {
437
+ if (!raw || typeof raw !== "object")
438
+ return [`${prefix}.checkpoints: must be an array`];
439
+ if (!Array.isArray(raw))
440
+ return [`${prefix}.checkpoints: must be an array`];
441
+ const errors = [];
442
+ for (let i = 0; i < raw.length; i++) {
443
+ const hook = raw[i];
444
+ if (!hook["id"] || typeof hook["id"] !== "string") {
445
+ errors.push(`${prefix}.checkpoints[${i}].id: required non-empty string`);
446
+ }
447
+ if (!hook["export"] || typeof hook["export"] !== "string") {
448
+ errors.push(`${prefix}.checkpoints[${i}].export: required non-empty string`);
449
+ }
450
+ if (hook["import"] !== undefined && typeof hook["import"] !== "string") {
451
+ errors.push(`${prefix}.checkpoints[${i}].import: must be a string`);
452
+ }
453
+ }
454
+ return errors;
455
+ }
456
+ function normalizeServicesBlock(raw, rigName) {
457
+ if (!raw || typeof raw !== "object")
458
+ return undefined;
459
+ const obj = raw;
460
+ const waitFor = Array.isArray(obj["wait_for"])
461
+ ? obj["wait_for"].map((target) => normalizeWaitTarget(target))
462
+ : undefined;
463
+ const surfaces = obj["surfaces"] ? normalizeSurfaces(obj["surfaces"]) : undefined;
464
+ const checkpoints = Array.isArray(obj["checkpoints"])
465
+ ? obj["checkpoints"].map((hook) => normalizeCheckpointHook(hook))
466
+ : undefined;
467
+ return {
468
+ kind: obj["kind"],
469
+ composeFile: obj["compose_file"],
470
+ projectName: obj["project_name"] ?? deriveComposeProjectName(rigName),
471
+ profiles: Array.isArray(obj["profiles"]) ? obj["profiles"] : undefined,
472
+ downPolicy: obj["down_policy"],
473
+ waitFor,
474
+ surfaces,
475
+ checkpoints,
476
+ };
477
+ }
478
+ function normalizeWaitTarget(raw) {
479
+ return {
480
+ service: raw["service"],
481
+ condition: raw["condition"],
482
+ url: raw["url"],
483
+ tcp: raw["tcp"],
484
+ };
485
+ }
486
+ function normalizeSurfaces(raw) {
487
+ if (!raw || typeof raw !== "object")
488
+ return undefined;
489
+ const obj = raw;
490
+ return {
491
+ urls: Array.isArray(obj["urls"])
492
+ ? obj["urls"].map((u) => ({ name: u["name"], url: u["url"] }))
493
+ : undefined,
494
+ commands: Array.isArray(obj["commands"])
495
+ ? obj["commands"].map((c) => ({ name: c["name"], command: c["command"] }))
496
+ : undefined,
497
+ };
498
+ }
499
+ function normalizeCheckpointHook(raw) {
500
+ return {
501
+ id: raw["id"],
502
+ exportCommand: raw["export"],
503
+ importCommand: raw["import"],
504
+ };
505
+ }
306
506
  function validateContinuityPolicy(raw, prefix) {
307
507
  if (typeof raw !== "object" || raw === null)
308
508
  return [`${prefix}: must be an object`];
@@ -1 +1 @@
1
- {"version":3,"file":"rigspec-schema.js","sourceRoot":"","sources":["../../src/domain/rigspec-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rigspec-schema.js","sourceRoot":"","sources":["../../src/domain/rigspec-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { RigRepository } from "./rig-repository.js";
2
+ import type { ComposeServicesAdapter } from "../adapters/compose-services-adapter.js";
3
+ import type { EnvReceipt } from "./types.js";
4
+ export type ServiceBootResult = {
5
+ ok: true;
6
+ receipt: EnvReceipt;
7
+ health: "healthy" | "degraded";
8
+ } | {
9
+ ok: false;
10
+ code: string;
11
+ error: string;
12
+ receipt?: EnvReceipt;
13
+ };
14
+ export type ServiceTeardownResult = {
15
+ ok: true;
16
+ } | {
17
+ ok: false;
18
+ code: string;
19
+ error: string;
20
+ };
21
+ interface ServiceOrchestratorDeps {
22
+ rigRepo: RigRepository;
23
+ composeAdapter: ComposeServicesAdapter;
24
+ }
25
+ /**
26
+ * Leaf service called by existing orchestrators (bootstrap, teardown, restore).
27
+ * Does NOT independently manage boot/teardown timing — callers decide when.
28
+ */
29
+ export declare class ServiceOrchestrator {
30
+ private rigRepo;
31
+ private composeAdapter;
32
+ constructor(deps: ServiceOrchestratorDeps);
33
+ /**
34
+ * Boot services for a rig. Called by bootstrap orchestrator as a stage before agent launch.
35
+ * 1. Load persisted services record
36
+ * 2. Run docker compose up
37
+ * 3. Evaluate wait targets
38
+ * 4. Persist receipt
39
+ */
40
+ boot(rigId: string, opts?: {
41
+ waitTimeoutMs?: number;
42
+ waitPollIntervalMs?: number;
43
+ }): Promise<ServiceBootResult>;
44
+ /**
45
+ * Tear down services for a rig. Called by teardown orchestrator during rig down.
46
+ * Honors down_policy from the persisted spec.
47
+ */
48
+ teardown(rigId: string, opts?: {
49
+ policyOverride?: "down" | "down_and_volumes" | "leave_running";
50
+ }): Promise<ServiceTeardownResult>;
51
+ /**
52
+ * Capture a fresh receipt from current compose state. Called by snapshot capture.
53
+ */
54
+ captureReceipt(rigId: string): Promise<EnvReceipt | null>;
55
+ private parseSpec;
56
+ private buildReceipt;
57
+ }
58
+ export {};
59
+ //# sourceMappingURL=service-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-orchestrator.d.ts","sourceRoot":"","sources":["../../src/domain/service-orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,KAAK,EAAsC,UAAU,EAAE,MAAM,YAAY,CAAC;AAGjF,MAAM,MAAM,iBAAiB,GACzB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,UAAU,CAAA;CAAE,GACjE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,UAAU,CAAA;CAAE,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,UAAU,uBAAuB;IAC/B,OAAO,EAAE,aAAa,CAAC;IACvB,cAAc,EAAE,sBAAsB,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,cAAc,CAAyB;gBAEnC,IAAI,EAAE,uBAAuB;IAKzC;;;;;;OAMG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiGrH;;;OAGG;IACG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,eAAe,CAAA;KAAE,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAyBxI;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA0B/D,OAAO,CAAC,SAAS;IAQjB,OAAO,CAAC,YAAY;CAkBrB"}
@@ -0,0 +1,172 @@
1
+ import { evaluateWaitTargets, deriveEnvHealth } from "./services-readiness.js";
2
+ /**
3
+ * Leaf service called by existing orchestrators (bootstrap, teardown, restore).
4
+ * Does NOT independently manage boot/teardown timing — callers decide when.
5
+ */
6
+ export class ServiceOrchestrator {
7
+ rigRepo;
8
+ composeAdapter;
9
+ constructor(deps) {
10
+ this.rigRepo = deps.rigRepo;
11
+ this.composeAdapter = deps.composeAdapter;
12
+ }
13
+ /**
14
+ * Boot services for a rig. Called by bootstrap orchestrator as a stage before agent launch.
15
+ * 1. Load persisted services record
16
+ * 2. Run docker compose up
17
+ * 3. Evaluate wait targets
18
+ * 4. Persist receipt
19
+ */
20
+ async boot(rigId, opts) {
21
+ const record = this.rigRepo.getServicesRecord(rigId);
22
+ if (!record) {
23
+ return { ok: false, code: "no_services", error: "No services record found for this rig" };
24
+ }
25
+ const spec = this.parseSpec(record);
26
+ if (!spec) {
27
+ return { ok: false, code: "invalid_spec", error: "Could not parse persisted services spec" };
28
+ }
29
+ // 1. Launch compose services
30
+ const upResult = await this.composeAdapter.up({
31
+ composeFile: record.composeFile,
32
+ projectName: record.projectName,
33
+ profiles: spec.profiles,
34
+ });
35
+ if (!upResult.ok) {
36
+ return { ok: false, code: upResult.code, error: upResult.message };
37
+ }
38
+ // 2. Evaluate wait targets with polling
39
+ const waitTargets = spec.waitFor ?? [];
40
+ if (waitTargets.length > 0) {
41
+ const timeoutMs = opts?.waitTimeoutMs ?? 60_000;
42
+ const pollMs = opts?.waitPollIntervalMs ?? 3_000;
43
+ const start = Date.now();
44
+ while (true) {
45
+ // Get current compose status for condition:healthy targets
46
+ const statusResult = await this.composeAdapter.status({
47
+ composeFile: record.composeFile,
48
+ projectName: record.projectName,
49
+ profiles: spec.profiles,
50
+ });
51
+ if (!statusResult.ok) {
52
+ const elapsed = Date.now() - start;
53
+ if (elapsed + pollMs > timeoutMs) {
54
+ return {
55
+ ok: false,
56
+ code: "compose_status_failed",
57
+ error: statusResult.error ?? "Failed to read docker compose status",
58
+ };
59
+ }
60
+ await new Promise((r) => setTimeout(r, pollMs));
61
+ continue;
62
+ }
63
+ const waitResults = await evaluateWaitTargets(waitTargets, this.composeAdapter, statusResult.services);
64
+ const health = deriveEnvHealth(waitResults);
65
+ if (health === "healthy") {
66
+ // All targets healthy — capture receipt and return
67
+ const receipt = this.buildReceipt(record, statusResult.services, waitResults);
68
+ this.rigRepo.updateServicesReceipt(rigId, JSON.stringify(receipt));
69
+ return { ok: true, receipt, health: "healthy" };
70
+ }
71
+ const elapsed = Date.now() - start;
72
+ if (elapsed + pollMs > timeoutMs) {
73
+ // Timeout — persist partial receipt honestly
74
+ const receipt = this.buildReceipt(record, statusResult.services, waitResults);
75
+ this.rigRepo.updateServicesReceipt(rigId, JSON.stringify(receipt));
76
+ const failedTargets = waitResults.filter((r) => r.status !== "healthy");
77
+ const failedNames = failedTargets.map((r) => r.detail ?? JSON.stringify(r.target)).join("; ");
78
+ return { ok: false, code: "wait_timeout", error: `Service wait targets not healthy after ${Math.round(timeoutMs / 1000)}s: ${failedNames}`, receipt };
79
+ }
80
+ await new Promise((r) => setTimeout(r, pollMs));
81
+ }
82
+ }
83
+ // No wait targets — just capture receipt
84
+ const statusResult = await this.composeAdapter.status({
85
+ composeFile: record.composeFile,
86
+ projectName: record.projectName,
87
+ profiles: spec.profiles,
88
+ });
89
+ if (!statusResult.ok) {
90
+ return {
91
+ ok: false,
92
+ code: "compose_status_failed",
93
+ error: statusResult.error ?? "Failed to read docker compose status",
94
+ };
95
+ }
96
+ const receipt = this.buildReceipt(record, statusResult.services, []);
97
+ this.rigRepo.updateServicesReceipt(rigId, JSON.stringify(receipt));
98
+ return { ok: true, receipt, health: "healthy" };
99
+ }
100
+ /**
101
+ * Tear down services for a rig. Called by teardown orchestrator during rig down.
102
+ * Honors down_policy from the persisted spec.
103
+ */
104
+ async teardown(rigId, opts) {
105
+ const record = this.rigRepo.getServicesRecord(rigId);
106
+ if (!record) {
107
+ return { ok: true }; // No services — nothing to tear down
108
+ }
109
+ const spec = this.parseSpec(record);
110
+ const policy = opts?.policyOverride ?? spec?.downPolicy ?? "down";
111
+ const result = await this.composeAdapter.down({
112
+ composeFile: record.composeFile,
113
+ projectName: record.projectName,
114
+ profiles: spec?.profiles,
115
+ policy,
116
+ });
117
+ if (!result.ok) {
118
+ return { ok: false, code: result.code, error: result.message };
119
+ }
120
+ // Update receipt to reflect teardown
121
+ this.rigRepo.updateServicesReceipt(rigId, null);
122
+ return { ok: true };
123
+ }
124
+ /**
125
+ * Capture a fresh receipt from current compose state. Called by snapshot capture.
126
+ */
127
+ async captureReceipt(rigId) {
128
+ const record = this.rigRepo.getServicesRecord(rigId);
129
+ if (!record)
130
+ return null;
131
+ const spec = this.parseSpec(record);
132
+ const statusResult = await this.composeAdapter.status({
133
+ composeFile: record.composeFile,
134
+ projectName: record.projectName,
135
+ profiles: spec?.profiles,
136
+ });
137
+ if (!statusResult.ok) {
138
+ throw new Error(statusResult.error ?? "Failed to read docker compose status");
139
+ }
140
+ const waitTargets = spec?.waitFor ?? [];
141
+ const waitResults = waitTargets.length > 0
142
+ ? await evaluateWaitTargets(waitTargets, this.composeAdapter, statusResult.services)
143
+ : [];
144
+ const receipt = this.buildReceipt(record, statusResult.services, waitResults);
145
+ this.rigRepo.updateServicesReceipt(rigId, JSON.stringify(receipt));
146
+ return receipt;
147
+ }
148
+ // -- Private helpers --
149
+ parseSpec(record) {
150
+ try {
151
+ return JSON.parse(record.specJson);
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ }
157
+ buildReceipt(record, services, waitResults) {
158
+ return {
159
+ kind: "compose",
160
+ composeFile: record.composeFile,
161
+ projectName: record.projectName,
162
+ services: services.map((s) => ({ name: s.name, status: s.state, health: s.health })),
163
+ waitFor: waitResults.map((r) => ({
164
+ target: r.target,
165
+ status: r.status,
166
+ detail: r.detail,
167
+ })),
168
+ capturedAt: new Date().toISOString(),
169
+ };
170
+ }
171
+ }
172
+ //# sourceMappingURL=service-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-orchestrator.js","sourceRoot":"","sources":["../../src/domain/service-orchestrator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAe/E;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAgB;IACvB,cAAc,CAAyB;IAE/C,YAAY,IAA6B;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;IAC5C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,IAA8D;QACtF,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;QAC5F,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,yCAAyC,EAAE,CAAC;QAC/F,CAAC;QAED,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrE,CAAC;QAED,wCAAwC;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,EAAE,aAAa,IAAI,MAAM,CAAC;YAChD,MAAM,MAAM,GAAG,IAAI,EAAE,kBAAkB,IAAI,KAAK,CAAC;YACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAEzB,OAAO,IAAI,EAAE,CAAC;gBACZ,2DAA2D;gBAC3D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;oBACpD,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAC;gBAEH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;oBACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;oBACnC,IAAI,OAAO,GAAG,MAAM,GAAG,SAAS,EAAE,CAAC;wBACjC,OAAO;4BACL,EAAE,EAAE,KAAK;4BACT,IAAI,EAAE,uBAAuB;4BAC7B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,sCAAsC;yBACpE,CAAC;oBACJ,CAAC;oBAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;oBAChD,SAAS;gBACX,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAC3C,WAAW,EACX,IAAI,CAAC,cAAc,EACnB,YAAY,CAAC,QAAQ,CACtB,CAAC;gBAEF,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;gBAC5C,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,mDAAmD;oBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAC9E,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;gBAClD,CAAC;gBAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;gBACnC,IAAI,OAAO,GAAG,MAAM,GAAG,SAAS,EAAE,CAAC;oBACjC,6CAA6C;oBAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAC9E,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;oBACnE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;oBACxE,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC9F,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,0CAA0C,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;gBACxJ,CAAC;gBAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,yCAAyC;QACzC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACpD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,uBAAuB;gBAC7B,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,sCAAsC;aACpE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAClD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,IAAyE;QACrG,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,qCAAqC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,EAAE,cAAc,IAAI,IAAI,EAAE,UAAU,IAAI,MAAM,CAAC;QAElE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YAC5C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,EAAE,QAAQ;YACxB,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjE,CAAC;QAED,qCAAqC;QACrC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,KAAa;QAChC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACpC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACpD,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,IAAI,EAAE,QAAQ;SACzB,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,sCAAsC,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC;YACpF,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wBAAwB;IAEhB,SAAS,CAAC,MAAyB;QACzC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAoB,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,YAAY,CAClB,MAAyB,EACzB,QAAuF,EACvF,WAAiH;QAEjH,OAAO;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;YACpF,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,MAAM,EAAE,CAAC,CAAC,MAA6C;gBACvD,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;YACH,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,23 @@
1
+ import type { ComposeServicesAdapter, ComposeServiceStatus } from "../adapters/compose-services-adapter.js";
2
+ import type { RigServicesWaitTarget } from "./types.js";
3
+ export interface WaitTargetResult {
4
+ target: RigServicesWaitTarget;
5
+ status: "healthy" | "unhealthy" | "pending";
6
+ detail: string | null;
7
+ }
8
+ /**
9
+ * Shared readiness evaluator. ONE place for wait-target evaluation and derived
10
+ * env health logic.
11
+ *
12
+ * Shipped consumers:
13
+ * - boot-time health gate (ServiceOrchestrator.boot)
14
+ * - on-demand receipt capture (ServiceOrchestrator.captureReceipt → env route)
15
+ *
16
+ * Deferred:
17
+ * - background health monitor (not yet implemented)
18
+ * - rig ps env summary (not yet implemented)
19
+ */
20
+ export declare function evaluateWaitTargets(targets: RigServicesWaitTarget[], adapter: ComposeServicesAdapter, composeStatuses?: ComposeServiceStatus[]): Promise<WaitTargetResult[]>;
21
+ /** Derive overall env health from wait target results. */
22
+ export declare function deriveEnvHealth(results: WaitTargetResult[]): "healthy" | "degraded" | "unhealthy";
23
+ //# sourceMappingURL=services-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"services-readiness.d.ts","sourceRoot":"","sources":["../../src/domain/services-readiness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC5G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC5C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,qBAAqB,EAAE,EAChC,OAAO,EAAE,sBAAsB,EAC/B,eAAe,CAAC,EAAE,oBAAoB,EAAE,GACvC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAoC7B;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,CAMjG"}