@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.
@@ -16,6 +16,33 @@ type Unsubscribe = () => void;
16
16
  * `command` and takes the Core's answer on it.
17
17
  */
18
18
  export declare const HARNESS_LAUNCH_COMMANDS: Readonly<Record<CoreLinkPtySpawnHarness, string>>;
19
+ /**
20
+ * Each harness's spelling of "do not stop to ask me", appended to the default
21
+ * command when {@link CoreSessionStartOptions.dangerouslySkipPermissions} is
22
+ * set.
23
+ *
24
+ * The option and the flag are two halves of one gesture and the Core checks
25
+ * both **directions** of it (issue 177 finding 2): a flag with no option is a
26
+ * rejected spawn, and since that issue an option with no flag is one too. It
27
+ * used to be neither — the Core accepted the mismatch, launched an interactive
28
+ * harness, and let a caller that believed itself unattended sit on a permission
29
+ * prompt nobody was watching. So this table is not a convenience: it is the
30
+ * only thing standing between `dangerouslySkipPermissions: true` and a refused
31
+ * spawn, for every caller that does not pass its own `command`.
32
+ *
33
+ * OpenCode has no such flag, and `null` says so. That is a fact about the
34
+ * vendor's CLI rather than a gap here, and the Core reads it the same way — it
35
+ * is the one harness where the option is allowed to arrive with no flag behind
36
+ * it, because there is no flag to send.
37
+ *
38
+ * Exported because it is the answer to "what does auto mode look like for this
39
+ * harness", and a caller building its own command needs the same cell of the
40
+ * same table. Two transcriptions of a vendor fact is one more than can be kept
41
+ * in step; finding 1 of the same issue was that mistake in the binary column.
42
+ */
43
+ export declare const HARNESS_SKIP_PERMISSION_FLAGS: Readonly<Record<CoreLinkPtySpawnHarness, string | null>>;
44
+ /** The flag that puts `harness` in auto mode, or null where it ships none. */
45
+ export declare function harnessAutoModeFlag(harness: CoreLinkPtySpawnHarness): string | null;
19
46
  /**
20
47
  * The statuses that mean the harness has stopped and is waiting on a human.
21
48
  *
@@ -106,6 +133,32 @@ export type CoreSessionStartOptions = {
106
133
  */
107
134
  subscribeToEvents?: boolean;
108
135
  };
136
+ export type CoreSessionAttachOptions = {
137
+ /** The Session to join. It must have a live PTY; see {@link CoreSessionAttachError}. */
138
+ taskId: string;
139
+ /** Screen width for the transcript this attachment renders. */
140
+ cols?: number;
141
+ /** Screen height. Same. */
142
+ rows?: number;
143
+ /** How many scrolled-off lines {@link CoreSession.screen} keeps. */
144
+ scrollback?: number;
145
+ /** As {@link CoreSessionStartOptions.subscribeToEvents}. Default true. */
146
+ subscribeToEvents?: boolean;
147
+ /**
148
+ * Paint the Core's replay ring into the screen before returning. Default true.
149
+ *
150
+ * On by default because a caller that attaches to read a turn wants the
151
+ * conversation it lands in the middle of, not the tail of one turn — and the
152
+ * ring belongs to the PTY, so it is readable now and gone when the harness
153
+ * exits. Off is for a caller that wants only what this attachment saw.
154
+ *
155
+ * **It does not turn the PTY subscription off**, which is a separate thing and
156
+ * is unconditional: without one, `onData` and `onExit` never fire against a
157
+ * multi-connection Core, and an attachment that could not hear an exit is one
158
+ * whose wait outlives the process it is about.
159
+ */
160
+ replay?: boolean;
161
+ };
109
162
  /** What a Session settled on. */
