@wjarka/cezarion 0.11.2 → 0.11.3

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 (82) hide show
  1. package/dist/contract/index.js +2 -1
  2. package/dist/contract/workspace.d.ts +14 -0
  3. package/dist/core/opencode-model-catalog.d.ts +5 -5
  4. package/dist/core/opencode-model-catalog.js +96 -34
  5. package/dist/core/opencode-model-catalog.js.map +1 -1
  6. package/dist/core/opencode-server-runner.js +37 -2
  7. package/dist/core/opencode-server-runner.js.map +1 -1
  8. package/dist/core/pi-model-catalog.d.ts +7 -0
  9. package/dist/core/pi-model-catalog.js +123 -26
  10. package/dist/core/pi-model-catalog.js.map +1 -1
  11. package/dist/core/pi-runner.js +12 -10
  12. package/dist/core/pi-runner.js.map +1 -1
  13. package/dist/core/pi-ui-mapper.d.ts +1 -0
  14. package/dist/core/pi-ui-mapper.js +68 -11
  15. package/dist/core/pi-ui-mapper.js.map +1 -1
  16. package/dist/core/runner-model-catalog.d.ts +2 -0
  17. package/dist/core/runner-model-catalog.js.map +1 -1
  18. package/dist/server/server.d.ts +1 -0
  19. package/dist/workflows/run.d.ts +3 -0
  20. package/dist/workflows/run.js +48 -21
  21. package/dist/workflows/run.js.map +1 -1
  22. package/package.json +3 -3
  23. package/scripts/mock-pi-rpc.mjs +49 -2
  24. package/web/dist/assets/{alert-dialog-g-GVThSw.js → alert-dialog-Bib2-aHJ.js} +1 -1
  25. package/web/dist/assets/arrow-down-DF9UfPoy.js +1 -0
  26. package/web/dist/assets/arrow-left-BVgebuvi.js +1 -0
  27. package/web/dist/assets/{centered-state-DdbE_pNl.js → centered-state-TyZe3tga.js} +1 -1
  28. package/web/dist/assets/chevron-right-W2B4c3Bn.js +1 -0
  29. package/web/dist/assets/{collapsible-R1r7zUOB.js → collapsible-DTRw1YnV.js} +1 -1
  30. package/web/dist/assets/{commit-list-Bgb1DHBX.js → commit-list-BKtzO28W.js} +1 -1
  31. package/web/dist/assets/{compare-variants-UA_0n_5a.js → compare-variants--E1SPJzi.js} +1 -1
  32. package/web/dist/assets/{diff-Cv3z9esx.js → diff-DtXK3tZy.js} +2 -2
  33. package/web/dist/assets/{diff-stat-ydfu0_5T.js → diff-stat-CJSJmLcb.js} +1 -1
  34. package/web/dist/assets/{diff-view-DnPdkmk2.js → diff-view-wZScCPoa.js} +1 -1
  35. package/web/dist/assets/{dropdown-menu-CPP9gEmn.js → dropdown-menu-CQp168wo.js} +1 -1
  36. package/web/dist/assets/editable-title-BWosq6YG.js +1 -0
  37. package/web/dist/assets/{ellipsis-vertical-WNkaehnw.js → ellipsis-vertical-BXllsyll.js} +1 -1
  38. package/web/dist/assets/{file-RvhJlchx.js → file-BgcgwEU-.js} +1 -1
  39. package/web/dist/assets/{folder-Dz-weqBo.js → folder-DGrkgLg9.js} +1 -1
  40. package/web/dist/assets/{git-toolbar-BEKuAjHk.js → git-toolbar-D9Wu2J60.js} +1 -1
  41. package/web/dist/assets/{github-CmFHDNje.js → github-xAF2VFFK.js} +1 -1
  42. package/web/dist/assets/{image-preview-DYiOSYoY.js → image-preview-Cd7b7Evu.js} +1 -1
  43. package/web/dist/assets/index-CKWqcYjr.js +7 -0
  44. package/web/dist/assets/{markdown-DQHRRO9e.js → markdown-Cvzv-jvo.js} +1 -1
  45. package/web/dist/assets/new-task-form-CZAdHx_5.js +1 -0
  46. package/web/dist/assets/{pill-FAFXjmY6.js → pill-B9vrSbT6.js} +1 -1
  47. package/web/dist/assets/{project-router-Dzc0JK2j.js → project-router-CF-1GU39.js} +1 -1
  48. package/web/dist/assets/{prompt-templates-DmqtzSPL.js → prompt-templates-CSmaXZ5G.js} +1 -1
  49. package/web/dist/assets/{refresh-cw-BP4TkA4M.js → refresh-cw-D5a-hkgq.js} +1 -1
  50. package/web/dist/assets/{repo-git-C20pc5tT.js → repo-git-BicCjDSy.js} +1 -1
  51. package/web/dist/assets/{run-diff-CvcsWwew.js → run-diff-DWzdGMTg.js} +1 -1
  52. package/web/dist/assets/run-header-Cc7KFOMX.js +1 -0
  53. package/web/dist/assets/{search-x-Drnmsmd0.js → search-x-DJIOs-nB.js} +1 -1
  54. package/web/dist/assets/{skill-empty-hint-D2l_OqZ5.js → skill-empty-hint-BcecPZ6K.js} +1 -1
  55. package/web/dist/assets/skills-BKYATWFF.js +1 -0
  56. package/web/dist/assets/{sparkles-B9ja4FHw.js → sparkles-C-1JzGqe.js} +1 -1
  57. package/web/dist/assets/{square-terminal-CB2du-YG.js → square-terminal-CnrkOecA.js} +1 -1
  58. package/web/dist/assets/{tab-link-C5FWJ66Y.js → tab-link-CQgzNUwP.js} +1 -1
  59. package/web/dist/assets/{task-changes-CuUmQArS.js → task-changes--AyxNXvn.js} +1 -1
  60. package/web/dist/assets/{task-commits-DgIWIhW9.js → task-commits-DlBBODPF.js} +1 -1
  61. package/web/dist/assets/{task-files-BeDXPyz5.js → task-files-DZ49FGVz.js} +1 -1
  62. package/web/dist/assets/task-thread-D10akRi2.js +9 -0
  63. package/web/dist/assets/{textarea-Sm6doUPO.js → textarea-BPMIukW0.js} +1 -1
  64. package/web/dist/assets/{thread-loading-DojNeADh.js → thread-loading-C9cWYGbd.js} +1 -1
  65. package/web/dist/assets/{trash-2-C_lGBXG2.js → trash-2-CwmIdbv2.js} +1 -1
  66. package/web/dist/assets/{triangle-alert-Brk_ldFl.js → triangle-alert-BU7Fnc0D.js} +1 -1
  67. package/web/dist/assets/{upload-Cxs1UROt.js → upload-B54t9i6X.js} +1 -1
  68. package/web/dist/assets/{use-desktop-Cmrz3npD.js → use-desktop-Co7z3Xov.js} +1 -1
  69. package/web/dist/assets/{use-submit-shortcut-DzeqN3GK.js → use-submit-shortcut-DfJM2Y1U.js} +1 -1
  70. package/web/dist/assets/{utils-Unt0mZvU.js → utils-BLZyueuK.js} +1 -1
  71. package/web/dist/assets/{workflows-D_GyBbup.js → workflows-CfC6b8y4.js} +1 -1
  72. package/web/dist/assets/{zoomable-image-ByySCppM.js → zoomable-image-BQMum6hd.js} +1 -1
  73. package/web/dist/index.html +22 -22
  74. package/web/dist/assets/arrow-down-BzmL0uj0.js +0 -1
  75. package/web/dist/assets/arrow-left-DtUM7GFU.js +0 -1
  76. package/web/dist/assets/chevron-right-DnLh0uM2.js +0 -1
  77. package/web/dist/assets/editable-title-D_bWdmY0.js +0 -1
  78. package/web/dist/assets/index-BQTfjxFm.js +0 -7
  79. package/web/dist/assets/new-task-form-D2KlpqYC.js +0 -1
  80. package/web/dist/assets/run-header-xFlbebSJ.js +0 -1
  81. package/web/dist/assets/skills-Cn2ppPow.js +0 -1
  82. package/web/dist/assets/task-thread-2nmi0vcz.js +0 -9
