@0xmaxma/claude-gateway 1.3.4 → 1.3.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.
- package/README.md +1 -1
- package/dist/agent/runner.d.ts +20 -0
- package/dist/agent/runner.d.ts.map +1 -1
- package/dist/agent/runner.js +94 -1
- package/dist/agent/runner.js.map +1 -1
- package/dist/api/gateway-router.d.ts +10 -0
- package/dist/api/gateway-router.d.ts.map +1 -1
- package/dist/api/gateway-router.js +261 -7
- package/dist/api/gateway-router.js.map +1 -1
- package/dist/session/process.d.ts +8 -0
- package/dist/session/process.d.ts.map +1 -1
- package/dist/session/process.js +28 -0
- package/dist/session/process.js.map +1 -1
- package/dist/shell/claude-pty-shell.js +211 -4
- package/dist/shell/claude-pty-shell.js.map +1 -1
- package/dist/shell/emitter.d.ts +13 -0
- package/dist/shell/emitter.d.ts.map +1 -1
- package/dist/shell/emitter.js +16 -0
- package/dist/shell/emitter.js.map +1 -1
- package/dist/shell/menu-cancel.d.ts +50 -0
- package/dist/shell/menu-cancel.d.ts.map +1 -0
- package/dist/shell/menu-cancel.js +62 -0
- package/dist/shell/menu-cancel.js.map +1 -0
- package/dist/shell/pty-serialize.d.ts +23 -0
- package/dist/shell/pty-serialize.d.ts.map +1 -0
- package/dist/shell/pty-serialize.js +131 -0
- package/dist/shell/pty-serialize.js.map +1 -0
- package/dist/shell/pty-stream-registry.d.ts +59 -0
- package/dist/shell/pty-stream-registry.d.ts.map +1 -0
- package/dist/shell/pty-stream-registry.js +279 -0
- package/dist/shell/pty-stream-registry.js.map +1 -0
- package/dist/shell/screen.d.ts +43 -0
- package/dist/shell/screen.d.ts.map +1 -1
- package/dist/shell/screen.js +91 -1
- package/dist/shell/screen.js.map +1 -1
- package/dist/ui/web-ui.d.ts +2 -2
- package/dist/ui/web-ui.d.ts.map +1 -1
- package/dist/ui/web-ui.js +615 -114
- package/dist/ui/web-ui.js.map +1 -1
- package/mcp/tools/discord/module.ts +88 -1
- package/mcp/tools/discord/outbound.ts +36 -0
- package/mcp/tools/discord/types.ts +2 -0
- package/mcp/tools/telegram/menu-parser.ts +37 -0
- package/mcp/tools/telegram/receiver-server.ts +83 -0
- package/mcp/tools/telegram/typing.ts +7 -1
- package/package.json +4 -2
package/dist/shell/screen.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export type DialogKind = 'bypass-permissions';
|
|
2
|
+
/** One selectable row in an interactive TUI menu (AskUserQuestion / plan approval). */
|
|
3
|
+
export interface MenuOption {
|
|
4
|
+
/** 1-based number as shown in the TUI. */
|
|
5
|
+
index: number;
|
|
6
|
+
/** Human-readable label (first line only; sub-descriptions are ignored). */
|
|
7
|
+
label: string;
|
|
8
|
+
}
|
|
2
9
|
/**
|
|
3
10
|
* TUI string constants — verified against Claude Code v2.1.x.
|
|
4
11
|
* When upgrading Claude Code, re-check each constant against the new TUI output.
|
|
@@ -11,6 +18,31 @@ export type DialogKind = 'bypass-permissions';
|
|
|
11
18
|
export declare const TUI_BUSY_MARKER = "esc to interrupt";
|
|
12
19
|
export declare const TUI_PROMPT_RE: RegExp;
|
|
13
20
|
export declare const TUI_BYPASS_PERMS: readonly ["Bypass Permissions mode", "Yes, I accept"];
|
|
21
|
+
/**
|
|
22
|
+
* Interactive select-menu footer markers (e.g. AskUserQuestion). The footer reads
|
|
23
|
+
* "Enter to select · ↑/↓ to navigate · Esc to cancel"; we match on the two stable
|
|
24
|
+
* fragments so spacing/middle-dot variations across TUI versions don't break it.
|
|
25
|
+
*/
|
|
26
|
+
export declare const TUI_MENU_FOOTER: readonly ["to navigate", "to cancel"];
|
|
27
|
+
/** A numbered option row, with an optional leading ❯/> highlight marker. */
|
|
28
|
+
export declare const TUI_MENU_OPTION_RE: RegExp;
|
|
29
|
+
/**
|
|
30
|
+
* Parse a user's menu reply (typed number or a button's choice payload) into a
|
|
31
|
+
* 1-based option index. Returns null for anything that isn't a leading integer
|
|
32
|
+
* within [1, count] — never trust chat input to be a valid selection.
|
|
33
|
+
*/
|
|
34
|
+
export declare function parseMenuChoice(text: string, count: number): number | null;
|
|
35
|
+
/**
|
|
36
|
+
* Channel turns reach the wrapper wrapped in a <channel …>…</channel> envelope
|
|
37
|
+
* (see AgentRunner.buildChannelXml) — even a one-character menu reply like "1"
|
|
38
|
+
* arrives as `<channel source="telegram" …>1</channel>`. To interpret a menu
|
|
39
|
+
* selection we need the user's actual text, not the envelope, so pull out the
|
|
40
|
+
* inner content and drop any nested <replied> block. Returns the input
|
|
41
|
+
* unchanged when it is not a channel envelope (e.g. a raw API/typed reply).
|
|
42
|
+
*/
|
|
43
|
+
export declare function extractChannelContent(text: string): string;
|
|
44
|
+
/** Build the chat-facing menu prompt (also the API/number fallback text). */
|
|
45
|
+
export declare function formatMenuPrompt(options: MenuOption[]): string;
|
|
14
46
|
/**
|
|
15
47
|
* Virtual terminal fed with raw PTY bytes. Used ONLY for liveness signals
|
|
16
48
|
* (busy / idle / dialog detection) — assistant text is never parsed from
|
|
@@ -35,5 +67,16 @@ export declare class ScreenModel {
|
|
|
35
67
|
/** Idle input prompt is on screen. */
|
|
36
68
|
hasPrompt(): boolean;
|
|
37
69
|
detectDialog(): DialogKind | null;
|
|
70
|
+
/**
|
|
71
|
+
* Detect an interactive select menu blocking on keyboard input (e.g. the
|
|
72
|
+
* AskUserQuestion / plan-approval prompt) and parse its numbered options.
|
|
73
|
+
* Returns the options in display order, or null when no menu is on screen.
|
|
74
|
+
*
|
|
75
|
+
* Requires the select-menu footer AND at least two numbered rows — ordinary
|
|
76
|
+
* numbered lists in assistant output never carry the footer, so this won't
|
|
77
|
+
* false-positive on them. The bypass-permissions dialog also matches the
|
|
78
|
+
* footer; callers must check detectDialog() first and let it auto-accept.
|
|
79
|
+
*/
|
|
80
|
+
detectMenu(): MenuOption[] | null;
|
|
38
81
|
}
|
|
39
82
|
//# sourceMappingURL=screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/shell/screen.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/shell/screen.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAE9C,uFAAuF;AACvF,MAAM,WAAW,UAAU;IACzB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,4EAA4E;IAC5E,KAAK,EAAE,MAAM,CAAC;CACf;AAOD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAClD,eAAO,MAAM,aAAa,QAAS,CAAC;AACpC,eAAO,MAAM,gBAAgB,uDAAwD,CAAC;AAEtF;;;;GAIG;AACH,eAAO,MAAM,eAAe,uCAAwC,CAAC;AACrE,4EAA4E;AAC5E,eAAO,MAAM,kBAAkB,QAAoC,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAK1E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,MAAM,CAG9D;AAED;;;;GAIG;AACH,qBAAa,WAAW;aAMM,IAAI;aAAwB,IAAI;IAL5D,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,UAAU,CAAc;IAChC,kGAAkG;IAClG,OAAO,CAAC,aAAa,CAAS;gBAEF,IAAI,SAAM,EAAkB,IAAI,SAAK;IAIjE,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAMzB,uDAAuD;IACvD,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAUd,2EAA2E;IAC3E,MAAM,IAAI,OAAO;IAIjB,qFAAqF;IACrF,eAAe,IAAI,OAAO;IAM1B,sCAAsC;IACtC,SAAS,IAAI,OAAO;IAIpB,YAAY,IAAI,UAAU,GAAG,IAAI;IAQjC;;;;;;;;;OASG;IACH,UAAU,IAAI,UAAU,EAAE,GAAG,IAAI;CAmClC"}
|
package/dist/shell/screen.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ScreenModel = exports.TUI_BYPASS_PERMS = exports.TUI_PROMPT_RE = exports.TUI_BUSY_MARKER = void 0;
|
|
3
|
+
exports.ScreenModel = exports.TUI_MENU_OPTION_RE = exports.TUI_MENU_FOOTER = exports.TUI_BYPASS_PERMS = exports.TUI_PROMPT_RE = exports.TUI_BUSY_MARKER = void 0;
|
|
4
|
+
exports.parseMenuChoice = parseMenuChoice;
|
|
5
|
+
exports.extractChannelContent = extractChannelContent;
|
|
6
|
+
exports.formatMenuPrompt = formatMenuPrompt;
|
|
4
7
|
const headless_1 = require("@xterm/headless");
|
|
5
8
|
/** The TUI renders spaces as U+00A0 (non-breaking) — normalize before matching. */
|
|
6
9
|
function normalize(text) {
|
|
@@ -18,6 +21,45 @@ function normalize(text) {
|
|
|
18
21
|
exports.TUI_BUSY_MARKER = 'esc to interrupt';
|
|
19
22
|
exports.TUI_PROMPT_RE = /^❯ /m;
|
|
20
23
|
exports.TUI_BYPASS_PERMS = ['Bypass Permissions mode', 'Yes, I accept'];
|
|
24
|
+
/**
|
|
25
|
+
* Interactive select-menu footer markers (e.g. AskUserQuestion). The footer reads
|
|
26
|
+
* "Enter to select · ↑/↓ to navigate · Esc to cancel"; we match on the two stable
|
|
27
|
+
* fragments so spacing/middle-dot variations across TUI versions don't break it.
|
|
28
|
+
*/
|
|
29
|
+
exports.TUI_MENU_FOOTER = ['to navigate', 'to cancel'];
|
|
30
|
+
/** A numbered option row, with an optional leading ❯/> highlight marker. */
|
|
31
|
+
exports.TUI_MENU_OPTION_RE = /^\s*[❯>]?\s*(\d+)\.\s+(.+?)\s*$/;
|
|
32
|
+
/**
|
|
33
|
+
* Parse a user's menu reply (typed number or a button's choice payload) into a
|
|
34
|
+
* 1-based option index. Returns null for anything that isn't a leading integer
|
|
35
|
+
* within [1, count] — never trust chat input to be a valid selection.
|
|
36
|
+
*/
|
|
37
|
+
function parseMenuChoice(text, count) {
|
|
38
|
+
const m = /^\s*(\d+)/.exec(text);
|
|
39
|
+
if (!m)
|
|
40
|
+
return null;
|
|
41
|
+
const n = Number(m[1]);
|
|
42
|
+
return Number.isInteger(n) && n >= 1 && n <= count ? n : null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Channel turns reach the wrapper wrapped in a <channel …>…</channel> envelope
|
|
46
|
+
* (see AgentRunner.buildChannelXml) — even a one-character menu reply like "1"
|
|
47
|
+
* arrives as `<channel source="telegram" …>1</channel>`. To interpret a menu
|
|
48
|
+
* selection we need the user's actual text, not the envelope, so pull out the
|
|
49
|
+
* inner content and drop any nested <replied> block. Returns the input
|
|
50
|
+
* unchanged when it is not a channel envelope (e.g. a raw API/typed reply).
|
|
51
|
+
*/
|
|
52
|
+
function extractChannelContent(text) {
|
|
53
|
+
const m = /<channel\b[^>]*>([\s\S]*)<\/channel>/.exec(text);
|
|
54
|
+
if (!m)
|
|
55
|
+
return text;
|
|
56
|
+
return m[1].replace(/<replied\b[^>]*>[\s\S]*?<\/replied>/g, '').trim();
|
|
57
|
+
}
|
|
58
|
+
/** Build the chat-facing menu prompt (also the API/number fallback text). */
|
|
59
|
+
function formatMenuPrompt(options) {
|
|
60
|
+
const lines = options.map((o, i) => `${i + 1}. ${o.label}`).join('\n');
|
|
61
|
+
return `🔢 Choose an option — tap a button below, or reply with the number:\n\n${lines}`;
|
|
62
|
+
}
|
|
21
63
|
/**
|
|
22
64
|
* Virtual terminal fed with raw PTY bytes. Used ONLY for liveness signals
|
|
23
65
|
* (busy / idle / dialog detection) — assistant text is never parsed from
|
|
@@ -72,6 +114,54 @@ class ScreenModel {
|
|
|
72
114
|
}
|
|
73
115
|
return null;
|
|
74
116
|
}
|
|
117
|
+
/**
|
|
118
|
+
* Detect an interactive select menu blocking on keyboard input (e.g. the
|
|
119
|
+
* AskUserQuestion / plan-approval prompt) and parse its numbered options.
|
|
120
|
+
* Returns the options in display order, or null when no menu is on screen.
|
|
121
|
+
*
|
|
122
|
+
* Requires the select-menu footer AND at least two numbered rows — ordinary
|
|
123
|
+
* numbered lists in assistant output never carry the footer, so this won't
|
|
124
|
+
* false-positive on them. The bypass-permissions dialog also matches the
|
|
125
|
+
* footer; callers must check detectDialog() first and let it auto-accept.
|
|
126
|
+
*/
|
|
127
|
+
detectMenu() {
|
|
128
|
+
const text = this.text();
|
|
129
|
+
if (!exports.TUI_MENU_FOOTER.every((s) => text.includes(s)))
|
|
130
|
+
return null;
|
|
131
|
+
// Scan only the region ABOVE the footer — the live menu's options always
|
|
132
|
+
// sit between the question and the "to navigate · to cancel" footer.
|
|
133
|
+
const lines = text.split('\n');
|
|
134
|
+
const footerIdx = lines.findIndex((l) => exports.TUI_MENU_FOOTER.some((s) => l.includes(s)));
|
|
135
|
+
const region = footerIdx >= 0 ? lines.slice(0, footerIdx) : lines;
|
|
136
|
+
const matches = [];
|
|
137
|
+
for (const line of region) {
|
|
138
|
+
const m = exports.TUI_MENU_OPTION_RE.exec(line);
|
|
139
|
+
if (m)
|
|
140
|
+
matches.push({ index: Number(m[1]), label: m[2].trim() });
|
|
141
|
+
}
|
|
142
|
+
if (matches.length < 2)
|
|
143
|
+
return null;
|
|
144
|
+
// Scrollback above the menu can contain stale numbered lines (e.g. a prior
|
|
145
|
+
// chat message rendered as "1. … 2. …"). The real select menu always numbers
|
|
146
|
+
// its options 1..N in order, so take the LAST run that starts at "1." and
|
|
147
|
+
// increments by one — that is the live menu nearest the footer, not history.
|
|
148
|
+
// This run's position is what selectMenuOption() types into the TUI, so it
|
|
149
|
+
// MUST mirror the on-screen numbering exactly.
|
|
150
|
+
let start = -1;
|
|
151
|
+
for (let i = 0; i < matches.length; i++) {
|
|
152
|
+
if (matches[i].index === 1)
|
|
153
|
+
start = i;
|
|
154
|
+
}
|
|
155
|
+
if (start === -1)
|
|
156
|
+
return null;
|
|
157
|
+
const run = [];
|
|
158
|
+
let expected = 1;
|
|
159
|
+
for (let i = start; i < matches.length && matches[i].index === expected; i++) {
|
|
160
|
+
run.push(matches[i]);
|
|
161
|
+
expected++;
|
|
162
|
+
}
|
|
163
|
+
return run.length >= 2 ? run : null;
|
|
164
|
+
}
|
|
75
165
|
}
|
|
76
166
|
exports.ScreenModel = ScreenModel;
|
|
77
167
|
//# sourceMappingURL=screen.js.map
|
package/dist/shell/screen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/shell/screen.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"screen.js","sourceRoot":"","sources":["../../src/shell/screen.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/web-ui.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generates a self-contained HTML dashboard page for the gateway status UI.
|
|
3
|
-
* No external dependencies
|
|
3
|
+
* No external dependencies except xterm.js CDN for PTY viewer.
|
|
4
4
|
*/
|
|
5
|
-
export declare function generateDashboardHtml(): string;
|
|
5
|
+
export declare function generateDashboardHtml(dashToken?: string): string;
|
|
6
6
|
//# sourceMappingURL=web-ui.d.ts.map
|
package/dist/ui/web-ui.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"web-ui.d.ts","sourceRoot":"","sources":["../../src/ui/web-ui.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,SAAK,GAAG,MAAM,CA+sB5D"}
|