@hexabot-ai/api 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/extensions/actions/workflow/call-workflow.action.js +8 -1
  2. package/dist/extensions/actions/workflow/call-workflow.action.js.map +1 -1
  3. package/dist/i18n/controllers/translation.controller.d.ts +1 -1
  4. package/dist/i18n/controllers/translation.controller.js +1 -9
  5. package/dist/i18n/controllers/translation.controller.js.map +1 -1
  6. package/dist/i18n/services/translation.service.d.ts +5 -1
  7. package/dist/i18n/services/translation.service.js +32 -3
  8. package/dist/i18n/services/translation.service.js.map +1 -1
  9. package/dist/static/assets/{cssMode-CibBXGrW.js → cssMode-CTDhIT4t.js} +1 -1
  10. package/dist/static/assets/{freemarker2-7NvEeTKe.js → freemarker2-BQcaYGI2.js} +1 -1
  11. package/dist/static/assets/{handlebars-BbfYBNXO.js → handlebars-DuL1mZMF.js} +1 -1
  12. package/dist/static/assets/{html-DLG6BvlD.js → html-fPJhGTqL.js} +1 -1
  13. package/dist/static/assets/{htmlMode-iXpl7d5V.js → htmlMode-CVt2Ny6I.js} +1 -1
  14. package/dist/static/assets/{index-BPjGVz_f.js → index-DORU_Bbk.js} +3 -3
  15. package/dist/static/assets/{javascript-BuG8vffM.js → javascript-BXwN7Yr-.js} +1 -1
  16. package/dist/static/assets/{jsonMode-DP5Vig9S.js → jsonMode-Cyah7SwA.js} +1 -1
  17. package/dist/static/assets/{liquid-CRTQV_4V.js → liquid-Cv7SFaQr.js} +1 -1
  18. package/dist/static/assets/{lspLanguageFeatures-BnMkhqT9.js → lspLanguageFeatures-Db4XZEv3.js} +1 -1
  19. package/dist/static/assets/{mdx-CQ43QJie.js → mdx-ogt0iyFh.js} +1 -1
  20. package/dist/static/assets/{python-CQ9HRuTn.js → python-DAn9awcR.js} +1 -1
  21. package/dist/static/assets/{razor-BY29I0xJ.js → razor-Cq1R70GF.js} +1 -1
  22. package/dist/static/assets/{tsMode-DnpMBMFq.js → tsMode-DIxEz3Ke.js} +1 -1
  23. package/dist/static/assets/{typescript-BrYZsZrw.js → typescript-D8I422tf.js} +1 -1
  24. package/dist/static/assets/{xml-DbNzxxky.js → xml-BaHc4b06.js} +1 -1
  25. package/dist/static/assets/{yaml-LdVsxyvH.js → yaml-DYl3ZNzt.js} +1 -1
  26. package/dist/static/index.html +1 -1
  27. package/dist/tsconfig.build.tsbuildinfo +1 -1
  28. package/dist/workflow/services/agentic.service.d.ts +3 -0
  29. package/dist/workflow/services/agentic.service.js +61 -0
  30. package/dist/workflow/services/agentic.service.js.map +1 -1
  31. package/dist/workflow/types.d.ts +1 -0
  32. package/dist/workflow/types.js +2 -1
  33. package/dist/workflow/types.js.map +1 -1
  34. package/package.json +4 -4
  35. package/src/extensions/actions/workflow/call-workflow.action.ts +17 -2
  36. package/src/i18n/controllers/translation.controller.ts +5 -21
  37. package/src/i18n/services/translation.service.ts +60 -2
  38. package/src/workflow/services/agentic.service.ts +117 -0
  39. package/src/workflow/types.ts +6 -0
