paean 0.8.34 → 0.9.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.
Files changed (48) hide show
  1. package/dist/api/apikey.d.ts +39 -0
  2. package/dist/api/apikey.d.ts.map +1 -0
  3. package/dist/api/apikey.js +58 -0
  4. package/dist/api/apikey.js.map +1 -0
  5. package/dist/cli.js +7 -1
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/a8e.d.ts +7 -0
  8. package/dist/commands/a8e.d.ts.map +1 -0
  9. package/dist/commands/a8e.js +232 -0
  10. package/dist/commands/a8e.js.map +1 -0
  11. package/dist/commands/agent.d.ts +1 -0
  12. package/dist/commands/agent.d.ts.map +1 -1
  13. package/dist/commands/agent.js +18 -0
  14. package/dist/commands/agent.js.map +1 -1
  15. package/dist/commands/wechat.d.ts +7 -0
  16. package/dist/commands/wechat.d.ts.map +1 -0
  17. package/dist/commands/wechat.js +110 -0
  18. package/dist/commands/wechat.js.map +1 -0
  19. package/dist/mcp/cli-agent-tools.d.ts.map +1 -1
  20. package/dist/mcp/cli-agent-tools.js +97 -3
  21. package/dist/mcp/cli-agent-tools.js.map +1 -1
  22. package/dist/mcp/cron.d.ts.map +1 -1
  23. package/dist/mcp/cron.js +2 -1
  24. package/dist/mcp/cron.js.map +1 -1
  25. package/dist/mcp/worker-tools.d.ts.map +1 -1
  26. package/dist/mcp/worker-tools.js +6 -3
  27. package/dist/mcp/worker-tools.js.map +1 -1
  28. package/dist/wechat/api.d.ts +52 -0
  29. package/dist/wechat/api.d.ts.map +1 -0
  30. package/dist/wechat/api.js +110 -0
  31. package/dist/wechat/api.js.map +1 -0
  32. package/dist/wechat/credentials.d.ts +7 -0
  33. package/dist/wechat/credentials.d.ts.map +1 -0
  34. package/dist/wechat/credentials.js +52 -0
  35. package/dist/wechat/credentials.js.map +1 -0
  36. package/dist/wechat/service.d.ts +42 -0
  37. package/dist/wechat/service.d.ts.map +1 -0
  38. package/dist/wechat/service.js +148 -0
  39. package/dist/wechat/service.js.map +1 -0
  40. package/dist/worker/executors/articulate.d.ts +36 -3
  41. package/dist/worker/executors/articulate.d.ts.map +1 -1
  42. package/dist/worker/executors/articulate.js +122 -8
  43. package/dist/worker/executors/articulate.js.map +1 -1
  44. package/dist/worker/supervisor.d.ts +4 -2
  45. package/dist/worker/supervisor.d.ts.map +1 -1
  46. package/dist/worker/supervisor.js +92 -52
  47. package/dist/worker/supervisor.js.map +1 -1
  48. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ /**
2
+ * API Key Management
3
+ * Create and list Paean AI API keys for use with external tools like a8e
4
+ */
5
+ export interface ApiKeyInfo {
6
+ id: number;
7
+ key: string;
8
+ name?: string;
9
+ userId: number;
10
+ enabled?: boolean;
11
+ createdAt: string;
12
+ updatedAt?: string;
13
+ }
14
+ /**
15
+ * Create a new Paean AI API key
16
+ */
17
+ export declare function createApiKey(name?: string): Promise<{
18
+ success: boolean;
19
+ data?: ApiKeyInfo;
20
+ error?: string;
21
+ }>;
22
+ /**
23
+ * List existing API keys for the current user
24
+ */
25
+ export declare function listApiKeys(skip?: number, take?: number): Promise<{
26
+ success: boolean;
27
+ data?: ApiKeyInfo[];
28
+ error?: string;
29
+ }>;
30
+ /**
31
+ * Get or create an API key specifically for a8e integration.
32
+ * Looks for an existing key named "a8e-cli", creates one if not found.
33
+ */
34
+ export declare function getOrCreateA8eApiKey(): Promise<{
35
+ success: boolean;
36
+ key?: string;
37
+ error?: string;
38
+ }>;
39
+ //# sourceMappingURL=apikey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.d.ts","sourceRoot":"","sources":["../../src/api/apikey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,UAAU;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAYlH;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,SAAI,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAYzH;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBxG"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * API Key Management
3
+ * Create and list Paean AI API keys for use with external tools like a8e
4
+ */
5
+ import { getApiClient } from './client.js';
6
+ /**
7
+ * Create a new Paean AI API key
8
+ */
9
+ export async function createApiKey(name) {
10
+ try {
11
+ const client = getApiClient();
12
+ const response = await client.post('/apikey/create', { name });
13
+ return {
14
+ success: true,
15
+ data: response.data.data,
16
+ };
17
+ }
18
+ catch (error) {
19
+ const message = error instanceof Error ? error.message : 'Failed to create API key';
20
+ return { success: false, error: message };
21
+ }
22
+ }
23
+ /**
24
+ * List existing API keys for the current user
25
+ */
26
+ export async function listApiKeys(skip = 0, take = 20) {
27
+ try {
28
+ const client = getApiClient();
29
+ const response = await client.get('/apikey/list', { params: { skip, take } });
30
+ return {
31
+ success: true,
32
+ data: response.data.data,
33
+ };
34
+ }
35
+ catch (error) {
36
+ const message = error instanceof Error ? error.message : 'Failed to list API keys';
37
+ return { success: false, error: message };
38
+ }
39
+ }
40
+ /**
41
+ * Get or create an API key specifically for a8e integration.
42
+ * Looks for an existing key named "a8e-cli", creates one if not found.
43
+ */
44
+ export async function getOrCreateA8eApiKey() {
45
+ const listResult = await listApiKeys(0, 100);
46
+ if (listResult.success && listResult.data) {
47
+ const existing = listResult.data.find(k => k.name === 'a8e-cli' && k.enabled !== false);
48
+ if (existing) {
49
+ return { success: true, key: existing.key };
50
+ }
51
+ }
52
+ const createResult = await createApiKey('a8e-cli');
53
+ if (createResult.success && createResult.data) {
54
+ return { success: true, key: createResult.data.key };
55
+ }
56
+ return { success: false, error: createResult.error || 'Failed to provision API key' };
57
+ }
58
+ //# sourceMappingURL=apikey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apikey.js","sourceRoot":"","sources":["../../src/api/apikey.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAY3C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAa;IAC5C,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;SAC3B,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,EAAE;IACjD,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9E,OAAO;YACH,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI;SAC3B,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAyB,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAC9C,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACtC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE7C,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,CACnD,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;QAChD,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAC;IACnD,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;IACzD,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,6BAA6B,EAAE,CAAC;AAC1F,CAAC"}
package/dist/cli.js CHANGED
@@ -24,7 +24,9 @@ import { mcpCommand } from './commands/mcp.js';
24
24
  import { creditsCommand } from './commands/credits.js';