110
163
  export type CoreSessionIdle = {
111
164
  /** The Core's status for this Session — one of {@link SETTLED_SESSION_STATUSES}. */
@@ -125,12 +178,37 @@ export type CoreSessionWaitOptions = {
125
178
  */
126
179
  timeoutMs?: number;
127
180
  };
181
+ export type CoreSessionTurnWaitOptions = CoreSessionWaitOptions & {
182
+ /**
183
+ * Only a settling status learned at an event id **strictly greater** than this
184
+ * one ends the wait — the id the Core stamped a delivery with
185
+ * ({@link CoreSession.deliver}).
186
+ *
187
+ * 0, the default, is no cursor: any settled status the Session is known to be
188
+ * in ends the wait, which is what {@link CoreSession.waitForIdle} has always
189
+ * done.
190
+ */
191
+ afterEventId?: number;
192
+ };
128
193
  /** The Core refused to start this Session. Carries the Core's own reason. */
129
194
  export declare class CoreSessionStartError extends Error {
130
195
  constructor(message: string, options?: {
131
196
  cause?: unknown;
132
197
  });
133
198
  }
199
+ /**
200
+ * There is nothing running to attach to.
201
+ *
202
+ * Its own kind because it is the one failure an attach has that a start does
203
+ * not, and because the alternative is worse than an error: a wait against a
204
+ * Session whose harness has already exited has nothing that will ever report a
205
+ * turn, so it would hang until the caller's deadline and then blame the Core.
206
+ */
207
+ export declare class CoreSessionAttachError extends Error {
208
+ constructor(message: string, options?: {
209
+ cause?: unknown;
210
+ });
211
+ }
134
212
  /**
135
213
  * One Session on one Core, driven programmatically.
136
214
  *
@@ -144,17 +222,70 @@ export declare class CoreSession {
144
222
  readonly taskId: string;
145
223
  /** The Core's id for this Session's PTY. */
146
224
  readonly ptyId: string;
147
- /** The harness running in it. */
148
- readonly harness: CoreLinkPtySpawnHarness;
149
- /** The command the Core was asked to start, after defaulting. */
150
- readonly command: string;
225
+ /**
226
+ * The harness running in it, or `null` on a Session this process did not
227
+ * start {@link attach} joins a PTY that is already running, and the Core
228
+ * publishes no harness for one. A caller that needs the name reads it off the
229
+ * Task row, which is where it lives.
230
+ */
231
+ readonly harness: CoreLinkPtySpawnHarness | null;
232
+ /**
233
+ * The command the Core was asked to start, after defaulting, or `null` on an
234
+ * {@link attach} — the command was decided by whoever spawned the PTY and the
235
+ * Core does not publish it afterwards. Null is "this side does not know",
236
+ * never "there was none".
237
+ */
238
+ readonly command: string | null;
239
+ /**
240
+ * Will anything move this Session to `running` when a turn begins (issue 84,
241
+ * issue 177 finding 4)?
242
+ *
243
+ * The Core's answer for this Session and not a property of the harness
244
+ * family: it depends on which hooks actually landed on that machine and on
245
+ * whether the vendor fires them. `false` today for `cursor-cli` — the Core
246
+ * writes `.cursor/hooks.json` and cursor-agent never fires
247
+ * `beforeSubmitPrompt` — and for `codex` until an operator reviews the newly
248
+ * installed hooks with `/hooks`. Both still report a turn's *end*.
249
+ *
250
+ * What that means for a caller: {@link waitForIdle} is unaffected, because it
251
+ * waits for a settled status and turn *end* is reported. What is missing is
252
+ * everything in between. A Session with `reportsTurnStart === false` will sit
253
+ * at its pre-turn status for the whole of a turn that is genuinely running,
254
+ * which is indistinguishable from a Session that never started — so a caller
255
+ * that shows progress, or that treats "not running" as "stuck", has to read
256
+ * this and say so rather than infer activity from a status that will not
257
+ * move. The Panel's answer is a terminal-input fallback; the `actana` CLI's
258
+ * is to print the asymmetry.
259
+ *
260
+ * `false` on a Core too old to answer, which is the safe direction: a
261
+ * redundant caveat, never a silently statusless Session.
262
+ *
263
+ * `null` on an {@link attach}, which is a different thing again: the Core
264
+ * answers this question on a **spawn**, so a Session joined after the fact has
265
+ * no answer rather than a negative one. **No wait consults this field** (#289
266
+ * A) — turn *end* is reported by every harness family, and that is what every
267
+ * wait here is waiting for.
268
+ */
269
+ readonly reportsTurnStart: boolean | null;
151
270
  private readonly client;
152
271
  private readonly terminal;
153
272
  private readonly unsubscribes;
154
273
  private readonly dataListeners;
155
274
  private readonly exitListeners;
156
275
  private readonly statusListeners;
276
+ /**
277
+ * Everyone waiting for a turn to end, each with the event id it counts from.
278
+ * A waiter with `afterEventId: 0` takes any settled status; one carrying a
279
+ * delivery stamp takes only a status learned after it.
280
+ */
157
281
  private readonly idleWaiters;
282
+ /**
283
+ * This Session asked the Core for its PTY's stream, so {@link dispose} owes it
284
+ * a matching `ptyUnsubscribe`. False for a spawned Session: the Core
285
+ * subscribes the connection that spawned a PTY, inside the spawn, and nothing
286
+ * here asked for that.
287
+ */
288
+ private subscribedToPty;
158
289
  /**
159
290
  * The Core's last reported status, or null before one has been *observed*.
160
291
  *
@@ -165,6 +296,18 @@ export declare class CoreSession {
165
296
  * event after {@link start} lands here.
166
297
  */
167
298
  private lastStatus;
299
+ /**
300
+ * The event id {@link lastStatus} was learned at, or 0 when it was not learned
301
+ * from an event — the status {@link attach} seeded from the Task row.
302
+ *
303
+ * This is what makes a cursored wait possible (#289 A). "Has this Session
304
+ * settled?" answers with whatever it is sitting at, including last turn's
305
+ * answer; "has this Session settled **since event N**?" is the question a
306
+ * caller that just delivered a prompt is actually asking, and it needs a
307
+ * *where* as well as a *what*. A seeded status carries 0 on purpose: 0 is
308
+ * greater than nothing, so it can never satisfy a real cursor.
309
+ */
310
+ private lastStatusEventId;
168
311
  private exit;
169
312
  private disposed;
170
313
  /** A status read is in flight; another event arrived while it was. */
@@ -197,6 +340,43 @@ export declare class CoreSession {
197
340
  * installed on that machine.
198
341
  */
199
342
  static start(client: CoreClient, opts: CoreSessionStartOptions): Promise<CoreSession>;
343
+ /**
344
+ * Join a Session that is **already running**, for the length of a turn (#289).
345
+ *
346
+ * The gap this closes: {@link start} is the only way into a `CoreSession`, and
347
+ * it spawns. Everything this class offers a caller after the first turn — the
348
+ * screen, the status, the wait — was unreachable for a Session somebody else
349
+ * started, or that this process started and hung up on. Awaiting a follow-up
350
+ * turn is therefore SDK work rather than a flag on a command, and this is it.
351
+ *
352
+ * What it does, in order, and the order is the point:
353
+ *
354
+ * 1. subscribe to the event log, if nothing has, so a status change that
355
+ * lands during the rest of this is heard rather than missed;
356
+ * 2. resolve the Task's live PTY — **once**, and every write and wait made
357
+ * through the returned Session uses that resolution, so there is no
358
+ * window between delivering text and starting to wait for it;
359
+ * 3. wire the byte stream, the exit and the events **before** subscribing;
360
+ * 4. subscribe to that PTY, which is what makes the Core send this
361
+ * connection its bytes and its exit at all;
362
+ * 5. seed the screen from the Core's replay ring, and the last known status
363
+ * from the Session snapshot.
364
+ *
365
+ * **The seeded status carries event id 0**, which is what keeps it honest.
366
+ * `waitForIdle` will answer from it — that is `actana session wait` on a
367
+ * Session already sitting at `needs-input`, and answering immediately is
368
+ * right, because no turn was asked for. {@link waitForTurnEnd} with a delivery
369
+ * stamp will not: 0 can never be greater than a real cursor, so a wait for the
370
+ * turn a write starts cannot be answered by the turn before it.
371
+ *
372
+ * Rejects with {@link CoreSessionAttachError} when the Task has no live PTY —
373
+ * a harness that exited, or a Session id that is not one. **Only that.** A
374
+ * link that blinked during the subscribe, the replay or the status read
375
+ * rejects with an ordinary `Error`: the two are different next steps, and
376
+ * reporting a busy Core as a dead harness sends a caller to `resume` for a
377
+ * Session that is running perfectly well.
378
+ */
379
+ static attach(client: CoreClient, opts: CoreSessionAttachOptions): Promise<CoreSession>;
200
380
  /**
201
381
  * Write to the Session, exactly these bytes and nothing else.
202
382
  *
@@ -215,6 +395,25 @@ export declare class CoreSession {
215
395
  * exited. Rejects when another Core client holds this Session's lock.
216
396
  */
217
397
  send(text: string): Promise<boolean>;
398
+ /**
399
+ * {@link send}, with the Core stamping the delivery in its event log and
400
+ * answering with the id — the cursor {@link waitForTurnEnd} counts from
401
+ * (#289 A).
402
+ *
403
+ * Exactly the same bytes and exactly as little timing as `send`: the stamp is
404
+ * a fact recorded about a write that already happened, not a schedule imposed
405
+ * on one. A caller wanting to await the turn its text starts writes with this
406
+ * and waits from what it returns, and the two are one round trip apart with no
407
+ * window between them in which the Session could settle unobserved.
408
+ *
409
+ * `deliveryEventId` is 0 when the Core did not stamp — a write the PTY
410
+ * refused, a Core that predates the stamp, a PTY with no Task behind it. 0 is
411
+ * not a cursor: a caller that waits from it is waiting with none.
412
+ */
413
+ deliver(text: string): Promise<{
414
+ ok: boolean;
415
+ deliveryEventId: number;
416
+ }>;
218
417
  /**
219
418
  * Every chunk of this Session's output, as it arrives.
220
419
  *
@@ -283,6 +482,32 @@ export declare class CoreSession {
283
482
  * passes a deadline it chose itself.
284
483
  */
285
484
  waitForIdle(opts?: CoreSessionWaitOptions): Promise<CoreSessionIdle>;
485
+ /**
486
+ * Wait for the end of the turn that follows event `afterEventId` — the wait
487
+ * `session send --wait` is built on (#289 A, B).
488
+ *
489
+ * **Why a cursor.** {@link waitForIdle} answers from the status the Session is
490
+ * already sitting at, and for a Session that was started here that is right:
491
+ * it has observed no status yet, so anything it hears is this turn's. For a
492
+ * Session that was **already running** it is a lie waiting to be told — a
493
+ * harness parked on `needs-input` is settled, so a wait attached to it and
494
+ * started after a write would return before the harness had read a character,
495
+ * reporting the previous turn's answer as this one's. Passing the id the Core
496
+ * stamped the delivery with turns "is it settled?" into "has it settled since
497
+ * the thing I sent?", and only the second question has a truthful answer.
498
+ *
499
+ * `afterEventId: 0` (the default) is no cursor and is {@link waitForIdle}.
500
+ *
501
+ * Resolves on **any** of {@link SETTLED_SESSION_STATUSES}, not on `finished`
502
+ * alone: a turn that ended on a permission prompt, an escape or a dead harness
503
+ * ended, and a caller waiting for `finished` there waits forever on exactly the
504
+ * cases it most needs to hear about. A process exit resolves it too.
505
+ *
506
+ * Nothing here reads the byte stream, and nothing here consults
507
+ * {@link reportsTurnStart}. Turn end is reported by every harness family; turn
508
+ * *start* is not, which is why no wait is keyed on it.
509
+ */
510
+ waitForTurnEnd(opts?: CoreSessionTurnWaitOptions): Promise<CoreSessionIdle>;
286
511
  /** Resize the PTY and the screen together, so both agree about wrapping. */
287
512
  resize(cols: number, rows: number): Promise<boolean>;
288
513
  /** Kill the harness's process, then release this Session's listeners. */
@@ -308,14 +533,67 @@ export declare class CoreSession {
308
533
  * A read that fails is re-asked ({@link STATUS_READ_RETRIES}), because on
309
534
  * `needs-input`, `interrupted` and `terminated` there is no second event to
310
535
  * carry the news.
536
+ *
537
+ * **What it reads never advances the wait cursor** (#289 A). This path is
538
+ * reached for an event that did not say what it changed — a rename, an
539
+ * archive, a Core too old to name the patched status — and the row it reads
540
+ * back may be carrying the status of a turn that ended long before. Answering
541
+ * a cursored wait from that is the early resolution the cursor exists to
542
+ * prevent, so a read updates `lastStatus` and leaves the cursor where it was.
311
543
  */
312
544
  private readStatus;
545
+ /**
546
+ * Read the Core's current status for this Session once, at attach, at event
547
+ * id 0 — "what it is sitting at", never "what it did".
548
+ *
549
+ * A missing row is not an error here: the Session has a live PTY (the attach
550
+ * proved it), and a Core that does not list it yet will report its status like
551
+ * any other, through the event log this attachment is already listening to.
552
+ */
553
+ private seedStatus;
313
554
  /** The next re-ask of a read that failed. Cleared by {@link dispose}. */
314
555
  private scheduleStatusRetry;
556
+ /**
557
+ * Record a status the Core reported, and where in the log it was reported.
558
+ *
559
+ * **A repeated status is still news**, which is why the cursor moves even when
560
+ * the string does not (#289 A). A harness that never moved its Session to
561
+ * `running` ends its second turn by patching `finished` onto a row that
562
+ * already said `finished`; the value did not change, but a turn ended, and a
563
+ * waiter counting from a delivery stamp is waiting for exactly that. What
564
+ * stays gated on a change is {@link onStatus}, which is about the value.
565
+ */
315
566
  private noteStatus;
316
567
  /** What {@link waitForIdle} would answer right now, or null if it must wait. */
317
568
  private settledNow;
569
+ /**
570
+ * What a wait counting from `afterEventId` would answer right now, or null.
571
+ *
572
+ * An **exit** answers every wait, cursor or none: a harness whose process is
573
+ * gone will not report anything else, and a caller left waiting for a status
574
+ * after that waits forever. A status answers a cursored wait only when it was
575
+ * learned after the cursor — a seeded status (event id 0) never does.
576
+ */
577
+ private settledSince;
318
578
  private releaseWaiters;
319
579
  }
580
+ /**
581
+ * The launch command a Session gets when its caller named none — the whole of
582
+ * it, auto-mode flag included.
583
+ *
584
+ * Exported because it is the one answer to "what will `start` actually run",
585
+ * and issue 177 is what happens when that question has two answers. Both
586
+ * halves of the command come out of the same tables the Core validates against
587
+ * ({@link HARNESS_LAUNCH_COMMANDS} for the binary, which is `cursor-agent` and
588
+ * not `cursor-cli`; {@link HARNESS_SKIP_PERMISSION_FLAGS} for the flag), so a
589
+ * test can put this straight through the Core's `resolveSpawnPlan` and find
590
+ * out rather than reason about it.
591
+ *
592
+ * `skipPermissions` is the caller's request, not a promise about the result:
593
+ * OpenCode has no such flag and so gets none, which the Core accepts, and
594
+ * every other harness gets the one it spells auto mode with, which the Core
595
+ * now *requires* whenever the option is set.
596
+ */
597
+ export declare function harnessLaunchCommand(harness: CoreLinkPtySpawnHarness, skipPermissions: boolean): string;
320
598
  export {};
321
599
  //# sourceMappingURL=core-session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-session.d.ts","sourceRoot":"","sources":["../src/core-session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-session.d.ts","sourceRoot":"","sources":["../src/core-session.ts"],"names":[],"mappings":"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"}