@wjarka/cezarion 0.14.7-pr488.741 → 0.14.8-dev.817

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 (199) hide show
  1. package/README.md +76 -2
  2. package/dist/application-update/bin-recovery.d.ts +5 -0
  3. package/dist/application-update/bin-recovery.js +96 -0
  4. package/dist/application-update/bin-recovery.js.map +1 -0
  5. package/dist/application-update/discovery.d.ts +22 -0
  6. package/dist/application-update/discovery.js +91 -0
  7. package/dist/application-update/discovery.js.map +1 -0
  8. package/dist/application-update/helper.d.ts +57 -0
  9. package/dist/application-update/helper.js +374 -0
  10. package/dist/application-update/helper.js.map +1 -0
  11. package/dist/application-update/launcher.d.ts +8 -0
  12. package/dist/application-update/launcher.js +53 -0
  13. package/dist/application-update/launcher.js.map +1 -0
  14. package/dist/application-update/lock.d.ts +4 -0
  15. package/dist/application-update/lock.js +70 -0
  16. package/dist/application-update/lock.js.map +1 -0
  17. package/dist/application-update/npm-process.d.ts +17 -0
  18. package/dist/application-update/npm-process.js +133 -0
  19. package/dist/application-update/npm-process.js.map +1 -0
  20. package/dist/application-update/service.d.ts +69 -0
  21. package/dist/application-update/service.js +456 -0
  22. package/dist/application-update/service.js.map +1 -0
  23. package/dist/artifacts/cli.d.ts +1 -0
  24. package/dist/artifacts/cli.js +32 -0
  25. package/dist/artifacts/cli.js.map +1 -0
  26. package/dist/artifacts/lifecycle.d.ts +4 -0
  27. package/dist/artifacts/lifecycle.js +42 -0
  28. package/dist/artifacts/lifecycle.js.map +1 -0
  29. package/dist/artifacts/resolve.d.ts +18 -0
  30. package/dist/artifacts/resolve.js +102 -0
  31. package/dist/artifacts/resolve.js.map +1 -0
  32. package/dist/artifacts/store.d.ts +8 -0
  33. package/dist/artifacts/store.js +317 -0
  34. package/dist/artifacts/store.js.map +1 -0
  35. package/dist/ci-wait/mcp.d.ts +3 -0
  36. package/dist/ci-wait/mcp.js +14 -3
  37. package/dist/ci-wait/mcp.js.map +1 -1
  38. package/dist/contract/application-update.d.ts +32 -0
  39. package/dist/contract/artifacts.d.ts +83 -0
  40. package/dist/contract/ask-schema.d.ts +32 -0
  41. package/dist/contract/ask.d.ts +2 -32
  42. package/dist/contract/conversations.d.ts +67 -0
  43. package/dist/contract/delegation.d.ts +24 -0
  44. package/dist/contract/events.d.ts +42 -0
  45. package/dist/contract/health.d.ts +12 -0
  46. package/dist/contract/index.d.ts +2 -0
  47. package/dist/contract/index.js +1361 -1263
  48. package/dist/contract/runs.d.ts +108 -0
  49. package/dist/contract/skills.d.ts +21 -0
  50. package/dist/core/agent-runner.d.ts +33 -4
  51. package/dist/core/agent-runner.js +5 -0
  52. package/dist/core/agent-runner.js.map +1 -1
  53. package/dist/core/claude-cli-runner.d.ts +6 -12
  54. package/dist/core/claude-cli-runner.js +89 -19
  55. package/dist/core/claude-cli-runner.js.map +1 -1
  56. package/dist/core/codex-app-server-runner.d.ts +2 -1
  57. package/dist/core/codex-app-server-runner.js +327 -92
  58. package/dist/core/codex-app-server-runner.js.map +1 -1
  59. package/dist/core/codex-app-server-transport.d.ts +13 -1
  60. package/dist/core/codex-app-server-transport.js +58 -17
  61. package/dist/core/codex-app-server-transport.js.map +1 -1
  62. package/dist/core/cursor-acp-runner.d.ts +4 -1
  63. package/dist/core/cursor-acp-runner.js +3 -0
  64. package/dist/core/cursor-acp-runner.js.map +1 -1
  65. package/dist/core/cursor-provider-error.js +3 -1
  66. package/dist/core/cursor-provider-error.js.map +1 -1
  67. package/dist/core/input-submissions.d.ts +14 -0
  68. package/dist/core/input-submissions.js +26 -0
  69. package/dist/core/input-submissions.js.map +1 -0
  70. package/dist/core/opencode-server-runner.d.ts +4 -1
  71. package/dist/core/opencode-server-runner.js +144 -21
  72. package/dist/core/opencode-server-runner.js.map +1 -1
  73. package/dist/core/pi-runner.d.ts +2 -1
  74. package/dist/core/pi-runner.js +72 -7
  75. package/dist/core/pi-runner.js.map +1 -1
  76. package/dist/delegation/conversations.js +13 -5
  77. package/dist/delegation/conversations.js.map +1 -1
  78. package/dist/delegation/provision.js +5 -4
  79. package/dist/delegation/provision.js.map +1 -1
  80. package/dist/delegation/questions.d.ts +19 -0
  81. package/dist/delegation/questions.js +45 -0
  82. package/dist/delegation/questions.js.map +1 -0
  83. package/dist/delegation/results.d.ts +1 -1
  84. package/dist/delegation/results.js +23 -13
  85. package/dist/delegation/results.js.map +1 -1
  86. package/dist/delegation/routes.d.ts +76 -16
  87. package/dist/delegation/service.d.ts +3 -3
  88. package/dist/delegation/service.js +24 -5
  89. package/dist/delegation/service.js.map +1 -1
  90. package/dist/delegation/transport.d.ts +72 -12
  91. package/dist/index.js +72 -26
  92. package/dist/index.js.map +1 -1
  93. package/dist/open-url.d.ts +2 -0
  94. package/dist/open-url.js +20 -0
  95. package/dist/open-url.js.map +1 -0
  96. package/dist/release/snapshot.d.ts +3 -3
  97. package/dist/release/snapshot.js +6 -6
  98. package/dist/release/snapshot.js.map +1 -1
  99. package/dist/runs/client-request.d.ts +11 -0
  100. package/dist/runs/client-request.js +26 -0
  101. package/dist/runs/client-request.js.map +1 -0
  102. package/dist/runs/delegation-state.d.ts +17 -0
  103. package/dist/runs/event-history.js +6 -0
  104. package/dist/runs/event-history.js.map +1 -1
  105. package/dist/runs/store.d.ts +57 -5
  106. package/dist/runs/store.js +61 -0
  107. package/dist/runs/store.js.map +1 -1
  108. package/dist/server/server.d.ts +4709 -2750
  109. package/dist/server/server.js +170 -4
  110. package/dist/server/server.js.map +1 -1
  111. package/dist/task-cli/cli.d.ts +38 -0
  112. package/dist/task-cli/cli.js +463 -0
  113. package/dist/task-cli/cli.js.map +1 -0
  114. package/dist/task-cli/discovery.d.ts +22 -0
  115. package/dist/task-cli/discovery.js +95 -0
  116. package/dist/task-cli/discovery.js.map +1 -0
  117. package/dist/task-cli/http.d.ts +43 -0
  118. package/dist/task-cli/http.js +101 -0
  119. package/dist/task-cli/http.js.map +1 -0
  120. package/dist/task-cli/projections.d.ts +40 -0
  121. package/dist/task-cli/projections.js +45 -0
  122. package/dist/task-cli/projections.js.map +1 -0
  123. package/dist/task-cli/watch.d.ts +59 -0
  124. package/dist/task-cli/watch.js +303 -0
  125. package/dist/task-cli/watch.js.map +1 -0
  126. package/dist/workflows/run.d.ts +79 -0
  127. package/dist/workflows/run.js +676 -70
  128. package/dist/workflows/run.js.map +1 -1
  129. package/dist/workspace/projects-cli.js +1 -1
  130. package/package.json +3 -3
  131. package/scripts/mock-claude.mjs +38 -2
  132. package/scripts/mock-codex-app-server.mjs +98 -1
  133. package/scripts/mock-cursor-acp.mjs +3 -0
  134. package/scripts/mock-opencode-serve.mjs +69 -2
  135. package/scripts/mock-pi-rpc.mjs +63 -2
  136. package/web/dist/assets/agent-accounts-B7aDlJ4I.js +1 -0
  137. package/web/dist/assets/centered-state-wm14n-hB.js +43 -0
  138. package/web/dist/assets/collapsible-Bb2y0asn.js +1 -0
  139. package/web/dist/assets/commit-list-Bz4vV9X3.js +1 -0
  140. package/web/dist/assets/compare-variants-kXDxHaTA.js +1 -0
  141. package/web/dist/assets/diff-controls-frbAqBK1.js +1 -0
  142. package/web/dist/assets/{diff-BvZErqfg2.js → diff-rDeblLVZ2.js} +2 -2
  143. package/web/dist/assets/{diff-stat-CVFxf2Ar.js → diff-stat-Cn7rzy1H.js} +1 -1
  144. package/web/dist/assets/{diff-view-B35r8kQK.js → diff-view-D6N_QzSq.js} +1 -1
  145. package/web/dist/assets/dropdown-menu-Bwvi4Ono.js +1 -0
  146. package/web/dist/assets/git-toolbar-5TyOh819.js +1 -0
  147. package/web/dist/assets/github-CNO6b6Gn.js +1 -0
  148. package/web/dist/assets/{image-preview-BBqbaKaq.js → image-preview-B618kDBH.js} +1 -1
  149. package/web/dist/assets/index-C4lWUOn4.css +1 -0
  150. package/web/dist/assets/index-_YqA5M2j.js +7 -0
  151. package/web/dist/assets/markdown-BnjmXdz2.js +2 -0
  152. package/web/dist/assets/pill-DqEXer06.js +1 -0
  153. package/web/dist/assets/project-router-BSpCQc8A.js +1 -0
  154. package/web/dist/assets/prompt-templates-BsHnTixc.js +15 -0
  155. package/web/dist/assets/repo-git-CXsnC6Qk.js +1 -0
  156. package/web/dist/assets/{run-diff-fChfUdwr.js → run-diff-CFeYdPGE.js} +2 -2
  157. package/web/dist/assets/run-header-G5PQQyme.js +1 -0
  158. package/web/dist/assets/skills-D8ap2P2f.js +1 -0
  159. package/web/dist/assets/{tab-link-Db6yDTIQ.js → tab-link-BXDesc8g.js} +1 -1
  160. package/web/dist/assets/task-changes-DuhqLfCv.js +1 -0
  161. package/web/dist/assets/task-commits--GyJzH7L.js +1 -0
  162. package/web/dist/assets/task-files-CrKJTTrk.js +2 -0
  163. package/web/dist/assets/task-thread-BL7keYuU.js +9 -0
  164. package/web/dist/assets/task-thread-BQFdz1dJ.css +1 -0
  165. package/web/dist/assets/textarea-COQtp9cB.js +1 -0
  166. package/web/dist/assets/thread-loading-B7mgkPaL.js +1 -0
  167. package/web/dist/assets/token-metrics-CFWQYcgY.js +1 -0
  168. package/web/dist/assets/utils-DKheTxGD.js +64 -0
  169. package/web/dist/assets/workflows-DqEfQDeS.js +11 -0
  170. package/web/dist/assets/{zoomable-image-DpL5gtv4.js → zoomable-image-YW3Qdrr_.js} +1 -1
  171. package/web/dist/index.html +14 -14
  172. package/web/dist/assets/agent-accounts-DveiLHoy.js +0 -1
  173. package/web/dist/assets/alert-dialog-BRmsCA3M.js +0 -43
  174. package/web/dist/assets/collapsible-BWfM2PdZ.js +0 -1
  175. package/web/dist/assets/commit-list-C-rCgcKm.js +0 -1
  176. package/web/dist/assets/compare-variants-Ccp9IYp-.js +0 -1
  177. package/web/dist/assets/diff-controls-BFI8ngtw.js +0 -1
  178. package/web/dist/assets/dropdown-menu-C_fj6kzP.js +0 -1
  179. package/web/dist/assets/git-toolbar-BaqAvRC1.js +0 -1
  180. package/web/dist/assets/github-DIkBazPA.js +0 -1
  181. package/web/dist/assets/index-BIae70yp.js +0 -7
  182. package/web/dist/assets/index-CXZukB1O.css +0 -1
  183. package/web/dist/assets/markdown-kouQNPB6.js +0 -2
  184. package/web/dist/assets/pill-mHX_rKXP.js +0 -1
  185. package/web/dist/assets/project-router-Ds9EvxjN.js +0 -1
  186. package/web/dist/assets/prompt-templates-AaKKdIiY.js +0 -15
  187. package/web/dist/assets/repo-git-6StCwqhj.js +0 -1
  188. package/web/dist/assets/run-header-B3ZPhDZr.js +0 -1
  189. package/web/dist/assets/skills-DSWaVvcu.js +0 -1
  190. package/web/dist/assets/task-changes-DdmerESW.js +0 -1
  191. package/web/dist/assets/task-commits-Co-bb1P6.js +0 -1
  192. package/web/dist/assets/task-files-B2KASfyL.js +0 -2
  193. package/web/dist/assets/task-thread-8kGLJO4Q.js +0 -9
  194. package/web/dist/assets/task-thread-Dc3wplva.css +0 -1
  195. package/web/dist/assets/textarea-Qhdzn_oU.js +0 -1
  196. package/web/dist/assets/thread-loading-C6ENzZYk.js +0 -1
  197. package/web/dist/assets/token-metrics-BsT6Rqji.js +0 -1
  198. package/web/dist/assets/utils-VFstALJW.js +0 -64
  199. package/web/dist/assets/workflows-UKoofNFJ.js +0 -11