@@ -27,6 +27,9 @@ export declare class AgenticService implements WorkflowCallService {
27
27
  private createRun;
28
28
  private assertCanCallWorkflow;
29
29
  private toCallWorkflowResult;
30
+ private findReplayedChildRun;
31
+ private isReplayingRecordedSuspension;
32
+ private toPersistedCallWorkflowResult;
30
33
  private resumeParentRunFromChild;
31
34
  private resolveRunId;
32
35
  private resolveRunDefinition;
@@ -19,6 +19,7 @@ const i18n_service_1 = require("../../i18n/services/i18n.service");
19
19
  const logger_service_1 = require("../../logger/logger.service");
20
20
  const workflow_context_factory_1 = require("../contexts/workflow-context-factory");
21
21
  const workflow_definition_1 = require("../lib/workflow-definition");
22
+ const types_1 = require("../types");
22
23
  const workflow_run_service_1 = require("./workflow-run.service");
23
24
  const workflow_service_1 = require("./workflow.service");
24
25
  const MAX_CALL_STACK_DEPTH = 10;
@@ -94,6 +95,15 @@ let AgenticService = class AgenticService {
94
95
  if (!parentRun) {
95
96
  throw new Error(`Unable to load parent workflow run ${parentContext.workflowRunId}`);
96
97
  }
98
+ const replayedChildRun = await this.findReplayedChildRun(parentRun, workflowId, parentContext);
99
+ if (replayedChildRun) {
100
+ this.logger.log('Reusing recorded child workflow run during parent replay', {
101
+ parentRunId: parentRun.id,
102
+ childRunId: replayedChildRun.id,
103
+ workflowId,
104
+ });
105
+ return this.toPersistedCallWorkflowResult(replayedChildRun);
106
+ }
97
107
  const workflow = await this.workflowService.findOneAndPopulate(workflowId);
98
108
  if (!workflow) {
99
109
  throw new Error(`Workflow with ID ${workflowId} not found`);
@@ -307,6 +317,57 @@ let AgenticService = class AgenticService {
307
317
  error: this.stringifyError(result.error),
308
318
  };
309
319
  }
320
+ async findReplayedChildRun(parentRun, workflowId, parentContext) {
321
+ if (!this.isReplayingRecordedSuspension(parentContext)) {
322
+ return null;
323
+ }
324
+ if (parentRun.suspensionReason !== types_1.AWAITING_CHILD_WORKFLOW_REASON) {
325
+ return null;
326
+ }
327
+ const suspensionData = parentRun.suspensionData;
328
+ if (suspensionData?.workflow_id !== workflowId ||
329
+ typeof suspensionData.workflow_run_id !== 'string') {
330
+ return null;
331
+ }
332
+ const childRun = await this.workflowRunService.findOneAndPopulate(suspensionData.workflow_run_id);
333
+ if (!childRun ||
334
+ this.resolveRunId(childRun.parentRun) !== parentRun.id ||
335
+ childRun.workflow.id !== workflowId) {
336
+ return null;
337
+ }
338
+ return childRun;
339
+ }
340
+ isReplayingRecordedSuspension(parentContext) {
341
+ try {
342
+ return parentContext.workflow.hasRecordedResult();
343
+ }
344
+ catch {
345
+ return false;
346
+ }
347
+ }
348
+ toPersistedCallWorkflowResult(run) {
349
+ if (run.status === 'finished') {
350
+ return {
351
+ status: 'finished',
352
+ workflow_id: run.workflow.id,
353
+ workflow_run_id: run.id,
354
+ output: run.output ?? {},
355
+ };
356
+ }
357
+ if (run.status === 'failed') {
358
+ return {
359
+ status: 'failed',
360
+ workflow_id: run.workflow.id,
361
+ workflow_run_id: run.id,
362
+ error: run.error ?? 'Child workflow run failed',
363
+ };
364
+ }
365
+ return {
366
+ status: 'suspended',
367
+ workflow_id: run.workflow.id,
368
+ workflow_run_id: run.id,
369
+ };
370
+ }
310
371
  async resumeParentRunFromChild(childRun, result, event) {
311
372
  if (result.status === 'suspended') {
312
373
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"agentic.service.js","sourceRoot":"","sources":["../../../src/workflow/services/agentic.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agentic.service.js","sourceRoot":"","sources":["../../../src/workflow/services/agentic.service.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { SchemaInstance } from './utils/schema-instance';
6
6
  export { DirectionType, McpServerTransport, MemoryScope, WorkflowType, WorkflowVersionAction, };
7
7
  export type MemoryValue = Record<string, unknown>;
8
8
  export type WorkflowResult = WorkflowStartResult | WorkflowResumeResult;
9
+ export declare const AWAITING_CHILD_WORKFLOW_REASON = "awaiting_child_workflow";
9
10
  export type CallWorkflowFinishedResult = {
10
11
  status: 'finished';
11
12
  workflow_id: string;
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WORKFLOW_CALL_SERVICE = exports.WorkflowVersionAction = exports.WorkflowType = exports.MemoryScope = exports.McpServerTransport = exports.DirectionType = void 0;
3
+ exports.WORKFLOW_CALL_SERVICE = exports.AWAITING_CHILD_WORKFLOW_REASON = exports.WorkflowVersionAction = exports.WorkflowType = exports.MemoryScope = exports.McpServerTransport = exports.DirectionType = void 0;
4
4
  const types_1 = require("@hexabot-ai/types");
5
5
  Object.defineProperty(exports, "DirectionType", { enumerable: true, get: function () { return types_1.DirectionType; } });
6
6
  Object.defineProperty(exports, "McpServerTransport", { enumerable: true, get: function () { return types_1.McpServerTransport; } });
7
7
  Object.defineProperty(exports, "MemoryScope", { enumerable: true, get: function () { return types_1.MemoryScope; } });
8
8
  Object.defineProperty(exports, "WorkflowType", { enumerable: true, get: function () { return types_1.WorkflowType; } });
9
9
  Object.defineProperty(exports, "WorkflowVersionAction", { enumerable: true, get: function () { return types_1.WorkflowVersionAction; } });
10
+ exports.AWAITING_CHILD_WORKFLOW_REASON = 'awaiting_child_workflow';
10
11
  exports.WORKFLOW_CALL_SERVICE = Symbol('WORKFLOW_CALL_SERVICE');
11
12
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":";;;AAYA,6CAS2B;AAOzB,8FAfA,qBAAa,OAeA;AACb,mGAfA,0BAAkB,OAeA;AAClB,4FAfA,mBAAW,OAeA;AACX,6FAfA,oBAAY,OAeA;AACZ,sGAfA,6BAAqB,OAeA;AAkDV,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/workflow/types.ts"],"names":[],"mappings":";;;AAYA,6CAS2B;AAOzB,8FAfA,qBAAa,OAeA;AACb,mGAfA,0BAAkB,OAeA;AAClB,4FAfA,mBAAW,OAeA;AACX,6FAfA,oBAAY,OAeA;AACZ,sGAfA,6BAAqB,OAeA;AAWV,QAAA,8BAA8B,GAAG,yBAAyB,CAAC;AA6C3D,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hexabot-ai/api",
3
3
  "private": false,
4
- "version": "3.3.2",
4
+ "version": "3.3.3",
5
5
  "description": "Hexabot is a solution for creating and managing chatbots across multiple channels, leveraging AI for advanced conversational capabilities. It provides a user-friendly interface for building, training, and deploying chatbots with integrated support for various messaging platforms.",
6
6
  "author": "Hexastack",
7
7
  "license": "FCL-1.0-ALv2",
@@ -93,8 +93,8 @@
93
93
  "typeorm": "^0.3.29",
94
94
  "yaml": "^2.8.3",
95
95
  "zod": "^4.3.6",
96
- "@hexabot-ai/agentic": "3.2.2",
97
- "@hexabot-ai/types": "3.1.2"
96
+ "@hexabot-ai/agentic": "3.2.3",
97
+ "@hexabot-ai/types": "3.1.3"
98
98
  },
99
99
  "devDependencies": {
100
100
  "@compodoc/compodoc": "^1.2.1",
@@ -143,7 +143,7 @@
143
143
  "tsconfig-paths": "^4.2.0",
144
144
  "tsconfig-paths-jest": "^0.0.1",
145
145
  "typescript": "^5.8.3",
146
- "@hexabot-ai/frontend": "3.3.2"
146
+ "@hexabot-ai/frontend": "3.3.3"
147
147
  },
148
148
  "optionalDependencies": {
149
149
  "@css-inline/css-inline-linux-arm64-musl": "^0.14.1",
@@ -10,7 +10,10 @@ import { z } from 'zod';
10
10
  import { createAction } from '@/actions/create-action';
11
11
  import { WorkflowRuntimeContext } from '@/workflow/contexts/workflow-runtime.context';
12
12
  import { workflowResourceRef } from '@/workflow/resource-refs';
13
- import { CallWorkflowResult } from '@/workflow/types';
13
+ import {
14
+ AWAITING_CHILD_WORKFLOW_REASON,
15
+ CallWorkflowResult,
16
+ } from '@/workflow/types';
14
17
 
15
18
  const callWorkflowInputSchema = z.object({
16
19
  workflow_id: z.uuid().meta({
@@ -81,6 +84,18 @@ export const CallWorkflowAction = createAction<
81
84
  inputSchema: callWorkflowInputSchema,
82
85
  outputSchema: callWorkflowFinishedSchema,
83
86
  async execute({ input, context }) {
87
+ // Deterministic replay re-executes this action when the parent resumes
88
+ // after the child completed. The child was already spawned by the original
89
+ // execution, so skip the spawn and let suspend() return the recorded
90
+ // child payload immediately.
91
+ if (context.workflow.hasRecordedResult()) {
92
+ const resumeData = await context.workflow.suspend<unknown>({
93
+ reason: AWAITING_CHILD_WORKFLOW_REASON,
94
+ });
95
+
96
+ return assertFinishedResult(callWorkflowResumeSchema.parse(resumeData));
97
+ }
98
+
84
99
  // AgenticService owns workflow resolution and run creation because the
85
100
  // target workflow is an API-persisted entity, not an agentic DSL primitive.
86
101
  const result = await context.services.agentic.callWorkflow({
@@ -97,7 +112,7 @@ export const CallWorkflowAction = createAction<
97
112
  // A future event resumes the child leaf first; AgenticService then resumes
98
113
  // this parent action with the final child payload.
99
114
  const resumeData = await context.workflow.suspend<unknown>({
100
- reason: 'awaiting_child_workflow',
115
+ reason: AWAITING_CHILD_WORKFLOW_REASON,
101
116
  data: {
102
117
  workflow_id: result.workflow_id,
103
118
  workflow_run_id: result.workflow_run_id,
@@ -15,7 +15,7 @@ import {
15
15
  Post,
16
16
  Query,
17
17
  } from '@nestjs/common';
18
- import { FindManyOptions, In, Not } from 'typeorm';
18
+ import { FindManyOptions } from 'typeorm';
19
19
  import { DeleteResult } from 'typeorm/driver/mongodb/typings';
20
20
 
21
21
  import { UuidParam } from '@/utils';
@@ -85,10 +85,9 @@ export class TranslationController extends BaseOrmController<TranslationOrmEntit
85
85
 
86
86
  /**
87
87
  * Refresh translations : Add new strings and remove old ones
88
- * @returns {Promise<any>}
89
88
  */
90
89
  @Post('refresh')
91
- async refresh(): Promise<any> {
90
+ async refresh(): Promise<DeleteResult> {
92
91
  const defaultLanguage = await this.languageService.getDefaultLanguage();
93
92
  const languages = await this.languageService.getLanguages();
94
93
  const defaultTrans: TranslationOrmEntity['translations'] = Object.keys(
@@ -103,25 +102,10 @@ export class TranslationController extends BaseOrmController<TranslationOrmEntit
103
102
  },
104
103
  {} as { [key: string]: string },
105
104
  );
106
- // Scan workflows
107
- let strings = await this.translationService.getAllWorkflowStrings();
108
- // Filter unique and not empty messages
109
- strings = strings.filter((str, pos) => {
110
- return str && strings.indexOf(str) == pos;
111
- });
112
- // Perform refresh
113
- const queue = strings.map((str) =>
114
- this.translationService.findOneOrCreate(
115
- { where: { str } },
116
- { str, translations: defaultTrans },
117
- ),
118
- );
119
- await Promise.all(queue);
120
- // Purge non existing translations
121
- const deleteOptions: FindManyOptions<TranslationOrmEntity> =
122
- strings.length > 0 ? { where: { str: Not(In(strings)) } } : {};
123
105
 
124
- return await this.translationService.deleteMany(deleteOptions);
106
+ return await this.translationService.refreshWorkflowTranslations(
107
+ defaultTrans,
108
+ );
125
109
  }
126
110
 
127
111
  /**
@@ -14,6 +14,8 @@ import { extractTaskDefinitions as extractTaskDefinitionsFromDefs } from '@hexab
14
14
  import { Injectable } from '@nestjs/common';
15
15
  import { OnEvent } from '@nestjs/event-emitter';
16
16
  import jsonata from 'jsonata';
17
+ import { FindManyOptions, In, Not } from 'typeorm';
18
+ import { DeleteResult } from 'typeorm/driver/mongodb/typings';
17
19
 
18
20
  import { I18nService } from '@/i18n/services/i18n.service';
19
21
  import { BaseOrmService } from '@/utils/generics/base-orm.service';
@@ -24,6 +26,9 @@ import { TranslationRepository } from '../repositories/translation.repository';
24
26
 
25
27
  @Injectable()
26
28
  export class TranslationService extends BaseOrmService<TranslationOrmEntity> {
29
+ /** Number of in-flight batch operations deferring the i18n refresh. */
30
+ private i18nRefreshDeferrals = 0;
31
+
27
32
  constructor(
28
33
  repository: TranslationRepository,
29
34
  private readonly workflowService: WorkflowService,
@@ -38,6 +43,38 @@ export class TranslationService extends BaseOrmService<TranslationOrmEntity> {
38
43
  this.i18n.refreshDynamicTranslations(translations);
39
44
  }
40
45
 
46
+ /**
47
+ * Synchronize stored translations with the strings currently used by
48
+ * workflows: create missing ones and purge those no longer referenced.
49
+ *
50
+ * Writes run sequentially with the per-event i18n refresh deferred to a
51
+ * single reload at the end, so a large refresh cannot exhaust the DB pool.
52
+ *
53
+ * @param defaultTranslations - Empty translations map seeded on new strings.
54
+ * @returns The result of purging stale translations.
55
+ */
56
+ async refreshWorkflowTranslations(
57
+ defaultTranslations: TranslationOrmEntity['translations'],
58
+ ): Promise<DeleteResult> {
59
+ return await this.deferI18nRefresh(async () => {
60
+ const strings = [
61
+ ...new Set((await this.getAllWorkflowStrings()).filter(Boolean)),
62
+ ];
63
+
64
+ for (const str of strings) {
65
+ await this.findOneOrCreate(
66
+ { where: { str } },
67
+ { str, translations: { ...defaultTranslations } },
68
+ );
69
+ }
70
+
71
+ const deleteOptions: FindManyOptions<TranslationOrmEntity> =
72
+ strings.length > 0 ? { where: { str: Not(In(strings)) } } : {};
73
+
74
+ return await this.deleteMany(deleteOptions);
75
+ });
76
+ }
77
+
41
78
  /**
42
79
  * Return workflow strings marked for translation via $t() inside task
43
80
  * JSONata expressions.
@@ -73,8 +110,29 @@ export class TranslationService extends BaseOrmService<TranslationOrmEntity> {
73
110
  * Updates the in-memory translations
74
111
  */
75
112
  @OnEvent('hook:translation:*')
76
- handleTranslationsUpdate() {
77
- this.resetI18nTranslations();
113
+ async handleTranslationsUpdate(): Promise<void> {
114
+ if (this.i18nRefreshDeferrals > 0) {
115
+ return;
116
+ }
117
+
118
+ await this.resetI18nTranslations();
119
+ }
120
+
121
+ /**
122
+ * Run a batch of translation writes with the event-driven i18n refresh
123
+ * deferred, then reload the in-memory translations once at the end.
124
+ */
125
+ private async deferI18nRefresh<T>(operation: () => Promise<T>): Promise<T> {
126
+ this.i18nRefreshDeferrals++;
127
+
128
+ try {
129
+ return await operation();
130
+ } finally {
131
+ this.i18nRefreshDeferrals--;
132
+ if (this.i18nRefreshDeferrals === 0) {
133
+ await this.resetI18nTranslations();
134
+ }
135
+ }
78
136
  }
79
137
 
80
138
  /**
@@ -32,6 +32,7 @@ import type {
32
32
  WorkflowCallService,
33
33
  WorkflowResult,
34
34
  } from '../types';
35
+ import { AWAITING_CHILD_WORKFLOW_REASON } from '../types';
35
36
 
36
37
  import { WorkflowRunService } from './workflow-run.service';
37
38
  import { WorkflowService } from './workflow.service';
@@ -167,6 +168,27 @@ export class AgenticService implements WorkflowCallService {
167
168
  );
168
169
  }
169
170
 
171
+ // Defense in depth against deterministic replay: if the parent is
172
+ // re-executing an already-resolved `call_workflow` suspension, reuse the
173
+ // child run it originally spawned instead of creating a duplicate.
174
+ const replayedChildRun = await this.findReplayedChildRun(
175
+ parentRun,
176
+ workflowId,
177
+ parentContext,
178
+ );
179
+ if (replayedChildRun) {
180
+ this.logger.log(
181
+ 'Reusing recorded child workflow run during parent replay',
182
+ {
183
+ parentRunId: parentRun.id,
184
+ childRunId: replayedChildRun.id,
185
+ workflowId,
186
+ },
187
+ );
188
+
189
+ return this.toPersistedCallWorkflowResult(replayedChildRun);
190
+ }
191
+
170
192
  const workflow = await this.workflowService.findOneAndPopulate(workflowId);
171
193
  if (!workflow) {
172
194
  throw new Error(`Workflow with ID ${workflowId} not found`);
@@ -498,6 +520,101 @@ export class AgenticService implements WorkflowCallService {
498
520
  };
499
521
  }
500
522
 
523
+ /**
524
+ * Detect a deterministic replay of a `call_workflow` suspension and return
525
+ * the child run originally spawned by that call, if any.
526
+ *
527
+ * Replay is identified by the parent runtime control reporting a recorded
528
+ * resume result for the upcoming suspension; the persisted parent
529
+ * suspension metadata then pins which child run the original call created.
530
+ * The runtime signal is required because suspension bookkeeping is not
531
+ * cleared on resume, so metadata alone would also match a later sequential
532
+ * call to the same workflow.
533
+ */
534
+ private async findReplayedChildRun(
535
+ parentRun: WorkflowRunFull,
536
+ workflowId: string,
537
+ parentContext: WorkflowRuntimeContext,
538
+ ): Promise<WorkflowRunFull | null> {
539
+ if (!this.isReplayingRecordedSuspension(parentContext)) {
540
+ return null;
541
+ }
542
+
543
+ if (parentRun.suspensionReason !== AWAITING_CHILD_WORKFLOW_REASON) {
544
+ return null;
545
+ }
546
+
547
+ const suspensionData = parentRun.suspensionData as
548
+ | { workflow_id?: unknown; workflow_run_id?: unknown }
549
+ | null
550
+ | undefined;
551
+ if (
552
+ suspensionData?.workflow_id !== workflowId ||
553
+ typeof suspensionData.workflow_run_id !== 'string'
554
+ ) {
555
+ return null;
556
+ }
557
+
558
+ const childRun = await this.workflowRunService.findOneAndPopulate(
559
+ suspensionData.workflow_run_id,
560
+ );
561
+ if (
562
+ !childRun ||
563
+ this.resolveRunId(childRun.parentRun) !== parentRun.id ||
564
+ childRun.workflow.id !== workflowId
565
+ ) {
566
+ return null;
567
+ }
568
+
569
+ return childRun;
570
+ }
571
+
572
+ /**
573
+ * Report whether the parent context is replaying a suspension whose resume
574
+ * result is already recorded.
575
+ */
576
+ private isReplayingRecordedSuspension(
577
+ parentContext: WorkflowRuntimeContext,
578
+ ): boolean {
579
+ try {
580
+ return parentContext.workflow.hasRecordedResult();
581
+ } catch {
582
+ // The context may not be attached to a running workflow runtime.
583
+ return false;
584
+ }
585
+ }
586
+
587
+ /**
588
+ * Build the `call_workflow` contract payload from a persisted child run.
589
+ */
590
+ private toPersistedCallWorkflowResult(
591
+ run: WorkflowRunFull,
592
+ ): CallWorkflowResult {
593
+ if (run.status === 'finished') {
594
+ return {
595
+ status: 'finished',
596
+ workflow_id: run.workflow.id,
597
+ workflow_run_id: run.id,
598
+ output: run.output ?? {},
599
+ };
600
+ }
601
+
602
+ if (run.status === 'failed') {
603
+ return {
604
+ status: 'failed',
605
+ workflow_id: run.workflow.id,
606
+ workflow_run_id: run.id,
607
+ error: run.error ?? 'Child workflow run failed',
608
+ };
609
+ }
610
+
611
+ return {
612
+ status: 'suspended',
613
+ workflow_id: run.workflow.id,
614
+ workflow_run_id: run.id,
615
+ };
616
+ }
617
+
501
618
  /**
502
619
  * Resume a suspended parent run after its child run completes or fails.
503
620
  *
@@ -37,6 +37,12 @@ export type MemoryValue = Record<string, unknown>;
37
37
 
38
38
  export type WorkflowResult = WorkflowStartResult | WorkflowResumeResult;
39
39
 
40
+ /**
41
+ * Suspension reason used by the `call_workflow` action while its parent run
42
+ * waits for a spawned child run to reach a terminal state.
43
+ */
44
+ export const AWAITING_CHILD_WORKFLOW_REASON = 'awaiting_child_workflow';
45
+
40
46
  /**
41
47
  * Payload passed from a child workflow back to the suspended `call_workflow`
42
48
  * action in its parent. Only `finished` is exposed as the action output; the