@wrongstack/tui 1.0.8 → 1.0.10

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.
@@ -1,6 +1,6 @@
1
1
  import type { ContentBlock } from '@wrongstack/core/types';
2
2
  import type { Action, State } from './app-reducer.js';
3
- import type { RunBlocksCapabilities } from './tui-host-capabilities.js';
3
+ import type { RunBlocksCapabilities, RunBlocksOptions } from './tui-host-capabilities.js';
4
4
  import type { MutableCell, StreamSegment } from './shared-types.js';
5
5
  export interface RunBlocksRefs {
6
6
  readonly sessionGeneration: MutableCell<number>;
@@ -26,6 +26,6 @@ interface RunBlocksHost {
26
26
  * recovery, summaries, lifecycle cleanup, and FIFO queue draining; the App
27
27
  * shell only supplies stable capabilities and mutable lifecycle cells.
28
28
  */
29
- export declare function createRunBlocksController(host: RunBlocksHost): (blocks: ContentBlock[]) => Promise<void>;
29
+ export declare function createRunBlocksController(host: RunBlocksHost): (blocks: ContentBlock[], opts?: RunBlocksOptions) => Promise<void>;
30
30
  export {};
31
31
  //# sourceMappingURL=run-blocks-controller.d.ts.map
@@ -2,8 +2,14 @@ import type { TerminalLifecycle } from '@wrongstack/core/utils';
2
2
  import type { RunTuiOptions } from './run-tui-options.js';
3
3
  /** Everything runTui needs from the exit wiring after handing it over. */
4
4
  export interface ExitOrchestrator {
5
- /** Resolves the run promise through the durable-close budget. */
6
- settle: (code: number) => void;
5
+ /**
6
+ * Resolves the run promise through the durable-close budget.
7
+ *
8
+ * `afterCleanup` runs only after the alternate buffer is restored and
9
+ * terminal output is unsilenced. Startup failures use it to report a mount
10
+ * error to the shell rather than writing it into the hidden TUI buffer.
11
+ */
12
+ settle: (code: number, afterCleanup?: (() => void) | undefined) => void;
7
13
  /** Clean project-switch exit: unmount, then a 5s hard-exit fallback. */
8
14
  requestExit: (code: number) => void;
9
15
  /** Raw-stdin Ctrl+C watcher — pass to mountInkApp (armed after render). */
@@ -42,6 +42,12 @@ export interface RunTuiOptions {
42
42
  * its next iteration boundary without the queue being delivered early.
43
43
  */
44
44
  onQueueChange?: ((items: string[]) => void) | undefined;
45
+ /**
46
+ * Background-delegation auto-wake controller (core
47
+ * `LeaderAutoWakeController`). When present the TUI binds a wake port for
48
+ * the foreground session and reports user runs / idle-after-run to it.
49
+ */
50
+ leaderAutoWake?: import('./app-props.js').TuiLeaderAutoWake | undefined;
45
51
  /** Surfaces the "⚠ YOLO" chip in the status bar. */
46
52
  yolo?: boolean | undefined;
47
53
  /** Query live YOLO state from the permission policy. */
@@ -32,6 +32,22 @@ export interface RunBlocksCapabilities {
32
32
  }) => Promise<string[]>) | undefined;
33
33
  /** Observes a completed foreground run after its result has been rendered. */
34
34
  onRunFinished?: ((status: 'done' | 'aborted' | 'failed' | 'max_iterations') => void) | undefined;
35
+ /**
36
+ * A user-originated run is starting (typed input, queue drain, steer). The
37
+ * auto-wake chain cap resets on it. Not called for auto-wake turns.
38
+ */
39
+ onUserRun?: (() => void) | undefined;
40
+ /**
41
+ * The controller went idle with an empty queue after a run — the auto-wake
42
+ * post-run check (a background result that landed during the last
43
+ * iteration).
44
+ */
45
+ onIdleAfterRun?: (() => void) | undefined;
46
+ }
47
+ /** Where a `runBlocks` invocation came from. Default `user`. */
48
+ export type RunBlocksOrigin = 'user' | 'auto_wake';
49
+ export interface RunBlocksOptions {
50
+ origin?: RunBlocksOrigin | undefined;
35
51
  }
36
52
  type ClearAction = Extract<Action, {
37
53
  type: 'clearHistory';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wrongstack/tui",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "license": "MIT",
5
5
  "description": "WrongStack terminal UI: Ink-based interactive renderer with history, pickers, and slash menus.",
6
6
  "repository": {
@@ -26,26 +26,26 @@
26
26
  "!dist/**/*.map"
27
27
  ],
28
28
  "dependencies": {
29
- "@wrongstack/core": "1.0.8",
30
- "@wrongstack/kanban": "1.0.8",
31
- "@wrongstack/runtime": "1.0.8",
32
- "@wrongstack/sage": "1.0.8",
33
- "@wrongstack/sdd": "1.0.8",
34
- "@wrongstack/tools": "1.0.8",
35
- "ink": "7.1.1",
36
- "react": "^19.2.8",
29
+ "@wrongstack/core": "1.0.10",
30
+ "@wrongstack/kanban": "1.0.10",
31
+ "@wrongstack/runtime": "1.0.10",
32
+ "@wrongstack/sage": "1.0.10",
33
+ "@wrongstack/sdd": "1.0.10",
34
+ "@wrongstack/tools": "1.0.10",
37
35
  "string-width": "8.2.2",
38
36
  "wrap-ansi": "^10.0.1"
39
37
  },
40
38
  "devDependencies": {
41
39
  "@testing-library/dom": "^10.4.1",
42
- "@testing-library/react": "^16.3.2",
43
- "@types/node": "^26.2.0",
44
- "@types/react": "^19.2.18",
45
- "@types/react-dom": "^19.2.4",
40
+ "@testing-library/react": "^16.3.3",
41
+ "@types/node": "^26.5.1",
42
+ "@types/react": "^19.3.0",
43
+ "@types/react-dom": "^19.3.0",
44
+ "ink": "7.1.1",
46
45
  "ink-testing-library": "^4.0.0",
47
46
  "jsdom": "^30.0.1",
48
- "react-dom": "^19.2.8",
47
+ "react": "^19.3.0",
48
+ "react-dom": "^19.3.0",
49
49
  "typescript": "^7.0.2"
50
50
  },
51
51
  "publishConfig": {