@adonis-agora/agent 0.46.0 → 0.47.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/CHANGELOG.md +17 -0
- package/dist/assets/spa/assets/{index-7XqfoeQH.js → index-Be6OClIm.js} +1 -1
- package/dist/assets/spa/index.html +1 -1
- package/dist/providers/agent_provider.d.ts +1 -1
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +82 -30
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/agent-service.d.ts +27 -8
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +66 -7
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/define_config.d.ts +22 -29
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +2 -2
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/durable/agent-run-workflow.d.ts.map +1 -1
- package/dist/src/durable/agent-run-workflow.js +8 -1
- package/dist/src/durable/agent-run-workflow.js.map +1 -1
- package/dist/src/durable/durable-agent-runner.d.ts.map +1 -1
- package/dist/src/durable/durable-agent-runner.js +3 -0
- package/dist/src/durable/durable-agent-runner.js.map +1 -1
- package/dist/src/index.d.ts +4 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/media/index.d.ts +7 -0
- package/dist/src/media/index.d.ts.map +1 -0
- package/dist/src/media/index.js +7 -0
- package/dist/src/media/index.js.map +1 -0
- package/dist/src/media/media-attachment-staging.d.ts +115 -0
- package/dist/src/media/media-attachment-staging.d.ts.map +1 -0
- package/dist/src/media/media-attachment-staging.js +145 -0
- package/dist/src/media/media-attachment-staging.js.map +1 -0
- package/dist/src/runners/inline-agent-runner.d.ts +3 -1
- package/dist/src/runners/inline-agent-runner.d.ts.map +1 -1
- package/dist/src/runners/inline-agent-runner.js +17 -1
- package/dist/src/runners/inline-agent-runner.js.map +1 -1
- package/dist/src/spi/agent-store.d.ts +8 -0
- package/dist/src/spi/agent-store.d.ts.map +1 -1
- package/dist/src/spi/agent-store.js +8 -1
- package/dist/src/spi/agent-store.js.map +1 -1
- package/dist/src/spi/attachment-staging.d.ts +30 -12
- package/dist/src/spi/attachment-staging.d.ts.map +1 -1
- package/dist/src/stores/factory.d.ts +18 -65
- package/dist/src/stores/factory.d.ts.map +1 -1
- package/dist/src/stores/factory.js +24 -56
- package/dist/src/stores/factory.js.map +1 -1
- package/dist/src/stores/lucid.d.ts +1 -0
- package/dist/src/stores/lucid.d.ts.map +1 -1
- package/dist/src/stores/lucid.js +9 -2
- package/dist/src/stores/lucid.js.map +1 -1
- package/dist/src/testing/in-memory-attachment-staging.d.ts +7 -1
- package/dist/src/testing/in-memory-attachment-staging.d.ts.map +1 -1
- package/dist/src/testing/in-memory-attachment-staging.js +22 -2
- package/dist/src/testing/in-memory-attachment-staging.js.map +1 -1
- package/dist/src/testing/in-memory-store.d.ts +1 -0
- package/dist/src/testing/in-memory-store.d.ts.map +1 -1
- package/dist/src/testing/in-memory-store.js +7 -1
- package/dist/src/testing/in-memory-store.js.map +1 -1
- package/dist/src/types.d.ts +36 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/stubs/config/agent.stub +3 -6
- package/package.json +10 -1
- package/skills/agent-setup/SKILL.md +27 -60
- package/dist/src/stores/ledger-quota.d.ts +0 -23
- package/dist/src/stores/ledger-quota.d.ts.map +0 -1
- package/dist/src/stores/ledger-quota.js +0 -32
- package/dist/src/stores/ledger-quota.js.map +0 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { AttachmentStagingDescription, AttachmentStagingStore, ResolveAttachmentInput, StageAttachmentInput } from '../spi/attachment-staging.js';
|
|
2
|
+
import type { Actor, MessageAttachment } from '../types.js';
|
|
3
|
+
/** A media row — `@adonis-agora/media`'s `MediaRecord`. */
|
|
4
|
+
export interface MediaRecordLike {
|
|
5
|
+
id: string;
|
|
6
|
+
ownerType: string;
|
|
7
|
+
ownerId: string;
|
|
8
|
+
collection: string;
|
|
9
|
+
name: string;
|
|
10
|
+
fileName: string;
|
|
11
|
+
mimeType: string;
|
|
12
|
+
size: number;
|
|
13
|
+
disk: string;
|
|
14
|
+
path: string;
|
|
15
|
+
order: number;
|
|
16
|
+
customProperties: Record<string, unknown>;
|
|
17
|
+
conversions: Record<string, unknown>;
|
|
18
|
+
createdAt: Date;
|
|
19
|
+
updatedAt: Date;
|
|
20
|
+
}
|
|
21
|
+
/** `@adonis-agora/media`'s `MediaStore`, the part used here. */
|
|
22
|
+
export interface MediaStoreLike {
|
|
23
|
+
save(record: MediaRecordLike): Promise<MediaRecordLike>;
|
|
24
|
+
find(id: string): Promise<MediaRecordLike | null>;
|
|
25
|
+
delete(id: string): Promise<void>;
|
|
26
|
+
nextOrder(ownerType: string, ownerId: string, collection: string): Promise<number>;
|
|
27
|
+
}
|
|
28
|
+
/** A Drive disk as `@adonis-agora/media` hands it out, the part used here. */
|
|
29
|
+
export interface MediaDiskLike {
|
|
30
|
+
put(key: string, contents: Uint8Array, options?: {
|
|
31
|
+
contentType?: string;
|
|
32
|
+
}): Promise<void>;
|
|
33
|
+
getBytes(key: string): Promise<Uint8Array>;
|
|
34
|
+
getUrl(key: string): Promise<string>;
|
|
35
|
+
getSignedUrl(key: string, options?: {
|
|
36
|
+
expiresIn?: string | number;
|
|
37
|
+
contentType?: string;
|
|
38
|
+
}): Promise<string>;
|
|
39
|
+
delete(key: string): Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/** `@adonis-agora/media`'s `StorageManager`, the part used here. */
|
|
42
|
+
export interface MediaStorageLike {
|
|
43
|
+
readonly defaultDisk: string;
|
|
44
|
+
disk(name?: string): MediaDiskLike;
|
|
45
|
+
}
|
|
46
|
+
/** Options for `attachmentStores.media({ … })`. All optional. */
|
|
47
|
+
export interface MediaAttachmentsOptions {
|
|
48
|
+
/** Media collection the uploads go in. Default `agent-attachments`. */
|
|
49
|
+
collection?: string;
|
|
50
|
+
/** Owner type the rows carry (the owner id is the actor id). Default `agent-actor`. */
|
|
51
|
+
ownerType?: string;
|
|
52
|
+
/** Drive disk. Default the media library's default disk. */
|
|
53
|
+
disk?: string;
|
|
54
|
+
/** Per-file size cap. Default 20 MiB. */
|
|
55
|
+
maxBytes?: number;
|
|
56
|
+
/** Content types accepted. Default images (png/jpeg/gif/webp), PDF, plain text, CSV. */
|
|
57
|
+
allowedContentTypes?: readonly string[];
|
|
58
|
+
/**
|
|
59
|
+
* `private` (default): urls are signed and short-lived, re-minted on every read. `public`: the
|
|
60
|
+
* disk's plain url.
|
|
61
|
+
*/
|
|
62
|
+
visibility?: 'private' | 'public';
|
|
63
|
+
/** Lifetime of a signed url, in seconds. Default 7 days. */
|
|
64
|
+
urlExpiresInSeconds?: number;
|
|
65
|
+
/** Mint the url yourself (a CDN, a proxy route). Wins over `visibility`. */
|
|
66
|
+
resolveUrl?: (record: MediaRecordLike, context: {
|
|
67
|
+
disk: MediaDiskLike;
|
|
68
|
+
}) => string | Promise<string>;
|
|
69
|
+
/**
|
|
70
|
+
* Who may attach a file: by default only the actor that uploaded it (`allowed`). Widen or narrow
|
|
71
|
+
* it here — e.g. let a support agent attach a customer's upload.
|
|
72
|
+
*/
|
|
73
|
+
canAccess?: (input: {
|
|
74
|
+
record: MediaRecordLike;
|
|
75
|
+
actor: Actor;
|
|
76
|
+
allowed: boolean;
|
|
77
|
+
}) => boolean | Promise<boolean>;
|
|
78
|
+
/** Clock and id seams, for tests. */
|
|
79
|
+
clock?: () => Date;
|
|
80
|
+
idGenerator?: () => string;
|
|
81
|
+
}
|
|
82
|
+
export declare const DEFAULT_AGENT_MEDIA_COLLECTION = "agent-attachments";
|
|
83
|
+
export declare const DEFAULT_AGENT_MEDIA_OWNER_TYPE = "agent-actor";
|
|
84
|
+
/**
|
|
85
|
+
* Chat attachments stored as media rows in their own collection, one owner per actor, on any Drive
|
|
86
|
+
* disk — S3, GCS, R2, the local filesystem. Uploads land at
|
|
87
|
+
* `<ownerType>/<actor>/<collection>/<id>/<file>`; a send names them by id and {@link resolve} mints
|
|
88
|
+
* the url the model fetches: the caller's own `resolveUrl`, a public url, a signed url, or — on a
|
|
89
|
+
* disk that cannot sign — the bytes inline as a `data:` url (logged once: fine for dev, not for
|
|
90
|
+
* production).
|
|
91
|
+
*/
|
|
92
|
+
export declare class MediaAttachmentStaging implements AttachmentStagingStore {
|
|
93
|
+
private readonly deps;
|
|
94
|
+
private readonly options;
|
|
95
|
+
private readonly collection;
|
|
96
|
+
private readonly ownerType;
|
|
97
|
+
private readonly maxBytes;
|
|
98
|
+
private readonly allowed;
|
|
99
|
+
private readonly now;
|
|
100
|
+
private readonly newId;
|
|
101
|
+
private warnedInline;
|
|
102
|
+
constructor(deps: {
|
|
103
|
+
storage: MediaStorageLike;
|
|
104
|
+
store: MediaStoreLike;
|
|
105
|
+
}, options?: MediaAttachmentsOptions);
|
|
106
|
+
describe(): AttachmentStagingDescription;
|
|
107
|
+
private get diskName();
|
|
108
|
+
stage(input: StageAttachmentInput): Promise<MessageAttachment>;
|
|
109
|
+
resolve(input: ResolveAttachmentInput): Promise<MessageAttachment | null>;
|
|
110
|
+
/** Delete an upload and its row. */
|
|
111
|
+
remove(mediaId: string): Promise<void>;
|
|
112
|
+
private isOurs;
|
|
113
|
+
private toAttachment;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=media-attachment-staging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-attachment-staging.d.ts","sourceRoot":"","sources":["../../../src/media/media-attachment-staging.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import { randomUUID } from 'node:crypto';
|
|
2
|
+
export const DEFAULT_AGENT_MEDIA_COLLECTION = 'agent-attachments';
|
|
3
|
+
export const DEFAULT_AGENT_MEDIA_OWNER_TYPE = 'agent-actor';
|
|
4
|
+
const DEFAULT_URL_TTL_SECONDS = 7 * 24 * 60 * 60;
|
|
5
|
+
const DEFAULT_MAX_BYTES = 20 * 1024 * 1024;
|
|
6
|
+
const DEFAULT_ALLOWED_CONTENT_TYPES = [
|
|
7
|
+
'image/png',
|
|
8
|
+
'image/jpeg',
|
|
9
|
+
'image/gif',
|
|
10
|
+
'image/webp',
|
|
11
|
+
'application/pdf',
|
|
12
|
+
'text/plain',
|
|
13
|
+
'text/csv',
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* Chat attachments stored as media rows in their own collection, one owner per actor, on any Drive
|
|
17
|
+
* disk — S3, GCS, R2, the local filesystem. Uploads land at
|
|
18
|
+
* `<ownerType>/<actor>/<collection>/<id>/<file>`; a send names them by id and {@link resolve} mints
|
|
19
|
+
* the url the model fetches: the caller's own `resolveUrl`, a public url, a signed url, or — on a
|
|
20
|
+
* disk that cannot sign — the bytes inline as a `data:` url (logged once: fine for dev, not for
|
|
21
|
+
* production).
|
|
22
|
+
*/
|
|
23
|
+
export class MediaAttachmentStaging {
|
|
24
|
+
deps;
|
|
25
|
+
options;
|
|
26
|
+
collection;
|
|
27
|
+
ownerType;
|
|
28
|
+
maxBytes;
|
|
29
|
+
allowed;
|
|
30
|
+
now;
|
|
31
|
+
newId;
|
|
32
|
+
warnedInline = false;
|
|
33
|
+
constructor(deps, options = {}) {
|
|
34
|
+
this.deps = deps;
|
|
35
|
+
this.options = options;
|
|
36
|
+
this.collection = options.collection ?? DEFAULT_AGENT_MEDIA_COLLECTION;
|
|
37
|
+
this.ownerType = options.ownerType ?? DEFAULT_AGENT_MEDIA_OWNER_TYPE;
|
|
38
|
+
this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
|
|
39
|
+
this.allowed = options.allowedContentTypes ?? DEFAULT_ALLOWED_CONTENT_TYPES;
|
|
40
|
+
this.now = options.clock ?? (() => new Date());
|
|
41
|
+
this.newId = options.idGenerator ?? (() => randomUUID());
|
|
42
|
+
}
|
|
43
|
+
describe() {
|
|
44
|
+
return { maxBytes: this.maxBytes, allowedContentTypes: this.allowed };
|
|
45
|
+
}
|
|
46
|
+
get diskName() {
|
|
47
|
+
return this.options.disk ?? this.deps.storage.defaultDisk;
|
|
48
|
+
}
|
|
49
|
+
async stage(input) {
|
|
50
|
+
const id = this.newId();
|
|
51
|
+
const fileName = safeFileName(input.filename);
|
|
52
|
+
const path = `${this.ownerType}/${encodeURIComponent(input.actor.id)}/${this.collection}/${id}/${fileName}`;
|
|
53
|
+
await this.deps.storage
|
|
54
|
+
.disk(this.diskName)
|
|
55
|
+
.put(path, input.data, { contentType: input.contentType });
|
|
56
|
+
const timestamp = this.now();
|
|
57
|
+
const record = await this.deps.store.save({
|
|
58
|
+
id,
|
|
59
|
+
ownerType: this.ownerType,
|
|
60
|
+
ownerId: input.actor.id,
|
|
61
|
+
collection: this.collection,
|
|
62
|
+
name: stripExtension(fileName),
|
|
63
|
+
fileName,
|
|
64
|
+
mimeType: input.contentType,
|
|
65
|
+
size: input.sizeBytes,
|
|
66
|
+
disk: this.diskName,
|
|
67
|
+
path,
|
|
68
|
+
order: await this.deps.store.nextOrder(this.ownerType, input.actor.id, this.collection),
|
|
69
|
+
customProperties: {},
|
|
70
|
+
conversions: {},
|
|
71
|
+
createdAt: timestamp,
|
|
72
|
+
updatedAt: timestamp,
|
|
73
|
+
});
|
|
74
|
+
return this.toAttachment(record, { forModel: false });
|
|
75
|
+
}
|
|
76
|
+
async resolve(input) {
|
|
77
|
+
const record = await this.deps.store.find(input.mediaId);
|
|
78
|
+
if (record === null || !this.isOurs(record))
|
|
79
|
+
return null;
|
|
80
|
+
const allowed = record.ownerId === input.actor.id;
|
|
81
|
+
const custom = this.options.canAccess;
|
|
82
|
+
const may = custom === undefined
|
|
83
|
+
? allowed
|
|
84
|
+
: (await custom({ record, actor: input.actor, allowed })) === true;
|
|
85
|
+
if (!may)
|
|
86
|
+
return null;
|
|
87
|
+
return this.toAttachment(record, { forModel: true });
|
|
88
|
+
}
|
|
89
|
+
/** Delete an upload and its row. */
|
|
90
|
+
async remove(mediaId) {
|
|
91
|
+
const record = await this.deps.store.find(mediaId);
|
|
92
|
+
if (record === null || !this.isOurs(record))
|
|
93
|
+
return;
|
|
94
|
+
await this.deps.storage
|
|
95
|
+
.disk(record.disk)
|
|
96
|
+
.delete(record.path)
|
|
97
|
+
.catch(() => undefined);
|
|
98
|
+
await this.deps.store.delete(record.id);
|
|
99
|
+
}
|
|
100
|
+
isOurs(record) {
|
|
101
|
+
return record.ownerType === this.ownerType && record.collection === this.collection;
|
|
102
|
+
}
|
|
103
|
+
async toAttachment(record, { forModel }) {
|
|
104
|
+
const base = { mediaId: record.id, contentType: record.mimeType, name: record.fileName };
|
|
105
|
+
const disk = this.deps.storage.disk(record.disk);
|
|
106
|
+
if (this.options.resolveUrl !== undefined) {
|
|
107
|
+
return { ...base, url: await this.options.resolveUrl(record, { disk }) };
|
|
108
|
+
}
|
|
109
|
+
if (this.options.visibility === 'public') {
|
|
110
|
+
return { ...base, url: await disk.getUrl(record.path) };
|
|
111
|
+
}
|
|
112
|
+
try {
|
|
113
|
+
const url = await disk.getSignedUrl(record.path, {
|
|
114
|
+
expiresIn: this.options.urlExpiresInSeconds ?? DEFAULT_URL_TTL_SECONDS,
|
|
115
|
+
contentType: record.mimeType,
|
|
116
|
+
});
|
|
117
|
+
return { ...base, url };
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
// A disk that cannot sign (the local filesystem without a signing route).
|
|
121
|
+
}
|
|
122
|
+
if (!forModel)
|
|
123
|
+
return { ...base, url: '' };
|
|
124
|
+
if (!this.warnedInline) {
|
|
125
|
+
this.warnedInline = true;
|
|
126
|
+
console.warn(`[@adonis-agora/agent] disk "${record.disk}" cannot sign urls: attachments reach the model inline (data: urls, persisted with each message). Use a signing disk or resolveUrl in production.`);
|
|
127
|
+
}
|
|
128
|
+
const bytes = await disk.getBytes(record.path);
|
|
129
|
+
return {
|
|
130
|
+
...base,
|
|
131
|
+
url: `data:${record.mimeType};base64,${Buffer.from(bytes).toString('base64')}`,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function safeFileName(filename) {
|
|
136
|
+
const last = filename.split(/[\\/]/).pop() ?? '';
|
|
137
|
+
// biome-ignore lint/suspicious/noControlCharactersInRegex: stripping control chars is the point.
|
|
138
|
+
const cleaned = last.replace(/[\u0000-\u001f\u007f]/g, '').trim();
|
|
139
|
+
return cleaned === '' || cleaned === '.' || cleaned === '..' ? 'file' : cleaned;
|
|
140
|
+
}
|
|
141
|
+
function stripExtension(fileName) {
|
|
142
|
+
const dot = fileName.lastIndexOf('.');
|
|
143
|
+
return dot > 0 ? fileName.slice(0, dot) : fileName;
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=media-attachment-staging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-attachment-staging.js","sourceRoot":"","sources":["../../../src/media/media-attachment-staging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAkGzC,MAAM,CAAC,MAAM,8BAA8B,GAAG,mBAAmB,CAAC;AAClE,MAAM,CAAC,MAAM,8BAA8B,GAAG,aAAa,CAAC;AAC5D,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACjD,MAAM,iBAAiB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAC3C,MAAM,6BAA6B,GAAsB;IACvD,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,iBAAiB;IACjB,YAAY;IACZ,UAAU;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,OAAO,sBAAsB;IAUd,IAAI;IACJ,OAAO;IAVT,UAAU,CAAS;IACnB,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,OAAO,CAAoB;IAC3B,GAAG,CAAa;IAChB,KAAK,CAAe;IAC7B,YAAY,GAAG,KAAK,CAAC;IAE7B,YACmB,IAA0D,EAC1D,OAAO,GAA4B,EAAE;oBADrC,IAAI;uBACJ,OAAO;QAExB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,8BAA8B,CAAC;QACvE,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,8BAA8B,CAAC;QACrE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,iBAAiB,CAAC;QACtD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,mBAAmB,IAAI,6BAA6B,CAAC;QAC5E,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,QAAQ;QACN,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,mBAAmB,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACxE,CAAC;IAED,IAAY,QAAQ;QAClB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,KAA2B;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACxB,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC5G,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;aACpB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;aACnB,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACxC,EAAE;YACF,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE;YACvB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;YAC9B,QAAQ;YACR,QAAQ,EAAE,KAAK,CAAC,WAAW;YAC3B,IAAI,EAAE,KAAK,CAAC,SAAS;YACrB,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,IAAI;YACJ,KAAK,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC;YACvF,gBAAgB,EAAE,EAAE;YACpB,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS;SACrB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAA6B;QACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,MAAM,GAAG,GACP,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QACvE,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,MAAM,CAAC,OAAe;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YAAE,OAAO;QACpD,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO;aACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;aACjB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;aACnB,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC1B,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,MAAuB;QACpC,OAAO,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU,CAAC;IACtF,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,MAAuB,EACvB,EAAE,QAAQ,EAAyB;QAEnC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACzF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACzC,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC/C,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,mBAAmB,IAAI,uBAAuB;gBACtE,WAAW,EAAE,MAAM,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;QAC5E,CAAC;QACD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,OAAO,CAAC,IAAI,CACV,+BAA+B,MAAM,CAAC,IAAI,mJAAmJ,CAC9L,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO;YACL,GAAG,IAAI;YACP,GAAG,EAAE,QAAQ,MAAM,CAAC,QAAQ,WAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;SAC/E,CAAC;IACJ,CAAC;CACF;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACjD,iGAAiG;IACjG,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,OAAO,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IACtC,MAAM,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AgentDepsFactory } from '../agent-deps-factory.js';
|
|
2
2
|
import { type HumanReply } from '../elicitation.js';
|
|
3
3
|
import type { AgentRunner } from '../spi/agent-runner.js';
|
|
4
|
-
import type
|
|
4
|
+
import { type AgentStore } from '../spi/agent-store.js';
|
|
5
5
|
import type { AgentRunInput } from '../types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Runs the agent turn in-process — the default runner (`durable: false`). A HITL wait resolves a
|
|
@@ -20,6 +20,8 @@ export declare class InlineAgentRunner implements AgentRunner {
|
|
|
20
20
|
private readonly factory;
|
|
21
21
|
private readonly store;
|
|
22
22
|
private readonly pending;
|
|
23
|
+
/** The thread of each run this process started — what a cancel clears the active run of. */
|
|
24
|
+
private readonly threadOfRun;
|
|
23
25
|
constructor(factory: AgentDepsFactory, store: AgentStore);
|
|
24
26
|
start(input: AgentRunInput): Promise<{
|
|
25
27
|
runId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-agent-runner.d.ts","sourceRoot":"","sources":["../../../src/runners/inline-agent-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"inline-agent-runner.d.ts","sourceRoot":"","sources":["../../../src/runners/inline-agent-runner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAEL,KAAK,UAAU,EAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,uBAAuB,CAAC;AAExE,OAAO,KAAK,EAAS,aAAa,EAAY,MAAM,aAAa,CAAC;AAYlE;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IAMjD,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;IAEzD,YACmB,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,UAAU,EAChC;IAEE,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAkD5D;IAED;;;;;;;;;;OAUG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhF;IAEK,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAczC;IAED,OAAO,CAAC,aAAa;IAkCrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAWlB,kGAAkG;IAClG;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,IAAI;IAMZ,qFAAqF;YACvE,SAAS;CAgExB"}
|
|
@@ -2,6 +2,7 @@ import { utcDay } from '../agent-deps.js';
|
|
|
2
2
|
import { runAgentLoop, settleAll, streamErrorFrame } from '../agent-loop.js';
|
|
3
3
|
import { spannedAgent } from '../diagnostics.js';
|
|
4
4
|
import { HumanReplyMismatchError, isHumanDecision, } from '../elicitation.js';
|
|
5
|
+
import { clearActiveRun } from '../spi/agent-store.js';
|
|
5
6
|
import { childSinkWriter } from '../spi/token-stream-sink.js';
|
|
6
7
|
/**
|
|
7
8
|
* Runs the agent turn in-process — the default runner (`durable: false`). A HITL wait resolves a
|
|
@@ -20,6 +21,8 @@ export class InlineAgentRunner {
|
|
|
20
21
|
factory;
|
|
21
22
|
store;
|
|
22
23
|
pending = new Map();
|
|
24
|
+
/** The thread of each run this process started — what a cancel clears the active run of. */
|
|
25
|
+
threadOfRun = new Map();
|
|
23
26
|
constructor(factory, store) {
|
|
24
27
|
this.factory = factory;
|
|
25
28
|
this.store = store;
|
|
@@ -45,7 +48,16 @@ export class InlineAgentRunner {
|
|
|
45
48
|
// Emitted by the runner (not the shared loop) because the inline runner executes the loop exactly
|
|
46
49
|
// once; the durable runner's body replays, so it roots its trace by traceId instead. Zero-cost
|
|
47
50
|
// when unobserved.
|
|
48
|
-
|
|
51
|
+
// The thread's active run is set BEFORE the loop starts — a fast turn could otherwise end (and
|
|
52
|
+
// clear it) before it was ever set — and cleared when the turn ends, however it ends.
|
|
53
|
+
await this.store.setActiveStream(input.threadId, runId);
|
|
54
|
+
this.threadOfRun.set(runId, input.threadId);
|
|
55
|
+
void spannedAgent('turn', runId, { runId }, () => runAgentLoop({ ...deps, day }, input, hooks), (result) => ({ textLength: result.text.length }))
|
|
56
|
+
.finally(() => {
|
|
57
|
+
this.threadOfRun.delete(runId);
|
|
58
|
+
return clearActiveRun(this.store, input.threadId, runId).catch(() => undefined);
|
|
59
|
+
})
|
|
60
|
+
.catch(async (error) => {
|
|
49
61
|
const message = error instanceof Error ? error.message : String(error);
|
|
50
62
|
console.error(`[@adonis-agora/agent] run ${runId} failed: ${message}`);
|
|
51
63
|
// Settle the run's persisted outcome — the loop only records completions (it can't catch its
|
|
@@ -85,6 +97,10 @@ export class InlineAgentRunner {
|
|
|
85
97
|
// Best-effort: settle the run `cancelled` (first-terminal, so a completed run stays completed),
|
|
86
98
|
// then close the live stream so a subscriber isn't left hanging.
|
|
87
99
|
await this.store.recordRunEnd({ runId, status: 'cancelled' });
|
|
100
|
+
const threadId = this.threadOfRun.get(runId);
|
|
101
|
+
if (threadId !== undefined) {
|
|
102
|
+
await clearActiveRun(this.store, threadId, runId);
|
|
103
|
+
}
|
|
88
104
|
const deps = this.factory.forAgent();
|
|
89
105
|
const writer = await deps.sink.open(runId);
|
|
90
106
|
// The last frame before a normal end: without it a reader cannot tell a truncated answer from
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inline-agent-runner.js","sourceRoot":"","sources":["../../../src/runners/inline-agent-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAuB,YAAY,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAGL,uBAAuB,EACvB,eAAe,GAChB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"inline-agent-runner.js","sourceRoot":"","sources":["../../../src/runners/inline-agent-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -167,6 +167,12 @@ export interface AgentStore {
|
|
|
167
167
|
*/
|
|
168
168
|
updateThread?(threadId: string, patch: UpdateThreadInput): Promise<void>;
|
|
169
169
|
setActiveStream(threadId: string, runId: string | null): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* OPTIONAL: clear the thread's active run only if it is still `runId` — so a turn that ends after
|
|
172
|
+
* a newer one started on the same thread does not blank the newer one's pointer. Absent →
|
|
173
|
+
* `setActiveStream(threadId, null)`.
|
|
174
|
+
*/
|
|
175
|
+
clearActiveStream?(threadId: string, runId: string): Promise<void>;
|
|
170
176
|
appendMessage(input: AppendMessageInput): Promise<StoredMessage>;
|
|
171
177
|
/**
|
|
172
178
|
* Attach a turn's settled tool RESULTS to a message already appended, replacing whatever it held.
|
|
@@ -252,4 +258,6 @@ export interface AgentStore {
|
|
|
252
258
|
/** Settle a run's outcome (terminal, first-wins). A no-op when the run is unknown or already settled. */
|
|
253
259
|
recordRunEnd(input: RecordRunEndInput): Promise<void>;
|
|
254
260
|
}
|
|
261
|
+
/** Clear `threadId`'s active run if it is still `runId` (see {@link AgentStore.clearActiveStream}). */
|
|
262
|
+
export declare function clearActiveRun(store: AgentStore, threadId: string, runId: string): Promise<void>;
|
|
255
263
|
//# sourceMappingURL=agent-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../../../src/spi/agent-store.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"agent-store.d.ts","sourceRoot":"","sources":["../../../src/spi/agent-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
1
|
+
/** Clear `threadId`'s active run if it is still `runId` (see {@link AgentStore.clearActiveStream}). */
|
|
2
|
+
export async function clearActiveRun(store, threadId, runId) {
|
|
3
|
+
if (store.clearActiveStream !== undefined) {
|
|
4
|
+
await store.clearActiveStream(threadId, runId);
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
await store.setActiveStream(threadId, null);
|
|
8
|
+
}
|
|
2
9
|
//# sourceMappingURL=agent-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-store.js","sourceRoot":"","sources":["../../../src/spi/agent-store.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"agent-store.js","sourceRoot":"","sources":["../../../src/spi/agent-store.ts"],"names":[],"mappings":"AAiSA,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAiB,EACjB,QAAgB,EAChB,KAAa;IAEb,IAAI,KAAK,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,KAAK,CAAC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,MAAM,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Actor, MessageAttachment } from '../types.js';
|
|
2
|
-
/**
|
|
2
|
+
/** One uploaded file, as the upload route hands it to {@link AttachmentStagingStore.stage}. */
|
|
3
3
|
export interface StageAttachmentInput {
|
|
4
4
|
data: Buffer;
|
|
5
5
|
filename: string;
|
|
@@ -7,21 +7,39 @@ export interface StageAttachmentInput {
|
|
|
7
7
|
sizeBytes: number;
|
|
8
8
|
actor: Actor;
|
|
9
9
|
}
|
|
10
|
+
/** What a chat send names an upload by — the id alone. */
|
|
11
|
+
export interface AttachmentRef {
|
|
12
|
+
mediaId: string;
|
|
13
|
+
}
|
|
14
|
+
/** A request to turn an uploaded file's id into what the model fetches, for one actor. */
|
|
15
|
+
export interface ResolveAttachmentInput {
|
|
16
|
+
mediaId: string;
|
|
17
|
+
actor: Actor;
|
|
18
|
+
}
|
|
19
|
+
/** What {@link AttachmentStagingStore.describe} declares — the rules the upload route enforces. */
|
|
20
|
+
export interface AttachmentStagingDescription {
|
|
21
|
+
maxBytes?: number;
|
|
22
|
+
allowedContentTypes?: readonly string[];
|
|
23
|
+
}
|
|
10
24
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* `attachmentStores
|
|
17
|
-
*
|
|
25
|
+
* Where uploaded attachments live — the seam that makes storage bring-your-own. The upload route
|
|
26
|
+
* hands it the bytes (`stage`); a chat send names uploads by id only (`{ mediaId }`) and the server
|
|
27
|
+
* asks it for the url the model fetches (`resolve`) — a url in the request is never trusted.
|
|
28
|
+
*
|
|
29
|
+
* Shipped: `attachmentStores.media()` over `@adonis-agora/media` (any Drive disk), and
|
|
30
|
+
* `attachmentStores.memory()` for tests and demos. Anything else — a presigning S3 store, the host's
|
|
31
|
+
* own media pipeline — implements these methods.
|
|
18
32
|
*/
|
|
19
33
|
export interface AttachmentStagingStore {
|
|
34
|
+
/** Store an uploaded file for `actor`; answer the attachment, `mediaId` first. */
|
|
35
|
+
stage(input: StageAttachmentInput): Promise<MessageAttachment>;
|
|
20
36
|
/**
|
|
21
|
-
*
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
37
|
+
* The attachment `mediaId` names, with a url the model provider can fetch NOW — or `null` when it
|
|
38
|
+
* is unknown or `actor` may not use it. Called on every send that names it and again when a thread
|
|
39
|
+
* is read back, so a short-lived presigned url is re-minted rather than served dead.
|
|
24
40
|
*/
|
|
25
|
-
|
|
41
|
+
resolve(input: ResolveAttachmentInput): Promise<MessageAttachment | null>;
|
|
42
|
+
/** The size cap and content types this store accepts. Absent → the defaults. */
|
|
43
|
+
describe?(): AttachmentStagingDescription;
|
|
26
44
|
}
|
|
27
45
|
//# sourceMappingURL=attachment-staging.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attachment-staging.d.ts","sourceRoot":"","sources":["../../../src/spi/attachment-staging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5D
|
|
1
|
+
{"version":3,"file":"attachment-staging.d.ts","sourceRoot":"","sources":["../../../src/spi/attachment-staging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAE5D,+FAA+F;AAC/F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,0DAA0D;AAC1D,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,0FAA0F;AAC1F,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,mGAAmG;AACnG,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,sBAAsB;IACrC,kFAAkF;IAClF,KAAK,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC/D;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAC;IAC1E,gFAAgF;IAChF,QAAQ,CAAC,IAAI,4BAA4B,CAAC;CAC3C"}
|