25
25
  import { sparkletCommand } from './commands/sparklet.js';
26
26
  import { completionCommand } from './commands/completion.js';
27
+ import { wechatCommand } from './commands/wechat.js';
27
28
  import { updateCommand } from './commands/update.js';
29
+ import { a8eCommand } from './commands/a8e.js';
28
30
  import { getConfigPath } from './utils/config.js';
29
31
  import { BUILD_MODE } from './build-info.js';
30
32
  // Read version from package.json
@@ -43,7 +45,8 @@ program
43
45
  .option('-m, --message <message>', 'Send a single message to agent')
44
46
  .option('-r, --resume <conversationId>', 'Resume a previous conversation session')
45
47
  .option('-g, --gateway', 'Enable gateway relay for remote clients')
46
- .option('--gateway-interval <ms>', 'Gateway poll interval in milliseconds', '3000');
48
+ .option('--gateway-interval <ms>', 'Gateway poll interval in milliseconds', '3000')
49
+ .option('--wechat', 'Enable WeChat channel gateway');
47
50
  if (BUILD_MODE === 'development') {
48
51
  program.option('--dev', 'Use dev environment (dev.api.paean.ai)');
49
52
  }
@@ -85,6 +88,7 @@ program
85
88
  resumeConversationId: options.resume,
