arc402-cli 1.8.2 → 1.8.4

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 (127) hide show
  1. package/dist/chat/harness.d.ts +1 -0
  2. package/dist/chat/harness.d.ts.map +1 -1
  3. package/dist/chat/harness.js +28 -3
  4. package/dist/chat/harness.js.map +1 -1
  5. package/dist/commands/chat.d.ts.map +1 -1
  6. package/dist/commands/chat.js +4 -3
  7. package/dist/commands/chat.js.map +1 -1
  8. package/dist/commands/daemon.d.ts.map +1 -1
  9. package/dist/commands/daemon.js +57 -11
  10. package/dist/commands/daemon.js.map +1 -1
  11. package/dist/commands/hire.d.ts.map +1 -1
  12. package/dist/commands/hire.js +6 -16
  13. package/dist/commands/hire.js.map +1 -1
  14. package/dist/commands/openshell.d.ts.map +1 -1
  15. package/dist/commands/openshell.js +12 -2
  16. package/dist/commands/openshell.js.map +1 -1
  17. package/dist/daemon/index.d.ts.map +1 -1
  18. package/dist/daemon/index.js +60 -1
  19. package/dist/daemon/index.js.map +1 -1
  20. package/dist/daemon/worker-executor.d.ts +1 -0
  21. package/dist/daemon/worker-executor.d.ts.map +1 -1
  22. package/dist/daemon/worker-executor.js +16 -1
  23. package/dist/daemon/worker-executor.js.map +1 -1
  24. package/dist/openshell-runtime.d.ts +6 -0
  25. package/dist/openshell-runtime.d.ts.map +1 -1
  26. package/dist/openshell-runtime.js +93 -4
  27. package/dist/openshell-runtime.js.map +1 -1
  28. package/dist/renderer/ThemedText.d.ts +2 -1
  29. package/dist/renderer/ThemedText.d.ts.map +1 -1
  30. package/dist/renderer/ThemedText.js +4 -1
  31. package/dist/renderer/ThemedText.js.map +1 -1
  32. package/dist/renderer/reconciler.d.ts.map +1 -1
  33. package/dist/renderer/reconciler.js +13 -1
  34. package/dist/renderer/reconciler.js.map +1 -1
  35. package/dist/renderer/render-frame.d.ts.map +1 -1
  36. package/dist/renderer/render-frame.js +13 -8
  37. package/dist/renderer/render-frame.js.map +1 -1
  38. package/dist/tui/App.d.ts +3 -1
  39. package/dist/tui/App.d.ts.map +1 -1
  40. package/dist/tui/App.js +82 -25
  41. package/dist/tui/App.js.map +1 -1
  42. package/dist/tui/Header.d.ts.map +1 -1
  43. package/dist/tui/Header.js +4 -2
  44. package/dist/tui/Header.js.map +1 -1
  45. package/dist/tui/InputLine.d.ts.map +1 -1
  46. package/dist/tui/InputLine.js +2 -1
  47. package/dist/tui/InputLine.js.map +1 -1
  48. package/dist/tui/KernelPayloadRenderer.d.ts.map +1 -1
  49. package/dist/tui/KernelPayloadRenderer.js +17 -0
  50. package/dist/tui/KernelPayloadRenderer.js.map +1 -1
  51. package/dist/tui/Viewport.d.ts +4 -8
  52. package/dist/tui/Viewport.d.ts.map +1 -1
  53. package/dist/tui/Viewport.js +19 -28
  54. package/dist/tui/Viewport.js.map +1 -1
  55. package/dist/tui/command-catalog.d.ts.map +1 -1
  56. package/dist/tui/command-catalog.js +7 -2
  57. package/dist/tui/command-catalog.js.map +1 -1
  58. package/dist/tui/command-renderers.d.ts +20 -12
  59. package/dist/tui/command-renderers.d.ts.map +1 -1
  60. package/dist/tui/command-renderers.js +154 -37
  61. package/dist/tui/command-renderers.js.map +1 -1
  62. package/dist/tui/components/AnsiTextLine.d.ts +4 -0
  63. package/dist/tui/components/AnsiTextLine.d.ts.map +1 -0
  64. package/dist/tui/components/AnsiTextLine.js +92 -0
  65. package/dist/tui/components/AnsiTextLine.js.map +1 -0
  66. package/dist/tui/components/Button.js +1 -1
  67. package/dist/tui/components/Button.js.map +1 -1
  68. package/dist/tui/components/ChatHarnessSelector.d.ts.map +1 -1
  69. package/dist/tui/components/ChatHarnessSelector.js +6 -5
  70. package/dist/tui/components/ChatHarnessSelector.js.map +1 -1
  71. package/dist/tui/components/CompletionDropdown.d.ts.map +1 -1
  72. package/dist/tui/components/CompletionDropdown.js +4 -3
  73. package/dist/tui/components/CompletionDropdown.js.map +1 -1
  74. package/dist/tui/components/ConfirmPrompt.d.ts.map +1 -1
  75. package/dist/tui/components/ConfirmPrompt.js +2 -1
  76. package/dist/tui/components/ConfirmPrompt.js.map +1 -1
  77. package/dist/tui/components/commerce/FeedCard.d.ts +13 -0
  78. package/dist/tui/components/commerce/FeedCard.d.ts.map +1 -0
  79. package/dist/tui/components/commerce/FeedCard.js +26 -0
  80. package/dist/tui/components/commerce/FeedCard.js.map +1 -0
  81. package/dist/tui/components/commerce/HireFlow.d.ts +13 -0
  82. package/dist/tui/components/commerce/HireFlow.d.ts.map +1 -0
  83. package/dist/tui/components/commerce/HireFlow.js +109 -0
  84. package/dist/tui/components/commerce/HireFlow.js.map +1 -0
  85. package/dist/tui/components/commerce/JobStatusCard.d.ts +17 -0
  86. package/dist/tui/components/commerce/JobStatusCard.d.ts.map +1 -0
  87. package/dist/tui/components/commerce/JobStatusCard.js +11 -0
  88. package/dist/tui/components/commerce/JobStatusCard.js.map +1 -0
  89. package/dist/tui/components/commerce/RoundsList.js +1 -1
  90. package/dist/tui/components/commerce/RoundsList.js.map +1 -1
  91. package/dist/tui/components/commerce/StandingsCard.d.ts +13 -0
  92. package/dist/tui/components/commerce/StandingsCard.d.ts.map +1 -0
  93. package/dist/tui/components/commerce/StandingsCard.js +9 -0
  94. package/dist/tui/components/commerce/StandingsCard.js.map +1 -0
  95. package/dist/tui/components/commerce/StatusCard.d.ts.map +1 -1
  96. package/dist/tui/components/commerce/StatusCard.js +1 -2
  97. package/dist/tui/components/commerce/StatusCard.js.map +1 -1
  98. package/dist/tui/components/commerce/common.d.ts.map +1 -1
  99. package/dist/tui/components/commerce/common.js +17 -12
  100. package/dist/tui/components/commerce/common.js.map +1 -1
  101. package/dist/tui/index.d.ts.map +1 -1
  102. package/dist/tui/index.js +3 -1
  103. package/dist/tui/index.js.map +1 -1
  104. package/dist/tui/kernel-payload.d.ts +23 -0
  105. package/dist/tui/kernel-payload.d.ts.map +1 -1
  106. package/dist/tui/kernel.d.ts.map +1 -1
  107. package/dist/tui/kernel.js +350 -2
  108. package/dist/tui/kernel.js.map +1 -1
  109. package/dist/tui/useChat.d.ts.map +1 -1
  110. package/dist/tui/useChat.js +11 -12
  111. package/dist/tui/useChat.js.map +1 -1
  112. package/dist/tui/useDaemonEvents.d.ts.map +1 -1
  113. package/dist/tui/useDaemonEvents.js +142 -44
  114. package/dist/tui/useDaemonEvents.js.map +1 -1
  115. package/dist/tui/viewport-measure.d.ts +28 -0
  116. package/dist/tui/viewport-measure.d.ts.map +1 -0
  117. package/dist/tui/viewport-measure.js +35 -0
  118. package/dist/tui/viewport-measure.js.map +1 -0
  119. package/dist/ui/banner.d.ts +1 -0
  120. package/dist/ui/banner.d.ts.map +1 -1
  121. package/dist/ui/banner.js +54 -20
  122. package/dist/ui/banner.js.map +1 -1
  123. package/dist/walletconnect.d.ts +1 -0
  124. package/dist/walletconnect.d.ts.map +1 -1
  125. package/dist/walletconnect.js +195 -126
  126. package/dist/walletconnect.js.map +1 -1
  127. package/package.json +2 -2
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.useChat = useChat;
7
4
  const react_1 = require("react");
