@vertesia/workflow 0.80.0 → 0.81.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/index-dsl.js +11 -9
- package/lib/cjs/activities/index-dsl.js.map +1 -1
- package/lib/cjs/activities/media/saveGladiaTranscription.js +81 -0
- package/lib/cjs/activities/media/saveGladiaTranscription.js.map +1 -0
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js +7 -9
- package/lib/cjs/activities/media/transcribeMediaWithGladia.js.map +1 -1
- package/lib/esm/activities/index-dsl.js +5 -4
- package/lib/esm/activities/index-dsl.js.map +1 -1
- package/lib/esm/activities/media/saveGladiaTranscription.js +78 -0
- package/lib/esm/activities/media/saveGladiaTranscription.js.map +1 -0
- package/lib/esm/activities/media/transcribeMediaWithGladia.js +7 -9
- package/lib/esm/activities/media/transcribeMediaWithGladia.js.map +1 -1
- package/lib/types/activities/index-dsl.d.ts +6 -4
- package/lib/types/activities/index-dsl.d.ts.map +1 -1
- package/lib/types/activities/media/saveGladiaTranscription.d.ts +14 -0
- package/lib/types/activities/media/saveGladiaTranscription.d.ts.map +1 -0
- package/lib/types/activities/media/transcribeMediaWithGladia.d.ts +5 -0
- package/lib/types/activities/media/transcribeMediaWithGladia.d.ts.map +1 -1
- package/lib/workflows-bundle.js +87 -39
- package/package.json +6 -6
- package/src/activities/index-dsl.ts +7 -4
- package/src/activities/media/saveGladiaTranscription.ts +128 -0
- package/src/activities/media/transcribeMediaWithGladia.ts +13 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.setDocumentStatus = exports.generateVideoRendition = exports.generateImageRendition = exports.checkRateLimit = exports.notifyWebhook = exports.transcribeMedia = exports.saveGladiaTranscription = exports.convertPdfToStructuredText = exports.prepareVideo = exports.handleDslError = exports.getObjectFromStore = exports.generateOrAssignContentType = exports.generateEmbeddings = exports.generateDocumentProperties = exports.extractDocumentText = exports.executeInteraction = exports.createPdfDocumentFromSource = exports.chunkDocument = exports.updateDocumentFromInteractionRun = exports.createOrUpdateDocumentFromInteractionRun = exports.createDocumentTypeFromInteractionRun = void 0;
|
|
4
4
|
// Export here DSL activities
|
|
5
5
|
var createDocumentTypeFromInteractionRun_js_1 = require("./advanced/createDocumentTypeFromInteractionRun.js");
|
|
6
6
|
Object.defineProperty(exports, "createDocumentTypeFromInteractionRun", { enumerable: true, get: function () { return createDocumentTypeFromInteractionRun_js_1.createDocumentTypeFromInteractionRun; } });
|
|
@@ -20,26 +20,28 @@ var generateDocumentProperties_js_1 = require("./generateDocumentProperties.js")
|
|
|
20
20
|
Object.defineProperty(exports, "generateDocumentProperties", { enumerable: true, get: function () { return generateDocumentProperties_js_1.generateDocumentProperties; } });
|
|
21
21
|
var generateEmbeddings_js_1 = require("./generateEmbeddings.js");
|
|
22
22
|
Object.defineProperty(exports, "generateEmbeddings", { enumerable: true, get: function () { return generateEmbeddings_js_1.generateEmbeddings; } });
|
|
23
|
-
var generateImageRendition_js_1 = require("./renditions/generateImageRendition.js");
|
|
24
|
-
Object.defineProperty(exports, "generateImageRendition", { enumerable: true, get: function () { return generateImageRendition_js_1.generateImageRendition; } });
|
|
25
|
-
var generateVideoRendition_js_1 = require("./renditions/generateVideoRendition.js");
|
|
26
|
-
Object.defineProperty(exports, "generateVideoRendition", { enumerable: true, get: function () { return generateVideoRendition_js_1.generateVideoRendition; } });
|
|
27
23
|
var generateOrAssignContentType_js_1 = require("./generateOrAssignContentType.js");
|
|
28
24
|
Object.defineProperty(exports, "generateOrAssignContentType", { enumerable: true, get: function () { return generateOrAssignContentType_js_1.generateOrAssignContentType; } });
|
|
29
25
|
var getObjectFromStore_js_1 = require("./getObjectFromStore.js");
|
|
30
26
|
Object.defineProperty(exports, "getObjectFromStore", { enumerable: true, get: function () { return getObjectFromStore_js_1.getObjectFromStore; } });
|
|
31
27
|
var handleError_js_1 = require("./handleError.js");
|
|
32
28
|
Object.defineProperty(exports, "handleDslError", { enumerable: true, get: function () { return handleError_js_1.handleDslError; } });
|
|
29
|
+
var prepareVideo_js_1 = require("./media/prepareVideo.js");
|
|
30
|
+
Object.defineProperty(exports, "prepareVideo", { enumerable: true, get: function () { return prepareVideo_js_1.prepareVideo; } });
|
|
33
31
|
var processPdfWithTextract_js_1 = require("./media/processPdfWithTextract.js");
|
|
34
32
|
Object.defineProperty(exports, "convertPdfToStructuredText", { enumerable: true, get: function () { return processPdfWithTextract_js_1.convertPdfToStructuredText; } });
|
|
33
|
+
var saveGladiaTranscription_js_1 = require("./media/saveGladiaTranscription.js");
|
|
34
|
+
Object.defineProperty(exports, "saveGladiaTranscription", { enumerable: true, get: function () { return saveGladiaTranscription_js_1.saveGladiaTranscription; } });
|
|
35
35
|
var transcribeMediaWithGladia_js_1 = require("./media/transcribeMediaWithGladia.js");
|
|
36
36
|
Object.defineProperty(exports, "transcribeMedia", { enumerable: true, get: function () { return transcribeMediaWithGladia_js_1.transcribeMedia; } });
|
|
37
|
-
var prepareVideo_js_1 = require("./media/prepareVideo.js");
|
|
38
|
-
Object.defineProperty(exports, "prepareVideo", { enumerable: true, get: function () { return prepareVideo_js_1.prepareVideo; } });
|
|
39
37
|
var notifyWebhook_js_1 = require("./notifyWebhook.js");
|
|
40
38
|
Object.defineProperty(exports, "notifyWebhook", { enumerable: true, get: function () { return notifyWebhook_js_1.notifyWebhook; } });
|
|
41
|
-
var setDocumentStatus_js_1 = require("./setDocumentStatus.js");
|
|
42
|
-
Object.defineProperty(exports, "setDocumentStatus", { enumerable: true, get: function () { return setDocumentStatus_js_1.setDocumentStatus; } });
|
|
43
39
|
var rateLimiter_js_1 = require("./rateLimiter.js");
|
|
44
40
|
Object.defineProperty(exports, "checkRateLimit", { enumerable: true, get: function () { return rateLimiter_js_1.checkRateLimit; } });
|
|
41
|
+
var generateImageRendition_js_1 = require("./renditions/generateImageRendition.js");
|
|
42
|
+
Object.defineProperty(exports, "generateImageRendition", { enumerable: true, get: function () { return generateImageRendition_js_1.generateImageRendition; } });
|
|
43
|
+
var generateVideoRendition_js_1 = require("./renditions/generateVideoRendition.js");
|
|
44
|
+
Object.defineProperty(exports, "generateVideoRendition", { enumerable: true, get: function () { return generateVideoRendition_js_1.generateVideoRendition; } });
|
|
45
|
+
var setDocumentStatus_js_1 = require("./setDocumentStatus.js");
|
|
46
|
+
Object.defineProperty(exports, "setDocumentStatus", { enumerable: true, get: function () { return setDocumentStatus_js_1.setDocumentStatus; } });
|
|
45
47
|
//# 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,8GAA0G;AAAjG,+JAAA,oCAAoC,OAAA;AAC7C,sHAAkH;AAAzG,uKAAA,wCAAwC,OAAA;AACjD,sGAAkG;AAAzF,uJAAA,gCAAgC,OAAA;AACzC,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,2EAA2E;AAAlE,yIAAA,2BAA2B,OAAA;AACpC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,
|
|
1
|
+
{"version":3,"file":"index-dsl.js","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,8GAA0G;AAAjG,+JAAA,oCAAoC,OAAA;AAC7C,sHAAkH;AAAzG,uKAAA,wCAAwC,OAAA;AACjD,sGAAkG;AAAzF,uJAAA,gCAAgC,OAAA;AACzC,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,2EAA2E;AAAlE,yIAAA,2BAA2B,OAAA;AACpC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mEAA+D;AAAtD,6HAAA,mBAAmB,OAAA;AAC5B,iFAA6E;AAApE,2IAAA,0BAA0B,OAAA;AACnC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mFAA+E;AAAtE,6IAAA,2BAA2B,OAAA;AACpC,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA;AAC3B,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,2DAAuD;AAA9C,+GAAA,YAAY,OAAA;AACrB,+EAA+E;AAAtE,uIAAA,0BAA0B,OAAA;AACnC,iFAA6E;AAApE,qIAAA,uBAAuB,OAAA;AAChC,qFAAuE;AAA9D,+HAAA,eAAe,OAAA;AAExB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,oFAAgF;AAAvE,mIAAA,sBAAsB,OAAA;AAC/B,oFAAgF;AAAvE,mIAAA,sBAAsB,OAAA;AAC/B,+DAA2D;AAAlD,yHAAA,iBAAiB,OAAA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.saveGladiaTranscription = saveGladiaTranscription;
|
|
4
|
+
const activity_1 = require("@temporalio/activity");
|
|
5
|
+
const api_fetch_client_1 = require("@vertesia/api-fetch-client");
|
|
6
|
+
const common_1 = require("@vertesia/common");
|
|
7
|
+
const ActivityContext_js_1 = require("../../dsl/setup/ActivityContext.js");
|
|
8
|
+
const result_types_js_1 = require("../../result-types.js");
|
|
9
|
+
const GLADIA_URL = "https://api.gladia.io/v2";
|
|
10
|
+
/**
|
|
11
|
+
* Fetches transcription results from Gladia and saves them to the content object.
|
|
12
|
+
* This activity is called after transcribeMedia completes via webhook callback.
|
|
13
|
+
*/
|
|
14
|
+
async function saveGladiaTranscription(payload) {
|
|
15
|
+
const { params, client, objectId } = await (0, ActivityContext_js_1.setupActivity)(payload);
|
|
16
|
+
const gladiaConfig = await client.projects.integrations.retrieve(payload.project_id, common_1.SupportedIntegrations.gladia);
|
|
17
|
+
if (!gladiaConfig || !gladiaConfig.enabled) {
|
|
18
|
+
return {
|
|
19
|
+
hasText: false,
|
|
20
|
+
objectId,
|
|
21
|
+
status: result_types_js_1.TextExtractionStatus.error,
|
|
22
|
+
error: "Gladia integration not enabled",
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const gladiaClient = new api_fetch_client_1.FetchClient(gladiaConfig.url ?? GLADIA_URL);
|
|
26
|
+
gladiaClient.withHeaders({ "x-gladia-key": gladiaConfig.api_key });
|
|
27
|
+
activity_1.log.info(`Fetching transcription result from Gladia`, { objectId, transcriptionId: params.gladiaTranscriptionId });
|
|
28
|
+
const transcriptionResult = await gladiaClient.get(`/transcription/${params.gladiaTranscriptionId}`);
|
|
29
|
+
if (transcriptionResult.status === 'error') {
|
|
30
|
+
activity_1.log.error(`Gladia transcription failed`, { objectId, error: transcriptionResult });
|
|
31
|
+
return {
|
|
32
|
+
hasText: false,
|
|
33
|
+
objectId,
|
|
34
|
+
status: result_types_js_1.TextExtractionStatus.error,
|
|
35
|
+
error: "Gladia transcription failed",
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
if (transcriptionResult.status !== 'done') {
|
|
39
|
+
activity_1.log.warn(`Gladia transcription not ready`, { objectId, status: transcriptionResult.status });
|
|
40
|
+
return {
|
|
41
|
+
hasText: false,
|
|
42
|
+
objectId,
|
|
43
|
+
status: result_types_js_1.TextExtractionStatus.error,
|
|
44
|
+
error: `Gladia transcription not ready: ${transcriptionResult.status}`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const object = await client.objects.retrieve(objectId, "+text");
|
|
48
|
+
const segments = processUtterances(transcriptionResult.result.transcription.utterances);
|
|
49
|
+
const fullText = transcriptionResult.result.transcription.full_transcript;
|
|
50
|
+
await client.objects.update(objectId, {
|
|
51
|
+
text: fullText,
|
|
52
|
+
text_etag: object.content?.etag,
|
|
53
|
+
transcript: {
|
|
54
|
+
segments,
|
|
55
|
+
etag: object.content?.etag
|
|
56
|
+
},
|
|
57
|
+
metadata: {
|
|
58
|
+
...object.metadata,
|
|
59
|
+
duration: transcriptionResult.result.metadata.audio_duration,
|
|
60
|
+
languages: transcriptionResult.result.transcription.languages
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
activity_1.log.info(`Saved transcription for object`, { objectId, textLength: fullText?.length, segmentCount: segments.length });
|
|
64
|
+
return {
|
|
65
|
+
hasText: (fullText?.length ?? 0) > 0,
|
|
66
|
+
objectId,
|
|
67
|
+
status: result_types_js_1.TextExtractionStatus.success,
|
|
68
|
+
message: `Transcription saved with ${segments.length} segments`
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function processUtterances(utterances) {
|
|
72
|
+
return utterances.map(u => ({
|
|
73
|
+
start: u.start,
|
|
74
|
+
end: u.end,
|
|
75
|
+
text: u.text,
|
|
76
|
+
speaker: u.speaker,
|
|
77
|
+
confidence: u.confidence,
|
|
78
|
+
language: u.language
|
|
79
|
+
}));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=saveGladiaTranscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveGladiaTranscription.js","sourceRoot":"","sources":["../../../../src/activities/media/saveGladiaTranscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.transcribeMedia = transcribeMedia;
|
|
4
|
-
const common_1 = require("@vertesia/common");
|
|
5
4
|
const activity_1 = require("@temporalio/activity");
|
|
6
5
|
const api_fetch_client_1 = require("@vertesia/api-fetch-client");
|
|
6
|
+
const common_1 = require("@vertesia/common");
|
|
7
7
|
const ActivityContext_js_1 = require("../../dsl/setup/ActivityContext.js");
|
|
8
8
|
const errors_js_1 = require("../../errors.js");
|
|
9
9
|
const index_js_1 = require("../../index.js");
|
|
@@ -45,7 +45,7 @@ async function transcribeMedia(payload) {
|
|
|
45
45
|
}
|
|
46
46
|
activity_1.log.info(`Using media URL for transcription`, { objectId, mediaUrl: mediaSource });
|
|
47
47
|
const taskToken = Buffer.from((0, activity_1.activityInfo)().taskToken).toString('base64url');
|
|
48
|
-
const callbackUrl = generateCallbackUrlForGladia(client.store.baseUrl,
|
|
48
|
+
const callbackUrl = generateCallbackUrlForGladia(client.store.baseUrl, taskToken, objectId);
|
|
49
49
|
activity_1.log.info(`Transcribing media ${mediaUrl} with Gladia`, { objectId, callbackUrl });
|
|
50
50
|
try {
|
|
51
51
|
const res = await gladiaClient.post("/transcription", {
|
|
@@ -61,7 +61,6 @@ async function transcribeMedia(payload) {
|
|
|
61
61
|
}
|
|
62
62
|
});
|
|
63
63
|
activity_1.log.info(`Transcription request sent to Gladia`, { objectId, res });
|
|
64
|
-
throw new activity_1.CompleteAsyncError();
|
|
65
64
|
}
|
|
66
65
|
catch (error) {
|
|
67
66
|
if (error instanceof api_fetch_client_1.RequestError && error.status === 422) {
|
|
@@ -72,13 +71,12 @@ async function transcribeMedia(payload) {
|
|
|
72
71
|
error: `Gladia transcription error: ${error.message}`,
|
|
73
72
|
};
|
|
74
73
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
throw error;
|
|
78
|
-
}
|
|
74
|
+
activity_1.log.error(`Error sending transcription request to Gladia for object ${objectId}`, { error });
|
|
75
|
+
throw error;
|
|
79
76
|
}
|
|
77
|
+
throw new activity_1.CompleteAsyncError();
|
|
80
78
|
}
|
|
81
|
-
function generateCallbackUrlForGladia(baseUrl,
|
|
82
|
-
return `${baseUrl}/
|
|
79
|
+
function generateCallbackUrlForGladia(baseUrl, taskToken, objectId) {
|
|
80
|
+
return `${baseUrl}/webhooks/gladia/${objectId}?task_token=${taskToken}`;
|
|
83
81
|
}
|
|
84
82
|
//# sourceMappingURL=transcribeMediaWithGladia.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcribeMediaWithGladia.js","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transcribeMediaWithGladia.js","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":";;AA4BA,0CA+EC;AA3GD,mDAA6E;AAC7E,iEAAuE;AACvE,6CAAgL;AAChL,2EAAmE;AACnE,+CAAwD;AACxD,6CAA4E;AAqB5E,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAEvC,KAAK,UAAU,eAAe,CAAC,OAA2D;IAE7F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,kCAAa,EAAwB,OAAO,CAAC,CAAC;IAEzF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,8BAAqB,CAAC,MAAM,CAAoC,CAAC;IACtJ,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO;YACH,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,MAAM,EAAE,+BAAoB,CAAC,KAAK;YAClC,KAAK,EAAE,gCAAgC;SAC1C,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,8BAAW,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;IACrE,YAAY,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnE,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,+BAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAA;IACnI,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,iCAAqB,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,qEAAqE;IACrE,IAAI,WAAW,GAAW,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,sBAAa,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAyB,CAAC;QACvD,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,6BAAoB,CAAC,CAAC;QAC5F,IAAI,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAClC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C,cAAG,CAAC,IAAI,CAAC,0CAA0C,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAEzE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,iCAAqB,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,cAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,uBAAY,GAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE5F,cAAG,CAAC,IAAI,CAAC,sBAAsB,QAAQ,cAAc,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAElF,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAClD,OAAO,EAAE;gBACL,SAAS,EAAE,QAAQ;gBACnB,YAAY,EAAE,WAAW;gBACzB,oBAAoB,EAAE,IAAI;gBAC1B,qBAAqB,EAAE,IAAI;gBAC3B,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE;oBACd,OAAO,EAAE,CAAC,KAAK,CAAC;iBACnB;aACJ;SACJ,CAAoC,CAAC;QACtC,cAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,YAAY,+BAAY,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,QAAQ;gBACR,MAAM,EAAE,+BAAoB,CAAC,KAAK;gBAClC,KAAK,EAAE,+BAA+B,KAAK,CAAC,OAAO,EAAE;aACxD,CAAA;QACL,CAAC;QACD,cAAG,CAAC,KAAK,CAAC,4DAA4D,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,6BAAkB,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe,EAAE,SAAiB,EAAE,QAAgB;IACtF,OAAO,GAAG,OAAO,oBAAoB,QAAQ,eAAe,SAAS,EAAE,CAAC;AAC5E,CAAC"}
|
|
@@ -8,15 +8,16 @@ export { executeInteraction } from "./executeInteraction.js";
|
|
|
8
8
|
export { extractDocumentText } from "./extractDocumentText.js";
|
|
9
9
|
export { generateDocumentProperties } from "./generateDocumentProperties.js";
|
|
10
10
|
export { generateEmbeddings } from "./generateEmbeddings.js";
|
|
11
|
-
export { generateImageRendition } from "./renditions/generateImageRendition.js";
|
|
12
|
-
export { generateVideoRendition } from "./renditions/generateVideoRendition.js";
|
|
13
11
|
export { generateOrAssignContentType } from "./generateOrAssignContentType.js";
|
|
14
12
|
export { getObjectFromStore } from "./getObjectFromStore.js";
|
|
15
13
|
export { handleDslError } from "./handleError.js";
|
|
14
|
+
export { prepareVideo } from "./media/prepareVideo.js";
|
|
16
15
|
export { convertPdfToStructuredText } from "./media/processPdfWithTextract.js";
|
|
16
|
+
export { saveGladiaTranscription } from "./media/saveGladiaTranscription.js";
|
|
17
17
|
export { transcribeMedia } from "./media/transcribeMediaWithGladia.js";
|
|
18
|
-
export { prepareVideo } from "./media/prepareVideo.js";
|
|
19
18
|
export { notifyWebhook } from "./notifyWebhook.js";
|
|
20
|
-
export { setDocumentStatus } from "./setDocumentStatus.js";
|
|
21
19
|
export { checkRateLimit } from "./rateLimiter.js";
|
|
20
|
+
export { generateImageRendition } from "./renditions/generateImageRendition.js";
|
|
21
|
+
export { generateVideoRendition } from "./renditions/generateVideoRendition.js";
|
|
22
|
+
export { setDocumentStatus } from "./setDocumentStatus.js";
|
|
22
23
|
//# 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,
|
|
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,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,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { log } from "@temporalio/activity";
|
|
2
|
+
import { FetchClient } from "@vertesia/api-fetch-client";
|
|
3
|
+
import { SupportedIntegrations } from "@vertesia/common";
|
|
4
|
+
import { setupActivity } from "../../dsl/setup/ActivityContext.js";
|
|
5
|
+
import { TextExtractionStatus } from "../../result-types.js";
|
|
6
|
+
const GLADIA_URL = "https://api.gladia.io/v2";
|
|
7
|
+
/**
|
|
8
|
+
* Fetches transcription results from Gladia and saves them to the content object.
|
|
9
|
+
* This activity is called after transcribeMedia completes via webhook callback.
|
|
10
|
+
*/
|
|
11
|
+
export async function saveGladiaTranscription(payload) {
|
|
12
|
+
const { params, client, objectId } = await setupActivity(payload);
|
|
13
|
+
const gladiaConfig = await client.projects.integrations.retrieve(payload.project_id, SupportedIntegrations.gladia);
|
|
14
|
+
if (!gladiaConfig || !gladiaConfig.enabled) {
|
|
15
|
+
return {
|
|
16
|
+
hasText: false,
|
|
17
|
+
objectId,
|
|
18
|
+
status: TextExtractionStatus.error,
|
|
19
|
+
error: "Gladia integration not enabled",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const gladiaClient = new FetchClient(gladiaConfig.url ?? GLADIA_URL);
|
|
23
|
+
gladiaClient.withHeaders({ "x-gladia-key": gladiaConfig.api_key });
|
|
24
|
+
log.info(`Fetching transcription result from Gladia`, { objectId, transcriptionId: params.gladiaTranscriptionId });
|
|
25
|
+
const transcriptionResult = await gladiaClient.get(`/transcription/${params.gladiaTranscriptionId}`);
|
|
26
|
+
if (transcriptionResult.status === 'error') {
|
|
27
|
+
log.error(`Gladia transcription failed`, { objectId, error: transcriptionResult });
|
|
28
|
+
return {
|
|
29
|
+
hasText: false,
|
|
30
|
+
objectId,
|
|
31
|
+
status: TextExtractionStatus.error,
|
|
32
|
+
error: "Gladia transcription failed",
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
if (transcriptionResult.status !== 'done') {
|
|
36
|
+
log.warn(`Gladia transcription not ready`, { objectId, status: transcriptionResult.status });
|
|
37
|
+
return {
|
|
38
|
+
hasText: false,
|
|
39
|
+
objectId,
|
|
40
|
+
status: TextExtractionStatus.error,
|
|
41
|
+
error: `Gladia transcription not ready: ${transcriptionResult.status}`,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const object = await client.objects.retrieve(objectId, "+text");
|
|
45
|
+
const segments = processUtterances(transcriptionResult.result.transcription.utterances);
|
|
46
|
+
const fullText = transcriptionResult.result.transcription.full_transcript;
|
|
47
|
+
await client.objects.update(objectId, {
|
|
48
|
+
text: fullText,
|
|
49
|
+
text_etag: object.content?.etag,
|
|
50
|
+
transcript: {
|
|
51
|
+
segments,
|
|
52
|
+
etag: object.content?.etag
|
|
53
|
+
},
|
|
54
|
+
metadata: {
|
|
55
|
+
...object.metadata,
|
|
56
|
+
duration: transcriptionResult.result.metadata.audio_duration,
|
|
57
|
+
languages: transcriptionResult.result.transcription.languages
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
log.info(`Saved transcription for object`, { objectId, textLength: fullText?.length, segmentCount: segments.length });
|
|
61
|
+
return {
|
|
62
|
+
hasText: (fullText?.length ?? 0) > 0,
|
|
63
|
+
objectId,
|
|
64
|
+
status: TextExtractionStatus.success,
|
|
65
|
+
message: `Transcription saved with ${segments.length} segments`
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
function processUtterances(utterances) {
|
|
69
|
+
return utterances.map(u => ({
|
|
70
|
+
start: u.start,
|
|
71
|
+
end: u.end,
|
|
72
|
+
text: u.text,
|
|
73
|
+
speaker: u.speaker,
|
|
74
|
+
confidence: u.confidence,
|
|
75
|
+
language: u.language
|
|
76
|
+
}));
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=saveGladiaTranscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveGladiaTranscription.js","sourceRoot":"","sources":["../../../../src/activities/media/saveGladiaTranscription.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAoF,qBAAqB,EAAoC,MAAM,kBAAkB,CAAC;AAC7K,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAwB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAUnF,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAAmE;IAC7G,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAgC,OAAO,CAAC,CAAC;IAEjG,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAoC,CAAC;IACtJ,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO;YACH,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,MAAM,EAAE,oBAAoB,CAAC,KAAK;YAClC,KAAK,EAAE,gCAAgC;SAC1C,CAAC;IACN,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;IACrE,YAAY,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnE,GAAG,CAAC,IAAI,CAAC,2CAA2C,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAEnH,MAAM,mBAAmB,GAAG,MAAM,YAAY,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,qBAAqB,EAAE,CAA8B,CAAC;IAElI,IAAI,mBAAmB,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACzC,GAAG,CAAC,KAAK,CAAC,6BAA6B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACnF,OAAO;YACH,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,MAAM,EAAE,oBAAoB,CAAC,KAAK;YAClC,KAAK,EAAE,6BAA6B;SACvC,CAAC;IACN,CAAC;IAED,IAAI,mBAAmB,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,OAAO;YACH,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,MAAM,EAAE,oBAAoB,CAAC,KAAK;YAClC,KAAK,EAAE,mCAAmC,mBAAmB,CAAC,MAAM,EAAE;SACzE,CAAC;IACN,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACxF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,eAAe,CAAC;IAE1E,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;QAClC,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI;QAC/B,UAAU,EAAE;YACR,QAAQ;YACR,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,IAAI;SAC7B;QACD,QAAQ,EAAE;YACN,GAAG,MAAM,CAAC,QAAQ;YAClB,QAAQ,EAAE,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc;YAC5D,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS;SAC/B;KACrC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEtH,OAAO;QACH,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;QACpC,QAAQ;QACR,MAAM,EAAE,oBAAoB,CAAC,OAAO;QACpC,OAAO,EAAE,4BAA4B,QAAQ,CAAC,MAAM,WAAW;KAClE,CAAC;AACN,CAAC;AAED,SAAS,iBAAiB,CAAC,UAA6B;IACpD,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,UAAU,EAAE,CAAC,CAAC,UAAU;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;KACvB,CAAC,CAAC,CAAC;AACR,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SupportedIntegrations, AUDIO_RENDITION_NAME, ContentNature } from "@vertesia/common";
|
|
2
1
|
import { activityInfo, CompleteAsyncError, log } from "@temporalio/activity";
|
|
3
2
|
import { FetchClient, RequestError } from "@vertesia/api-fetch-client";
|
|
3
|
+
import { AUDIO_RENDITION_NAME, ContentNature, SupportedIntegrations } from "@vertesia/common";
|
|
4
4
|
import { setupActivity } from "../../dsl/setup/ActivityContext.js";
|
|
5
5
|
import { DocumentNotFoundError } from "../../errors.js";
|
|
6
6
|
import { TextExtractionStatus } from "../../index.js";
|
|
@@ -42,7 +42,7 @@ export async function transcribeMedia(payload) {
|
|
|
42
42
|
}
|
|
43
43
|
log.info(`Using media URL for transcription`, { objectId, mediaUrl: mediaSource });
|
|
44
44
|
const taskToken = Buffer.from(activityInfo().taskToken).toString('base64url');
|
|
45
|
-
const callbackUrl = generateCallbackUrlForGladia(client.store.baseUrl,
|
|
45
|
+
const callbackUrl = generateCallbackUrlForGladia(client.store.baseUrl, taskToken, objectId);
|
|
46
46
|
log.info(`Transcribing media ${mediaUrl} with Gladia`, { objectId, callbackUrl });
|
|
47
47
|
try {
|
|
48
48
|
const res = await gladiaClient.post("/transcription", {
|
|
@@ -58,7 +58,6 @@ export async function transcribeMedia(payload) {
|
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
log.info(`Transcription request sent to Gladia`, { objectId, res });
|
|
61
|
-
throw new CompleteAsyncError();
|
|
62
61
|
}
|
|
63
62
|
catch (error) {
|
|
64
63
|
if (error instanceof RequestError && error.status === 422) {
|
|
@@ -69,13 +68,12 @@ export async function transcribeMedia(payload) {
|
|
|
69
68
|
error: `Gladia transcription error: ${error.message}`,
|
|
70
69
|
};
|
|
71
70
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
throw error;
|
|
75
|
-
}
|
|
71
|
+
log.error(`Error sending transcription request to Gladia for object ${objectId}`, { error });
|
|
72
|
+
throw error;
|
|
76
73
|
}
|
|
74
|
+
throw new CompleteAsyncError();
|
|
77
75
|
}
|
|
78
|
-
function generateCallbackUrlForGladia(baseUrl,
|
|
79
|
-
return `${baseUrl}/
|
|
76
|
+
function generateCallbackUrlForGladia(baseUrl, taskToken, objectId) {
|
|
77
|
+
return `${baseUrl}/webhooks/gladia/${objectId}?task_token=${taskToken}`;
|
|
80
78
|
}
|
|
81
79
|
//# sourceMappingURL=transcribeMediaWithGladia.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcribeMediaWithGladia.js","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"transcribeMediaWithGladia.js","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAqE,qBAAqB,EAAiB,MAAM,kBAAkB,CAAC;AAChL,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAwB,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAqB5E,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2D;IAE7F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAwB,OAAO,CAAC,CAAC;IAEzF,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,MAAM,CAAoC,CAAC;IACtJ,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QACzC,OAAO;YACH,OAAO,EAAE,KAAK;YACd,QAAQ;YACR,MAAM,EAAE,oBAAoB,CAAC,KAAK;YAClC,KAAK,EAAE,gCAAgC;SAC1C,CAAA;IACL,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,GAAG,IAAI,UAAU,CAAC,CAAC;IACrE,YAAY,CAAC,WAAW,CAAC,EAAE,cAAc,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnE,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAC/B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,4CAA4C,EAAE,CAAA;IACnI,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,qBAAqB,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,qEAAqE;IACrE,IAAI,WAAW,GAAW,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;IAChD,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,CAAC,QAAyB,CAAC;QACvD,MAAM,cAAc,GAAG,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAC;QAC5F,IAAI,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAClC,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;YAC5C,GAAG,CAAC,IAAI,CAAC,0CAA0C,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;QACpF,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IAEzE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,qBAAqB,CAAC,gCAAgC,WAAW,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,GAAG,CAAC,IAAI,CAAC,mCAAmC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAEnF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,4BAA4B,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAE5F,GAAG,CAAC,IAAI,CAAC,sBAAsB,QAAQ,cAAc,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAElF,IAAI,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE;YAClD,OAAO,EAAE;gBACL,SAAS,EAAE,QAAQ;gBACnB,YAAY,EAAE,WAAW;gBACzB,oBAAoB,EAAE,IAAI;gBAC1B,qBAAqB,EAAE,IAAI;gBAC3B,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE;oBACd,OAAO,EAAE,CAAC,KAAK,CAAC;iBACnB;aACJ;SACJ,CAAoC,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,IAAI,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACxD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,QAAQ;gBACR,MAAM,EAAE,oBAAoB,CAAC,KAAK;gBAClC,KAAK,EAAE,+BAA+B,KAAK,CAAC,OAAO,EAAE;aACxD,CAAA;QACL,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,4DAA4D,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7F,MAAM,KAAK,CAAC;IAChB,CAAC;IAED,MAAM,IAAI,kBAAkB,EAAE,CAAC;AACnC,CAAC;AAED,SAAS,4BAA4B,CAAC,OAAe,EAAE,SAAiB,EAAE,QAAgB;IACtF,OAAO,GAAG,OAAO,oBAAoB,QAAQ,eAAe,SAAS,EAAE,CAAC;AAC5E,CAAC"}
|
|
@@ -7,15 +7,17 @@ export { executeInteraction } from "./executeInteraction.js";
|
|
|
7
7
|
export { extractDocumentText } from "./extractDocumentText.js";
|
|
8
8
|
export { generateDocumentProperties } from "./generateDocumentProperties.js";
|
|
9
9
|
export { generateEmbeddings } from "./generateEmbeddings.js";
|
|
10
|
-
export { generateImageRendition } from "./renditions/generateImageRendition.js";
|
|
11
|
-
export { generateVideoRendition } from "./renditions/generateVideoRendition.js";
|
|
12
10
|
export { generateOrAssignContentType } from "./generateOrAssignContentType.js";
|
|
13
11
|
export { getObjectFromStore } from "./getObjectFromStore.js";
|
|
14
12
|
export { handleDslError } from "./handleError.js";
|
|
13
|
+
export { prepareVideo } from "./media/prepareVideo.js";
|
|
15
14
|
export { convertPdfToStructuredText } from "./media/processPdfWithTextract.js";
|
|
15
|
+
export { saveGladiaTranscription } from "./media/saveGladiaTranscription.js";
|
|
16
16
|
export { transcribeMedia } from "./media/transcribeMediaWithGladia.js";
|
|
17
|
-
export {
|
|
17
|
+
export type { TranscriptMediaResult } from "./media/transcribeMediaWithGladia.js";
|
|
18
18
|
export { notifyWebhook } from "./notifyWebhook.js";
|
|
19
|
-
export { setDocumentStatus } from "./setDocumentStatus.js";
|
|
20
19
|
export { checkRateLimit } from "./rateLimiter.js";
|
|
20
|
+
export { generateImageRendition } from "./renditions/generateImageRendition.js";
|
|
21
|
+
export { generateVideoRendition } from "./renditions/generateVideoRendition.js";
|
|
22
|
+
export { setDocumentStatus } from "./setDocumentStatus.js";
|
|
21
23
|
//# sourceMappingURL=index-dsl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-dsl.d.ts","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":"AACA,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,
|
|
1
|
+
{"version":3,"file":"index-dsl.d.ts","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":"AACA,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,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,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAClF,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { DSLActivityExecutionPayload, DSLActivitySpec } from "@vertesia/common";
|
|
2
|
+
import { TextExtractionResult } from "../../result-types.js";
|
|
3
|
+
export interface SaveGladiaTranscriptionParams {
|
|
4
|
+
gladiaTranscriptionId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface SaveGladiaTranscription extends DSLActivitySpec<SaveGladiaTranscriptionParams> {
|
|
7
|
+
name: 'SaveGladiaTranscription';
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Fetches transcription results from Gladia and saves them to the content object.
|
|
11
|
+
* This activity is called after transcribeMedia completes via webhook callback.
|
|
12
|
+
*/
|
|
13
|
+
export declare function saveGladiaTranscription(payload: DSLActivityExecutionPayload<SaveGladiaTranscriptionParams>): Promise<TextExtractionResult>;
|
|
14
|
+
//# sourceMappingURL=saveGladiaTranscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"saveGladiaTranscription.d.ts","sourceRoot":"","sources":["../../../../src/activities/media/saveGladiaTranscription.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,2BAA2B,EAAE,eAAe,EAAgF,MAAM,kBAAkB,CAAC;AAE7K,OAAO,EAAE,oBAAoB,EAAwB,MAAM,uBAAuB,CAAC;AAEnF,MAAM,WAAW,6BAA6B;IAC1C,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,uBAAwB,SAAQ,eAAe,CAAC,6BAA6B,CAAC;IAC3F,IAAI,EAAE,yBAAyB,CAAC;CACnC;AAID;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,2BAA2B,CAAC,6BAA6B,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAmEhJ"}
|
|
@@ -9,6 +9,11 @@ export interface TranscriptMedia extends DSLActivitySpec<TranscriptMediaParams>
|
|
|
9
9
|
}
|
|
10
10
|
export interface TranscriptMediaResult extends TextExtractionResult {
|
|
11
11
|
message?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Gladia transcription ID for fetching results in a follow-up activity.
|
|
14
|
+
* Present when async media transcription completes successfully.
|
|
15
|
+
*/
|
|
16
|
+
gladiaTranscriptionId?: string;
|
|
12
17
|
}
|
|
13
18
|
export declare function transcribeMedia(payload: DSLActivityExecutionPayload<TranscriptMediaParams>): Promise<TranscriptMediaResult>;
|
|
14
19
|
//# sourceMappingURL=transcribeMediaWithGladia.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transcribeMediaWithGladia.d.ts","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transcribeMediaWithGladia.d.ts","sourceRoot":"","sources":["../../../../src/activities/media/transcribeMediaWithGladia.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuC,2BAA2B,EAAE,eAAe,EAA6D,MAAM,kBAAkB,CAAC;AAGhL,OAAO,EAAE,oBAAoB,EAAwB,MAAM,gBAAgB,CAAC;AAG5E,MAAM,WAAW,qBAAqB;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,eAAe,CAAC,qBAAqB,CAAC;IAC3E,IAAI,EAAE,iBAAiB,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IAC/D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC;AAID,wBAAsB,eAAe,CAAC,OAAO,EAAE,2BAA2B,CAAC,qBAAqB,CAAC,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA+EjI"}
|