xabot-cli 1.4.2

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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +126 -0
  3. package/README.zh-CN.md +126 -0
  4. package/dist/bridge/index.d.ts +93 -0
  5. package/dist/bridge/index.d.ts.map +1 -0
  6. package/dist/bridge/index.js +811 -0
  7. package/dist/bridge/index.js.map +1 -0
  8. package/dist/bridge/input-parser.d.ts +16 -0
  9. package/dist/bridge/input-parser.d.ts.map +1 -0
  10. package/dist/bridge/input-parser.js +20 -0
  11. package/dist/bridge/input-parser.js.map +1 -0
  12. package/dist/cli/chat.d.ts +38 -0
  13. package/dist/cli/chat.d.ts.map +1 -0
  14. package/dist/cli/chat.js +147 -0
  15. package/dist/cli/chat.js.map +1 -0
  16. package/dist/cli/feishu.d.ts +3 -0
  17. package/dist/cli/feishu.d.ts.map +1 -0
  18. package/dist/cli/feishu.js +79 -0
  19. package/dist/cli/feishu.js.map +1 -0
  20. package/dist/cli/health.d.ts +15 -0
  21. package/dist/cli/health.d.ts.map +1 -0
  22. package/dist/cli/health.js +26 -0
  23. package/dist/cli/health.js.map +1 -0
  24. package/dist/cli/index.d.ts +13 -0
  25. package/dist/cli/index.d.ts.map +1 -0
  26. package/dist/cli/index.js +43 -0
  27. package/dist/cli/index.js.map +1 -0
  28. package/dist/cli/run.d.ts +20 -0
  29. package/dist/cli/run.d.ts.map +1 -0
  30. package/dist/cli/run.js +43 -0
  31. package/dist/cli/run.js.map +1 -0
  32. package/dist/cli/wechat.d.ts +3 -0
  33. package/dist/cli/wechat.d.ts.map +1 -0
  34. package/dist/cli/wechat.js +86 -0
  35. package/dist/cli/wechat.js.map +1 -0
  36. package/dist/core/client.d.ts +31 -0
  37. package/dist/core/client.d.ts.map +1 -0
  38. package/dist/core/client.js +2 -0
  39. package/dist/core/client.js.map +1 -0
  40. package/dist/core/error.d.ts +11 -0
  41. package/dist/core/error.d.ts.map +1 -0
  42. package/dist/core/error.js +21 -0
  43. package/dist/core/error.js.map +1 -0
  44. package/dist/core/fs-utils.d.ts +17 -0
  45. package/dist/core/fs-utils.d.ts.map +1 -0
  46. package/dist/core/fs-utils.js +84 -0
  47. package/dist/core/fs-utils.js.map +1 -0
  48. package/dist/core/logger.d.ts +10 -0
  49. package/dist/core/logger.d.ts.map +1 -0
  50. package/dist/core/logger.js +44 -0
  51. package/dist/core/logger.js.map +1 -0
  52. package/dist/core/pairing.d.ts +10 -0
  53. package/dist/core/pairing.d.ts.map +1 -0
  54. package/dist/core/pairing.js +22 -0
  55. package/dist/core/pairing.js.map +1 -0
  56. package/dist/core/types.d.ts +50 -0
  57. package/dist/core/types.d.ts.map +1 -0
  58. package/dist/core/types.js +11 -0
  59. package/dist/core/types.js.map +1 -0
  60. package/dist/index.d.ts +13 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +9 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/platforms/feishu/client.d.ts +49 -0
  65. package/dist/platforms/feishu/client.d.ts.map +1 -0
  66. package/dist/platforms/feishu/client.js +296 -0
  67. package/dist/platforms/feishu/client.js.map +1 -0
  68. package/dist/platforms/feishu/message.d.ts +49 -0
  69. package/dist/platforms/feishu/message.d.ts.map +1 -0
  70. package/dist/platforms/feishu/message.js +131 -0
  71. package/dist/platforms/feishu/message.js.map +1 -0
  72. package/dist/platforms/feishu/upload.d.ts +11 -0
  73. package/dist/platforms/feishu/upload.d.ts.map +1 -0
  74. package/dist/platforms/feishu/upload.js +60 -0
  75. package/dist/platforms/feishu/upload.js.map +1 -0
  76. package/dist/platforms/wechat/client.d.ts +53 -0
  77. package/dist/platforms/wechat/client.d.ts.map +1 -0
  78. package/dist/platforms/wechat/client.js +301 -0
  79. package/dist/platforms/wechat/client.js.map +1 -0
  80. package/dist/platforms/wechat/crypto.d.ts +23 -0
  81. package/dist/platforms/wechat/crypto.d.ts.map +1 -0
  82. package/dist/platforms/wechat/crypto.js +46 -0
  83. package/dist/platforms/wechat/crypto.js.map +1 -0
  84. package/dist/platforms/wechat/login.d.ts +19 -0
  85. package/dist/platforms/wechat/login.d.ts.map +1 -0
  86. package/dist/platforms/wechat/login.js +71 -0
  87. package/dist/platforms/wechat/login.js.map +1 -0
  88. package/dist/platforms/wechat/message.d.ts +102 -0
  89. package/dist/platforms/wechat/message.d.ts.map +1 -0
  90. package/dist/platforms/wechat/message.js +212 -0
  91. package/dist/platforms/wechat/message.js.map +1 -0
  92. package/dist/platforms/wechat/upload.d.ts +10 -0
  93. package/dist/platforms/wechat/upload.d.ts.map +1 -0
  94. package/dist/platforms/wechat/upload.js +86 -0
  95. package/dist/platforms/wechat/upload.js.map +1 -0
  96. package/dist/xacpp/establish-handler.d.ts +58 -0
  97. package/dist/xacpp/establish-handler.d.ts.map +1 -0
  98. package/dist/xacpp/establish-handler.js +152 -0
  99. package/dist/xacpp/establish-handler.js.map +1 -0
  100. package/dist/xacpp/index.d.ts +3 -0
  101. package/dist/xacpp/index.d.ts.map +1 -0
  102. package/dist/xacpp/index.js +3 -0
  103. package/dist/xacpp/index.js.map +1 -0
  104. package/dist/xacpp/initiator-session-handler.d.ts +30 -0
  105. package/dist/xacpp/initiator-session-handler.d.ts.map +1 -0
  106. package/dist/xacpp/initiator-session-handler.js +233 -0
  107. package/dist/xacpp/initiator-session-handler.js.map +1 -0
  108. package/dist/xacpp/session-handler.d.ts +17 -0
  109. package/dist/xacpp/session-handler.d.ts.map +1 -0
  110. package/dist/xacpp/session-handler.js +27 -0
  111. package/dist/xacpp/session-handler.js.map +1 -0
  112. package/dist/xacpp/stdin-router.d.ts +23 -0
  113. package/dist/xacpp/stdin-router.d.ts.map +1 -0
  114. package/dist/xacpp/stdin-router.js +46 -0
  115. package/dist/xacpp/stdin-router.js.map +1 -0
  116. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bridge/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export type ParsedInput = {
2
+ kind: 'new';
3
+ prompt?: string;
4
+ } | {
5
+ kind: 'compact';
6
+ } | {
7
+ kind: 'cancel';
8
+ } | {
9
+ kind: 'unknown_command';
10
+ command: string;
11
+ } | {
12
+ kind: 'invoke';
13
+ text: string;
14
+ };
15
+ export declare function parseInput(text: string): ParsedInput;
16
+ //# sourceMappingURL=input-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-parser.d.ts","sourceRoot":"","sources":["../../src/bridge/input-parser.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAkBpD"}
@@ -0,0 +1,20 @@
1
+ export function parseInput(text) {
2
+ if (text.startsWith('/new')) {
3
+ const prompt = text.slice(4).trim();
4
+ if (prompt) {
5
+ return { kind: 'new', prompt };
6
+ }
7
+ return { kind: 'new' };
8
+ }
9
+ if (text === '/compact') {
10
+ return { kind: 'compact' };
11
+ }
12
+ if (text === '/cancel') {
13
+ return { kind: 'cancel' };
14
+ }
15
+ if (text.startsWith('/')) {
16
+ return { kind: 'unknown_command', command: text };
17
+ }
18
+ return { kind: 'invoke', text };
19
+ }
20
+ //# sourceMappingURL=input-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-parser.js","sourceRoot":"","sources":["../../src/bridge/input-parser.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACjC,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAClC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * chat CLI subcommand.
3
+ *
4
+ * Interactive terminal tool that acts as an XACPP Initiator.
5
+ * Runs both Responder (Bridge + cloud) and Initiator (interactive)
6
+ * in the same process, connected via TCP loopback.
7
+ *
8
+ * Data flow:
9
+ * Feishu message → Bridge → session.requestCommand(invoke_activity) → Initiator.onCommand → terminal
10
+ * Terminal input → Initiator.sendReply → session.requestCommand({ message }) → Bridge.handleCommand → cloud.send → Feishu
11
+ */
12
+ import type { PlatformClient } from '../core/client.js';
13
+ export interface ChatOptions {
14
+ /** Existing session credentials — skips challenge/pairing flow. */
15
+ credentials?: string;
16
+ /** WeChat login function — called when no credentials to trigger QR scan. */
17
+ loginFn?: () => Promise<{
18
+ token: string;
19
+ baseUrl: string;
20
+ }>;
21
+ /** Factory to create a cloud client after login. The returned client replaces the placeholder in Bridge. */
22
+ cloudFactory?: (token: string, baseUrl: string) => Promise<PlatformClient>;
23
+ }
24
+ /**
25
+ * Run the interactive chat session.
26
+ *
27
+ * Architecture:
28
+ * Terminal stdin ←→ Initiator Peer (SocketTransport client)
29
+ * ↕ TCP 127.0.0.1:random
30
+ * Responder Peer (SocketTransport server)
31
+ * ↕
32
+ * Bridge ←→ Cloud PlatformClient
33
+ *
34
+ * @param cloud - A connected PlatformClient.
35
+ * @param options - Optional credentials/login/cloudFactory.
36
+ */
37
+ export declare function chat(cloud?: PlatformClient, options?: ChatOptions): Promise<void>;
38
+ //# sourceMappingURL=chat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/cli/chat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWxD,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,4GAA4G;IAC5G,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAC5E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0IvF"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * chat CLI subcommand.
3
+ *
4
+ * Interactive terminal tool that acts as an XACPP Initiator.
5
+ * Runs both Responder (Bridge + cloud) and Initiator (interactive)
6
+ * in the same process, connected via TCP loopback.
7
+ *
8
+ * Data flow:
9
+ * Feishu message → Bridge → session.requestCommand(invoke_activity) → Initiator.onCommand → terminal
10
+ * Terminal input → Initiator.sendReply → session.requestCommand({ message }) → Bridge.handleCommand → cloud.send → Feishu
11
+ */
12
+ import { XacppPeer, XacppSession, SocketTransport } from 'xacpp';
13
+ import * as net from 'node:net';
14
+ import { Bridge } from '../bridge/index.js';
15
+ import { XabotEstablishHandler } from '../xacpp/establish-handler.js';
16
+ import { InitiatorSessionHandler } from '../xacpp/initiator-session-handler.js';
17
+ import { StdinRouter } from '../xacpp/stdin-router.js';
18
+ import { createLogger } from '../core/logger.js';
19
+ const log = createLogger('chat');
20
+ /**
21
+ * Run the interactive chat session.
22
+ *
23
+ * Architecture:
24
+ * Terminal stdin ←→ Initiator Peer (SocketTransport client)
25
+ * ↕ TCP 127.0.0.1:random
26
+ * Responder Peer (SocketTransport server)
27
+ * ↕
28
+ * Bridge ←→ Cloud PlatformClient
29
+ *
30
+ * @param cloud - A connected PlatformClient.
31
+ * @param options - Optional credentials/login/cloudFactory.
32
+ */
33
+ export async function chat(cloud, options) {
34
+ log.info('starting...');
35
+ // ── Step 1: Start TCP server on a random port ──────────────────────────
36
+ log.debug('creating TCP server...');
37
+ const { port, accept } = await new Promise((resolve, reject) => {
38
+ const server = net.createServer();
39
+ server.listen(0, '127.0.0.1', () => {
40
+ const addr = server.address();
41
+ const acceptPromise = new Promise((res) => {
42
+ server.on('connection', (socket) => {
43
+ server.close(); // Only accept one connection
44
+ res(socket);
45
+ });
46
+ });
47
+ resolve({ port: addr.port, accept: acceptPromise });
48
+ });
49
+ server.on('error', reject);
50
+ });
51
+ log.info('TCP server listening on 127.0.0.1:%d', port);
52
+ // ── Step 2: Fire Initiator TCP connect (non-blocking) ─────────────────
53
+ // SocketTransport.connectTo() only stores params — the actual TCP
54
+ // connection happens inside transport.connect(), called by peer.connect().
55
+ // We must fire peer.connect() BEFORE await accept, otherwise the TCP
56
+ // server never receives a connection and both sides deadlock.
57
+ log.debug('initiating TCP connection from Initiator side...');
58
+ const initiatorTransport = SocketTransport.connectTo(port);
59
+ const dummyEstablishHandler = {
60
+ async onEstablish() { throw new Error('Initiator does not accept inbound establish'); },
61
+ async onEstablishConfirm() { throw new Error('Unexpected establish_confirm on Initiator'); },
62
+ };
63
+ const initiatorPeer = new XacppPeer(initiatorTransport, dummyEstablishHandler);
64
+ const router = new StdinRouter(process.stdin);
65
+ const initiatorHandler = new InitiatorSessionHandler(router);
66
+ // Fire-and-forget: peer.connect() internally calls transport.connect()
67
+ // which opens the TCP socket. The server will see the connection and
68
+ // resolve the accept promise.
69
+ const initiatorConnectPromise = initiatorPeer.connect();
70
+ // ── Step 3: Start Bridge (Responder side) ──────────────────────────────
71
+ log.debug('waiting for TCP accept (Responder side)...');
72
+ const responderTransport = new SocketTransport(await accept);
73
+ log.info('TCP connection accepted');
74
+ const establishHandler = new XabotEstablishHandler();
75
+ const responderPeer = new XacppPeer(responderTransport, establishHandler);
76
+ const bridge = new Bridge(responderTransport, cloud ? { cloud } : undefined);
77
+ establishHandler.setBridge(bridge);
78
+ bridge.setEstablishHandler(establishHandler);
79
+ if (options?.loginFn) {
80
+ establishHandler.setLoginFn(options.loginFn);
81
+ }
82
+ if (options?.cloudFactory) {
83
+ establishHandler.setEnsureCloudFn(async (token, baseUrl) => {
84
+ const client = await options.cloudFactory(token, baseUrl);
85
+ bridge.replaceCloud(client);
86
+ });
87
+ }
88
+ establishHandler.onEstablished((_t, sessionId, credentials) => {
89
+ const session = new XacppSession(responderTransport, sessionId, credentials);
90
+ bridge.setSession(session);
91
+ bridge.markEstablished();
92
+ log.info('establish completed, sessionId=%s, chatId=%s', sessionId, credentials);
93
+ });
94
+ // Start Bridge.run() in the background so Phase 1 can scan cloud messages.
95
+ bridge.run();
96
+ log.debug('connecting Responder peer...');
97
+ await responderPeer.connect();
98
+ log.info('Responder peer connected');
99
+ // ── Step 4: Await Initiator connect (TCP already initiated in Step 2) ──
100
+ log.debug('awaiting Initiator peer connect...');
101
+ await initiatorConnectPromise;
102
+ log.info('Initiator peer connected');
103
+ // ── Step 5: Establish (challenge or credentials) ───────────────────────
104
+ let session;
105
+ const credentials = options?.credentials;
106
+ if (credentials) {
107
+ log.info('Reconnecting with credentials: %s', credentials);
108
+ log.debug('calling initiatorPeer.establish() with credentials...');
109
+ session = await initiatorPeer.establish(credentials, initiatorHandler, () => { });
110
+ const chatId = session.credentials;
111
+ log.info('Re-established, chatId: %s', chatId);
112
+ }
113
+ else {
114
+ const challenge = crypto.randomUUID();
115
+ log.info('Pairing code: %s', challenge);
116
+ log.info('Send this code to the bot via Feishu/WeChat.');
117
+ log.debug('calling initiatorPeer.establish()...');
118
+ session = await initiatorPeer.establish(undefined, initiatorHandler, (received) => {
119
+ log.debug('challenge verify: expected=%s, received=%s', challenge, received);
120
+ if (received !== challenge) {
121
+ throw new Error(`Challenge mismatch: expected ${challenge}, got ${received}`);
122
+ }
123
+ });
124
+ const chatId = session.credentials;
125
+ log.info('Connected! chatId: %s', chatId);
126
+ }
127
+ log.info('Ready. Type a message and press Enter, or wait for Feishu/WeChat messages.');
128
+ router.subscribe('default', (text) => {
129
+ return initiatorHandler.sendReply(session, text).catch((err) => {
130
+ log.error('Send failed: %s', err instanceof Error ? err.message : String(err));
131
+ });
132
+ });
133
+ // ── Step 6: Chat loop ──────────────────────────────────────────────────
134
+ // No new_activity here — the Responder (Bridge) creates activities when
135
+ // cloud messages arrive, routing them via requestCommand → Initiator.onCommand.
136
+ // Terminal replies go via Initiator.sendReply → requestCommand({ message }) → Bridge.handleCommand → cloud.
137
+ try {
138
+ await router.start();
139
+ }
140
+ finally {
141
+ router.close();
142
+ await initiatorPeer.disconnect();
143
+ await responderPeer.disconnect();
144
+ await bridge.close();
145
+ }
146
+ }
147
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/cli/chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerFeishu(program: Command): void;
3
+ //# sourceMappingURL=feishu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu.d.ts","sourceRoot":"","sources":["../../src/cli/feishu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAkB5C,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2ErD"}
@@ -0,0 +1,79 @@
1
+ import { Command, Option } from 'commander';
2
+ import { FeishuClient } from '../platforms/feishu/client.js';
3
+ import { health } from './health.js';
4
+ import { run } from './run.js';
5
+ import { chat } from './chat.js';
6
+ import { createLogger, setLevel } from '../core/logger.js';
7
+ import { XabotEstablishHandler } from '../xacpp/establish-handler.js';
8
+ import { XacppPeer, XacppSession, StdioTransport } from 'xacpp';
9
+ import { Bridge } from '../bridge/index.js';
10
+ const log = createLogger('feishu');
11
+ function createFeishuClient(appId, appSecret, logLevel) {
12
+ const cfg = { appId, appSecret };
13
+ if (logLevel)
14
+ cfg.logLevel = logLevel;
15
+ return new FeishuClient(cfg);
16
+ }
17
+ export function registerFeishu(program) {
18
+ const feishu = program
19
+ .command('feishu')
20
+ .description('Feishu (Lark) platform commands')
21
+ .addOption(new Option('--app-id <id>', 'Feishu App ID').makeOptionMandatory(true))
22
+ .addOption(new Option('--app-secret <secret>', 'Feishu App Secret').makeOptionMandatory(true))
23
+ .addOption(new Option('--log-level <level>', 'Log level').choices(['info', 'debug', 'trace']).default('info'));
24
+ feishu
25
+ .command('health')
26
+ .description('Verify credentials and connection health')
27
+ .action(async () => {
28
+ const { appId, appSecret, logLevel } = feishu.opts();
29
+ setLevel(logLevel);
30
+ const client = createFeishuClient(appId, appSecret, logLevel);
31
+ await client.connect();
32
+ await health(client);
33
+ await client.close();
34
+ });
35
+ feishu
36
+ .command('run')
37
+ .option('--verbose', 'Enable verbose mode (show thinking/tool indicators)')
38
+ .description('Start Bridge mode with SIGINT/SIGTERM graceful shutdown')
39
+ .action(async () => {
40
+ const { appId, appSecret, logLevel, verbose } = feishu.opts();
41
+ setLevel(logLevel);
42
+ const mask = (s, head, tail) => s.length <= head + tail ? '****' : `${s.slice(0, head)}****${s.slice(-tail)}`;
43
+ log.info('run starting | app_id=%s | app_secret=%s | node=%s | platform=%s | cwd=%s | pid=%d', mask(appId, 4, 4), mask(appSecret, 2, 2), process.version, process.platform, process.cwd(), process.pid);
44
+ const cloud = createFeishuClient(appId, appSecret, logLevel);
45
+ await cloud.connect();
46
+ log.info('cloud connected');
47
+ const transport = new StdioTransport(process.stdout, process.stdin);
48
+ const establishHandler = new XabotEstablishHandler();
49
+ const peer = new XacppPeer(transport, establishHandler);
50
+ const bridge = new Bridge(transport, { cloud, verbose: verbose ?? false });
51
+ establishHandler.setBridge(bridge);
52
+ bridge.setEstablishHandler(establishHandler);
53
+ establishHandler.onEstablished((_t, sessionId, credentials) => {
54
+ const session = new XacppSession(transport, sessionId, credentials);
55
+ bridge.setSession(session);
56
+ bridge.markEstablished();
57
+ });
58
+ bridge.run();
59
+ await peer.connect();
60
+ log.info('xacpp peer connected, entering bridge loop');
61
+ await run(bridge, peer);
62
+ });
63
+ feishu
64
+ .command('chat')
65
+ .option('--credentials <credentials>', 'Reuse existing session credentials (skip challenge)')
66
+ .description('Interactive chat: Establish handshake + bidirectional messaging with Agent')
67
+ .action(async (opts) => {
68
+ const { appId, appSecret, logLevel } = feishu.opts();
69
+ setLevel(logLevel);
70
+ const cloud = createFeishuClient(appId, appSecret, logLevel);
71
+ await cloud.connect();
72
+ const chatOpts = {};
73
+ if (opts.credentials) {
74
+ chatOpts.credentials = opts.credentials;
75
+ }
76
+ await chat(cloud, chatOpts);
77
+ });
78
+ }
79
+ //# sourceMappingURL=feishu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feishu.js","sourceRoot":"","sources":["../../src/cli/feishu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * health CLI subcommand.
3
+ *
4
+ * Verifies that the platform client can connect and authenticate,
5
+ * then checks that credentials are valid by calling healthCheck().
6
+ */
7
+ import type { PlatformClient } from '../core/client.js';
8
+ /**
9
+ * Check the health of a connected PlatformClient.
10
+ *
11
+ * @param client - A connected PlatformClient.
12
+ * @throws If the client fails to respond correctly.
13
+ */
14
+ export declare function health(client: PlatformClient): Promise<void>;
15
+ //# sourceMappingURL=health.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;;;;GAKG;AACH,wBAAsB,MAAM,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAUlE"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * health CLI subcommand.
3
+ *
4
+ * Verifies that the platform client can connect and authenticate,
5
+ * then checks that credentials are valid by calling healthCheck().
6
+ */
7
+ import { createLogger } from '../core/logger.js';
8
+ const log = createLogger('health');
9
+ /**
10
+ * Check the health of a connected PlatformClient.
11
+ *
12
+ * @param client - A connected PlatformClient.
13
+ * @throws If the client fails to respond correctly.
14
+ */
15
+ export async function health(client) {
16
+ try {
17
+ await client.healthCheck();
18
+ }
19
+ catch (err) {
20
+ const msg = err instanceof Error ? err.message : String(err);
21
+ log.error('Health check failed: %s', msg);
22
+ throw err;
23
+ }
24
+ log.info('health: status=ok platform=%s', client.platform);
25
+ }
26
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/cli/health.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,MAAsB;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;QAC1C,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC7D,CAAC"}
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * xabot-cli CLI entry point.
4
+ *
5
+ * Usage:
6
+ * npx xabot-cli <platform> [platform-options] <action> [action-options]
7
+ *
8
+ * Platforms:
9
+ * feishu Feishu (Lark) platform commands
10
+ * wechat WeChat (iLink Bot) platform commands
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG"}
@@ -0,0 +1,43 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * xabot-cli CLI entry point.
4
+ *
5
+ * Usage:
6
+ * npx xabot-cli <platform> [platform-options] <action> [action-options]
7
+ *
8
+ * Platforms:
9
+ * feishu Feishu (Lark) platform commands
10
+ * wechat WeChat (iLink Bot) platform commands
11
+ */
12
+ import { Command } from 'commander';
13
+ import { readFileSync } from 'node:fs';
14
+ import { registerFeishu } from './feishu.js';
15
+ import { registerWechat } from './wechat.js';
16
+ import { createLogger } from '../core/logger.js';
17
+ const log = createLogger('xabot-cli');
18
+ const program = new Command();
19
+ const pkg = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
20
+ program.version(pkg.version);
21
+ program
22
+ .name('xabot-cli')
23
+ .description(`xabot-cli — bot bridge CLI
24
+
25
+ Platform subcommands:
26
+ feishu Feishu (Lark) platform commands
27
+ wechat WeChat (iLink Bot) platform commands`)
28
+ .addHelpText('after', `Examples:
29
+ xabot-cli feishu --app-id cli --app-secret secret health
30
+ xabot-cli feishu --app-id cli --app-secret secret run
31
+ xabot-cli feishu --app-id cli --app-secret secret chat
32
+
33
+ xabot-cli wechat health --token ilinkbot_xxx
34
+ xabot-cli wechat run
35
+ xabot-cli wechat chat`);
36
+ registerFeishu(program);
37
+ registerWechat(program);
38
+ program.parseAsync(process.argv).then(() => process.exit(0), (err) => {
39
+ const msg = err instanceof Error ? err.message : String(err);
40
+ log.error('fatal: %s', msg);
41
+ process.exit(1);
42
+ });
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC9F,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAE7B,OAAO;KACJ,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC;;;;iDAIkC,CAAC;KAC/C,WAAW,CACV,OAAO,EACP;;;;;;;wBAOoB,CACrB,CAAC;AAEJ,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AAExB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CACnC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,CAAC,GAAG,EAAE,EAAE;IACN,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7D,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CACF,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * run CLI subcommand.
3
+ *
4
+ * Starts the full Bridge mode:
5
+ * - Connects the cloud PlatformClient.
6
+ * - Establishes XACPP peer over stdin/stdout.
7
+ * - Runs the Bridge bidirectional message loop.
8
+ *
9
+ * Handles SIGINT and SIGTERM gracefully, then exits cleanly.
10
+ */
11
+ import type { Bridge } from '../bridge/index.js';
12
+ import type { XacppPeer } from 'xacpp';
13
+ /**
14
+ * Start Bridge mode with graceful shutdown on SIGINT/SIGTERM.
15
+ *
16
+ * @param bridge - A Bridge instance wired to cloud and transport.
17
+ * @param peer - A connected XacppPeer.
18
+ */
19
+ export declare function run(bridge: Bridge, peer: XacppPeer): Promise<void>;
20
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC;;;;;GAKG;AACH,wBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxE"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * run CLI subcommand.
3
+ *
4
+ * Starts the full Bridge mode:
5
+ * - Connects the cloud PlatformClient.
6
+ * - Establishes XACPP peer over stdin/stdout.
7
+ * - Runs the Bridge bidirectional message loop.
8
+ *
9
+ * Handles SIGINT and SIGTERM gracefully, then exits cleanly.
10
+ */
11
+ import { createLogger } from '../core/logger.js';
12
+ const log = createLogger('run');
13
+ /**
14
+ * Start Bridge mode with graceful shutdown on SIGINT/SIGTERM.
15
+ *
16
+ * @param bridge - A Bridge instance wired to cloud and transport.
17
+ * @param peer - A connected XacppPeer.
18
+ */
19
+ export async function run(bridge, peer) {
20
+ // Track shutdown so we only close once.
21
+ let closed = false;
22
+ const doClose = async () => {
23
+ if (closed)
24
+ return;
25
+ closed = true;
26
+ log.info('Shutting down Bridge...');
27
+ await bridge.close();
28
+ await peer.disconnect();
29
+ log.info('Bridge closed, exiting.');
30
+ };
31
+ // Wire up termination signals.
32
+ const onSignal = (label) => {
33
+ log.info('Received %s, starting graceful shutdown', label);
34
+ void doClose().then(() => process.exit(0));
35
+ };
36
+ process.on('SIGINT', () => onSignal('SIGINT'));
37
+ process.on('SIGTERM', () => onSignal('SIGTERM'));
38
+ log.info('Bridge mode started');
39
+ await bridge.run();
40
+ // Bridge.run() only resolves when the loops end (or close() was called).
41
+ await doClose();
42
+ }
43
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/cli/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,MAAc,EAAE,IAAe;IACvD,wCAAwC;IACxC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,IAAI,MAAM;YAAE,OAAO;QACnB,MAAM,GAAG,IAAI,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QACpC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,+BAA+B;IAC/B,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,EAAE;QACjC,GAAG,CAAC,IAAI,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;QAC3D,KAAK,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IAEjD,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAEhC,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;IACnB,yEAAyE;IACzE,MAAM,OAAO,EAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerWechat(program: Command): void;
3
+ //# sourceMappingURL=wechat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wechat.d.ts","sourceRoot":"","sources":["../../src/cli/wechat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAU5C,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgFrD"}