@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robota-sdk/agent-transport",
3
- "version": "3.0.0-beta.72",
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.72",
112
- "@robota-sdk/agent-core": "3.0.0-beta.72",
113
- "@robota-sdk/agent-interface-tui": "3.0.0-beta.72",
114
- "@robota-sdk/agent-framework": "3.0.0-beta.72"
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.72"
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
- {/* Blank line for Korean IME — normal flow ensures it persists across remounts. */}
476
- <Text> </Text>
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
  }
@@ -79,14 +79,10 @@ export default function CjkTextInput({
79
79
  forceRender,
80
80
  });
81
81
 
82
- // Do NOT call setCursorPosition() passing y:0 moves the real terminal cursor
83
- // to the top of the entire ink output (logo area), which causes Terminal.app to
84
- // SIGSEGV when Korean IME queries attributedSubstringFromRange: at that position.
85
- // Without setCursorPosition, the IME candidate window appears at bottom-left
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>
@@ -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 border box (columns).
48
+ * Layout constants for InputArea (columns).
49
49
  * Used to compute available text width from terminal columns.
50
50
  *
51
- * Box borderStyle="single" adds 1 column per side (left + right).
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 = 2;
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: '┌' + '─'.repeat(leftLen), label, right: '─'.repeat(rightPad) + '┐' };
240
+ return { left: '─'.repeat(leftLen), label, right: '─'.repeat(rightPad) };
241
241
  }
242
- return { left: '┌' + '─'.repeat(innerWidth), label: '', right: '' };
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 borderStyle="single" borderTop={false} borderColor={borderColor} paddingLeft={1}>
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 ? (
@@ -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')[1] ?? '';
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');