@agentick/tui 0.4.0 → 0.5.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/README.md CHANGED
@@ -54,6 +54,16 @@ import { MyDashboard } from "./dashboard.js";
54
54
  createTUI({ app, ui: MyDashboard }).start();
55
55
  ```
56
56
 
57
+ ### Alternate Screen
58
+
59
+ Use the terminal's alternate screen buffer to avoid polluting scrollback:
60
+
61
+ ```typescript
62
+ createTUI({ app, alternateScreen: true }).start();
63
+ ```
64
+
65
+ When enabled, the TUI takes over the alternate screen on start and restores the normal screen on exit. This prevents terminal scrollbar confusion where native scrollback doesn't interact with Ink's rendering.
66
+
57
67
  ## CLI
58
68
 
59
69
  The `agentick-tui` binary launches a TUI from the command line.
@@ -104,20 +114,22 @@ Returns `{ start(): Promise<void> }`.
104
114
 
105
115
  **Local options:**
106
116
 
107
- | Option | Type | Description |
108
- | ----------- | -------------- | ------------------------------------- |
109
- | `app` | `App` | Agentick App instance |
110
- | `sessionId` | `string` | Session ID (default: `"main"`) |
111
- | `ui` | `TUIComponent` | Custom UI component (default: `Chat`) |
117
+ | Option | Type | Description |
118
+ | ----------------- | -------------- | -------------------------------------------- |
119
+ | `app` | `App` | Agentick App instance |
120
+ | `sessionId` | `string` | Session ID (default: `"main"`) |
121
+ | `ui` | `TUIComponent` | Custom UI component (default: `Chat`) |
122
+ | `alternateScreen` | `boolean` | Use alternate screen buffer (default: false) |
112
123
 
113
124
  **Remote options:**
114
125
 
115
- | Option | Type | Description |
116
- | ----------- | -------------- | ------------------------------------- |
117
- | `url` | `string` | Gateway URL |
118
- | `token` | `string` | Auth token |
119
- | `sessionId` | `string` | Session ID (default: `"main"`) |
120
- | `ui` | `TUIComponent` | Custom UI component (default: `Chat`) |
126
+ | Option | Type | Description |
127
+ | ----------------- | -------------- | -------------------------------------------- |
128
+ | `url` | `string` | Gateway URL |
129
+ | `token` | `string` | Auth token |
130
+ | `sessionId` | `string` | Session ID (default: `"main"`) |
131
+ | `ui` | `TUIComponent` | Custom UI component (default: `Chat`) |
132
+ | `alternateScreen` | `boolean` | Use alternate screen buffer (default: false) |
121
133
 
122
134
  ### TUIComponent
123
135
 
@@ -144,7 +156,34 @@ All components are exported for building custom UIs.
144
156
  | `ToolCallIndicator` | Spinner during tool execution |
145
157
  | `ToolConfirmationPrompt` | Y/N/A prompt for tools with `requireConfirmation` |
146
158
  | `ErrorDisplay` | Error box with optional dismiss |
147
- | `InputBar` | Text input, disabled while streaming |
159
+ | `InputBar` | Text input with controlled/uncontrolled modes |
160
+
161
+ ### InputBar
162
+
163
+ Supports two modes:
164
+
165
+ **Uncontrolled** (default) — manages its own value, clears on submit:
166
+
167
+ ```typescript
168
+ <InputBar onSubmit={(text) => send(text)} isDisabled={isStreaming} />
169
+ ```
170
+
171
+ **Controlled** — parent owns the value (needed for Ctrl+L clear, scroll mode, etc.):
172
+
173
+ ```typescript
174
+ const [value, setValue] = useState("");
175
+
176
+ <InputBar
177
+ value={value}
178
+ onChange={setValue}
179
+ onSubmit={(text) => { send(text); setValue(""); }}
180
+ isDisabled={isStreaming}
181
+ />
182
+ ```
183
+
184
+ ### MessageList
185
+
186
+ Uses `execution_end` events as its data source. When the event includes `newTimelineEntries` (a delta of entries added during that execution), MessageList appends them. Falls back to replacing all messages from `output.timeline` for backwards compatibility.
148
187
 
149
188
  ## Architecture
150
189
 
@@ -2,12 +2,22 @@
2
2
  * InputBar — user text input for the TUI.
3
3
  *
4
4
  * Uses ink-text-input. Enter submits, disabled while streaming.
5
+ * Supports controlled mode (value + onChange) or uncontrolled (internal state).
5
6
  */
6
- interface InputBarProps {
7
+ interface InputBarPropsBase {
7
8
  onSubmit: (text: string) => void;
8
9
  isDisabled?: boolean;
9
10
  placeholder?: string;
10
11
  }
11
- export declare function InputBar({ onSubmit, isDisabled, placeholder }: InputBarProps): import("react/jsx-runtime").JSX.Element;
12
+ interface ControlledInputBarProps extends InputBarPropsBase {
13
+ value: string;
14
+ onChange: (value: string) => void;
15
+ }
16
+ interface UncontrolledInputBarProps extends InputBarPropsBase {
17
+ value?: undefined;
18
+ onChange?: undefined;
19
+ }
20
+ type InputBarProps = ControlledInputBarProps | UncontrolledInputBarProps;
21
+ export declare function InputBar({ onSubmit, isDisabled, placeholder, value, onChange, }: InputBarProps): import("react/jsx-runtime").JSX.Element;
12
22
  export {};
13
23
  //# sourceMappingURL=InputBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../src/components/InputBar.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,UAAU,aAAa;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAkB,EAAE,WAAW,EAAE,EAAE,aAAa,2CA0BpF"}
1
+ {"version":3,"file":"InputBar.d.ts","sourceRoot":"","sources":["../../src/components/InputBar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,iBAAiB;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,uBAAwB,SAAQ,iBAAiB;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAED,UAAU,yBAA0B,SAAQ,iBAAiB;IAC3D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,KAAK,aAAa,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAEzE,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,UAAkB,EAClB,WAAW,EACX,KAAK,EACL,QAAQ,GACT,EAAE,aAAa,2CAyCf"}
@@ -3,18 +3,27 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  * InputBar — user text input for the TUI.
4
4
  *
5
5
  * Uses ink-text-input. Enter submits, disabled while streaming.
6
+ * Supports controlled mode (value + onChange) or uncontrolled (internal state).
6
7
  */
7
8
  import { useState, useCallback } from "react";
8
9
  import { Box, Text } from "ink";
9
10
  import TextInput from "ink-text-input";
10
- export function InputBar({ onSubmit, isDisabled = false, placeholder }) {
11
- const [value, setValue] = useState("");
11
+ export function InputBar({ onSubmit, isDisabled = false, placeholder, value, onChange, }) {
12
+ const isControlled = value !== undefined && onChange !== undefined;
13
+ const [internalValue, setInternalValue] = useState("");
14
+ const currentValue = isControlled ? value : internalValue;
15
+ const handleChange = isControlled ? onChange : setInternalValue;
12
16
  const handleSubmit = useCallback((text) => {
13
17
  if (!text.trim() || isDisabled)
14
18
  return;
15
19
  onSubmit(text.trim());
16
- setValue("");
17
- }, [onSubmit, isDisabled]);
18
- return (_jsxs(Box, { borderStyle: "single", borderColor: isDisabled ? "gray" : "cyan", paddingLeft: 1, children: [_jsx(Text, { color: isDisabled ? "gray" : "green", bold: true, children: "› " }), _jsx(TextInput, { value: value, onChange: setValue, onSubmit: handleSubmit, focus: !isDisabled, placeholder: placeholder ?? (isDisabled ? "Waiting for response..." : "Type a message...") })] }));
20
+ if (isControlled) {
21
+ onChange("");
22
+ }
23
+ else {
24
+ setInternalValue("");
25
+ }
26
+ }, [onSubmit, isDisabled, isControlled, onChange]);
27
+ return (_jsxs(Box, { flexDirection: "row", borderStyle: "single", borderLeft: false, borderRight: false, borderColor: isDisabled ? "gray" : "cyan", paddingLeft: 1, children: [_jsx(Text, { color: isDisabled ? "gray" : "green", bold: true, children: "› " }), _jsx(TextInput, { value: currentValue, onChange: handleChange, onSubmit: handleSubmit, focus: !isDisabled, placeholder: placeholder ?? (isDisabled ? "Waiting for response..." : "Type a message...") })] }));
19
28
  }
20
29
  //# sourceMappingURL=InputBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../src/components/InputBar.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAQvC,MAAM,UAAU,QAAQ,CAAC,EAAE,QAAQ,EAAE,UAAU,GAAG,KAAK,EAAE,WAAW,EAAiB;IACnF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,EAAE;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,UAAU;YAAE,OAAO;QACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,EACD,CAAC,QAAQ,EAAE,UAAU,CAAC,CACvB,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,aACjF,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,kBAC7C,IAAI,GACA,EACP,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,CAAC,UAAU,EAClB,WAAW,EAAE,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAC1F,IACE,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"InputBar.js","sourceRoot":"","sources":["../../src/components/InputBar.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAoBvC,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,UAAU,GAAG,KAAK,EAClB,WAAW,EACX,KAAK,EACL,QAAQ,GACM;IACd,MAAM,YAAY,GAAG,KAAK,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC;IACnE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvD,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC;IAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAEhE,MAAM,YAAY,GAAG,WAAW,CAC9B,CAAC,IAAY,EAAE,EAAE;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,UAAU;YAAE,OAAO;QACvC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtB,IAAI,YAAY,EAAE,CAAC;YACjB,QAAQ,CAAC,EAAE,CAAC,CAAC;QACf,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAC/C,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,aAAa,EAAC,KAAK,EACnB,WAAW,EAAC,QAAQ,EACpB,UAAU,EAAE,KAAK,EACjB,WAAW,EAAE,KAAK,EAClB,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EACzC,WAAW,EAAE,CAAC,aAEd,KAAC,IAAI,IAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,kBAC7C,IAAI,GACA,EACP,KAAC,SAAS,IACR,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,CAAC,UAAU,EAClB,WAAW,EAAE,WAAW,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,mBAAmB,CAAC,GAC1F,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -2,7 +2,8 @@
2
2
  * MessageList — displays completed conversation messages.
3
3
  *
4
4
  * Uses Ink's <Static> for messages that won't re-render (performance critical).
5
- * Listens for execution_end events which contain `output.timeline` with all entries.
5
+ * Listens for execution_end events. Uses newTimelineEntries (delta) when available,
6
+ * falls back to output.timeline (full replace) for backwards compatibility.
6
7
  */
7
8
  interface MessageListProps {
8
9
  sessionId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../src/components/MessageList.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+CH,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,kDAoD1D"}
1
+ {"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../src/components/MessageList.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8DH,UAAU,gBAAgB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,kDAkD1D"}
@@ -3,7 +3,8 @@ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
3
3
  * MessageList — displays completed conversation messages.
4
4
  *
5
5
  * Uses Ink's <Static> for messages that won't re-render (performance critical).
6
- * Listens for execution_end events which contain `output.timeline` with all entries.
6
+ * Listens for execution_end events. Uses newTimelineEntries (delta) when available,
7
+ * falls back to output.timeline (full replace) for backwards compatibility.
7
8
  */
8
9
  import { useState, useEffect, useCallback } from "react";
9
10
  import { Static, Box, Text } from "ink";
@@ -43,6 +44,18 @@ function roleColor(role) {
43
44
  return "white";
44
45
  }
45
46
  }
47
+ function timelineToMessages(entries) {
48
+ return entries
49
+ .filter((entry) => entry.kind === "message" && entry.message)
50
+ .map((entry, i) => {
51
+ const msg = entry.message;
52
+ return {
53
+ id: msg.id ?? `msg-${i}-${Date.now()}`,
54
+ role: msg.role,
55
+ text: renderContent(msg.content),
56
+ };
57
+ });
58
+ }
46
59
  export function MessageList({ sessionId }) {
47
60
  const [messages, setMessages] = useState([]);
48
61
  const { event } = useEvents({
@@ -52,23 +65,20 @@ export function MessageList({ sessionId }) {
52
65
  useEffect(() => {
53
66
  if (!event || event.type !== "execution_end")
54
67
  return;
55
- // execution_end.output is the COMInput which has a timeline array
56
- // Each entry has { kind: "message", message: Message } structure
57
68
  const execEnd = event;
58
- const timeline = execEnd.output?.timeline;
59
- if (!Array.isArray(timeline))
69
+ // Prefer delta (append) over full timeline (replace)
70
+ if (execEnd.newTimelineEntries && execEnd.newTimelineEntries.length > 0) {
71
+ const newMessages = timelineToMessages(execEnd.newTimelineEntries);
72
+ if (newMessages.length > 0) {
73
+ setMessages((prev) => [...prev, ...newMessages]);
74
+ }
60
75
  return;
61
- const newMessages = timeline
62
- .filter((entry) => entry.kind === "message" && entry.message)
63
- .map((entry, i) => {
64
- const msg = entry.message;
65
- return {
66
- id: msg.id ?? `msg-${i}-${Date.now()}`,
67
- role: msg.role,
68
- text: renderContent(msg.content),
69
- };
70
- });
71
- setMessages(newMessages);
76
+ }
77
+ // Fallback: full timeline replace
78
+ const timeline = execEnd.output?.timeline;
79
+ if (Array.isArray(timeline)) {
80
+ setMessages(timelineToMessages(timeline));
81
+ }
72
82
  }, [event]);
73
83
  const renderMessage = useCallback((msg) => {
74
84
  // Skip tool_result entries in the message list for cleaner output
@@ -1 +1 @@
1
- {"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../src/components/MessageList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MessageList.js","sourceRoot":"","sources":["../../src/components/MessageList.tsx"],"names":[],"mappings":"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"}
@@ -20,6 +20,11 @@
20
20
  * createTUI({ app: myApp, ui: MyDashboard }).start();
21
21
  * ```
