arc402-cli 0.7.3 → 0.7.5

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.
Files changed (55) hide show
  1. package/TUI-SPEC.md +214 -0
  2. package/dist/index.js +55 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/repl.d.ts.map +1 -1
  5. package/dist/repl.js +46 -558
  6. package/dist/repl.js.map +1 -1
  7. package/dist/tui/App.d.ts +20 -0
  8. package/dist/tui/App.d.ts.map +1 -0
  9. package/dist/tui/App.js +166 -0
  10. package/dist/tui/App.js.map +1 -0
  11. package/dist/tui/Footer.d.ts +11 -0
  12. package/dist/tui/Footer.d.ts.map +1 -0
  13. package/dist/tui/Footer.js +13 -0
  14. package/dist/tui/Footer.js.map +1 -0
  15. package/dist/tui/Header.d.ts +15 -0
  16. package/dist/tui/Header.d.ts.map +1 -0
  17. package/dist/tui/Header.js +19 -0
  18. package/dist/tui/Header.js.map +1 -0
  19. package/dist/tui/InputLine.d.ts +11 -0
  20. package/dist/tui/InputLine.d.ts.map +1 -0
  21. package/dist/tui/InputLine.js +145 -0
  22. package/dist/tui/InputLine.js.map +1 -0
  23. package/dist/tui/Viewport.d.ts +13 -0
  24. package/dist/tui/Viewport.d.ts.map +1 -0
  25. package/dist/tui/Viewport.js +38 -0
  26. package/dist/tui/Viewport.js.map +1 -0
  27. package/dist/tui/index.d.ts +2 -0
  28. package/dist/tui/index.d.ts.map +1 -0
  29. package/dist/tui/index.js +55 -0
  30. package/dist/tui/index.js.map +1 -0
  31. package/dist/tui/useChat.d.ts +11 -0
  32. package/dist/tui/useChat.d.ts.map +1 -0
  33. package/dist/tui/useChat.js +91 -0
  34. package/dist/tui/useChat.js.map +1 -0
  35. package/dist/tui/useCommand.d.ts +17 -0
  36. package/dist/tui/useCommand.d.ts.map +1 -0
  37. package/dist/tui/useCommand.js +219 -0
  38. package/dist/tui/useCommand.js.map +1 -0
  39. package/dist/tui/useScroll.d.ts +17 -0
  40. package/dist/tui/useScroll.d.ts.map +1 -0
  41. package/dist/tui/useScroll.js +46 -0
  42. package/dist/tui/useScroll.js.map +1 -0
  43. package/package.json +5 -1
  44. package/src/index.ts +21 -1
  45. package/src/repl.ts +50 -663
  46. package/src/tui/App.tsx +240 -0
  47. package/src/tui/Footer.tsx +18 -0
  48. package/src/tui/Header.tsx +37 -0
  49. package/src/tui/InputLine.tsx +164 -0
  50. package/src/tui/Viewport.tsx +66 -0
  51. package/src/tui/index.tsx +72 -0
  52. package/src/tui/useChat.ts +103 -0
  53. package/src/tui/useCommand.ts +245 -0
  54. package/src/tui/useScroll.ts +65 -0
  55. package/tsconfig.json +6 -1