86
89
  gatewayEnabled: options.gateway ?? false,
87
90
  gatewayPollInterval: parseInt(options.gatewayInterval, 10) || 3000,
91
+ wechatEnabled: options.wechat ?? false,
88
92
  });
89
93
  });
90
94
  // Register commands
@@ -111,7 +115,9 @@ program.addCommand(mcpCommand);
111
115
  program.addCommand(creditsCommand);
112
116
  program.addCommand(sparkletCommand);
113
117
  program.addCommand(completionCommand);
118
+ program.addCommand(wechatCommand);
114
119
  program.addCommand(updateCommand);
120
+ program.addCommand(a8eCommand);
115
121
  // Temporarily disabled for publishing
116
122
  // program.addCommand(accessibilityCommand);
117
123
  // Parse arguments
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * a8e (Articulate) Command
3
+ * Install, configure, and manage the a8e coding CLI as a local sub-agent executor
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const a8eCommand: Command;
7
+ //# sourceMappingURL=a8e.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a8e.d.ts","sourceRoot":"","sources":["../../src/commands/a8e.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAYpC,eAAO,MAAM,UAAU,SACkE,CAAC"}
@@ -0,0 +1,232 @@
1
+ /**
2
+ * a8e (Articulate) Command
3
+ * Install, configure, and manage the a8e coding CLI as a local sub-agent executor
4
+ */
5
+ import { Command } from 'commander';
6
+ import chalk from 'chalk';
7
+ import { existsSync } from 'fs';
8
+ import { promisify } from 'util';
9
+ import { exec as execCallback } from 'child_process';
10
+ import { isAuthenticated } from '../utils/config.js';
11
+ import { getOrCreateA8eApiKey } from '../api/apikey.js';
12
+ import { ArticulateExecutor, A8E_PATHS } from '../worker/executors/articulate.js';
13
+ import * as output from '../utils/output.js';
14
+ const exec = promisify(execCallback);
15
+ export const a8eCommand = new Command('a8e')
16
+ .description('Manage the a8e coding CLI (local sub-agent executor for coding tasks)');
17
+ // ── paean a8e install ───────────────────────────────────────────────
18
+ a8eCommand
19
+ .command('install')
20
+ .description('Install a8e coding CLI and configure it with your Paean AI account')
21
+ .option('--skip-config', 'Only install the binary, skip provider configuration')
22
+ .option('--model <model>', 'Default model to use', A8E_PATHS.defaultModel)
23
+ .action(async (options) => {
24
+ console.log('');
25
+ console.log(chalk.bold.cyan(' ╔════════════════════════════════════════════╗'));
26
+ console.log(chalk.bold.cyan(' ║') + chalk.bold.white(' a8e Coding CLI Setup') + chalk.bold.cyan(' ║'));
27
+ console.log(chalk.bold.cyan(' ╚════════════════════════════════════════════╝'));
28
+ console.log('');
29
+ const executor = new ArticulateExecutor();
30
+ // Step 1: Check if a8e is already installed
31
+ const available = await executor.isAvailable();
32
+ if (available) {
33
+ const status = await executor.checkAvailability();
34
+ output.success(`a8e is already installed${status.version ? ` (v${status.version})` : ''}`);
35
+ if (status.binaryPath) {
36
+ output.dim(` Binary: ${status.binaryPath}`);
37
+ }
38
+ }
39
+ else {
40
+ // Install a8e binary
41
+ output.info('Installing a8e coding CLI...');
42
+ console.log('');
43
+ try {
44
+ const { stdout: installOutput } = await exec('curl -fsSL https://a8e.ai/install.sh | bash', { timeout: 120000 });
45
+ if (installOutput)
46
+ console.log(chalk.dim(installOutput));
47
+ // Verify installation
48
+ const nowAvailable = await executor.isAvailable();
49
+ if (!nowAvailable) {
50
+ output.error('Installation completed but a8e binary not found in PATH.');
51
+ output.dim('You may need to restart your shell or add the install directory to PATH.');
52
+ process.exit(1);
53
+ }
54
+ output.success('a8e installed successfully');
55
+ }
56
+ catch (error) {
57
+ output.error(`Failed to install a8e: ${error.message}`);
58
+ output.dim('Try installing manually: curl -fsSL https://a8e.ai/install.sh | bash');
59
+ process.exit(1);
60
+ }
61
+ }
62
+ if (options.skipConfig) {
63
+ console.log('');
64
+ output.dim('Skipped provider configuration. Run `paean a8e configure` to set up later.');
65
+ return;
66
+ }
67
+ // Step 2: Provision API key and configure
68
+ console.log('');
69
+ output.info('Configuring a8e with Paean AI provider...');
70
+ if (!isAuthenticated()) {
71
+ output.warning('Not logged in to Paean. Run `paean login` first, then `paean a8e configure`.');
72
+ return;
73
+ }
74
+ const spin = output.spinner('Provisioning API key...').start();
75
+ try {
76
+ const keyResult = await getOrCreateA8eApiKey();
77
+ if (!keyResult.success || !keyResult.key) {
78
+ spin.stop();
79
+ output.error(`Failed to provision API key: ${keyResult.error}`);
80
+ output.dim('You can configure manually: a8e configure');
81
+ return;
82
+ }
83
+ spin.text = 'Writing a8e configuration...';
84
+ executor.configureForPaean(keyResult.key, options.model);
85
+ spin.stop();
86
+ output.success('a8e configured with Paean AI provider');
87
+ console.log('');
88
+ output.tableRow('Provider', A8E_PATHS.defaultProvider, 18);
89
+ output.tableRow('Model', options.model || A8E_PATHS.defaultModel, 18);
90
+ output.tableRow('Config', A8E_PATHS.configFile, 18);
91
+ console.log('');
92
+ output.dim('a8e is ready. Paean CLI will automatically use it for coding tasks.');
93
+ output.dim('Test it with: a8e run --text "hello"');
94
+ }
95
+ catch (error) {
96
+ spin.stop();
97
+ output.error(`Configuration failed: ${error.message}`);
98
+ }
99
+ console.log('');
100
+ });
101
+ // ── paean a8e status ────────────────────────────────────────────────
102
+ a8eCommand
103
+ .command('status')
104
+ .description('Check a8e installation and configuration status')
105
+ .action(async () => {
106
+ console.log('');
107
+ console.log(chalk.bold.blue(' a8e Status\n'));
108
+ const executor = new ArticulateExecutor();
109
+ const available = await executor.isAvailable();
110
+ if (!available) {
111
+ output.tableRow('Installed', chalk.red('No'), 18);
112
+ output.dim(' Install with: paean a8e install');
113
+ console.log('');
114
+ return;
115
+ }
116
+ const status = await executor.checkAvailability();
117
+ output.tableRow('Installed', chalk.green('Yes'), 18);
118
+ if (status.version) {
119
+ output.tableRow('Version', status.version, 18);
120
+ }
121
+ if (status.binaryPath) {
122
+ output.tableRow('Binary', status.binaryPath, 18);
123
+ }
124
+ // Read a8e config
125
+ const config = executor.readA8eConfig();
126
+ output.tableRow('Provider', config.provider || chalk.dim('not set'), 18);
127
+ output.tableRow('Model', config.model || chalk.dim('not set'), 18);
128
+ output.tableRow('API Key', config.hasApiKey ? chalk.green('configured') : chalk.yellow('not set'), 18);
129
+ output.tableRow('Config File', existsSync(A8E_PATHS.configFile) ? A8E_PATHS.configFile : chalk.dim('not found'), 18);
130
+ if (!config.provider || !config.hasApiKey) {
131
+ console.log('');
132
+ output.warning('a8e is not fully configured. Run `paean a8e configure` to set up.');
133
+ }
134
+ console.log('');
135
+ });
136
+ // ── paean a8e configure ─────────────────────────────────────────────
137
+ a8eCommand
138
+ .command('configure')
139
+ .description('Configure a8e with Paean AI provider and API key')
140
+ .option('--model <model>', 'Model to use', A8E_PATHS.defaultModel)
141
+ .option('--api-key <key>', 'Use a specific API key instead of auto-provisioning')
142
+ .action(async (options) => {
143
+ console.log('');
144
+ output.header('Configure a8e');
145
+ const executor = new ArticulateExecutor();
146
+ const available = await executor.isAvailable();
147
+ if (!available) {
148
+ output.error('a8e is not installed. Run `paean a8e install` first.');
149
+ console.log('');
150
+ return;
151
+ }
152
+ let apiKey = options.apiKey;
153
+ if (!apiKey) {
154
+ if (!isAuthenticated()) {
155
+ output.error('Not logged in. Run `paean login` first, or provide --api-key manually.');
156
+ console.log('');
157
+ return;
158
+ }
159
+ const spin = output.spinner('Provisioning API key...').start();
160
+ const keyResult = await getOrCreateA8eApiKey();
161
+ spin.stop();
162
+ if (!keyResult.success || !keyResult.key) {
163
+ output.error(`Failed to provision API key: ${keyResult.error}`);
164
+ console.log('');
165
+ return;
166
+ }
167
+ apiKey = keyResult.key;
168
+ }
169
+ executor.configureForPaean(apiKey, options.model);
170
+ output.success('a8e configuration updated');
171
+ console.log('');
172
+ output.tableRow('Provider', A8E_PATHS.defaultProvider, 18);
173
+ output.tableRow('Model', options.model || A8E_PATHS.defaultModel, 18);
174
+ console.log('');
175
+ });
176
+ // ── paean a8e uninstall ─────────────────────────────────────────────
177
+ a8eCommand
178
+ .command('uninstall')
179
+ .description('Remove a8e configuration (does not remove the binary)')
180
+ .option('--force', 'Skip confirmation')
181
+ .action(async (options) => {
182
+ if (!options.force) {
183
+ const readline = await import('readline');
184
+ const rl = readline.createInterface({
185
+ input: process.stdin,
186
+ output: process.stdout,
187
+ });
188
+ const answer = await new Promise((resolve) => {
189
+ rl.question('Remove a8e Paean configuration? (y/n): ', resolve);
190
+ });
191
+ rl.close();
192
+ if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
193
+ output.dim('Cancelled.');
194
+ return;
195
+ }
196
+ }
197
+ const fs = await import('fs');
198
+ let removed = false;
199
+ if (existsSync(A8E_PATHS.configFile)) {
200
+ // Only remove Paean-specific keys, not the whole config
201
+ try {
202
+ let content = fs.readFileSync(A8E_PATHS.configFile, 'utf-8');
203
+ content = content.replace(/^A8E_PROVIDER:.*\n?/m, '');
204
+ content = content.replace(/^A8E_MODEL:.*\n?/m, '');
205
+ fs.writeFileSync(A8E_PATHS.configFile, content, 'utf-8');
206
+ removed = true;
207
+ }
208
+ catch {
209
+ output.warning('Could not update config file');
210
+ }
211
+ }
212
+ if (existsSync(A8E_PATHS.secretsFile)) {
213
+ try {
214
+ let content = fs.readFileSync(A8E_PATHS.secretsFile, 'utf-8');
215
+ content = content.replace(/^PAEAN_AI_API_KEY:.*\n?/m, '');
216
+ fs.writeFileSync(A8E_PATHS.secretsFile, content, 'utf-8');
217
+ removed = true;
218
+ }
219
+ catch {
220
+ output.warning('Could not update secrets file');
221
+ }
222
+ }
223
+ if (removed) {
224
+ output.success('Paean AI configuration removed from a8e');
225
+ }
226
+ else {
227
+ output.dim('No Paean configuration found in a8e');
228
+ }
229
+ output.dim('The a8e binary was not removed. Uninstall it manually if desired.');
230
+ console.log('');
231
+ });
232
+ //# sourceMappingURL=a8e.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"a8e.js","sourceRoot":"","sources":["../../src/commands/a8e.ts"],"names":[],"mappings":"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"}
@@ -14,5 +14,6 @@ export declare function runAgentMode(options: {
14
14
  resumeConversationId?: string;
15
15
  gatewayEnabled?: boolean;
16
16
  gatewayPollInterval?: number;
17
+ wechatEnabled?: boolean;
17
18
  }): Promise<void>;
