@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
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { SessionTransport } from '../contract/index.js';
|
|
2
|
+
import type { AgentEvent, AgentRunResult, AgentRunner, AgentRunSpec, AgentSession, InputDelivery, SessionOptions } from './agent-runner.ts';
|
|
3
|
+
import type { CursorPrintCapabilityResult } from './cursor-print-capabilities.ts';
|
|
4
|
+
import type { ModelOption } from './runner-model-catalog.ts';
|
|
5
|
+
export interface CursorRunnerOptions {
|
|
6
|
+
sessionTransport?: SessionTransport;
|
|
7
|
+
bin?: string;
|
|
8
|
+
inspect?: (bin: string, spec: AgentRunSpec, signal?: AbortSignal) => Promise<CursorPrintCapabilityResult>;
|
|
9
|
+
makeAcp?: () => AgentRunner;
|
|
10
|
+
makePrint?: (models?: readonly ModelOption[]) => AgentRunner;
|
|
11
|
+
}
|
|
12
|
+
/** Selects one Cursor transport before inference; persisted identity always wins over defaults. */
|
|
13
|
+
export declare class CursorRunner implements AgentRunner {
|
|
14
|
+
private readonly options;
|
|
15
|
+
readonly backend: 'cursor';
|
|
16
|
+
readonly specSupport: Readonly<Record<keyof AgentRunSpec, import("./agent-runner.ts").SpecFieldSupport>>;
|
|
17
|
+
readonly systemPromptOnResume: 'in-thread';
|
|
18
|
+
readonly inputDelivery: InputDelivery;
|
|
19
|
+
private lastSession?;
|
|
20
|
+
constructor(options?: CursorRunnerOptions);
|
|
21
|
+
startSession(spec: AgentRunSpec, onEvent?: (event: AgentEvent) => void, opts?: SessionOptions): AgentSession;
|
|
22
|
+
run(spec: AgentRunSpec, onEvent?: (event: AgentEvent) => void): Promise<AgentRunResult>;
|
|
23
|
+
interrupt(): Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { CursorAcpRunner } from './cursor-acp-runner.js';
|
|
3
|
+
import { CursorPrintRunner, CURSOR_PRINT_SPEC_SUPPORT } from './cursor-print-runner.js';
|
|
4
|
+
import { inspectCursorPrintCapabilities } from './cursor-print-capabilities.js';
|
|
5
|
+
/** Selects one Cursor transport before inference; persisted identity always wins over defaults. */
|
|
6
|
+
export class CursorRunner {
|
|
7
|
+
options;
|
|
8
|
+
backend = 'cursor';
|
|
9
|
+
specSupport = CURSOR_PRINT_SPEC_SUPPORT;
|
|
10
|
+
systemPromptOnResume = 'in-thread';
|
|
11
|
+
inputDelivery = {
|
|
12
|
+
mode: 'boundary', consumption: 'unobservable', via: 'selected Cursor session turn boundary',
|
|
13
|
+
};
|
|
14
|
+
lastSession;
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
this.options = options;
|
|
17
|
+
}
|
|
18
|
+
startSession(spec, onEvent, opts = {}) {
|
|
19
|
+
const bundledPrintMock = fileURLToPath(new URL('../../scripts/mock-cursor-print.mjs', import.meta.url));
|
|
20
|
+
const bin = this.options.bin ?? process.env.CEZ_CURSOR_BIN ?? (process.env.CEZ_DRY_RUN === '1'
|
|
21
|
+
? bundledPrintMock : 'agent');
|
|
22
|
+
const isBundledMock = bin === bundledPrintMock;
|
|
23
|
+
const mockModels = [
|
|
24
|
+
{ id: 'mock-default-model', label: 'Mock default', description: 'Default model' },
|
|
25
|
+
{ id: 'mock-default-model-xhigh', label: 'Mock high effort', description: 'Mock high effort' },
|
|
26
|
+
];
|
|
27
|
+
const select = async (signal) => {
|
|
28
|
+
if (this.options.sessionTransport === 'cursor-acp')
|
|
29
|
+
return { transport: 'cursor-acp' };
|
|
30
|
+
if (this.options.sessionTransport === 'cursor-print') {
|
|
31
|
+
if (isBundledMock) {
|
|
32
|
+
return { transport: 'cursor-print', models: spec.effort ? mockModels : undefined,
|
|
33
|
+
model: spec.effort && !spec.model ? 'mock-default-model' : undefined };
|
|
34
|
+
}
|
|
35
|
+
const capability = await (this.options.inspect ?? inspectCursorPrintCapabilities)(bin, spec, signal);
|
|
36
|
+
if (!capability.supported)
|
|
37
|
+
throw new Error(`Cursor print session cannot resume: ${capability.reason}`);
|
|
38
|
+
return { transport: 'cursor-print', models: capability.models, model: capability.model };
|
|
39
|
+
}
|
|
40
|
+
if (spec.resume)
|
|
41
|
+
return { transport: 'cursor-acp' }; // Legacy untagged Cursor ID.
|
|
42
|
+
if (isBundledMock) {
|
|
43
|
+
return { transport: 'cursor-print', models: spec.effort ? mockModels : undefined,
|
|
44
|
+
model: spec.effort && !spec.model ? 'mock-default-model' : undefined };
|
|
45
|
+
}
|
|
46
|
+
const capability = await (this.options.inspect ?? inspectCursorPrintCapabilities)(bin, spec, signal);
|
|
47
|
+
return capability.supported
|
|
48
|
+
? { transport: 'cursor-print', models: capability.models, model: capability.model }
|
|
49
|
+
: { transport: 'cursor-acp', note: `Cursor marketplace plugins unavailable: ${capability.reason}` };
|
|
50
|
+
};
|
|
51
|
+
const makeRunner = (transport, models) => transport === 'cursor-print'
|
|
52
|
+
? (this.options.makePrint?.(models) ?? new CursorPrintRunner({ bin: this.options.bin, models }))
|
|
53
|
+
: (this.options.makeAcp?.() ?? new CursorAcpRunner({ bin: this.options.bin }));
|
|
54
|
+
return this.lastSession = new SelectingCursorSession(select, makeRunner, spec, onEvent, opts);
|
|
55
|
+
}
|
|
56
|
+
run(spec, onEvent) {
|
|
57
|
+
return this.startSession(spec, onEvent, { autoEndAfterFirstTurn: true }).result;
|
|
58
|
+
}
|
|
59
|
+
async interrupt() { this.lastSession?.interrupt(); }
|
|
60
|
+
}
|
|
61
|
+
class SelectingCursorSession {
|
|
62
|
+
result;
|
|
63
|
+
resolveResult;
|
|
64
|
+
inner;
|
|
65
|
+
controller = new AbortController();
|
|
66
|
+
pendingHuman = [];
|
|
67
|
+
active = true;
|
|
68
|
+
settled = false;
|
|
69
|
+
constructor(select, makeRunner, spec, onEvent, opts = {}) {
|
|
70
|
+
this.result = new Promise(resolve => { this.resolveResult = resolve; });
|
|
71
|
+
void (async () => {
|
|
72
|
+
try {
|
|
73
|
+
const { transport, note, models, model } = await select(this.controller.signal);
|
|
74
|
+
if (!this.active)
|
|
75
|
+
return;
|
|
76
|
+
if (note)
|
|
77
|
+
onEvent?.({ type: 'note', message: note });
|
|
78
|
+
const runner = makeRunner(transport, models);
|
|
79
|
+
const selectedSpec = model && !spec.model ? { ...spec, model } : spec;
|
|
80
|
+
const inner = runner.startSession(selectedSpec, event => onEvent?.(event.type === 'session'
|
|
81
|
+
? { ...event, sessionTransport: transport } : event), opts);
|
|
82
|
+
this.inner = inner;
|
|
83
|
+
if (inner.pid !== undefined)
|
|
84
|
+
opts.onPidChange?.(inner.pid);
|
|
85
|
+
for (const message of this.pendingHuman.splice(0))
|
|
86
|
+
inner.sendMessage(message);
|
|
87
|
+
const result = await inner.result;
|
|
88
|
+
this.settle(result);
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (!this.active)
|
|
92
|
+
return;
|
|
93
|
+
const message = error instanceof Error ? error.message : 'Cursor transport selection failed';
|
|
94
|
+
onEvent?.({ type: 'error', message });
|
|
95
|
+
opts.onUiEvent?.({ type: 'session.error', message, fatal: true });
|
|
96
|
+
this.settle({ text: '', toolCalls: [], tokensUsed: 0 });
|
|
97
|
+
}
|
|
98
|
+
})();
|
|
99
|
+
}
|
|
100
|
+
settle(result) {
|
|
101
|
+
if (this.settled)
|
|
102
|
+
return;
|
|
103
|
+
this.settled = true;
|
|
104
|
+
this.active = false;
|
|
105
|
+
this.resolveResult(result);
|
|
106
|
+
}
|
|
107
|
+
get pid() { return this.inner?.pid; }
|
|
108
|
+
get open() { return this.active && (this.inner?.open ?? true); }
|
|
109
|
+
sendMessage(content) {
|
|
110
|
+
if (!this.open)
|
|
111
|
+
return false;
|
|
112
|
+
if (this.inner)
|
|
113
|
+
return this.inner.sendMessage(content);
|
|
114
|
+
this.pendingHuman.push(content);
|
|
115
|
+
return true;
|
|
116
|
+
}
|
|
117
|
+
sendAgentMessage(content, ids) {
|
|
118
|
+
return this.inner?.sendAgentMessage(content, ids) ?? false;
|
|
119
|
+
}
|
|
120
|
+
discardQueuedMessages() { this.pendingHuman = []; this.inner?.discardQueuedMessages(); }
|
|
121
|
+
holdsHumanInput() { return this.inner?.holdsHumanInput() ?? this.pendingHuman.length > 0; }
|
|
122
|
+
heldHumanInputCount() { return this.inner?.heldHumanInputCount?.() ?? this.pendingHuman.length; }
|
|
123
|
+
end() {
|
|
124
|
+
if (!this.active)
|
|
125
|
+
return;
|
|
126
|
+
if (this.inner)
|
|
127
|
+
this.inner.end();
|
|
128
|
+
else {
|
|
129
|
+
this.active = false;
|
|
130
|
+
this.controller.abort();
|
|
131
|
+
this.settle({ text: '', toolCalls: [], tokensUsed: 0 });
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
interrupt() {
|
|
135
|
+
if (!this.active)
|
|
136
|
+
return;
|
|
137
|
+
if (this.inner)
|
|
138
|
+
this.inner.interrupt();
|
|
139
|
+
else {
|
|
140
|
+
this.active = false;
|
|
141
|
+
this.controller.abort();
|
|
142
|
+
this.settle({ text: '', toolCalls: [], tokensUsed: 0 });
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=cursor-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursor-runner.js","sourceRoot":"","sources":["../../src/core/cursor-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,11 @@ type UsageListener = (usage: Record<string, ProcessUsage>) => void;
|
|
|
47
47
|
* step) replaces the pid but keeps nothing else — peaks are per session and
|
|
48
48
|
* the engine maxes them into the run record on unregister. */
|
|
49
49
|
export declare function registerRunProcess(runId: string, pid: number): void;
|
|
50
|
+
/** Follow a replacement backend PID within the same session without losing
|
|
51
|
+
* peaks accumulated by its earlier processes (Cursor print starts one per turn). */
|
|
52
|
+
export declare function replaceRunProcess(runId: string, pid: number): void;
|
|
53
|
+
/** Deterministic sample injection for replacement peak regression tests. */
|
|
54
|
+
export declare function recordUsageSampleForTest(runId: string, usage: ProcessUsage): void;
|
|
50
55
|
/** Same-process ownership proof used when rebuilding a manager/context: a
|
|
51
56
|
* disposed manager may still have a live backend registered for this run. */
|
|
52
57
|
export declare function hasRegisteredRunProcess(runId: string): boolean;
|
|
@@ -96,6 +96,28 @@ export function registerRunProcess(runId, pid) {
|
|
|
96
96
|
void sample(); // first data point right away, not 2 s late
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
+
/** Follow a replacement backend PID within the same session without losing
|
|
100
|
+
* peaks accumulated by its earlier processes (Cursor print starts one per turn). */
|
|
101
|
+
export function replaceRunProcess(runId, pid) {
|
|
102
|
+
const prior = entries.get(runId);
|
|
103
|
+
if (!prior) {
|
|
104
|
+
registerRunProcess(runId, pid);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
entries.set(runId, { ...prior, pid, last: undefined });
|
|
108
|
+
void sample();
|
|
109
|
+
}
|
|
110
|
+
function recordUsageSample(entry, usage) {
|
|
111
|
+
entry.last = usage;
|
|
112
|
+
entry.peakRssBytes = Math.max(entry.peakRssBytes, usage.rssBytes);
|
|
113
|
+
entry.peakProcCount = Math.max(entry.peakProcCount, usage.procCount);
|
|
114
|
+
}
|
|
115
|
+
/** Deterministic sample injection for replacement peak regression tests. */
|
|
116
|
+
export function recordUsageSampleForTest(runId, usage) {
|
|
117
|
+
const entry = entries.get(runId);
|
|
118
|
+
if (entry)
|
|
119
|
+
recordUsageSample(entry, usage);
|
|
120
|
+
}
|
|
99
121
|
/** Same-process ownership proof used when rebuilding a manager/context: a
|
|
100
122
|
* disposed manager may still have a live backend registered for this run. */
|
|
101
123
|
export function hasRegisteredRunProcess(runId) {
|
|
@@ -157,10 +179,8 @@ async function sample() {
|
|
|
157
179
|
for (const entry of entries.values()) {
|
|
158
180
|
const usage = aggregateTreeUsage(procs, entry.pid);
|
|
159
181
|
entry.last = usage ?? undefined;
|
|
160
|
-
if (usage)
|
|
161
|
-
|
|
162
|
-
entry.peakProcCount = Math.max(entry.peakProcCount, usage.procCount);
|
|
163
|
-
}
|
|
182
|
+
if (usage)
|
|
183
|
+
recordUsageSample(entry, usage);
|
|
164
184
|
}
|
|
165
185
|
if (listeners.size > 0) {
|
|
166
186
|
const snapshot = allUsage();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"process-usage.js","sourceRoot":"","sources":["../../src/core/process-usage.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"process-usage.js","sourceRoot":"","sources":["../../src/core/process-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { AgentBackend, AgentRunner, RunnerId } from './agent-runner.ts';
|
|
2
|
+
import type { SessionTransport } from '../contract/index.js';
|
|
2
3
|
/**
|
|
3
4
|
* The single place that maps a backend id onto a concrete runner. Everything
|
|
4
5
|
* that used to `new ClaudeCliRunner()` (the planner and the workflow engine)
|
|
5
6
|
* goes through here so switching the agent backend is one function call.
|
|
6
7
|
* `claude-cli` is the legacy id for `claude`.
|
|
7
8
|
*/
|
|
8
|
-
export declare function createRunner(backend: AgentBackend | RunnerId | undefined
|
|
9
|
+
export declare function createRunner(backend: AgentBackend | RunnerId | undefined, options?: {
|
|
10
|
+
sessionTransport?: SessionTransport;
|
|
11
|
+
}): AgentRunner;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ClaudeCliRunner } from './claude-cli-runner.js';
|
|
2
2
|
import { CodexAppServerRunner } from './codex-app-server-runner.js';
|
|
3
3
|
import { OpencodeServerRunner } from './opencode-server-runner.js';
|
|
4
|
-
import {
|
|
4
|
+
import { CursorRunner } from './cursor-runner.js';
|
|
5
5
|
import { PiRunner } from './pi-runner.js';
|
|
6
6
|
import { OmpRunner } from './omp-runner.js';
|
|
7
7
|
/**
|
|
@@ -10,14 +10,14 @@ import { OmpRunner } from './omp-runner.js';
|
|
|
10
10
|
* goes through here so switching the agent backend is one function call.
|
|
11
11
|
* `claude-cli` is the legacy id for `claude`.
|
|
12
12
|
*/
|
|
13
|
-
export function createRunner(backend) {
|
|
13
|
+
export function createRunner(backend, options = {}) {
|
|
14
14
|
switch (backend) {
|
|
15
15
|
case 'codex':
|
|
16
16
|
return new CodexAppServerRunner();
|
|
17
17
|
case 'opencode':
|
|
18
18
|
return new OpencodeServerRunner();
|
|
19
19
|
case 'cursor':
|
|
20
|
-
return new
|
|
20
|
+
return new CursorRunner(options);
|
|
21
21
|
case 'pi':
|
|
22
22
|
return new PiRunner();
|
|
23
23
|
case 'omp':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/core/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"runner-factory.js","sourceRoot":"","sources":["../../src/core/runner-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4C,EAAE,OAAO,GAA4C,EAAE;IAC9H,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,KAAK,UAAU;YACb,OAAO,IAAI,oBAAoB,EAAE,CAAC;QACpC,KAAK,QAAQ;YACX,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;QACnC,KAAK,IAAI;YACP,OAAO,IAAI,QAAQ,EAAE,CAAC;QACxB,KAAK,KAAK;YACR,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,KAAK,QAAQ,CAAC;QACd,KAAK,YAAY,CAAC;QAClB;YACE,OAAO,IAAI,eAAe,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -3,15 +3,6 @@ export declare function createDelegationApp(routes: DelegationRoutes): import("h
|
|
|
3
3
|
"/discover": {
|
|
4
4
|
$post: {
|
|
5
5
|
output: {
|
|
6
|
-
scope: "host-default-account";
|
|
7
|
-
runners: {
|
|
8
|
-
status: "connected" | "disconnected" | "not-installed" | "unknown";
|
|
9
|
-
enabled?: boolean | undefined;
|
|
10
|
-
hint?: string | undefined;
|
|
11
|
-
authFailureId?: string | undefined;
|
|
12
|
-
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
13
|
-
}[];
|
|
14
|
-
} | {
|
|
15
6
|
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
16
7
|
models: {
|
|
17
8
|
id: string;
|
|
@@ -22,6 +13,15 @@ export declare function createDelegationApp(routes: DelegationRoutes): import("h
|
|
|
22
13
|
source: "cache" | "live" | "unavailable";
|
|
23
14
|
stale: boolean;
|
|
24
15
|
reason?: string | undefined;
|
|
16
|
+
} | {
|
|
17
|
+
scope: "host-default-account";
|
|
18
|
+
runners: {
|
|
19
|
+
status: "connected" | "disconnected" | "not-installed" | "unknown";
|
|
20
|
+
enabled?: boolean | undefined;
|
|
21
|
+
hint?: string | undefined;
|
|
22
|
+
authFailureId?: string | undefined;
|
|
23
|
+
runner: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi";
|
|
24
|
+
}[];
|
|
25
25
|
};
|
|
26
26
|
outputFormat: "json";
|
|
27
27
|
status: 200;
|
|
@@ -105,13 +105,13 @@ export declare function createDelegationApp(routes: DelegationRoutes): import("h
|
|
|
105
105
|
status: 200;
|
|
106
106
|
input: {
|
|
107
107
|
json: {
|
|
108
|
-
workerIds: string[];
|
|
109
|
-
timeoutSeconds?: number | undefined;
|
|
110
|
-
mode?: "all" | "any" | "one" | undefined;
|
|
111
|
-
} | {
|
|
112
108
|
requestIds: string[];
|
|
113
109
|
mode?: "all" | "any" | "one" | undefined;
|
|
114
110
|
timeoutSeconds?: number | undefined;
|
|
111
|
+
} | {
|
|
112
|
+
workerIds: string[];
|
|
113
|
+
timeoutSeconds?: number | undefined;
|
|
114
|
+
mode?: "all" | "any" | "one" | undefined;
|
|
115
115
|
};
|
|
116
116
|
};
|
|
117
117
|
};
|
package/dist/runs/store.d.ts
CHANGED
|
@@ -50,6 +50,10 @@ declare const stepStateSchema: z.ZodObject<{
|
|
|
50
50
|
finishedAt: z.ZodOptional<z.ZodString>;
|
|
51
51
|
error: z.ZodOptional<z.ZodString>;
|
|
52
52
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
53
|
+
sessionTransport: z.ZodOptional<z.ZodEnum<{
|
|
54
|
+
"cursor-acp": "cursor-acp";
|
|
55
|
+
"cursor-print": "cursor-print";
|
|
56
|
+
}>>;
|
|
53
57
|
backend: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
|
|
54
58
|
claude: "claude";
|
|
55
59
|
"claude-cli": "claude-cli";
|
|
@@ -764,6 +768,10 @@ export declare const runRecordSchema: z.ZodObject<{
|
|
|
764
768
|
finishedAt: z.ZodOptional<z.ZodString>;
|
|
765
769
|
error: z.ZodOptional<z.ZodString>;
|
|
766
770
|
sessionId: z.ZodOptional<z.ZodString>;
|
|
771
|
+
sessionTransport: z.ZodOptional<z.ZodEnum<{
|
|
772
|
+
"cursor-acp": "cursor-acp";
|
|
773
|
+
"cursor-print": "cursor-print";
|
|
774
|
+
}>>;
|
|
767
775
|
backend: z.ZodOptional<z.ZodPipe<z.ZodEnum<{
|
|
768
776
|
claude: "claude";
|
|
769
777
|
"claude-cli": "claude-cli";
|
|
@@ -1248,6 +1256,7 @@ export declare function parseRunRecords(raw: unknown): z.ZodSafeParseResult<{
|
|
|
1248
1256
|
finishedAt?: string | undefined;
|
|
1249
1257
|
error?: string | undefined;
|
|
1250
1258
|
sessionId?: string | undefined;
|
|
1259
|
+
sessionTransport?: "cursor-acp" | "cursor-print" | undefined;
|
|
1251
1260
|
backend?: "claude" | "codex" | "cursor" | "omp" | "opencode" | "pi" | undefined;
|
|
1252
1261
|
profileId?: string | undefined;
|
|
1253
1262
|
costUsd?: number | undefined;
|
package/dist/runs/store.js
CHANGED
|
@@ -74,6 +74,7 @@ const stepStateSchema = z.object({
|
|
|
74
74
|
error: z.string().optional(),
|
|
75
75
|
/** Latest backend-owned session id, used for same-backend Continue. */
|
|
76
76
|
sessionId: z.string().optional(),
|
|
77
|
+
sessionTransport: z.enum(['cursor-acp', 'cursor-print']).optional(),
|
|
77
78
|
/** Backend that owns `sessionId`. Optional so pre-affinity runs.json files still parse;
|
|
78
79
|
* `storedRunnerSchema` so a legacy `claude-cli` folds to `claude` instead of failing (#547). */
|
|
79
80
|
backend: storedRunnerSchema.optional(),
|