package/TUI-SPEC.md ADDED
@@ -0,0 +1,214 @@
1
+ # ARC-402 TUI Specification — Ink-based Terminal UI
2
+
3
+ **Date:** 2026-03-22
4
+ **Status:** Ready for implementation
5
+ **Pattern:** Fixed header/footer with scrollable viewport (split-pane TUI)
6
+ **Library:** Ink (React for CLIs) — same architecture as Claude Code
7
+
8
+ ---
9
+
10
+ ## Architecture
11
+
12
+ ```
13
+ ┌─────────────────────────────────────────────────┐
14
+ │ HEADER (fixed, 8-10 rows) │
15
+ │ ┌─────────────────────────────────────────────┐ │
16
+ │ │ ██████╗ ██████╗ ██████╗ ... │ │
17
+ │ │ agent-to-agent arcing · v0.7.3 │ │
18
+ │ │ ◈ ──────────────────────────────────────── │ │
19
+ │ │ Network Base Mainnet Wallet 0xA34B.. │ │
20
+ │ └─────────────────────────────────────────────┘ │
21
+ ├─────────────────────────────────────────────────┤
22
+ │ VIEWPORT (scrollable, fills remaining space) │
23
+ │ │
24
+ │ ◈ arc402 > wallet status │
25
+ │ ├ Address 0xA34B...a5dc │
26
+ │ ├ ETH 0.002 ETH │
27
+ │ └ Trust 100 Restricted │
28
+ │ │
29
+ │ ◈ arc402 > shake send --to 0xa9e0... │
30
+ │ ◈ Submitting handshake... │
31
+ │ ✓ Handshake sent — tx 0xabc1... │
32
+ │ │
33
+ │ ◈ arc402 > doctor │
34
+ │ ├ Config ✓ │
35
+ │ ├ RPC ✓ Base Mainnet │
36
+ │ └ Daemon ✗ Not running │
37
+ │ │
38
+ ├─────────────────────────────────────────────────┤
39
+ │ FOOTER (fixed, 1-2 rows) │
40
+ │ ◈ arc402 > _ │
41
+ └─────────────────────────────────────────────────┘
42
+ ```
43
+
44
+ ---
45
+
46
+ ## Component Tree (Ink/React)
47
+
48
+ ```tsx
49
+ <App>
50
+ <Box flexDirection="column" height="100%">
51
+
52
+ {/* HEADER — fixed height, never scrolls */}
53
+ <Header
54
+ version={version}
55
+ network={config.network}
56
+ wallet={config.walletContractAddress}
57
+ balance={balance}
58
+ />
59
+
60
+ <Box borderStyle="single" borderTop borderBottom={false} borderLeft={false} borderRight={false}>
61
+ <Text dimColor>─</Text>
62
+ </Box>
63
+
64
+ {/* VIEWPORT — flexGrow, scrollable */}
65
+ <Viewport
66
+ lines={outputBuffer}
67
+ scrollOffset={scrollOffset}
68
+ />
69
+
70
+ {/* FOOTER — fixed height, input pinned */}
71
+ <Footer>
72
+ <InputLine
73
+ value={inputValue}
74
+ onChange={setInputValue}
75
+ onSubmit={handleCommand}
76
+ history={history}
77
+ />
78
+ </Footer>
79
+
80
+ </Box>
81
+ </App>
82
+ ```
83
+
84
+ ---
85
+
86
+ ## Components
87
+
88
+ ### `<Header />`
89
+ - Renders the ASCII art banner (cyan)
90
+ - Version from package.json
91
+ - Network, wallet (truncated), balance
92
+ - Fixed height: exactly `bannerLines.length + 3` rows
93
+ - Never re-renders unless config changes
94
+
95
+ ### `<Viewport />`
96
+ - `flexGrow: 1` — fills all remaining terminal rows
97
+ - Maintains an internal `outputBuffer: string[]`
98
+ - Renders a window slice: `buffer.slice(scrollOffset, scrollOffset + viewportHeight)`
99
+ - Scroll up/down with Page Up/Page Down or mouse wheel
100
+ - Auto-scrolls to bottom when new output arrives (unless user scrolled up)
101
+ - Supports ANSI colors in output lines (chalk passes through)
102
+
103
+ ### `<Footer />`
104
+ - Fixed height: 1 row (or 2 with status bar)
105
+ - Contains `<InputLine />`
106
+ - Prompt: `◈ arc402 > ` (◈ cyan, arc402 dim, > white)
107
+
108
+ ### `<InputLine />`
109
+ - Uses `ink-text-input` for text input with cursor
110
+ - Up/down arrow: command history navigation
111
+ - Tab: command completion
112
+ - Enter: dispatch command
113
+ - Ctrl+C: graceful exit
114
+
115
+ ---
116
+
117
+ ## Behavior
118
+
119
+ ### Command Dispatch
120
+ 1. User types command + Enter
121
+ 2. Command + output appended to `outputBuffer` as: `◈ arc402 > {command}` then output lines
122
+ 3. Commander parses and executes (stdout/stderr captured and routed to viewport)
123
+ 4. Viewport auto-scrolls to bottom
124
+ 5. Input line clears, cursor returns
125
+
126
+ ### Stdout/Stderr Capture
127
+ - During command execution, monkey-patch `process.stdout.write` and `process.stderr.write`
128
+ - Route all output to `outputBuffer` instead of raw terminal
129
+ - Restore after command completes
130
+ - This ensures spinners, tree output, console.log all render in the viewport
131
+
132
+ ### Scroll Behavior
133
+ - **Auto-scroll:** viewport stays at bottom as new lines arrive
134
+ - **Manual scroll:** Page Up / Page Down moves viewport
135
+ - **Scroll indicator:** if not at bottom, show `↓ more` in bottom-right
136
+ - **Return to bottom:** any new command output snaps back to bottom
137
+
138
+ ### Chat Integration
139
+ - Non-command input detected → POST to OpenClaw gateway
140
+ - Response streamed line-by-line into viewport
141
+ - Prefixed with `◈ ` in dim
142
+
143
+ ### Resize Handling
144
+ - Listen for `SIGWINCH`
145
+ - Recalculate viewport height
146
+ - Re-render (Ink handles this natively)
147
+
148
+ ---
149
+
150
+ ## Dependencies
151
+
152
+ ```json
153
+ {
154
+ "ink": "^4.0.0",
155
+ "ink-text-input": "^5.0.0",
156
+ "react": "^18.0.0"
157
+ }
158
+ ```
159
+
160
+ ~150KB total. Well-maintained. Same stack as Claude Code.
161
+
162
+ ---
163
+
164
+ ## File Structure
165
+
166
+ ```
167
+ cli/src/
168
+ tui/
169
+ App.tsx — root component
170
+ Header.tsx — banner + status
171
+ Viewport.tsx — scrollable output area
172
+ Footer.tsx — input line wrapper
173
+ InputLine.tsx — text input with history + completion
174
+ useCommand.ts — hook: dispatch to commander, capture output
175
+ useChat.ts — hook: OpenClaw gateway chat
176
+ useScroll.ts — hook: scroll state management
177
+ index.tsx — render <App /> with Ink
178
+ repl.ts — KEEP as fallback for --print mode and non-TTY
179
+ index.ts — route: TTY → tui/, non-TTY/--print → repl.ts
180
+ ```
181
+
182
+ ---
183
+
184
+ ## Migration Plan
185
+
186
+ 1. Keep existing `repl.ts` as fallback (--print mode, piped input)
187
+ 2. New `tui/` directory with Ink components
188
+ 3. `index.ts` checks: if TTY and no --print → launch Ink TUI, else → use simple REPL
189
+ 4. All existing commands unchanged — only the rendering layer changes
190
+ 5. `repl.ts` simplified back to basic readline (no ANSI tricks)
191
+
192
+ ---
193
+
194
+ ## Exit Behavior
195
+
196
+ - Ctrl+C → `\x1b[?1049l` (leave alternate screen) → show goodbye → exit
197
+ - All terminal state restored on exit (cursor visible, normal scroll, etc.)
198
+ - Alternate screen means the TUI disappears on exit, revealing the original terminal — clean
199
+
200
+ ---
201
+
202
+ ## What This Does NOT Change
203
+
204
+ - Command implementations (wallet.ts, agent.ts, etc.) — untouched
205
+ - Config system — untouched
206
+ - Daemon — untouched
207
+ - SDKs — untouched
208
+ - One-shot mode (`arc402 wallet deploy` without REPL) — untouched
209
+
210
+ Only the interactive shell rendering layer changes.
211
+
212
+ ---
213
+
214
+ *Build this exactly as specified. The spec is the contract.*
package/dist/index.js CHANGED
@@ -1,5 +1,38 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  Object.defineProperty(exports, "__esModule", { value: true });
4
37
  const program_1 = require("./program");