8
- const chalk_1 = __importDefault(require("chalk"));
9
5
  const harness_js_1 = require("../chat/harness.js");
10
6
  function useChat() {
11
7
  const initial = (0, react_1.useMemo)(() => (0, harness_js_1.resolveInitialChatRuntime)(), []);
@@ -23,7 +19,7 @@ function useChat() {
23
19
  setSelectorVisible(false);
24
20
  setPendingHarness(undefined);
25
21
  setIsChatMode(true);
26
- onLine(chalk_1.default.cyanBright(` ◈ Commerce Shell ready · Harness: ${(0, harness_js_1.getHarnessLabel)(harness)}`));
22
+ onLine(` ◈ Commerce Shell ready · Harness: ${(0, harness_js_1.getHarnessLabel)(harness)}`);
27
23
  }, [runtime]);
28
24
  const beginChat = (0, react_1.useCallback)((onLine, requestedHarness) => {
29
25
  const explicit = (0, harness_js_1.normalizeHarness)(requestedHarness);
@@ -33,11 +29,11 @@ function useChat() {
33
29
  }
34
30
  setIsChatMode(true);
35
31
  if (runtime.harness) {
36
- onLine(chalk_1.default.cyanBright(` ◈ Commerce Shell ready · Harness: ${(0, harness_js_1.getHarnessLabel)(runtime.harness)}`));
32
+ onLine(` ◈ Commerce Shell ready · Harness: ${(0, harness_js_1.getHarnessLabel)(runtime.harness)}`);
37
33
  return;
38
34
  }
39
35
  setSelectorVisible(true);
40
- onLine(chalk_1.default.yellow(" ⚠ No chat harness selected yet. Choose one below."));
36
+ onLine(" ⚠ No chat harness selected yet. Choose one below.");
41
37
  }, [activateHarness, runtime.harness]);
42
38
  const cancelSelector = (0, react_1.useCallback)(() => {
43
39
  setSelectorVisible(false);
@@ -70,12 +66,12 @@ function useChat() {
70
66
  if (!harness) {
71
67
  setIsChatMode(true);
72
68
  setSelectorVisible(true);
73
- onLine(chalk_1.default.yellow(" ⚠ Choose a harness before sending chat."));
69
+ onLine(" ⚠ Choose a harness before sending chat.");
74
70
  return;
75
71
  }
76
72
  setIsSending(true);
77
73
  setIsChatMode(true);
78
- onLine(chalk_1.default.dim(` ◈ ${(0, harness_js_1.getHarnessLabel)(harness)} thinking...`));
74
+ onLine(` ◈ ${(0, harness_js_1.getHarnessLabel)(harness)} thinking...`);
79
75
  try {
80
76
  const output = await (0, harness_js_1.dispatchHarnessChat)({
81
77
  harness,
@@ -85,7 +81,7 @@ function useChat() {
85
81
  });
86
82
  for (const line of output.split(/\r?\n/)) {
87
83
  if (line.trim())
88
- onLine(chalk_1.default.white(` ◈ ${line}`));
84
+ onLine(` ◈ ${line}`);
89
85
  }
90
86
  const nextRuntime = explicit ? { ...runtime, harness: explicit } : runtime;
91
87
  if (explicit) {
@@ -95,9 +91,12 @@ function useChat() {
95
91
  }
96
92
  catch (err) {
97
93
  const msg = err instanceof Error ? err.message : String(err);
98
- onLine(chalk_1.default.red(` ✗ ${msg}`));
94
+ onLine(` ✗ ${msg}`);
99
95
  if (harness === "openclaw") {
100
- onLine(chalk_1.default.dim(" Hint: make sure OpenClaw gateway is running (openclaw gateway start)."));
96
+ onLine(" Hint: make sure OpenClaw gateway is running (openclaw gateway start).");
97
+ }
98
+ if (harness === "hermes") {
99
+ onLine(` Hint: make sure the ARC-402 daemon is reachable at ${runtime.daemonUrl}.`);
101
100
  }
102
101
  }
103
102
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../src/tui/useChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useChat.js","sourceRoot":"","sources":["../../src/tui/useChat.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDaemonEvents.d.ts","sourceRoot":"","sources":["../../src/tui/useDaemonEvents.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,aAAa,GACb,eAAe,GACf,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAIhG,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,UAAO,QA8D1E"}
1
+ {"version":3,"file":"useDaemonEvents.d.ts","sourceRoot":"","sources":["../../src/tui/useDaemonEvents.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GACvB,eAAe,GACf,oBAAoB,GACpB,uBAAuB,GACvB,aAAa,GACb,eAAe,GACf,YAAY,GACZ,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;AAsGhG,wBAAgB,eAAe,CAAC,OAAO,EAAE,kBAAkB,EAAE,OAAO,UAAO,QAyC1E"}
@@ -1,68 +1,166 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.useDaemonEvents = useDaemonEvents;
4
37
  const react_1 = require("react");
38
+ const http = __importStar(require("http"));
39
+ const https = __importStar(require("https"));
5
40
  const DAEMON_EVENTS_URL = "http://127.0.0.1:4402/events";
41
+ const DAEMON_HEALTH_URL = "http://127.0.0.1:4402/health";
42
+ function connectSse(urlString, onEvent, onDisconnect) {
43
+ const url = new URL(urlString);
44
+ const transport = url.protocol === "https:" ? https : http;
45
+ const req = transport.request({
46
+ protocol: url.protocol,
47
+ hostname: url.hostname,
48
+ port: url.port || (url.protocol === "https:" ? 443 : 80),
49
+ path: `${url.pathname}${url.search}`,
50
+ method: "GET",
51
+ headers: {
52
+ Accept: "text/event-stream",
53
+ Connection: "keep-alive",
54
+ "Cache-Control": "no-cache",
55
+ },
56
+ }, (res) => {
57
+ if ((res.statusCode ?? 500) >= 400) {
58
+ res.resume();
59
+ onDisconnect();
60
+ return;
61
+ }
62
+ let buffer = "";
63
+ res.setEncoding("utf8");
64
+ res.on("data", (chunk) => {
65
+ buffer += chunk;
66
+ while (true) {
67
+ const boundary = buffer.indexOf("\n\n");
68
+ if (boundary === -1)
69
+ break;
70
+ const rawEvent = buffer.slice(0, boundary);
71
+ buffer = buffer.slice(boundary + 2);
72
+ const lines = rawEvent.split(/\r?\n/);
73
+ let type = "message";
74
+ const dataLines = [];
75
+ for (const line of lines) {
76
+ if (line.startsWith(":"))
77
+ continue;
78
+ if (line.startsWith("event:")) {
79
+ type = line.slice(6).trim();
80
+ }
81
+ else if (line.startsWith("data:")) {
82
+ dataLines.push(line.slice(5).trimStart());
83
+ }
84
+ }
85
+ if (!dataLines.length || type === "message")
86
+ continue;
87
+ try {
88
+ onEvent(type, JSON.parse(dataLines.join("\n")));
89
+ }
90
+ catch {
91
+ // ignore malformed event payloads
92
+ }
93
+ }
94
+ });
95
+ res.on("end", onDisconnect);
96
+ res.on("close", onDisconnect);
97
+ res.on("error", onDisconnect);
98
+ });
99
+ req.on("error", onDisconnect);
100
+ req.end();
101
+ return () => {
102
+ req.destroy();
103
+ };
104
+ }
105
+ function probeHealth(timeoutMs = 500) {
106
+ return new Promise((resolve) => {
107
+ const url = new URL(DAEMON_HEALTH_URL);
108
+ const transport = url.protocol === "https:" ? https : http;
109
+ const req = transport.request({
110
+ protocol: url.protocol,
111
+ hostname: url.hostname,
112
+ port: url.port || (url.protocol === "https:" ? 443 : 80),
113
+ path: `${url.pathname}${url.search}`,
114
+ method: "GET",
115
+ }, (res) => {
116
+ res.resume();
117
+ resolve((res.statusCode ?? 500) < 500);
118
+ });
119
+ req.on("error", () => resolve(false));
120
+ req.setTimeout(timeoutMs, () => {
121
+ req.destroy();
122
+ resolve(false);
123
+ });
124
+ req.end();
125
+ });
126
+ }
6
127
  function useDaemonEvents(onEvent, enabled = true) {
7
128
  // eslint-disable-next-line react-hooks/exhaustive-deps
8
129
  const stableHandler = (0, react_1.useCallback)(onEvent, []);
9
130
  (0, react_1.useEffect)(() => {
10
131
  if (!enabled)
11
132
  return;
12
- let source = null;
133
+ let teardown = null;
13
134
  let reconnectTimer = null;
14
135
  let mounted = true;
15
- const connect = () => {
136
+ const scheduleReconnect = () => {
137
+ if (!mounted || reconnectTimer)
138
+ return;
139
+ reconnectTimer = setTimeout(() => {
140
+ reconnectTimer = null;
141
+ void start();
142
+ }, 5000);
143
+ };
144
+ const start = async () => {
16
145
  if (!mounted)
17
146
  return;
18
- try {
19
- source = new EventSource(DAEMON_EVENTS_URL);
20
- const handleEvent = (type) => (e) => {
21
- if (!mounted)
22
- return;
23
- try {
24
- const data = JSON.parse(e.data ?? "{}");
25
- stableHandler(type, data);
26
- }
27
- catch { /* ignore malformed */ }
28
- };
29
- const eventTypes = [
30
- "hire_proposed",
31
- "agreement_accepted",
32
- "deliverable_committed",
33
- "job_started",
34
- "job_completed",
35
- "job_failed",
36
- "security_threat",
37
- "handshake_received",
38
- "round_resolved",
39
- ];
40
- for (const type of eventTypes) {
41
- source.addEventListener(type, handleEvent(type));
42
- }
43
- source.onerror = () => {
44
- source?.close();
45
- source = null;
46
- if (mounted) {
47
- reconnectTimer = setTimeout(connect, 5000);
48
- }
49
- };
50
- }
51
- catch {
52
- if (mounted)
53
- reconnectTimer = setTimeout(connect, 5000);
147
+ const healthy = await probeHealth();
148
+ if (!healthy) {
149
+ scheduleReconnect();
150
+ return;
54
151
  }
152
+ teardown = connectSse(DAEMON_EVENTS_URL, stableHandler, () => {
153
+ teardown?.();
154
+ teardown = null;
155
+ scheduleReconnect();
156
+ });
55
157
  };
56
- // Only connect if daemon seems reachable (non-blocking probe)
57
- fetch("http://127.0.0.1:4402/health", { signal: AbortSignal.timeout(500) })
58
- .then(() => { if (mounted)
59
- connect(); })
60
- .catch(() => { });
158
+ void start();
61
159
  return () => {
62
160
  mounted = false;
63
161
  if (reconnectTimer)
64
162
  clearTimeout(reconnectTimer);
65
- source?.close();
163
+ teardown?.();
66
164
  };
67
165
  }, [enabled, stableHandler]);
68
166
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useDaemonEvents.js","sourceRoot":"","sources":["../../src/tui/useDaemonEvents.ts"],"names":[],"mappings":";;AAiBA,0CA8DC;AA/ED,iCAA+C;AAe/C,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AAEzD,SAAgB,eAAe,CAAC,OAA2B,EAAE,OAAO,GAAG,IAAI;IACzE,uDAAuD;IACvD,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE/C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,MAAM,GAAuB,IAAI,CAAC;QACtC,IAAI,cAAc,GAAyC,IAAI,CAAC;QAChE,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,IAAI,CAAC;gBACH,MAAM,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;gBAE5C,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC,CAAQ,EAAE,EAAE;oBACjD,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACrB,IAAI,CAAC;wBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAE,CAAkB,CAAC,IAAI,IAAI,IAAI,CAA4B,CAAC;wBACrF,aAAa,CAAC,IAAuB,EAAE,IAAI,CAAC,CAAC;oBAC/C,CAAC;oBAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;gBACpC,CAAC,CAAC;gBAEF,MAAM,UAAU,GAAsB;oBACpC,eAAe;oBACf,oBAAoB;oBACpB,uBAAuB;oBACvB,aAAa;oBACb,eAAe;oBACf,YAAY;oBACZ,iBAAiB;oBACjB,oBAAoB;oBACpB,gBAAgB;iBACjB,CAAC;gBAEF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnD,CAAC;gBAED,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;oBACpB,MAAM,EAAE,KAAK,EAAE,CAAC;oBAChB,MAAM,GAAG,IAAI,CAAC;oBACd,IAAI,OAAO,EAAE,CAAC;wBACZ,cAAc,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,OAAO;oBAAE,cAAc,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC,CAAC;QAEF,8DAA8D;QAC9D,KAAK,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;aACxE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO;YAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;aACvC,KAAK,CAAC,GAAG,EAAE,GAA2C,CAAC,CAAC,CAAC;QAE5D,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,cAAc;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YACjD,MAAM,EAAE,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"useDaemonEvents.js","sourceRoot":"","sources":["../../src/tui/useDaemonEvents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqHA,0CAyCC;AA9JD,iCAA+C;AAC/C,2CAA6B;AAC7B,6CAA+B;AAe/B,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AACzD,MAAM,iBAAiB,GAAG,8BAA8B,CAAC;AAEzD,SAAS,UAAU,CAAC,SAAiB,EAAE,OAA2B,EAAE,YAAwB;IAC1F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;IAE3D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAC3B;QACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;QACpC,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,MAAM,EAAE,mBAAmB;YAC3B,UAAU,EAAE,YAAY;YACxB,eAAe,EAAE,UAAU;SAC5B;KACF,EACD,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACnC,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,YAAY,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACxB,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YAC/B,MAAM,IAAI,KAAK,CAAC;YAEhB,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;oBAAE,MAAM;gBAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC3C,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;gBAEpC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,IAAI,GAAG,SAAS,CAAC;gBACrB,MAAM,SAAS,GAAa,EAAE,CAAC;gBAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;wBAAE,SAAS;oBACnC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC9B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC9B,CAAC;yBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,IAAI,KAAK,SAAS;oBAAE,SAAS;gBAEtD,IAAI,CAAC;oBACH,OAAO,CAAC,IAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAA4B,CAAC,CAAC;gBAChG,CAAC;gBAAC,MAAM,CAAC;oBACP,kCAAkC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9B,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAChC,CAAC,CACF,CAAC;IAEF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9B,GAAG,CAAC,GAAG,EAAE,CAAC;IAEV,OAAO,GAAG,EAAE;QACV,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,SAAS,GAAG,GAAG;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAC3B;YACE,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,IAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE;YACpC,MAAM,EAAE,KAAK;SACd,EACD,CAAC,GAAG,EAAE,EAAE;YACN,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC;QACzC,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,UAAU,CAAC,SAAS,EAAE,GAAG,EAAE;YAC7B,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,eAAe,CAAC,OAA2B,EAAE,OAAO,GAAG,IAAI;IACzE,uDAAuD;IACvD,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAE/C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,IAAI,QAAQ,GAAwB,IAAI,CAAC;QACzC,IAAI,cAAc,GAAyC,IAAI,CAAC;QAChE,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,iBAAiB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,OAAO,IAAI,cAAc;gBAAE,OAAO;YACvC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,cAAc,GAAG,IAAI,CAAC;gBACtB,KAAK,KAAK,EAAE,CAAC;YACf,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,OAAO;gBAAE,OAAO;YACrB,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,iBAAiB,EAAE,CAAC;gBACpB,OAAO;YACT,CAAC;YAED,QAAQ,GAAG,UAAU,CAAC,iBAAiB,EAAE,aAAa,EAAE,GAAG,EAAE;gBAC3D,QAAQ,EAAE,EAAE,CAAC;gBACb,QAAQ,GAAG,IAAI,CAAC;gBAChB,iBAAiB,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,KAAK,KAAK,EAAE,CAAC;QAEb,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,cAAc;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YACjD,QAAQ,EAAE,EAAE,CAAC;QACf,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,28 @@
1
+ export interface LogicalViewportEntry<T = unknown> {
2
+ entry: T;
3
+ logicalLines: string[];
4
+ rowStart: number;
5
+ rowEnd: number;
6
+ }
7
+ export interface VisibleLogicalSegment<T = unknown> {
8
+ item: LogicalViewportEntry<T>;
9
+ sliceStart: number;
10
+ sliceEnd: number;
11
+ isFull: boolean;
12
+ }
13
+ export declare function measureLogicalEntries<T>(items: Array<{
14
+ entry: T;
15
+ logicalLines: string[];
16
+ }>): {
17
+ measured: LogicalViewportEntry<T>[];
18
+ totalRows: number;
19
+ };
20
+ export declare function sliceVisibleLogicalEntries<T>(measured: LogicalViewportEntry<T>[], scrollOffset: number, viewportHeight: number): {
21
+ segments: VisibleLogicalSegment<T>[];
22
+ totalRows: number;
23
+ startRow: number;
24
+ endRow: number;
25
+ visibleRowCount: number;
26
+ padCount: number;
27
+ };
28
+ //# sourceMappingURL=viewport-measure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-measure.d.ts","sourceRoot":"","sources":["../../src/tui/viewport-measure.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB,CAAC,CAAC,GAAG,OAAO;IAC/C,KAAK,EAAE,CAAC,CAAC;IACT,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC,GAAG,OAAO;IAChD,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EACrC,KAAK,EAAE,KAAK,CAAC;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,GACjD;IAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAS5D;AAED,wBAAgB,0BAA0B,CAAC,CAAC,EAC1C,QAAQ,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,EACnC,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GACrB;IACD,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAqBA"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.measureLogicalEntries = measureLogicalEntries;
4
+ exports.sliceVisibleLogicalEntries = sliceVisibleLogicalEntries;
5
+ function measureLogicalEntries(items) {
6
+ let cursor = 0;
7
+ const measured = items.map(({ entry, logicalLines }) => {
8
+ const rowStart = cursor;
9
+ const rowEnd = rowStart + logicalLines.length;
10
+ cursor = rowEnd;
11
+ return { entry, logicalLines, rowStart, rowEnd };
12
+ });
13
+ return { measured, totalRows: cursor };
14
+ }
15
+ function sliceVisibleLogicalEntries(measured, scrollOffset, viewportHeight) {
16
+ const totalRows = measured.length > 0 ? measured[measured.length - 1].rowEnd : 0;
17
+ const endRow = Math.max(0, totalRows - scrollOffset);
18
+ const startRow = Math.max(0, endRow - viewportHeight);
19
+ const segments = measured.flatMap((item) => {
20
+ if (item.rowEnd <= startRow || item.rowStart >= endRow)
21
+ return [];
22
+ const sliceStart = Math.max(0, startRow - item.rowStart);
23
+ const sliceEnd = Math.min(item.logicalLines.length, endRow - item.rowStart);
24
+ return [{
25
+ item,
26
+ sliceStart,
27
+ sliceEnd,
28
+ isFull: sliceStart === 0 && sliceEnd === item.logicalLines.length,
29
+ }];
30
+ });
31
+ const visibleRowCount = segments.reduce((sum, segment) => sum + (segment.sliceEnd - segment.sliceStart), 0);
32
+ const padCount = Math.max(0, viewportHeight - visibleRowCount);
33
+ return { segments, totalRows, startRow, endRow, visibleRowCount, padCount };
34
+ }
35
+ //# sourceMappingURL=viewport-measure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewport-measure.js","sourceRoot":"","sources":["../../src/tui/viewport-measure.ts"],"names":[],"mappings":";;AAcA,sDAWC;AAED,gEAgCC;AA7CD,SAAgB,qBAAqB,CACnC,KAAkD;IAElD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE;QACrD,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,MAAM,GAAG,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC;QAC9C,MAAM,GAAG,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;IACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,SAAgB,0BAA0B,CACxC,QAAmC,EACnC,YAAoB,EACpB,cAAsB;IAStB,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACzC,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM;YAAE,OAAO,EAAE,CAAC;QAClE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5E,OAAO,CAAC;gBACN,IAAI;gBACJ,UAAU;gBACV,QAAQ;gBACR,MAAM,EAAE,UAAU,KAAK,CAAC,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,MAAM;aAClE,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,eAAe,CAAC,CAAC;IAE/D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC;AAC9E,CAAC"}
@@ -2,6 +2,7 @@ export interface BannerConfig {
2
2
  network?: string;
3
3
  wallet?: string;
4
4
  balance?: string;
5
+ width?: number;
5
6
  }
6
7
  /** Returns banner as an array of plain lines (no trailing newlines). */
7
8
  export declare function getBannerLines(config?: BannerConfig): string[];
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CAsB9D;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAIxD"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAsBD,wEAAwE;AACxE,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,EAAE,CA2C9D;AAED,wBAAgB,YAAY,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,IAAI,CAIxD"}
package/dist/ui/banner.js CHANGED
@@ -52,32 +52,66 @@ function readVersion() {
52
52
  }
53
53
  }
54
54
  const _pkg = { version: readVersion() };
55
- const ART = `
56
- ██████╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗
57
- ██╔══██╗██╔══██╗██╔════╝ ██║ ██║██╔═══██╗╚════██╗
58
- ███████║██████╔╝██║ █████╗███████║██║ ██║ █████╔╝
59
- ██╔══██║██╔══██╗██║ ╚════╝╚════██║██║ ██║██╔═══╝
60
- ██║ ██║██║ ██║╚██████╗ ██║╚██████╔╝███████╗
61
- ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝`;
62
- const SEPARATOR = chalk_1.default.cyanBright("◈") + " " + chalk_1.default.dim("─".repeat(45));
55
+ const LARGE_ART = [
56
+ " ██████╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗",
57
+ " ██╔══██╗██╔══██╗██╔════╝ ██║ ██║██╔═══██╗╚════██╗",
58
+ " ███████║██████╔╝██║ █████╗███████║██║ ██║ █████╔╝",
59
+ " ██╔══██║██╔══██╗██║ ╚════╝╚════██║██║ ██║██╔═══╝",
60
+ " ██║ ██║██║ ██║╚██████╗ ██║╚██████╔╝███████╗",
61
+ " ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝",
62
+ ];
63
+ const MEDIUM_MARK = [
64
+ " ARC-402",
65
+ " agent-to-agent commerce",
66
+ ];
67
+ const SMALL_MARK = [" ARC-402"];
68
+ function visibleLength(value) {
69
+ return value.replace(/\u001B\[[0-9;]*m/g, "").length;
70
+ }
71
+ function pickVariant(width) {
72
+ const largeWidth = LARGE_ART.reduce((max, line) => Math.max(max, line.length), 0);
73
+ if (width >= largeWidth + 2) {
74
+ return { artLines: LARGE_ART, compactMeta: false };
75
+ }
76
+ if (width >= 32) {
77
+ return { artLines: MEDIUM_MARK, compactMeta: false };
78
+ }
79
+ return { artLines: SMALL_MARK, compactMeta: true };
80
+ }
63
81
  /** Returns banner as an array of plain lines (no trailing newlines). */
64
82
  function getBannerLines(config) {
83
+ const width = Math.max(20, config?.width ?? process.stdout?.columns ?? 80);
84
+ const { artLines, compactMeta } = pickVariant(width);
65
85
  const lines = [];
66
- // ART has a leading newline — skip it
67
- for (const l of ART.split("\n").slice(1)) {
68
- lines.push(chalk_1.default.cyan(l));
86
+ for (const line of artLines) {
87
+ lines.push(chalk_1.default.cyan(line));
69
88
  }
70
89
  lines.push("");
71
- lines.push(" " + chalk_1.default.dim(`agent-to-agent arcing · v${_pkg.version}`));
72
- lines.push(" " + SEPARATOR);
73
- if (config) {
90
+ const versionLine = compactMeta
91
+ ? ` ${chalk_1.default.dim(`v${_pkg.version}`)}`
92
+ : ` ${chalk_1.default.dim(`agent-to-agent arcing · v${_pkg.version}`)}`;
93
+ lines.push(versionLine);
94
+ const separatorWidth = Math.max(12, Math.min(45, width - 4));
95
+ lines.push(` ${chalk_1.default.cyanBright("◈")} ${chalk_1.default.dim("─".repeat(separatorWidth))}`);
96
+ const metaLines = [];
97
+ if (config?.network)
98
+ metaLines.push(` ${chalk_1.default.dim("Network")} ${chalk_1.default.white(config.network)}`);
99
+ if (config?.wallet)
100
+ metaLines.push(` ${chalk_1.default.dim("Wallet")} ${chalk_1.default.white(config.wallet)}`);
101
+ if (config?.balance)
102
+ metaLines.push(` ${chalk_1.default.dim("Balance")} ${chalk_1.default.white(config.balance)}`);
103
+ if (metaLines.length > 0) {
74
104
  lines.push("");
75
- if (config.network)
76
- lines.push(` ${chalk_1.default.dim("Network")} ${chalk_1.default.white(config.network)}`);
77
- if (config.wallet)
78
- lines.push(` ${chalk_1.default.dim("Wallet")} ${chalk_1.default.white(config.wallet)}`);
79
- if (config.balance)
80
- lines.push(` ${chalk_1.default.dim("Balance")} ${chalk_1.default.white(config.balance)}`);
105
+ const available = Math.max(10, width - 2);
106
+ for (const line of metaLines) {
107
+ if (visibleLength(line) <= available) {
108
+ lines.push(line);
109
+ continue;
110
+ }
111
+ const [labelPart, valuePart = ""] = line.split(/\s{2,}/, 2);
112
+ lines.push(labelPart);
113
+ lines.push(` ${valuePart.trim()}`);
114
+ }
81
115
  }
82
116
  lines.push("");
83
117
  lines.push(` ${chalk_1.default.dim("Type 'help' to get started")}`);
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,wCAsBC;AAED,oCAIC;AA7DD,kDAA0B;AAC1B,uCAAyB;AACzB,2CAA6B;AAE7B,SAAS,WAAW;IAClB,IAAI,CAAC;QACH,qCAAqC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,EAAE,oBAAoB,CAAC,CAAC;QACpE,OAAQ,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAyB,CAAC,OAAO,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC;AAExC,MAAM,GAAG,GAAG;;;;;;wDAM4C,CAAC;AAEzD,MAAM,SAAS,GAAG,eAAK,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAQ1E,wEAAwE;AACxE,SAAgB,cAAc,CAAC,MAAqB;IAClD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,sCAAsC;IACtC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,eAAK,CAAC,GAAG,CAAC,4BAA4B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;IAC5B,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,IAAI,MAAM,CAAC,OAAO;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,MAAM;YACf,KAAK,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,OAAO;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,YAAY,CAAC,MAAqB;IAChD,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export declare function connectPhoneWallet(projectId: string, chainId: number, c
20
20
  telegramOpts?: TelegramOpts;
21
21
  prompt?: string;
22
22
  hardware?: boolean;
23
+ callbacks?: WCCallbacks;
23
24
  }): Promise<{
24
25
  client: SignClientT;
25
26
  session: WCSession;
@@ -1 +1 @@
1
- {"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5D,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjH,CAAC;AAGF,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,KAAK,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AA2B3D;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1E,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiJvE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,CAyDjB;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1E,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6F9C"}
1
+ {"version":3,"file":"walletconnect.d.ts","sourceRoot":"","sources":["../src/walletconnect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC;IAC5D,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,WAAW,GAAG,iBAAiB,GAAG,OAAO,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACjH,CAAC;AAGF,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/D,KAAK,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAuE3D;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,YAAY,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,WAAW,CAAA;CAAE,GACnG,OAAO,CAAC;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA+KvE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,WAAW,EACnB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,EAAE,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/C,OAAO,CAAC,MAAM,CAAC,CAyDjB;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1E,MAAM,EAAE,MAAM,EACd,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CA6F9C"}