@@ -62,6 +62,23 @@ const MONITORING_MARKER_RE = /CEZ:MONITORING\s*$/;
62
62
  function isClaudeScheduleWakeup(event, backend) {
63
63
  return backend === 'claude' && event.type === 'tool-call' && event.tool === 'ScheduleWakeup';
64
64
  }
65
+ /** Events that prove a parked backend has resumed work on its own. Session
66
+ * diagnostics and completed-turn metadata are passive and must not disarm the
67
+ * only wake source for a truly parked monitor. */
68
+ function isRunnerActivity(event) {
69
+ switch (event.type) {
70
+ case 'turn.started':
71
+ case 'item.started':
72
+ case 'item.delta':
73
+ case 'item.updated':
74
+ case 'item.completed':
75
+ case 'plan.updated':
76
+ case 'image':
77
+ return true;
78
+ default:
79
+ return false;
80
+ }
81
+ }
65
82
  /**
66
83
  * Preserve boundaries between complete assistant text blocks while a turn is
67
84
  * accumulated for marker parsing. The runners join these same v1 blocks with
@@ -1699,6 +1716,18 @@ export class RunManager {
1699
1716
  }
1700
1717
  return delivered;
1701
1718
  }
1719
+ /** Restore active lifecycle/accounting when either Cezar or the backend
1720
+ * resumes work in a parked session. */
1721
+ resumeParkedRun(runId, state) {
1722
+ this.clearIdleTimer(state);
1723
+ this.clearMonitoringWakeTimer(state, runId);
1724
+ this.waiting.delete(runId);
1725
+ this.monitoring.delete(runId);
1726
+ this.store.updateRun(runId, { status: 'running', activity: undefined });
1727
+ if (state.currentStepId) {
1728
+ this.store.updateStep(runId, state.currentStepId, { status: 'running' });
1729
+ }
1730
+ }
1702
1731
  /** Shared live-session delivery. Synthetic scheduler prompts reuse lifecycle
1703
1732
  * bookkeeping without masquerading as user-authored transcript messages. */
