@actana/sdk 0.3.2 → 0.4.1
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 +2 -1
- package/dist/core-client.d.ts +71 -0
- package/dist/core-client.d.ts.map +1 -1
- package/dist/core-client.js +94 -5
- package/dist/core-client.js.map +1 -1
- package/dist/core-link-frames.d.ts +160 -8
- package/dist/core-link-frames.d.ts.map +1 -1
- package/dist/core-link-frames.js +84 -3
- package/dist/core-link-frames.js.map +1 -1
- package/dist/core-pairing-csr.d.ts +21 -0
- package/dist/core-pairing-csr.d.ts.map +1 -0
- package/dist/core-pairing-csr.js +159 -0
- package/dist/core-pairing-csr.js.map +1 -0
- package/dist/core-pairing-wire.d.ts +63 -0
- package/dist/core-pairing-wire.d.ts.map +1 -0
- package/dist/core-pairing-wire.js +22 -0
- package/dist/core-pairing-wire.js.map +1 -0
- package/dist/core-pairing.d.ts +211 -0
- package/dist/core-pairing.d.ts.map +1 -0
- package/dist/core-pairing.js +630 -0
- package/dist/core-pairing.js.map +1 -0
- package/dist/core-session.d.ts +282 -4
- package/dist/core-session.d.ts.map +1 -1
- package/dist/core-session.js +397 -36
- package/dist/core-session.js.map +1 -1
- package/package.json +1 -1
package/dist/core-session.js
CHANGED
|
@@ -70,19 +70,38 @@ export const HARNESS_LAUNCH_COMMANDS = {
|
|
|
70
70
|
};
|
|
71
71
|
/**
|
|
72
72
|
* Each harness's spelling of "do not stop to ask me", appended to the default
|
|
73
|
-
* command when {@link
|
|
73
|
+
* command when {@link CoreSessionStartOptions.dangerouslySkipPermissions} is
|
|
74
|
+
* set.
|
|
74
75
|
*
|
|
75
76
|
* The option and the flag are two halves of one gesture and the Core checks
|
|
76
|
-
* both
|
|
77
|
-
*
|
|
78
|
-
*
|
|
77
|
+
* both **directions** of it (issue 177 finding 2): a flag with no option is a
|
|
78
|
+
* rejected spawn, and since that issue an option with no flag is one too. It
|
|
79
|
+
* used to be neither — the Core accepted the mismatch, launched an interactive
|
|
80
|
+
* harness, and let a caller that believed itself unattended sit on a permission
|
|
81
|
+
* prompt nobody was watching. So this table is not a convenience: it is the
|
|
82
|
+
* only thing standing between `dangerouslySkipPermissions: true` and a refused
|
|
83
|
+
* spawn, for every caller that does not pass its own `command`.
|
|
84
|
+
*
|
|
85
|
+
* OpenCode has no such flag, and `null` says so. That is a fact about the
|
|
86
|
+
* vendor's CLI rather than a gap here, and the Core reads it the same way — it
|
|
87
|
+
* is the one harness where the option is allowed to arrive with no flag behind
|
|
88
|
+
* it, because there is no flag to send.
|
|
89
|
+
*
|
|
90
|
+
* Exported because it is the answer to "what does auto mode look like for this
|
|
91
|
+
* harness", and a caller building its own command needs the same cell of the
|
|
92
|
+
* same table. Two transcriptions of a vendor fact is one more than can be kept
|
|
93
|
+
* in step; finding 1 of the same issue was that mistake in the binary column.
|
|
79
94
|
*/
|
|
80
|
-
const HARNESS_SKIP_PERMISSION_FLAGS = {
|
|
95
|
+
export const HARNESS_SKIP_PERMISSION_FLAGS = {
|
|
81
96
|
"claude-code": "--dangerously-skip-permissions",
|
|
82
97
|
codex: "--yolo",
|
|
83
98
|
"cursor-cli": "--force",
|
|
84
99
|
opencode: null,
|
|
85
100
|
};
|
|
101
|
+
/** The flag that puts `harness` in auto mode, or null where it ships none. */
|
|
102
|
+
export function harnessAutoModeFlag(harness) {
|
|
103
|
+
return HARNESS_SKIP_PERMISSION_FLAGS[harness];
|
|
104
|
+
}
|
|
86
105
|
/**
|
|
87
106
|
* The statuses that mean the harness has stopped and is waiting on a human.
|
|
88
107
|
*
|
|
@@ -139,6 +158,20 @@ export class CoreSessionStartError extends Error {
|
|
|
139
158
|
this.name = "CoreSessionStartError";
|
|
140
159
|
}
|
|
141
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* There is nothing running to attach to.
|
|
163
|
+
*
|
|
164
|
+
* Its own kind because it is the one failure an attach has that a start does
|
|
165
|
+
* not, and because the alternative is worse than an error: a wait against a
|
|
166
|
+
* Session whose harness has already exited has nothing that will ever report a
|
|
167
|
+
* turn, so it would hang until the caller's deadline and then blame the Core.
|
|
168
|
+
*/
|
|
169
|
+
export class CoreSessionAttachError extends Error {
|
|
170
|
+
constructor(message, options) {
|
|
171
|
+
super(message, options);
|
|
172
|
+
this.name = "CoreSessionAttachError";
|
|
173
|
+
}
|
|
174
|
+
}
|
|
142
175
|
/**
|
|
143
176
|
* One Session on one Core, driven programmatically.
|
|
144
177
|
*
|
|
@@ -152,17 +185,70 @@ export class CoreSession {
|
|
|
152
185
|
taskId;
|
|
153
186
|
/** The Core's id for this Session's PTY. */
|
|
154
187
|
ptyId;
|
|
155
|
-
/**
|
|
188
|
+
/**
|
|
189
|
+
* The harness running in it, or `null` on a Session this process did not
|
|
190
|
+
* start — {@link attach} joins a PTY that is already running, and the Core
|
|
191
|
+
* publishes no harness for one. A caller that needs the name reads it off the
|
|
192
|
+
* Task row, which is where it lives.
|
|
193
|
+
*/
|
|
156
194
|
harness;
|
|
157
|
-
/**
|
|
195
|
+
/**
|
|
196
|
+
* The command the Core was asked to start, after defaulting, or `null` on an
|
|
197
|
+
* {@link attach} — the command was decided by whoever spawned the PTY and the
|
|
198
|
+
* Core does not publish it afterwards. Null is "this side does not know",
|
|
199
|
+
* never "there was none".
|
|
200
|
+
*/
|
|
158
201
|
command;
|
|
202
|
+
/**
|
|
203
|
+
* Will anything move this Session to `running` when a turn begins (issue 84,
|
|
204
|
+
* issue 177 finding 4)?
|
|
205
|
+
*
|
|
206
|
+
* The Core's answer for this Session and not a property of the harness
|
|
207
|
+
* family: it depends on which hooks actually landed on that machine and on
|
|
208
|
+
* whether the vendor fires them. `false` today for `cursor-cli` — the Core
|
|
209
|
+
* writes `.cursor/hooks.json` and cursor-agent never fires
|
|
210
|
+
* `beforeSubmitPrompt` — and for `codex` until an operator reviews the newly
|
|
211
|
+
* installed hooks with `/hooks`. Both still report a turn's *end*.
|
|
212
|
+
*
|
|
213
|
+
* What that means for a caller: {@link waitForIdle} is unaffected, because it
|
|
214
|
+
* waits for a settled status and turn *end* is reported. What is missing is
|
|
215
|
+
* everything in between. A Session with `reportsTurnStart === false` will sit
|
|
216
|
+
* at its pre-turn status for the whole of a turn that is genuinely running,
|
|
217
|
+
* which is indistinguishable from a Session that never started — so a caller
|
|
218
|
+
* that shows progress, or that treats "not running" as "stuck", has to read
|
|
219
|
+
* this and say so rather than infer activity from a status that will not
|
|
220
|
+
* move. The Panel's answer is a terminal-input fallback; the `actana` CLI's
|
|
221
|
+
* is to print the asymmetry.
|
|
222
|
+
*
|
|
223
|
+
* `false` on a Core too old to answer, which is the safe direction: a
|
|
224
|
+
* redundant caveat, never a silently statusless Session.
|
|
225
|
+
*
|
|
226
|
+
* `null` on an {@link attach}, which is a different thing again: the Core
|
|
227
|
+
* answers this question on a **spawn**, so a Session joined after the fact has
|
|
228
|
+
* no answer rather than a negative one. **No wait consults this field** (#289
|
|
229
|
+
* A) — turn *end* is reported by every harness family, and that is what every
|
|
230
|
+
* wait here is waiting for.
|
|
231
|
+
*/
|
|
232
|
+
reportsTurnStart;
|
|
159
233
|
client;
|
|
160
234
|
terminal;
|
|
161
235
|
unsubscribes = [];
|
|
162
236
|
dataListeners = new Set();
|
|
163
237
|
exitListeners = new Set();
|
|
164
238
|
statusListeners = new Set();
|
|
239
|
+
/**
|
|
240
|
+
* Everyone waiting for a turn to end, each with the event id it counts from.
|
|
241
|
+
* A waiter with `afterEventId: 0` takes any settled status; one carrying a
|
|
242
|
+
* delivery stamp takes only a status learned after it.
|
|
243
|
+
*/
|
|
165
244
|
idleWaiters = new Set();
|
|
245
|
+
/**
|
|
246
|
+
* This Session asked the Core for its PTY's stream, so {@link dispose} owes it
|
|
247
|
+
* a matching `ptyUnsubscribe`. False for a spawned Session: the Core
|
|
248
|
+
* subscribes the connection that spawned a PTY, inside the spawn, and nothing
|
|
249
|
+
* here asked for that.
|
|
250
|
+
*/
|
|
251
|
+
subscribedToPty = false;
|
|
166
252
|
/**
|
|
167
253
|
* The Core's last reported status, or null before one has been *observed*.
|
|
168
254
|
*
|
|
@@ -173,6 +259,18 @@ export class CoreSession {
|
|
|
173
259
|
* event after {@link start} lands here.
|
|
174
260
|
*/
|
|
175
261
|
lastStatus = null;
|
|
262
|
+
/**
|
|
263
|
+
* The event id {@link lastStatus} was learned at, or 0 when it was not learned
|
|
264
|
+
* from an event — the status {@link attach} seeded from the Task row.
|
|
265
|
+
*
|
|
266
|
+
* This is what makes a cursored wait possible (#289 A). "Has this Session
|
|
267
|
+
* settled?" answers with whatever it is sitting at, including last turn's
|
|
268
|
+
* answer; "has this Session settled **since event N**?" is the question a
|
|
269
|
+
* caller that just delivered a prompt is actually asking, and it needs a
|
|
270
|
+
* *where* as well as a *what*. A seeded status carries 0 on purpose: 0 is
|
|
271
|
+
* greater than nothing, so it can never satisfy a real cursor.
|
|
272
|
+
*/
|
|
273
|
+
lastStatusEventId = 0;
|
|
176
274
|
exit = null;
|
|
177
275
|
disposed = false;
|
|
178
276
|
/** A status read is in flight; another event arrived while it was. */
|
|
@@ -187,6 +285,7 @@ export class CoreSession {
|
|
|
187
285
|
this.ptyId = opts.ptyId;
|
|
188
286
|
this.harness = opts.harness;
|
|
189
287
|
this.command = opts.command;
|
|
288
|
+
this.reportsTurnStart = opts.reportsTurnStart;
|
|
190
289
|
this.terminal = opts.terminal;
|
|
191
290
|
}
|
|
192
291
|
/**
|
|
@@ -217,7 +316,8 @@ export class CoreSession {
|
|
|
217
316
|
}
|
|
218
317
|
const cols = opts.cols ?? DEFAULT_COLS;
|
|
219
318
|
const rows = opts.rows ?? DEFAULT_ROWS;
|
|
220
|
-
const command = opts.command ??
|
|
319
|
+
const command = opts.command ??
|
|
320
|
+
harnessLaunchCommand(opts.harness, opts.dangerouslySkipPermissions === true);
|
|
221
321
|
// The event log first: a subscribe sent after the spawn could miss the
|
|
222
322
|
// status change of a harness that answered before this side asked.
|
|
223
323
|
if (opts.subscribeToEvents !== false && !client.isSubscribedToEvents()) {
|
|
@@ -298,6 +398,7 @@ export class CoreSession {
|
|
|
298
398
|
ptyId: spawned.ptyId,
|
|
299
399
|
harness: opts.harness,
|
|
300
400
|
command,
|
|
401
|
+
reportsTurnStart: spawned.hooksReportTurnStart,
|
|
301
402
|
terminal,
|
|
302
403
|
});
|
|
303
404
|
session.unsubscribes.push(stopData, stopExit, stopEvents);
|
|
@@ -312,6 +413,110 @@ export class CoreSession {
|
|
|
312
413
|
session.ingestExit(mineExit);
|
|
313
414
|
return session;
|
|
314
415
|
}
|
|
416
|
+
/**
|
|
417
|
+
* Join a Session that is **already running**, for the length of a turn (#289).
|
|
418
|
+
*
|
|
419
|
+
* The gap this closes: {@link start} is the only way into a `CoreSession`, and
|
|
420
|
+
* it spawns. Everything this class offers a caller after the first turn — the
|
|
421
|
+
* screen, the status, the wait — was unreachable for a Session somebody else
|
|
422
|
+
* started, or that this process started and hung up on. Awaiting a follow-up
|
|
423
|
+
* turn is therefore SDK work rather than a flag on a command, and this is it.
|
|
424
|
+
*
|
|
425
|
+
* What it does, in order, and the order is the point:
|
|
426
|
+
*
|
|
427
|
+
* 1. subscribe to the event log, if nothing has, so a status change that
|
|
428
|
+
* lands during the rest of this is heard rather than missed;
|
|
429
|
+
* 2. resolve the Task's live PTY — **once**, and every write and wait made
|
|
430
|
+
* through the returned Session uses that resolution, so there is no
|
|
431
|
+
* window between delivering text and starting to wait for it;
|
|
432
|
+
* 3. wire the byte stream, the exit and the events **before** subscribing;
|
|
433
|
+
* 4. subscribe to that PTY, which is what makes the Core send this
|
|
434
|
+
* connection its bytes and its exit at all;
|
|
435
|
+
* 5. seed the screen from the Core's replay ring, and the last known status
|
|
436
|
+
* from the Session snapshot.
|
|
437
|
+
*
|
|
438
|
+
* **The seeded status carries event id 0**, which is what keeps it honest.
|
|
439
|
+
* `waitForIdle` will answer from it — that is `actana session wait` on a
|
|
440
|
+
* Session already sitting at `needs-input`, and answering immediately is
|
|
441
|
+
* right, because no turn was asked for. {@link waitForTurnEnd} with a delivery
|
|
442
|
+
* stamp will not: 0 can never be greater than a real cursor, so a wait for the
|
|
443
|
+
* turn a write starts cannot be answered by the turn before it.
|
|
444
|
+
*
|
|
445
|
+
* Rejects with {@link CoreSessionAttachError} when the Task has no live PTY —
|
|
446
|
+
* a harness that exited, or a Session id that is not one. **Only that.** A
|
|
447
|
+
* link that blinked during the subscribe, the replay or the status read
|
|
448
|
+
* rejects with an ordinary `Error`: the two are different next steps, and
|
|
449
|
+
* reporting a busy Core as a dead harness sends a caller to `resume` for a
|
|
450
|
+
* Session that is running perfectly well.
|
|
451
|
+
*/
|
|
452
|
+
static async attach(client, opts) {
|
|
453
|
+
if (opts.subscribeToEvents !== false && !client.isSubscribedToEvents()) {
|
|
454
|
+
client.subscribeEvents();
|
|
455
|
+
}
|
|
456
|
+
const { ptyId } = await client.findByTask(opts.taskId);
|
|
457
|
+
if (ptyId === null) {
|
|
458
|
+
throw new CoreSessionAttachError(`session ${opts.taskId} has no harness running — there is nothing to attach a wait to`);
|
|
459
|
+
}
|
|
460
|
+
const cols = opts.cols ?? DEFAULT_COLS;
|
|
461
|
+
const rows = opts.rows ?? DEFAULT_ROWS;
|
|
462
|
+
const terminal = new TerminalScreen({ cols, rows, scrollback: opts.scrollback });
|
|
463
|
+
const session = new CoreSession({
|
|
464
|
+
client,
|
|
465
|
+
taskId: opts.taskId,
|
|
466
|
+
ptyId,
|
|
467
|
+
// Three facts about a spawn, and this is not one. The Task row carries the
|
|
468
|
+
// harness for a caller that needs the name; the command and the turn-start
|
|
469
|
+
// answer were the Core's answer to a `spawn` frame that happened before
|
|
470
|
+
// this process was involved, and inventing either would be worse than null.
|
|
471
|
+
harness: null,
|
|
472
|
+
command: null,
|
|
473
|
+
reportsTurnStart: null,
|
|
474
|
+
terminal,
|
|
475
|
+
});
|
|
476
|
+
session.unsubscribes.push(client.onData((frame) => {
|
|
477
|
+
if (frame.ptyId === ptyId)
|
|
478
|
+
session.ingest(frame.data);
|
|
479
|
+
}), client.onExit((frame) => {
|
|
480
|
+
if (frame.ptyId === ptyId)
|
|
481
|
+
session.ingestExit(frame);
|
|
482
|
+
}), client.onEvent(({ event }) => session.onCoreEvent(event)));
|
|
483
|
+
const replay = opts.replay !== false;
|
|
484
|
+
try {
|
|
485
|
+
// **The subscribe is not part of the replay.** Until a connection
|
|
486
|
+
// subscribes, a multi-connection Core fans this PTY's output to somebody
|
|
487
|
+
// else and `onData` / `onExit` never fire here — so an attachment that
|
|
488
|
+
// skipped it would have an empty screen *and* a dead exit route, and the
|
|
489
|
+
// "an exit answers every wait" case in `settledSince` would never run. A
|
|
490
|
+
// caller that turns the replay off wants to skip the scrollback, not to
|
|
491
|
+
// be deaf.
|
|
492
|
+
//
|
|
493
|
+
// `catchUp` says a replay follows and the Core must hold the live stream
|
|
494
|
+
// until it has been served; it is set exactly when one does, because a
|
|
495
|
+
// hold nobody redeems strands the Session's output on the Core.
|
|
496
|
+
await client.ptySubscribe(ptyId, { catchUp: replay });
|
|
497
|
+
// Recorded the moment it is owed, not once the rest succeeded: a replay
|
|
498
|
+
// that throws still leaves this connection subscribed, and the `dispose`
|
|
499
|
+
// in the catch below is the only thing that will ever give it back.
|
|
500
|
+
session.subscribedToPty = true;
|
|
501
|
+
if (replay) {
|
|
502
|
+
const { data } = await client.replay(ptyId);
|
|
503
|
+
terminal.write(data);
|
|
504
|
+
}
|
|
505
|
+
await session.seedStatus();
|
|
506
|
+
}
|
|
507
|
+
catch (err) {
|
|
508
|
+
session.dispose();
|
|
509
|
+
// **Only "nothing is running" is an attach error.** A link that blinked
|
|
510
|
+
// during the subscribe, the replay or the status read is a retry, and
|
|
511
|
+
// reporting it as a harness that has exited sends the operator to
|
|
512
|
+
// `resume` for a Session that is running perfectly well. The one genuine
|
|
513
|
+
// case was decided above, before any of this ran.
|
|
514
|
+
if (err instanceof CoreSessionAttachError)
|
|
515
|
+
throw err;
|
|
516
|
+
throw new Error(`could not attach to session ${opts.taskId}: ${err instanceof Error ? err.message : String(err)}`, { cause: err });
|
|
517
|
+
}
|
|
518
|
+
return session;
|
|
519
|
+
}
|
|
315
520
|
// ─── Programmatic I/O ──────────────────────────────────────────────────────
|
|
316
521
|
/**
|
|
317
522
|
* Write to the Session, exactly these bytes and nothing else.
|
|
@@ -333,6 +538,24 @@ export class CoreSession {
|
|
|
333
538
|
send(text) {
|
|
334
539
|
return this.client.write(this.ptyId, text);
|
|
335
540
|
}
|
|
541
|
+
/**
|
|
542
|
+
* {@link send}, with the Core stamping the delivery in its event log and
|
|
543
|
+
* answering with the id — the cursor {@link waitForTurnEnd} counts from
|
|
544
|
+
* (#289 A).
|
|
545
|
+
*
|
|
546
|
+
* Exactly the same bytes and exactly as little timing as `send`: the stamp is
|
|
547
|
+
* a fact recorded about a write that already happened, not a schedule imposed
|
|
548
|
+
* on one. A caller wanting to await the turn its text starts writes with this
|
|
549
|
+
* and waits from what it returns, and the two are one round trip apart with no
|
|
550
|
+
* window between them in which the Session could settle unobserved.
|
|
551
|
+
*
|
|
552
|
+
* `deliveryEventId` is 0 when the Core did not stamp — a write the PTY
|
|
553
|
+
* refused, a Core that predates the stamp, a PTY with no Task behind it. 0 is
|
|
554
|
+
* not a cursor: a caller that waits from it is waiting with none.
|
|
555
|
+
*/
|
|
556
|
+
deliver(text) {
|
|
557
|
+
return this.client.deliver(this.ptyId, text);
|
|
558
|
+
}
|
|
336
559
|
/**
|
|
337
560
|
* Every chunk of this Session's output, as it arrives.
|
|
338
561
|
*
|
|
@@ -415,16 +638,48 @@ export class CoreSession {
|
|
|
415
638
|
* passes a deadline it chose itself.
|
|
416
639
|
*/
|
|
417
640
|
waitForIdle(opts = {}) {
|
|
418
|
-
|
|
641
|
+
return this.waitForTurnEnd(opts);
|
|
642
|
+
}
|
|
643
|
+
/**
|
|
644
|
+
* Wait for the end of the turn that follows event `afterEventId` — the wait
|
|
645
|
+
* `session send --wait` is built on (#289 A, B).
|
|
646
|
+
*
|
|
647
|
+
* **Why a cursor.** {@link waitForIdle} answers from the status the Session is
|
|
648
|
+
* already sitting at, and for a Session that was started here that is right:
|
|
649
|
+
* it has observed no status yet, so anything it hears is this turn's. For a
|
|
650
|
+
* Session that was **already running** it is a lie waiting to be told — a
|
|
651
|
+
* harness parked on `needs-input` is settled, so a wait attached to it and
|
|
652
|
+
* started after a write would return before the harness had read a character,
|
|
653
|
+
* reporting the previous turn's answer as this one's. Passing the id the Core
|
|
654
|
+
* stamped the delivery with turns "is it settled?" into "has it settled since
|
|
655
|
+
* the thing I sent?", and only the second question has a truthful answer.
|
|
656
|
+
*
|
|
657
|
+
* `afterEventId: 0` (the default) is no cursor and is {@link waitForIdle}.
|
|
658
|
+
*
|
|
659
|
+
* Resolves on **any** of {@link SETTLED_SESSION_STATUSES}, not on `finished`
|
|
660
|
+
* alone: a turn that ended on a permission prompt, an escape or a dead harness
|
|
661
|
+
* ended, and a caller waiting for `finished` there waits forever on exactly the
|
|
662
|
+
* cases it most needs to hear about. A process exit resolves it too.
|
|
663
|
+
*
|
|
664
|
+
* Nothing here reads the byte stream, and nothing here consults
|
|
665
|
+
* {@link reportsTurnStart}. Turn end is reported by every harness family; turn
|
|
666
|
+
* *start* is not, which is why no wait is keyed on it.
|
|
667
|
+
*/
|
|
668
|
+
waitForTurnEnd(opts = {}) {
|
|
669
|
+
const afterEventId = opts.afterEventId ?? 0;
|
|
670
|
+
const settled = this.settledSince(afterEventId);
|
|
419
671
|
if (settled)
|
|
420
672
|
return Promise.resolve(settled);
|
|
421
673
|
return new Promise((resolve, reject) => {
|
|
422
674
|
let timer = null;
|
|
423
|
-
const waiter =
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
675
|
+
const waiter = {
|
|
676
|
+
afterEventId,
|
|
677
|
+
notify: (idle) => {
|
|
678
|
+
this.idleWaiters.delete(waiter);
|
|
679
|
+
if (timer)
|
|
680
|
+
clearTimeout(timer);
|
|
681
|
+
resolve(idle);
|
|
682
|
+
},
|
|
428
683
|
};
|
|
429
684
|
this.idleWaiters.add(waiter);
|
|
430
685
|
if (opts.timeoutMs && opts.timeoutMs > 0) {
|
|
@@ -462,6 +717,17 @@ export class CoreSession {
|
|
|
462
717
|
for (const off of this.unsubscribes)
|
|
463
718
|
off();
|
|
464
719
|
this.unsubscribes.length = 0;
|
|
720
|
+
if (this.subscribedToPty) {
|
|
721
|
+
this.subscribedToPty = false;
|
|
722
|
+
// The stream this attachment asked for, given back. Removing the listener
|
|
723
|
+
// stops this process reading the bytes; it does not stop the Core sending
|
|
724
|
+
// them, and an orchestrator that attaches to and disposes many Sessions on
|
|
725
|
+
// one long-lived client would otherwise leave every one of those streams
|
|
726
|
+
// running at it for the life of the client. Fire and forget on purpose:
|
|
727
|
+
// `dispose` is synchronous, nothing waits on the answer, and a link that
|
|
728
|
+
// is already gone has released the subscription by going.
|
|
729
|
+
void this.client.ptyUnsubscribe(this.ptyId).catch(() => { });
|
|
730
|
+
}
|
|
465
731
|
if (this.statusRetryTimer) {
|
|
466
732
|
clearTimeout(this.statusRetryTimer);
|
|
467
733
|
this.statusRetryTimer = null;
|
|
@@ -471,7 +737,10 @@ export class CoreSession {
|
|
|
471
737
|
// forever. `kill()` disposes, and `await session.kill()` after starting a
|
|
472
738
|
// `waitForIdle()` is an ordinary thing to write.
|
|
473
739
|
for (const waiter of [...this.idleWaiters]) {
|
|
474
|
-
waiter(this.
|
|
740
|
+
waiter.notify(this.settledSince(waiter.afterEventId) ?? {
|
|
741
|
+
status: this.lastStatus ?? "disposed",
|
|
742
|
+
exited: false,
|
|
743
|
+
});
|
|
475
744
|
}
|
|
476
745
|
this.dataListeners.clear();
|
|
477
746
|
this.exitListeners.clear();
|
|
@@ -516,7 +785,17 @@ export class CoreSession {
|
|
|
516
785
|
// `session:finished` is appended on the transition into `finished` and on
|
|
517
786
|
// nothing else, so it is the one kind that already says what happened.
|
|
518
787
|
if (event.kind === "session:finished") {
|
|
519
|
-
this.noteStatus("finished");
|
|
788
|
+
this.noteStatus("finished", event.eventId);
|
|
789
|
+
return;
|
|
790
|
+
}
|
|
791
|
+
// A `task:updated` whose payload names the status the mutation **patched**
|
|
792
|
+
// is a report about a turn, and it is exact: it needs no round trip, and it
|
|
793
|
+
// cannot be confused with a rename or an archive of a Session that happens
|
|
794
|
+
// to be sitting at a settled status. Anything else moves the last known
|
|
795
|
+
// status but never the cursor — see {@link readStatus}.
|
|
796
|
+
const patched = patchedStatusOf(event);
|
|
797
|
+
if (patched !== null) {
|
|
798
|
+
this.noteStatus(patched, event.eventId);
|
|
520
799
|
return;
|
|
521
800
|
}
|
|
522
801
|
void this.readStatus();
|
|
@@ -533,6 +812,13 @@ export class CoreSession {
|
|
|
533
812
|
* A read that fails is re-asked ({@link STATUS_READ_RETRIES}), because on
|
|
534
813
|
* `needs-input`, `interrupted` and `terminated` there is no second event to
|
|
535
814
|
* carry the news.
|
|
815
|
+
*
|
|
816
|
+
* **What it reads never advances the wait cursor** (#289 A). This path is
|
|
817
|
+
* reached for an event that did not say what it changed — a rename, an
|
|
818
|
+
* archive, a Core too old to name the patched status — and the row it reads
|
|
819
|
+
* back may be carrying the status of a turn that ended long before. Answering
|
|
820
|
+
* a cursored wait from that is the early resolution the cursor exists to
|
|
821
|
+
* prevent, so a read updates `lastStatus` and leaves the cursor where it was.
|
|
536
822
|
*/
|
|
537
823
|
async readStatus() {
|
|
538
824
|
if (this.disposed)
|
|
@@ -571,6 +857,20 @@ export class CoreSession {
|
|
|
571
857
|
}
|
|
572
858
|
}
|
|
573
859
|
}
|
|
860
|
+
/**
|
|
861
|
+
* Read the Core's current status for this Session once, at attach, at event
|
|
862
|
+
* id 0 — "what it is sitting at", never "what it did".
|
|
863
|
+
*
|
|
864
|
+
* A missing row is not an error here: the Session has a live PTY (the attach
|
|
865
|
+
* proved it), and a Core that does not list it yet will report its status like
|
|
866
|
+
* any other, through the event log this attachment is already listening to.
|
|
867
|
+
*/
|
|
868
|
+
async seedStatus() {
|
|
869
|
+
const sessions = await this.client.sessionsList();
|
|
870
|
+
const mine = sessions.find((s) => s.taskId === this.taskId);
|
|
871
|
+
if (mine)
|
|
872
|
+
this.noteStatus(mine.status, 0);
|
|
873
|
+
}
|
|
574
874
|
/** The next re-ask of a read that failed. Cleared by {@link dispose}. */
|
|
575
875
|
scheduleStatusRetry() {
|
|
576
876
|
if (this.statusRetryTimer)
|
|
@@ -584,22 +884,46 @@ export class CoreSession {
|
|
|
584
884
|
// stay alive.
|
|
585
885
|
this.statusRetryTimer.unref?.();
|
|
586
886
|
}
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
887
|
+
/**
|
|
888
|
+
* Record a status the Core reported, and where in the log it was reported.
|
|
889
|
+
*
|
|
890
|
+
* **A repeated status is still news**, which is why the cursor moves even when
|
|
891
|
+
* the string does not (#289 A). A harness that never moved its Session to
|
|
892
|
+
* `running` ends its second turn by patching `finished` onto a row that
|
|
893
|
+
* already said `finished`; the value did not change, but a turn ended, and a
|
|
894
|
+
* waiter counting from a delivery stamp is waiting for exactly that. What
|
|
895
|
+
* stays gated on a change is {@link onStatus}, which is about the value.
|
|
896
|
+
*/
|
|
897
|
+
noteStatus(status, eventId = 0) {
|
|
898
|
+
const changed = status !== this.lastStatus;
|
|
590
899
|
this.lastStatus = status;
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
900
|
+
if (eventId > this.lastStatusEventId)
|
|
901
|
+
this.lastStatusEventId = eventId;
|
|
902
|
+
if (changed) {
|
|
903
|
+
for (const cb of this.statusListeners) {
|
|
904
|
+
try {
|
|
905
|
+
cb(status);
|
|
906
|
+
}
|
|
907
|
+
catch {
|
|
908
|
+
/* same */
|
|
909
|
+
}
|
|
597
910
|
}
|
|
598
911
|
}
|
|
599
912
|
this.releaseWaiters();
|
|
600
913
|
}
|
|
601
914
|
/** What {@link waitForIdle} would answer right now, or null if it must wait. */
|
|
602
915
|
settledNow() {
|
|
916
|
+
return this.settledSince(0);
|
|
917
|
+
}
|
|
918
|
+
/**
|
|
919
|
+
* What a wait counting from `afterEventId` would answer right now, or null.
|
|
920
|
+
*
|
|
921
|
+
* An **exit** answers every wait, cursor or none: a harness whose process is
|
|
922
|
+
* gone will not report anything else, and a caller left waiting for a status
|
|
923
|
+
* after that waits forever. A status answers a cursored wait only when it was
|
|
924
|
+
* learned after the cursor — a seeded status (event id 0) never does.
|
|
925
|
+
*/
|
|
926
|
+
settledSince(afterEventId) {
|
|
603
927
|
if (this.exit) {
|
|
604
928
|
return {
|
|
605
929
|
status: this.lastStatus ?? "terminated",
|
|
@@ -607,21 +931,58 @@ export class CoreSession {
|
|
|
607
931
|
...(this.exit.exitCode === undefined ? {} : { exitCode: this.exit.exitCode }),
|
|
608
932
|
};
|
|
609
933
|
}
|
|
610
|
-
if (this.lastStatus
|
|
611
|
-
return
|
|
612
|
-
|
|
613
|
-
|
|
934
|
+
if (!this.lastStatus || !SETTLED_SESSION_STATUSES.has(this.lastStatus))
|
|
935
|
+
return null;
|
|
936
|
+
if (afterEventId > 0 && this.lastStatusEventId <= afterEventId)
|
|
937
|
+
return null;
|
|
938
|
+
return { status: this.lastStatus, exited: false };
|
|
614
939
|
}
|
|
615
940
|
releaseWaiters() {
|
|
616
|
-
const
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
941
|
+
for (const waiter of [...this.idleWaiters]) {
|
|
942
|
+
const settled = this.settledSince(waiter.afterEventId);
|
|
943
|
+
if (settled)
|
|
944
|
+
waiter.notify(settled);
|
|
945
|
+
}
|
|
621
946
|
}
|
|
622
947
|
}
|
|
623
|
-
/**
|
|
624
|
-
|
|
948
|
+
/**
|
|
949
|
+
* The status a `task:updated` event says its mutation **patched**, or null when
|
|
950
|
+
* the event does not say (#289 A).
|
|
951
|
+
*
|
|
952
|
+
* Null is not "no status": it is "this event did not report a turn". A Core that
|
|
953
|
+
* names the patched status makes every turn end legible without a round trip; a
|
|
954
|
+
* Core that does not leaves the caller with `readStatus`, which is a fresher
|
|
955
|
+
* answer to a different question.
|
|
956
|
+
*/
|
|
957
|
+
function patchedStatusOf(event) {
|
|
958
|
+
try {
|
|
959
|
+
const payload = JSON.parse(event.payload);
|
|
960
|
+
return typeof payload.status === "string" ? payload.status : null;
|
|
961
|
+
}
|
|
962
|
+
catch {
|
|
963
|
+
// A payload this side cannot parse is a payload this side knows nothing
|
|
964
|
+
// about — the read path below covers it, which is what it is there for.
|
|
965
|
+
return null;
|
|
966
|
+
}
|
|
967
|
+
}
|
|
968
|
+
/**
|
|
969
|
+
* The launch command a Session gets when its caller named none — the whole of
|
|
970
|
+
* it, auto-mode flag included.
|
|
971
|
+
*
|
|
972
|
+
* Exported because it is the one answer to "what will `start` actually run",
|
|
973
|
+
* and issue 177 is what happens when that question has two answers. Both
|
|
974
|
+
* halves of the command come out of the same tables the Core validates against
|
|
975
|
+
* ({@link HARNESS_LAUNCH_COMMANDS} for the binary, which is `cursor-agent` and
|
|
976
|
+
* not `cursor-cli`; {@link HARNESS_SKIP_PERMISSION_FLAGS} for the flag), so a
|
|
977
|
+
* test can put this straight through the Core's `resolveSpawnPlan` and find
|
|
978
|
+
* out rather than reason about it.
|
|
979
|
+
*
|
|
980
|
+
* `skipPermissions` is the caller's request, not a promise about the result:
|
|
981
|
+
* OpenCode has no such flag and so gets none, which the Core accepts, and
|
|
982
|
+
* every other harness gets the one it spells auto mode with, which the Core
|
|
983
|
+
* now *requires* whenever the option is set.
|
|
984
|
+
*/
|
|
985
|
+
export function harnessLaunchCommand(harness, skipPermissions) {
|
|
625
986
|
const base = HARNESS_LAUNCH_COMMANDS[harness];
|
|
626
987
|
if (!skipPermissions)
|
|
627
988
|
return base;
|
package/dist/core-session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-session.js","sourceRoot":"","sources":["../src/core-session.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core-session.js","sourceRoot":"","sources":["../src/core-session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED