@0xmaxma/claude-gateway 1.5.0 → 1.5.1
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-viewer-ui.d.ts","sourceRoot":"","sources":["../../src/ui/cli-viewer-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAyDH,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,IAAI,GAAG,OAAiB,GAAG,MAAM,CAMrH;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CA4DrE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"cli-viewer-ui.d.ts","sourceRoot":"","sources":["../../src/ui/cli-viewer-ui.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAyDH,+DAA+D;AAC/D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,IAAI,GAAG,OAAiB,GAAG,MAAM,CAMrH;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CA4DrE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CA0KrE"}
|
package/dist/ui/cli-viewer-ui.js
CHANGED
|
@@ -155,7 +155,6 @@ function generateCliViewerPage(opts) {
|
|
|
155
155
|
display:flex; align-items:center; gap:10px; padding:8px 12px;
|
|
156
156
|
background:#0b0e14; border-bottom:1px solid #232a3b; font-size:13px; flex:0 0 auto;
|
|
157
157
|
}
|
|
158
|
-
header .agent { font-weight:600; }
|
|
159
158
|
header .status { color:#7a88a8; margin-left:auto; }
|
|
160
159
|
select, button {
|
|
161
160
|
background:#131722; color:#c8d3f5; border:1px solid #2b3450; border-radius:8px;
|
|
@@ -164,12 +163,27 @@ function generateCliViewerPage(opts) {
|
|
|
164
163
|
button.on { background:#1f6feb; border-color:#1f6feb; color:#fff; }
|
|
165
164
|
#term { flex:1; min-height:0; padding:6px; }
|
|
166
165
|
.hint { color:#7a88a8; padding:16px; font-size:13px; }
|
|
166
|
+
/* Shortcut keys — inline in the header, only shown in input mode. Compact but
|
|
167
|
+
still touch-friendly for mobile webviews. */
|
|
168
|
+
#keybar { display:none; align-items:center; gap:4px; }
|
|
169
|
+
#keybar button {
|
|
170
|
+
min-width:30px; min-height:30px; font-size:13px; line-height:1;
|
|
171
|
+
padding:4px 8px; touch-action:manipulation; -webkit-user-select:none; user-select:none;
|
|
172
|
+
}
|
|
173
|
+
#keybar button:active { background:#1f6feb; border-color:#1f6feb; color:#fff; }
|
|
174
|
+
#keybar .esc { font-weight:600; }
|
|
167
175
|
`;
|
|
168
176
|
const body = `
|
|
169
177
|
<header>
|
|
170
|
-
<span class="agent">${htmlEscape(opts.agentId)}</span>
|
|
171
178
|
<select id="sess" title="Session" style="display:none"></select>
|
|
172
179
|
<button id="toggle" title="Toggle input">🔒 Read-only</button>
|
|
180
|
+
<div id="keybar">
|
|
181
|
+
<button type="button" class="esc" data-seq="esc" title="Escape">Esc</button>
|
|
182
|
+
<button type="button" data-seq="left" title="Arrow Left" aria-label="Arrow Left">◀</button>
|
|
183
|
+
<button type="button" data-seq="up" title="Arrow Up" aria-label="Arrow Up">▲</button>
|
|
184
|
+
<button type="button" data-seq="down" title="Arrow Down" aria-label="Arrow Down">▼</button>
|
|
185
|
+
<button type="button" data-seq="right" title="Arrow Right" aria-label="Arrow Right">▶</button>
|
|
186
|
+
</div>
|
|
173
187
|
<span class="status" id="status">connecting…</span>
|
|
174
188
|
</header>
|
|
175
189
|
<div id="term"></div>
|
|
@@ -182,7 +196,9 @@ function generateCliViewerPage(opts) {
|
|
|
182
196
|
var statusEl = document.getElementById('status');
|
|
183
197
|
var sel = document.getElementById('sess');
|
|
184
198
|
var toggleBtn = document.getElementById('toggle');
|
|
199
|
+
var keybar = document.getElementById('keybar');
|
|
185
200
|
function setStatus(t){ statusEl.textContent = t; }
|
|
201
|
+
var ESC = String.fromCharCode(27);
|
|
186
202
|
|
|
187
203
|
var term = new Terminal({
|
|
188
204
|
cols: 200, rows: 50, scrollback: 0, disableStdin: true, convertEol: false,
|
|
@@ -193,11 +209,38 @@ function generateCliViewerPage(opts) {
|
|
|
193
209
|
|
|
194
210
|
var ws = null, inputMode = false, onDataDisposable = null, currentSession = null, reconnectT = null;
|
|
195
211
|
|
|
212
|
+
function wsSend(s){ if (s && ws && ws.readyState===1) ws.send(s); }
|
|
213
|
+
|
|
214
|
+
// Map a shortcut button to the bytes a real key would send. Arrow keys depend
|
|
215
|
+
// on the terminal's DECCKM (application cursor keys) state — xterm.js exposes
|
|
216
|
+
// it via term.modes; fall back to the normal-mode CSI form when unavailable.
|
|
217
|
+
function keySeq(name){
|
|
218
|
+
var app = term.modes && term.modes.applicationCursorKeysMode;
|
|
219
|
+
var p = app ? 'O' : '[';
|
|
220
|
+
switch (name) {
|
|
221
|
+
case 'esc': return ESC;
|
|
222
|
+
case 'up': return ESC + p + 'A';
|
|
223
|
+
case 'down': return ESC + p + 'B';
|
|
224
|
+
case 'right': return ESC + p + 'C';
|
|
225
|
+
case 'left': return ESC + p + 'D';
|
|
226
|
+
}
|
|
227
|
+
return '';
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
Array.prototype.forEach.call(keybar.querySelectorAll('button'), function(btn){
|
|
231
|
+
// preventDefault on press keeps the terminal's hidden textarea focused so the
|
|
232
|
+
// mobile soft keyboard does not dismiss when a shortcut is tapped.
|
|
233
|
+
btn.addEventListener('mousedown', function(e){ e.preventDefault(); });
|
|
234
|
+
btn.addEventListener('touchstart', function(e){ e.preventDefault(); wsSend(keySeq(btn.getAttribute('data-seq'))); }, { passive:false });
|
|
235
|
+
btn.addEventListener('click', function(e){ e.preventDefault(); wsSend(keySeq(btn.getAttribute('data-seq'))); });
|
|
236
|
+
});
|
|
237
|
+
|
|
196
238
|
function setInputMode(on){
|
|
197
239
|
inputMode = on;
|
|
198
240
|
term.options.disableStdin = !on;
|
|
199
241
|
toggleBtn.className = on ? 'on' : '';
|
|
200
242
|
toggleBtn.textContent = on ? '⌨️ Input ON' : '🔒 Read-only';
|
|
243
|
+
keybar.style.display = on ? 'flex' : 'none';
|
|
201
244
|
if (onDataDisposable) { onDataDisposable.dispose(); onDataDisposable = null; }
|
|
202
245
|
if (on) { onDataDisposable = term.onData(function(d){ if (ws && ws.readyState===1) ws.send(d); }); }
|
|
203
246
|
}
|
|
@@ -224,7 +267,7 @@ function generateCliViewerPage(opts) {
|
|
|
224
267
|
ws = new WebSocket(wsUrl(d.ticket));
|
|
225
268
|
ws.binaryType = 'arraybuffer';
|
|
226
269
|
var dec = new TextDecoder();
|
|
227
|
-
ws.onopen = function(){ setStatus('
|
|
270
|
+
ws.onopen = function(){ setStatus(''); };
|
|
228
271
|
ws.onmessage = function(ev){
|
|
229
272
|
var data = typeof ev.data === 'string' ? ev.data : dec.decode(ev.data, { stream:true });
|
|
230
273
|
term.write(data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-viewer-ui.js","sourceRoot":"","sources":["../../src/ui/cli-viewer-ui.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AA0DH,wDAMC;AAWD,sDA4DC;AASD,
|
|
1
|
+
{"version":3,"file":"cli-viewer-ui.js","sourceRoot":"","sources":["../../src/ui/cli-viewer-ui.ts"],"names":[],"mappings":"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"}
|