@wjarka/cezarion 0.16.0-dev.1503 → 0.16.0-pr923.1504
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 +15 -4
- package/dist/contract/index.js +3 -0
- package/dist/contract/runs.d.ts +30 -0
- package/dist/contract/skills.d.ts +4 -0
- package/dist/core/agent-runner.d.ts +9 -6
- package/dist/core/agent-runner.js +4 -2
- package/dist/core/agent-runner.js.map +1 -1
- package/dist/core/cursor-print-capabilities.d.ts +12 -0
- package/dist/core/cursor-print-capabilities.js +77 -0
- package/dist/core/cursor-print-capabilities.js.map +1 -0
- package/dist/core/cursor-print-process.d.ts +31 -0
- package/dist/core/cursor-print-process.js +129 -0
- package/dist/core/cursor-print-process.js.map +1 -0
- package/dist/core/cursor-print-runner.d.ts +26 -0
- package/dist/core/cursor-print-runner.js +512 -0
- package/dist/core/cursor-print-runner.js.map +1 -0
- package/dist/core/cursor-print-tool-catalog.d.ts +6 -0
- package/dist/core/cursor-print-tool-catalog.js +78 -0
- package/dist/core/cursor-print-tool-catalog.js.map +1 -0
- package/dist/core/cursor-print-ui-mapper.d.ts +47 -0
- package/dist/core/cursor-print-ui-mapper.js +573 -0
- package/dist/core/cursor-print-ui-mapper.js.map +1 -0
- package/dist/core/cursor-runner.d.ts +24 -0
- package/dist/core/cursor-runner.js +146 -0
- package/dist/core/cursor-runner.js.map +1 -0
- package/dist/core/process-usage.d.ts +5 -0
- package/dist/core/process-usage.js +24 -4
- package/dist/core/process-usage.js.map +1 -1
- package/dist/core/runner-factory.d.ts +4 -1
- package/dist/core/runner-factory.js +3 -3
- package/dist/core/runner-factory.js.map +1 -1
- package/dist/delegation/transport.d.ts +13 -13
- package/dist/runs/store.d.ts +9 -0
- package/dist/runs/store.js +1 -0
- package/dist/runs/store.js.map +1 -1
- package/dist/server/server.d.ts +118 -92
- package/dist/workflows/run.js +39 -8
- package/dist/workflows/run.js.map +1 -1
- package/package.json +3 -3
- package/scripts/mock-ci-tool.mjs +12 -4
- package/scripts/mock-cursor-acp.mjs +1 -0
- package/scripts/mock-cursor-print.mjs +196 -0
- package/scripts/probe-cursor-print.mjs +616 -0
- package/web/dist/assets/{agent-accounts-CFOBMVHc.js → agent-accounts-CDhVzwnd.js} +1 -1
- package/web/dist/assets/{alert-dialog-BrpNUwMt.js → alert-dialog-A0-kEfJK.js} +1 -1
- package/web/dist/assets/{button-C_rd7CPp.js → button-Jj1Itx83.js} +1 -1
- package/web/dist/assets/{compare-variants-D6WXhvXA.js → compare-variants-aor2j4bO.js} +1 -1
- package/web/dist/assets/{diff-DrEARXTV.js → diff-CDL5SDNO.js} +2 -2
- package/web/dist/assets/{diff-controls-B1-j7nFg.js → diff-controls-BWAkxipD.js} +1 -1
- package/web/dist/assets/{diff-view-DvGLjdTk.js → diff-view-DWh9FnNY.js} +1 -1
- package/web/dist/assets/{dropdown-menu-BegOZFrj.js → dropdown-menu-Ddqp8eUw.js} +1 -1
- package/web/dist/assets/{format-DpNe3S0A.js → format-DTNjugyE.js} +1 -1
- package/web/dist/assets/{git-toolbar-Cw4ljmhB.js → git-toolbar-B4rwm9Lr.js} +1 -1
- package/web/dist/assets/{github-CfV5sqL0.js → github-DgMD1v4U.js} +1 -1
- package/web/dist/assets/{image-preview-FOEfqpZP.js → image-preview-Dy5i96RC.js} +1 -1
- package/web/dist/assets/{index-DgWWlOLy.js → index-BfAearY6.js} +4 -4
- package/web/dist/assets/{nav-row-styles-vp2JbhuJ.js → nav-row-styles-Ci-Ke7wG.js} +1 -1
- package/web/dist/assets/{popover-BohP6WTx.js → popover-BjjDOSGv.js} +1 -1
- package/web/dist/assets/{preview-pane-connected-qTA5KNoJ.js → preview-pane-connected-Nv_nhV63.js} +1 -1
- package/web/dist/assets/{preview-state-vuMviq6q.js → preview-state-D8-YBJ6m.js} +1 -1
- package/web/dist/assets/{prompt-templates-Cubdut_C.js → prompt-templates-DFeXUVOZ.js} +1 -1
- package/web/dist/assets/{repo-git-Cf4t5PD0.js → repo-git-DcWh5s_b.js} +1 -1
- package/web/dist/assets/{run-diff-BpkUW37Z.js → run-diff-1ZzFrOx1.js} +1 -1
- package/web/dist/assets/{run-header-68WHf9wV.js → run-header-CPoYzbAy.js} +1 -1
- package/web/dist/assets/{skills-DiVIgKeU.js → skills-CnLazLgF.js} +1 -1
- package/web/dist/assets/{status-dot-CqTJHSP9.js → status-dot-DwFmt_Jg.js} +1 -1
- package/web/dist/assets/{tab-link-B07Hu4QX.js → tab-link-COpvArgR.js} +1 -1
- package/web/dist/assets/{task-changes--lQF6EYf.js → task-changes-CY-mi-mC.js} +1 -1
- package/web/dist/assets/{task-commits-Cx0qy4DN.js → task-commits-EvLi8T4a.js} +1 -1
- package/web/dist/assets/{task-files-D50s-gKW.js → task-files-BR3d8X2U.js} +1 -1
- package/web/dist/assets/{task-github-item-DaqmSwYT.js → task-github-item-BVsPg9RI.js} +1 -1
- package/web/dist/assets/{task-thread-BPQ64lui.js → task-thread-DQCsu_v8.js} +1 -1
- package/web/dist/assets/{textarea-D20O4Pw0.js → textarea-BbNV5Uo2.js} +1 -1
- package/web/dist/assets/{thread-state-DWcFMrvb.js → thread-state-DTkIvHsU.js} +1 -1
- package/web/dist/assets/{use-hand-to-agent-state-Cy9eyyfL.js → use-hand-to-agent-state-DT-QBsPC.js} +1 -1
- package/web/dist/assets/{utils-JsL3ZsJf.js → utils-POVs3UKu.js} +1 -1
- package/web/dist/assets/{workflows-jwG7uxqi.js → workflows-BTE-5RwX.js} +1 -1
- package/web/dist/assets/{zoomable-image-BJJ64KGc.js → zoomable-image-cL1VgYK4.js} +1 -1
- package/web/dist/index.html +13 -13
package/dist/server/server.d.ts
CHANGED
|
@@ -3126,6 +3126,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
3126
3126
|
finishedAt?: string | undefined;
|
|
3127
3127
|
error?: string | undefined;
|
|
3128
3128
|
sessionId?: string | undefined;
|
|
3129
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
3129
3130
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
3130
3131
|
profileId?: string | undefined;
|
|
3131
3132
|
costUsd?: number | undefined;
|
|
@@ -4106,6 +4107,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
4106
4107
|
finishedAt?: string | undefined;
|
|
4107
4108
|
error?: string | undefined;
|
|
4108
4109
|
sessionId?: string | undefined;
|
|
4110
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
4109
4111
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
4110
4112
|
profileId?: string | undefined;
|
|
4111
4113
|
costUsd?: number | undefined;
|
|
@@ -4742,6 +4744,19 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
4742
4744
|
} & {
|
|
4743
4745
|
"/repo/commit/:sha": {
|
|
4744
4746
|
$get: {
|
|
4747
|
+
output: string;
|
|
4748
|
+
outputFormat: "text";
|
|
4749
|
+
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
4750
|
+
input: {
|
|
4751
|
+
query: {
|
|
4752
|
+
structured?: string | undefined;
|
|
4753
|
+
};
|
|
4754
|
+
} & {
|
|
4755
|
+
param: {
|
|
4756
|
+
sha: string;
|
|
4757
|
+
};
|
|
4758
|
+
};
|
|
4759
|
+
} | {
|
|
4745
4760
|
output: {
|
|
4746
4761
|
error: string;
|
|
4747
4762
|
code?: "invalid_input" | undefined;
|
|
@@ -4805,19 +4820,6 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
4805
4820
|
sha: string;
|
|
4806
4821
|
};
|
|
4807
4822
|
};
|
|
4808
|
-
} | {
|
|
4809
|
-
output: string;
|
|
4810
|
-
outputFormat: "text";
|
|
4811
|
-
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
4812
|
-
input: {
|
|
4813
|
-
query: {
|
|
4814
|
-
structured?: string | undefined;
|
|
4815
|
-
};
|
|
4816
|
-
} & {
|
|
4817
|
-
param: {
|
|
4818
|
-
sha: string;
|
|
4819
|
-
};
|
|
4820
|
-
};
|
|
4821
4823
|
};
|
|
4822
4824
|
};
|
|
4823
4825
|
} & {
|
|
@@ -7158,6 +7160,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
7158
7160
|
finishedAt?: string | undefined;
|
|
7159
7161
|
error?: string | undefined;
|
|
7160
7162
|
sessionId?: string | undefined;
|
|
7163
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
7161
7164
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
7162
7165
|
profileId?: string | undefined;
|
|
7163
7166
|
costUsd?: number | undefined;
|
|
@@ -7557,11 +7560,22 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
7557
7560
|
"/runs/:id/worker-destroy": {
|
|
7558
7561
|
$post: {
|
|
7559
7562
|
output: {
|
|
7560
|
-
|
|
7561
|
-
|
|
7563
|
+
readonly code: "capacity_limit" | "denied_scope" | "incompatible_state" | "incomplete_cleanup" | "invalid_baseline" | "invalid_input" | "unauthenticated" | "unavailable_diff" | "unavailable_transport";
|
|
7564
|
+
readonly error: string;
|
|
7565
|
+
readonly modelChoices?: {
|
|
7566
|
+
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
7567
|
+
requestedModel: string;
|
|
7568
|
+
availableModels: {
|
|
7569
|
+
id: string;
|
|
7570
|
+
label: string;
|
|
7571
|
+
description: string;
|
|
7572
|
+
effortLevels?: ("high" | "low" | "max" | "medium" | "xhigh")[] | undefined;
|
|
7573
|
+
}[];
|
|
7574
|
+
otherRunners: ("claude" | "codex" | "cursor" | "omp" | "opencode" | "pi")[];
|
|
7575
|
+
} | undefined;
|
|
7562
7576
|
};
|
|
7563
7577
|
outputFormat: "json";
|
|
7564
|
-
status: 400;
|
|
7578
|
+
status: 400 | 401 | 403 | 409 | 503;
|
|
7565
7579
|
input: {
|
|
7566
7580
|
query: {
|
|
7567
7581
|
[x: string]: string | string[];
|
|
@@ -7575,22 +7589,11 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
7575
7589
|
};
|
|
7576
7590
|
} | {
|
|
7577
7591
|
output: {
|
|
7578
|
-
|
|
7579
|
-
|
|
7580
|
-
readonly modelChoices?: {
|
|
7581
|
-
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
7582
|
-
requestedModel: string;
|
|
7583
|
-
availableModels: {
|
|
7584
|
-
id: string;
|
|
7585
|
-
label: string;
|
|
7586
|
-
description: string;
|
|
7587
|
-
effortLevels?: ("high" | "low" | "max" | "medium" | "xhigh")[] | undefined;
|
|
7588
|
-
}[];
|
|
7589
|
-
otherRunners: ("claude" | "codex" | "cursor" | "omp" | "opencode" | "pi")[];
|
|
7590
|
-
} | undefined;
|
|
7592
|
+
error: string;
|
|
7593
|
+
code?: "invalid_input" | undefined;
|
|
7591
7594
|
};
|
|
7592
7595
|
outputFormat: "json";
|
|
7593
|
-
status: 400
|
|
7596
|
+
status: 400;
|
|
7594
7597
|
input: {
|
|
7595
7598
|
query: {
|
|
7596
7599
|
[x: string]: string | string[];
|
|
@@ -8124,6 +8127,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
8124
8127
|
finishedAt?: string | undefined;
|
|
8125
8128
|
error?: string | undefined;
|
|
8126
8129
|
sessionId?: string | undefined;
|
|
8130
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
8127
8131
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
8128
8132
|
profileId?: string | undefined;
|
|
8129
8133
|
costUsd?: number | undefined;
|
|
@@ -8636,6 +8640,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
8636
8640
|
finishedAt?: string | undefined;
|
|
8637
8641
|
error?: string | undefined;
|
|
8638
8642
|
sessionId?: string | undefined;
|
|
8643
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
8639
8644
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
8640
8645
|
profileId?: string | undefined;
|
|
8641
8646
|
costUsd?: number | undefined;
|
|
@@ -9149,6 +9154,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
9149
9154
|
finishedAt?: string | undefined;
|
|
9150
9155
|
error?: string | undefined;
|
|
9151
9156
|
sessionId?: string | undefined;
|
|
9157
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
9152
9158
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
9153
9159
|
profileId?: string | undefined;
|
|
9154
9160
|
costUsd?: number | undefined;
|
|
@@ -9689,6 +9695,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
9689
9695
|
finishedAt?: string | undefined;
|
|
9690
9696
|
error?: string | undefined;
|
|
9691
9697
|
sessionId?: string | undefined;
|
|
9698
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
9692
9699
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
9693
9700
|
profileId?: string | undefined;
|
|
9694
9701
|
costUsd?: number | undefined;
|
|
@@ -10177,6 +10184,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
10177
10184
|
finishedAt?: string | undefined;
|
|
10178
10185
|
error?: string | undefined;
|
|
10179
10186
|
sessionId?: string | undefined;
|
|
10187
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
10180
10188
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
10181
10189
|
profileId?: string | undefined;
|
|
10182
10190
|
costUsd?: number | undefined;
|
|
@@ -10665,6 +10673,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
10665
10673
|
finishedAt?: string | undefined;
|
|
10666
10674
|
error?: string | undefined;
|
|
10667
10675
|
sessionId?: string | undefined;
|
|
10676
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
10668
10677
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
10669
10678
|
profileId?: string | undefined;
|
|
10670
10679
|
costUsd?: number | undefined;
|
|
@@ -11173,6 +11182,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
11173
11182
|
finishedAt?: string | undefined;
|
|
11174
11183
|
error?: string | undefined;
|
|
11175
11184
|
sessionId?: string | undefined;
|
|
11185
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
11176
11186
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
11177
11187
|
profileId?: string | undefined;
|
|
11178
11188
|
costUsd?: number | undefined;
|
|
@@ -11820,6 +11830,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
11820
11830
|
finishedAt?: string | undefined;
|
|
11821
11831
|
error?: string | undefined;
|
|
11822
11832
|
sessionId?: string | undefined;
|
|
11833
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
11823
11834
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
11824
11835
|
profileId?: string | undefined;
|
|
11825
11836
|
costUsd?: number | undefined;
|
|
@@ -12333,6 +12344,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
12333
12344
|
finishedAt?: string | undefined;
|
|
12334
12345
|
error?: string | undefined;
|
|
12335
12346
|
sessionId?: string | undefined;
|
|
12347
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
12336
12348
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
12337
12349
|
profileId?: string | undefined;
|
|
12338
12350
|
costUsd?: number | undefined;
|
|
@@ -12950,6 +12962,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
12950
12962
|
finishedAt?: string | undefined;
|
|
12951
12963
|
error?: string | undefined;
|
|
12952
12964
|
sessionId?: string | undefined;
|
|
12965
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
12953
12966
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
12954
12967
|
profileId?: string | undefined;
|
|
12955
12968
|
costUsd?: number | undefined;
|
|
@@ -13571,20 +13584,20 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
13571
13584
|
} & {
|
|
13572
13585
|
"/runs/:id/handoff": {
|
|
13573
13586
|
$get: {
|
|
13574
|
-
output:
|
|
13575
|
-
|
|
13576
|
-
|
|
13577
|
-
outputFormat: "json";
|
|
13578
|
-
status: 404;
|
|
13587
|
+
output: string;
|
|
13588
|
+
outputFormat: "text";
|
|
13589
|
+
status: 200;
|
|
13579
13590
|
input: {
|
|
13580
13591
|
param: {
|
|
13581
13592
|
id: string;
|
|
13582
13593
|
};
|
|
13583
13594
|
};
|
|
13584
13595
|
} | {
|
|
13585
|
-
output:
|
|
13586
|
-
|
|
13587
|
-
|
|
13596
|
+
output: {
|
|
13597
|
+
error: string;
|
|
13598
|
+
};
|
|
13599
|
+
outputFormat: "json";
|
|
13600
|
+
status: 404;
|
|
13588
13601
|
input: {
|
|
13589
13602
|
param: {
|
|
13590
13603
|
id: string;
|
|
@@ -13622,20 +13635,20 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
13622
13635
|
} & {
|
|
13623
13636
|
"/runs/:id/diff": {
|
|
13624
13637
|
$get: {
|
|
13625
|
-
output:
|
|
13626
|
-
|
|
13627
|
-
|
|
13628
|
-
outputFormat: "json";
|
|
13629
|
-
status: 404;
|
|
13638
|
+
output: string;
|
|
13639
|
+
outputFormat: "text";
|
|
13640
|
+
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
13630
13641
|
input: {
|
|
13631
13642
|
param: {
|
|
13632
13643
|
id: string;
|
|
13633
13644
|
};
|
|
13634
13645
|
};
|
|
13635
13646
|
} | {
|
|
13636
|
-
output:
|
|
13637
|
-
|
|
13638
|
-
|
|
13647
|
+
output: {
|
|
13648
|
+
error: string;
|
|
13649
|
+
};
|
|
13650
|
+
outputFormat: "json";
|
|
13651
|
+
status: 404;
|
|
13639
13652
|
input: {
|
|
13640
13653
|
param: {
|
|
13641
13654
|
id: string;
|
|
@@ -15152,6 +15165,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
15152
15165
|
finishedAt?: string | undefined;
|
|
15153
15166
|
error?: string | undefined;
|
|
15154
15167
|
sessionId?: string | undefined;
|
|
15168
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
15155
15169
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
15156
15170
|
profileId?: string | undefined;
|
|
15157
15171
|
costUsd?: number | undefined;
|
|
@@ -16132,6 +16146,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
16132
16146
|
finishedAt?: string | undefined;
|
|
16133
16147
|
error?: string | undefined;
|
|
16134
16148
|
sessionId?: string | undefined;
|
|
16149
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
16135
16150
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
16136
16151
|
profileId?: string | undefined;
|
|
16137
16152
|
costUsd?: number | undefined;
|
|
@@ -16768,6 +16783,19 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
16768
16783
|
} & {
|
|
16769
16784
|
"/repo/commit/:sha": {
|
|
16770
16785
|
$get: {
|
|
16786
|
+
output: string;
|
|
16787
|
+
outputFormat: "text";
|
|
16788
|
+
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
16789
|
+
input: {
|
|
16790
|
+
query: {
|
|
16791
|
+
structured?: string | undefined;
|
|
16792
|
+
};
|
|
16793
|
+
} & {
|
|
16794
|
+
param: {
|
|
16795
|
+
sha: string;
|
|
16796
|
+
};
|
|
16797
|
+
};
|
|
16798
|
+
} | {
|
|
16771
16799
|
output: {
|
|
16772
16800
|
error: string;
|
|
16773
16801
|
code?: "invalid_input" | undefined;
|
|
@@ -16831,19 +16859,6 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
16831
16859
|
sha: string;
|
|
16832
16860
|
};
|
|
16833
16861
|
};
|
|
16834
|
-
} | {
|
|
16835
|
-
output: string;
|
|
16836
|
-
outputFormat: "text";
|
|
16837
|
-
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
16838
|
-
input: {
|
|
16839
|
-
query: {
|
|
16840
|
-
structured?: string | undefined;
|
|
16841
|
-
};
|
|
16842
|
-
} & {
|
|
16843
|
-
param: {
|
|
16844
|
-
sha: string;
|
|
16845
|
-
};
|
|
16846
|
-
};
|
|
16847
16862
|
};
|
|
16848
16863
|
};
|
|
16849
16864
|
} & {
|
|
@@ -19184,6 +19199,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
19184
19199
|
finishedAt?: string | undefined;
|
|
19185
19200
|
error?: string | undefined;
|
|
19186
19201
|
sessionId?: string | undefined;
|
|
19202
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
19187
19203
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
19188
19204
|
profileId?: string | undefined;
|
|
19189
19205
|
costUsd?: number | undefined;
|
|
@@ -19583,11 +19599,22 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
19583
19599
|
"/runs/:id/worker-destroy": {
|
|
19584
19600
|
$post: {
|
|
19585
19601
|
output: {
|
|
19586
|
-
|
|
19587
|
-
|
|
19602
|
+
readonly code: "capacity_limit" | "denied_scope" | "incompatible_state" | "incomplete_cleanup" | "invalid_baseline" | "invalid_input" | "unauthenticated" | "unavailable_diff" | "unavailable_transport";
|
|
19603
|
+
readonly error: string;
|
|
19604
|
+
readonly modelChoices?: {
|
|
19605
|
+
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
19606
|
+
requestedModel: string;
|
|
19607
|
+
availableModels: {
|
|
19608
|
+
id: string;
|
|
19609
|
+
label: string;
|
|
19610
|
+
description: string;
|
|
19611
|
+
effortLevels?: ("high" | "low" | "max" | "medium" | "xhigh")[] | undefined;
|
|
19612
|
+
}[];
|
|
19613
|
+
otherRunners: ("claude" | "codex" | "cursor" | "omp" | "opencode" | "pi")[];
|
|
19614
|
+
} | undefined;
|
|
19588
19615
|
};
|
|
19589
19616
|
outputFormat: "json";
|
|
19590
|
-
status: 400;
|
|
19617
|
+
status: 400 | 401 | 403 | 409 | 503;
|
|
19591
19618
|
input: {
|
|
19592
19619
|
query: {
|
|
19593
19620
|
[x: string]: string | string[];
|
|
@@ -19601,22 +19628,11 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
19601
19628
|
};
|
|
19602
19629
|
} | {
|
|
19603
19630
|
output: {
|
|
19604
|
-
|
|
19605
|
-
|
|
19606
|
-
readonly modelChoices?: {
|
|
19607
|
-
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
19608
|
-
requestedModel: string;
|
|
19609
|
-
availableModels: {
|
|
19610
|
-
id: string;
|
|
19611
|
-
label: string;
|
|
19612
|
-
description: string;
|
|
19613
|
-
effortLevels?: ("high" | "low" | "max" | "medium" | "xhigh")[] | undefined;
|
|
19614
|
-
}[];
|
|
19615
|
-
otherRunners: ("claude" | "codex" | "cursor" | "omp" | "opencode" | "pi")[];
|
|
19616
|
-
} | undefined;
|
|
19631
|
+
error: string;
|
|
19632
|
+
code?: "invalid_input" | undefined;
|
|
19617
19633
|
};
|
|
19618
19634
|
outputFormat: "json";
|
|
19619
|
-
status: 400
|
|
19635
|
+
status: 400;
|
|
19620
19636
|
input: {
|
|
19621
19637
|
query: {
|
|
19622
19638
|
[x: string]: string | string[];
|
|
@@ -20150,6 +20166,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
20150
20166
|
finishedAt?: string | undefined;
|
|
20151
20167
|
error?: string | undefined;
|
|
20152
20168
|
sessionId?: string | undefined;
|
|
20169
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
20153
20170
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
20154
20171
|
profileId?: string | undefined;
|
|
20155
20172
|
costUsd?: number | undefined;
|
|
@@ -20662,6 +20679,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
20662
20679
|
finishedAt?: string | undefined;
|
|
20663
20680
|
error?: string | undefined;
|
|
20664
20681
|
sessionId?: string | undefined;
|
|
20682
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
20665
20683
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
20666
20684
|
profileId?: string | undefined;
|
|
20667
20685
|
costUsd?: number | undefined;
|
|
@@ -21175,6 +21193,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
21175
21193
|
finishedAt?: string | undefined;
|
|
21176
21194
|
error?: string | undefined;
|
|
21177
21195
|
sessionId?: string | undefined;
|
|
21196
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
21178
21197
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
21179
21198
|
profileId?: string | undefined;
|
|
21180
21199
|
costUsd?: number | undefined;
|
|
@@ -21715,6 +21734,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
21715
21734
|
finishedAt?: string | undefined;
|
|
21716
21735
|
error?: string | undefined;
|
|
21717
21736
|
sessionId?: string | undefined;
|
|
21737
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
21718
21738
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
21719
21739
|
profileId?: string | undefined;
|
|
21720
21740
|
costUsd?: number | undefined;
|
|
@@ -22203,6 +22223,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
22203
22223
|
finishedAt?: string | undefined;
|
|
22204
22224
|
error?: string | undefined;
|
|
22205
22225
|
sessionId?: string | undefined;
|
|
22226
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
22206
22227
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
22207
22228
|
profileId?: string | undefined;
|
|
22208
22229
|
costUsd?: number | undefined;
|
|
@@ -22691,6 +22712,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
22691
22712
|
finishedAt?: string | undefined;
|
|
22692
22713
|
error?: string | undefined;
|
|
22693
22714
|
sessionId?: string | undefined;
|
|
22715
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
22694
22716
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
22695
22717
|
profileId?: string | undefined;
|
|
22696
22718
|
costUsd?: number | undefined;
|
|
@@ -23199,6 +23221,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
23199
23221
|
finishedAt?: string | undefined;
|
|
23200
23222
|
error?: string | undefined;
|
|
23201
23223
|
sessionId?: string | undefined;
|
|
23224
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
23202
23225
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
23203
23226
|
profileId?: string | undefined;
|
|
23204
23227
|
costUsd?: number | undefined;
|
|
@@ -23846,6 +23869,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
23846
23869
|
finishedAt?: string | undefined;
|
|
23847
23870
|
error?: string | undefined;
|
|
23848
23871
|
sessionId?: string | undefined;
|
|
23872
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
23849
23873
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
23850
23874
|
profileId?: string | undefined;
|
|
23851
23875
|
costUsd?: number | undefined;
|
|
@@ -24359,6 +24383,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
24359
24383
|
finishedAt?: string | undefined;
|
|
24360
24384
|
error?: string | undefined;
|
|
24361
24385
|
sessionId?: string | undefined;
|
|
24386
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
24362
24387
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
24363
24388
|
profileId?: string | undefined;
|
|
24364
24389
|
costUsd?: number | undefined;
|
|
@@ -24976,6 +25001,7 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
24976
25001
|
finishedAt?: string | undefined;
|
|
24977
25002
|
error?: string | undefined;
|
|
24978
25003
|
sessionId?: string | undefined;
|
|
25004
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
24979
25005
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
24980
25006
|
profileId?: string | undefined;
|
|
24981
25007
|
costUsd?: number | undefined;
|
|
@@ -25597,20 +25623,20 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
25597
25623
|
} & {
|
|
25598
25624
|
"/runs/:id/handoff": {
|
|
25599
25625
|
$get: {
|
|
25600
|
-
output:
|
|
25601
|
-
|
|
25602
|
-
|
|
25603
|
-
outputFormat: "json";
|
|
25604
|
-
status: 404;
|
|
25626
|
+
output: string;
|
|
25627
|
+
outputFormat: "text";
|
|
25628
|
+
status: 200;
|
|
25605
25629
|
input: {
|
|
25606
25630
|
param: {
|
|
25607
25631
|
id: string;
|
|
25608
25632
|
};
|
|
25609
25633
|
};
|
|
25610
25634
|
} | {
|
|
25611
|
-
output:
|
|
25612
|
-
|
|
25613
|
-
|
|
25635
|
+
output: {
|
|
25636
|
+
error: string;
|
|
25637
|
+
};
|
|
25638
|
+
outputFormat: "json";
|
|
25639
|
+
status: 404;
|
|
25614
25640
|
input: {
|
|
25615
25641
|
param: {
|
|
25616
25642
|
id: string;
|
|
@@ -25648,20 +25674,20 @@ export declare function createApp(deps: ServerDeps): import("hono/hono-base").Ho
|
|
|
25648
25674
|
} & {
|
|
25649
25675
|
"/runs/:id/diff": {
|
|
25650
25676
|
$get: {
|
|
25651
|
-
output:
|
|
25652
|
-
|
|
25653
|
-
|
|
25654
|
-
outputFormat: "json";
|
|
25655
|
-
status: 404;
|
|
25677
|
+
output: string;
|
|
25678
|
+
outputFormat: "text";
|
|
25679
|
+
status: import("hono/utils/http-status").ContentfulStatusCode;
|
|
25656
25680
|
input: {
|
|
25657
25681
|
param: {
|
|
25658
25682
|
id: string;
|
|
25659
25683
|
};
|
|
25660
25684
|
};
|
|
25661
25685
|
} | {
|
|
25662
|
-
output:
|
|
25663
|
-
|
|
25664
|
-
|
|
25686
|
+
output: {
|
|
25687
|
+
error: string;
|
|
25688
|
+
};
|
|
25689
|
+
outputFormat: "json";
|
|
25690
|
+
status: 404;
|
|
25665
25691
|
input: {
|
|
25666
25692
|
param: {
|
|
25667
25693
|
id: string;
|
package/dist/workflows/run.js
CHANGED
|
@@ -11,7 +11,7 @@ import { randomUUID } from 'node:crypto';
|
|
|
11
11
|
import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
12
12
|
import { dirname, join } from 'node:path';
|
|
13
13
|
import { parseAskMarkerResult, stripAskMarker, } from '../core/ask.js';
|
|
14
|
-
import { hasRegisteredRunProcess, onUsage, registerRunProcess, unregisterRunProcess } from '../core/process-usage.js';
|
|
14
|
+
import { hasRegisteredRunProcess, onUsage, registerRunProcess, replaceRunProcess, unregisterRunProcess } from '../core/process-usage.js';
|
|
15
15
|
import { processGroupAlive, processGroupOf, sessionGroupOf, signalProcessGroup } from '../core/session-process.js';
|
|
16
16
|
import { WorkerScratchCleanup } from '../delegation/scratch-cleanup.js';
|
|
17
17
|
import { noJitter, ORPHAN_BACKOFF, retryDelayMs } from '../delegation/retry-backoff.js';
|
|
@@ -2225,9 +2225,18 @@ export class RunManager {
|
|
|
2225
2225
|
const sessionAccount = sessionStep.profileId ?? DEFAULT_AGENT_ACCOUNT_ID;
|
|
2226
2226
|
const agentProfile = resumeIdentity?.account.profileId ?? run.agentProfile;
|
|
2227
2227
|
const sameAccount = agentProfile === undefined || agentProfile === sessionAccount;
|
|
2228
|
+
const recoveredSessionId = sessionBackend === backend && sameAccount
|
|
2229
|
+
? this.resumableSessionId(run.id, sessionStep) : undefined;
|
|
2230
|
+
if (sessionStep.sessionTransport === 'cursor-print' && sessionBackend === backend && sameAccount && !recoveredSessionId) {
|
|
2231
|
+
const error = 'Cursor print session identity lacks a matching recorded session event';
|
|
2232
|
+
const finishedAt = new Date().toISOString();
|
|
2233
|
+
this.store.updateStep(run.id, queuedContinuation.id, { status: 'failed', error, finishedAt });
|
|
2234
|
+
this.store.updateRun(run.id, { status: 'failed', error, finishedAt, currentStepId: undefined });
|
|
2235
|
+
return;
|
|
2236
|
+
}
|
|
2228
2237
|
this.pendingContinuations.set(run.id, {
|
|
2229
2238
|
stepId: queuedContinuation.id,
|
|
2230
|
-
sessionId:
|
|
2239
|
+
sessionId: recoveredSessionId,
|
|
2231
2240
|
backend,
|
|
2232
2241
|
prompt: run.continuationMessage?.text ?? RESTART_CONTINUATION_PROMPT,
|
|
2233
2242
|
images: [],
|
|
@@ -5285,7 +5294,18 @@ export class RunManager {
|
|
|
5285
5294
|
if (!sessionStep?.sessionId)
|
|
5286
5295
|
return undefined;
|
|
5287
5296
|
if ((sessionStep.backend ?? this.store.getRun(runId)?.runner) === 'cursor') {
|
|
5288
|
-
const
|
|
5297
|
+
const run = this.store.getRun(runId);
|
|
5298
|
+
const sessionStepIndex = run?.steps.findIndex((step) => step.id === sessionStep.id) ?? -1;
|
|
5299
|
+
// A Continue records the existing ID before the resumed process emits its
|
|
5300
|
+
// own session event. After a crash, its original owning step still holds
|
|
5301
|
+
// the print-session proof; later steps cannot establish that proof.
|
|
5302
|
+
const printEvidenceSteps = new Set(run?.steps.slice(0, sessionStepIndex + 1)
|
|
5303
|
+
.filter((step) => step.sessionId === sessionStep.sessionId && step.sessionTransport === 'cursor-print')
|
|
5304
|
+
.map((step) => step.id));
|
|
5305
|
+
const confirmed = this.store.readEvents(runId).some((event) => event.type === 'session' && event.sessionId === sessionStep.sessionId &&
|
|
5306
|
+
(sessionStep.sessionTransport !== 'cursor-print' ||
|
|
5307
|
+
(event.stepId !== undefined && printEvidenceSteps.has(event.stepId) &&
|
|
5308
|
+
event.sessionTransport === 'cursor-print')));
|
|
5289
5309
|
if (!confirmed)
|
|
5290
5310
|
return undefined;
|
|
5291
5311
|
}
|
|
@@ -5414,6 +5434,9 @@ export class RunManager {
|
|
|
5414
5434
|
const accountSwitched = (opts.agentProfile ?? resumeIdentity?.account.profileId ?? run.agentProfile ?? sessionAccount) !== sessionAccount;
|
|
5415
5435
|
const resume = sessionBackend === targetRunner && !accountSwitched;
|
|
5416
5436
|
const resumeSessionId = resume ? this.resumableSessionId(runId, sessionStep) : undefined;
|
|
5437
|
+
if (resume && sessionStep?.sessionTransport === 'cursor-print' && !resumeSessionId) {
|
|
5438
|
+
return { ok: false, error: 'Cursor print session identity lacks a matching recorded session event' };
|
|
5439
|
+
}
|
|
5417
5440
|
// Follow-up runner/model/account override (#401, spec 2026-07-29-agent-profiles): the composer
|
|
5418
5441
|
// lets the user pick which backend, model and login handle this continuation — the same flat
|
|
5419
5442
|
// pill the /new composer offers. Omitted → the run's current backend/model/account is kept
|
|
@@ -5713,6 +5736,9 @@ export class RunManager {
|
|
|
5713
5736
|
startedAt: new Date().toISOString(),
|
|
5714
5737
|
sessionId,
|
|
5715
5738
|
backend,
|
|
5739
|
+
...(sessionId && backend === 'cursor' ? {
|
|
5740
|
+
sessionTransport: record?.steps.find((step) => step.sessionId === sessionId)?.sessionTransport ?? 'cursor-acp',
|
|
5741
|
+
} : {}),
|
|
5716
5742
|
});
|
|
5717
5743
|
this.store.appendEvent(runId, { type: 'step-start', stepId, name: 'Continue', kind: 'agent', iteration: 1 });
|
|
5718
5744
|
// Attachments pasted into the follow-up composer, on the same terms as a live-session
|
|
@@ -5795,7 +5821,8 @@ export class RunManager {
|
|
|
5795
5821
|
if (sessionError || state.agentInputError)
|
|
5796
5822
|
return;
|
|
5797
5823
|
if (event.type === 'session') {
|
|
5798
|
-
this.store.updateStep(runId, stepId, { sessionId: event.sessionId, backend
|
|
5824
|
+
this.store.updateStep(runId, stepId, { sessionId: event.sessionId, backend,
|
|
5825
|
+
...(event.sessionTransport ? { sessionTransport: event.sessionTransport } : {}) });
|
|
5799
5826
|
}
|
|
5800
5827
|
if (event.type === 'token-usage') {
|
|
5801
5828
|
this.store.updateStep(runId, stepId, { tokensUsed: event.tokensUsed });
|
|
@@ -6073,7 +6100,10 @@ export class RunManager {
|
|
|
6073
6100
|
state.delegationSettings = { cwd: state.cwd, runner: continueBackend, model: continueModel,
|
|
6074
6101
|
effort: continueEffort, agentProfile: continueProfile.profileId, accountBinding: continueProfile.accountBinding,
|
|
6075
6102
|
systemPrompt: record?.systemPrompt, allowedTools: grants.allowedTools, bashAllowlist: grants.bashAllowlist };
|
|
6076
|
-
const
|
|
6103
|
+
const sessionTransport = sessionId !== undefined && continueBackend === 'cursor'
|
|
6104
|
+
? owningStep?.sessionTransport ?? 'cursor-acp'
|
|
6105
|
+
: undefined;
|
|
6106
|
+
const runner = createRunner(continueBackend, sessionTransport ? { sessionTransport } : {});
|
|
6077
6107
|
// Re-expand the continued step's skill from the current registry (#790) BEFORE
|
|
6078
6108
|
// provisionSession. `await materializeSkillDir` used to sit after the pre-launch
|
|
6079
6109
|
// revalidation, so Stop during that await still launched with revoked tools.
|
|
@@ -6208,7 +6238,7 @@ export class RunManager {
|
|
|
6208
6238
|
},
|
|
6209
6239
|
onAgentInputReady: () => this.handleAgentInputReady(runId, state, session),
|
|
6210
6240
|
onAgentInputConsumed: (ids) => this.handleAgentInputConsumed(runId, state, session, ids),
|
|
6211
|
-
onPidChange: (pid) => {
|
|
6241
|
+
onPidChange: (pid) => { replaceRunProcess(runId, pid); this.recordWorkerProcess(runId, pid); },
|
|
6212
6242
|
});
|
|
6213
6243
|
}
|
|
6214
6244
|
catch (error) {
|
|
@@ -6860,7 +6890,8 @@ export class RunManager {
|
|
|
6860
6890
|
return;
|
|
6861
6891
|
if (event.type === 'session') {
|
|
6862
6892
|
// Codex/OpenCode mint their own session id — persist it so resume works.
|
|
6863
|
-
this.store.updateStep(runId, step.id, { sessionId: event.sessionId, backend
|
|
6893
|
+
this.store.updateStep(runId, step.id, { sessionId: event.sessionId, backend,
|
|
6894
|
+
...(event.sessionTransport ? { sessionTransport: event.sessionTransport } : {}) });
|
|
6864
6895
|
}
|
|
6865
6896
|
if (event.type === 'token-usage') {
|
|
6866
6897
|
this.store.updateStep(runId, step.id, { tokensUsed: startTokens + event.tokensUsed });
|
|
@@ -7105,7 +7136,7 @@ export class RunManager {
|
|
|
7105
7136
|
},
|
|
7106
7137
|
onAgentInputReady: () => this.handleAgentInputReady(runId, state, session),
|
|
7107
7138
|
onAgentInputConsumed: (ids) => this.handleAgentInputConsumed(runId, state, session, ids),
|
|
7108
|
-
onPidChange: (pid) => {
|
|
7139
|
+
onPidChange: (pid) => { replaceRunProcess(runId, pid); this.recordWorkerProcess(runId, pid); },
|
|
7109
7140
|
});
|
|
7110
7141
|
}
|
|
7111
7142
|
catch (err) {
|