@superdurable/dex-agents 0.3.0 → 0.5.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 (139) hide show
  1. package/README.md +598 -45
  2. package/dist/src/agent-context-compaction.d.ts +1 -1
  3. package/dist/src/agent-framework-runner.d.ts +210 -10
  4. package/dist/src/agent-framework-runner.js +30 -0
  5. package/dist/src/agent-framework-runner.js.map +1 -1
  6. package/dist/src/agent-local-directory-media-store.d.ts +111 -0
  7. package/dist/src/agent-local-directory-media-store.js +417 -0
  8. package/dist/src/agent-local-directory-media-store.js.map +1 -0
  9. package/dist/src/agent-media.d.ts +279 -0
  10. package/dist/src/agent-media.js +457 -0
  11. package/dist/src/agent-media.js.map +1 -0
  12. package/dist/src/agent-session-codecs.d.ts +3 -1
  13. package/dist/src/agent-session-codecs.js +53 -4
  14. package/dist/src/agent-session-codecs.js.map +1 -1
  15. package/dist/src/agent-session-failure.d.ts +4 -2
  16. package/dist/src/agent-session-failure.js +6 -2
  17. package/dist/src/agent-session-failure.js.map +1 -1
  18. package/dist/src/agent-session-flow-graph.d.ts +46 -0
  19. package/dist/src/agent-session-flow-graph.js +51 -0
  20. package/dist/src/agent-session-flow-graph.js.map +1 -1
  21. package/dist/src/agent-session-flow-graph.json +98 -81
  22. package/dist/src/agent-session-flow.d.ts +5 -3
  23. package/dist/src/agent-session-flow.js +10 -1
  24. package/dist/src/agent-session-flow.js.map +1 -1
  25. package/dist/src/agent-session-start.d.ts +1 -1
  26. package/dist/src/agent-session-start.js +2 -2
  27. package/dist/src/agent-session-start.js.map +1 -1
  28. package/dist/src/agent-session-steps.d.ts +9 -0
  29. package/dist/src/agent-session-steps.js +219 -34
  30. package/dist/src/agent-session-steps.js.map +1 -1
  31. package/dist/src/agent-session-tracer.js +1 -1
  32. package/dist/src/agent-session-tracer.js.map +1 -1
  33. package/dist/src/agent-session-transitions.d.ts +4 -0
  34. package/dist/src/agent-session-transitions.js +29 -1
  35. package/dist/src/agent-session-transitions.js.map +1 -1
  36. package/dist/src/agent-session-values.d.ts +112 -1
  37. package/dist/src/agent-session-values.js +6 -0
  38. package/dist/src/agent-session-values.js.map +1 -1
  39. package/dist/src/agent-session-wait-steps.js +17 -5
  40. package/dist/src/agent-session-wait-steps.js.map +1 -1
  41. package/dist/src/ai-sdk/ai-sdk-model-client.d.ts +15 -3
  42. package/dist/src/ai-sdk/ai-sdk-model-client.js +36 -7
  43. package/dist/src/ai-sdk/ai-sdk-model-client.js.map +1 -1
  44. package/dist/src/ai-sdk/index.d.ts +1 -1
  45. package/dist/src/ai-sdk/index.js +1 -1
  46. package/dist/src/ai-sdk/index.js.map +1 -1
  47. package/dist/src/{stepwise → builtin-loop}/agent-definition.d.ts +120 -5
  48. package/dist/src/builtin-loop/agent-definition.js.map +1 -0
  49. package/dist/src/builtin-loop/builtin-agent-session-flow.d.ts +69 -0
  50. package/dist/src/{stepwise/stepwise-agent-session-flow.js → builtin-loop/builtin-agent-session-flow.js} +15 -9
  51. package/dist/src/builtin-loop/builtin-agent-session-flow.js.map +1 -0
  52. package/dist/src/{stepwise/stepwise-agent-runner.d.ts → builtin-loop/builtin-loop-agent-runner.d.ts} +85 -26
  53. package/dist/src/{stepwise/stepwise-agent-runner.js → builtin-loop/builtin-loop-agent-runner.js} +320 -213
  54. package/dist/src/builtin-loop/builtin-loop-agent-runner.js.map +1 -0
  55. package/dist/src/{stepwise/stepwise-input-items.d.ts → builtin-loop/builtin-loop-input-items.d.ts} +7 -3
  56. package/dist/src/{stepwise/stepwise-input-items.js → builtin-loop/builtin-loop-input-items.js} +57 -10
  57. package/dist/src/builtin-loop/builtin-loop-input-items.js.map +1 -0
  58. package/dist/src/builtin-loop/function-tool.d.ts +282 -0
  59. package/dist/src/{stepwise → builtin-loop}/function-tool.js +63 -3
  60. package/dist/src/builtin-loop/function-tool.js.map +1 -0
  61. package/dist/src/builtin-loop/index.d.ts +8 -0
  62. package/dist/src/builtin-loop/index.js +13 -0
  63. package/dist/src/builtin-loop/index.js.map +1 -0
  64. package/dist/src/builtin-loop/json-schema-validation.js.map +1 -0
  65. package/dist/src/{stepwise → builtin-loop}/model-client.d.ts +36 -7
  66. package/dist/src/builtin-loop/model-client.js.map +1 -0
  67. package/dist/src/{stepwise → builtin-loop}/scripted-model-client.d.ts +8 -5
  68. package/dist/src/{stepwise → builtin-loop}/scripted-model-client.js +8 -5
  69. package/dist/src/builtin-loop/scripted-model-client.js.map +1 -0
  70. package/dist/src/{stepwise → builtin-loop}/tool-source.d.ts +13 -3
  71. package/dist/src/builtin-loop/tool-source.js.map +1 -0
  72. package/dist/src/connectors/connector-input-schema.d.ts +19 -0
  73. package/dist/src/connectors/connector-input-schema.js +228 -0
  74. package/dist/src/connectors/connector-input-schema.js.map +1 -0
  75. package/dist/src/connectors/connector-step-context.d.ts +94 -0
  76. package/dist/src/connectors/connector-step-context.js +180 -0
  77. package/dist/src/connectors/connector-step-context.js.map +1 -0
  78. package/dist/src/connectors/connector-tool-source.d.ts +401 -0
  79. package/dist/src/connectors/connector-tool-source.js +628 -0
  80. package/dist/src/connectors/connector-tool-source.js.map +1 -0
  81. package/dist/src/connectors/index.d.ts +3 -0
  82. package/dist/src/connectors/index.js +11 -0
  83. package/dist/src/connectors/index.js.map +1 -0
  84. package/dist/src/index.d.ts +7 -3
  85. package/dist/src/index.js +6 -3
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/mcp/index.d.ts +1 -0
  88. package/dist/src/mcp/index.js +1 -0
  89. package/dist/src/mcp/index.js.map +1 -1
  90. package/dist/src/mcp/mcp-dex-conventions.d.ts +57 -0
  91. package/dist/src/mcp/mcp-dex-conventions.js +90 -0
  92. package/dist/src/mcp/mcp-dex-conventions.js.map +1 -0
  93. package/dist/src/mcp/mcp-image-content.d.ts +20 -0
  94. package/dist/src/mcp/mcp-image-content.js +82 -0
  95. package/dist/src/mcp/mcp-image-content.js.map +1 -0
  96. package/dist/src/mcp/mcp-tool-source.d.ts +178 -17
  97. package/dist/src/mcp/mcp-tool-source.js +237 -34
  98. package/dist/src/mcp/mcp-tool-source.js.map +1 -1
  99. package/dist/src/s3/index.d.ts +1 -0
  100. package/dist/src/s3/index.js +9 -0
  101. package/dist/src/s3/index.js.map +1 -0
  102. package/dist/src/s3/s3-media-store.d.ts +138 -0
  103. package/dist/src/s3/s3-media-store.js +255 -0
  104. package/dist/src/s3/s3-media-store.js.map +1 -0
  105. package/dist/src/stepwise/index.d.ts +41 -8
  106. package/dist/src/stepwise/index.js +35 -5
  107. package/dist/src/stepwise/index.js.map +1 -1
  108. package/dist/src/testing/agent-session-test-client.d.ts +6 -3
  109. package/dist/src/testing/agent-session-test-client.js +10 -3
  110. package/dist/src/testing/agent-session-test-client.js.map +1 -1
  111. package/dist/src/testing/scripted-model-client.d.ts +1 -1
  112. package/dist/src/testing/scripted-model-client.js +2 -2
  113. package/dist/src/testing/scripted-model-client.js.map +1 -1
  114. package/dist/src/tool-source-router.d.ts +211 -0
  115. package/dist/src/tool-source-router.js +380 -0
  116. package/dist/src/tool-source-router.js.map +1 -0
  117. package/dist/src/ui-stream/agent-event-json.d.ts +2 -1
  118. package/dist/src/ui-stream/agent-event-json.js +3 -1
  119. package/dist/src/ui-stream/agent-event-json.js.map +1 -1
  120. package/dist/src/ui-stream/agent-ui-messages.d.ts +11 -3
  121. package/dist/src/ui-stream/agent-ui-messages.js +29 -5
  122. package/dist/src/ui-stream/agent-ui-messages.js.map +1 -1
  123. package/package.json +25 -3
  124. package/dist/src/stepwise/agent-definition.js.map +0 -1
  125. package/dist/src/stepwise/function-tool.d.ts +0 -130
  126. package/dist/src/stepwise/function-tool.js.map +0 -1
  127. package/dist/src/stepwise/json-schema-validation.js.map +0 -1
  128. package/dist/src/stepwise/model-client.js.map +0 -1
  129. package/dist/src/stepwise/scripted-model-client.js.map +0 -1
  130. package/dist/src/stepwise/stepwise-agent-runner.js.map +0 -1
  131. package/dist/src/stepwise/stepwise-agent-session-flow.d.ts +0 -35
  132. package/dist/src/stepwise/stepwise-agent-session-flow.js.map +0 -1
  133. package/dist/src/stepwise/stepwise-input-items.js.map +0 -1
  134. package/dist/src/stepwise/tool-source.js.map +0 -1
  135. /package/dist/src/{stepwise → builtin-loop}/agent-definition.js +0 -0
  136. /package/dist/src/{stepwise → builtin-loop}/json-schema-validation.d.ts +0 -0
  137. /package/dist/src/{stepwise → builtin-loop}/json-schema-validation.js +0 -0
  138. /package/dist/src/{stepwise → builtin-loop}/model-client.js +0 -0
  139. /package/dist/src/{stepwise → builtin-loop}/tool-source.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-tool-source.js","sourceRoot":"","sources":["../../../src/mcp/mcp-tool-source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-tool-source.js","sourceRoot":"","sources":["../../../src/mcp/mcp-tool-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { S3MediaStore, type S3MediaStoreCredentials, type S3MediaStoreOptions } from "./s3-media-store.js";