22
22
  *
23
+ * @example Alternate Screen (no scrollback pollution)
24
+ * ```typescript
25
+ * createTUI({ app: myApp, alternateScreen: true }).start();
26
+ * ```
27
+ *
23
28
  * @module @agentick/tui/create-tui
24
29
  */
25
30
  import type { ComponentType } from "react";
@@ -28,17 +33,20 @@ import type { App } from "@agentick/core";
28
33
  export type TUIComponent = ComponentType<{
29
34
  sessionId: string;
30
35
  }>;
31
- export type TUIOptions = {
32
- app: App;
36
+ interface TUIOptionsBase {
33
37
  sessionId?: string;
34
38
  ui?: TUIComponent;
35
- } | {
39
+ /** Use alternate screen buffer to avoid polluting terminal scrollback. */
40
+ alternateScreen?: boolean;
41
+ }
42
+ export type TUIOptions = ({
43
+ app: App;
44
+ } & TUIOptionsBase) | ({
36
45
  url: string;
37
46
  token?: string;
38
- sessionId?: string;
39
- ui?: TUIComponent;
40
- };
47
+ } & TUIOptionsBase);
41
48
  export declare function createTUI(options: TUIOptions): {
42
49
  start(): Promise<void>;
43
50
  };
51
+ export {};
44
52
  //# sourceMappingURL=create-tui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-tui.d.ts","sourceRoot":"","sources":["../src/create-tui.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG1C,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE,MAAM,MAAM,UAAU,GAClB;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,YAAY,CAAA;CAAE,GACnD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AAE3E,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU;;EA6B5C"}
