aamp-sdk 0.1.14 → 0.1.16

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.
@@ -7,7 +7,7 @@ import { createTransport } from 'nodemailer';
7
7
  import { randomUUID } from 'crypto';
8
8
  /** Strip CR/LF to prevent email header injection */
9
9
  const sanitize = (s) => s.replace(/[\r\n]/g, ' ').trim();
10
- import { buildDispatchHeaders, buildCancelHeaders, buildResultHeaders, buildHelpHeaders, buildAckHeaders, buildCardQueryHeaders, buildCardResponseHeaders, } from './parser.js';
10
+ import { buildDispatchHeaders, buildCancelHeaders, buildResultHeaders, buildHelpHeaders, buildAckHeaders, buildStreamOpenedHeaders, buildCardQueryHeaders, buildCardResponseHeaders, } from './parser.js';
11
11
  export function deriveMailboxServiceDefaults(email, baseUrl) {
12
12
  const domain = email.split('@')[1]?.trim();
13
13
  const resolvedBaseUrl = baseUrl?.trim() || (domain ? `https://${domain}` : undefined);
@@ -21,6 +21,8 @@ export class SmtpSender {
21
21
  config;
22
22
  transport;
23
23
  discoveredApiUrlPromise = null;
24
+ jmapSessionPromise = null;
25
+ sentMailboxIdPromise = null;
24
26
  static fromMailboxIdentity(config) {
25
27
  const derived = deriveMailboxServiceDefaults(config.email, config.baseUrl);
26
28
  return new SmtpSender({
@@ -117,6 +119,139 @@ export class SmtpSender {
117
119
  }
118
120
  return { messageId: data.messageId };
119
121
  }
122
+ canPersistSentCopy() {
123
+ return Boolean(this.config.httpBaseUrl && this.config.authToken);
124
+ }
125
+ getJmapAuthHeader() {
126
+ if (!this.config.authToken) {
127
+ throw new Error('JMAP auth token is not configured');
128
+ }
129
+ return `Basic ${this.config.authToken}`;
130
+ }
131
+ async resolveJmapSession() {
132
+ const base = this.config.httpBaseUrl?.replace(/\/$/, '');
133
+ if (!base) {
134
+ throw new Error('JMAP base URL is not configured');
135
+ }
136
+ if (!this.jmapSessionPromise) {
137
+ this.jmapSessionPromise = (async () => {
138
+ const res = await fetch(`${base}/.well-known/jmap`, {
139
+ headers: { Authorization: this.getJmapAuthHeader() },
140
+ });
141
+ if (!res.ok) {
142
+ throw new Error(`JMAP session failed: ${res.status} ${res.statusText}`);
143
+ }
144
+ const session = await res.json();
145
+ const accountId = session.primaryAccounts?.['urn:ietf:params:jmap:mail']
146
+ ?? Object.keys(session.accounts ?? {})[0];
147
+ if (!accountId) {
148
+ throw new Error('No JMAP mail account available');
149
+ }
150
+ return {
151
+ accountId,
152
+ apiUrl: `${base}/jmap/`,
153
+ };
154
+ })();
155
+ }
156
+ try {
157
+ return await this.jmapSessionPromise;
158
+ }
159
+ catch (err) {
160
+ this.jmapSessionPromise = null;
161
+ throw err;
162
+ }
163
+ }
164
+ async jmapCall(methodCalls) {
165
+ const session = await this.resolveJmapSession();
166
+ const res = await fetch(session.apiUrl, {
167
+ method: 'POST',
168
+ headers: {
169
+ Authorization: this.getJmapAuthHeader(),
170
+ 'Content-Type': 'application/json',
171
+ },
172
+ body: JSON.stringify({
173
+ using: [
174
+ 'urn:ietf:params:jmap:core',
175
+ 'urn:ietf:params:jmap:mail',
176
+ ],
177
+ methodCalls: methodCalls.map(([name, args, tag]) => [
178
+ name,
179
+ { accountId: session.accountId, ...args },
180
+ tag,
181
+ ]),
182
+ }),
183
+ });
184
+ if (!res.ok) {
185
+ throw new Error(`JMAP API call failed: ${res.status}`);
186
+ }
187
+ const data = await res.json();
188
+ return data.methodResponses ?? [];
189
+ }
190
+ async getSentMailboxId() {
191
+ if (!this.sentMailboxIdPromise) {
192
+ this.sentMailboxIdPromise = (async () => {
193
+ const responses = await this.jmapCall([
194
+ ['Mailbox/get', { ids: null }, 'mb1'],
195
+ ]);
196
+ const result = responses.find(([name]) => name === 'Mailbox/get')?.[1];
197
+ const mailboxes = result?.list ?? [];
198
+ return mailboxes.find((mailbox) => mailbox.role === 'sent')?.id ?? mailboxes[0]?.id ?? null;
199
+ })();
200
+ }
201
+ try {
202
+ return await this.sentMailboxIdPromise;
203
+ }
204
+ catch (err) {
205
+ this.sentMailboxIdPromise = null;
206
+ throw err;
207
+ }
208
+ }
209
+ async saveToSent(params) {
210
+ if (!this.canPersistSentCopy())
211
+ return;
212
+ const sentMailboxId = await this.getSentMailboxId();
213
+ if (!sentMailboxId)
214
+ return;
215
+ const emailCreate = {
216
+ mailboxIds: { [sentMailboxId]: true },
217
+ from: [{ email: params.from }],
218
+ to: [{ email: params.to }],
219
+ subject: params.subject,
220
+ bodyValues: {
221
+ body: {
222
+ value: params.text,
223
+ charset: 'utf-8',
224
+ },
225
+ },
226
+ textBody: [{ partId: 'body', type: 'text/plain' }],
227
+ keywords: { '$seen': true },
228
+ };
229
+ if (params.inReplyTo) {
230
+ emailCreate['header:In-Reply-To:asText'] = ` ${sanitize(params.inReplyTo)}`;
231
+ }
232
+ if (params.messageId) {
233
+ emailCreate['header:Message-ID:asText'] = ` ${sanitize(params.messageId)}`;
234
+ }
235
+ if (params.references) {
236
+ emailCreate['header:References:asText'] = ` ${sanitize(params.references)}`;
237
+ }
238
+ for (const [name, value] of Object.entries(params.aampHeaders)) {
239
+ emailCreate[`header:${name}:asText`] = ` ${value}`;
240
+ }
241
+ await this.jmapCall([
242
+ ['Email/set', { create: { sent1: emailCreate } }, 'sent1'],
243
+ ]);
244
+ }
245
+ async saveToSentBestEffort(params) {
246
+ if (!this.canPersistSentCopy())
247
+ return;
248
+ try {
249
+ await this.saveToSent(params);
250
+ }
251
+ catch {
252
+ // Non-fatal: mail delivery already succeeded, Sent copy is only for visibility/debugging.
253
+ }
254
+ }
120
255
  /**
121
256
  * Send a task.dispatch email.
122
257
  * Returns both the generated taskId and the SMTP Message-ID so callers can
@@ -171,9 +306,25 @@ export class SmtpSender {
171
306
  content: typeof a.content === 'string' ? Buffer.from(a.content, 'base64') : a.content,
172
307
  })),
173
308
  });
309
+ await this.saveToSentBestEffort({
310
+ from: this.config.user,
311
+ to: opts.to,
312
+ subject: sendMailOpts.subject,
313
+ text: sendMailOpts.text,
314
+ aampHeaders,
315
+ messageId: info.messageId,
316
+ });
174
317
  return { taskId, messageId: info.messageId ?? '' };
175
318
  }
176
319
  const info = await this.transport.sendMail(sendMailOpts);
320
+ await this.saveToSentBestEffort({
321
+ from: this.config.user,
322
+ to: opts.to,
323
+ subject: sendMailOpts.subject,
324
+ text: sendMailOpts.text,
325
+ aampHeaders,
326
+ messageId: info.messageId,
327
+ });
177
328
  return { taskId, messageId: info.messageId ?? '' };
178
329
  }
179
330
  /**
@@ -217,7 +368,7 @@ export class SmtpSender {
217
368
  }));
218
369
  }
219
370
  if (this.shouldUseHttpFallback(opts.to)) {
220
- await this.sendViaHttp({
371
+ const info = await this.sendViaHttp({
221
372
  to: opts.to,
222
373
  subject: mailOpts.subject,
223
374
  text: mailOpts.text,
@@ -228,9 +379,29 @@ export class SmtpSender {
228
379
  content: typeof a.content === 'string' ? Buffer.from(a.content, 'base64') : a.content,
229
380
  })),
230
381
  });
382
+ await this.saveToSentBestEffort({
383
+ from: this.config.user,
384
+ to: opts.to,
385
+ subject: mailOpts.subject,
386
+ text: mailOpts.text,
387
+ aampHeaders,
388
+ messageId: info.messageId,
389
+ inReplyTo: opts.inReplyTo,
390
+ references: opts.inReplyTo,
391
+ });
231
392
  return;
232
393
  }
233
- await this.transport.sendMail(mailOpts);
394
+ const info = await this.transport.sendMail(mailOpts);
395
+ await this.saveToSentBestEffort({
396
+ from: this.config.user,
397
+ to: opts.to,
398
+ subject: mailOpts.subject,
399
+ text: mailOpts.text,
400
+ aampHeaders,
401
+ messageId: info.messageId,
402
+ inReplyTo: opts.inReplyTo,
403
+ references: opts.inReplyTo,
404
+ });
234
405
  }
235
406
  /**
236
407
  * Send a task.help_needed email when the agent is blocked
@@ -275,7 +446,7 @@ export class SmtpSender {
275
446
  }));
276
447
  }
277
448
  if (this.shouldUseHttpFallback(opts.to)) {
278
- await this.sendViaHttp({
449
+ const info = await this.sendViaHttp({
279
450
  to: opts.to,
280
451
  subject: helpMailOpts.subject,
281
452
  text: helpMailOpts.text,
@@ -286,9 +457,29 @@ export class SmtpSender {
286
457
  content: typeof a.content === 'string' ? Buffer.from(a.content, 'base64') : a.content,
287
458
  })),
288
459
  });
460
+ await this.saveToSentBestEffort({
461
+ from: this.config.user,
462
+ to: opts.to,
463
+ subject: helpMailOpts.subject,
464
+ text: helpMailOpts.text,
465
+ aampHeaders,
466
+ messageId: info.messageId,
467
+ inReplyTo: opts.inReplyTo,
468
+ references: opts.inReplyTo,
469
+ });
289
470
  return;
290
471
  }
291
- await this.transport.sendMail(helpMailOpts);
472
+ const info = await this.transport.sendMail(helpMailOpts);
473
+ await this.saveToSentBestEffort({
474
+ from: this.config.user,
475
+ to: opts.to,
476
+ subject: helpMailOpts.subject,
477
+ text: helpMailOpts.text,
478
+ aampHeaders,
479
+ messageId: info.messageId,
480
+ inReplyTo: opts.inReplyTo,
481
+ references: opts.inReplyTo,
482
+ });
292
483
  }
293
484
  /**
294
485
  * Send a task.cancel email to stop a previously dispatched task.
@@ -309,15 +500,35 @@ export class SmtpSender {
309
500
  mailOpts.references = opts.inReplyTo;
310
501
  }
311
502
  if (this.shouldUseHttpFallback(opts.to)) {
312
- await this.sendViaHttp({
503
+ const info = await this.sendViaHttp({
504
+ to: opts.to,
505
+ subject: mailOpts.subject,
506
+ text: mailOpts.text,
507
+ aampHeaders,
508
+ });
509
+ await this.saveToSentBestEffort({
510
+ from: this.config.user,
313
511
  to: opts.to,
314
512
  subject: mailOpts.subject,
315
513
  text: mailOpts.text,
316
514
  aampHeaders,
515
+ messageId: info.messageId,
516
+ inReplyTo: opts.inReplyTo,
517
+ references: opts.inReplyTo,
317
518
  });
318
519
  return;
319
520
  }
320
- await this.transport.sendMail(mailOpts);
521
+ const info = await this.transport.sendMail(mailOpts);
522
+ await this.saveToSentBestEffort({
523
+ from: this.config.user,
524
+ to: opts.to,
525
+ subject: mailOpts.subject,
526
+ text: mailOpts.text,
527
+ aampHeaders,
528
+ messageId: info.messageId,
529
+ inReplyTo: opts.inReplyTo,
530
+ references: opts.inReplyTo,
531
+ });
321
532
  }
322
533
  /**
323
534
  * Send a task.ack email to confirm receipt of a dispatch
@@ -336,15 +547,82 @@ export class SmtpSender {
336
547
  mailOpts.references = opts.inReplyTo;
337
548
  }
338
549
  if (this.shouldUseHttpFallback(opts.to)) {
339
- await this.sendViaHttp({
550
+ const info = await this.sendViaHttp({
551
+ to: opts.to,
552
+ subject: mailOpts.subject,
553
+ text: mailOpts.text,
554
+ aampHeaders,
555
+ });
556
+ await this.saveToSentBestEffort({
557
+ from: this.config.user,
558
+ to: opts.to,
559
+ subject: mailOpts.subject,
560
+ text: mailOpts.text,
561
+ aampHeaders,
562
+ messageId: info.messageId,
563
+ inReplyTo: opts.inReplyTo,
564
+ references: opts.inReplyTo,
565
+ });
566
+ return;
567
+ }
568
+ const info = await this.transport.sendMail(mailOpts);
569
+ await this.saveToSentBestEffort({
570
+ from: this.config.user,
571
+ to: opts.to,
572
+ subject: mailOpts.subject,
573
+ text: mailOpts.text,
574
+ aampHeaders,
575
+ messageId: info.messageId,
576
+ inReplyTo: opts.inReplyTo,
577
+ references: opts.inReplyTo,
578
+ });
579
+ }
580
+ async sendStreamOpened(opts) {
581
+ const aampHeaders = buildStreamOpenedHeaders({
582
+ taskId: opts.taskId,
583
+ streamId: opts.streamId,
584
+ });
585
+ const mailOpts = {
586
+ from: this.config.user,
587
+ to: opts.to,
588
+ subject: `[AAMP Stream] Task ${opts.taskId}`,
589
+ text: `AAMP task stream is ready.\n\nTask ID: ${opts.taskId}\nStream ID: ${opts.streamId}`,
590
+ headers: aampHeaders,
591
+ };
592
+ if (opts.inReplyTo) {
593
+ mailOpts.inReplyTo = opts.inReplyTo;
594
+ mailOpts.references = opts.inReplyTo;
595
+ }
596
+ if (this.shouldUseHttpFallback(opts.to)) {
597
+ const info = await this.sendViaHttp({
340
598
  to: opts.to,
341
599
  subject: mailOpts.subject,
342
600
  text: mailOpts.text,
343
601
  aampHeaders,
344
602
  });
603
+ await this.saveToSentBestEffort({
604
+ from: this.config.user,
605
+ to: opts.to,
606
+ subject: mailOpts.subject,
607
+ text: mailOpts.text,
608
+ aampHeaders,
609
+ messageId: info.messageId,
610
+ inReplyTo: opts.inReplyTo,
611
+ references: opts.inReplyTo,
612
+ });
345
613
  return;
346
614
  }
347
- await this.transport.sendMail(mailOpts);
615
+ const info = await this.transport.sendMail(mailOpts);
616
+ await this.saveToSentBestEffort({
617
+ from: this.config.user,
618
+ to: opts.to,
619
+ subject: mailOpts.subject,
620
+ text: mailOpts.text,
621
+ aampHeaders,
622
+ messageId: info.messageId,
623
+ inReplyTo: opts.inReplyTo,
624
+ references: opts.inReplyTo,
625
+ });
348
626
  }
349
627
  async sendCardQuery(opts) {
350
628
  const taskId = opts.taskId ?? randomUUID();
@@ -367,9 +645,29 @@ export class SmtpSender {
367
645
  text: mailOpts.text,
368
646
  aampHeaders,
369
647
  });
648
+ await this.saveToSentBestEffort({
649
+ from: this.config.user,
650
+ to: opts.to,
651
+ subject: mailOpts.subject,
652
+ text: mailOpts.text,
653
+ aampHeaders,
654
+ messageId: info.messageId,
655
+ inReplyTo: opts.inReplyTo,
656
+ references: opts.inReplyTo,
657
+ });
370
658
  return { taskId, messageId: info.messageId ?? '' };
371
659
  }
372
660
  const info = await this.transport.sendMail(mailOpts);
661
+ await this.saveToSentBestEffort({
662
+ from: this.config.user,
663
+ to: opts.to,
664
+ subject: mailOpts.subject,
665
+ text: mailOpts.text,
666
+ aampHeaders,
667
+ messageId: info.messageId,
668
+ inReplyTo: opts.inReplyTo,
669
+ references: opts.inReplyTo,
670
+ });
373
671
  return { taskId, messageId: info.messageId ?? '' };
374
672
  }
375
673
  async sendCardResponse(opts) {
@@ -389,15 +687,35 @@ export class SmtpSender {
389
687
  mailOpts.references = opts.inReplyTo;
390
688
  }
391
689
  if (this.shouldUseHttpFallback(opts.to)) {
392
- await this.sendViaHttp({
690
+ const info = await this.sendViaHttp({
393
691
  to: opts.to,
394
692
  subject: mailOpts.subject,
395
693
  text: mailOpts.text,
396
694
  aampHeaders,
397
695
  });
696
+ await this.saveToSentBestEffort({
697
+ from: this.config.user,
698
+ to: opts.to,
699
+ subject: mailOpts.subject,
700
+ text: mailOpts.text,
701
+ aampHeaders,
702
+ messageId: info.messageId,
703
+ inReplyTo: opts.inReplyTo,
704
+ references: opts.inReplyTo,
705
+ });
398
706
  return;
399
707
  }
400
- await this.transport.sendMail(mailOpts);
708
+ const info = await this.transport.sendMail(mailOpts);
709
+ await this.saveToSentBestEffort({
710
+ from: this.config.user,
711
+ to: opts.to,
712
+ subject: mailOpts.subject,
713
+ text: mailOpts.text,
714
+ aampHeaders,
715
+ messageId: info.messageId,
716
+ inReplyTo: opts.inReplyTo,
717
+ references: opts.inReplyTo,
718
+ });
401
719
  }
402
720
  /**
403
721
  * Verify SMTP connection
@@ -1 +1 @@
1
- {"version":3,"file":"smtp-sender.js","sourceRoot":"","sources":["../src/smtp-sender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smtp-sender.js","sourceRoot":"","sources":["../src/smtp-sender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { AampThreadEvent } from './types.js';
2
+ export interface RenderThreadHistoryOptions {
3
+ maxEvents?: number;
4
+ }
5
+ export declare function renderThreadHistoryForAgent(events: AampThreadEvent[], options?: RenderThreadHistoryOptions): string;
package/dist/thread.js ADDED
@@ -0,0 +1,53 @@
1
+ function singleLine(value, maxLength = 220) {
2
+ const normalized = (value ?? '').replace(/\s+/g, ' ').trim();
3
+ if (!normalized)
4
+ return '';
5
+ if (normalized.length <= maxLength)
6
+ return normalized;
7
+ return `${normalized.slice(0, maxLength - 1)}…`;
8
+ }
9
+ function formatTimestamp(value) {
10
+ const date = new Date(value);
11
+ if (Number.isNaN(date.getTime()))
12
+ return value;
13
+ return date.toISOString().slice(0, 16).replace('T', ' ');
14
+ }
15
+ function renderEventLine(event) {
16
+ const from = event.from.split('@')[0] || event.from;
17
+ const timestamp = formatTimestamp(event.createdAt);
18
+ if (event.intent === 'task.dispatch') {
19
+ const summary = singleLine(event.bodyText) || singleLine(event.title) || 'Task dispatched';
20
+ return `[${timestamp}] ${from} dispatched: ${summary}`;
21
+ }
22
+ if (event.intent === 'task.help_needed') {
23
+ const question = singleLine(event.question) || 'Asked for help';
24
+ const reason = singleLine(event.blockedReason);
25
+ return `[${timestamp}] ${from} asked for help: ${question}${reason ? ` (reason: ${reason})` : ''}`;
26
+ }
27
+ if (event.intent === 'task.result') {
28
+ const output = singleLine(event.output) || singleLine(event.bodyText) || 'Sent a result';
29
+ return `[${timestamp}] ${from} replied: ${output}`;
30
+ }
31
+ if (event.intent === 'task.cancel') {
32
+ const body = singleLine(event.bodyText) || 'Cancelled the task';
33
+ return `[${timestamp}] ${from} cancelled the task: ${body}`;
34
+ }
35
+ if (event.intent === 'task.ack') {
36
+ return `[${timestamp}] ${from} acknowledged the task`;
37
+ }
38
+ return `[${timestamp}] ${from}: ${singleLine(event.bodyText) || event.intent}`;
39
+ }
40
+ export function renderThreadHistoryForAgent(events, options = {}) {
41
+ const filtered = events.filter((event) => event.intent !== 'task.stream.opened');
42
+ if (filtered.length === 0)
43
+ return '';
44
+ const maxEvents = Math.max(1, options.maxEvents ?? 8);
45
+ const visible = filtered.slice(-maxEvents);
46
+ const omitted = filtered.length - visible.length;
47
+ return [
48
+ 'Prior thread context:',
49
+ ...(omitted > 0 ? [`(${omitted} earlier event(s) omitted)`] : []),
50
+ ...visible.map((event) => `- ${renderEventLine(event)}`),
51
+ ].join('\n');
52
+ }
53
+ //# sourceMappingURL=thread.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thread.js","sourceRoot":"","sources":["../src/thread.ts"],"names":[],"mappings":"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"}