@robota-sdk/agent-transport 3.0.0-beta.72 → 3.0.0-beta.73
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/node/index.cjs +1 -1
- package/dist/node/index.js +1 -1
- package/dist/node/tui/index.cjs +1 -1
- package/dist/node/tui/index.js +1 -1
- package/dist/node/{tui-CcLmEJ1r.cjs → tui-D30s8S5f.cjs} +3 -3
- package/dist/node/{tui-4hA-SMtS.js → tui-DIdvTeiT.js} +4 -4
- package/dist/node/tui-DIdvTeiT.js.map +1 -0
- package/package.json +6 -6
- package/src/tui/App.tsx +16 -18
- package/src/tui/CjkTextInput.tsx +4 -8
- package/src/tui/InputArea.tsx +13 -6
- package/src/tui/StatusBar.tsx +1 -7
- package/src/tui/__tests__/status-bar.test.tsx +1 -1
- package/dist/node/tui-4hA-SMtS.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robota-sdk/agent-transport",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.73",
|
|
4
4
|
"description": "Consolidated transport package for Robota SDK — headless, HTTP, WebSocket, and MCP adapters",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/node/index.js",
|
|
@@ -108,10 +108,10 @@
|
|
|
108
108
|
"string-width": "^8.2.0",
|
|
109
109
|
"ws": "^8.18.3",
|
|
110
110
|
"zod": "^3.24.4",
|
|
111
|
-
"@robota-sdk/agent-interface-transport": "3.0.0-beta.
|
|
112
|
-
"@robota-sdk/agent-core": "3.0.0-beta.
|
|
113
|
-
"@robota-sdk/agent-interface-tui": "3.0.0-beta.
|
|
114
|
-
"@robota-sdk/agent-framework": "3.0.0-beta.
|
|
111
|
+
"@robota-sdk/agent-interface-transport": "3.0.0-beta.73",
|
|
112
|
+
"@robota-sdk/agent-core": "3.0.0-beta.73",
|
|
113
|
+
"@robota-sdk/agent-interface-tui": "3.0.0-beta.73",
|
|
114
|
+
"@robota-sdk/agent-framework": "3.0.0-beta.73"
|
|
115
115
|
},
|
|
116
116
|
"devDependencies": {
|
|
117
117
|
"@homebridge/node-pty-prebuilt-multiarch": "^0.13.1",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"tsx": "^4.7.0",
|
|
125
125
|
"typescript": "^5.3.3",
|
|
126
126
|
"vitest": "^1.6.1",
|
|
127
|
-
"@robota-sdk/agent-command": "3.0.0-beta.
|
|
127
|
+
"@robota-sdk/agent-command": "3.0.0-beta.73"
|
|
128
128
|
},
|
|
129
129
|
"license": "MIT",
|
|
130
130
|
"publishConfig": {
|
package/src/tui/App.tsx
CHANGED
|
@@ -436,22 +436,6 @@ function AppInner(
|
|
|
436
436
|
/>
|
|
437
437
|
)}
|
|
438
438
|
<ContextWarningBanner percentage={contextState.percentage} />
|
|
439
|
-
<SessionStatusBar
|
|
440
|
-
cwd={cwd}
|
|
441
|
-
permissionMode={permissionMode}
|
|
442
|
-
modelId={props.modelId}
|
|
443
|
-
providerType={props.providerType}
|
|
444
|
-
sessionId={sessionId}
|
|
445
|
-
isThinking={isThinking}
|
|
446
|
-
activeToolCount={activeTools.length}
|
|
447
|
-
activeBackgroundTaskCount={activeBackgroundTaskCount}
|
|
448
|
-
hasPendingPrompt={pendingPrompt !== null}
|
|
449
|
-
contextState={contextState}
|
|
450
|
-
sessionName={sessionName}
|
|
451
|
-
settings={statusLineSettings}
|
|
452
|
-
activeAgentLabel={activeAgentLabel}
|
|
453
|
-
gitRefreshToken={gitRefreshToken}
|
|
454
|
-
/>
|
|
455
439
|
<InputArea
|
|
456
440
|
onSubmit={handleSubmitWithGitRefresh}
|
|
457
441
|
onCancelQueue={handleCancelQueue}
|
|
@@ -472,8 +456,22 @@ function AppInner(
|
|
|
472
456
|
sessionName={sessionName}
|
|
473
457
|
history={history}
|
|
474
458
|
/>
|
|
475
|
-
|
|
476
|
-
|
|
459
|
+
<SessionStatusBar
|
|
460
|
+
cwd={cwd}
|
|
461
|
+
permissionMode={permissionMode}
|
|
462
|
+
modelId={props.modelId}
|
|
463
|
+
providerType={props.providerType}
|
|
464
|
+
sessionId={sessionId}
|
|
465
|
+
isThinking={isThinking}
|
|
466
|
+
activeToolCount={activeTools.length}
|
|
467
|
+
activeBackgroundTaskCount={activeBackgroundTaskCount}
|
|
468
|
+
hasPendingPrompt={pendingPrompt !== null}
|
|
469
|
+
contextState={contextState}
|
|
470
|
+
sessionName={sessionName}
|
|
471
|
+
settings={statusLineSettings}
|
|
472
|
+
activeAgentLabel={activeAgentLabel}
|
|
473
|
+
gitRefreshToken={gitRefreshToken}
|
|
474
|
+
/>
|
|
477
475
|
</Box>
|
|
478
476
|
);
|
|
479
477
|
}
|
package/src/tui/CjkTextInput.tsx
CHANGED
|
@@ -79,14 +79,10 @@ export default function CjkTextInput({
|
|
|
79
79
|
forceRender,
|
|
80
80
|
});
|
|
81
81
|
|
|
82
|
-
//
|
|
83
|
-
//
|
|
84
|
-
//
|
|
85
|
-
//
|
|
86
|
-
// (same behavior as Claude Code, issue #19207), but Terminal.app does not crash.
|
|
87
|
-
//
|
|
88
|
-
// A correct fix would require knowing the total rendered height to pass the right
|
|
89
|
-
// y coordinate, which ink does not expose to components.
|
|
82
|
+
// Real terminal cursor positioning is intentionally omitted.
|
|
83
|
+
// setCursorPosition(x, 0) crashes Terminal.app via Korean IME SIGSEGV.
|
|
84
|
+
// Correct fix requires the input row's y offset from the bottom of the render,
|
|
85
|
+
// which Ink does not expose. Tracked as a known limitation.
|
|
90
86
|
|
|
91
87
|
return (
|
|
92
88
|
<Text>
|
package/src/tui/InputArea.tsx
CHANGED
|
@@ -45,14 +45,14 @@ interface IProps {
|
|
|
45
45
|
* Reference: https://github.com/anthropics/claude-code/issues/3045
|
|
46
46
|
*/
|
|
47
47
|
/**
|
|
48
|
-
* Layout constants for InputArea
|
|
48
|
+
* Layout constants for InputArea (columns).
|
|
49
49
|
* Used to compute available text width from terminal columns.
|
|
50
50
|
*
|
|
51
|
-
*
|
|
51
|
+
* Side borders removed — only top/bottom horizontal lines remain.
|
|
52
52
|
* paddingLeft={1} adds 1 column inside the box.
|
|
53
53
|
* Prompt "> " takes 2 columns.
|
|
54
54
|
*/
|
|
55
|
-
const BORDER_HORIZONTAL =
|
|
55
|
+
const BORDER_HORIZONTAL = 0;
|
|
56
56
|
const PADDING_LEFT = 1;
|
|
57
57
|
const PROMPT_WIDTH = 2;
|
|
58
58
|
const INPUT_AREA_OVERHEAD = BORDER_HORIZONTAL + PADDING_LEFT + PROMPT_WIDTH;
|
|
@@ -237,9 +237,9 @@ export default function InputArea({
|
|
|
237
237
|
const label = ` "${sessionName}" `;
|
|
238
238
|
const rightPad = 2;
|
|
239
239
|
const leftLen = Math.max(0, innerWidth - label.length - rightPad);
|
|
240
|
-
return { left: '
|
|
240
|
+
return { left: '─'.repeat(leftLen), label, right: '─'.repeat(rightPad) };
|
|
241
241
|
}
|
|
242
|
-
return { left: '
|
|
242
|
+
return { left: '─'.repeat(innerWidth), label: '', right: '' };
|
|
243
243
|
})();
|
|
244
244
|
|
|
245
245
|
return (
|
|
@@ -261,7 +261,14 @@ export default function InputArea({
|
|
|
261
261
|
) : null}
|
|
262
262
|
{topBorder.right}
|
|
263
263
|
</Text>
|
|
264
|
-
<Box
|
|
264
|
+
<Box
|
|
265
|
+
borderStyle="single"
|
|
266
|
+
borderTop={false}
|
|
267
|
+
borderLeft={false}
|
|
268
|
+
borderRight={false}
|
|
269
|
+
borderColor={borderColor}
|
|
270
|
+
paddingLeft={1}
|
|
271
|
+
>
|
|
265
272
|
{isAborting ? (
|
|
266
273
|
<Text color="yellow"> Interrupting...</Text>
|
|
267
274
|
) : pendingPrompt ? (
|
package/src/tui/StatusBar.tsx
CHANGED
|
@@ -183,13 +183,7 @@ export default function StatusBar({
|
|
|
183
183
|
activeAgentLabel,
|
|
184
184
|
}: IProps): React.ReactElement {
|
|
185
185
|
return (
|
|
186
|
-
<Box
|
|
187
|
-
borderStyle="single"
|
|
188
|
-
borderColor="gray"
|
|
189
|
-
paddingLeft={1}
|
|
190
|
-
paddingRight={1}
|
|
191
|
-
justifyContent="space-between"
|
|
192
|
-
>
|
|
186
|
+
<Box paddingLeft={1} paddingRight={1} justifyContent="space-between">
|
|
193
187
|
<StatusLeft
|
|
194
188
|
permissionMode={permissionMode}
|
|
195
189
|
modelName={modelName}
|
|
@@ -134,7 +134,7 @@ describe('StatusBar', () => {
|
|
|
134
134
|
/>,
|
|
135
135
|
);
|
|
136
136
|
const frame = lastFrame()!;
|
|
137
|
-
const firstLine = frame.split('\n')[
|
|
137
|
+
const firstLine = frame.split('\n')[0] ?? '';
|
|
138
138
|
const activityEnd = firstLine.indexOf('test-model');
|
|
139
139
|
const activitySegment = firstLine.slice(0, activityEnd);
|
|
140
140
|
expect(activitySegment).toContain('Tools x12');
|