@wjarka/cezarion 0.14.9-dev.1020 → 0.14.9-dev.1027

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/README.md CHANGED
@@ -702,7 +702,7 @@ Useful environment variables:
702
702
 
703
703
  | Var | Effect |
704
704
  |---|---|
705
- | `CEZ_DELEGATION=1` | Enable owned workers and the private loopback listener for this controller. Off by default; works with the cockpit and headless `cez run`. Session instructions and credentials are automatic. |
705
+ | `CEZ_DELEGATION=1` | Enable owned workers and the private loopback listener for this controller. Off by default; works with the cockpit and headless `cez run`. When disabled, terminal cleanup checkpoints skip conversation/wait history reconciliation; explicit recovery and cleanup termination safeguards remain active. Session instructions and credentials are automatic. |
706
706
  | `CEZ_DELEGATION_URL`, `CEZ_DELEGATION_TOKEN` | Internal generated session values; do not configure or copy them. Tokens rotate on Continue/restart and are revoked when the session/controller closes. |
707
707
  | `CEZ_URL` | Cockpit origin for `cez task` and operator `cez discover` (e.g. a hosted `CEZ_REMOTE` cockpit). Unset, they find the local cockpit serving this checkout on ports 4321–4370. Parent discovery uses its delegation controller instead. |
708
708
  | `CEZ_DRY_RUN=1` | Use bundled mocks for all five agent backends — the cockpit works offline for demos and development. Explicit backend binary overrides still win. |
