@vertesia/workflow 1.0.0-dev.20260305.083323Z → 1.0.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/chunkDocument.js +1 -3
- package/lib/cjs/activities/chunkDocument.js.map +1 -1
- package/lib/cjs/activities/executeInteraction.js +18 -0
- package/lib/cjs/activities/executeInteraction.js.map +1 -1
- package/lib/cjs/activities/executeRemoteActivity.js +107 -0
- package/lib/cjs/activities/executeRemoteActivity.js.map +1 -0
- package/lib/cjs/activities/getObjectFromStore.js +12 -1
- package/lib/cjs/activities/getObjectFromStore.js.map +1 -1
- package/lib/cjs/activities/index-dsl.js +5 -3
- package/lib/cjs/activities/index-dsl.js.map +1 -1
- package/lib/cjs/activities/resolveRemoteActivities.js +120 -0
- package/lib/cjs/activities/resolveRemoteActivities.js.map +1 -0
- package/lib/cjs/dsl/dsl-workflow.js +66 -6
- package/lib/cjs/dsl/dsl-workflow.js.map +1 -1
- package/lib/cjs/utils/storage.js +9 -9
- package/lib/cjs/utils/storage.js.map +1 -1
- package/lib/esm/activities/chunkDocument.js +1 -3
- package/lib/esm/activities/chunkDocument.js.map +1 -1
- package/lib/esm/activities/executeInteraction.js +18 -0
- package/lib/esm/activities/executeInteraction.js.map +1 -1
- package/lib/esm/activities/executeRemoteActivity.js +104 -0
- package/lib/esm/activities/executeRemoteActivity.js.map +1 -0
- package/lib/esm/activities/getObjectFromStore.js +12 -1
- package/lib/esm/activities/getObjectFromStore.js.map +1 -1
- package/lib/esm/activities/index-dsl.js +2 -1
- package/lib/esm/activities/index-dsl.js.map +1 -1
- package/lib/esm/activities/resolveRemoteActivities.js +117 -0
- package/lib/esm/activities/resolveRemoteActivities.js.map +1 -0
- package/lib/esm/dsl/dsl-workflow.js +66 -6
- package/lib/esm/dsl/dsl-workflow.js.map +1 -1
- package/lib/esm/utils/storage.js +9 -9
- package/lib/esm/utils/storage.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/activities/chunkDocument.d.ts.map +1 -1
- package/lib/types/activities/executeInteraction.d.ts.map +1 -1
- package/lib/types/activities/executeRemoteActivity.d.ts +31 -0
- package/lib/types/activities/executeRemoteActivity.d.ts.map +1 -0
- package/lib/types/activities/getObjectFromStore.d.ts.map +1 -1
- package/lib/types/activities/index-dsl.d.ts +3 -1
- package/lib/types/activities/index-dsl.d.ts.map +1 -1
- package/lib/types/activities/resolveRemoteActivities.d.ts +32 -0
- package/lib/types/activities/resolveRemoteActivities.d.ts.map +1 -0
- package/lib/types/dsl/dsl-workflow.d.ts.map +1 -1
- package/lib/types/utils/storage.d.ts +2 -2
- package/lib/types/utils/storage.d.ts.map +1 -1
- package/lib/workflows-bundle.js +625 -274
- package/package.json +6 -6
- package/src/activities/chunkDocument.ts +1 -3
- package/src/activities/executeInteraction.ts +17 -0
- package/src/activities/executeRemoteActivity.test.ts +140 -0
- package/src/activities/executeRemoteActivity.ts +133 -0
- package/src/activities/getObjectFromStore.ts +11 -1
- package/src/activities/index-dsl.ts +3 -1
- package/src/activities/resolveRemoteActivities.test.ts +220 -0
- package/src/activities/resolveRemoteActivities.ts +167 -0
- package/src/dsl/dsl-workflow.ts +87 -7
- package/src/utils/storage.ts +9 -8
- package/lib/cjs/activities/copyParentArtifacts.js +0 -127
- package/lib/cjs/activities/copyParentArtifacts.js.map +0 -1
- package/lib/esm/activities/copyParentArtifacts.js +0 -124
- package/lib/esm/activities/copyParentArtifacts.js.map +0 -1
- package/lib/types/activities/copyParentArtifacts.d.ts +0 -19
- package/lib/types/activities/copyParentArtifacts.d.ts.map +0 -1
- package/src/activities/copyParentArtifacts.ts +0 -162
package/lib/cjs/utils/storage.js
CHANGED
|
@@ -24,31 +24,31 @@ exports.agentStoragePath = agentStoragePath;
|
|
|
24
24
|
* @param mimeType
|
|
25
25
|
* @returns
|
|
26
26
|
*/
|
|
27
|
-
async function saveAgentArtifact(client, name, fileContent, mimeType = "application/json") {
|
|
28
|
-
const
|
|
27
|
+
async function saveAgentArtifact(client, name, fileContent, mimeType = "application/json", storageId) {
|
|
28
|
+
const id = storageId || (0, activity_1.activityInfo)().workflowExecution.runId;
|
|
29
29
|
const ext = mime_1.default.getExtension(mimeType);
|
|
30
30
|
if (!name) {
|
|
31
31
|
throw workflow_1.ApplicationFailure.nonRetryable(`Name is required`);
|
|
32
32
|
}
|
|
33
33
|
//create the file path and append extension if needed
|
|
34
|
-
const filePath = (0, exports.agentStoragePath)(
|
|
34
|
+
const filePath = (0, exports.agentStoragePath)(id) + "/" + name + (ext && !name.endsWith(ext) ? "." + ext : "");
|
|
35
35
|
try {
|
|
36
|
-
const source = new node_1.NodeStreamSource(fileContent, `${
|
|
36
|
+
const source = new node_1.NodeStreamSource(fileContent, `${id}-${(0, path_1.basename)(filePath)}`, mimeType, filePath);
|
|
37
37
|
return await client.files.uploadFile(source);
|
|
38
38
|
}
|
|
39
39
|
catch (err) {
|
|
40
|
-
activity_1.log.error(`Failed to save agent artifact for run ${
|
|
40
|
+
activity_1.log.error(`Failed to save agent artifact for run ${id}`, {
|
|
41
41
|
err,
|
|
42
42
|
file: filePath,
|
|
43
43
|
});
|
|
44
|
-
throw workflow_1.ApplicationFailure.nonRetryable(`Failed to save agent artifact for run ${
|
|
44
|
+
throw workflow_1.ApplicationFailure.nonRetryable(`Failed to save agent artifact for run ${id}`, "SaveAgentArtifactError", {
|
|
45
45
|
error: err,
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
async function fetchAgentArtifact(client, name) {
|
|
50
|
-
const
|
|
51
|
-
const filePath = (0, exports.agentStoragePath)(
|
|
49
|
+
async function fetchAgentArtifact(client, name, storageId) {
|
|
50
|
+
const id = storageId || (0, activity_1.activityInfo)().workflowExecution.runId;
|
|
51
|
+
const filePath = (0, exports.agentStoragePath)(id) + "/" + name;
|
|
52
52
|
return (0, blobs_js_1.fetchBlobAsBuffer)(client, filePath);
|
|
53
53
|
}
|
|
54
54
|
//# sourceMappingURL=storage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":";;;;;;AAsBA,
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/utils/storage.ts"],"names":[],"mappings":";;;;;;AAsBA,8CAgCC;AAED,gDAIC;AA5DD,mDAAyD;AACzD,mDAA0D;AAE1D,gDAAyD;AACzD,+BAAgC;AAEhC,gDAAwB;AACxB,gDAAsD;AAG/C,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;AAAxD,QAAA,gBAAgB,oBAAwC;AAErE;;;;;;;;;GASG;AACI,KAAK,UAAU,iBAAiB,CACnC,MAAsB,EACtB,IAAY,EACZ,WAAqB,EACrB,WAAmB,kBAAkB,EACrC,SAAkB;IAElB,MAAM,EAAE,GAAG,SAAS,IAAI,IAAA,uBAAY,GAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;IAC/D,MAAM,GAAG,GAAG,cAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,6BAAkB,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IAC9D,CAAC;IAED,qDAAqD;IACrD,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEnG,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,uBAAgB,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,IAAA,eAAQ,EAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACpG,OAAO,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAChB,cAAG,CAAC,KAAK,CAAC,yCAAyC,EAAE,EAAE,EAAE;YACrD,GAAG;YACH,IAAI,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,MAAM,6BAAkB,CAAC,YAAY,CACjC,yCAAyC,EAAE,EAAE,EAC7C,wBAAwB,EACxB;YACI,KAAK,EAAE,GAAG;SACb,CACJ,CAAC;IACN,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,MAAsB,EAAE,IAAY,EAAE,SAAkB;IAC7F,MAAM,EAAE,GAAG,SAAS,IAAI,IAAA,uBAAY,GAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC;IAC/D,MAAM,QAAQ,GAAG,IAAA,wBAAgB,EAAC,EAAE,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IACnD,OAAO,IAAA,4BAAiB,EAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC"}
|
|
@@ -95,9 +95,7 @@ export async function chunkDocument(payload) {
|
|
|
95
95
|
//delete previous parts
|
|
96
96
|
if (document.parts && document.parts.length > 0) {
|
|
97
97
|
log.info('Deleting previous parts for object ID: ' + objectId, { parts: document.parts });
|
|
98
|
-
await
|
|
99
|
-
await client.objects.delete(partId);
|
|
100
|
-
}));
|
|
98
|
+
await client.objects.delete(document.parts);
|
|
101
99
|
}
|
|
102
100
|
await client.objects.update(objectId, {
|
|
103
101
|
parts: partDocs.map(p => p.id),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunkDocument.js","sourceRoot":"","sources":["../../../src/activities/chunkDocument.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"chunkDocument.js","sourceRoot":"","sources":["../../../src/activities/chunkDocument.ts"],"names":[],"mappings":"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"}
|
|
@@ -106,6 +106,15 @@ export async function executeInteraction(payload) {
|
|
|
106
106
|
if (error.statusCode === 429 && params.exit_on_resource_exhaustion) {
|
|
107
107
|
throw new ResourceExhaustedError(error.statusCode, "Resource exhausted - rate limit exceeded");
|
|
108
108
|
}
|
|
109
|
+
else if (is4xxNonRetryable(error.status) || is4xxNonRetryable(error.statusCode) || is4xxNonRetryable(error.code) || error.retryable === false) {
|
|
110
|
+
// 4xx HTTP errors (except 429 rate-limit) are permanent client errors (e.g. model not found, invalid request).
|
|
111
|
+
// Errors explicitly marked as non-retryable (e.g. LlumiverseError) also fall here.
|
|
112
|
+
// They will not be resolved by retrying.
|
|
113
|
+
throw ApplicationFailure.create({
|
|
114
|
+
message: `Interaction Execution failed ${interactionName}: ${error.message}`,
|
|
115
|
+
nonRetryable: true,
|
|
116
|
+
});
|
|
117
|
+
}
|
|
109
118
|
else if (error.message.includes("Failed to validate merged prompt schema")) {
|
|
110
119
|
//issue with the input data, don't retry
|
|
111
120
|
throw new ActivityParamInvalidError("prompt_data", payload.activity, error.message);
|
|
@@ -214,4 +223,13 @@ export async function executeInteractionFromActivity(client, interactionName, pa
|
|
|
214
223
|
}
|
|
215
224
|
return res;
|
|
216
225
|
}
|
|
226
|
+
/**
|
|
227
|
+
* Returns true for 4xx status codes that indicate permanent client errors.
|
|
228
|
+
* 429 (Too Many Requests) is excluded because it is retryable.
|
|
229
|
+
*/
|
|
230
|
+
function is4xxNonRetryable(code) {
|
|
231
|
+
if (code === undefined || typeof code !== 'number')
|
|
232
|
+
return false;
|
|
233
|
+
return code >= 400 && code < 500 && code !== 429;
|
|
234
|
+
}
|
|
217
235
|
//# sourceMappingURL=executeInteraction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executeInteraction.js","sourceRoot":"","sources":["../../../src/activities/executeInteraction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executeInteraction.js","sourceRoot":"","sources":["../../../src/activities/executeInteraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { ApplicationFailure, log } from "@temporalio/activity";
|
|
2
|
+
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
3
|
+
/**
|
|
4
|
+
* Bridge activity that executes a remote activity on a tool server via HTTP POST.
|
|
5
|
+
*
|
|
6
|
+
* This activity is called by the DSL workflow engine when a step's name matches
|
|
7
|
+
* a remote activity (qualified as `app:<app_name>:<collection>:<activity>`). It POSTs a
|
|
8
|
+
* `RemoteActivityExecutionPayload` to the tool server and returns the result.
|
|
9
|
+
*
|
|
10
|
+
* Network errors throw retryable errors (so Temporal retries).
|
|
11
|
+
* Client errors (4xx) and activity-level errors throw non-retryable ApplicationFailure.
|
|
12
|
+
* Server errors (5xx) throw retryable errors.
|
|
13
|
+
*/
|
|
14
|
+
export async function executeRemoteActivity(payload) {
|
|
15
|
+
const ctx = await setupActivity(payload);
|
|
16
|
+
const { params, runId } = ctx;
|
|
17
|
+
const { url, activity_name, params: activityParams, app_install_id, app_settings } = params;
|
|
18
|
+
const executionPayload = {
|
|
19
|
+
activity_name,
|
|
20
|
+
params: activityParams,
|
|
21
|
+
metadata: {
|
|
22
|
+
run_id: runId,
|
|
23
|
+
app_install_id,
|
|
24
|
+
app_settings,
|
|
25
|
+
endpoints: payload.config ? {
|
|
26
|
+
studio: payload.config.studio_url,
|
|
27
|
+
store: payload.config.store_url,
|
|
28
|
+
} : undefined,
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
let response;
|
|
32
|
+
try {
|
|
33
|
+
response = await fetch(url, {
|
|
34
|
+
method: "POST",
|
|
35
|
+
headers: {
|
|
36
|
+
"Content-Type": "application/json",
|
|
37
|
+
"Accept": "application/json",
|
|
38
|
+
"Authorization": `Bearer ${payload.auth_token}`,
|
|
39
|
+
},
|
|
40
|
+
body: JSON.stringify(executionPayload),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
catch (err) {
|
|
44
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
45
|
+
log.warn("Failed to reach remote activity endpoint", {
|
|
46
|
+
error: message, activity: activity_name, endpoint: url, runId, app_install_id,
|
|
47
|
+
});
|
|
48
|
+
// Network-level failure — let Temporal retry
|
|
49
|
+
throw new Error(`Failed to reach remote activity endpoint (activity: ${activity_name}, endpoint: ${url}): ${message}`);
|
|
50
|
+
}
|
|
51
|
+
const responseText = await response.text();
|
|
52
|
+
if (!response.ok) {
|
|
53
|
+
let errorMessage = `HTTP ${response.status} ${response.statusText}`;
|
|
54
|
+
try {
|
|
55
|
+
const errorJson = JSON.parse(responseText);
|
|
56
|
+
if (errorJson.error) {
|
|
57
|
+
errorMessage = errorJson.error;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Not JSON — use the status line
|
|
62
|
+
}
|
|
63
|
+
log.warn("Remote activity returned HTTP error", {
|
|
64
|
+
activity: activity_name, endpoint: url, status: response.status, runId, app_install_id,
|
|
65
|
+
responsePreview: responseText.slice(0, 500),
|
|
66
|
+
});
|
|
67
|
+
const msg = `Remote activity ${activity_name} failed: ${errorMessage}`;
|
|
68
|
+
// 4xx errors are client/configuration errors — don't retry
|
|
69
|
+
if (response.status >= 400 && response.status < 500) {
|
|
70
|
+
throw ApplicationFailure.create({
|
|
71
|
+
message: msg,
|
|
72
|
+
nonRetryable: true,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
// 5xx errors are server errors — let Temporal retry
|
|
76
|
+
throw new Error(msg);
|
|
77
|
+
}
|
|
78
|
+
let responseJson;
|
|
79
|
+
try {
|
|
80
|
+
responseJson = JSON.parse(responseText);
|
|
81
|
+
}
|
|
82
|
+
catch (err) {
|
|
83
|
+
const preview = responseText.length > 200 ? responseText.slice(0, 200) + '...' : responseText;
|
|
84
|
+
log.warn("Invalid JSON response from remote activity", {
|
|
85
|
+
activity: activity_name, endpoint: url, runId, app_install_id,
|
|
86
|
+
responsePreview: preview,
|
|
87
|
+
});
|
|
88
|
+
throw ApplicationFailure.create({
|
|
89
|
+
message: `Remote activity ${activity_name} returned invalid JSON: ${preview}`,
|
|
90
|
+
nonRetryable: true,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
if (responseJson.is_error) {
|
|
94
|
+
log.warn("Remote activity returned error", {
|
|
95
|
+
activity: activity_name, endpoint: url, error: responseJson.error, runId, app_install_id,
|
|
96
|
+
});
|
|
97
|
+
throw ApplicationFailure.create({
|
|
98
|
+
message: `Remote activity ${activity_name}: ${responseJson.error}`,
|
|
99
|
+
nonRetryable: true,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
return responseJson.result;
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=executeRemoteActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeRemoteActivity.js","sourceRoot":"","sources":["../../../src/activities/executeRemoteActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAM/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAoBhE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACvC,OAAiE;IAEjE,MAAM,GAAG,GAAG,MAAM,aAAa,CAA8B,OAAO,CAAC,CAAC;IACtE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;IAC9B,MAAM,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,GAAG,MAAM,CAAC;IAE5F,MAAM,gBAAgB,GAAmC;QACrD,aAAa;QACb,MAAM,EAAE,cAAc;QACtB,QAAQ,EAAE;YACN,MAAM,EAAE,KAAK;YACb,cAAc;YACd,YAAY;YACZ,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU;gBACjC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS;aAClC,CAAC,CAAC,CAAC,SAAS;SAChB;KACJ,CAAC;IAEF,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACD,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,kBAAkB;gBAClC,QAAQ,EAAE,kBAAkB;gBAC5B,eAAe,EAAE,UAAU,OAAO,CAAC,UAAU,EAAE;aAClD;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;SACzC,CAAC,CAAC;IACP,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE;YACjD,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc;SAChF,CAAC,CAAC;QACH,6CAA6C;QAC7C,MAAM,IAAI,KAAK,CAAC,uDAAuD,aAAa,eAAe,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;IAC3H,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,IAAI,YAAY,GAAG,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;QACpE,IAAI,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAoC,CAAC;YAC9E,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC;YACnC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACL,iCAAiC;QACrC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,qCAAqC,EAAE;YAC5C,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,cAAc;YACtF,eAAe,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;SAC9C,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,mBAAmB,aAAa,YAAY,YAAY,EAAE,CAAC;QACvE,2DAA2D;QAC3D,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAClD,MAAM,kBAAkB,CAAC,MAAM,CAAC;gBAC5B,OAAO,EAAE,GAAG;gBACZ,YAAY,EAAE,IAAI;aACrB,CAAC,CAAC;QACP,CAAC;QACD,oDAAoD;QACpD,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,YAA6C,CAAC;IAClD,IAAI,CAAC;QACD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9F,GAAG,CAAC,IAAI,CAAC,4CAA4C,EAAE;YACnD,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,cAAc;YAC7D,eAAe,EAAE,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,mBAAmB,aAAa,2BAA2B,OAAO,EAAE;YAC7E,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;IAED,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;QACxB,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE;YACvC,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc;SAC3F,CAAC,CAAC;QACH,MAAM,kBAAkB,CAAC,MAAM,CAAC;YAC5B,OAAO,EAAE,mBAAmB,aAAa,KAAK,YAAY,CAAC,KAAK,EAAE;YAClE,YAAY,EAAE,IAAI;SACrB,CAAC,CAAC;IACP,CAAC;IAED,OAAO,YAAY,CAAC,MAAM,CAAC;AAC/B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DocumentNotFoundError } from "../errors.js";
|
|
1
2
|
import { projectResult } from "../dsl/projections.js";
|
|
2
3
|
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
3
4
|
/**
|
|
@@ -7,7 +8,17 @@ import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
|
7
8
|
*/
|
|
8
9
|
export async function getObjectFromStore(payload) {
|
|
9
10
|
const { client, params, objectId } = await setupActivity(payload);
|
|
10
|
-
|
|
11
|
+
let obj;
|
|
12
|
+
try {
|
|
13
|
+
obj = await client.objects.retrieve(objectId, params.select);
|
|
14
|
+
}
|
|
15
|
+
catch (err) {
|
|
16
|
+
const status = err && typeof err === 'object' && 'status' in err ? err.status : 0;
|
|
17
|
+
if (status >= 400 && status < 500 && status !== 429) {
|
|
18
|
+
throw new DocumentNotFoundError(`Object retrieval failed (${status}): ${objectId}`, [objectId]);
|
|
19
|
+
}
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
11
22
|
const projection = projectResult(payload, params, obj, obj);
|
|
12
23
|
return {
|
|
13
24
|
...projection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getObjectFromStore.js","sourceRoot":"","sources":["../../../src/activities/getObjectFromStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAWhE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAqD;IAC1F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAkB,OAAO,CAAC,CAAC;IAEnF,
|
|
1
|
+
{"version":3,"file":"getObjectFromStore.js","sourceRoot":"","sources":["../../../src/activities/getObjectFromStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAWhE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAqD;IAC1F,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAkB,OAAO,CAAC,CAAC;IAEnF,IAAI,GAAkB,CAAC;IACvB,IAAI,CAAC;QACD,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,QAAQ,IAAI,GAAG,CAAC,CAAC,CAAE,GAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1G,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YAClD,MAAM,IAAI,qBAAqB,CAAC,4BAA4B,MAAM,MAAM,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,GAAG,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAE5D,OAAO;QACH,GAAG,UAAU;QACb,EAAE,EAAE,GAAG,CAAC,EAAE;KACb,CAAA;AAEL,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Export here DSL activities
|
|
2
|
+
export { executeRemoteActivity } from "./executeRemoteActivity.js";
|
|
3
|
+
export { resolveRemoteActivities } from "./resolveRemoteActivities.js";
|
|
2
4
|
export { createDocumentTypeFromInteractionRun } from "./advanced/createDocumentTypeFromInteractionRun.js";
|
|
3
5
|
export { createOrUpdateDocumentFromInteractionRun } from "./advanced/createOrUpdateDocumentFromInteractionRun.js";
|
|
4
6
|
export { updateDocumentFromInteractionRun } from "./advanced/updateDocumentFromInteractionRun.js";
|
|
5
7
|
export { chunkDocument } from "./chunkDocument.js";
|
|
6
|
-
export { copyParentArtifacts } from "./copyParentArtifacts.js";
|
|
7
8
|
export { createPdfDocumentFromSource } from "./createDocumentFromOther.js";
|
|
8
9
|
export { executeInteraction } from "./executeInteraction.js";
|
|
9
10
|
export { extractDocumentText } from "./extractDocumentText.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-dsl.js","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index-dsl.js","sourceRoot":"","sources":["../../../src/activities/index-dsl.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,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,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,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,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,117 @@
|
|
|
1
|
+
import { log } from "@temporalio/activity";
|
|
2
|
+
import { setupActivity } from "../dsl/setup/ActivityContext.js";
|
|
3
|
+
/** Prefix identifying a remote activity name in DSL workflow steps */
|
|
4
|
+
const REMOTE_ACTIVITY_PREFIX = "app:";
|
|
5
|
+
/**
|
|
6
|
+
* Resolves remote activities from all installed apps that have the `tools` capability.
|
|
7
|
+
* For each app with an endpoint, fetches `?scope=activities` to discover available activities.
|
|
8
|
+
* Returns a map keyed by qualified names (`app:<app_name>:<collection>:<activity_name>`).
|
|
9
|
+
*/
|
|
10
|
+
export async function resolveRemoteActivities(payload) {
|
|
11
|
+
const ctx = await setupActivity(payload);
|
|
12
|
+
const { client } = ctx;
|
|
13
|
+
const map = {};
|
|
14
|
+
let installations;
|
|
15
|
+
try {
|
|
16
|
+
installations = await client.apps.getInstalledApps("tools");
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
20
|
+
log.warn("Failed to fetch installed apps for remote activities", { error: message });
|
|
21
|
+
return map;
|
|
22
|
+
}
|
|
23
|
+
for (const install of installations) {
|
|
24
|
+
const manifest = install.manifest;
|
|
25
|
+
if (!manifest.endpoint) {
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
try {
|
|
29
|
+
const pkg = await fetchActivitiesPackage(manifest.endpoint, payload.auth_token);
|
|
30
|
+
if (!pkg.activities || pkg.activities.length === 0) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
for (const activity of pkg.activities) {
|
|
34
|
+
const collection = activity.collection;
|
|
35
|
+
if (!collection) {
|
|
36
|
+
log.warn("Remote activity missing collection, skipping", {
|
|
37
|
+
app: manifest.name,
|
|
38
|
+
activity: activity.name,
|
|
39
|
+
});
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
// Build qualified name: app:<app_name>:<collection>:<activity_name>
|
|
43
|
+
const qualifiedName = `${REMOTE_ACTIVITY_PREFIX}${manifest.name}:${collection}:${activity.name}`;
|
|
44
|
+
if (map[qualifiedName]) {
|
|
45
|
+
log.warn("Duplicate remote activity name, skipping", {
|
|
46
|
+
qualifiedName,
|
|
47
|
+
existingApp: map[qualifiedName].app_name,
|
|
48
|
+
newApp: manifest.name,
|
|
49
|
+
});
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
// Resolve the activity execution URL (collection-specific endpoint)
|
|
53
|
+
const activityUrl = resolveActivityUrl(manifest.endpoint, activity, collection);
|
|
54
|
+
map[qualifiedName] = {
|
|
55
|
+
url: activityUrl,
|
|
56
|
+
activity_name: activity.name,
|
|
57
|
+
app_install_id: install.id,
|
|
58
|
+
app_name: manifest.name,
|
|
59
|
+
app_settings: install.settings,
|
|
60
|
+
definition: activity,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
log.info("Resolved remote activities from app", {
|
|
64
|
+
app: manifest.name,
|
|
65
|
+
count: pkg.activities.length,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (err) {
|
|
69
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
70
|
+
log.warn("Failed to fetch activities from app, skipping", {
|
|
71
|
+
app: manifest.name,
|
|
72
|
+
endpoint: manifest.endpoint,
|
|
73
|
+
error: message,
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return map;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Fetches the activities scope from a tool server package endpoint.
|
|
81
|
+
*/
|
|
82
|
+
async function fetchActivitiesPackage(endpoint, authToken) {
|
|
83
|
+
const url = new URL(endpoint);
|
|
84
|
+
url.searchParams.set('scope', 'activities');
|
|
85
|
+
const response = await fetch(url.toString(), {
|
|
86
|
+
method: 'GET',
|
|
87
|
+
headers: {
|
|
88
|
+
'Accept': 'application/json',
|
|
89
|
+
'Authorization': `Bearer ${authToken}`,
|
|
90
|
+
},
|
|
91
|
+
signal: AbortSignal.timeout(5000),
|
|
92
|
+
});
|
|
93
|
+
if (!response.ok) {
|
|
94
|
+
throw new Error(`HTTP ${response.status} ${response.statusText}`);
|
|
95
|
+
}
|
|
96
|
+
return response.json();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Resolves the execution URL for a remote activity.
|
|
100
|
+
* If the activity has a `url` field, resolve it relative to the endpoint base.
|
|
101
|
+
* Otherwise, use the collection-specific activities endpoint: `/api/activities/{collection}`.
|
|
102
|
+
*/
|
|
103
|
+
function resolveActivityUrl(endpoint, activity, collection) {
|
|
104
|
+
if (activity.url) {
|
|
105
|
+
// Absolute URLs are used as-is
|
|
106
|
+
if (activity.url.startsWith('http://') || activity.url.startsWith('https://')) {
|
|
107
|
+
return activity.url;
|
|
108
|
+
}
|
|
109
|
+
// Resolve relative URLs against the endpoint's base path (not just origin)
|
|
110
|
+
return new URL(activity.url, endpoint).toString();
|
|
111
|
+
}
|
|
112
|
+
// Default: POST to the collection-specific activities endpoint
|
|
113
|
+
const base = new URL(endpoint);
|
|
114
|
+
const activitiesPath = base.pathname.replace(/\/package\/?$/, `/activities/${collection}`);
|
|
115
|
+
return new URL(activitiesPath, base.origin).toString();
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=resolveRemoteActivities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveRemoteActivities.js","sourceRoot":"","sources":["../../../src/activities/resolveRemoteActivities.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ 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";
|
|
6
|
+
/** Prefix identifying a remote activity name in DSL workflow steps */
|
|
7
|
+
const REMOTE_ACTIVITY_PREFIX = "app:";
|
|
6
8
|
function dslActivityPayload(basePayload, activity, params) {
|
|
7
9
|
return {
|
|
8
10
|
...basePayload,
|
|
@@ -75,6 +77,23 @@ export async function dslWorkflow(payload) {
|
|
|
75
77
|
file: files[0],
|
|
76
78
|
});
|
|
77
79
|
log.info("Executing workflow", { payload });
|
|
80
|
+
// Resolve remote activities from installed apps only if the workflow uses prefixed activity names
|
|
81
|
+
let remoteActivities = {};
|
|
82
|
+
if (patched('dsl-remote-activities') && hasRemoteActivitySteps(definition)) {
|
|
83
|
+
try {
|
|
84
|
+
const resolvePayload = dslActivityPayload(basePayload, { name: 'resolveRemoteActivities' }, {});
|
|
85
|
+
remoteActivities = await defaultProxy.resolveRemoteActivities(resolvePayload);
|
|
86
|
+
if (Object.keys(remoteActivities).length > 0) {
|
|
87
|
+
log.info("Resolved remote activities", {
|
|
88
|
+
count: Object.keys(remoteActivities).length,
|
|
89
|
+
names: Object.keys(remoteActivities),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
log.warn("Failed to resolve remote activities, continuing without them", { error: e.message });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
78
97
|
// TODO(mhuang): remove patch when all workflows are migrated to v2
|
|
79
98
|
// It avoids breaking the ongoing workflow execution running in v1 and also allows us to
|
|
80
99
|
// deploy the new error handler in production.
|
|
@@ -82,7 +101,7 @@ export async function dslWorkflow(payload) {
|
|
|
82
101
|
if (patched('dsl-workflow-error-handling')) {
|
|
83
102
|
// v2: new version with error handler
|
|
84
103
|
try {
|
|
85
|
-
await executeSteps(definition, payload, basePayload, vars, defaultProxy, defaultOptions);
|
|
104
|
+
await executeSteps(definition, payload, basePayload, vars, defaultProxy, defaultOptions, remoteActivities);
|
|
86
105
|
}
|
|
87
106
|
catch (e) {
|
|
88
107
|
await handleError(e, basePayload, defaultOptions);
|
|
@@ -90,11 +109,11 @@ export async function dslWorkflow(payload) {
|
|
|
90
109
|
}
|
|
91
110
|
else {
|
|
92
111
|
// v1: old version without error handler, deprecated since v0.52.0
|
|
93
|
-
await executeSteps(definition, payload, basePayload, vars, defaultProxy, defaultOptions);
|
|
112
|
+
await executeSteps(definition, payload, basePayload, vars, defaultProxy, defaultOptions, remoteActivities);
|
|
94
113
|
}
|
|
95
114
|
return vars.getValue(definition.result || 'result');
|
|
96
115
|
}
|
|
97
|
-
async function executeSteps(definition, payload, basePayload, vars, defaultProxy, defaultOptions) {
|
|
116
|
+
async function executeSteps(definition, payload, basePayload, vars, defaultProxy, defaultOptions, remoteActivities = {}) {
|
|
98
117
|
if (definition.steps) {
|
|
99
118
|
for (const step of definition.steps) {
|
|
100
119
|
const stepType = step.type;
|
|
@@ -108,19 +127,28 @@ async function executeSteps(definition, payload, basePayload, vars, defaultProxy
|
|
|
108
127
|
}
|
|
109
128
|
}
|
|
110
129
|
else { // activity
|
|
111
|
-
await runActivity(step, basePayload, vars, defaultProxy, defaultOptions);
|
|
130
|
+
await runActivity(step, basePayload, vars, defaultProxy, defaultOptions, remoteActivities);
|
|
112
131
|
}
|
|
113
132
|
}
|
|
114
133
|
}
|
|
115
134
|
else if (definition.activities) { // legacy support
|
|
116
135
|
for (const activity of definition.activities) {
|
|
117
|
-
await runActivity(activity, basePayload, vars, defaultProxy, defaultOptions);
|
|
136
|
+
await runActivity(activity, basePayload, vars, defaultProxy, defaultOptions, remoteActivities);
|
|
118
137
|
}
|
|
119
138
|
}
|
|
120
139
|
else {
|
|
121
140
|
throw new Error("No steps or activities found in the workflow definition");
|
|
122
141
|
}
|
|
123
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Check whether any activity step in the workflow definition uses a remote activity name
|
|
145
|
+
* (starts with `app:`), indicating it may reference a remote activity.
|
|
146
|
+
* Avoids resolving remote activities when not needed.
|
|
147
|
+
*/
|
|
148
|
+
function hasRemoteActivitySteps(definition) {
|
|
149
|
+
const steps = definition.steps || definition.activities || [];
|
|
150
|
+
return steps.some(step => 'name' in step && step.name?.startsWith(REMOTE_ACTIVITY_PREFIX));
|
|
151
|
+
}
|
|
124
152
|
async function handleError(originalError, basePayload, defaultOptions) {
|
|
125
153
|
const { handleDslError } = proxyActivities(defaultOptions);
|
|
126
154
|
const payload = dslActivityPayload(basePayload, {
|
|
@@ -257,7 +285,7 @@ function buildRateLimitParams(activity, executionPayload) {
|
|
|
257
285
|
modelId: params.model,
|
|
258
286
|
};
|
|
259
287
|
}
|
|
260
|
-
async function runActivity(activity, basePayload, vars, defaultProxy, defaultOptions) {
|
|
288
|
+
async function runActivity(activity, basePayload, vars, defaultProxy, defaultOptions, remoteActivities = {}) {
|
|
261
289
|
if (basePayload.debug_mode) {
|
|
262
290
|
log.debug(`Workflow vars before executing activity ${activity.name}`, { vars: vars.resolve() });
|
|
263
291
|
}
|
|
@@ -287,6 +315,38 @@ async function runActivity(activity, basePayload, vars, defaultProxy, defaultOpt
|
|
|
287
315
|
// hack: do nothing, remove later
|
|
288
316
|
// https://github.com/vertesia/composableai/pull/544/files
|
|
289
317
|
}
|
|
318
|
+
// Check if this is a remote activity (name starts with "app:")
|
|
319
|
+
if (activity.name.startsWith(REMOTE_ACTIVITY_PREFIX)) {
|
|
320
|
+
if (!remoteActivities[activity.name]) {
|
|
321
|
+
throw new Error(`Remote activity "${activity.name}" not found. ` +
|
|
322
|
+
`Available: ${Object.keys(remoteActivities).join(', ') || '(none resolved)'}`);
|
|
323
|
+
}
|
|
324
|
+
const remote = remoteActivities[activity.name];
|
|
325
|
+
log.info("Executing remote activity", {
|
|
326
|
+
activityName: activity.name,
|
|
327
|
+
remoteName: remote.activity_name,
|
|
328
|
+
app: remote.app_name,
|
|
329
|
+
url: remote.url,
|
|
330
|
+
});
|
|
331
|
+
const remotePayload = dslActivityPayload(basePayload, activity, {
|
|
332
|
+
url: remote.url,
|
|
333
|
+
activity_name: remote.activity_name,
|
|
334
|
+
// Merge imported vars with static activity params, then resolve expressions
|
|
335
|
+
// (same merge pattern used by local activities — see buildRateLimitParams)
|
|
336
|
+
params: new Vars({ ...importParams, ...activity.params }).resolve(),
|
|
337
|
+
app_install_id: remote.app_install_id,
|
|
338
|
+
app_name: remote.app_name,
|
|
339
|
+
app_settings: remote.app_settings,
|
|
340
|
+
});
|
|
341
|
+
const result = await proxy.executeRemoteActivity(remotePayload);
|
|
342
|
+
if (activity.output) {
|
|
343
|
+
vars.setValue(activity.output, result);
|
|
344
|
+
}
|
|
345
|
+
if (basePayload.debug_mode) {
|
|
346
|
+
log.debug(`Workflow vars after executing remote activity ${activity.name}`, { vars: vars.resolve() });
|
|
347
|
+
}
|
|
348
|
+
return;
|
|
349
|
+
}
|
|
290
350
|
// call rate limiter depending on the activity type
|
|
291
351
|
const rateLimitedActivities = [
|
|
292
352
|
"chunkDocument",
|