1704
1733
  deliverMessage(runId, content, userAuthored) {
@@ -1733,18 +1762,8 @@ export class RunManager {
1733
1762
  const expanded = userAuthored ? expandRegistrySlashSkill(content, state.skills ?? []) : content;
1734
1763
  const deliverable = persisted.length ? [...expanded, pastedAttachmentsNote(persisted)] : expanded;
1735
1764
  const delivered = state.session.sendMessage(deliverable);
1736
- if (delivered) {
1737
- this.clearIdleTimer(state);
1738
- this.clearMonitoringWakeTimer(state, runId);
1739
- this.waiting.delete(runId); // resumed — the run counts against slots again
1740
- this.monitoring.delete(runId);
1741
- // Clear any `monitoring` activity — the agent is actively working again
1742
- // (spec 2026-07-18-subagent-monitoring-status, #490).
1743
- this.store.updateRun(runId, { status: 'running', activity: undefined });
1744
- if (state.currentStepId) {
1745
- this.store.updateStep(runId, state.currentStepId, { status: 'running' });
1746
- }
1747
- }
1765
+ if (delivered)
1766
+ this.resumeParkedRun(runId, state);
1748
1767
  return delivered;
1749
1768
  }
1750
1769
  /** Close the open session gracefully — the run then completes as `done`
@@ -2843,16 +2862,24 @@ export class RunManager {
2843
2862
  handleRunnerUiEvent(runId, state, sink, event) {
2844
2863
  this.recordUsageUiEvent(runId, state, event);
2845
2864
  sink.handle(event);
2846
- if (event.type !== 'ask.requested' || state.cancelled)
2865
+ if (state.cancelled)
2847
2866
  return;
2848
- this.clearIdleTimer(state);
2849
- this.monitoring.delete(runId);
2850
- this.clearMonitoringWakeTimer(state, runId);
2851
- this.waiting.add(runId);
2852
- this.store.updateRun(runId, { status: 'waiting', activity: undefined });
2853
- if (state.currentStepId)
2854
- this.store.updateStep(runId, state.currentStepId, { status: 'waiting' });
2855
- this.releaseSlot();
2867
+ if (event.type === 'ask.requested') {
2868
+ this.clearIdleTimer(state);
2869
+ this.monitoring.delete(runId);
2870
+ this.clearMonitoringWakeTimer(state, runId);
2871
+ this.waiting.add(runId);
2872
+ this.store.updateRun(runId, { status: 'waiting', activity: undefined });
2873
+ if (state.currentStepId)
2874
+ this.store.updateStep(runId, state.currentStepId, { status: 'waiting' });
2875
+ this.releaseSlot();
2876
+ return;
2877
+ }
2878
+ // Pi can resume autonomously when an async subagent completes. Work-producing
2879
+ // events prove the backend owns an active turn again, so cancel its stale
2880
+ // scheduler wake and restore active slot accounting.
2881
+ if (this.monitoring.has(runId) && isRunnerActivity(event))
2882
+ this.resumeParkedRun(runId, state);
2856
2883
  }
2857
2884
  /** Persist the invocation checkpoint before launching a runner. A throw or
2858
2885
  * process exit before `turn.started` therefore leaves a durable mismatch. */