5
38
  const repl_1 = require("./repl");
@@ -27,6 +60,18 @@ function checkUpgrade() {
27
60
  }
28
61
  }
29
62
  const printMode = process.argv.includes("--print");
63
+ // Detect if a subcommand was provided (any arg after the binary that doesn't start with -)
64
+ const knownSubcommands = (() => {
65
+ try {
66
+ const prog = (0, program_1.createProgram)();
67
+ return new Set(prog.commands.map((cmd) => cmd.name()));
68
+ }
69
+ catch {
70
+ return new Set();
71
+ }
72
+ })();
73
+ const argv = process.argv.slice(2).filter((a) => a !== "--print");
74
+ const hasSubcommand = argv.some((a) => !a.startsWith("-") && knownSubcommands.has(a));
30
75
  if (printMode) {
31
76
  // --print mode: skip REPL entirely, suppress ANSI/spinners, run command, exit.
32
77
  // Used by OpenClaw agents running arc402 commands via ACP.
@@ -41,8 +86,17 @@ if (printMode) {
41
86
  process.exit(1);
42
87
  });
43
88
  }
89
+ else if (process.stdout.isTTY && !hasSubcommand && process.argv.length <= 2 && !process.env.ARC402_NO_TUI) {
90
+ // TTY with no subcommand — launch Ink TUI (unless spawned by TUI as a child process)
91
+ checkUpgrade();
92
+ void Promise.resolve().then(() => __importStar(require("./tui/index"))).then(({ launchTUI }) => launchTUI()).catch((e) => {
93
+ console.error("TUI failed to start:", e instanceof Error ? e.message : String(e));
94
+ // Fallback to REPL
95
+ void (0, repl_1.startREPL)();
96
+ });
97
+ }
44
98
  else if (process.argv.length <= 2) {
45
- // No subcommand — enter interactive REPL
99
+ // No subcommand, not TTY — enter basic REPL fallback
46
100
  checkUpgrade();
47
101
  void (0, repl_1.startREPL)();
48
102
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,uCAA0C;AAC1C,iCAAmC;AACnC,qCAAgE;AAEhE,+EAA+E;AAC/E,8DAA8D;AAC9D,MAAM,cAAc,GAAY,OAAO,CAAC,iBAAiB,CAAyB,CAAC,OAAO,CAAC;AAE3F,SAAS,YAAY;IACnB,IAAI,CAAC,IAAA,qBAAY,GAAE;QAAE,OAAO;IAC5B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,mBAAU,GAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC;QACnC,IAAI,IAAI,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YACpC,mDAAmD;YACnD,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,MAAM,cAAc,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;YAC7C,+DAA+D;YAC/D,IAAA,mBAAU,EAAC,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,+BAA+B;IACjC,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAEnD,IAAI,SAAS,EAAE,CAAC;IACd,+EAA+E;IAC/E,2DAA2D;IAC3D,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,GAAG,CAAC;IAClC,YAAY,EAAE,CAAC;IACf,MAAM,OAAO,GAAG,IAAA,uBAAa,GAAE,CAAC;IAChC,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QACrF,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;KAAM,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IACpC,yCAAyC;IACzC,YAAY,EAAE,CAAC;IACf,KAAK,IAAA,gBAAS,GAAE,CAAC;AACnB,CAAC;KAAM,CAAC;IACN,4DAA4D;IAC5D,YAAY,EAAE,CAAC;IACf,MAAM,OAAO,GAAG,IAAA,uBAAa,GAAE,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAuwBA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAe/C"}
1
+ {"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../src/repl.ts"],"names":[],"mappings":"AAiFA,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAgG/C"}