aamp-cli 0.1.0

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 ADDED
@@ -0,0 +1,54 @@
1
+ # aamp-cli
2
+
3
+ Command-line mailbox client for AAMP, built on top of [aamp-sdk](../sdk/README.md).
4
+
5
+ ## What it does
6
+
7
+ - Connect an arbitrary mailbox identity to AAMP from the terminal
8
+ - Listen for `task.dispatch`, `task.help`, `task.result`, `task.ack`, and human replies
9
+ - Send `task.dispatch`, `task.help`, and `task.result`
10
+ - Store reusable mailbox profiles under `~/.aamp-cli/profiles/`
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ npm install -g aamp-cli
16
+ ```
17
+
18
+ ## Quick start
19
+
20
+ ```bash
21
+ aamp-cli login
22
+ aamp-cli listen
23
+ ```
24
+
25
+ `login` will prompt for:
26
+
27
+ - mailbox email
28
+ - mailbox password
29
+
30
+ JMAP base URL and SMTP host are derived automatically from the mailbox domain.
31
+ For example, `agent@meshmail.ai` defaults to:
32
+
33
+ - `jmapUrl = https://meshmail.ai`
34
+ - `smtpHost = meshmail.ai`
35
+ - `smtpPort = 587`
36
+
37
+ The profile is stored at:
38
+
39
+ ```bash
40
+ ~/.aamp-cli/profiles/default.json
41
+ ```
42
+
43
+ ## Commands
44
+
45
+ ```bash
46
+ aamp-cli login [--profile NAME]
47
+ aamp-cli init [--profile NAME]
48
+ aamp-cli listen [--profile NAME]
49
+ aamp-cli status [--profile NAME]
50
+ aamp-cli inbox [--profile NAME] [--limit N]
51
+ aamp-cli dispatch --to EMAIL --title TEXT [--body TEXT] [--timeout SECS] [--context-link URL]...
52
+ aamp-cli result --to EMAIL --task-id ID --status completed|rejected [--output TEXT] [--error TEXT]
53
+ aamp-cli help --to EMAIL --task-id ID --question TEXT [--reason TEXT] [--option TEXT]...
54
+ ```
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/index.js ADDED
@@ -0,0 +1,339 @@
1
+ #!/usr/bin/env node
2
+ import { mkdir, readFile, writeFile } from 'node:fs/promises';
3
+ import { existsSync } from 'node:fs';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import readline from 'node:readline/promises';
7
+ import { stdin as input, stdout as output } from 'node:process';
8
+ import { AampClient } from 'aamp-sdk';
9
+ const DEFAULT_PROFILE = 'default';
10
+ const DEFAULT_JMAP_URL = 'https://meshmail.ai';
11
+ function deriveServiceDefaults(email) {
12
+ const domain = email.split('@')[1]?.trim();
13
+ if (!domain) {
14
+ return { jmapUrl: DEFAULT_JMAP_URL, smtpHost: new URL(DEFAULT_JMAP_URL).hostname };
15
+ }
16
+ return {
17
+ jmapUrl: `https://${domain}`,
18
+ smtpHost: domain,
19
+ };
20
+ }
21
+ function printUsage() {
22
+ console.log(`AAMP CLI
23
+
24
+ Usage:
25
+ aamp-cli login [--profile NAME]
26
+ aamp-cli init [--profile NAME]
27
+ aamp-cli listen [--profile NAME]
28
+ aamp-cli status [--profile NAME]
29
+ aamp-cli inbox [--profile NAME] [--limit N]
30
+ aamp-cli dispatch --to EMAIL --title TEXT [--body TEXT] [--timeout SECS] [--context-link URL]...
31
+ aamp-cli result --to EMAIL --task-id ID --status completed|rejected [--output TEXT] [--error TEXT]
32
+ aamp-cli help --to EMAIL --task-id ID --question TEXT [--reason TEXT] [--option TEXT]...
33
+
34
+ Examples:
35
+ aamp-cli login
36
+ aamp-cli listen --profile default
37
+ aamp-cli dispatch --to agent@meshmail.ai --title "Review this patch" --body "Please review PR #42"
38
+ aamp-cli result --to meego@meshmail.ai --task-id 123 --status completed --output "Done"
39
+ aamp-cli help --to meego@meshmail.ai --task-id 123 --question "Which environment?" --option staging --option production
40
+ `);
41
+ }
42
+ function parseArgs(argv) {
43
+ const [rawCommand, ...rest] = argv;
44
+ const command = (rawCommand ?? 'unknown');
45
+ const positionals = [];
46
+ const values = {};
47
+ const booleans = new Set();
48
+ for (let i = 0; i < rest.length; i++) {
49
+ const token = rest[i];
50
+ if (!token.startsWith('--')) {
51
+ positionals.push(token);
52
+ continue;
53
+ }
54
+ const key = token.slice(2);
55
+ const next = rest[i + 1];
56
+ if (!next || next.startsWith('--')) {
57
+ booleans.add(key);
58
+ continue;
59
+ }
60
+ if (!values[key])
61
+ values[key] = [];
62
+ values[key].push(next);
63
+ i++;
64
+ }
65
+ return { command, positionals, values, booleans };
66
+ }
67
+ function firstArg(args, key) {
68
+ return args.values[key]?.[0];
69
+ }
70
+ function allArgs(args, key) {
71
+ return args.values[key] ?? [];
72
+ }
73
+ function requireArg(args, key) {
74
+ const value = firstArg(args, key);
75
+ if (!value)
76
+ throw new Error(`Missing required --${key}`);
77
+ return value;
78
+ }
79
+ function getProfilesDir() {
80
+ return path.join(os.homedir(), '.aamp-cli', 'profiles');
81
+ }
82
+ function getProfilePath(profile = DEFAULT_PROFILE) {
83
+ return path.join(getProfilesDir(), `${profile}.json`);
84
+ }
85
+ async function loadProfile(profile = DEFAULT_PROFILE) {
86
+ const file = getProfilePath(profile);
87
+ if (!existsSync(file)) {
88
+ throw new Error(`Profile "${profile}" not found. Run "aamp-cli login${profile === DEFAULT_PROFILE ? '' : ` --profile ${profile}`}" first.`);
89
+ }
90
+ const raw = await readFile(file, 'utf8');
91
+ return JSON.parse(raw);
92
+ }
93
+ async function saveProfile(profile, data) {
94
+ const dir = getProfilesDir();
95
+ await mkdir(dir, { recursive: true });
96
+ const file = getProfilePath(profile);
97
+ await writeFile(file, `${JSON.stringify(data, null, 2)}\n`, 'utf8');
98
+ return file;
99
+ }
100
+ function resolveSmtpHost(jmapUrl, explicit) {
101
+ return explicit || new URL(jmapUrl).hostname;
102
+ }
103
+ function createClient(profile) {
104
+ return new AampClient({
105
+ email: profile.email,
106
+ jmapToken: profile.jmapToken,
107
+ jmapUrl: profile.jmapUrl,
108
+ smtpHost: resolveSmtpHost(profile.jmapUrl, profile.smtpHost),
109
+ smtpPort: profile.smtpPort ?? 587,
110
+ smtpPassword: profile.smtpPassword,
111
+ rejectUnauthorized: profile.rejectUnauthorized,
112
+ });
113
+ }
114
+ function formatTransport(client) {
115
+ return client.isUsingPollingFallback() ? 'polling fallback' : 'websocket';
116
+ }
117
+ async function prompt(question, defaultValue = '') {
118
+ const rl = readline.createInterface({ input, output });
119
+ try {
120
+ const suffix = defaultValue ? ` (${defaultValue})` : '';
121
+ const answer = await rl.question(`${question}${suffix}: `);
122
+ return answer.trim() || defaultValue;
123
+ }
124
+ finally {
125
+ rl.close();
126
+ }
127
+ }
128
+ async function runInit(args) {
129
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
130
+ const existingFile = getProfilePath(profile);
131
+ const existing = existsSync(existingFile) ? await loadProfile(profile) : null;
132
+ const email = firstArg(args, 'email') ?? await prompt('Mailbox email', existing?.email ?? '');
133
+ const smtpPassword = firstArg(args, 'password') ?? firstArg(args, 'smtp-password') ?? await prompt('Mailbox password', existing?.smtpPassword ?? '');
134
+ const jmapToken = Buffer.from(`${email}:${smtpPassword}`).toString('base64');
135
+ const inferred = deriveServiceDefaults(email);
136
+ const jmapUrl = firstArg(args, 'jmap-url') ?? existing?.jmapUrl ?? inferred.jmapUrl;
137
+ const smtpHost = firstArg(args, 'smtp-host') ?? existing?.smtpHost ?? inferred.smtpHost;
138
+ const smtpPort = Number(firstArg(args, 'smtp-port') ?? String(existing?.smtpPort ?? 587));
139
+ const rejectUnauthorized = (firstArg(args, 'reject-unauthorized') ?? String(existing?.rejectUnauthorized ?? true)) !== 'false';
140
+ const file = await saveProfile(profile, {
141
+ email,
142
+ jmapToken,
143
+ smtpPassword,
144
+ jmapUrl,
145
+ smtpHost,
146
+ smtpPort,
147
+ rejectUnauthorized,
148
+ });
149
+ console.log(`Saved profile "${profile}" to ${file}`);
150
+ console.log(`Derived JMAP URL: ${jmapUrl}`);
151
+ console.log(`Derived SMTP host: ${smtpHost}:${smtpPort}`);
152
+ }
153
+ async function runLogin(args) {
154
+ await runInit(args);
155
+ }
156
+ function printDispatch(task) {
157
+ console.log(`\n[AAMP] <- task.dispatch ${task.taskId}`);
158
+ console.log(` from: ${task.from}`);
159
+ console.log(` title: ${task.title}`);
160
+ if (task.timeoutSecs)
161
+ console.log(` timeout: ${task.timeoutSecs}s`);
162
+ if (task.contextLinks?.length)
163
+ console.log(` contextLinks: ${task.contextLinks.join(', ')}`);
164
+ if (task.dispatchContext && Object.keys(task.dispatchContext).length) {
165
+ console.log(` dispatchContext: ${JSON.stringify(task.dispatchContext)}`);
166
+ }
167
+ if (task.attachments?.length) {
168
+ console.log(` attachments: ${task.attachments.map((item) => item.filename).join(', ')}`);
169
+ }
170
+ if (task.bodyText?.trim()) {
171
+ console.log(' body:');
172
+ console.log(task.bodyText.split('\n').map((line) => ` ${line}`).join('\n'));
173
+ }
174
+ }
175
+ async function runListen(args) {
176
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
177
+ const client = createClient(await loadProfile(profile));
178
+ let lastErrorSignature = '';
179
+ client.on('connected', () => {
180
+ console.log(`[AAMP] connected as ${client.email} (${formatTransport(client)})`);
181
+ });
182
+ client.on('disconnected', (reason) => {
183
+ console.log(`[AAMP] disconnected: ${reason}`);
184
+ });
185
+ client.on('error', (err) => {
186
+ const isFallbackActive = client.isUsingPollingFallback();
187
+ const isHandshakeNoise = err.message.startsWith('JMAP WebSocket handshake failed:');
188
+ const isFallbackTransition = err.message.startsWith('JMAP WebSocket unavailable, falling back to polling:');
189
+ if (isFallbackTransition) {
190
+ console.log(`[AAMP] websocket unavailable, using polling fallback`);
191
+ return;
192
+ }
193
+ if (isFallbackActive && isHandshakeNoise)
194
+ return;
195
+ if (err.message === lastErrorSignature)
196
+ return;
197
+ lastErrorSignature = err.message;
198
+ console.error(`[AAMP] error: ${err.message}`);
199
+ });
200
+ client.on('task.dispatch', (task) => {
201
+ printDispatch(task);
202
+ });
203
+ client.on('task.ack', (ack) => {
204
+ console.log(`\n[AAMP] <- task.ack ${ack.taskId} from=${ack.from}`);
205
+ });
206
+ client.on('task.help_needed', (help) => {
207
+ console.log(`\n[AAMP] <- task.help_needed ${help.taskId} from=${help.from}`);
208
+ console.log(` question: ${help.question}`);
209
+ if (help.blockedReason)
210
+ console.log(` blockedReason: ${help.blockedReason}`);
211
+ if (help.suggestedOptions?.length)
212
+ console.log(` suggestedOptions: ${help.suggestedOptions.join(', ')}`);
213
+ });
214
+ client.on('task.result', (result) => {
215
+ console.log(`\n[AAMP] <- task.result ${result.taskId} from=${result.from} status=${result.status}`);
216
+ if (result.output)
217
+ console.log(` output: ${result.output}`);
218
+ if (result.errorMsg)
219
+ console.log(` error: ${result.errorMsg}`);
220
+ if (result.attachments?.length)
221
+ console.log(` attachments: ${result.attachments.map((item) => item.filename).join(', ')}`);
222
+ });
223
+ client.on('reply', (reply) => {
224
+ console.log(`\n[AAMP] <- human reply inReplyTo=${reply.inReplyTo} from=${reply.from}`);
225
+ console.log(` body: ${reply.bodyText}`);
226
+ });
227
+ await client.connect();
228
+ console.log(`[AAMP] listening as ${client.email}; press Ctrl+C to stop`);
229
+ const shutdown = () => {
230
+ client.disconnect();
231
+ process.exit(0);
232
+ };
233
+ process.on('SIGINT', shutdown);
234
+ process.on('SIGTERM', shutdown);
235
+ await new Promise(() => { });
236
+ }
237
+ async function runStatus(args) {
238
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
239
+ const cfg = await loadProfile(profile);
240
+ const client = createClient(cfg);
241
+ const smtpOk = await client.verifySmtp().catch(() => false);
242
+ await client.connect();
243
+ console.log(JSON.stringify({
244
+ profile,
245
+ email: cfg.email,
246
+ jmapUrl: cfg.jmapUrl,
247
+ smtpHost: resolveSmtpHost(cfg.jmapUrl, cfg.smtpHost),
248
+ smtpPort: cfg.smtpPort ?? 587,
249
+ transport: formatTransport(client),
250
+ smtpVerified: smtpOk,
251
+ }, null, 2));
252
+ client.disconnect();
253
+ }
254
+ async function runInbox(args) {
255
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
256
+ const limit = Number(firstArg(args, 'limit') ?? '20');
257
+ const client = createClient(await loadProfile(profile));
258
+ const processed = await client.reconcileRecentEmails(limit);
259
+ console.log(`Reconciled ${processed} recent email(s)`);
260
+ }
261
+ async function runDispatch(args) {
262
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
263
+ const client = createClient(await loadProfile(profile));
264
+ const payload = {
265
+ to: requireArg(args, 'to'),
266
+ title: requireArg(args, 'title'),
267
+ bodyText: firstArg(args, 'body'),
268
+ timeoutSecs: firstArg(args, 'timeout') ? Number(firstArg(args, 'timeout')) : undefined,
269
+ contextLinks: allArgs(args, 'context-link'),
270
+ };
271
+ const result = await client.sendTask(payload);
272
+ console.log(JSON.stringify(result, null, 2));
273
+ }
274
+ async function runResult(args) {
275
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
276
+ const client = createClient(await loadProfile(profile));
277
+ const payload = {
278
+ to: requireArg(args, 'to'),
279
+ taskId: requireArg(args, 'task-id'),
280
+ status: requireArg(args, 'status'),
281
+ output: firstArg(args, 'output') ?? '',
282
+ errorMsg: firstArg(args, 'error'),
283
+ };
284
+ await client.sendResult(payload);
285
+ console.log(`Sent task.result for ${payload.taskId}`);
286
+ }
287
+ async function runHelp(args) {
288
+ const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
289
+ const client = createClient(await loadProfile(profile));
290
+ const payload = {
291
+ to: requireArg(args, 'to'),
292
+ taskId: requireArg(args, 'task-id'),
293
+ question: requireArg(args, 'question'),
294
+ blockedReason: firstArg(args, 'reason') ?? '',
295
+ suggestedOptions: allArgs(args, 'option'),
296
+ };
297
+ await client.sendHelp(payload);
298
+ console.log(`Sent task.help_needed for ${payload.taskId}`);
299
+ }
300
+ async function main() {
301
+ const args = parseArgs(process.argv.slice(2));
302
+ if (args.booleans.has('help') || args.command === 'unknown') {
303
+ printUsage();
304
+ return;
305
+ }
306
+ switch (args.command) {
307
+ case 'login':
308
+ await runLogin(args);
309
+ return;
310
+ case 'init':
311
+ await runInit(args);
312
+ return;
313
+ case 'listen':
314
+ await runListen(args);
315
+ return;
316
+ case 'status':
317
+ await runStatus(args);
318
+ return;
319
+ case 'inbox':
320
+ await runInbox(args);
321
+ return;
322
+ case 'dispatch':
323
+ await runDispatch(args);
324
+ return;
325
+ case 'result':
326
+ await runResult(args);
327
+ return;
328
+ case 'help':
329
+ await runHelp(args);
330
+ return;
331
+ default:
332
+ printUsage();
333
+ }
334
+ }
335
+ main().catch((err) => {
336
+ console.error(`[aamp-cli] ${err instanceof Error ? err.message : String(err)}`);
337
+ process.exit(1);
338
+ });
339
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "aamp-cli",
3
+ "files": [
4
+ "dist"
5
+ ],
6
+ "license": "MIT",
7
+ "version": "0.1.0",
8
+ "description": "CLI for connecting any agent mailbox to the AAMP network via aamp-sdk",
9
+ "type": "module",
10
+ "main": "dist/index.js",
11
+ "bin": {
12
+ "aamp-cli": "dist/index.js"
13
+ },
14
+ "scripts": {
15
+ "dev": "tsx src/index.ts",
16
+ "build": "tsc",
17
+ "start": "node dist/index.js"
18
+ },
19
+ "dependencies": {
20
+ "aamp-sdk": "^0.1.10"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^20.11.30",
24
+ "tsx": "^4.7.1",
25
+ "typescript": "^5.4.3"
26
+ }
27
+ }