@sema-agent/server 1.188.0 → 1.190.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.
Files changed (68) hide show
  1. package/README.md +2 -2
  2. package/deploy/sema-up/README.md +1 -1
  3. package/deploy/sema-up/chart/templates/server-v4pro.yaml +10 -0
  4. package/deploy/sema-up/chart/templates/server.yaml +11 -0
  5. package/deploy/sema-up/chart/values.yaml +10 -0
  6. package/deploy/sema-up/cluster-up.sh +1 -1
  7. package/deploy/sema-up/machines.example.yaml +2 -2
  8. package/deploy/sema-up/sema-up.sh +1 -1
  9. package/deploy/sema-up/stack/compose.yaml +7 -0
  10. package/dist/capabilities/sandbox-file-send.d.ts +3 -1
  11. package/dist/capabilities/sandbox-file-send.d.ts.map +1 -1
  12. package/dist/capabilities/sandbox-file-send.js +8 -1
  13. package/dist/capabilities/sandbox-file-send.js.map +1 -1
  14. package/dist/capabilities/send-user-file-tool.d.ts +1 -0
  15. package/dist/capabilities/send-user-file-tool.d.ts.map +1 -1
  16. package/dist/capabilities/send-user-file-tool.js +1 -0
  17. package/dist/capabilities/send-user-file-tool.js.map +1 -1
  18. package/dist/config.d.ts +7 -0
  19. package/dist/config.d.ts.map +1 -1
  20. package/dist/config.js +46 -9
  21. package/dist/config.js.map +1 -1
  22. package/dist/http/server.d.ts +1 -0
  23. package/dist/http/server.d.ts.map +1 -1
  24. package/dist/http/server.js +93 -17
  25. package/dist/http/server.js.map +1 -1
  26. package/dist/main.js +18 -9
  27. package/dist/main.js.map +1 -1
  28. package/dist/orchestration/workflow-completion-inbox.d.ts +12 -0
  29. package/dist/orchestration/workflow-completion-inbox.d.ts.map +1 -1
  30. package/dist/orchestration/workflow-completion-inbox.js +18 -0
  31. package/dist/orchestration/workflow-completion-inbox.js.map +1 -1
  32. package/dist/plugins/pg-pool.d.ts.map +1 -1
  33. package/dist/plugins/pg-pool.js +15 -0
  34. package/dist/plugins/pg-pool.js.map +1 -1
  35. package/dist/plugins/s3-presign.d.ts +11 -0
  36. package/dist/plugins/s3-presign.d.ts.map +1 -1
  37. package/dist/plugins/s3-presign.js +14 -5
  38. package/dist/plugins/s3-presign.js.map +1 -1
  39. package/dist/plugins/send-file-ledger.d.ts +64 -0
  40. package/dist/plugins/send-file-ledger.d.ts.map +1 -0
  41. package/dist/plugins/send-file-ledger.js +142 -0
  42. package/dist/plugins/send-file-ledger.js.map +1 -0
  43. package/dist/plugins/send-user-file.d.ts +6 -2
  44. package/dist/plugins/send-user-file.d.ts.map +1 -1
  45. package/dist/plugins/send-user-file.js +39 -11
  46. package/dist/plugins/send-user-file.js.map +1 -1
  47. package/dist/plugins/store-backend.d.ts +2 -0
  48. package/dist/plugins/store-backend.d.ts.map +1 -1
  49. package/dist/plugins/store-backend.js +7 -0
  50. package/dist/plugins/store-backend.js.map +1 -1
  51. package/dist/plugins/tidb-pool.d.ts.map +1 -1
  52. package/dist/plugins/tidb-pool.js +15 -0
  53. package/dist/plugins/tidb-pool.js.map +1 -1
  54. package/dist/run-local.d.ts.map +1 -1
  55. package/dist/run-local.js +2 -1
  56. package/dist/run-local.js.map +1 -1
  57. package/dist/runs.d.ts.map +1 -1
  58. package/dist/runs.js +16 -9
  59. package/dist/runs.js.map +1 -1
  60. package/dist/security.d.ts +2 -0
  61. package/dist/security.d.ts.map +1 -1
  62. package/dist/security.js +20 -3
  63. package/dist/security.js.map +1 -1
  64. package/dist/trace/project.d.ts +4 -0
  65. package/dist/trace/project.d.ts.map +1 -1
  66. package/dist/trace/project.js +4 -0
  67. package/dist/trace/project.js.map +1 -1
  68. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-completion-inbox.js","sourceRoot":"","sources":["../../src/orchestration/workflow-completion-inbox.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-completion-inbox.js","sourceRoot":"","sources":["../../src/orchestration/workflow-completion-inbox.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAalD,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAwMjD,CAAC;AAaF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAU/G;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAElE;AAiBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCjE"}
