@vertesia/workflow 0.78.0 → 0.79.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/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js +7 -5
- package/lib/cjs/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -1
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +6 -11
- package/lib/cjs/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -1
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js +3 -1
- package/lib/cjs/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -1
- package/lib/cjs/activities/chunkDocument.js +3 -1
- package/lib/cjs/activities/chunkDocument.js.map +1 -1
- package/lib/cjs/activities/executeInteraction.js +10 -7
- package/lib/cjs/activities/executeInteraction.js.map +1 -1
- package/lib/cjs/activities/generateDocumentProperties.js +12 -6
- package/lib/cjs/activities/generateDocumentProperties.js.map +1 -1
- package/lib/cjs/activities/generateOrAssignContentType.js +13 -10
- package/lib/cjs/activities/generateOrAssignContentType.js.map +1 -1
- package/lib/cjs/activities/index-dsl.js +3 -3
- package/lib/cjs/activities/index-dsl.js.map +1 -1
- package/lib/cjs/activities/notifyWebhook.js +136 -12
- package/lib/cjs/activities/notifyWebhook.js.map +1 -1
- package/lib/cjs/activities/rateLimiter.js +30 -0
- package/lib/cjs/activities/rateLimiter.js.map +1 -0
- package/lib/cjs/conversion/image.js +4 -2
- package/lib/cjs/conversion/image.js.map +1 -1
- package/lib/cjs/dsl/dsl-workflow.js +61 -0
- package/lib/cjs/dsl/dsl-workflow.js.map +1 -1
- package/lib/cjs/errors.js +9 -1
- package/lib/cjs/errors.js.map +1 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/iterative-generation/activities/generatePart.js +2 -1
- package/lib/cjs/iterative-generation/activities/generatePart.js.map +1 -1
- package/lib/cjs/iterative-generation/activities/generateToc.js +6 -1
- package/lib/cjs/iterative-generation/activities/generateToc.js.map +1 -1
- package/lib/cjs/iterative-generation/utils.js.map +1 -1
- package/lib/cjs/system/notifyWebhookWorkflow.js +10 -3
- package/lib/cjs/system/notifyWebhookWorkflow.js.map +1 -1
- package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js +7 -5
- package/lib/esm/activities/advanced/createDocumentTypeFromInteractionRun.js.map +1 -1
- package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js +6 -11
- package/lib/esm/activities/advanced/createOrUpdateDocumentFromInteractionRun.js.map +1 -1
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js +3 -1
- package/lib/esm/activities/advanced/updateDocumentFromInteractionRun.js.map +1 -1
- package/lib/esm/activities/chunkDocument.js +3 -1
- package/lib/esm/activities/chunkDocument.js.map +1 -1
- package/lib/esm/activities/executeInteraction.js +11 -8
- package/lib/esm/activities/executeInteraction.js.map +1 -1
- package/lib/esm/activities/generateDocumentProperties.js +12 -6
- package/lib/esm/activities/generateDocumentProperties.js.map +1 -1
- package/lib/esm/activities/generateOrAssignContentType.js +13 -10
- package/lib/esm/activities/generateOrAssignContentType.js.map +1 -1
- package/lib/esm/activities/index-dsl.js +1 -1
- package/lib/esm/activities/index-dsl.js.map +1 -1
- package/lib/esm/activities/notifyWebhook.js +136 -12
- package/lib/esm/activities/notifyWebhook.js.map +1 -1
- package/lib/esm/activities/rateLimiter.js +27 -0
- package/lib/esm/activities/rateLimiter.js.map +1 -0
- package/lib/esm/conversion/image.js +4 -2
- package/lib/esm/conversion/image.js.map +1 -1
- package/lib/esm/dsl/dsl-workflow.js +63 -2
- package/lib/esm/dsl/dsl-workflow.js.map +1 -1
- package/lib/esm/errors.js +7 -0
- package/lib/esm/errors.js.map +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/iterative-generation/activities/generatePart.js +2 -1
- package/lib/esm/iterative-generation/activities/generatePart.js.map +1 -1
- package/lib/esm/iterative-generation/activities/generateToc.js +6 -1
- package/lib/esm/iterative-generation/activities/generateToc.js.map +1 -1
- package/lib/esm/iterative-generation/utils.js.map +1 -1
- package/lib/esm/system/notifyWebhookWorkflow.js +11 -4
- package/lib/esm/system/notifyWebhookWorkflow.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -0
- package/lib/types/activities/advanced/createDocumentTypeFromInteractionRun.d.ts.map +1 -1
- package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts +1 -1
- package/lib/types/activities/advanced/createOrUpdateDocumentFromInteractionRun.d.ts.map +1 -1
- package/lib/types/activities/advanced/updateDocumentFromInteractionRun.d.ts.map +1 -1
- package/lib/types/activities/chunkDocument.d.ts.map +1 -1
- package/lib/types/activities/executeInteraction.d.ts +5 -1
- package/lib/types/activities/executeInteraction.d.ts.map +1 -1
- package/lib/types/activities/generateDocumentProperties.d.ts.map +1 -1
- package/lib/types/activities/generateOrAssignContentType.d.ts.map +1 -1
- package/lib/types/activities/index-dsl.d.ts +1 -1
- package/lib/types/activities/index-dsl.d.ts.map +1 -1
- package/lib/types/activities/notifyWebhook.d.ts +14 -3
- package/lib/types/activities/notifyWebhook.d.ts.map +1 -1
- package/lib/types/activities/rateLimiter.d.ts +11 -0
- package/lib/types/activities/rateLimiter.d.ts.map +1 -0
- package/lib/types/conversion/image.d.ts.map +1 -1
- package/lib/types/dsl/dsl-workflow.d.ts.map +1 -1
- package/lib/types/errors.d.ts +4 -0
- package/lib/types/errors.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/iterative-generation/activities/generatePart.d.ts.map +1 -1
- package/lib/types/iterative-generation/activities/generateToc.d.ts.map +1 -1
- package/lib/types/iterative-generation/utils.d.ts +2 -2
- package/lib/types/iterative-generation/utils.d.ts.map +1 -1
- package/lib/types/system/notifyWebhookWorkflow.d.ts +3 -2
- package/lib/types/system/notifyWebhookWorkflow.d.ts.map +1 -1
- package/lib/workflows-bundle.js +280 -44
- package/package.json +13 -5
- package/src/activities/advanced/createDocumentTypeFromInteractionRun.ts +8 -5
- package/src/activities/advanced/createOrUpdateDocumentFromInteractionRun.ts +6 -10
- package/src/activities/advanced/updateDocumentFromInteractionRun.ts +4 -1
- package/src/activities/chunkDocument.ts +4 -1
- package/src/activities/executeInteraction.ts +16 -9
- package/src/activities/generateDocumentProperties.ts +13 -7
- package/src/activities/generateOrAssignContentType.ts +17 -11
- package/src/activities/index-dsl.ts +1 -1
- package/src/activities/notifyWebhook.test.ts +121 -19
- package/src/activities/notifyWebhook.ts +164 -16
- package/src/activities/rateLimiter.ts +41 -0
- package/src/conversion/image.ts +6 -3
- package/src/dsl/dsl-workflow.ts +80 -0
- package/src/dsl/workflow-exec-child.test.ts +1 -0
- package/src/dsl/workflow.test.ts +1 -0
- package/src/errors.ts +13 -0
- package/src/index.ts +1 -1
- package/src/iterative-generation/activities/generatePart.ts +2 -1
- package/src/iterative-generation/activities/generateToc.ts +8 -2
- package/src/iterative-generation/utils.ts +2 -2
- package/src/system/notifyWebhookWorkflow.ts +15 -6
- package/lib/cjs/activities/identifyTextSections.js +0 -48
- package/lib/cjs/activities/identifyTextSections.js.map +0 -1
- package/lib/esm/activities/identifyTextSections.js +0 -45
- package/lib/esm/activities/identifyTextSections.js.map +0 -1
- package/lib/types/activities/identifyTextSections.d.ts +0 -12
- package/lib/types/activities/identifyTextSections.d.ts.map +0 -1
- package/src/activities/identifyTextSections.ts +0 -71
|
@@ -4,7 +4,7 @@ import { NodeStreamSource } from "@vertesia/client/node";
|
|
|
4
4
|
import { ExecutionRunStatus, } from "@vertesia/common";
|
|
5
5
|
import { projectResult } from "../dsl/projections.js";
|
|
6
6
|
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
7
|
-
import { ActivityParamInvalidError, ActivityParamNotFoundError } from "../errors.js";
|
|
7
|
+
import { ActivityParamInvalidError, ActivityParamNotFoundError, ResourceExhaustedError } from "../errors.js";
|
|
8
8
|
import { truncByMaxTokens } from "../utils/tokens.js";
|
|
9
9
|
import { Readable } from "stream";
|
|
10
10
|
//Example:
|
|
@@ -73,10 +73,10 @@ export async function executeInteraction(payload) {
|
|
|
73
73
|
const res = await executeInteractionFromActivity(client, interactionName, params, prompt_data, payload.debug_mode);
|
|
74
74
|
// Handle image uploads if the result contains base64 images
|
|
75
75
|
if (res.output_modality === Modalities.image) {
|
|
76
|
-
const images = res.result.
|
|
76
|
+
const images = res.result.filter((r) => r.type === 'image');
|
|
77
77
|
const uploadedImages = await Promise.all(images.map((image, index) => {
|
|
78
78
|
// Extract base64 data and create buffer
|
|
79
|
-
const base64Data = image.replace(/^data:image\/[a-z]+;base64,/, "");
|
|
79
|
+
const base64Data = image.value.replace(/^data:image\/[a-z]+;base64,/, "");
|
|
80
80
|
const buffer = Buffer.from(base64Data, 'base64');
|
|
81
81
|
// Generate filename
|
|
82
82
|
const { runId } = activityInfo().workflowExecution;
|
|
@@ -87,7 +87,7 @@ export async function executeInteraction(payload) {
|
|
|
87
87
|
const source = new NodeStreamSource(stream, filename, "image/png");
|
|
88
88
|
return client.files.uploadFile(source);
|
|
89
89
|
}));
|
|
90
|
-
res.result
|
|
90
|
+
res.result = uploadedImages.map(file => ({ type: "image", value: file }));
|
|
91
91
|
}
|
|
92
92
|
return projectResult(payload, params, res, {
|
|
93
93
|
runId: res.id,
|
|
@@ -96,8 +96,11 @@ export async function executeInteraction(payload) {
|
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
catch (error) {
|
|
99
|
-
log.error(
|
|
100
|
-
if (error.
|
|
99
|
+
log.error(`Failed to execute interaction ${interactionName}`, { error });
|
|
100
|
+
if (error.statusCode === 429 && params.exit_on_resource_exhaustion) {
|
|
101
|
+
throw new ResourceExhaustedError(error.statusCode, "Resource exhausted - rate limit exceeded");
|
|
102
|
+
}
|
|
103
|
+
else if (error.message.includes("Failed to validate merged prompt schema")) {
|
|
101
104
|
//issue with the input data, don't retry
|
|
102
105
|
throw new ActivityParamInvalidError("prompt_data", payload.activity, error.message);
|
|
103
106
|
}
|
|
@@ -106,7 +109,7 @@ export async function executeInteraction(payload) {
|
|
|
106
109
|
throw new ActivityParamInvalidError("model", payload.activity, error.message);
|
|
107
110
|
}
|
|
108
111
|
else {
|
|
109
|
-
throw error;
|
|
112
|
+
throw new Error(`Interaction Execution failed ${interactionName}: ${error.message}`);
|
|
110
113
|
}
|
|
111
114
|
}
|
|
112
115
|
}
|
|
@@ -168,7 +171,7 @@ export async function executeInteractionFromActivity(client, interactionName, pa
|
|
|
168
171
|
})
|
|
169
172
|
.catch((err) => {
|
|
170
173
|
log.error(`Error executing interaction ${interactionName}`, { err });
|
|
171
|
-
throw
|
|
174
|
+
throw err;
|
|
172
175
|
});
|
|
173
176
|
if (debug) {
|
|
174
177
|
log.info(`Interaction executed ${interactionName}`, res);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeInteraction.js","sourceRoot":"","sources":["../../../src/activities/executeInteraction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAgB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAIH,kBAAkB,GAIrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"executeInteraction.js","sourceRoot":"","sources":["../../../src/activities/executeInteraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { log } from "@temporalio/activity";
|
|
2
2
|
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
3
|
+
import { truncByMaxTokens } from "../utils/tokens.js";
|
|
3
4
|
import { executeInteractionFromActivity } from "./executeInteraction.js";
|
|
5
|
+
import { parseCompletionResultsToJson } from "@llumiverse/common";
|
|
4
6
|
const INT_EXTRACT_INFORMATION = "sys:ExtractInformation";
|
|
5
7
|
export async function generateDocumentProperties(payload) {
|
|
6
8
|
const context = await setupActivity(payload);
|
|
@@ -27,8 +29,11 @@ export async function generateDocumentProperties(payload) {
|
|
|
27
29
|
log.info(`Object ${objectId} is not an image or pdf`);
|
|
28
30
|
return undefined;
|
|
29
31
|
};
|
|
32
|
+
const content = doc.text
|
|
33
|
+
? truncByMaxTokens(doc.text, params.truncate || 30000)
|
|
34
|
+
: undefined;
|
|
30
35
|
const promptData = {
|
|
31
|
-
content:
|
|
36
|
+
content: content,
|
|
32
37
|
image: getImageRef() ?? undefined,
|
|
33
38
|
human_context: project?.configuration?.human_context ?? undefined,
|
|
34
39
|
};
|
|
@@ -44,11 +49,12 @@ export async function generateDocumentProperties(payload) {
|
|
|
44
49
|
return undefined;
|
|
45
50
|
}
|
|
46
51
|
let text = "";
|
|
47
|
-
|
|
48
|
-
|
|
52
|
+
const jsonResult = parseCompletionResultsToJson(infoRes.result);
|
|
53
|
+
if (jsonResult.title) {
|
|
54
|
+
text += jsonResult.title + "\n";
|
|
49
55
|
}
|
|
50
|
-
if (
|
|
51
|
-
text +=
|
|
56
|
+
if (jsonResult.description) {
|
|
57
|
+
text += jsonResult.description;
|
|
52
58
|
}
|
|
53
59
|
if (text) {
|
|
54
60
|
return text;
|
|
@@ -60,7 +66,7 @@ export async function generateDocumentProperties(payload) {
|
|
|
60
66
|
log.info(`Extracted information from object ${objectId} with type ${type.name}`, { runId: infoRes.id });
|
|
61
67
|
await client.objects.update(doc.id, {
|
|
62
68
|
properties: {
|
|
63
|
-
...infoRes.result,
|
|
69
|
+
...parseCompletionResultsToJson(infoRes.result),
|
|
64
70
|
etag: doc.text_etag,
|
|
65
71
|
},
|
|
66
72
|
text: getText(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateDocumentProperties.js","sourceRoot":"","sources":["../../../src/activities/generateDocumentProperties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAE3C,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"generateDocumentProperties.js","sourceRoot":"","sources":["../../../src/activities/generateDocumentProperties.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import { ImageRenditionFormat, } from "@vertesia/common";
|
|
|
3
3
|
import { setupActivity, } from "../dsl/setup/ActivityContext.js";
|
|
4
4
|
import { truncByMaxTokens } from "../utils/tokens.js";
|
|
5
5
|
import { executeInteractionFromActivity, } from "./executeInteraction.js";
|
|
6
|
+
import { parseCompletionResultsToJson } from "@llumiverse/common";
|
|
6
7
|
const INT_SELECT_DOCUMENT_TYPE = "sys:SelectDocumentType";
|
|
7
8
|
const INT_GENERATE_METADATA_MODEL = "sys:GenerateMetadataModel";
|
|
8
9
|
export async function generateOrAssignContentType(payload) {
|
|
@@ -68,10 +69,11 @@ export async function generateOrAssignContentType(payload) {
|
|
|
68
69
|
content,
|
|
69
70
|
image: fileRef,
|
|
70
71
|
});
|
|
71
|
-
|
|
72
|
+
const jsonResult = parseCompletionResultsToJson(res.result);
|
|
73
|
+
log.info("Selected Content Type Result: " + JSON.stringify(jsonResult));
|
|
72
74
|
//if type is not identified or not present in the database, generate a new type
|
|
73
75
|
let selectedType = undefined;
|
|
74
|
-
selectedType = types.find((t) => t.name ===
|
|
76
|
+
selectedType = types.find((t) => t.name === jsonResult.document_type);
|
|
75
77
|
if (!selectedType) {
|
|
76
78
|
log.warn("Document type not identified: starting type generation");
|
|
77
79
|
const newType = await generateNewType(context, existing_types, content, fileRef);
|
|
@@ -79,7 +81,7 @@ export async function generateOrAssignContentType(payload) {
|
|
|
79
81
|
}
|
|
80
82
|
if (!selectedType) {
|
|
81
83
|
log.error("Type not found: ", res.result);
|
|
82
|
-
throw new Error("Type not found: " +
|
|
84
|
+
throw new Error("Type not found: " + jsonResult.document_type);
|
|
83
85
|
}
|
|
84
86
|
//update object with selected type
|
|
85
87
|
await client.objects.update(objectId, {
|
|
@@ -102,17 +104,18 @@ async function generateNewType(context, existing_types, content, fileRef) {
|
|
|
102
104
|
human_context: project?.configuration?.human_context ?? undefined,
|
|
103
105
|
image: fileRef ? fileRef : undefined,
|
|
104
106
|
});
|
|
105
|
-
|
|
107
|
+
const jsonResult = parseCompletionResultsToJson(genTypeRes.result);
|
|
108
|
+
if (!jsonResult.document_type) {
|
|
106
109
|
log.error("No name generated for type", genTypeRes);
|
|
107
110
|
throw new Error("No name generated for type");
|
|
108
111
|
}
|
|
109
|
-
log.info("Generated schema for type",
|
|
112
|
+
log.info("Generated schema for type", jsonResult.metadata_schema);
|
|
110
113
|
const typeData = {
|
|
111
|
-
name:
|
|
112
|
-
description:
|
|
113
|
-
object_schema:
|
|
114
|
-
is_chunkable:
|
|
115
|
-
table_layout:
|
|
114
|
+
name: jsonResult.document_type,
|
|
115
|
+
description: jsonResult.document_type_description,
|
|
116
|
+
object_schema: jsonResult.metadata_schema,
|
|
117
|
+
is_chunkable: jsonResult.is_chunkable,
|
|
118
|
+
table_layout: jsonResult.table_layout,
|
|
116
119
|
};
|
|
117
120
|
const type = await client.types.create(typeData);
|
|
118
121
|
return type;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateOrAssignContentType.js","sourceRoot":"","sources":["../../../src/activities/generateOrAssignContentType.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAKL,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAgB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAEL,8BAA8B,GAC/B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"generateOrAssignContentType.js","sourceRoot":"","sources":["../../../src/activities/generateOrAssignContentType.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,5 +17,5 @@ export { convertPdfToStructuredText } from "./media/processPdfWithTextract.js";
|
|
|
17
17
|
export { transcribeMedia } from "./media/transcribeMediaWithGladia.js";
|
|
18
18
|
export { notifyWebhook } from "./notifyWebhook.js";
|
|
19
19
|
export { setDocumentStatus } from "./setDocumentStatus.js";
|
|
20
|
-
export {
|
|
20
|
+
export { checkRateLimit } from "./rateLimiter.js";
|
|
21
21
|
//# sourceMappingURL=index-dsl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-dsl.js","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,oCAAoC,EAAE,MAAM,oDAAoD,CAAC;AAC1G,OAAO,EAAE,wCAAwC,EAAE,MAAM,wDAAwD,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index-dsl.js","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,oCAAoC,EAAE,MAAM,oDAAoD,CAAC;AAC1G,OAAO,EAAE,wCAAwC,EAAE,MAAM,wDAAwD,CAAC;AAClH,OAAO,EAAE,gCAAgC,EAAE,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,30 +1,154 @@
|
|
|
1
1
|
import { log } from "@temporalio/activity";
|
|
2
|
+
import { VertesiaClient } from "@vertesia/client";
|
|
3
|
+
import { ApiVersions } from "@vertesia/common";
|
|
2
4
|
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
3
5
|
import { WorkflowParamNotFoundError } from "../errors.js";
|
|
6
|
+
import { getVertesiaClientOptions } from "../utils/client.js";
|
|
4
7
|
export async function notifyWebhook(payload) {
|
|
5
8
|
const { params } = await setupActivity(payload);
|
|
6
|
-
const {
|
|
9
|
+
const { webhook, method, headers: defaultHeaders } = params;
|
|
10
|
+
// resolve the url and the api version of the webhook
|
|
11
|
+
let target_url, version;
|
|
12
|
+
if (typeof webhook === 'string') {
|
|
13
|
+
target_url = webhook;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
target_url = webhook.url;
|
|
17
|
+
version = webhook.version;
|
|
18
|
+
}
|
|
7
19
|
if (!target_url)
|
|
8
20
|
throw new WorkflowParamNotFoundError('target_url');
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
21
|
+
const hasBody = params.detail && method === 'POST'; //body is sent only for POST
|
|
22
|
+
const headers = {
|
|
23
|
+
...defaultHeaders,
|
|
24
|
+
};
|
|
25
|
+
if (hasBody) {
|
|
26
|
+
headers['Content-Type'] = 'application/json';
|
|
27
|
+
}
|
|
28
|
+
const body = hasBody ? await createRequestBody(payload, params, version) : undefined;
|
|
12
29
|
log.info(`Notifying webhook at ${target_url}`);
|
|
13
30
|
const res = await fetch(target_url, {
|
|
14
31
|
method,
|
|
15
32
|
body,
|
|
16
|
-
headers
|
|
17
|
-
'Content-Type': 'application/json',
|
|
18
|
-
...headers
|
|
19
|
-
},
|
|
33
|
+
headers,
|
|
20
34
|
}).catch(err => {
|
|
21
|
-
log.
|
|
22
|
-
throw
|
|
35
|
+
log.error(`An error occurred while notifying webhook at ${target_url}`, { err });
|
|
36
|
+
throw err;
|
|
23
37
|
});
|
|
24
38
|
if (!res.ok) {
|
|
25
|
-
log.warn(`
|
|
26
|
-
|
|
39
|
+
log.warn(`Webhook endpoint ${target_url} returned an error - ${res.status} ${res.statusText}`, { fetchResponse: res });
|
|
40
|
+
// Try to get response payload for error message
|
|
41
|
+
let errorMessage = `Webhook Notification to ${target_url} failed with status: ${res.status} ${res.statusText}`;
|
|
42
|
+
try {
|
|
43
|
+
const responseText = await res.text();
|
|
44
|
+
if (responseText) {
|
|
45
|
+
errorMessage += ` - Response: ${responseText}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (readError) {
|
|
49
|
+
// If we can't read the response, just use the basic error message
|
|
50
|
+
log.debug('Could not read response body for error', { readError });
|
|
51
|
+
}
|
|
52
|
+
throw new Error(errorMessage);
|
|
27
53
|
}
|
|
28
54
|
return { status: res.status, message: res.statusText, url: res.url };
|
|
29
55
|
}
|
|
56
|
+
// --------------------------------------
|
|
57
|
+
// Data provider for webhooks
|
|
58
|
+
// this allows to customize the payload sent to the webhook depending on the
|
|
59
|
+
// type of workflow and the api version of the webhook
|
|
60
|
+
// --------------------------------------
|
|
61
|
+
function getWorkflowName(workflowType) {
|
|
62
|
+
// remove trailing Workflow or _Workflow case insensitive from the workflow type
|
|
63
|
+
return workflowType.replace(/_?workflow$/i, '');
|
|
64
|
+
}
|
|
65
|
+
async function createRequestBody(payload, params, api_version) {
|
|
66
|
+
if (api_version === undefined || Number(api_version) < ApiVersions.COMPLETION_RESULT_V1) {
|
|
67
|
+
return createOldRequestBody(payload, params);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return createLatestRequestBody(payload, params, api_version);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function createLatestRequestBody(payload, params, api_version) {
|
|
74
|
+
const data = await createEventData(payload, params, api_version);
|
|
75
|
+
return JSON.stringify({
|
|
76
|
+
workflow_id: params.workflow_id,
|
|
77
|
+
workflow_name: getWorkflowName(params.workflow_type),
|
|
78
|
+
workflow_run_id: params.workflow_run_id,
|
|
79
|
+
event_name: params.event_name,
|
|
80
|
+
detail: data,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
async function createEventData(payload, params, api_version) {
|
|
84
|
+
const data = params.detail;
|
|
85
|
+
if (data && data.run_id && params.event_name === "workflow_completed" && params.workflow_type === 'ExecuteInteractionWorkflow') {
|
|
86
|
+
const client = getVersionedVertesiaClient(payload, api_version); //ensure client is initialized
|
|
87
|
+
// we replace the result property with the full execution run object
|
|
88
|
+
return await client.runs.retrieve(data.run_id);
|
|
89
|
+
}
|
|
90
|
+
return data;
|
|
91
|
+
}
|
|
92
|
+
function getVersionedVertesiaClient(payload, version) {
|
|
93
|
+
// set the api version header
|
|
94
|
+
return new VertesiaClient(getVertesiaClientOptions(payload)).withApiVersion(version ? String(version) : null);
|
|
95
|
+
}
|
|
96
|
+
// ----------------- Compatibility code -----------------
|
|
97
|
+
/* Before 2025-10-08 the notifyWebhook POST body was in the format:
|
|
98
|
+
|
|
99
|
+
{
|
|
100
|
+
"workflowId": "generation:ExecuteInteractionWorkflow:WhatColor:ox8wu6t4",
|
|
101
|
+
"runId": "0199c2c6-818f-77eb-b931-c1ba8b9e5184",
|
|
102
|
+
"status": "completed",
|
|
103
|
+
"result": {
|
|
104
|
+
"run_id": "68e616274b0e9bb510462378",
|
|
105
|
+
"status": "completed",
|
|
106
|
+
"result": {"Color": "white"}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
After Versions.COMPLETION_RESULT_V1 (20250925) when the completion result interface changed we improved the
|
|
111
|
+
payload to the current format:
|
|
112
|
+
|
|
113
|
+
{
|
|
114
|
+
"workflow_id": "generation:ExecuteInteractionWorkflow:WhatColor:bdedqjqj6",
|
|
115
|
+
"workflow_name": "ExecuteInteraction",
|
|
116
|
+
"workflow_run_id": "0199c2d4-6b1d-7cf2-a1e5-4cac6778091e",
|
|
117
|
+
"event_name": "workflow_completed",
|
|
118
|
+
"detail": ExecutionRun
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
where ExecutionRun contains a result property with the new completion result format.
|
|
122
|
+
|
|
123
|
+
"result": [
|
|
124
|
+
{
|
|
125
|
+
"type": "json",
|
|
126
|
+
"value": {
|
|
127
|
+
"Color": "white"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
|
|
132
|
+
*/
|
|
133
|
+
//@ts-ignore
|
|
134
|
+
async function createOldRequestBody(payload, params) {
|
|
135
|
+
let data = params.detail;
|
|
136
|
+
if (data && data.run_id && params.event_name === "workflow_completed" && params.workflow_type === 'ExecuteInteractionWorkflow') {
|
|
137
|
+
const client = getVersionedVertesiaClient(payload, null); //ensure client is using no specific version
|
|
138
|
+
const run = await client.runs.retrieve(data.run_id);
|
|
139
|
+
// since we use an unversioned client the run will be in old format so we don't need to tranform the result
|
|
140
|
+
const result = run.result;
|
|
141
|
+
data = {
|
|
142
|
+
workflowId: params.workflow_id,
|
|
143
|
+
runId: params.workflow_run_id,
|
|
144
|
+
status: params.event_name === 'workflow_completed' ? 'completed' : params.event_name,
|
|
145
|
+
result: {
|
|
146
|
+
run_id: run.id,
|
|
147
|
+
status: run.status,
|
|
148
|
+
result: result || null
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
return JSON.stringify(data || {});
|
|
153
|
+
}
|
|
30
154
|
//# sourceMappingURL=notifyWebhook.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifyWebhook.js","sourceRoot":"","sources":["../../../src/activities/notifyWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"notifyWebhook.js","sourceRoot":"","sources":["../../../src/activities/notifyWebhook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAA0F,MAAM,kBAAkB,CAAC;AACvI,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AA2B9D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAyD;IAEzF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAsB,OAAO,CAAC,CAAC;IACrE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IAC3D,qDAAqD;IACrD,IAAI,UAAkB,EAAE,OAA2B,CAAC;IACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9B,UAAU,GAAG,OAAO,CAAC;IACzB,CAAC;SAAM,CAAC;QACJ,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;QACzB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,KAAK,MAAM,CAAC,CAAC,4BAA4B;IAEhF,MAAM,OAAO,GAAG;QACZ,GAAG,cAAc;KACpB,CAAC;IACF,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAEpF,GAAG,CAAC,IAAI,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE;QAChC,MAAM;QACN,IAAI;QACJ,OAAO;KACV,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QACX,GAAG,CAAC,KAAK,CAAC,gDAAgD,UAAU,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACjF,MAAM,GAAG,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACV,GAAG,CAAC,IAAI,CAAC,oBAAoB,UAAU,wBAAwB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;QAEvH,gDAAgD;QAChD,IAAI,YAAY,GAAG,2BAA2B,UAAU,wBAAwB,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QAC/G,IAAI,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;YACtC,IAAI,YAAY,EAAE,CAAC;gBACf,YAAY,IAAI,gBAAgB,YAAY,EAAE,CAAC;YACnD,CAAC;QACL,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACjB,kEAAkE;YAClE,GAAG,CAAC,KAAK,CAAC,wCAAwC,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAA;AAExE,CAAC;AAID,yCAAyC;AACzC,6BAA6B;AAC7B,6EAA6E;AAC7E,sDAAsD;AACtD,yCAAyC;AAGzC,SAAS,eAAe,CAAC,YAAoB;IACzC,gFAAgF;IAChF,OAAO,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAAoC,EAAE,MAA2B,EAAE,WAA+B;IAC/H,IAAI,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC,oBAAoB,EAAE,CAAC;QACtF,OAAO,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACJ,OAAO,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;AACL,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,OAAoC,EAAE,MAA2B,EAAE,WAA+B;IACrI,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,SAAS,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC;QACpD,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,IAAI;KACsB,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,OAAoC,EAAE,MAA2B,EAAE,WAA+B;IAC7H,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC3B,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,oBAAoB,IAAI,MAAM,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC7H,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,8BAA8B;QAC/F,oEAAoE;QACpE,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAGD,SAAS,0BAA0B,CAAC,OAAoC,EAAE,OAA2C;IACjH,6BAA6B;IAC7B,OAAO,IAAI,cAAc,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClH,CAAC;AAGD,yDAAyD;AACzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmCE;AAEF,YAAY;AACZ,KAAK,UAAU,oBAAoB,CAAC,OAAoC,EAAE,MAA2B;IACjG,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,oBAAoB,IAAI,MAAM,CAAC,aAAa,KAAK,4BAA4B,EAAE,CAAC;QAC7H,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,4CAA4C;QACtG,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,2GAA2G;QAC3G,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,IAAI,GAAG;YACH,UAAU,EAAE,MAAM,CAAC,WAAW;YAC9B,KAAK,EAAE,MAAM,CAAC,eAAe;YAC7B,MAAM,EAAE,MAAM,CAAC,UAAU,KAAK,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;YACpF,MAAM,EAAE;gBACJ,MAAM,EAAE,GAAG,CAAC,EAAE;gBACd,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,MAAM,IAAI,IAAI;aACzB;SACJ,CAAC;IACN,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { activityInfo, log } from "@temporalio/activity";
|
|
2
|
+
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
3
|
+
export async function checkRateLimit(payload) {
|
|
4
|
+
const { client, params } = await setupActivity(payload);
|
|
5
|
+
const { environmentId, modelId } = params;
|
|
6
|
+
const result = {
|
|
7
|
+
delayMs: 0,
|
|
8
|
+
};
|
|
9
|
+
try {
|
|
10
|
+
// Call the studio-server endpoint to get rate limit delay using the Vertesia client
|
|
11
|
+
const info = activityInfo();
|
|
12
|
+
const requestPayload = {
|
|
13
|
+
interaction: params.interactionIdOrEndpoint,
|
|
14
|
+
workflow_run_id: info.workflowExecution.runId,
|
|
15
|
+
environment_id: environmentId,
|
|
16
|
+
model_id: modelId,
|
|
17
|
+
};
|
|
18
|
+
const response = await client.interactions.requestSlot(requestPayload);
|
|
19
|
+
result.delayMs = response.delay_ms;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
log.warn('Failed to call rate limit API:', { error });
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=rateLimiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../../src/activities/rateLimiter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAYhE,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,OAAqD;IACxF,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAkB,OAAO,CAAC,CAAC;IACzE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAE1C,MAAM,MAAM,GAAoB;QAC9B,OAAO,EAAE,CAAC;KACX,CAAA;IAED,IAAI,CAAC;QACH,oFAAoF;QACpF,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,MAAM,cAAc,GAA4B;YAC9C,WAAW,EAAE,MAAM,CAAC,uBAAuB;YAC3C,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;YAC7C,cAAc,EAAE,aAAa;YAC7B,QAAQ,EAAE,OAAO;SAClB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACvE,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC;QACpD,MAAM,KAAK,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -62,6 +62,10 @@ export async function imageResizer(inputPath, max_hw, format, progressive = true
|
|
|
62
62
|
log.info(`Resizing image using ImageMagick: ${inputPath} -> ${outputPath}`);
|
|
63
63
|
const command = `convert`;
|
|
64
64
|
let args = [inputPath];
|
|
65
|
+
// Add JPEG shrink-on-load optimization
|
|
66
|
+
args.push("-define", `jpeg:size=${max_hw * 3}x${max_hw * 3}`);
|
|
67
|
+
// Remove metadata
|
|
68
|
+
args.push("-strip");
|
|
65
69
|
// https://usage.imagemagick.org/filter/nicolas/#downsample
|
|
66
70
|
// Add colorspace correction if enabled
|
|
67
71
|
if (colorspaceCorrection) {
|
|
@@ -93,8 +97,6 @@ export async function imageResizer(inputPath, max_hw, format, progressive = true
|
|
|
93
97
|
break;
|
|
94
98
|
}
|
|
95
99
|
}
|
|
96
|
-
// Add JPEG shrink-on-load optimization
|
|
97
|
-
args.push("-define", `jpeg:size=${max_hw * 3}x${max_hw * 3}`);
|
|
98
100
|
// Resize operation
|
|
99
101
|
args.push("-resize", `${max_hw}x${max_hw}>`);
|
|
100
102
|
// Restore colorspace after processing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/conversion/image.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/conversion/image.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CancellationScope, executeChild, isCancellation, log, patched, proxyActivities, startChild, } from "@temporalio/workflow";
|
|
2
|
-
import { getDocumentIds } from "@vertesia/common";
|
|
1
|
+
import { CancellationScope, executeChild, isCancellation, log, patched, proxyActivities, sleep, startChild, } from "@temporalio/workflow";
|
|
2
|
+
import { getDocumentIds, getTenantId } from "@vertesia/common";
|
|
3
3
|
import ms from 'ms';
|
|
4
4
|
import { WF_NON_RETRYABLE_ERRORS, WorkflowParamNotFoundError } from "../errors.js";
|
|
5
5
|
import { Vars } from "./vars.js";
|
|
@@ -136,6 +136,7 @@ async function startChildWorkflow(step, payload, vars, debug_mode) {
|
|
|
136
136
|
AccountId: [payload.account_id],
|
|
137
137
|
DocumentId: getDocumentIds(payload),
|
|
138
138
|
ProjectId: [payload.project_id],
|
|
139
|
+
TenantId: [getTenantId(payload.account_id, payload.project_id)],
|
|
139
140
|
InitiatedBy: payload.initiated_by ? [payload.initiated_by] : [],
|
|
140
141
|
},
|
|
141
142
|
});
|
|
@@ -167,6 +168,7 @@ async function executeChildWorkflow(step, payload, vars, debug_mode) {
|
|
|
167
168
|
AccountId: [payload.account_id],
|
|
168
169
|
DocumentId: getDocumentIds(payload),
|
|
169
170
|
ProjectId: [payload.project_id],
|
|
171
|
+
TenantId: [getTenantId(payload.account_id, payload.project_id)],
|
|
170
172
|
InitiatedBy: payload.initiated_by ? [payload.initiated_by] : [],
|
|
171
173
|
},
|
|
172
174
|
});
|
|
@@ -180,6 +182,39 @@ async function executeChildWorkflow(step, payload, vars, debug_mode) {
|
|
|
180
182
|
log.debug(`Workflow vars after executing child workflow ${step.name}`, { vars: resolvedVars });
|
|
181
183
|
}
|
|
182
184
|
}
|
|
185
|
+
function buildRateLimitParams(activity, executionPayload) {
|
|
186
|
+
const params = executionPayload.params;
|
|
187
|
+
let interactionId;
|
|
188
|
+
switch (activity.name) {
|
|
189
|
+
case "executeInteraction":
|
|
190
|
+
interactionId = params.interactionName;
|
|
191
|
+
break;
|
|
192
|
+
case "generateDocumentProperties":
|
|
193
|
+
interactionId = params.interactionName || "sys:ExtractInformation";
|
|
194
|
+
break;
|
|
195
|
+
case "identifyTextSections":
|
|
196
|
+
interactionId = params.interactionName || "sys:IdentifyTextSections";
|
|
197
|
+
break;
|
|
198
|
+
case "generateOrAssignContentType":
|
|
199
|
+
interactionId = params.interactionNames?.selectDocumentType || "sys:SelectDocumentType";
|
|
200
|
+
break;
|
|
201
|
+
case "chunkDocument":
|
|
202
|
+
interactionId = params.interactionName || "sys:ChunkDocument";
|
|
203
|
+
break;
|
|
204
|
+
default:
|
|
205
|
+
// For any other rate-limited activities, try to extract what we can
|
|
206
|
+
interactionId = params.interactionName;
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
if (!interactionId) {
|
|
210
|
+
throw new Error(`No interaction ID could be determined for activity ${activity.name}`);
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
interactionIdOrEndpoint: interactionId,
|
|
214
|
+
environmentId: params.environment,
|
|
215
|
+
modelId: params.model,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
183
218
|
async function runActivity(activity, basePayload, vars, defaultProxy, defaultOptions) {
|
|
184
219
|
if (basePayload.debug_mode) {
|
|
185
220
|
log.debug(`Workflow vars before executing activity ${activity.name}`, { vars: vars.resolve() });
|
|
@@ -206,6 +241,32 @@ async function runActivity(activity, basePayload, vars, defaultProxy, defaultOpt
|
|
|
206
241
|
activityOptions: defaultOptions,
|
|
207
242
|
});
|
|
208
243
|
}
|
|
244
|
+
if (patched('system-activity-taskqueue')) {
|
|
245
|
+
// hack: do nothing, remove later
|
|
246
|
+
// https://github.com/vertesia/composableai/pull/544/files
|
|
247
|
+
}
|
|
248
|
+
// call rate limiter depending on the activity type
|
|
249
|
+
const rateLimitedActivities = [
|
|
250
|
+
"chunkDocument",
|
|
251
|
+
"executeInteraction",
|
|
252
|
+
"generateDocumentProperties",
|
|
253
|
+
"generateOrAssignContentType",
|
|
254
|
+
"identifyTextSections",
|
|
255
|
+
];
|
|
256
|
+
if (activity.name && rateLimitedActivities.includes(activity.name)) {
|
|
257
|
+
log.info(`Applying rate limit for activity ${activity.name}`);
|
|
258
|
+
// Apply rate limiting logic here
|
|
259
|
+
// Check rate limit first - loop until no delay
|
|
260
|
+
const rateLimitParams = buildRateLimitParams(activity, executionPayload);
|
|
261
|
+
const rateLimitPayload = dslActivityPayload(basePayload, activity, rateLimitParams);
|
|
262
|
+
let rateLimitResult = await proxy.checkRateLimit(rateLimitPayload);
|
|
263
|
+
while (rateLimitResult.delayMs > 0) {
|
|
264
|
+
log.info(`Rate limit delay applied: ${rateLimitResult.delayMs}ms`);
|
|
265
|
+
await sleep(rateLimitResult.delayMs);
|
|
266
|
+
// Check again after sleeping
|
|
267
|
+
rateLimitResult = await proxy.checkRateLimit(rateLimitPayload);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
209
270
|
const fn = proxy[activity.name];
|
|
210
271
|
if (activity.parallel) {
|
|
211
272
|
//TODO execute in parallel
|