@@ -41,17 +41,11 @@ export declare function ciToolRoutes(capabilities: Map<string, Capability>): imp
41
41
  "/api/v1/tools/ci-wait": {
42
42
  $post: {
43
43
  output: {
44
- prUrl: string;
45
- repository: string;
46
- prNumber: number;
47
- headSha: string;
48
- waitId: string;
49
- registeredAt: string;
50
- deadline: string;
51
- phase: "delivered" | "parked" | "registered" | "wake-pending" | "withdrawn";
44
+ code: "authentication" | "capacity" | "command_failed" | "gh_missing" | "inaccessible_pr" | "invalid_request" | "malformed_data" | "output_limit" | "persistence" | "query_timeout" | "unauthorized" | "unavailable" | "unsupported_host" | "wait_conflict";
45
+ message: string;
52
46
  };
53
47
  outputFormat: "json";
54
- status: import("hono/utils/http-status").ContentfulStatusCode;
48
+ status: 503;
55
49
  input: {
56
50
  json: {
57
51
  pr: string;
@@ -60,11 +54,17 @@ export declare function ciToolRoutes(capabilities: Map<string, Capability>): imp
60
54
  };
61
55
  } | {
62
56
  output: {
63
- code: "authentication" | "capacity" | "command_failed" | "gh_missing" | "inaccessible_pr" | "invalid_request" | "malformed_data" | "output_limit" | "persistence" | "query_timeout" | "unauthorized" | "unavailable" | "unsupported_host" | "wait_conflict";
64
- message: string;
57
+ prUrl: string;
58
+ repository: string;
59
+ prNumber: number;
60
+ headSha: string;
61
+ waitId: string;
62
+ registeredAt: string;
63
+ deadline: string;
64
+ phase: "delivered" | "parked" | "registered" | "wake-pending" | "withdrawn";
65
65
  };
66
66
  outputFormat: "json";
67
- status: 503;
67
+ status: import("hono/utils/http-status").ContentfulStatusCode;
68
68
  input: {
69
69
  json: {
70
70
  pr: string;
@@ -486,6 +486,18 @@ export declare function createDelegationRoutes(service: DelegationService, crede
486
486
  } & {
487
487
  "/:workerId": {
488
488
  $get: {
489
+ output: {
490
+ error: string;
491
+ code?: "invalid_input" | undefined;
492
+ };
493
+ outputFormat: "json";
494
+ status: 400;
495
+ input: {
496
+ param: {
497
+ workerId: string;
498
+ };
499
+ };
500
+ } | {
489
501
  output: {
490
502
  workerId: string;
491
503
  parentRunId: string;
@@ -562,7 +574,11 @@ export declare function createDelegationRoutes(service: DelegationService, crede
562
574
  workerId: string;
563
575
  };
564
576
  };
565
- } | {
577
+ };
578
+ };
579
+ } & {
580
+ "/:workerId/collect": {
581
+ $post: {
566
582
  output: {
567
583
  error: string;
568
584
  code?: "invalid_input" | undefined;
@@ -573,12 +589,10 @@ export declare function createDelegationRoutes(service: DelegationService, crede
573
589
  param: {
574
590
  workerId: string;
575
591
  };
592
+ } & {
593
+ json: Record<string, never>;
576
594
  };
577
- };
578
- };
579
- } & {
580
- "/:workerId/collect": {
581
- $post: {
595
+ } | {
582
596
  output: {
583
597
  workerId: string;
584
598
  parentRunId: string;
@@ -680,7 +694,11 @@ export declare function createDelegationRoutes(service: DelegationService, crede
680
694
  } & {
681
695
  json: Record<string, never>;
682
696
  };
683
- } | {
697
+ };
698
+ };
699
+ } & {
700
+ "/:workerId/steer": {
701
+ $post: {
684
702
  output: {
685
703
  error: string;
686
704
  code?: "invalid_input" | undefined;
@@ -692,13 +710,11 @@ export declare function createDelegationRoutes(service: DelegationService, crede
692
710
  workerId: string;
693
711
  };
694
712
  } & {
695
- json: Record<string, never>;
713
+ json: {
714
+ text: string;
715
+ };
696
716
  };
697
- };
698
- };
699
- } & {
700
- "/:workerId/steer": {
701
- $post: {
717
+ } | {
702
718
  output: {
703
719
  workerId: string;
704
720
  state: "delivered" | "queued";
@@ -714,7 +730,11 @@ export declare function createDelegationRoutes(service: DelegationService, crede
714
730
  text: string;
715
731
  };
716
732
  };
717
- } | {
733
+ };
734
+ };
735
+ } & {
736
+ "/:workerId/stop": {
737
+ $post: {
718
738
  output: {
719
739
  error: string;
720
740
  code?: "invalid_input" | undefined;
@@ -726,15 +746,9 @@ export declare function createDelegationRoutes(service: DelegationService, crede
726
746
  workerId: string;
727
747
  };
728
748
  } & {
729
- json: {
730
- text: string;
731
- };
749
+ json: Record<string, never>;
732
750
  };
733
- };
734
- };
735
- } & {
736
- "/:workerId/stop": {
737
- $post: {
751
+ } | {
738
752
  output: {
739
753
  workerId: string;
740
754
  state: "stopping" | "terminated";
@@ -748,7 +762,11 @@ export declare function createDelegationRoutes(service: DelegationService, crede
748
762
  } & {
749
763
  json: Record<string, never>;
750
764
  };
751
- } | {
765
+ };
766
+ };
767
+ } & {
768
+ "/:workerId/destroy": {
769
+ $post: {
752
770
  output: {
753
771
  error: string;
754
772
  code?: "invalid_input" | undefined;
@@ -762,11 +780,7 @@ export declare function createDelegationRoutes(service: DelegationService, crede
762
780
  } & {
763
781
  json: Record<string, never>;
764
782
  };
765
- };
766
- };
767
- } & {
768
- "/:workerId/destroy": {
769
- $post: {
783
+ } | {
770
784
  output: {
771
785
  workerId: string;
772
786
  state: "complete" | "incomplete";
@@ -789,20 +803,6 @@ export declare function createDelegationRoutes(service: DelegationService, crede
789
803
  } & {
790
804
  json: Record<string, never>;
791
805
  };
792
- } | {
793
- output: {
794
- error: string;
795
- code?: "invalid_input" | undefined;
796
- };
797
- outputFormat: "json";
798
- status: 400;
799
- input: {
800
- param: {
801
- workerId: string;
802
- };
803
- } & {
804
- json: Record<string, never>;
805
- };
806
806
  } | {
807
807
  output: {
808
808
  workerId: string;
@@ -832,13 +832,11 @@ export declare function createDelegationRoutes(service: DelegationService, crede
832
832
  "/:workerId/diff": {
833
833
  $get: {
834
834
  output: {
835
- workerId: string;
836
- baselineSha: string;
837
- diff: string;
838
- truncated: boolean;
835
+ error: string;
836
+ code?: "invalid_input" | undefined;
839
837
  };
840
838
  outputFormat: "json";
841
- status: 200;
839
+ status: 400;
842
840
  input: {
843
841
  param: {
844
842
  workerId: string;
@@ -846,11 +844,13 @@ export declare function createDelegationRoutes(service: DelegationService, crede
846
844
  };
847
845
  } | {
848
846
  output: {
849
- error: string;
850
- code?: "invalid_input" | undefined;
847
+ workerId: string;
848
+ baselineSha: string;
849
+ diff: string;
850
+ truncated: boolean;
851
851
  };
852
852
  outputFormat: "json";
853
- status: 400;
853
+ status: 200;
854
854
  input: {
855
855
  param: {
856
856
  workerId: string;
@@ -1175,7 +1175,9 @@ export class RunStore extends EventEmitter {
1175
1175
  proposed.set(patch.id, { ...run, delegation });
1176
1176
  changed.add(patch.id);
1177
1177
  }
1178
- this.commitIndex(proposed, changed);
1178
+ // In-process cause only: consumers can skip metadata replay when delegation
1179
+ // is disabled without dropping real status or termination-proof notifications.
1180
+ this.commitIndex(proposed, changed, 'delegation-checkpoint');
1179
1181
  }
1180
1182
  /** Accepted execution revision is public lifecycle identity, separate from process generations. */
1181
1183
  commitWorkerContinuation(id, patch, step, conversation) {
@@ -1370,7 +1372,7 @@ export class RunStore extends EventEmitter {
1370
1372
  return run;
1371
1373
  }
1372
1374
  /** Atomic file replacement is the durability boundary; flush() is deliberately best-effort. */
1373
- commitIndex(proposed, changed) {
1375
+ commitIndex(proposed, changed, source) {
1374
1376
  this.writeIndex([...proposed.values()].sort((a, b) => b.createdAt.localeCompare(a.createdAt)));
1375
1377
  if (this.saveTimer) {
1376
1378
  clearTimeout(this.saveTimer);
@@ -1392,7 +1394,7 @@ export class RunStore extends EventEmitter {
1392
1394
  for (const id of changed) {
1393
1395
  const run = this.runs.get(id);
1394
1396
  if (run)
1395
- this.emit('run', run);
1397
+ this.emit('run', run, source);
1396
1398
  else
1397
1399
  this.emit('deleted', id);
1398
1400
  }