1
+ {"version":3,"file":"pg-pool.d.ts","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAalD,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EA0NjD,CAAC;AAaF,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,CAU/G;AAID,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,IAAI,CAElE;AAiBD,wBAAsB,cAAc,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCjE"}
@@ -93,6 +93,21 @@ export const PG_SCHEMA_STATEMENTS = [
93
93
  created_at TIMESTAMPTZ(3) NOT NULL,
94
94
  PRIMARY KEY (session_id, tool_name)
95
95
  )`,
96
+ `CREATE TABLE IF NOT EXISTS sendfile_link (
97
+ id VARCHAR(64) NOT NULL,
98
+ scope VARCHAR(190) NOT NULL,
99
+ bucket VARCHAR(190) NOT NULL,
100
+ object_key VARCHAR(512) NOT NULL,
101
+ track VARCHAR(16) NOT NULL,
102
+ filename VARCHAR(190) NOT NULL,
103
+ byte_len BIGINT NOT NULL,
104
+ ttl_sec BIGINT NOT NULL,
105
+ task_id VARCHAR(64),
106
+ session_id VARCHAR(64),
107
+ created_at TIMESTAMPTZ(3) NOT NULL,
108
+ PRIMARY KEY (id)
109
+ )`,
110
+ `CREATE INDEX IF NOT EXISTS idx_sendfile_link_scope ON sendfile_link (scope, id)`,
96
111
  `CREATE TABLE IF NOT EXISTS session_policy (
97
112
  policy_key CHAR(64) NOT NULL,
98
113
  session_id VARCHAR(64) NOT NULL,
@@ -1 +1 @@
1
- {"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pg-pool.js","sourceRoot":"","sources":["../../src/plugins/pg-pool.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,15 @@ export interface S3PresignParams {
10
10
  now?: Date;
11
11
  }
12
12
  export declare function presignS3Url(p: S3PresignParams): string;
13
+ export interface S3BucketPresignParams {
14
+ endpoint: string;
15
+ bucket: string;
16
+ method: "PUT" | "DELETE";
17
+ accessKey: string;
18
+ secretKey: string;
19
+ region?: string;
20
+ expiresSec?: number;
21
+ now?: Date;
22
+ }
23
+ export declare function presignS3BucketUrl(p: S3BucketPresignParams): string;
13
24
  //# sourceMappingURL=s3-presign.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3-presign.d.ts","sourceRoot":"","sources":["../../src/plugins/s3-presign.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAE9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAuBD,wBAAgB,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAyCvD"}
1
+ {"version":3,"file":"s3-presign.d.ts","sourceRoot":"","sources":["../../src/plugins/s3-presign.ts"],"names":[],"mappings":"AAaA,MAAM,WAAW,eAAe;IAE9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAwED,wBAAgB,YAAY,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAavD;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IAEf,MAAM,EAAE,KAAK,GAAG,QAAQ,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAKD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAEnE"}
@@ -18,10 +18,7 @@ function uriEncode(s, encodeSlash) {
18
18
  function hmac(key, data) {
19
19
  return createHmac("sha256", key).update(data, "utf8").digest();
20
20
  }
21
- export function presignS3Url(p) {
22
- if (p.key.startsWith("/") || p.key.split("/").some((seg) => seg === "." || seg === "..")) {
23
- throw new Error(`presignS3Url: refusing to sign a key with a traversal segment: ${p.key}`);
24
- }
21
+ function presignCanonical(p) {
25
22
  const region = p.region ?? "us-east-1";
26
23
  const expires = p.expiresSec ?? 600;
27
24
  const now = p.now ?? new Date();
@@ -29,7 +26,7 @@ export function presignS3Url(p) {
29
26
  const dateStamp = amzDate.slice(0, 8);
30
27
  const url = new URL(p.endpoint);
31
28
  const host = url.host;
32
- const canonicalUri = `/${uriEncode(p.bucket, true)}/${uriEncode(p.key, false)}`;
29
+ const canonicalUri = p.canonicalUri;
33
30
  const scope = `${dateStamp}/${region}/s3/aws4_request`;
34
31
  const params = {
35
32
  "X-Amz-Algorithm": "AWS4-HMAC-SHA256",
@@ -52,4 +49,16 @@ export function presignS3Url(p) {
52
49
  const signature = createHmac("sha256", kSigning).update(stringToSign, "utf8").digest("hex");
53
50
  return `${url.origin}${canonicalUri}?${canonicalQuery}&X-Amz-Signature=${signature}`;
54
51
  }
52
+ export function presignS3Url(p) {
53
+ if (p.key === "") {
54
+ throw new Error("presignS3Url: refusing to sign an empty key (single-object contract) — use presignS3BucketUrl for bucket-level operations");
55
+ }
56
+ if (p.key.startsWith("/") || p.key.split("/").some((seg) => seg === "." || seg === "..")) {
57
+ throw new Error(`presignS3Url: refusing to sign a key with a traversal segment: ${p.key}`);
58
+ }
59
+ return presignCanonical({ ...p, canonicalUri: `/${uriEncode(p.bucket, true)}/${uriEncode(p.key, false)}` });
60
+ }
61
+ export function presignS3BucketUrl(p) {
62
+ return presignCanonical({ ...p, canonicalUri: `/${uriEncode(p.bucket, true)}/` });
63
+ }
55
64
  //# sourceMappingURL=s3-presign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3-presign.js","sourceRoot":"","sources":["../../src/plugins/s3-presign.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3-presign.js","sourceRoot":"","sources":["../../src/plugins/s3-presign.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import type { Pool as MysqlPool } from "mysql2/promise";
2
+ import type { Pool as PgPool } from "pg";
3
+ import type { IssuedFileLink } from "./send-user-file.js";
4
+ export declare const SENDFILE_SINGLE_USER_SCOPE = "_";
5
+ export interface SendFileLedgerEntry {
6
+ id: string;
7
+ scope: string;
8
+ bucket: string;
9
+ objectKey: string;
10
+ track: "public" | "presigned";
11
+ filename: string;
12
+ size: number;
13
+ ttlSec: number;
14
+ taskId?: string;
15
+ sessionId?: string;
16
+ createdAt: number;
17
+ }
18
+ export interface SendFileLedger {
19
+ record(entry: SendFileLedgerEntry): Promise<void>;
20
+ listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
21
+ }
22
+ export declare class TiDBSendFileLedger implements SendFileLedger {
23
+ private readonly pool;
24
+ constructor(pool: MysqlPool);
25
+ record(entry: SendFileLedgerEntry): Promise<void>;
26
+ listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
27
+ }
28
+ export declare class PgSendFileLedger implements SendFileLedger {
29
+ private readonly pool;
30
+ constructor(pool: PgPool);
31
+ record(entry: SendFileLedgerEntry): Promise<void>;
32
+ listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
33
+ }
34
+ export declare class MemorySendFileLedger implements SendFileLedger {
35
+ private readonly byScope;
36
+ record(entry: SendFileLedgerEntry): Promise<void>;
37
+ listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
38
+ }
39
+ export declare class FileSendFileLedger implements SendFileLedger {
40
+ private readonly path;
41
+ private readonly mem;
42
+ private log;
43
+ constructor(root: string);
44
+ record(entry: SendFileLedgerEntry): Promise<void>;
45
+ listByScope(scope: string, limit: number, beforeId?: string): Promise<SendFileLedgerEntry[]>;
46
+ dispose(): void;
47
+ }
48
+ export interface LedgerRecordingDeps {
49
+ ledger: SendFileLedger;
50
+ deleteObject: (bucket: string, key: string) => Promise<void>;
51
+ warn?: (msg: string, meta?: Record<string, unknown>) => void;
52
+ now?: () => number;
53
+ newId?: () => string;
54
+ }
55
+ export declare function withLedgerRecording(send: (path: string, ctx: {
56
+ taskId?: string;
57
+ sessionId?: string;
58
+ principal?: string;
59
+ }) => Promise<IssuedFileLink>, deps: LedgerRecordingDeps): (path: string, ctx: {
60
+ taskId?: string;
61
+ sessionId?: string;
62
+ principal?: string;
63
+ }) => Promise<IssuedFileLink>;
64
+ //# sourceMappingURL=send-file-ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-file-ledger.d.ts","sourceRoot":"","sources":["../../src/plugins/send-file-ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ import { join } from "node:path";
2
+ import { AppendLog, ensureDir, readJsonlRecords, uuidv7 } from "@sema-agent/core";
3
+ export const SENDFILE_SINGLE_USER_SCOPE = "_";
4
+ export class TiDBSendFileLedger {
5
+ pool;
6
+ constructor(pool) {
7
+ this.pool = pool;
8
+ }
9
+ async record(entry) {
10
+ await this.pool.query("INSERT INTO sendfile_link (id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at) " +
11
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE id = id", [entry.id, entry.scope, entry.bucket, entry.objectKey, entry.track, entry.filename, entry.size, entry.ttlSec, entry.taskId ?? null, entry.sessionId ?? null, new Date(entry.createdAt)]);
12
+ }
13
+ async listByScope(scope, limit, beforeId) {
14
+ const [rows] = await this.pool.query("SELECT id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at FROM sendfile_link " +
15
+ `WHERE scope = ?${beforeId !== undefined ? " AND id < ?" : ""} ORDER BY id DESC LIMIT ?`, beforeId !== undefined ? [scope, beforeId, limit] : [scope, limit]);
16
+ return rows.map((r) => rowToEntry(r));
17
+ }
18
+ }
19
+ export class PgSendFileLedger {
20
+ pool;
21
+ constructor(pool) {
22
+ this.pool = pool;
23
+ }
24
+ async record(entry) {
25
+ await this.pool.query("INSERT INTO sendfile_link (id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at) " +
26
+ "VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11) ON CONFLICT (id) DO NOTHING", [entry.id, entry.scope, entry.bucket, entry.objectKey, entry.track, entry.filename, entry.size, entry.ttlSec, entry.taskId ?? null, entry.sessionId ?? null, new Date(entry.createdAt)]);
27
+ }
28
+ async listByScope(scope, limit, beforeId) {
29
+ const res = await this.pool.query("SELECT id, scope, bucket, object_key, track, filename, byte_len, ttl_sec, task_id, session_id, created_at FROM sendfile_link " +
30
+ `WHERE scope = $1${beforeId !== undefined ? " AND id < $2" : ""} ORDER BY id DESC LIMIT ${beforeId !== undefined ? "$3" : "$2"}`, beforeId !== undefined ? [scope, beforeId, limit] : [scope, limit]);
31
+ return res.rows.map(rowToEntry);
32
+ }
33
+ }
34
+ function rowToEntry(r) {
35
+ return {
36
+ id: String(r.id),
37
+ scope: String(r.scope),
38
+ bucket: String(r.bucket),
39
+ objectKey: String(r.object_key),
40
+ track: r.track === "presigned" ? "presigned" : "public",
41
+ filename: String(r.filename),
42
+ size: Number(r.byte_len),
43
+ ttlSec: Number(r.ttl_sec),
44
+ ...(r.task_id == null ? {} : { taskId: String(r.task_id) }),
45
+ ...(r.session_id == null ? {} : { sessionId: String(r.session_id) }),
46
+ createdAt: new Date(r.created_at).getTime(),
47
+ };
48
+ }
49
+ export class MemorySendFileLedger {
50
+ byScope = new Map();
51
+ async record(entry) {
52
+ let m = this.byScope.get(entry.scope);
53
+ if (!m) {
54
+ m = new Map();
55
+ this.byScope.set(entry.scope, m);
56
+ }
57
+ if (!m.has(entry.id))
58
+ m.set(entry.id, { ...entry });
59
+ }
60
+ async listByScope(scope, limit, beforeId) {
61
+ const m = this.byScope.get(scope);
62
+ if (!m)
63
+ return [];
64
+ return [...m.values()]
65
+ .filter((e) => beforeId === undefined || e.id < beforeId)
66
+ .sort((a, b) => (a.id < b.id ? 1 : a.id > b.id ? -1 : 0))
67
+ .slice(0, Math.max(0, limit))
68
+ .map((e) => ({ ...e }));
69
+ }
70
+ }
71
+ export class FileSendFileLedger {
72
+ path;
73
+ mem = new MemorySendFileLedger();
74
+ log;
75
+ constructor(root) {
76
+ const dir = join(root, "sendfile-ledger");
77
+ ensureDir(dir);
78
+ this.path = join(dir, "links.jsonl");
79
+ for (const r of readJsonlRecords(this.path)) {
80
+ if (!r || typeof r.id !== "string" || typeof r.scope !== "string" || typeof r.objectKey !== "string")
81
+ continue;
82
+ void this.mem.record(r);
83
+ }
84
+ }
85
+ async record(entry) {
86
+ this.log ??= new AppendLog(this.path);
87
+ this.log.append(entry, true);
88
+ await this.mem.record(entry);
89
+ }
90
+ listByScope(scope, limit, beforeId) {
91
+ return this.mem.listByScope(scope, limit, beforeId);
92
+ }
93
+ dispose() {
94
+ try {
95
+ this.log?.close();
96
+ }
97
+ catch {
98
+ }
99
+ this.log = undefined;
100
+ }
101
+ }
102
+ export function withLedgerRecording(send, deps) {
103
+ return async (path, ctx) => {
104
+ const link = await send(path, ctx);
105
+ try {
106
+ await deps.ledger.record({
107
+ id: deps.newId ? deps.newId() : uuidv7(),
108
+ scope: link.scope ?? SENDFILE_SINGLE_USER_SCOPE,
109
+ bucket: link.bucket,
110
+ objectKey: link.key,
111
+ track: link.track,
112
+ filename: link.filename,
113
+ size: link.size,
114
+ ttlSec: link.ttlSec,
115
+ ...(ctx.taskId !== undefined ? { taskId: ctx.taskId } : {}),
116
+ ...(ctx.sessionId !== undefined ? { sessionId: ctx.sessionId } : {}),
117
+ createdAt: deps.now ? deps.now() : Date.now(),
118
+ });
119
+ }
120
+ catch (e) {
121
+ let reclaimed = true;
122
+ try {
123
+ try {
124
+ await deps.deleteObject(link.bucket, link.key);
125
+ }
126
+ catch {
127
+ await deps.deleteObject(link.bucket, link.key);
128
+ }
129
+ }
130
+ catch (de) {
131
+ reclaimed = false;
132
+ deps.warn?.("sendfile_ledger_reclaim_failed", { bucket: link.bucket, key: link.key, err: de instanceof Error ? de.message : String(de) });
133
+ }
134
+ const cause = e instanceof Error ? e.message : String(e);
135
+ throw new Error(reclaimed
136
+ ? `SendUserFile ledger record failed — file not delivered (uploaded object reclaimed): ${cause}`
137
+ : `SendUserFile ledger record failed — file not delivered; reclaim FAILED — orphan object at ${link.bucket}/${link.key}, needs manual cleanup: ${cause}`);
138
+ }
139
+ return link;
140
+ };
141
+ }
142
+ //# sourceMappingURL=send-file-ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-file-ledger.js","sourceRoot":"","sources":["../../src/plugins/send-file-ledger.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export declare const PRESIGN_MAX_TTL_SEC = 604800;
2
+ export declare function scopeSegment(secretKey: string, scope: string | undefined): string;
2
3
  export interface SendUserFileConfig {
3
4
  endpoint: string;
4
5
  publicEndpoint?: string;
@@ -19,6 +20,7 @@ export interface IssuedFileLink {
19
20
  track: "public" | "presigned";
20
21
  bucket: string;
21
22
  key: string;
23
+ scope?: string;
22
24
  }
23
25
  export declare function sanitizeSendFileName(name: string | undefined): string;
24
26
  export interface PreparedDirectUpload {
@@ -27,13 +29,15 @@ export interface PreparedDirectUpload {
27
29
  finalize(size: number): IssuedFileLink;
28
30
  }
29
31
  export interface SendUserFileIssuer {
30
- issue(bytes: Uint8Array, filename: string | undefined, ttlSec?: number): Promise<IssuedFileLink>;
31
- prepareDirectUpload(filename: string | undefined, ttlSec?: number): PreparedDirectUpload;
32
+ issue(bytes: Uint8Array, filename: string | undefined, ttlSec?: number, scope?: string): Promise<IssuedFileLink>;
33
+ prepareDirectUpload(filename: string | undefined, ttlSec?: number, scope?: string): PreparedDirectUpload;
34
+ deleteObject(bucket: string, key: string): Promise<void>;
32
35
  readonly publicEndpoint: string | undefined;
33
36
  }
34
37
  export declare function createSendUserFileIssuer(cfg: SendUserFileConfig, deps?: {
35
38
  upload?: (bucket: string, key: string, bytes: Uint8Array) => Promise<void>;
36
39
  verify?: (bucket: string, key: string, maxBytes: number) => Promise<number>;
40
+ remove?: (bucket: string, key: string) => Promise<void>;
37
41
  now?: () => Date;
38
42
  }): SendUserFileIssuer;
39
43
  //# sourceMappingURL=send-user-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"send-user-file.d.ts","sourceRoot":"","sources":["../../src/plugins/send-user-file.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAE3C,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,YAAY,EAAE,MAAM,CAAC;IAErB,aAAa,EAAE,MAAM,CAAC;IAEtB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAQD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAiBrE;AAOD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,MAAM,CAAC;IAMf,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IAEjC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAEjG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAEzF,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,kBAAkB,EACvB,IAAI,CAAC,EAAE;IAEL,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5E,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GACA,kBAAkB,CAyIpB"}
1
+ {"version":3,"file":"send-user-file.d.ts","sourceRoot":"","sources":["../../src/plugins/send-user-file.ts"],"names":[],"mappings":"AA8BA,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAuB3C,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGjF;AAED,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAEjB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,YAAY,EAAE,MAAM,CAAC;IAErB,aAAa,EAAE,MAAM,CAAC;IAEtB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAiBrE;AAOD,MAAM,WAAW,oBAAoB;IAEnC,MAAM,EAAE,MAAM,CAAC;IAMf,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAC;CACxC;AAED,MAAM,WAAW,kBAAkB;IAIjC,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAGjH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAAC;IAGzG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzD,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7C;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,kBAAkB,EACvB,IAAI,CAAC,EAAE;IAEL,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5E,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,GACA,kBAAkB,CAqKpB"}
@@ -1,6 +1,12 @@
1
+ import { createHmac } from "node:crypto";
1
2
  import { uuidv7 } from "@sema-agent/core";
2
3
  import { presignS3Url } from "./s3-presign.js";
3
4
  export const PRESIGN_MAX_TTL_SEC = 604_800;
5
+ export function scopeSegment(secretKey, scope) {
6
+ if (scope === undefined || scope === "")
7
+ return "_";
8
+ return createHmac("sha256", secretKey).update(`sendfile-scope:${scope}`).digest("hex").slice(0, 32);
9
+ }
4
10
  export function sanitizeSendFileName(name) {
5
11
  const base = (name ?? "").split(/[/\\]/).pop() ?? "";
6
12
  let clean = base.replace(/[\u0000-\u001f\u007f\u200e\u200f\u202a-\u202e\u2066-\u2069]/g, "").replace(/^\.+/, "").trim();
@@ -36,7 +42,7 @@ export function createSendUserFileIssuer(cfg, deps) {
36
42
  if (!res.ok)
37
43
  throw new Error(`SendUserFile upload failed: ${res.status} ${res.statusText} (bucket=${bucket})`);
38
44
  });
39
- const issue = async (bytes, filename, ttlSec) => {
45
+ const issue = async (bytes, filename, ttlSec, scope) => {
40
46
  if (cfg.publicEndpoint === undefined) {
41
47
  throw new Error("SendUserFile is not configured for public links: set S3_PUBLIC_ENDPOINT (the S3/MinIO base URL users can reach; falls back to S3_ENDPOINT when that is already public)");
42
48
  }
@@ -45,16 +51,18 @@ export function createSendUserFileIssuer(cfg, deps) {
45
51
  throw new Error(`SendUserFile ttl must be a non-negative INTEGER of seconds (0 = permanent; SigV4 X-Amz-Expires is integer-only); got ${ttl}`);
46
52
  const name = sanitizeSendFileName(filename);
47
53
  const publicBase = cfg.publicEndpoint.replace(/\/+$/, "");
54
+ const seg = scopeSegment(cfg.secretKey, scope);
55
+ const scopeField = scope !== undefined && scope !== "" ? { scope } : {};
48
56
  if (ttl === 0) {
49
- const key = `${uuidv7()}/${name}`;
57
+ const key = `${seg}/${uuidv7()}/${name}`;
50
58
  await upload(cfg.publicBucket, key, bytes);
51
59
  const url = `${publicBase}/${cfg.publicBucket}/${key.split("/").map(encodeURIComponent).join("/")}`;
52
- return { url, filename: name, size: bytes.byteLength, ttlSec: 0, track: "public", bucket: cfg.publicBucket, key };
60
+ return { url, filename: name, size: bytes.byteLength, ttlSec: 0, track: "public", bucket: cfg.publicBucket, key, ...scopeField };
53
61
  }
54
62
  if (ttl > PRESIGN_MAX_TTL_SEC) {
55
63
  throw new Error(`SendUserFile ttl ${ttl}s exceeds the SigV4 presign ceiling (${PRESIGN_MAX_TTL_SEC}s = 7 days) — use ttl=0 for a permanent link`);
56
64
  }
57
- const key = `${cfg.privateKeyPrefix}${uuidv7()}/${name}`;
65
+ const key = `${cfg.privateKeyPrefix}${seg}/${uuidv7()}/${name}`;
58
66
  await upload(cfg.privateBucket, key, bytes);
59
67
  const url = presignS3Url({
60
68
  endpoint: publicBase,
@@ -67,9 +75,9 @@ export function createSendUserFileIssuer(cfg, deps) {
67
75
  expiresSec: ttl,
68
76
  ...(deps?.now !== undefined ? { now: deps.now() } : {}),
69
77
  });
70
- return { url, filename: name, size: bytes.byteLength, ttlSec: ttl, track: "presigned", bucket: cfg.privateBucket, key };
78
+ return { url, filename: name, size: bytes.byteLength, ttlSec: ttl, track: "presigned", bucket: cfg.privateBucket, key, ...scopeField };
71
79
  };
72
- const prepareDirectUpload = (filename, ttlSec) => {
80
+ const prepareDirectUpload = (filename, ttlSec, scope) => {
73
81
  if (cfg.publicEndpoint === undefined) {
74
82
  throw new Error("SendUserFile is not configured for public links: set S3_PUBLIC_ENDPOINT (the S3/MinIO base URL users can reach; falls back to S3_ENDPOINT when that is already public)");
75
83
  }
@@ -83,7 +91,9 @@ export function createSendUserFileIssuer(cfg, deps) {
83
91
  const publicBase = cfg.publicEndpoint.replace(/\/+$/, "");
84
92
  const putBase = (cfg.sandboxPutEndpoint ?? cfg.publicEndpoint).replace(/\/+$/, "");
85
93
  const bucket = ttl === 0 ? cfg.publicBucket : cfg.privateBucket;
86
- const key = ttl === 0 ? `${uuidv7()}/${name}` : `${cfg.privateKeyPrefix}${uuidv7()}/${name}`;
94
+ const seg = scopeSegment(cfg.secretKey, scope);
95
+ const scopeField = scope !== undefined && scope !== "" ? { scope } : {};
96
+ const key = ttl === 0 ? `${seg}/${uuidv7()}/${name}` : `${cfg.privateKeyPrefix}${seg}/${uuidv7()}/${name}`;
87
97
  const putUrl = presignS3Url({
88
98
  endpoint: putBase,
89
99
  bucket,
@@ -116,14 +126,14 @@ export function createSendUserFileIssuer(cfg, deps) {
116
126
  throw new Error("SendUserFile upload verification failed: store returned no content-length");
117
127
  if (size > maxBytes) {
118
128
  await fetch(sign("DELETE"), { method: "DELETE" }).catch(() => undefined);
119
- throw new Error(`file exceeds the ${Math.floor(maxBytes / (1024 * 1024))} MiB per-file cap (uploaded object was ${size} bytes — deleted)`);
129
+ throw new Error(`file exceeds the ${maxBytes >= 1024 * 1024 ? `${Math.floor(maxBytes / (1024 * 1024))} MiB` : `${maxBytes} byte`} per-file cap (uploaded object was ${size} bytes — deleted)`);
120
130
  }
121
131
  return size;
122
132
  };
123
133
  const finalize = (size) => {
124
134
  if (ttl === 0) {
125
135
  const url = `${publicBase}/${bucket}/${key.split("/").map(encodeURIComponent).join("/")}`;
126
- return { url, filename: name, size, ttlSec: 0, track: "public", bucket, key };
136
+ return { url, filename: name, size, ttlSec: 0, track: "public", bucket, key, ...scopeField };
127
137
  }
128
138
  const url = presignS3Url({
129
139
  endpoint: publicBase,
@@ -136,10 +146,28 @@ export function createSendUserFileIssuer(cfg, deps) {
136
146
  expiresSec: ttl,
137
147
  ...(deps?.now !== undefined ? { now: deps.now() } : {}),
138
148
  });
139
- return { url, filename: name, size, ttlSec: ttl, track: "presigned", bucket, key };
149
+ return { url, filename: name, size, ttlSec: ttl, track: "presigned", bucket, key, ...scopeField };
140
150
  };
141
151
  return { putUrl, verifySize, finalize };
142
152
  };
143
- return { issue, prepareDirectUpload, publicEndpoint: cfg.publicEndpoint };
153
+ const deleteObject = async (bucket, key) => {
154
+ if (deps?.remove)
155
+ return deps.remove(bucket, key);
156
+ const url = presignS3Url({
157
+ endpoint: cfg.endpoint,
158
+ bucket,
159
+ key,
160
+ method: "DELETE",
161
+ accessKey: cfg.accessKey,
162
+ secretKey: cfg.secretKey,
163
+ ...(cfg.region !== undefined ? { region: cfg.region } : {}),
164
+ expiresSec: 60,
165
+ ...(deps?.now !== undefined ? { now: deps.now() } : {}),
166
+ });
167
+ const res = await fetch(url, { method: "DELETE" });
168
+ if (!res.ok && res.status !== 404)
169
+ throw new Error(`SendUserFile object delete failed: ${res.status} ${res.statusText} (bucket=${bucket})`);
170
+ };
171
+ return { issue, prepareDirectUpload, deleteObject, publicEndpoint: cfg.publicEndpoint };
144
172
  }
145
173
  //# sourceMappingURL=send-user-file.js.map