@wrongstack/tui 0.287.0 → 0.291.0
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/dist/app-initial-state.d.ts +22 -3
- package/dist/app-initial-state.d.ts.map +1 -1
- package/dist/app-props.d.ts +622 -0
- package/dist/app-props.d.ts.map +1 -0
- package/dist/app-reducer.d.ts.map +1 -1
- package/dist/app-state.d.ts +74 -11
- package/dist/app-state.d.ts.map +1 -1
- package/dist/app.d.ts +4 -595
- package/dist/app.d.ts.map +1 -1
- package/dist/components/agents-monitor.d.ts.map +1 -1
- package/dist/components/animation-style.d.ts +29 -0
- package/dist/components/animation-style.d.ts.map +1 -1
- package/dist/components/auth-panel.d.ts.map +1 -1
- package/dist/components/clear-confirm-panel.d.ts +35 -0
- package/dist/components/clear-confirm-panel.d.ts.map +1 -0
- package/dist/components/confirm-prompt.d.ts +2 -1
- package/dist/components/confirm-prompt.d.ts.map +1 -1
- package/dist/components/enhance-panel.d.ts +11 -3
- package/dist/components/enhance-panel.d.ts.map +1 -1
- package/dist/components/exit-confirm-panel.d.ts +28 -0
- package/dist/components/exit-confirm-panel.d.ts.map +1 -0
- package/dist/components/fleet-panel.d.ts +1 -0
- package/dist/components/fleet-panel.d.ts.map +1 -1
- package/dist/components/history/banner.d.ts.map +1 -1
- package/dist/components/history/entry.d.ts +6 -1
- package/dist/components/history/entry.d.ts.map +1 -1
- package/dist/components/history/index.d.ts +2 -2
- package/dist/components/history/index.d.ts.map +1 -1
- package/dist/components/history/replay.d.ts +14 -38
- package/dist/components/history/replay.d.ts.map +1 -1
- package/dist/components/history/types.d.ts +19 -0
- package/dist/components/history/types.d.ts.map +1 -1
- package/dist/components/history.d.ts +1 -1
- package/dist/components/history.d.ts.map +1 -1
- package/dist/components/kanban-panel.d.ts +72 -1
- package/dist/components/kanban-panel.d.ts.map +1 -1
- package/dist/components/phase-panel.d.ts +1 -1
- package/dist/components/phase-panel.d.ts.map +1 -1
- package/dist/components/plugin-picker.d.ts.map +1 -1
- package/dist/components/powerline-rail.d.ts.map +1 -1
- package/dist/components/process-list.d.ts.map +1 -1
- package/dist/components/scrollable-history.d.ts +1 -1
- package/dist/components/scrollable-history.d.ts.map +1 -1
- package/dist/components/settings-picker.d.ts +6 -3
- package/dist/components/settings-picker.d.ts.map +1 -1
- package/dist/components/slash-confirm-panel.d.ts +14 -0
- package/dist/components/slash-confirm-panel.d.ts.map +1 -0
- package/dist/components/status-bar-chips.d.ts.map +1 -1
- package/dist/components/status-bar.d.ts +25 -22
- package/dist/components/status-bar.d.ts.map +1 -1
- package/dist/components/statusline-picker.d.ts +6 -4
- package/dist/components/statusline-picker.d.ts.map +1 -1
- package/dist/components/tools-picker.d.ts.map +1 -1
- package/dist/components/worktree-monitor.d.ts +1 -1
- package/dist/components/worktree-panel.d.ts +1 -1
- package/dist/esc-close-panels.d.ts +42 -0
- package/dist/esc-close-panels.d.ts.map +1 -0
- package/dist/exit-slash.d.ts +40 -0
- package/dist/exit-slash.d.ts.map +1 -0
- package/dist/f-key-panels.d.ts +16 -1
- package/dist/f-key-panels.d.ts.map +1 -1
- package/dist/heap-watchdog.d.ts.map +1 -1
- package/dist/height-cache.d.ts +5 -0
- package/dist/height-cache.d.ts.map +1 -1
- package/dist/history-retention.d.ts +20 -0
- package/dist/history-retention.d.ts.map +1 -0
- package/dist/hooks/use-auth-panel.d.ts +4 -0
- package/dist/hooks/use-auth-panel.d.ts.map +1 -1
- package/dist/hooks/use-director-fleet-bridge.d.ts +6 -5
- package/dist/hooks/use-director-fleet-bridge.d.ts.map +1 -1
- package/dist/hooks/use-exit-command.d.ts +55 -0
- package/dist/hooks/use-exit-command.d.ts.map +1 -0
- package/dist/hooks/use-fleet-generation-gate.d.ts +37 -0
- package/dist/hooks/use-fleet-generation-gate.d.ts.map +1 -0
- package/dist/hooks/use-live-todos.d.ts +4 -0
- package/dist/hooks/use-live-todos.d.ts.map +1 -0
- package/dist/hooks/use-session-interrupt-controller.d.ts +51 -0
- package/dist/hooks/use-session-interrupt-controller.d.ts.map +1 -0
- package/dist/hooks/use-subagent-events.d.ts +3 -4
- package/dist/hooks/use-subagent-events.d.ts.map +1 -1
- package/dist/hooks/use-tui-activity.d.ts +2 -1
- package/dist/hooks/use-tui-activity.d.ts.map +1 -1
- package/dist/hooks/use-tui-event-bridge.d.ts +10 -3
- package/dist/hooks/use-tui-event-bridge.d.ts.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20453 -18161
- package/dist/index.js.map +4 -4
- package/dist/kanban-audit.d.ts +116 -0
- package/dist/kanban-audit.d.ts.map +1 -0
- package/dist/kanban-slash.d.ts +178 -0
- package/dist/kanban-slash.d.ts.map +1 -0
- package/dist/reducers/helpers.d.ts +1 -1
- package/dist/reducers/helpers.d.ts.map +1 -1
- package/dist/run-tui.d.ts +28 -2
- package/dist/run-tui.d.ts.map +1 -1
- package/dist/slash-command-search.d.ts +5 -0
- package/dist/slash-command-search.d.ts.map +1 -1
- package/dist/submit-history.d.ts +9 -6
- package/dist/submit-history.d.ts.map +1 -1
- package/dist/theme.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Director, SlashCommand } from '@wrongstack/core';
|
|
2
|
+
import type { MutableRefObject } from 'react';
|
|
3
|
+
import type { Action, State } from '../app-reducer.js';
|
|
4
|
+
import type { SessionInterruptController } from './use-session-interrupt-controller.js';
|
|
5
|
+
/**
|
|
6
|
+
* Minimal structural type for the slash registry hooks use. The real
|
|
7
|
+
* registry exports a richer `SlashCommand` interface, but this hook only
|
|
8
|
+
* needs the registration API surface and accepts the command shape
|
|
9
|
+
* implicitly via the factory we register.
|
|
10
|
+
*/
|
|
11
|
+
interface SlashRegistryLike {
|
|
12
|
+
register(cmd: SlashCommand, owner?: string, opts?: {
|
|
13
|
+
official?: boolean;
|
|
14
|
+
}): void;
|
|
15
|
+
unregister(name: string): void;
|
|
16
|
+
get?(name: string): SlashCommand | undefined;
|
|
17
|
+
}
|
|
18
|
+
export interface UseExitCommandOptions {
|
|
19
|
+
slashRegistry: SlashRegistryLike;
|
|
20
|
+
dispatch: (action: Action) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Reducer-mirrored snapshot of `state.exitConfirm`. Retained in the hook
|
|
23
|
+
* contract so the caller owns the panel state explicitly; lifecycle
|
|
24
|
+
* teardown is enforced by the awaited confirmation resolver rather than
|
|
25
|
+
* by observing a later render.
|
|
26
|
+
*/
|
|
27
|
+
exitConfirm: State['exitConfirm'];
|
|
28
|
+
stateRef: MutableRefObject<State>;
|
|
29
|
+
sessionGenerationRef: MutableRefObject<number>;
|
|
30
|
+
interruptController?: SessionInterruptController | undefined;
|
|
31
|
+
getDirector?: (() => Director | null | undefined) | undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Wire `/exit` to the TUI shell.
|
|
35
|
+
*
|
|
36
|
+
* Mirrors the `/clear` invariant: while a leader run or any subagent is in
|
|
37
|
+
* flight, `/exit` must NOT terminate the TUI silently. It opens an
|
|
38
|
+
* `exitConfirm` panel that requires explicit Enter/Esc acknowledgement.
|
|
39
|
+
*
|
|
40
|
+
* Once the user confirms, the hook bumps the session generation, aborts the
|
|
41
|
+
* foreground leader plus autonomy/SDD drivers, and waits for both leader-idle
|
|
42
|
+
* and fleet teardown behind a bounded 1500 ms grace window. This matches the
|
|
43
|
+
* producer lifecycle used by `/interrupt` and `/clear`.
|
|
44
|
+
* The slash dispatcher then observes `{ exit: true }` on the resolved
|
|
45
|
+
* command and asks Ink to unmount; we deliberately do NOT call `exit()`
|
|
46
|
+
* ourselves so there is exactly one graceful-unmount path.
|
|
47
|
+
*
|
|
48
|
+
* When no work is active, `confirmExit` resolves `true` without opening the
|
|
49
|
+
* modal because there is no fleet teardown to await.
|
|
50
|
+
*
|
|
51
|
+
* The hook must be mounted exactly once from the App component.
|
|
52
|
+
*/
|
|
53
|
+
export declare function useExitCommand({ slashRegistry, dispatch, stateRef, sessionGenerationRef, interruptController, getDirector, }: UseExitCommandOptions): void;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=use-exit-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-exit-command.d.ts","sourceRoot":"","sources":["../../src/hooks/use-exit-command.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uCAAuC,CAAC;AAExF;;;;;GAKG;AACH,UAAU,iBAAiB;IACzB,QAAQ,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACjF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;CAC9C;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;;OAKG;IACH,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAClC,QAAQ,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAClC,oBAAoB,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,mBAAmB,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC7D,WAAW,CAAC,EAAE,CAAC,MAAM,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CAC/D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,EAC7B,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,EAAE,qBAAqB,GAAG,IAAI,CA+F9B"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session-generation gate for fleet event bridges.
|
|
3
|
+
*
|
|
4
|
+
* Fleet event bridges must discard events from subagents that were spawned
|
|
5
|
+
* before the last `/clear`. This shared hook encapsulates that logic so any
|
|
6
|
+
* bridge can apply it consistently. Currently consumed by
|
|
7
|
+
* `useDirectorFleetBridge` (Director FleetBus streaming); `useSubagentEvents`
|
|
8
|
+
* (EventBus lifecycle) does not gate on generation today.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* ```ts
|
|
12
|
+
* const gate = useFleetGenerationGate(sessionGenerationRef);
|
|
13
|
+
* // On subagent spawn / first-seen:
|
|
14
|
+
* gate.track(id);
|
|
15
|
+
* // Before processing any event:
|
|
16
|
+
* if (!gate.isLive(id)) return;
|
|
17
|
+
* // On subagent removal:
|
|
18
|
+
* gate.forget(id);
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* When `sessionGenerationRef` is absent (no /clear support wired), `isLive`
|
|
22
|
+
* always returns `true` — backward-compatible no-op.
|
|
23
|
+
*/
|
|
24
|
+
export interface FleetGenerationGate {
|
|
25
|
+
/** Record that a subagent was first seen at the current generation.
|
|
26
|
+
* Call on spawn or first event. No-op when no sessionGenerationRef. */
|
|
27
|
+
track: (subagentId: string) => void;
|
|
28
|
+
/** Returns true if the subagent's events should be processed.
|
|
29
|
+
* Returns false after /clear bumps the generation. */
|
|
30
|
+
isLive: (subagentId: string) => boolean;
|
|
31
|
+
/** Clean up tracking for a removed subagent. */
|
|
32
|
+
forget: (subagentId: string) => void;
|
|
33
|
+
}
|
|
34
|
+
export declare function useFleetGenerationGate(sessionGenerationRef?: {
|
|
35
|
+
current: number;
|
|
36
|
+
} | undefined): FleetGenerationGate;
|
|
37
|
+
//# sourceMappingURL=use-fleet-generation-gate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-fleet-generation-gate.d.ts","sourceRoot":"","sources":["../../src/hooks/use-fleet-generation-gate.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,mBAAmB;IAClC;4EACwE;IACxE,KAAK,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC;2DACuD;IACvD,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,gDAAgD;IAChD,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC;AAED,wBAAgB,sBAAsB,CACpC,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACrD,mBAAmB,CA2BrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-live-todos.d.ts","sourceRoot":"","sources":["../../src/hooks/use-live-todos.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGxD,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,QAAQ,EAAE,CAW9D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { EternalAutonomyEngine, ParallelEternalEngine } from '@wrongstack/core';
|
|
2
|
+
import type { SddRunControl } from '@wrongstack/sdd';
|
|
3
|
+
import type { Action, State } from '../app-reducer.js';
|
|
4
|
+
interface MutableRef<T> {
|
|
5
|
+
current: T;
|
|
6
|
+
}
|
|
7
|
+
interface StreamSegment {
|
|
8
|
+
kind: 'assistant' | 'thinking';
|
|
9
|
+
text: string;
|
|
10
|
+
}
|
|
11
|
+
export interface SessionInterruptController {
|
|
12
|
+
abortLeader: () => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* True while a leader run, autonomy loop, or SDD run is in flight. Read by
|
|
15
|
+
* `/clear` to confirm before wiping a session that still has active work.
|
|
16
|
+
*/
|
|
17
|
+
isRunning?: (() => boolean) | undefined;
|
|
18
|
+
/** TUI-owned `/clear` confirmation panel bridge. */
|
|
19
|
+
confirmClear?: ((info: {
|
|
20
|
+
leaderActive: boolean;
|
|
21
|
+
subagentCount: number;
|
|
22
|
+
}) => Promise<boolean>) | undefined;
|
|
23
|
+
/** TUI-owned generic slash-command confirmation panel bridge. */
|
|
24
|
+
confirmSlash?: ((question: string, defaultYes: boolean) => Promise<boolean | null>) | undefined;
|
|
25
|
+
resetSession?: (() => void) | undefined;
|
|
26
|
+
waitForIdle?: (() => Promise<void>) | undefined;
|
|
27
|
+
}
|
|
28
|
+
interface UseSessionInterruptControllerOptions {
|
|
29
|
+
interruptController: SessionInterruptController | undefined;
|
|
30
|
+
dispatch: (action: Action) => void;
|
|
31
|
+
stateRef: MutableRef<State>;
|
|
32
|
+
activeCtrlRef: MutableRef<AbortController | null>;
|
|
33
|
+
activeRunSettledRef: MutableRef<Promise<void>>;
|
|
34
|
+
sessionGenerationRef: MutableRef<number>;
|
|
35
|
+
streamingTextRef: MutableRef<string>;
|
|
36
|
+
streamSegmentsRef: MutableRef<StreamSegment[]>;
|
|
37
|
+
pendingDeltaRef: MutableRef<string>;
|
|
38
|
+
assistantCommittedThisRunRef: MutableRef<boolean>;
|
|
39
|
+
flushTimerRef: MutableRef<ReturnType<typeof setTimeout> | null>;
|
|
40
|
+
eternalLoopRunningRef: MutableRef<boolean>;
|
|
41
|
+
parallelLoopRunningRef: MutableRef<boolean>;
|
|
42
|
+
clearPendingConfirms: () => void;
|
|
43
|
+
getEternalEngine: (() => EternalAutonomyEngine | null) | undefined;
|
|
44
|
+
getParallelEngine: (() => ParallelEternalEngine | null) | undefined;
|
|
45
|
+
getSddRun: (() => SddRunControl | null) | undefined;
|
|
46
|
+
switchAutonomy: ((mode: 'off' | 'suggest' | 'auto' | 'eternal' | 'eternal-parallel') => string | null) | undefined;
|
|
47
|
+
}
|
|
48
|
+
/** Connect `/interrupt` and `/clear` to the live TUI run lifecycle. */
|
|
49
|
+
export declare function useSessionInterruptController({ interruptController, dispatch, stateRef, activeCtrlRef, activeRunSettledRef, sessionGenerationRef, streamingTextRef, streamSegmentsRef, pendingDeltaRef, assistantCommittedThisRunRef, flushTimerRef, eternalLoopRunningRef, parallelLoopRunningRef, clearPendingConfirms, getEternalEngine, getParallelEngine, getSddRun, switchAutonomy, }: UseSessionInterruptControllerOptions): void;
|
|
50
|
+
export {};
|
|
51
|
+
//# sourceMappingURL=use-session-interrupt-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-session-interrupt-controller.d.ts","sourceRoot":"","sources":["../../src/hooks/use-session-interrupt-controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,10 @@ import type { Action } from '../app-reducer.js';
|
|
|
6
6
|
*
|
|
7
7
|
* Chat entries are gated by `getChatMode` (fleet-chat verbosity):
|
|
8
8
|
* - 'full' — every lifecycle line (legacy behavior).
|
|
9
|
-
* - 'compact' — spawn ▶, completion ✓, and the FIRST budget ⚡ warning per
|
|
10
|
-
* (agent, limit-kind); task-started / iteration / extension
|
|
11
|
-
* lines are dropped (F2/F3 monitors show them live).
|
|
12
9
|
* - 'off' — only non-success completions (✗/⏱/⊘); failures never go
|
|
13
10
|
* silent. All fleet-table dispatches run in every mode.
|
|
14
11
|
*/
|
|
15
|
-
export declare function useSubagentEvents(events: EventBus, dispatch: React.Dispatch<Action>, setActiveMaxContext: (v: number | undefined) => void, getSessionId?: (() => string | undefined) | undefined, getChatMode?: (() => FleetChatVerbosity) | undefined
|
|
12
|
+
export declare function useSubagentEvents(events: EventBus, dispatch: React.Dispatch<Action>, setActiveMaxContext: (v: number | undefined) => void, getSessionId?: (() => string | undefined) | undefined, getChatMode?: (() => FleetChatVerbosity) | undefined, sessionGenerationRef?: {
|
|
13
|
+
current: number;
|
|
14
|
+
} | undefined): void;
|
|
16
15
|
//# sourceMappingURL=use-subagent-events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-subagent-events.d.ts","sourceRoot":"","sources":["../../src/hooks/use-subagent-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-subagent-events.d.ts","sourceRoot":"","sources":["../../src/hooks/use-subagent-events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAqBhD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,QAAQ,EAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAChC,mBAAmB,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,EACpD,YAAY,CAAC,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,EACrD,WAAW,CAAC,EAAE,CAAC,MAAM,kBAAkB,CAAC,GAAG,SAAS,EACpD,oBAAoB,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACrD,IAAI,CAoKN"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Agent } from '@wrongstack/core';
|
|
2
2
|
import type { Action, State } from '../app-reducer.js';
|
|
3
|
+
import { type HeapSample } from '../heap-watchdog.js';
|
|
3
4
|
export interface UseTuiActivityOptions {
|
|
4
5
|
status: State['status'];
|
|
5
6
|
fleet: State['fleet'];
|
|
@@ -17,12 +18,12 @@ export interface UseTuiActivityOptions {
|
|
|
17
18
|
*/
|
|
18
19
|
export declare function useTuiActivity({ status, fleet, enhanceBusy, thinkingWord, projectRoot, stateRef, agentContext, dispatch, }: UseTuiActivityOptions): {
|
|
19
20
|
displayThinkingWord: string;
|
|
20
|
-
displayThinkingWordRef: import("react").RefObject<string>;
|
|
21
21
|
startedAt: number;
|
|
22
22
|
nowTick: number;
|
|
23
23
|
setNowTick: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
24
24
|
workingTimeMs: number;
|
|
25
25
|
fleetWorkingTimeMs: number;
|
|
26
|
+
processMemory: HeapSample;
|
|
26
27
|
enhanceDots: number;
|
|
27
28
|
refreshGoalSummary: () => void;
|
|
28
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tui-activity.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tui-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAgC,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"use-tui-activity.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tui-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAgC,MAAM,kBAAkB,CAAC;AAE5E,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,KAAK,UAAU,EAAqC,MAAM,qBAAqB,CAAC;AAGzF,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,KAAK,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,QAAQ,GACT,EAAE,qBAAqB;;;;;;;;;;EAkLvB"}
|
|
@@ -2,6 +2,8 @@ import type { EventBus } from '@wrongstack/core';
|
|
|
2
2
|
import type { Action, State } from '../app-reducer.js';
|
|
3
3
|
type ClearHistoryDispatch = React.Dispatch<{
|
|
4
4
|
type: 'clearHistory';
|
|
5
|
+
model?: string | undefined;
|
|
6
|
+
provider?: string | undefined;
|
|
5
7
|
} | {
|
|
6
8
|
type: 'resetContextChip';
|
|
7
9
|
} | {
|
|
@@ -12,11 +14,16 @@ type ClearHistoryDispatch = React.Dispatch<{
|
|
|
12
14
|
export interface UseTuiEventBridgeOptions {
|
|
13
15
|
events: EventBus;
|
|
14
16
|
dispatch: React.Dispatch<Action>;
|
|
15
|
-
stateRef:
|
|
17
|
+
stateRef: {
|
|
18
|
+
current: State;
|
|
19
|
+
};
|
|
16
20
|
setActiveMaxContext: (value: number | undefined) => void;
|
|
17
21
|
getSessionId?: (() => string | undefined) | undefined;
|
|
18
|
-
|
|
22
|
+
subscribeGoal?: ((handler: (event: string, payload: unknown) => void) => () => void) | undefined;
|
|
19
23
|
onClearHistory?: ((dispatch: ClearHistoryDispatch) => void) | undefined;
|
|
24
|
+
sessionGenerationRef?: {
|
|
25
|
+
current: number;
|
|
26
|
+
} | undefined;
|
|
20
27
|
}
|
|
21
28
|
/**
|
|
22
29
|
* EventBus and host-event subscriptions that mutate TUI state.
|
|
@@ -24,6 +31,6 @@ export interface UseTuiEventBridgeOptions {
|
|
|
24
31
|
* Keeping this bridge outside App preserves the reducer as the single state
|
|
25
32
|
* writer while taking long-lived subscription wiring out of the render surface.
|
|
26
33
|
*/
|
|
27
|
-
export declare function useTuiEventBridge({ events, dispatch, stateRef, setActiveMaxContext, getSessionId,
|
|
34
|
+
export declare function useTuiEventBridge({ events, dispatch, stateRef, setActiveMaxContext, getSessionId, subscribeGoal, onClearHistory, sessionGenerationRef, }: UseTuiEventBridgeOptions): void;
|
|
28
35
|
export {};
|
|
29
36
|
//# sourceMappingURL=use-tui-event-bridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-tui-event-bridge.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tui-event-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAIvD,KAAK,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CACtC;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"use-tui-event-bridge.d.ts","sourceRoot":"","sources":["../../src/hooks/use-tui-event-bridge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAIvD,KAAK,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CACtC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACnF;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAC9B,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE;QAAE,OAAO,EAAE,KAAK,CAAA;KAAE,CAAC;IAC7B,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACtD,aAAa,CAAC,EACV,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC,GACpE,SAAS,CAAC;IACd,cAAc,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxE,oBAAoB,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,EAAE,wBAAwB,GAAG,IAAI,CASjC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { runTui } from './run-tui.js';
|
|
2
|
-
export type { RunTuiOptions } from './run-tui.js';
|
|
3
|
-
export { buildGoalPreamble } from './app.js';
|
|
4
1
|
export type { Settings } from './app.js';
|
|
5
|
-
export
|
|
2
|
+
export { buildGoalPreamble } from './app.js';
|
|
6
3
|
export type { AuthCatalogRow, AuthFlowIo, AuthFlowResult, AuthKeyRow, AuthLocalPresetRow, AuthOAuthKind, AuthPanelHost, AuthProviderRow, } from './components/auth-panel-model.js';
|
|
7
4
|
export type { BrainPanelHost, BrainPanelSettings, BrainPanelVoter, } from './components/brain-panel-model.js';
|
|
8
|
-
export {
|
|
9
|
-
export {
|
|
10
|
-
export { parseNextSteps } from './components/suggestions.js';
|
|
5
|
+
export { replaySessionEvents, replaySessionMessages } from './components/history/replay.js';
|
|
6
|
+
export type { PluginPickerItem } from './components/plugin-picker.js';
|
|
11
7
|
export type { ParsedNextStep, ParseNextStepsResult } from './components/suggestions.js';
|
|
8
|
+
export { parseNextSteps } from './components/suggestions.js';
|
|
9
|
+
export { parseInline } from './markdown.js';
|
|
10
|
+
export type { RunTuiOptions } from './run-tui.js';
|
|
11
|
+
export { runTui } from './run-tui.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAGxF,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
|