aamp-cli 0.1.0 → 0.1.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.
- package/README.md +21 -5
- package/dist/index.d.ts +43 -0
- package/dist/index.js +217 -64
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +1 -0
- package/dist/index.test.js +151 -0
- package/dist/index.test.js.map +1 -0
- package/package.json +6 -4
package/README.md
CHANGED
|
@@ -5,8 +5,9 @@ Command-line mailbox client for AAMP, built on top of [aamp-sdk](../sdk/README.m
|
|
|
5
5
|
## What it does
|
|
6
6
|
|
|
7
7
|
- Connect an arbitrary mailbox identity to AAMP from the terminal
|
|
8
|
-
- Listen for `task.dispatch`, `task.
|
|
9
|
-
- Send `task.dispatch`, `task.
|
|
8
|
+
- Listen for `task.dispatch`, `task.cancel`, `task.help_needed`, `task.result`, `task.ack`, `card.query`, `card.response`, and human replies
|
|
9
|
+
- Send `task.dispatch`, `task.cancel`, `task.help_needed`, `task.result`, `card.query`, and `card.response`
|
|
10
|
+
- Manage an AAMP agent directory profile and search cooperating agents
|
|
10
11
|
- Store reusable mailbox profiles under `~/.aamp-cli/profiles/`
|
|
11
12
|
|
|
12
13
|
## Install
|
|
@@ -18,19 +19,27 @@ npm install -g aamp-cli
|
|
|
18
19
|
## Quick start
|
|
19
20
|
|
|
20
21
|
```bash
|
|
22
|
+
aamp-cli register
|
|
21
23
|
aamp-cli login
|
|
22
24
|
aamp-cli listen
|
|
23
25
|
```
|
|
24
26
|
|
|
27
|
+
`register` will:
|
|
28
|
+
|
|
29
|
+
- discover the AAMP service via `/.well-known/aamp`
|
|
30
|
+
- create a new mailbox identity
|
|
31
|
+
- exchange the one-time registration code for credentials
|
|
32
|
+
- save the resulting profile under `~/.aamp-cli/profiles/`
|
|
33
|
+
|
|
25
34
|
`login` will prompt for:
|
|
26
35
|
|
|
27
36
|
- mailbox email
|
|
28
37
|
- mailbox password
|
|
29
38
|
|
|
30
|
-
|
|
39
|
+
AAMP base URL and SMTP host are derived automatically from the mailbox domain.
|
|
31
40
|
For example, `agent@meshmail.ai` defaults to:
|
|
32
41
|
|
|
33
|
-
- `
|
|
42
|
+
- `baseUrl = https://meshmail.ai`
|
|
34
43
|
- `smtpHost = meshmail.ai`
|
|
35
44
|
- `smtpPort = 587`
|
|
36
45
|
|
|
@@ -44,11 +53,18 @@ The profile is stored at:
|
|
|
44
53
|
|
|
45
54
|
```bash
|
|
46
55
|
aamp-cli login [--profile NAME]
|
|
56
|
+
aamp-cli register [--profile NAME] [--host URL] [--slug NAME]
|
|
47
57
|
aamp-cli init [--profile NAME]
|
|
48
58
|
aamp-cli listen [--profile NAME]
|
|
49
59
|
aamp-cli status [--profile NAME]
|
|
50
60
|
aamp-cli inbox [--profile NAME] [--limit N]
|
|
51
|
-
aamp-cli
|
|
61
|
+
aamp-cli directory-list [--profile NAME] [--include-self] [--limit N]
|
|
62
|
+
aamp-cli directory-search --query TEXT [--profile NAME] [--include-self] [--limit N]
|
|
63
|
+
aamp-cli directory-update [--profile NAME] [--summary TEXT] [--card-text TEXT] [--card-file PATH]
|
|
64
|
+
aamp-cli dispatch --to EMAIL --title TEXT [--body TEXT] [--priority urgent|high|normal] [--expires-at ISO] [--context-link URL]...
|
|
65
|
+
aamp-cli cancel --to EMAIL --task-id ID [--body TEXT]
|
|
52
66
|
aamp-cli result --to EMAIL --task-id ID --status completed|rejected [--output TEXT] [--error TEXT]
|
|
53
67
|
aamp-cli help --to EMAIL --task-id ID --question TEXT [--reason TEXT] [--option TEXT]...
|
|
68
|
+
aamp-cli card-query --to EMAIL [--body TEXT]
|
|
69
|
+
aamp-cli card-response --to EMAIL --task-id ID --summary TEXT [--body TEXT] [--card-file PATH]
|
|
54
70
|
```
|
package/dist/index.d.ts
CHANGED
|
@@ -1,2 +1,45 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { AampClient, type ReceivedAttachment } from 'aamp-sdk';
|
|
3
|
+
type CommandName = 'init' | 'login' | 'register' | 'listen' | 'dispatch' | 'result' | 'help' | 'cancel' | 'status' | 'inbox' | 'directory-list' | 'directory-search' | 'directory-update' | 'card-query' | 'card-response' | 'unknown';
|
|
4
|
+
interface ParsedArgs {
|
|
5
|
+
command: CommandName;
|
|
6
|
+
positionals: string[];
|
|
7
|
+
values: Record<string, string[]>;
|
|
8
|
+
booleans: Set<string>;
|
|
9
|
+
}
|
|
10
|
+
export declare function deriveServiceDefaults(email: string): {
|
|
11
|
+
baseUrl: string;
|
|
12
|
+
smtpHost: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function parseArgs(argv: string[]): ParsedArgs;
|
|
15
|
+
export declare function runInit(args: ParsedArgs): Promise<void>;
|
|
16
|
+
export declare function runLogin(args: ParsedArgs): Promise<void>;
|
|
17
|
+
export declare function runRegister(args: ParsedArgs): Promise<void>;
|
|
18
|
+
export declare function printDispatch(task: {
|
|
19
|
+
taskId: string;
|
|
20
|
+
title: string;
|
|
21
|
+
from: string;
|
|
22
|
+
priority?: 'urgent' | 'high' | 'normal';
|
|
23
|
+
expiresAt?: string;
|
|
24
|
+
bodyText?: string;
|
|
25
|
+
contextLinks?: string[];
|
|
26
|
+
attachments?: ReceivedAttachment[];
|
|
27
|
+
dispatchContext?: Record<string, string>;
|
|
28
|
+
}, logger?: Pick<typeof console, 'log'>): void;
|
|
29
|
+
type ListenClient = Pick<AampClient, 'on' | 'email' | 'isUsingPollingFallback' | 'connect' | 'disconnect'>;
|
|
30
|
+
type ListenLogger = Pick<typeof console, 'log' | 'error'>;
|
|
31
|
+
export declare function attachListenHandlers(client: ListenClient, logger?: ListenLogger): void;
|
|
32
|
+
export declare function runListen(args: ParsedArgs): Promise<void>;
|
|
33
|
+
export declare function runStatus(args: ParsedArgs): Promise<void>;
|
|
34
|
+
export declare function runInbox(args: ParsedArgs): Promise<void>;
|
|
35
|
+
export declare function runDispatch(args: ParsedArgs): Promise<void>;
|
|
36
|
+
export declare function runResult(args: ParsedArgs): Promise<void>;
|
|
37
|
+
export declare function runHelp(args: ParsedArgs): Promise<void>;
|
|
38
|
+
export declare function runCancel(args: ParsedArgs): Promise<void>;
|
|
39
|
+
export declare function runDirectoryList(args: ParsedArgs): Promise<void>;
|
|
40
|
+
export declare function runDirectorySearch(args: ParsedArgs): Promise<void>;
|
|
41
|
+
export declare function runDirectoryUpdate(args: ParsedArgs): Promise<void>;
|
|
42
|
+
export declare function runCardQuery(args: ParsedArgs): Promise<void>;
|
|
43
|
+
export declare function runCardResponse(args: ParsedArgs): Promise<void>;
|
|
44
|
+
export declare function main(): Promise<void>;
|
|
2
45
|
export {};
|
package/dist/index.js
CHANGED
|
@@ -4,17 +4,18 @@ import { existsSync } from 'node:fs';
|
|
|
4
4
|
import os from 'node:os';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import readline from 'node:readline/promises';
|
|
7
|
+
import { pathToFileURL } from 'node:url';
|
|
7
8
|
import { stdin as input, stdout as output } from 'node:process';
|
|
8
9
|
import { AampClient } from 'aamp-sdk';
|
|
9
10
|
const DEFAULT_PROFILE = 'default';
|
|
10
|
-
const
|
|
11
|
-
function deriveServiceDefaults(email) {
|
|
11
|
+
const DEFAULT_BASE_URL = 'https://meshmail.ai';
|
|
12
|
+
export function deriveServiceDefaults(email) {
|
|
12
13
|
const domain = email.split('@')[1]?.trim();
|
|
13
14
|
if (!domain) {
|
|
14
|
-
return {
|
|
15
|
+
return { baseUrl: DEFAULT_BASE_URL, smtpHost: new URL(DEFAULT_BASE_URL).hostname };
|
|
15
16
|
}
|
|
16
17
|
return {
|
|
17
|
-
|
|
18
|
+
baseUrl: `https://${domain}`,
|
|
18
19
|
smtpHost: domain,
|
|
19
20
|
};
|
|
20
21
|
}
|
|
@@ -23,23 +24,34 @@ function printUsage() {
|
|
|
23
24
|
|
|
24
25
|
Usage:
|
|
25
26
|
aamp-cli login [--profile NAME]
|
|
27
|
+
aamp-cli register [--profile NAME] [--host URL] [--slug NAME]
|
|
26
28
|
aamp-cli init [--profile NAME]
|
|
27
29
|
aamp-cli listen [--profile NAME]
|
|
28
30
|
aamp-cli status [--profile NAME]
|
|
29
31
|
aamp-cli inbox [--profile NAME] [--limit N]
|
|
30
|
-
aamp-cli
|
|
32
|
+
aamp-cli directory-list [--profile NAME] [--include-self] [--limit N]
|
|
33
|
+
aamp-cli directory-search --query TEXT [--profile NAME] [--include-self] [--limit N]
|
|
34
|
+
aamp-cli directory-update [--profile NAME] [--summary TEXT] [--card-text TEXT] [--card-file PATH]
|
|
35
|
+
aamp-cli dispatch --to EMAIL --title TEXT [--body TEXT] [--priority urgent|high|normal] [--expires-at ISO] [--context-link URL]...
|
|
31
36
|
aamp-cli result --to EMAIL --task-id ID --status completed|rejected [--output TEXT] [--error TEXT]
|
|
32
37
|
aamp-cli help --to EMAIL --task-id ID --question TEXT [--reason TEXT] [--option TEXT]...
|
|
38
|
+
aamp-cli cancel --to EMAIL --task-id ID [--body TEXT]
|
|
39
|
+
aamp-cli card-query --to EMAIL [--body TEXT]
|
|
40
|
+
aamp-cli card-response --to EMAIL --task-id ID --summary TEXT [--body TEXT] [--card-file PATH]
|
|
33
41
|
|
|
34
42
|
Examples:
|
|
35
43
|
aamp-cli login
|
|
44
|
+
aamp-cli register --host https://meshmail.ai --slug openclaw-agent
|
|
36
45
|
aamp-cli listen --profile default
|
|
37
|
-
aamp-cli
|
|
46
|
+
aamp-cli directory-search --query reviewer
|
|
47
|
+
aamp-cli dispatch --to agent@meshmail.ai --title "Review this patch" --priority high --body "Please review PR #42"
|
|
38
48
|
aamp-cli result --to meego@meshmail.ai --task-id 123 --status completed --output "Done"
|
|
39
49
|
aamp-cli help --to meego@meshmail.ai --task-id 123 --question "Which environment?" --option staging --option production
|
|
50
|
+
aamp-cli cancel --to agent@meshmail.ai --task-id 123 --body "No longer needed"
|
|
51
|
+
aamp-cli card-query --to agent@meshmail.ai --query "What services do you provide?"
|
|
40
52
|
`);
|
|
41
53
|
}
|
|
42
|
-
function parseArgs(argv) {
|
|
54
|
+
export function parseArgs(argv) {
|
|
43
55
|
const [rawCommand, ...rest] = argv;
|
|
44
56
|
const command = (rawCommand ?? 'unknown');
|
|
45
57
|
const positionals = [];
|
|
@@ -97,17 +109,19 @@ async function saveProfile(profile, data) {
|
|
|
97
109
|
await writeFile(file, `${JSON.stringify(data, null, 2)}\n`, 'utf8');
|
|
98
110
|
return file;
|
|
99
111
|
}
|
|
100
|
-
function
|
|
101
|
-
return
|
|
112
|
+
function resolveBaseUrl(profile) {
|
|
113
|
+
return profile.baseUrl || deriveServiceDefaults(profile.email).baseUrl;
|
|
114
|
+
}
|
|
115
|
+
function resolveSmtpHost(baseUrl, explicit) {
|
|
116
|
+
return explicit || new URL(baseUrl).hostname;
|
|
102
117
|
}
|
|
103
118
|
function createClient(profile) {
|
|
104
|
-
|
|
119
|
+
const baseUrl = resolveBaseUrl(profile);
|
|
120
|
+
return AampClient.fromMailboxIdentity({
|
|
105
121
|
email: profile.email,
|
|
106
|
-
jmapToken: profile.jmapToken,
|
|
107
|
-
jmapUrl: profile.jmapUrl,
|
|
108
|
-
smtpHost: resolveSmtpHost(profile.jmapUrl, profile.smtpHost),
|
|
109
|
-
smtpPort: profile.smtpPort ?? 587,
|
|
110
122
|
smtpPassword: profile.smtpPassword,
|
|
123
|
+
baseUrl,
|
|
124
|
+
smtpPort: profile.smtpPort ?? 587,
|
|
111
125
|
rejectUnauthorized: profile.rejectUnauthorized,
|
|
112
126
|
});
|
|
113
127
|
}
|
|
@@ -125,69 +139,96 @@ async function prompt(question, defaultValue = '') {
|
|
|
125
139
|
rl.close();
|
|
126
140
|
}
|
|
127
141
|
}
|
|
128
|
-
async function runInit(args) {
|
|
142
|
+
export async function runInit(args) {
|
|
129
143
|
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
130
144
|
const existingFile = getProfilePath(profile);
|
|
131
145
|
const existing = existsSync(existingFile) ? await loadProfile(profile) : null;
|
|
132
146
|
const email = firstArg(args, 'email') ?? await prompt('Mailbox email', existing?.email ?? '');
|
|
133
147
|
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
148
|
const inferred = deriveServiceDefaults(email);
|
|
136
|
-
const
|
|
149
|
+
const baseUrl = firstArg(args, 'base-url') ?? existing?.baseUrl ?? inferred.baseUrl;
|
|
137
150
|
const smtpHost = firstArg(args, 'smtp-host') ?? existing?.smtpHost ?? inferred.smtpHost;
|
|
138
151
|
const smtpPort = Number(firstArg(args, 'smtp-port') ?? String(existing?.smtpPort ?? 587));
|
|
139
152
|
const rejectUnauthorized = (firstArg(args, 'reject-unauthorized') ?? String(existing?.rejectUnauthorized ?? true)) !== 'false';
|
|
140
153
|
const file = await saveProfile(profile, {
|
|
141
154
|
email,
|
|
142
|
-
jmapToken,
|
|
143
155
|
smtpPassword,
|
|
144
|
-
|
|
156
|
+
baseUrl,
|
|
145
157
|
smtpHost,
|
|
146
158
|
smtpPort,
|
|
147
159
|
rejectUnauthorized,
|
|
148
160
|
});
|
|
149
161
|
console.log(`Saved profile "${profile}" to ${file}`);
|
|
150
|
-
console.log(`Derived
|
|
162
|
+
console.log(`Derived base URL: ${baseUrl}`);
|
|
151
163
|
console.log(`Derived SMTP host: ${smtpHost}:${smtpPort}`);
|
|
152
164
|
}
|
|
153
|
-
async function runLogin(args) {
|
|
165
|
+
export async function runLogin(args) {
|
|
154
166
|
await runInit(args);
|
|
155
167
|
}
|
|
156
|
-
function
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
168
|
+
export async function runRegister(args) {
|
|
169
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
170
|
+
const host = firstArg(args, 'host') ?? await prompt('AAMP host', DEFAULT_BASE_URL);
|
|
171
|
+
const slugInput = firstArg(args, 'slug') ?? await prompt('Mailbox slug', 'agent');
|
|
172
|
+
const slug = slugInput.toLowerCase().replace(/[\s_]+/g, '-').replace(/[^a-z0-9-]/g, '');
|
|
173
|
+
if (slug.length < 2) {
|
|
174
|
+
throw new Error('Mailbox slug must be at least 2 characters');
|
|
175
|
+
}
|
|
176
|
+
const identity = await AampClient.registerMailbox({
|
|
177
|
+
aampHost: host,
|
|
178
|
+
slug,
|
|
179
|
+
description: `Registered via aamp-cli (${profile})`,
|
|
180
|
+
});
|
|
181
|
+
const inferred = deriveServiceDefaults(identity.email);
|
|
182
|
+
const file = await saveProfile(profile, {
|
|
183
|
+
email: identity.email,
|
|
184
|
+
smtpPassword: identity.smtpPassword,
|
|
185
|
+
baseUrl: identity.baseUrl,
|
|
186
|
+
smtpHost: inferred.smtpHost,
|
|
187
|
+
smtpPort: 587,
|
|
188
|
+
rejectUnauthorized: true,
|
|
189
|
+
});
|
|
190
|
+
console.log(JSON.stringify({
|
|
191
|
+
profile,
|
|
192
|
+
email: identity.email,
|
|
193
|
+
baseUrl: identity.baseUrl,
|
|
194
|
+
mailboxToken: identity.mailboxToken,
|
|
195
|
+
savedTo: file,
|
|
196
|
+
}, null, 2));
|
|
197
|
+
}
|
|
198
|
+
export function printDispatch(task, logger = console) {
|
|
199
|
+
logger.log(`\n[AAMP] <- task.dispatch ${task.taskId}`);
|
|
200
|
+
logger.log(` from: ${task.from}`);
|
|
201
|
+
logger.log(` title: ${task.title}`);
|
|
202
|
+
logger.log(` priority: ${task.priority}`);
|
|
203
|
+
if (task.expiresAt)
|
|
204
|
+
logger.log(` expiresAt: ${task.expiresAt}`);
|
|
162
205
|
if (task.contextLinks?.length)
|
|
163
|
-
|
|
206
|
+
logger.log(` contextLinks: ${task.contextLinks.join(', ')}`);
|
|
164
207
|
if (task.dispatchContext && Object.keys(task.dispatchContext).length) {
|
|
165
|
-
|
|
208
|
+
logger.log(` dispatchContext: ${JSON.stringify(task.dispatchContext)}`);
|
|
166
209
|
}
|
|
167
210
|
if (task.attachments?.length) {
|
|
168
|
-
|
|
211
|
+
logger.log(` attachments: ${task.attachments.map((item) => item.filename).join(', ')}`);
|
|
169
212
|
}
|
|
170
213
|
if (task.bodyText?.trim()) {
|
|
171
|
-
|
|
172
|
-
|
|
214
|
+
logger.log(' body:');
|
|
215
|
+
logger.log(task.bodyText.split('\n').map((line) => ` ${line}`).join('\n'));
|
|
173
216
|
}
|
|
174
217
|
}
|
|
175
|
-
|
|
176
|
-
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
177
|
-
const client = createClient(await loadProfile(profile));
|
|
218
|
+
export function attachListenHandlers(client, logger = console) {
|
|
178
219
|
let lastErrorSignature = '';
|
|
179
220
|
client.on('connected', () => {
|
|
180
|
-
|
|
221
|
+
logger.log(`[AAMP] connected as ${client.email} (${formatTransport(client)})`);
|
|
181
222
|
});
|
|
182
223
|
client.on('disconnected', (reason) => {
|
|
183
|
-
|
|
224
|
+
logger.log(`[AAMP] disconnected: ${reason}`);
|
|
184
225
|
});
|
|
185
226
|
client.on('error', (err) => {
|
|
186
227
|
const isFallbackActive = client.isUsingPollingFallback();
|
|
187
228
|
const isHandshakeNoise = err.message.startsWith('JMAP WebSocket handshake failed:');
|
|
188
229
|
const isFallbackTransition = err.message.startsWith('JMAP WebSocket unavailable, falling back to polling:');
|
|
189
230
|
if (isFallbackTransition) {
|
|
190
|
-
|
|
231
|
+
logger.log(`[AAMP] websocket unavailable, using polling fallback`);
|
|
191
232
|
return;
|
|
192
233
|
}
|
|
193
234
|
if (isFallbackActive && isHandshakeNoise)
|
|
@@ -195,35 +236,57 @@ async function runListen(args) {
|
|
|
195
236
|
if (err.message === lastErrorSignature)
|
|
196
237
|
return;
|
|
197
238
|
lastErrorSignature = err.message;
|
|
198
|
-
|
|
239
|
+
logger.error(`[AAMP] error: ${err.message}`);
|
|
199
240
|
});
|
|
200
241
|
client.on('task.dispatch', (task) => {
|
|
201
|
-
printDispatch(task);
|
|
242
|
+
printDispatch(task, logger);
|
|
243
|
+
});
|
|
244
|
+
client.on('task.cancel', (cancel) => {
|
|
245
|
+
logger.log(`\n[AAMP] <- task.cancel ${cancel.taskId} from=${cancel.from}`);
|
|
246
|
+
if (cancel.bodyText?.trim())
|
|
247
|
+
logger.log(` body: ${cancel.bodyText}`);
|
|
202
248
|
});
|
|
203
249
|
client.on('task.ack', (ack) => {
|
|
204
|
-
|
|
250
|
+
logger.log(`\n[AAMP] <- task.ack ${ack.taskId} from=${ack.from}`);
|
|
205
251
|
});
|
|
206
252
|
client.on('task.help_needed', (help) => {
|
|
207
|
-
|
|
208
|
-
|
|
253
|
+
logger.log(`\n[AAMP] <- task.help_needed ${help.taskId} from=${help.from}`);
|
|
254
|
+
logger.log(` question: ${help.question}`);
|
|
209
255
|
if (help.blockedReason)
|
|
210
|
-
|
|
256
|
+
logger.log(` blockedReason: ${help.blockedReason}`);
|
|
211
257
|
if (help.suggestedOptions?.length)
|
|
212
|
-
|
|
258
|
+
logger.log(` suggestedOptions: ${help.suggestedOptions.join(', ')}`);
|
|
213
259
|
});
|
|
214
260
|
client.on('task.result', (result) => {
|
|
215
|
-
|
|
261
|
+
logger.log(`\n[AAMP] <- task.result ${result.taskId} from=${result.from} status=${result.status}`);
|
|
216
262
|
if (result.output)
|
|
217
|
-
|
|
263
|
+
logger.log(` output: ${result.output}`);
|
|
218
264
|
if (result.errorMsg)
|
|
219
|
-
|
|
265
|
+
logger.log(` error: ${result.errorMsg}`);
|
|
220
266
|
if (result.attachments?.length)
|
|
221
|
-
|
|
267
|
+
logger.log(` attachments: ${result.attachments.map((item) => item.filename).join(', ')}`);
|
|
268
|
+
});
|
|
269
|
+
client.on('card.query', (cardQuery) => {
|
|
270
|
+
logger.log(`\n[AAMP] <- card.query ${cardQuery.taskId} from=${cardQuery.from}`);
|
|
271
|
+
logger.log(` subject: ${cardQuery.subject}`);
|
|
272
|
+
if (cardQuery.bodyText?.trim())
|
|
273
|
+
logger.log(` body: ${cardQuery.bodyText}`);
|
|
274
|
+
});
|
|
275
|
+
client.on('card.response', (cardResponse) => {
|
|
276
|
+
logger.log(`\n[AAMP] <- card.response ${cardResponse.taskId} from=${cardResponse.from}`);
|
|
277
|
+
logger.log(` summary: ${cardResponse.summary}`);
|
|
278
|
+
if (cardResponse.bodyText?.trim())
|
|
279
|
+
logger.log(` body: ${cardResponse.bodyText}`);
|
|
222
280
|
});
|
|
223
281
|
client.on('reply', (reply) => {
|
|
224
|
-
|
|
225
|
-
|
|
282
|
+
logger.log(`\n[AAMP] <- human reply inReplyTo=${reply.inReplyTo} from=${reply.from}`);
|
|
283
|
+
logger.log(` body: ${reply.bodyText}`);
|
|
226
284
|
});
|
|
285
|
+
}
|
|
286
|
+
export async function runListen(args) {
|
|
287
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
288
|
+
const client = createClient(await loadProfile(profile));
|
|
289
|
+
attachListenHandlers(client);
|
|
227
290
|
await client.connect();
|
|
228
291
|
console.log(`[AAMP] listening as ${client.email}; press Ctrl+C to stop`);
|
|
229
292
|
const shutdown = () => {
|
|
@@ -234,7 +297,7 @@ async function runListen(args) {
|
|
|
234
297
|
process.on('SIGTERM', shutdown);
|
|
235
298
|
await new Promise(() => { });
|
|
236
299
|
}
|
|
237
|
-
async function runStatus(args) {
|
|
300
|
+
export async function runStatus(args) {
|
|
238
301
|
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
239
302
|
const cfg = await loadProfile(profile);
|
|
240
303
|
const client = createClient(cfg);
|
|
@@ -243,35 +306,36 @@ async function runStatus(args) {
|
|
|
243
306
|
console.log(JSON.stringify({
|
|
244
307
|
profile,
|
|
245
308
|
email: cfg.email,
|
|
246
|
-
|
|
247
|
-
smtpHost: resolveSmtpHost(cfg
|
|
309
|
+
baseUrl: resolveBaseUrl(cfg),
|
|
310
|
+
smtpHost: resolveSmtpHost(resolveBaseUrl(cfg), cfg.smtpHost),
|
|
248
311
|
smtpPort: cfg.smtpPort ?? 587,
|
|
249
312
|
transport: formatTransport(client),
|
|
250
313
|
smtpVerified: smtpOk,
|
|
251
314
|
}, null, 2));
|
|
252
315
|
client.disconnect();
|
|
253
316
|
}
|
|
254
|
-
async function runInbox(args) {
|
|
317
|
+
export async function runInbox(args) {
|
|
255
318
|
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
256
319
|
const limit = Number(firstArg(args, 'limit') ?? '20');
|
|
257
320
|
const client = createClient(await loadProfile(profile));
|
|
258
321
|
const processed = await client.reconcileRecentEmails(limit);
|
|
259
322
|
console.log(`Reconciled ${processed} recent email(s)`);
|
|
260
323
|
}
|
|
261
|
-
async function runDispatch(args) {
|
|
324
|
+
export async function runDispatch(args) {
|
|
262
325
|
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
263
326
|
const client = createClient(await loadProfile(profile));
|
|
264
327
|
const payload = {
|
|
265
328
|
to: requireArg(args, 'to'),
|
|
266
329
|
title: requireArg(args, 'title'),
|
|
267
330
|
bodyText: firstArg(args, 'body'),
|
|
268
|
-
|
|
331
|
+
priority: firstArg(args, 'priority'),
|
|
332
|
+
expiresAt: firstArg(args, 'expires-at'),
|
|
269
333
|
contextLinks: allArgs(args, 'context-link'),
|
|
270
334
|
};
|
|
271
335
|
const result = await client.sendTask(payload);
|
|
272
336
|
console.log(JSON.stringify(result, null, 2));
|
|
273
337
|
}
|
|
274
|
-
async function runResult(args) {
|
|
338
|
+
export async function runResult(args) {
|
|
275
339
|
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
276
340
|
const client = createClient(await loadProfile(profile));
|
|
277
341
|
const payload = {
|
|
@@ -284,7 +348,7 @@ async function runResult(args) {
|
|
|
284
348
|
await client.sendResult(payload);
|
|
285
349
|
console.log(`Sent task.result for ${payload.taskId}`);
|
|
286
350
|
}
|
|
287
|
-
async function runHelp(args) {
|
|
351
|
+
export async function runHelp(args) {
|
|
288
352
|
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
289
353
|
const client = createClient(await loadProfile(profile));
|
|
290
354
|
const payload = {
|
|
@@ -297,7 +361,72 @@ async function runHelp(args) {
|
|
|
297
361
|
await client.sendHelp(payload);
|
|
298
362
|
console.log(`Sent task.help_needed for ${payload.taskId}`);
|
|
299
363
|
}
|
|
300
|
-
async function
|
|
364
|
+
export async function runCancel(args) {
|
|
365
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
366
|
+
const client = createClient(await loadProfile(profile));
|
|
367
|
+
const payload = {
|
|
368
|
+
to: requireArg(args, 'to'),
|
|
369
|
+
taskId: requireArg(args, 'task-id'),
|
|
370
|
+
bodyText: firstArg(args, 'body'),
|
|
371
|
+
};
|
|
372
|
+
await client.sendCancel(payload);
|
|
373
|
+
console.log(`Sent task.cancel for ${payload.taskId}`);
|
|
374
|
+
}
|
|
375
|
+
export async function runDirectoryList(args) {
|
|
376
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
377
|
+
const client = createClient(await loadProfile(profile));
|
|
378
|
+
const agents = await client.listDirectory({
|
|
379
|
+
includeSelf: args.booleans.has('include-self'),
|
|
380
|
+
limit: firstArg(args, 'limit') ? Number(firstArg(args, 'limit')) : undefined,
|
|
381
|
+
});
|
|
382
|
+
console.log(JSON.stringify({ agents }, null, 2));
|
|
383
|
+
}
|
|
384
|
+
export async function runDirectorySearch(args) {
|
|
385
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
386
|
+
const client = createClient(await loadProfile(profile));
|
|
387
|
+
const agents = await client.searchDirectory({
|
|
388
|
+
query: requireArg(args, 'query'),
|
|
389
|
+
includeSelf: args.booleans.has('include-self'),
|
|
390
|
+
limit: firstArg(args, 'limit') ? Number(firstArg(args, 'limit')) : undefined,
|
|
391
|
+
});
|
|
392
|
+
console.log(JSON.stringify({ agents }, null, 2));
|
|
393
|
+
}
|
|
394
|
+
export async function runDirectoryUpdate(args) {
|
|
395
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
396
|
+
const client = createClient(await loadProfile(profile));
|
|
397
|
+
const cardFile = firstArg(args, 'card-file');
|
|
398
|
+
const cardText = firstArg(args, 'card-text')
|
|
399
|
+
?? (cardFile ? await readFile(cardFile, 'utf8') : undefined);
|
|
400
|
+
const profileData = await client.updateDirectoryProfile({
|
|
401
|
+
summary: firstArg(args, 'summary'),
|
|
402
|
+
cardText,
|
|
403
|
+
});
|
|
404
|
+
console.log(JSON.stringify({ profile: profileData }, null, 2));
|
|
405
|
+
}
|
|
406
|
+
export async function runCardQuery(args) {
|
|
407
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
408
|
+
const client = createClient(await loadProfile(profile));
|
|
409
|
+
const result = await client.sendCardQuery({
|
|
410
|
+
to: requireArg(args, 'to'),
|
|
411
|
+
bodyText: firstArg(args, 'body'),
|
|
412
|
+
});
|
|
413
|
+
console.log(JSON.stringify(result, null, 2));
|
|
414
|
+
}
|
|
415
|
+
export async function runCardResponse(args) {
|
|
416
|
+
const profile = firstArg(args, 'profile') ?? DEFAULT_PROFILE;
|
|
417
|
+
const client = createClient(await loadProfile(profile));
|
|
418
|
+
const cardFile = firstArg(args, 'card-file');
|
|
419
|
+
const bodyText = firstArg(args, 'body')
|
|
420
|
+
?? (cardFile ? await readFile(cardFile, 'utf8') : '');
|
|
421
|
+
await client.sendCardResponse({
|
|
422
|
+
to: requireArg(args, 'to'),
|
|
423
|
+
taskId: requireArg(args, 'task-id'),
|
|
424
|
+
summary: requireArg(args, 'summary'),
|
|
425
|
+
bodyText,
|
|
426
|
+
});
|
|
427
|
+
console.log(`Sent card.response for ${requireArg(args, 'task-id')}`);
|
|
428
|
+
}
|
|
429
|
+
export async function main() {
|
|
301
430
|
const args = parseArgs(process.argv.slice(2));
|
|
302
431
|
if (args.booleans.has('help') || args.command === 'unknown') {
|
|
303
432
|
printUsage();
|
|
@@ -307,6 +436,9 @@ async function main() {
|
|
|
307
436
|
case 'login':
|
|
308
437
|
await runLogin(args);
|
|
309
438
|
return;
|
|
439
|
+
case 'register':
|
|
440
|
+
await runRegister(args);
|
|
441
|
+
return;
|
|
310
442
|
case 'init':
|
|
311
443
|
await runInit(args);
|
|
312
444
|
return;
|
|
@@ -328,12 +460,33 @@ async function main() {
|
|
|
328
460
|
case 'help':
|
|
329
461
|
await runHelp(args);
|
|
330
462
|
return;
|
|
463
|
+
case 'cancel':
|
|
464
|
+
await runCancel(args);
|
|
465
|
+
return;
|
|
466
|
+
case 'directory-list':
|
|
467
|
+
await runDirectoryList(args);
|
|
468
|
+
return;
|
|
469
|
+
case 'directory-search':
|
|
470
|
+
await runDirectorySearch(args);
|
|
471
|
+
return;
|
|
472
|
+
case 'directory-update':
|
|
473
|
+
await runDirectoryUpdate(args);
|
|
474
|
+
return;
|
|
475
|
+
case 'card-query':
|
|
476
|
+
await runCardQuery(args);
|
|
477
|
+
return;
|
|
478
|
+
case 'card-response':
|
|
479
|
+
await runCardResponse(args);
|
|
480
|
+
return;
|
|
331
481
|
default:
|
|
332
482
|
printUsage();
|
|
333
483
|
}
|
|
334
484
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
});
|
|
485
|
+
const isDirectRun = process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href;
|
|
486
|
+
if (isDirectRun) {
|
|
487
|
+
main().catch((err) => {
|
|
488
|
+
console.error(`[aamp-cli] ${err instanceof Error ? err.message : String(err)}`);
|
|
489
|
+
process.exit(1);
|
|
490
|
+
});
|
|
491
|
+
}
|
|
339
492
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { mkdtempSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
3
|
+
import os from 'node:os';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
6
|
+
class FakeClient {
|
|
7
|
+
handlers = new Map();
|
|
8
|
+
email = 'agent@meshmail.ai';
|
|
9
|
+
sendTask = vi.fn().mockResolvedValue({ taskId: 'task-1', messageId: 'msg-1' });
|
|
10
|
+
sendResult = vi.fn().mockResolvedValue(undefined);
|
|
11
|
+
sendHelp = vi.fn().mockResolvedValue(undefined);
|
|
12
|
+
sendCancel = vi.fn().mockResolvedValue(undefined);
|
|
13
|
+
verifySmtp = vi.fn().mockResolvedValue(true);
|
|
14
|
+
connect = vi.fn().mockResolvedValue(undefined);
|
|
15
|
+
disconnect = vi.fn();
|
|
16
|
+
isUsingPollingFallback = vi.fn().mockReturnValue(false);
|
|
17
|
+
on(event, handler) {
|
|
18
|
+
const list = this.handlers.get(event) ?? [];
|
|
19
|
+
list.push(handler);
|
|
20
|
+
this.handlers.set(event, list);
|
|
21
|
+
}
|
|
22
|
+
emit(event, payload) {
|
|
23
|
+
for (const handler of this.handlers.get(event) ?? []) {
|
|
24
|
+
handler(payload);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
const registerMailbox = vi.fn();
|
|
29
|
+
const fromMailboxIdentity = vi.fn();
|
|
30
|
+
let tempHome = '';
|
|
31
|
+
describe('aamp-cli helpers', () => {
|
|
32
|
+
beforeEach(() => {
|
|
33
|
+
vi.resetModules();
|
|
34
|
+
vi.restoreAllMocks();
|
|
35
|
+
tempHome = mkdtempSync(path.join(os.tmpdir(), 'aamp-cli-test-'));
|
|
36
|
+
vi.spyOn(os, 'homedir').mockReturnValue(tempHome);
|
|
37
|
+
registerMailbox.mockReset();
|
|
38
|
+
fromMailboxIdentity.mockReset();
|
|
39
|
+
fromMailboxIdentity.mockImplementation(() => new FakeClient());
|
|
40
|
+
vi.doMock('aamp-sdk', () => ({
|
|
41
|
+
AampClient: {
|
|
42
|
+
registerMailbox,
|
|
43
|
+
fromMailboxIdentity,
|
|
44
|
+
},
|
|
45
|
+
}));
|
|
46
|
+
});
|
|
47
|
+
it('writes init profiles with derived defaults', async () => {
|
|
48
|
+
const cli = await import('./index.ts');
|
|
49
|
+
const args = cli.parseArgs([
|
|
50
|
+
'init',
|
|
51
|
+
'--email', 'worker@meshmail.ai',
|
|
52
|
+
'--password', 'smtp-1',
|
|
53
|
+
'--profile', 'demo',
|
|
54
|
+
]);
|
|
55
|
+
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
56
|
+
await cli.runInit(args);
|
|
57
|
+
const profile = JSON.parse(readFileSync(path.join(tempHome, '.aamp-cli', 'profiles', 'demo.json'), 'utf8'));
|
|
58
|
+
expect(profile).toMatchObject({
|
|
59
|
+
email: 'worker@meshmail.ai',
|
|
60
|
+
smtpPassword: 'smtp-1',
|
|
61
|
+
baseUrl: 'https://meshmail.ai',
|
|
62
|
+
smtpHost: 'meshmail.ai',
|
|
63
|
+
smtpPort: 587,
|
|
64
|
+
rejectUnauthorized: true,
|
|
65
|
+
});
|
|
66
|
+
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('Saved profile "demo"'));
|
|
67
|
+
});
|
|
68
|
+
it('registers a mailbox and persists the returned identity', async () => {
|
|
69
|
+
registerMailbox.mockResolvedValue({
|
|
70
|
+
email: 'registered@meshmail.ai',
|
|
71
|
+
smtpPassword: 'smtp-registered',
|
|
72
|
+
mailboxToken: 'mailbox-token',
|
|
73
|
+
baseUrl: 'https://meshmail.ai',
|
|
74
|
+
});
|
|
75
|
+
const cli = await import('./index.ts');
|
|
76
|
+
const args = cli.parseArgs([
|
|
77
|
+
'register',
|
|
78
|
+
'--host', 'https://meshmail.ai',
|
|
79
|
+
'--slug', 'OpenClaw Agent',
|
|
80
|
+
'--profile', 'demo',
|
|
81
|
+
]);
|
|
82
|
+
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
83
|
+
await cli.runRegister(args);
|
|
84
|
+
expect(registerMailbox).toHaveBeenCalledWith(expect.objectContaining({
|
|
85
|
+
aampHost: 'https://meshmail.ai',
|
|
86
|
+
slug: 'openclaw-agent',
|
|
87
|
+
}));
|
|
88
|
+
const saved = JSON.parse(readFileSync(path.join(tempHome, '.aamp-cli', 'profiles', 'demo.json'), 'utf8'));
|
|
89
|
+
expect(saved.email).toBe('registered@meshmail.ai');
|
|
90
|
+
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('"profile": "demo"'));
|
|
91
|
+
});
|
|
92
|
+
it('dispatches tasks through the SDK client', async () => {
|
|
93
|
+
const cli = await import('./index.ts');
|
|
94
|
+
const profilePath = path.join(tempHome, '.aamp-cli', 'profiles', 'default.json');
|
|
95
|
+
const profile = {
|
|
96
|
+
email: 'worker@meshmail.ai',
|
|
97
|
+
smtpPassword: 'smtp-1',
|
|
98
|
+
baseUrl: 'https://meshmail.ai',
|
|
99
|
+
smtpHost: 'meshmail.ai',
|
|
100
|
+
smtpPort: 587,
|
|
101
|
+
rejectUnauthorized: true,
|
|
102
|
+
};
|
|
103
|
+
await mkdir(path.dirname(profilePath), { recursive: true });
|
|
104
|
+
await writeFile(profilePath, JSON.stringify(profile), 'utf8');
|
|
105
|
+
const args = cli.parseArgs([
|
|
106
|
+
'dispatch',
|
|
107
|
+
'--to', 'reviewer@meshmail.ai',
|
|
108
|
+
'--title', 'Review PR',
|
|
109
|
+
'--body', 'Please review the change.',
|
|
110
|
+
'--context-link', 'https://example.com/pr/42',
|
|
111
|
+
]);
|
|
112
|
+
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
113
|
+
await cli.runDispatch(args);
|
|
114
|
+
const client = fromMailboxIdentity.mock.results[0].value;
|
|
115
|
+
expect(client.sendTask).toHaveBeenCalledWith(expect.objectContaining({
|
|
116
|
+
to: 'reviewer@meshmail.ai',
|
|
117
|
+
title: 'Review PR',
|
|
118
|
+
bodyText: 'Please review the change.',
|
|
119
|
+
contextLinks: ['https://example.com/pr/42'],
|
|
120
|
+
}));
|
|
121
|
+
expect(logSpy).toHaveBeenCalledWith(expect.stringContaining('"taskId": "task-1"'));
|
|
122
|
+
});
|
|
123
|
+
it('logs inbound dispatch and result events for listen mode', async () => {
|
|
124
|
+
const cli = await import('./index.ts');
|
|
125
|
+
const client = new FakeClient();
|
|
126
|
+
const messages = [];
|
|
127
|
+
const logger = {
|
|
128
|
+
log: (message) => messages.push(message),
|
|
129
|
+
error: (message) => messages.push(message),
|
|
130
|
+
};
|
|
131
|
+
cli.attachListenHandlers(client, logger);
|
|
132
|
+
client.emit('task.dispatch', {
|
|
133
|
+
taskId: 'task-3',
|
|
134
|
+
from: 'dispatcher@meshmail.ai',
|
|
135
|
+
title: 'Review protocol',
|
|
136
|
+
priority: 'high',
|
|
137
|
+
contextLinks: ['https://example.com/context'],
|
|
138
|
+
bodyText: 'Please compare the latest headers.',
|
|
139
|
+
});
|
|
140
|
+
client.emit('task.result', {
|
|
141
|
+
taskId: 'task-3',
|
|
142
|
+
from: 'worker@meshmail.ai',
|
|
143
|
+
status: 'completed',
|
|
144
|
+
output: 'Done.',
|
|
145
|
+
});
|
|
146
|
+
expect(messages.join('\n')).toContain('task.dispatch task-3');
|
|
147
|
+
expect(messages.join('\n')).toContain('Please compare the latest headers.');
|
|
148
|
+
expect(messages.join('\n')).toContain('task.result task-3');
|
|
149
|
+
});
|
|
150
|
+
});
|
|
151
|
+
//# sourceMappingURL=index.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7D,MAAM,UAAU;IACN,QAAQ,GAAG,IAAI,GAAG,EAA2C,CAAA;IACrE,KAAK,GAAG,mBAAmB,CAAA;IAC3B,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9E,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACjD,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC/C,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IACjD,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC5C,OAAO,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;IACpB,sBAAsB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;IAEvD,EAAE,CAAC,KAAa,EAAE,OAAiC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,CAAC,KAAa,EAAE,OAAgB;QAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YACrD,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;CACF;AAED,MAAM,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;AAC/B,MAAM,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAA;AACnC,IAAI,QAAQ,GAAG,EAAE,CAAA;AAEjB,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,YAAY,EAAE,CAAA;QACjB,EAAE,CAAC,eAAe,EAAE,CAAA;QACpB,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAA;QAChE,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAA;QAEjD,eAAe,CAAC,SAAS,EAAE,CAAA;QAC3B,mBAAmB,CAAC,SAAS,EAAE,CAAA;QAC/B,mBAAmB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,CAAA;QAE9D,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3B,UAAU,EAAE;gBACV,eAAe;gBACf,mBAAmB;aACpB;SACF,CAAC,CAAC,CAAA;IACL,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;YACzB,MAAM;YACN,SAAS,EAAE,oBAAoB;YAC/B,YAAY,EAAE,QAAQ;YACtB,WAAW,EAAE,MAAM;SACpB,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEpE,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAEvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3G,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC;YAC5B,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,GAAG;YACb,kBAAkB,EAAE,IAAI;SACzB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAA;IACtF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,eAAe,CAAC,iBAAiB,CAAC;YAChC,KAAK,EAAE,wBAAwB;YAC/B,YAAY,EAAE,iBAAiB;YAC/B,YAAY,EAAE,eAAe;YAC7B,OAAO,EAAE,qBAAqB;SAC/B,CAAC,CAAA;QAEF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;YACzB,UAAU;YACV,QAAQ,EAAE,qBAAqB;YAC/B,QAAQ,EAAE,gBAAgB;YAC1B,WAAW,EAAE,MAAM;SACpB,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEpE,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE3B,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACnE,QAAQ,EAAE,qBAAqB;YAC/B,IAAI,EAAE,gBAAgB;SACvB,CAAC,CAAC,CAAA;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QACzG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAClD,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,CAAC,CAAA;QAChF,MAAM,OAAO,GAAG;YACd,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,GAAG;YACb,kBAAkB,EAAE,IAAI;SACzB,CAAA;QACD,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC3D,MAAM,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAA;QAE7D,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC;YACzB,UAAU;YACV,MAAM,EAAE,sBAAsB;YAC9B,SAAS,EAAE,WAAW;YACtB,QAAQ,EAAE,2BAA2B;YACrC,gBAAgB,EAAE,2BAA2B;SAC9C,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAEpE,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QAE3B,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAmB,CAAA;QACtE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACnE,EAAE,EAAE,sBAAsB;YAC1B,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,2BAA2B;YACrC,YAAY,EAAE,CAAC,2BAA2B,CAAC;SAC5C,CAAC,CAAC,CAAA;QACH,MAAM,CAAC,MAAM,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,CAAA;IACpF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAA;QACtC,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;QAC/B,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;YAChD,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;SACnD,CAAA;QAED,GAAG,CAAC,oBAAoB,CAAC,MAAe,EAAE,MAAM,CAAC,CAAA;QACjD,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE;YAC3B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,iBAAiB;YACxB,QAAQ,EAAE,MAAM;YAChB,YAAY,EAAE,CAAC,6BAA6B,CAAC;YAC7C,QAAQ,EAAE,oCAAoC;SAC/C,CAAC,CAAA;QACF,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YACzB,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAA;QAEF,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAA;QAC7D,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,oCAAoC,CAAC,CAAA;QAC3E,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;IAC7D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"dist"
|
|
5
5
|
],
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"version": "0.1.
|
|
7
|
+
"version": "0.1.2",
|
|
8
8
|
"description": "CLI for connecting any agent mailbox to the AAMP network via aamp-sdk",
|
|
9
9
|
"type": "module",
|
|
10
10
|
"main": "dist/index.js",
|
|
@@ -14,14 +14,16 @@
|
|
|
14
14
|
"scripts": {
|
|
15
15
|
"dev": "tsx src/index.ts",
|
|
16
16
|
"build": "tsc",
|
|
17
|
-
"start": "node dist/index.js"
|
|
17
|
+
"start": "node dist/index.js",
|
|
18
|
+
"test": "vitest run"
|
|
18
19
|
},
|
|
19
20
|
"dependencies": {
|
|
20
|
-
"aamp-sdk": "^0.1.
|
|
21
|
+
"aamp-sdk": "^0.1.14"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@types/node": "^20.11.30",
|
|
24
25
|
"tsx": "^4.7.1",
|
|
25
|
-
"typescript": "^5.4.3"
|
|
26
|
+
"typescript": "^5.4.3",
|
|
27
|
+
"vitest": "^1.6.1"
|
|
26
28
|
}
|
|
27
29
|
}
|