@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.
@@ -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 CoreSessionOptions.dangerouslySkipPermissions} is set.
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: the flag is allow-listed only for a spawn that also set the option, so
77
- * setting one without the other is a rejected spawn rather than a quiet
78
- * downgrade. OpenCode has no such flag, and gets none.
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
- /** The harness running in it. */
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
- /** The command the Core was asked to start, after defaulting. */
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 ?? defaultLaunchCommand(opts.harness, opts.dangerouslySkipPermissions === true);
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
- const settled = this.settledNow();
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 = (idle) => {
424
- this.idleWaiters.delete(waiter);
425
- if (timer)
426
- clearTimeout(timer);
427
- resolve(idle);
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.settledNow() ?? { status: this.lastStatus ?? "disposed", exited: false });
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
- noteStatus(status) {
588
- if (status === this.lastStatus)
589
- return;
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
- for (const cb of this.statusListeners) {
592
- try {
593
- cb(status);
594
- }
595
- catch {
596
- /* same */
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 && SETTLED_SESSION_STATUSES.has(this.lastStatus)) {
611
- return { status: this.lastStatus, exited: false };
612
- }
613
- return null;
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 settled = this.settledNow();
617
- if (!settled)
618
- return;
619
- for (const waiter of [...this.idleWaiters])
620
- waiter(settled);
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
- /** The launch command for a harness nobody named one for. */
624
- function defaultLaunchCommand(harness, skipPermissions) {
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;
@@ -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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actana/sdk",
3
- "version": "0.3.2",
3
+ "version": "0.4.1",
4
4
  "description": "Actana Control SDK — the Core client and the core-link wire protocol it speaks: frame schema, protocol version, codec, transport.",
5
5
  "license": "MIT",
6
6
  "type": "module",