@@ -44,6 +44,10 @@ export type DelegationExecutionSettings = {
44
44
  allowedTools?: string[];
45
45
  bashAllowlist?: string[];
46
46
  };
47
+ /** Safety cap on autonomous auto-continues per run — stops a stuck agent from nudging forever. */
48
+ /** #505: a real steer is read at the harness's next model step; a quiet boundary this long
49
+ * with input still unread means the harness will not read it without help. */
50
+ export declare const UNREAD_INPUT_GRACE_MS = 30000;
47
51
  /**
48
52
  * Auto-resume after a provider usage limit (spec 2026-08-03-auto-resume-after-usage-limit).
49
53
  *
@@ -270,6 +274,8 @@ export declare class RunManager {
270
274
  private readonly inboxClaimTimers;
271
275
  private reconcilingWorkers;
272
276
  private recovering;
277
+ /** Quiet window before unread input is resubmitted or left unconfirmed (#505). */
278
+ private readonly unreadInputGraceMs;
273
279
  private disposed;
274
280
  private readonly onDelegationRun;
275
281
  private readonly pendingJobs;
@@ -329,6 +335,7 @@ export declare class RunManager {
329
335
  private readonly offSemaphore;
330
336
  constructor(store: RunStore, repoRoot: string, options?: {
331
337
  semaphore?: WorkspaceSemaphore;
338
+ unreadInputGraceMs?: number;
332
339
  });
333
340
  /**
334
341
  * Release everything this manager owns without touching run records
@@ -434,9 +441,26 @@ export declare class RunManager {
434
441
  effort?: string;
435
442
  agentProfile?: string;
436
443
  }): Promise<DelegationExecutionSettings>;
444
+ /**
445
+ * Idempotent start (#504, spec 2026-09-24-cez-task-cli). Lookup and create share one
446
+ * synchronous path, so the event loop serialises concurrent retries: the first creates, every
447
+ * later one with the same hash gets that run back, and a different hash is a conflict.
448
+ */
449
+ startRunIdempotent(workflow: WorkflowDef, input: StartRunInput, request: {
450
+ id: string;
451
+ hash: string;
452
+ }): {
453
+ run: RunRecord;
454
+ created: boolean;
455
+ } | {
456
+ conflict: true;
457
+ };
437
458
  startRun(workflow: WorkflowDef, input: StartRunInput, group?: {
438
459
  groupId: string;
439
460
  variant: string;
461
+ }, clientRequest?: {
462
+ id: string;
463
+ hash: string;
440
464
  }): RunRecord;
441
465
  /** Accept only the store's already-durable owned creation, never caller-supplied paths/workflows. */
442
466
  enqueueOwnedRun(runId: string): void;
@@ -765,6 +789,28 @@ export declare class RunManager {
765
789
  private armInboxClaimExpiry;
766
790
  /** Accepted conversation input uses the existing scheduler admission for idle recipients. */
767
791
  deliverConversationInput(runId: string): void;
792
+ /** A worker's pending question goes to its owning parent as a conversation request
793
+ * (#505). The worker still parks on its ask; only the parent's reply, or a human after
794
+ * fallback, answers it. Routing is idempotent: the message ID derives from the ask seq. */
795
+ private routeWorkerQuestion;
796
+ /** A human answering a worker question its parent handed back (#505): the reviewing parent
797
+ * can no longer answer it, so it must not also block the human. */
798
+ private answersFallenBackAsk;
799
+ /** The worker's pending ask when it went to the parent and has not fallen back to a human. */
800
+ private routedAsk;
801
+ /** The parent's reply answers the routed question like a human answer would: through the
802
+ * live session's native answer seam, or by reopening a session that is gone (#505). */
803
+ private answerRoutedQuestion;
804
+ /** A routed question settled without a reply (its worker stopped, a deadline, fallback) can
805
+ * never be answered by the parent any more: hand it to the human on the worker (#505). */
806
+ private retireSettledQuestions;
807
+ /** Routed questions this parent has not answered yet, by asking worker. */
808
+ private unansweredQuestions;
809
+ /** The parent can no longer answer: its workers' routed questions go back to the human
810
+ * (#505). The outcome lands first, so a crash before the worker's event repeats this. */
811
+ private fallbackRoutedQuestions;
812
+ /** The parent can still read and answer a routed question; answering needs its steer grant. */
813
+ private parentCanReceive;
768
814
  /** Cancel only the wait; persist its settlement before ordinary wake admission. */
769
815
  cancelWorkerWait(parentId: string, waitId: string): WorkerWait;
770
816
  private workerWait;
@@ -791,6 +837,37 @@ export declare class RunManager {
791
837
  /** Accepted input may be temporarily refused while a backend HTTP ack is
792
838
  * outstanding. That is not an empty queue and must not trigger automatic DONE. */
793
839
  private hasQueuedAgentInputs;
840
+ /** Only the current session's observation writes consumedAt (#505). An ID reported
841
+ * before its acceptance checkpoint lands is applied when that checkpoint commits. */
842
+ private handleAgentInputConsumed;
843
+ /** #505: input the harness accepted but will never read returns to the queue, so
844
+ * DONE, auto-end and park see queued work. Out of a turn (an OpenCode lost wake)
845
+ * it is submitted right away; at a turn-end the handler's own flush submits it. */
846
+ private retireUnreadInputs;
847
+ /** #505: the harness started the opening turn, so the opening input was accepted.
848
+ * Its replay-prompt retirement still waits for that turn's successful end. */
849
+ private recordOpeningAccepted;
850
+ /** The conversation messages the next submission would carry, if nothing but
851
+ * conversation input leads the queue (lifecycle input stays a barrier). */
852
+ private pendingConversationBatch;
853
+ /** Bundled messages rode the answer's own write: delivered now, read when that turn ends. */
854
+ private commitBundledDelivery;
855
+ /** The turn that carried bundled messages has ended: the model read them. */
856
+ private readBundledInputs;
857
+ /** #505: the session closed without reporting it read (failure, stop, exit): the input
858
+ * goes back to the queue so a later session delivers it; never shown as delivered. */
859
+ private requeueUnreadAtClose;
860
+ /** An idle, open boundary with nothing left to deliver: DONE closes, otherwise the
861
+ * run parks as waiting or monitoring. Shared by acknowledgements that land after a
862
+ * turn ended and by the unread-input grace timer (#505). */
863
+ private settleIdleBoundary;
864
+ /** #505 liveness bound: a harness that accepted input and then neither read it nor ran
865
+ * another turn must not hold the run and its slot forever. After a quiet grace window the
866
+ * input is resubmitted once; after a second it is left delivered but unconfirmed. */
867
+ private armUnreadInputTimer;
868
+ private clearUnreadInputTimer;
869
+ /** #505: the harness accepted input this session has not reported reading yet. */
870
+ private harnessOwesInput;
794
871
  /** A callback from an old/replaced/disposed session carries no authority. */
795
872
  private handleAgentInputReady;
796
873
  /** Reservation is synchronous; only an acknowledged transport may checkpoint delivery. */
@@ -843,6 +920,8 @@ export declare class RunManager {
843
920
  /** Agent account for the reopened session (spec 2026-07-29-agent-profiles). Omitted = the
844
921
  * account the run is already on. */
845
922
  agentProfile?: string;
923
+ /** #505: the parent reply this continuation delivers as the answer to a routed question. */
924
+ answerInputId?: string;
846
925
  },
847
926
  /** Restart recovery may discover several interrupted tasks at once. Those
848
927
  * continuations are queued; an explicit user Continue remains immediate. */