18
19
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,YAAY,SAuFnB,CAAC;AAEP;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAkEhB"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuBpC,eAAO,MAAM,YAAY,SAuFnB,CAAC;AAEP;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IACxC,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFhB"}
@@ -140,7 +140,22 @@ export async function runAgentMode(options) {
140
140
  };
141
141
  process.on('SIGINT', () => gracefulCleanup('SIGINT'));
142
142
  process.on('SIGTERM', () => gracefulCleanup('SIGTERM'));
143
+ // Initialize WeChat gateway if enabled
144
+ let wechatService;
145
+ if (options.wechatEnabled) {
146
+ const { WechatGatewayService } = await import('../wechat/service.js');
147
+ wechatService = new WechatGatewayService({ debug });
148
+ wechatService.setMcpState(mcpState, onMcpToolCall);
149
+ if (debug) {
150
+ console.error(chalk.dim('[WeChat] Enabled — polling for WeChat messages'));
151
+ }
152
+ }
143
153
  try {
154
+ if (wechatService) {
155
+ wechatService.start().catch((err) => {
156
+ console.error(chalk.yellow(`WeChat channel failed to start: ${err instanceof Error ? err.message : err}`));
157
+ });
158
+ }
144
159
  const { startChat } = await import('../agent/chat.ink.js');
145
160
  await startChat({
146
161
  mcpState,
@@ -161,6 +176,9 @@ export async function runAgentMode(options) {
161
176
  process.exit(1);
162
177
  }
163
178
  finally {
179
+ if (wechatService) {
180
+ await wechatService.stop().catch(() => { });
181
+ }
164
182
  if (!cleanedUp) {
165
183
  cleanedUp = true;
166
184
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;;GAGG;AACH,SAAS,eAAe;IACpB,IAAI,KAAK,GAAG,KAAK,CAAC;IAElB,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAI,OAAe,CAAC,QAAQ,CAAC;QAC3C,IAAI,QAAQ,EAAE,GAAG,KAAK,SAAS;YAAE,KAAK,GAAG,IAAI,CAAC;QAC9C,IAAI,OAAQ,UAAkB,CAAC,GAAG,KAAK,WAAW;YAAE,KAAK,GAAG,IAAI,CAAC;IACrE,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC3C,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,UAAU,EAAE,sCAAsC,CAAC;KAC1D,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC;KAC7C,MAAM,CAAC,yBAAyB,EAAE,gCAAgC,CAAC;KACnE,MAAM,CAAC,YAAY,EAAE,uCAAuC,CAAC;KAC7D,MAAM,CAAC,+BAA+B,EAAE,wCAAwC,CAAC;KACjF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtB,wBAAwB;IACxB,eAAe,EAAE,CAAC;IAElB,+BAA+B;IAC/B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,wCAAwC;QACxC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,mBAAmB,EAAE,CAAC;IAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC;IACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC;IAEvC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC;QACjE,GAAG,EAAE,SAAS;QACd,KAAK;KACR,CAAC,CAAC;IAEH,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9B,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,qCAAqC;YACrC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;gBAChC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,MAAM,EAAE,OAAO,CAAC,MAAM;aACzB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;gBACjD,EAAE,CAAC,QAAQ,CAAC,gDAAgD,EAAE,OAAO,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;YACH,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,6CAA6C,CAAC,CAAC,CAAC;gBACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC;QACL,CAAC;IACL,CAAC;IAED,IAAI,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC;YACZ,QAAQ;YACR,aAAa;YACb,KAAK;YACL,cAAc,EAAE,OAAO,CAAC,OAAO;YAC/B,oBAAoB,EAAE,OAAO,CAAC,MAAM;SACvC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACvF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,YAAY,EAAE,CAAC,CAAC,CAAC;QACvD,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACP,IAAI,CAAC;YACD,MAAM,SAAS,EAAE,aAAa,EAAE,CAAC;QACrC,CAAC;QAAC,OAAO,YAAY,EAAE,CAAC;YACpB,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAmC,YAAsB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAClG,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC,CAAC,CAAC;AAEP;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAOlC;IACG,wBAAwB;IACxB,eAAe,EAAE,CAAC;IAElB,mBAAmB,EAAE,CAAC;IAEtB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,KAAK,KAAK,CAAC;IACxC,MAAM,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAE1D,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,eAAe,CAAC;QACjE,GAAG,EAAE,SAAS;QACd,KAAK;KACR,CAAC,CAAC;IAEH,2DAA2D;IAC3D,+DAA+D;IAC/D,yDAAyD;IACzD,IAAI,SAAS,GAAG,KAAK,CAAC;IACtB,MAAM,eAAe,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QAC7C,IAAI,SAAS;YAAE,OAAO;QACtB,SAAS,GAAG,IAAI,CAAC;QACjB,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,MAAM,kBAAkB,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC;YACD,MAAM,SAAS,EAAE,aAAa,EAAE,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACL,sBAAsB;QAC1B,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;IACtD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IAExD,IAAI,CAAC;QACD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC;YACZ,QAAQ;YACR,aAAa;YACb,KAAK;YACL,cAAc,EAAE,OAAO,CAAC,OAAO;YAC/B,oBAAoB;YACpB,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACnD,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACvF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAoB,YAAY,EAAE,CAAC,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;YAAS,CAAC;QACP,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC;gBACD,MAAM,SAAS,EAAE,aAAa,EAAE,CAAC;YACrC,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACpB,IAAI,KAAK,EAAE,CAAC;oBACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,kCAAmC,YAAsB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAClG,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * WeChat Command
3
+ * CLI commands for WeChat channel integration.
4
+ */
5
+ import { Command } from 'commander';
6
+ export declare const wechatCommand: Command;
7
+ //# sourceMappingURL=wechat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wechat.d.ts","sourceRoot":"","sources":["../../src/commands/wechat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,eAAO,MAAM,aAAa,SACgD,CAAC"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * WeChat Command
3
+ * CLI commands for WeChat channel integration.
4
+ */
5
+ import { Command } from 'commander';
6
+ import chalk from 'chalk';
7
+ export const wechatCommand = new Command('wechat')
8
+ .description('WeChat channel — bridge WeChat messages to local agent');
9
+ wechatCommand
10
+ .command('setup')
11
+ .description('Authenticate with WeChat via QR code')
12
+ .option('-f, --force', 'Skip confirmation for re-authentication')
13
+ .action(async (opts) => {
14
+ const { fetchQRCode, pollQRStatus, DEFAULT_BASE_URL } = await import('../wechat/api.js');
15
+ const { loadCredentials, saveCredentials } = await import('../wechat/credentials.js');
16
+ const existing = loadCredentials();
17
+ if (existing && !opts.force) {
18
+ console.log(`Existing WeChat account: ${existing.accountId}`);
19
+ console.log(`Saved at: ${existing.savedAt}\n`);
20
+ const readline = await import('node:readline');
21
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
22
+ const answer = await new Promise(resolve => rl.question('Re-authenticate? (y/N) ', resolve));
23
+ rl.close();
24
+ if (answer.toLowerCase() !== 'y') {
25
+ console.log('Keeping existing credentials.');
26
+ return;
27
+ }
28
+ }
29
+ console.log('Fetching WeChat login QR code...\n');
30
+ const qrResp = await fetchQRCode(DEFAULT_BASE_URL);
31
+ try {
32
+ const qrterm = await import('qrcode-terminal');
33
+ await new Promise(resolve => {
34
+ qrterm.default.generate(qrResp.qrcode_img_content, { small: true }, (qr) => { console.log(qr); resolve(); });
35
+ });
36
+ }
37
+ catch {
38
+ console.log(`QR URL: ${qrResp.qrcode_img_content}\n`);
39
+ }
40
+ console.log('Scan the QR code with WeChat...\n');
41
+ const deadline = Date.now() + 480_000;
42
+ let scanned = false;
43
+ while (Date.now() < deadline) {
44
+ const status = await pollQRStatus(DEFAULT_BASE_URL, qrResp.qrcode);
45
+ switch (status.status) {
46
+ case 'wait':
47
+ process.stdout.write('.');
48
+ break;
49
+ case 'scaned':
50
+ if (!scanned) {
51
+ console.log('\nScanned! Confirm on phone...');
52
+ scanned = true;
53
+ }
54
+ break;
55
+ case 'expired':
56
+ console.error('\nQR code expired. Run setup again.');
57
+ process.exit(1);
58
+ break;
59
+ case 'confirmed': {
60
+ if (!status.ilink_bot_id || !status.bot_token) {
61
+ console.error('\nLogin failed.');
62
+ process.exit(1);
63
+ }
64
+ const account = {
65
+ token: status.bot_token, baseUrl: status.baseurl || DEFAULT_BASE_URL,
66
+ accountId: status.ilink_bot_id, userId: status.ilink_user_id,
67
+ savedAt: new Date().toISOString(),
68
+ };
69
+ saveCredentials(account);
70
+ console.log(chalk.green(`\nWeChat connected!`));
71
+ console.log(` Account: ${account.accountId}`);
72
+ console.log(`\nStart with: ${chalk.cyan('paean --wechat')}`);
73
+ return;
74
+ }
75
+ }
76
+ await new Promise(r => setTimeout(r, 1000));
77
+ }
78
+ console.error('\nLogin timed out.');
79
+ process.exit(1);
80
+ });
81
+ wechatCommand
82
+ .command('status')
83
+ .description('Show WeChat login status')
84
+ .action(async () => {
85
+ const { loadCredentials } = await import('../wechat/credentials.js');
86
+ const account = loadCredentials();
87
+ if (account) {
88
+ console.log(chalk.green('WeChat: Logged in'));
89
+ console.log(` Account: ${account.accountId}`);
90
+ console.log(` User: ${account.userId ?? 'N/A'}`);
91
+ console.log(` Saved: ${account.savedAt}`);
92
+ }
93
+ else {
94
+ console.log(chalk.gray('WeChat: Not logged in'));
95
+ console.log(` Run ${chalk.cyan('paean wechat setup')} to authenticate.`);
96
+ }
97
+ });
98
+ wechatCommand
99
+ .command('logout')
100
+ .description('Remove WeChat credentials')
101
+ .action(async () => {
102
+ const { removeCredentials, loadCredentials } = await import('../wechat/credentials.js');
103
+ if (!loadCredentials()) {
104
+ console.log('No credentials found.');
105
+ return;
106
+ }
107
+ removeCredentials();
108
+ console.log(chalk.green('WeChat credentials removed.'));
109
+ });
110
+ //# sourceMappingURL=wechat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wechat.js","sourceRoot":"","sources":["../../src/commands/wechat.ts"],"names":[],"mappings":"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"}