1
+ {"version":3,"file":"create-tui.d.ts","sourceRoot":"","sources":["../src/create-tui.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG1C,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEhE,UAAU,cAAc;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,EAAE,CAAC,EAAE,YAAY,CAAC;IAClB,0EAA0E;IAC1E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,UAAU,GAClB,CAAC;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GAAG,cAAc,CAAC,GAC/B,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,cAAc,CAAC,CAAC;AAEvD,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU;;EAuC5C"}
@@ -7,7 +7,7 @@ import { Chat } from "./ui/chat.js";
7
7
  import EventSourcePolyfill from "eventsource";
8
8
  export function createTUI(options) {
9
9
  return {
10
- start() {
10
+ async start() {
11
11
  const sessionId = options.sessionId ?? "main";
12
12
  const Component = options.ui ?? Chat;
13
13
  const client = "app" in options
@@ -21,8 +21,18 @@ export function createTUI(options) {
21
21
  EventSource: (globalThis.EventSource ??
22
22
  EventSourcePolyfill),
23
23
  });
24
+ if (options.alternateScreen) {
25
+ process.stdout.write("\x1b[?1049h\x1b[H\x1b[2J");
26
+ }
24
27
  const { waitUntilExit } = render(_jsx(AgentickProvider, { client: client, children: _jsx(Component, { sessionId: sessionId }) }), { exitOnCtrlC: false });
25
- return waitUntilExit();
28
+ try {
29
+ await waitUntilExit();
30
+ }
31
+ finally {
32
+ if (options.alternateScreen) {
33
+ process.stdout.write("\x1b[?1049l");
34
+ }
35
+ }
26
36
  },
27
37
  };
28
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"create-tui.js","sourceRoot":"","sources":["../src/create-tui.tsx"],"names":[],"mappings":";AA0BA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,mBAAmB,MAAM,aAAa,CAAC;AAS9C,MAAM,UAAU,SAAS,CAAC,OAAmB;IAC3C,OAAO;QACL,KAAK;YACH,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;YAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC;YAErC,MAAM,MAAM,GACV,KAAK,IAAI,OAAO;gBACd,CAAC,CAAC,YAAY,CAAC;oBACX,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC;iBAC7C,CAAC;gBACJ,CAAC,CAAC,YAAY,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,GAAG;oBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW;wBAClC,mBAAmB,CAAkC;iBACxD,CAAC,CAAC;YAET,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,YAC9B,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,GAAI,GAClB,EACnB,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;YAEF,OAAO,aAAa,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-tui.js","sourceRoot":"","sources":["../src/create-tui.tsx"],"names":[],"mappings":";AA+BA,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,OAAO,mBAAmB,MAAM,aAAa,CAAC;AAgB9C,MAAM,UAAU,SAAS,CAAC,OAAmB;IAC3C,OAAO;QACL,KAAK,CAAC,KAAK;YACT,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;YAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC;YAErC,MAAM,MAAM,GACV,KAAK,IAAI,OAAO;gBACd,CAAC,CAAC,YAAY,CAAC;oBACX,OAAO,EAAE,UAAU;oBACnB,SAAS,EAAE,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC;iBAC7C,CAAC;gBACJ,CAAC,CAAC,YAAY,CAAC;oBACX,OAAO,EAAE,OAAO,CAAC,GAAG;oBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW;wBAClC,mBAAmB,CAAkC;iBACxD,CAAC,CAAC;YAET,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAC,gBAAgB,IAAC,MAAM,EAAE,MAAM,YAC9B,KAAC,SAAS,IAAC,SAAS,EAAE,SAAS,GAAI,GAClB,EACnB,EAAE,WAAW,EAAE,KAAK,EAAE,CACvB,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,aAAa,EAAE,CAAC;YACxB,CAAC;oBAAS,CAAC;gBACT,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBACtC,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -38,4 +38,5 @@ export { ToolCallIndicator } from "./components/ToolCallIndicator.js";
38
38
  export { ToolConfirmationPrompt } from "./components/ToolConfirmationPrompt.js";
39
39
  export { ErrorDisplay } from "./components/ErrorDisplay.js";
40
40
  export { InputBar } from "./components/InputBar.js";
41
+ export { default as Spinner } from "ink-spinner";
41
42
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGhF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGhF,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -40,4 +40,5 @@ export { ToolCallIndicator } from "./components/ToolCallIndicator.js";
40
40
  export { ToolConfirmationPrompt } from "./components/ToolConfirmationPrompt.js";
41
41
  export { ErrorDisplay } from "./components/ErrorDisplay.js";
42
42
  export { InputBar } from "./components/InputBar.js";
43
+ export { default as Spinner } from "ink-spinner";
43
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,SAAS,EAAsC,MAAM,iBAAiB,CAAC;AAEhF,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,uCAAuC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,SAAS,EAAsC,MAAM,iBAAiB,CAAC;AAEhF,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,uCAAuC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentick/tui",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "Terminal UI for Agentick agents using Ink",
5
5
  "keywords": [
6
6
  "agent",
@@ -40,7 +40,7 @@
40
40
  "ink-text-input": "^6.0.0",
41
41
  "react": "^19.0.0",
42
42
  "@agentick/client": "0.4.0",
43
- "@agentick/core": "0.4.0",
43
+ "@agentick/core": "0.5.0",
44
44
  "@agentick/react": "0.4.0",
45
45
  "@agentick/shared": "0.4.0"
46
46
  },