@allma/core-sdk 1.0.5 → 1.0.7

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/dist/s3Utils.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import type { S3OutputPointerWrapper, S3Pointer } from '@allma/core-types';
2
2
  /**
3
3
  * Fetches the actual data from an S3 pointer.
4
- * Tries to parse the content as JSON. If parsing fails (e.g. for plain text files),
5
- * returns the raw string content.
4
+ * It inspects the S3 object's Content-Type to determine how to process the data.
5
+ * - For text-based content (text/*, application/json), it returns a string or a parsed JSON object.
6
+ * - For binary content, it returns a Base64 encoded string.
6
7
  */
7
8
  export declare function resolveS3Pointer(s3Pointer: S3Pointer, correlationId?: string): Promise<any>;
8
9
  /**
@@ -17,4 +18,16 @@ export declare function resolveS3Pointer(s3Pointer: S3Pointer, correlationId?: s
17
18
  * @returns The original payload if it's small, or an S3OutputPointerWrapper if it was offloaded.
18
19
  */
19
20
  export declare function offloadIfLarge(payload: Record<string, any> | undefined, bucketName: string, keyPrefix: string, correlationId: string, thresholdBytes?: number): Promise<Record<string, any> | S3OutputPointerWrapper | undefined>;
21
+ /**
22
+ * Recursively traverses a data structure (object or array) and offloads any field
23
+ * whose value exceeds a size threshold to S3, replacing it with an S3 pointer.
24
+ *
25
+ * @param data The data structure to process.
26
+ * @param bucketName The S3 bucket to upload large fields to.
27
+ * @param keyPrefix A prefix for generating S3 keys (e.g., 'log_artifacts/exec-id/step-id').
28
+ * @param correlationId For logging.
29
+ * @param thresholdBytes The size in bytes above which a field's value is offloaded.
30
+ * @returns A new data structure with large fields replaced by S3 pointers.
31
+ */
32
+ export declare function recursivelyOffloadLargeFields(data: any, bucketName: string, keyPrefix: string, correlationId: string, thresholdBytes: number): Promise<any>;
20
33
  //# sourceMappingURL=s3Utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3Utils.d.ts","sourceRoot":"","sources":["../src/s3Utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAY3E;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAwBjG;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACxC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAwC,GACzD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,sBAAsB,GAAG,SAAS,CAAC,CAgCnE"}