@@ -0,0 +1,9 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Sustainable Use License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
8
+ export { S3MediaStore } from "./s3-media-store.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/s3/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,EAAE;AACF,kDAAkD;AAClD,mEAAmE;AACnE,+CAA+C;AAC/C,EAAE;AACF,0DAA0D;AAE1D,OAAO,EAAE,YAAY,EAA0D,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,138 @@
1
+ import { type MediaStore } from "../agent-media.js";
2
+ import type { AgentImageReference } from "../agent-session-values.js";
3
+ /**
4
+ * Credentials an {@link S3MediaStore} signs requests with instead of the standard AWS credential chain.
5
+ * @since 0.5.0
6
+ */
7
+ export interface S3MediaStoreCredentials {
8
+ /** The access key ID. */
9
+ readonly accessKeyId: string;
10
+ /** The secret access key. The store never logs it. */
11
+ readonly secretAccessKey: string;
12
+ /** The session token of temporary credentials; omit it for long-lived keys. */
13
+ readonly sessionToken?: string;
14
+ }
15
+ /**
16
+ * Where an {@link S3MediaStore} keeps images and how it reaches S3.
17
+ * @since 0.5.0
18
+ */
19
+ export interface S3MediaStoreOptions {
20
+ /** The bucket name. It must be non-empty and contain no `/`. */
21
+ readonly bucket: string;
22
+ /**
23
+ * Key prefix of every object, such as `"agents/media"`. Leading and trailing `/` characters are dropped. Omitted or
24
+ * empty keeps objects at `sha256/<sha256>`.
25
+ */
26
+ readonly prefix?: string;
27
+ /** Endpoint of an S3-compatible service, such as `"http://127.0.0.1:9000"`; omit it for AWS S3. */
28
+ readonly endpoint?: string;
29
+ /** AWS region; omit it for the standard AWS configuration, such as `AWS_REGION`. */
30
+ readonly region?: string;
31
+ /** Whether to address the bucket in the URL path instead of the host name. Many S3-compatible services need it. */
32
+ readonly forcePathStyle?: boolean;
33
+ /**
34
+ * Credentials to sign requests with; omit them, the default, for the standard AWS credential chain. Pass them only
35
+ * for a bucket whose keys are not secret, such as a local development bucket with fixed loopback credentials.
36
+ */
37
+ readonly credentials?: S3MediaStoreCredentials;
38
+ }
39
+ /**
40
+ * Keeps image bytes in an S3 bucket, one object per distinct image.
41
+ *
42
+ * The object key is `<prefix>/sha256/<sha256>`, and a reference's `uri` is `s3://<bucket>/<prefix>/sha256/<sha256>`.
43
+ * `putImage` uploads with `If-None-Match: *` and the image's `Content-Type`, and treats "already exists" (412) as
44
+ * success, so concurrent and retried uploads of the same bytes write one object. A 409 conflict, from a concurrent write
45
+ * or delete of the key, retries the upload twice with a short backoff; if every attempt conflicts, a `HEAD` must find
46
+ * the object with the image's size, or `putImage` throws `MediaStoreError`. A service that refuses conditional writes gets a
47
+ * `HEAD` first and a plain `PUT` when the object is missing; then two concurrent uploads may both write, so
48
+ * deduplication holds for the key and its final content, not for every write. `getImage` reads only objects under
49
+ * this store's bucket and prefix, refuses an object whose `Content-Length` differs from the reference, reads at most
50
+ * one byte more than `sizeBytes`, and checks the bytes with `verifyImageBytes`. The AWS SDK reads credentials from the
51
+ * standard AWS chain unless {@link S3MediaStoreOptions.credentials} gives them. Never put credentials in session
52
+ * settings or Flow input.
53
+ *
54
+ * Session deletion does not delete objects. A runner reads a session's images again whenever a model call replays
55
+ * them, so keep every object at least as long as any session that references it can still run a turn or replay its
56
+ * history. A lifecycle rule that expires objects sooner makes those turns fail with `MediaStoreError`. Call
57
+ * {@link close} when the store is no longer needed, so its connections do not keep the process alive.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * import { S3MediaStore } from "@superdurable/dex-agents/s3";
62
+ *
63
+ * const store = S3MediaStore.fromStoreUri("s3://agent-media/sessions");
64
+ * const reference = await store.putImage(screenshotPng);
65
+ * // reference.uri === "s3://agent-media/sessions/sha256/9f2c..."
66
+ * store.close();
67
+ *
68
+ * // A local development bucket with fixed loopback credentials.
69
+ * const local = new S3MediaStore({
70
+ * bucket: "agent-media",
71
+ * endpoint: "http://127.0.0.1:9000",
72
+ * region: "us-east-1",
73
+ * forcePathStyle: true,
74
+ * credentials: { accessKeyId: "s3local", secretAccessKey: "s3local" },
75
+ * });
76
+ * ```
77
+ * @since 0.5.0
78
+ */
79
+ export declare class S3MediaStore implements MediaStore {
80
+ /** The location that every reference of this store starts with: `"s3://<bucket>/<prefix>"`, or without a prefix `"s3://<bucket>"`. */
81
+ readonly storeUri: string;
82
+ private readonly bucket;
83
+ private readonly prefix;
84
+ private readonly client;
85
+ private supportsConditionalWrites;
86
+ /**
87
+ * Creates a store; it makes no request until the first upload or read.
88
+ *
89
+ * @param options - The bucket, prefix, and connection settings.
90
+ * @throws {TypeError} When `options.bucket` is empty or contains `/`.
91
+ * @throws {RangeError} When the bucket and prefix make image URIs longer than `maxImageUriLength`.
92
+ */
93
+ constructor(options: S3MediaStoreOptions);
94
+ /**
95
+ * Creates a store from `s3://<bucket>` or `s3://<bucket>/<prefix>`.
96
+ *
97
+ * @param storeUri - The bucket and optional prefix as an S3 URI.
98
+ * @param options - The connection settings and credentials.
99
+ * @returns The store.
100
+ * @throws {TypeError} When `storeUri` does not start with `s3://` or names no bucket.
101
+ * @throws {RangeError} When the bucket and prefix make image URIs longer than `maxImageUriLength`.
102
+ */
103
+ static fromStoreUri(storeUri: string, options?: Omit<S3MediaStoreOptions, "bucket" | "prefix">): S3MediaStore;
104
+ /**
105
+ * Returns the object key of the image with this SHA-256.
106
+ *
107
+ * @param sha256 - SHA-256 of the bytes as 64 lowercase hex digits.
108
+ * @returns `"<prefix>/sha256/<sha256>"`, or `"sha256/<sha256>"` without a prefix.
109
+ */
110
+ objectKey(sha256: string): string;
111
+ /**
112
+ * Stores one image unless the bucket already has it, and returns its reference.
113
+ *
114
+ * @param data - PNG, JPEG, GIF, or WebP bytes, at most `maxImageBytes`.
115
+ * @returns The reference.
116
+ * @throws {ImageValidationError} When the bytes are not a valid image for `buildImageReference`. Nothing is uploaded.
117
+ * @throws {MediaStoreError} When every conditional upload conflicted and the object is still missing, or has another
118
+ * size. Retrying is safe.
119
+ * @throws {S3ServiceException} When S3 refuses the request, such as for missing credentials or permissions.
120
+ * Retrying is safe.
121
+ */
122
+ putImage(data: Uint8Array): Promise<AgentImageReference>;
123
+ /**
124
+ * Returns the bytes of one image in this store.
125
+ *
126
+ * @param reference - A reference under this store's bucket and prefix.
127
+ * @returns The exact bytes, checked with `verifyImageBytes`.
128
+ * @throws {ImageValidationError} When the reference's fields are invalid.
129
+ * @throws {MediaStoreError} When the reference is outside this store's bucket and prefix, the object is missing, or
130
+ * its bytes do not match.
131
+ * @throws {S3ServiceException} When S3 refuses the request for another reason.
132
+ */
133
+ getImage(reference: AgentImageReference): Promise<Uint8Array>;
134
+ /** Closes the store's S3 connections. Do not use the store afterwards. */
135
+ close(): void;
136
+ /** Returns the size of the object at `key`, or `undefined` when there is none. */
137
+ private storedSize;
138
+ }
@@ -0,0 +1,255 @@
1
+ // Copyright (c) 2026 Super Durable, Inc.
2
+ //
3
+ // Licensed under the Sustainable Use License 1.0.
4
+ // You may not use this file except in compliance with the License.
5
+ // See the LICENSE file in the repository root.
6
+ //
7
+ // SPDX-License-Identifier: LicenseRef-Sustainable-Use-1.0
8
+ import { setTimeout as delay } from "node:timers/promises";
9
+ import { GetObjectCommand, HeadObjectCommand, PutObjectCommand, S3Client, S3ServiceException, } from "@aws-sdk/client-s3";
10
+ import { MediaStoreError, buildImageReference, requireShortImageUris, requireStoreImageReference, verifyImageBytes, } from "../agent-media.js";
11
+ const notFoundErrorCodes = new Set(["NotFound", "NoSuchKey", "404"]);
12
+ const alreadyExistsErrorCodes = new Set(["PreconditionFailed", "412"]);
13
+ // A concurrent write or delete of the key; S3 asks the caller to retry the upload.
14
+ const conditionalWriteConflictErrorCodes = new Set(["ConditionalRequestConflict", "409"]);
15
+ // Milliseconds before each retry of a conditional PUT that S3 answered with 409.
16
+ const conditionalWriteConflictRetryDelaysMs = [100, 400];
17
+ const conditionalWriteUnsupportedErrorCodes = new Set(["NotImplemented", "501"]);
18
+ /**
19
+ * Keeps image bytes in an S3 bucket, one object per distinct image.
20
+ *
21
+ * The object key is `<prefix>/sha256/<sha256>`, and a reference's `uri` is `s3://<bucket>/<prefix>/sha256/<sha256>`.
22
+ * `putImage` uploads with `If-None-Match: *` and the image's `Content-Type`, and treats "already exists" (412) as
23
+ * success, so concurrent and retried uploads of the same bytes write one object. A 409 conflict, from a concurrent write
24
+ * or delete of the key, retries the upload twice with a short backoff; if every attempt conflicts, a `HEAD` must find
25
+ * the object with the image's size, or `putImage` throws `MediaStoreError`. A service that refuses conditional writes gets a
26
+ * `HEAD` first and a plain `PUT` when the object is missing; then two concurrent uploads may both write, so
27
+ * deduplication holds for the key and its final content, not for every write. `getImage` reads only objects under
28
+ * this store's bucket and prefix, refuses an object whose `Content-Length` differs from the reference, reads at most
29
+ * one byte more than `sizeBytes`, and checks the bytes with `verifyImageBytes`. The AWS SDK reads credentials from the
30
+ * standard AWS chain unless {@link S3MediaStoreOptions.credentials} gives them. Never put credentials in session
31
+ * settings or Flow input.
32
+ *
33
+ * Session deletion does not delete objects. A runner reads a session's images again whenever a model call replays
34
+ * them, so keep every object at least as long as any session that references it can still run a turn or replay its
35
+ * history. A lifecycle rule that expires objects sooner makes those turns fail with `MediaStoreError`. Call
36
+ * {@link close} when the store is no longer needed, so its connections do not keep the process alive.
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { S3MediaStore } from "@superdurable/dex-agents/s3";
41
+ *
42
+ * const store = S3MediaStore.fromStoreUri("s3://agent-media/sessions");
43
+ * const reference = await store.putImage(screenshotPng);
44
+ * // reference.uri === "s3://agent-media/sessions/sha256/9f2c..."
45
+ * store.close();
46
+ *
47
+ * // A local development bucket with fixed loopback credentials.
48
+ * const local = new S3MediaStore({
49
+ * bucket: "agent-media",
50
+ * endpoint: "http://127.0.0.1:9000",
51
+ * region: "us-east-1",
52
+ * forcePathStyle: true,
53
+ * credentials: { accessKeyId: "s3local", secretAccessKey: "s3local" },
54
+ * });
55
+ * ```
56
+ * @since 0.5.0
57
+ */
58
+ export class S3MediaStore {
59
+ /** The location that every reference of this store starts with: `"s3://<bucket>/<prefix>"`, or without a prefix `"s3://<bucket>"`. */
60
+ storeUri;
61
+ bucket;
62
+ prefix;
63
+ client;
64
+ supportsConditionalWrites = true;
65
+ /**
66
+ * Creates a store; it makes no request until the first upload or read.
67
+ *
68
+ * @param options - The bucket, prefix, and connection settings.
69
+ * @throws {TypeError} When `options.bucket` is empty or contains `/`.
70
+ * @throws {RangeError} When the bucket and prefix make image URIs longer than `maxImageUriLength`.
71
+ */
72
+ constructor(options) {
73
+ if (options.bucket === "" || options.bucket.includes("/")) {
74
+ throw new TypeError("S3MediaStore bucket must be non-empty and contain no /");
75
+ }
76
+ this.bucket = options.bucket;
77
+ this.prefix = (options.prefix ?? "").replace(/^\/+|\/+$/g, "");
78
+ this.storeUri = this.prefix === "" ? `s3://${this.bucket}` : `s3://${this.bucket}/${this.prefix}`;
79
+ requireShortImageUris(this.storeUri);
80
+ this.client = new S3Client({
81
+ ...(options.endpoint === undefined ? {} : { endpoint: options.endpoint }),
82
+ ...(options.region === undefined ? {} : { region: options.region }),
83
+ ...(options.credentials === undefined ? {} : { credentials: { ...options.credentials } }),
84
+ forcePathStyle: options.forcePathStyle ?? false,
85
+ });
86
+ }
87
+ /**
88
+ * Creates a store from `s3://<bucket>` or `s3://<bucket>/<prefix>`.
89
+ *
90
+ * @param storeUri - The bucket and optional prefix as an S3 URI.
91
+ * @param options - The connection settings and credentials.
92
+ * @returns The store.
93
+ * @throws {TypeError} When `storeUri` does not start with `s3://` or names no bucket.
94
+ * @throws {RangeError} When the bucket and prefix make image URIs longer than `maxImageUriLength`.
95
+ */
96
+ static fromStoreUri(storeUri, options = {}) {
97
+ if (!storeUri.startsWith("s3://")) {
98
+ throw new TypeError(`S3 media store URI must start with s3://, got ${JSON.stringify(storeUri)}`);
99
+ }
100
+ const location = storeUri.slice("s3://".length);
101
+ const slash = location.indexOf("/");
102
+ const bucket = slash === -1 ? location : location.slice(0, slash);
103
+ const prefix = slash === -1 ? "" : location.slice(slash + 1);
104
+ return new S3MediaStore({ ...options, bucket, prefix });
105
+ }
106
+ /**
107
+ * Returns the object key of the image with this SHA-256.
108
+ *
109
+ * @param sha256 - SHA-256 of the bytes as 64 lowercase hex digits.
110
+ * @returns `"<prefix>/sha256/<sha256>"`, or `"sha256/<sha256>"` without a prefix.
111
+ */
112
+ objectKey(sha256) {
113
+ return this.prefix === "" ? `sha256/${sha256}` : `${this.prefix}/sha256/${sha256}`;
114
+ }
115
+ /**
116
+ * Stores one image unless the bucket already has it, and returns its reference.
117
+ *
118
+ * @param data - PNG, JPEG, GIF, or WebP bytes, at most `maxImageBytes`.
119
+ * @returns The reference.
120
+ * @throws {ImageValidationError} When the bytes are not a valid image for `buildImageReference`. Nothing is uploaded.
121
+ * @throws {MediaStoreError} When every conditional upload conflicted and the object is still missing, or has another
122
+ * size. Retrying is safe.
123
+ * @throws {S3ServiceException} When S3 refuses the request, such as for missing credentials or permissions.
124
+ * Retrying is safe.
125
+ */
126
+ async putImage(data) {
127
+ const reference = buildImageReference(data, this.storeUri);
128
+ const input = {
129
+ Bucket: this.bucket,
130
+ Key: this.objectKey(reference.sha256),
131
+ Body: data,
132
+ ContentType: reference.mimeType,
133
+ };
134
+ if (this.supportsConditionalWrites) {
135
+ for (const retryDelayMs of [...conditionalWriteConflictRetryDelaysMs, undefined]) {
136
+ try {
137
+ await this.client.send(new PutObjectCommand({ ...input, IfNoneMatch: "*" }));
138
+ return reference;
139
+ }
140
+ catch (error) {
141
+ if (hasErrorCode(error, alreadyExistsErrorCodes)) {
142
+ return reference;
143
+ }
144
+ if (hasErrorCode(error, conditionalWriteUnsupportedErrorCodes)) {
145
+ this.supportsConditionalWrites = false;
146
+ break;
147
+ }
148
+ if (!hasErrorCode(error, conditionalWriteConflictErrorCodes)) {
149
+ throw error;
150
+ }
151
+ }
152
+ if (retryDelayMs === undefined) {
153
+ // Every attempt conflicted: return only a reference whose object exists.
154
+ if ((await this.storedSize(input.Key)) !== reference.sizeBytes) {
155
+ throw new MediaStoreError(`image ${reference.uri} was not stored: every upload conflicted with another write`);
156
+ }
157
+ return reference;
158
+ }
159
+ await delay(retryDelayMs);
160
+ }
161
+ }
162
+ if ((await this.storedSize(input.Key)) === undefined) {
163
+ await this.client.send(new PutObjectCommand(input));
164
+ }
165
+ return reference;
166
+ }
167
+ /**
168
+ * Returns the bytes of one image in this store.
169
+ *
170
+ * @param reference - A reference under this store's bucket and prefix.
171
+ * @returns The exact bytes, checked with `verifyImageBytes`.
172
+ * @throws {ImageValidationError} When the reference's fields are invalid.
173
+ * @throws {MediaStoreError} When the reference is outside this store's bucket and prefix, the object is missing, or
174
+ * its bytes do not match.
175
+ * @throws {S3ServiceException} When S3 refuses the request for another reason.
176
+ */
177
+ async getImage(reference) {
178
+ requireStoreImageReference(reference, this.storeUri);
179
+ let response;
180
+ try {
181
+ response = await this.client.send(new GetObjectCommand({ Bucket: this.bucket, Key: this.objectKey(reference.sha256) }));
182
+ }
183
+ catch (error) {
184
+ if (hasErrorCode(error, notFoundErrorCodes)) {
185
+ throw new MediaStoreError(`image ${reference.uri} is not in the media store`, { cause: error });
186
+ }
187
+ throw error;
188
+ }
189
+ const mismatch = () => new MediaStoreError(`image ${reference.uri} does not match its sha256 and size`);
190
+ const body = response.Body;
191
+ if (body === undefined) {
192
+ throw new MediaStoreError(`image ${reference.uri} has no body in the media store`);
193
+ }
194
+ if (response.ContentLength !== undefined && response.ContentLength !== reference.sizeBytes) {
195
+ discardBody(body);
196
+ throw mismatch();
197
+ }
198
+ // One byte more than expected tells an oversized body apart without reading all of it.
199
+ const data = await readAtMost(body, reference.sizeBytes + 1);
200
+ if (data.length > reference.sizeBytes) {
201
+ throw mismatch();
202
+ }
203
+ return verifyImageBytes(reference, data);
204
+ }
205
+ /** Closes the store's S3 connections. Do not use the store afterwards. */
206
+ close() {
207
+ this.client.destroy();
208
+ }
209
+ /** Returns the size of the object at `key`, or `undefined` when there is none. */
210
+ async storedSize(key) {
211
+ try {
212
+ const response = await this.client.send(new HeadObjectCommand({ Bucket: this.bucket, Key: key }));
213
+ return response.ContentLength ?? -1;
214
+ }
215
+ catch (error) {
216
+ if (hasErrorCode(error, notFoundErrorCodes)) {
217
+ return undefined;
218
+ }
219
+ throw error;
220
+ }
221
+ }
222
+ }
223
+ /** Reads a response body up to `limit` bytes, then stops and discards the rest. */
224
+ async function readAtMost(body, limit) {
225
+ if (isAsyncIterable(body)) {
226
+ const chunks = [];
227
+ let total = 0;
228
+ // Leaving the loop early destroys a Node stream, so the rest is never downloaded.
229
+ for await (const chunk of body) {
230
+ const bytes = typeof chunk === "string" ? Buffer.from(chunk) : chunk;
231
+ chunks.push(bytes.subarray(0, Math.max(0, limit - total)));
232
+ total += bytes.length;
233
+ if (total >= limit) {
234
+ break;
235
+ }
236
+ }
237
+ return new Uint8Array(Buffer.concat(chunks));
238
+ }
239
+ const bytes = await body.transformToByteArray();
240
+ return bytes.subarray(0, limit);
241
+ }
242
+ function isAsyncIterable(value) {
243
+ return typeof value === "object" && value !== null && Symbol.asyncIterator in value;
244
+ }
245
+ function discardBody(body) {
246
+ const destroyable = body;
247
+ if (typeof destroyable.destroy === "function") {
248
+ destroyable.destroy();
249
+ }
250
+ }
251
+ function hasErrorCode(error, codes) {
252
+ return (error instanceof S3ServiceException &&
253
+ (codes.has(error.name) || codes.has(String(error.$metadata.httpStatusCode ?? ""))));
254
+ }
255
+ //# sourceMappingURL=s3-media-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3-media-store.js","sourceRoot":"","sources":["../../../src/s3/s3-media-store.ts"],"names":[],"mappings":"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"}