1
+ {"version":3,"file":"s3Utils.d.ts","sourceRoot":"","sources":["../src/s3Utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAa3E;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAoCjG;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,EACxC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,GAAE,MAAwC,GACzD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,sBAAsB,GAAG,SAAS,CAAC,CAgCnE;AAGD;;;;;;;;;;GAUG;AACH,wBAAsB,6BAA6B,CAC/C,IAAI,EAAE,GAAG,EACT,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,GACvB,OAAO,CAAC,GAAG,CAAC,CAqFd"}
package/dist/s3Utils.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { S3Client, GetObjectCommand, PutObjectCommand } from '@aws-sdk/client-s3';
2
- import { ENV_VAR_NAMES } from '@allma/core-types';
2
+ import { ENV_VAR_NAMES, isS3OutputPointerWrapper } from '@allma/core-types';
3
3
  import { log_info, log_error, log_warn, log_debug } from "./logger.js";
4
+ import { isObject } from './objectUtils.js';
4
5
  const s3Client = new S3Client({});
5
6
  const MAX_CONTEXT_DATA_SIZE_BYTES_DEFAULT = 10 * 1024; // 10KB default
6
7
  const PAYLOAD_OFFLOAD_THRESHOLD_BYTES = process.env[ENV_VAR_NAMES.MAX_CONTEXT_DATA_SIZE_BYTES]
@@ -8,8 +9,9 @@ const PAYLOAD_OFFLOAD_THRESHOLD_BYTES = process.env[ENV_VAR_NAMES.MAX_CONTEXT_DA
8
9
  : MAX_CONTEXT_DATA_SIZE_BYTES_DEFAULT;
9
10
  /**
10
11
  * Fetches the actual data from an S3 pointer.
11
- * Tries to parse the content as JSON. If parsing fails (e.g. for plain text files),
12
- * returns the raw string content.
12
+ * It inspects the S3 object's Content-Type to determine how to process the data.
13
+ * - For text-based content (text/*, application/json), it returns a string or a parsed JSON object.
14
+ * - For binary content, it returns a Base64 encoded string.
13
15
  */
14
16
  export async function resolveS3Pointer(s3Pointer, correlationId) {
15
17
  log_info('Resolving S3 data pointer', { s3Pointer }, correlationId);
@@ -18,17 +20,28 @@ export async function resolveS3Pointer(s3Pointer, correlationId) {
18
20
  Bucket: s3Pointer.bucket,
19
21
  Key: s3Pointer.key,
20
22
  });
21
- const { Body } = await s3Client.send(command);
23
+ const { Body, ContentType } = await s3Client.send(command);
22
24
  if (Body) {
23
- const content = await Body.transformToString();
24
- try {
25
- return JSON.parse(content);
25
+ const contentType = ContentType || 'application/octet-stream';
26
+ const isTextContent = contentType.startsWith('text/') || contentType.includes('json') || contentType.includes('xml');
27
+ if (isTextContent) {
28
+ const content = await Body.transformToString();
29
+ try {
30
+ // This handles cases where the S3 object is a JSON document
31
+ // (e.g., a large context object, or an offloaded JSON API response)
32
+ return JSON.parse(content);
33
+ }
34
+ catch (jsonError) {
35
+ // This handles plain text files
36
+ log_debug('S3 content is text-based but not JSON, returning as raw string.', { key: s3Pointer.key, contentType }, correlationId);
37
+ return content;
38
+ }
26
39
  }
27
- catch (jsonError) {
28
- // If the content is not valid JSON, return it as a raw string.
29
- // This supports hydration of text files (e.g. from FILE_DOWNLOAD step).
30
- log_debug('S3 content is not JSON, returning as raw string.', { key: s3Pointer.key }, correlationId);
31
- return content;
40
+ else {
41
+ // This handles binary files (images, PDFs, Excel files, etc.)
42
+ log_debug('S3 content is binary, returning as base64 encoded string.', { key: s3Pointer.key, contentType }, correlationId);
43
+ const byteArray = await Body.transformToByteArray();
44
+ return Buffer.from(byteArray).toString('base64');
32
45
  }
33
46
  }
34
47
  throw new Error('S3 object body for data pointer is empty.');
@@ -76,4 +89,84 @@ export async function offloadIfLarge(payload, bucketName, keyPrefix, correlation
76
89
  throw new Error(`Failed during S3 offload attempt: ${e.message}`);
77
90
  }
78
91
  }
92
+ /**
93
+ * Recursively traverses a data structure (object or array) and offloads any field
94
+ * whose value exceeds a size threshold to S3, replacing it with an S3 pointer.
95
+ *
96
+ * @param data The data structure to process.
97
+ * @param bucketName The S3 bucket to upload large fields to.
98
+ * @param keyPrefix A prefix for generating S3 keys (e.g., 'log_artifacts/exec-id/step-id').
99
+ * @param correlationId For logging.
100
+ * @param thresholdBytes The size in bytes above which a field's value is offloaded.
101
+ * @returns A new data structure with large fields replaced by S3 pointers.
102
+ */
103
+ export async function recursivelyOffloadLargeFields(data, bucketName, keyPrefix, correlationId, thresholdBytes) {
104
+ if (Array.isArray(data)) {
105
+ // Process each item in the array recursively.
106
+ return Promise.all(data.map((item, index) => recursivelyOffloadLargeFields(item, bucketName, `${keyPrefix}/${index}`, correlationId, thresholdBytes)));
107
+ }
108
+ if (isObject(data)) {
109
+ // Do not process S3 pointers themselves.
110
+ if (isS3OutputPointerWrapper(data)) {
111
+ return data;
112
+ }
113
+ const newObject = {};
114
+ for (const key in data) {
115
+ if (Object.prototype.hasOwnProperty.call(data, key)) {
116
+ const value = data[key];
117
+ try {
118
+ // Gracefully skip properties with an 'undefined' value.
119
+ // These properties are omitted in JSON.stringify and cause Buffer.byteLength to fail.
120
+ if (value === undefined) {
121
+ continue;
122
+ }
123
+ // First, check the size of the value.
124
+ const valueString = (typeof value === 'string') ? value : JSON.stringify(value);
125
+ const valueSize = Buffer.byteLength(valueString, 'utf-8');
126
+ if (valueSize > thresholdBytes) {
127
+ // Value is large, offload it.
128
+ log_warn(`Field '${key}' in '${keyPrefix}' is large (${valueSize} bytes), offloading to S3.`, {}, correlationId);
129
+ const isString = typeof value === 'string';
130
+ const s3Key = `${keyPrefix}/${key}_${new Date().toISOString()}.${isString ? 'txt' : 'json'}`;
131
+ await s3Client.send(new PutObjectCommand({
132
+ Bucket: bucketName,
133
+ Key: s3Key,
134
+ Body: valueString,
135
+ ContentType: isString ? 'text/plain' : 'application/json',
136
+ }));
137
+ const s3Pointer = { bucket: bucketName, key: s3Key };
138
+ newObject[key] = { _s3_output_pointer: s3Pointer };
139
+ }
140
+ else {
141
+ // Value is small enough, recurse into it in case it contains large nested fields.
142
+ newObject[key] = await recursivelyOffloadLargeFields(value, bucketName, `${keyPrefix}/${key}`, // a more descriptive path for nested objects
143
+ correlationId, thresholdBytes);
144
+ }
145
+ }
146
+ catch (e) {
147
+ log_error(`Error processing field '${key}' during recursive offload. Replacing with error message.`, { error: e.message }, correlationId);
148
+ newObject[key] = { _offload_error: `Failed to process or serialize field: ${e.message}` };
149
+ }
150
+ }
151
+ }
152
+ return newObject;
153
+ }
154
+ // It's a primitive (string, number, boolean, null)
155
+ if (typeof data === 'string') {
156
+ const valueSize = Buffer.byteLength(data, 'utf-8');
157
+ if (valueSize > thresholdBytes) {
158
+ log_warn(`String value at path '${keyPrefix}' is large (${valueSize} bytes), offloading to S3.`, {}, correlationId);
159
+ const s3Key = `${keyPrefix}_${new Date().toISOString()}.txt`;
160
+ await s3Client.send(new PutObjectCommand({
161
+ Bucket: bucketName,
162
+ Key: s3Key,
163
+ Body: data,
164
+ ContentType: 'text/plain',
165
+ }));
166
+ const s3Pointer = { bucket: bucketName, key: s3Key };
167
+ return { _s3_output_pointer: s3Pointer };
168
+ }
169
+ }
170
+ return data; // Return other primitives as-is
171
+ }
79
172
  //# sourceMappingURL=s3Utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"s3Utils.js","sourceRoot":"","sources":["../src/s3Utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"s3Utils.js","sourceRoot":"","sources":["../src/s3Utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allma/core-sdk",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "Core SDK with shared utilities (logging, auth, S3 utils) for building on the Allma serverless AI orchestration platform.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -34,7 +34,7 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@allma/core-types": "^1.0.9",
37
+ "@allma/core-types": "^1.0.17",
38
38
  "@aws-sdk/client-s3": "^3.500.0",
39
39
  "@aws-sdk/client-secrets-manager": "^3.500.0",
40
40
  "@aws-sdk/client-sns": "^3.500.0",