@plumbus/core 0.2.5 → 0.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/ai/__tests__/model-pricing.test.d.ts +2 -0
  3. package/dist/ai/__tests__/model-pricing.test.d.ts.map +1 -0
  4. package/dist/ai/__tests__/model-pricing.test.js +112 -0
  5. package/dist/ai/__tests__/model-pricing.test.js.map +1 -0
  6. package/dist/ai/__tests__/provider.test.js +15 -2
  7. package/dist/ai/__tests__/provider.test.js.map +1 -1
  8. package/dist/ai/ai-service.d.ts.map +1 -1
  9. package/dist/ai/ai-service.js +13 -1
  10. package/dist/ai/ai-service.js.map +1 -1
  11. package/dist/ai/index.d.ts +2 -1
  12. package/dist/ai/index.d.ts.map +1 -1
  13. package/dist/ai/index.js +3 -1
  14. package/dist/ai/index.js.map +1 -1
  15. package/dist/ai/model-pricing.d.ts +29 -0
  16. package/dist/ai/model-pricing.d.ts.map +1 -0
  17. package/dist/ai/model-pricing.js +133 -0
  18. package/dist/ai/model-pricing.js.map +1 -0
  19. package/dist/ai/provider.d.ts +4 -0
  20. package/dist/ai/provider.d.ts.map +1 -1
  21. package/dist/ai/provider.js +4 -0
  22. package/dist/ai/provider.js.map +1 -1
  23. package/dist/ai/validation.d.ts.map +1 -1
  24. package/dist/ai/validation.js +2 -0
  25. package/dist/ai/validation.js.map +1 -1
  26. package/dist/api/__tests__/route-generator.test.js +112 -0
  27. package/dist/api/__tests__/route-generator.test.js.map +1 -1
  28. package/dist/api/route-generator.d.ts +12 -0
  29. package/dist/api/route-generator.d.ts.map +1 -1
  30. package/dist/api/route-generator.js +69 -1
  31. package/dist/api/route-generator.js.map +1 -1
  32. package/dist/cli/__tests__/cli.test.js +4 -1
  33. package/dist/cli/__tests__/cli.test.js.map +1 -1
  34. package/dist/cli/__tests__/create.test.js +11 -1
  35. package/dist/cli/__tests__/create.test.js.map +1 -1
  36. package/dist/cli/__tests__/generate.test.js +120 -12
  37. package/dist/cli/__tests__/generate.test.js.map +1 -1
  38. package/dist/cli/__tests__/ui.test.js +15 -1
  39. package/dist/cli/__tests__/ui.test.js.map +1 -1
  40. package/dist/cli/cli.d.ts.map +1 -1
  41. package/dist/cli/cli.js +12 -1
  42. package/dist/cli/cli.js.map +1 -1
  43. package/dist/cli/commands/create.js +2 -2
  44. package/dist/cli/commands/create.js.map +1 -1
  45. package/dist/cli/commands/dev.d.ts.map +1 -1
  46. package/dist/cli/commands/dev.js +130 -1
  47. package/dist/cli/commands/dev.js.map +1 -1
  48. package/dist/cli/commands/generate.d.ts +6 -0
  49. package/dist/cli/commands/generate.d.ts.map +1 -1
  50. package/dist/cli/commands/generate.js +94 -4
  51. package/dist/cli/commands/generate.js.map +1 -1
  52. package/dist/cli/commands/start.d.ts.map +1 -1
  53. package/dist/cli/commands/start.js +130 -1
  54. package/dist/cli/commands/start.js.map +1 -1
  55. package/dist/cli/commands/ui.d.ts +1 -0
  56. package/dist/cli/commands/ui.d.ts.map +1 -1
  57. package/dist/cli/commands/ui.js +41 -5
  58. package/dist/cli/commands/ui.js.map +1 -1
  59. package/dist/data/__tests__/repository.test.js +203 -0
  60. package/dist/data/__tests__/repository.test.js.map +1 -1
  61. package/dist/data/index.d.ts +1 -0
  62. package/dist/data/index.d.ts.map +1 -1
  63. package/dist/data/index.js +2 -0
  64. package/dist/data/index.js.map +1 -1
  65. package/dist/data/repository.d.ts +1 -1
  66. package/dist/data/repository.d.ts.map +1 -1
  67. package/dist/data/repository.js +67 -3
  68. package/dist/data/repository.js.map +1 -1
  69. package/dist/errors/__tests__/errors.test.js +30 -2
  70. package/dist/errors/__tests__/errors.test.js.map +1 -1
  71. package/dist/errors/http.d.ts +3 -3
  72. package/dist/errors/http.d.ts.map +1 -1
  73. package/dist/errors/http.js.map +1 -1
  74. package/dist/errors/index.d.ts +12 -1
  75. package/dist/errors/index.d.ts.map +1 -1
  76. package/dist/errors/index.js +22 -1
  77. package/dist/errors/index.js.map +1 -1
  78. package/dist/execution/__tests__/authorization.test.js +11 -0
  79. package/dist/execution/__tests__/authorization.test.js.map +1 -1
  80. package/dist/execution/authorization.d.ts.map +1 -1
  81. package/dist/execution/authorization.js +4 -0
  82. package/dist/execution/authorization.js.map +1 -1
  83. package/dist/execution/capability-executor.d.ts +2 -2
  84. package/dist/execution/capability-executor.d.ts.map +1 -1
  85. package/dist/execution/capability-executor.js +8 -2
  86. package/dist/execution/capability-executor.js.map +1 -1
  87. package/dist/flows/__tests__/step-executor.test.js +62 -10
  88. package/dist/flows/__tests__/step-executor.test.js.map +1 -1
  89. package/dist/flows/engine.d.ts +12 -1
  90. package/dist/flows/engine.d.ts.map +1 -1
  91. package/dist/flows/engine.js +56 -10
  92. package/dist/flows/engine.js.map +1 -1
  93. package/dist/flows/step-executor.d.ts +5 -2
  94. package/dist/flows/step-executor.d.ts.map +1 -1
  95. package/dist/flows/step-executor.js +38 -4
  96. package/dist/flows/step-executor.js.map +1 -1
  97. package/dist/index.d.ts +4 -4
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +3 -3
  100. package/dist/index.js.map +1 -1
  101. package/dist/server/__tests__/bootstrap.test.js +108 -0
  102. package/dist/server/__tests__/bootstrap.test.js.map +1 -1
  103. package/dist/server/bootstrap.d.ts +50 -1
  104. package/dist/server/bootstrap.d.ts.map +1 -1
  105. package/dist/server/bootstrap.js +85 -2
  106. package/dist/server/bootstrap.js.map +1 -1
  107. package/dist/testing/__tests__/simulate-flow.test.js +10 -0
  108. package/dist/testing/__tests__/simulate-flow.test.js.map +1 -1
  109. package/dist/testing/context.d.ts.map +1 -1
  110. package/dist/testing/context.js +73 -6
  111. package/dist/testing/context.js.map +1 -1
  112. package/dist/testing/simulate-flow.d.ts.map +1 -1
  113. package/dist/testing/simulate-flow.js +31 -4
  114. package/dist/testing/simulate-flow.js.map +1 -1
  115. package/dist/types/context.d.ts +31 -7
  116. package/dist/types/context.d.ts.map +1 -1
  117. package/dist/types/errors.d.ts +6 -6
  118. package/dist/types/errors.d.ts.map +1 -1
  119. package/dist/types/index.d.ts +3 -3
  120. package/dist/types/index.d.ts.map +1 -1
  121. package/dist/types/index.js.map +1 -1
  122. package/dist/types/registry.d.ts +6 -0
  123. package/dist/types/registry.d.ts.map +1 -1
  124. package/dist/types/registry.js +3 -1
  125. package/dist/types/registry.js.map +1 -1
  126. package/dist/types/security.d.ts +2 -0
  127. package/dist/types/security.d.ts.map +1 -1
  128. package/dist/worker/__tests__/bootstrap.test.js +23 -0
  129. package/dist/worker/__tests__/bootstrap.test.js.map +1 -1
  130. package/dist/worker/bootstrap.d.ts +12 -1
  131. package/dist/worker/bootstrap.d.ts.map +1 -1
  132. package/dist/worker/bootstrap.js +47 -8
  133. package/dist/worker/bootstrap.js.map +1 -1
  134. package/instructions/ai.md +30 -4
  135. package/instructions/capabilities.md +4 -0
  136. package/instructions/cli.md +2 -0
  137. package/instructions/framework.md +49 -0
  138. package/package.json +2 -1
@@ -1,6 +1,22 @@
1
1
  import { ErrorCode } from '../types/enums.js';
2
+ // ── PlumbusError Class ──
3
+ // Extends Error for proper stack traces and instanceof support.
4
+ // toJSON() ensures safe serialization (Error.message is non-enumerable).
5
+ export class PlumbusError extends Error {
6
+ code;
7
+ metadata;
8
+ constructor(code, message, metadata) {
9
+ super(message);
10
+ this.name = 'PlumbusError';
11
+ this.code = code;
12
+ this.metadata = metadata;
13
+ }
14
+ toJSON() {
15
+ return { code: this.code, message: this.message, metadata: this.metadata };
16
+ }
17
+ }
2
18
  function createError(code, message, metadata) {
3
- return { code, message, metadata };
19
+ return new PlumbusError(code, message, metadata);
4
20
  }
5
21
  export function createErrorService() {
6
22
  return {
@@ -11,7 +27,12 @@ export function createErrorService() {
11
27
  internal: (message, metadata) => createError(ErrorCode.Internal, message, metadata),
12
28
  };
13
29
  }
30
+ // Duck-type check with instanceof fast-path.
31
+ // Accepts both PlumbusError class instances and plain objects with {code, message}
32
+ // for backward compatibility with test mocks and manual construction.
14
33
  export function isPlumbusError(value) {
34
+ if (value instanceof PlumbusError)
35
+ return true;
15
36
  if (typeof value !== 'object' || value === null)
16
37
  return false;
17
38
  const obj = value;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,SAAS,WAAW,CAClB,IAAe,EACf,OAAe,EACf,QAAkC;IAElC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;QACvF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;QACnF,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;QACrF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;QACnF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CACL,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAiB,CAAC,CACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAG9C,2BAA2B;AAC3B,gEAAgE;AAChE,yEAAyE;AACzE,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAY;IAChB,QAAQ,CAA2B;IAE5C,YAAY,IAAe,EAAE,OAAe,EAAE,QAAkC;QAC9E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM;QACJ,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC7E,CAAC;CACF;AAED,SAAS,WAAW,CAClB,IAAe,EACf,OAAe,EACf,QAAkC;IAElC,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO;QACL,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC;QACvF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;QACnF,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC;QACrF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;QACnF,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;KACpF,CAAC;AACJ,CAAC;AAED,6CAA6C;AAC7C,mFAAmF;AACnF,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,KAAgC,CAAC;IAC7C,OAAO,CACL,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ;QAC5B,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;QAC/B,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAiB,CAAC,CACzD,CAAC;AACJ,CAAC"}
@@ -84,5 +84,16 @@ describe('evaluateAccess', () => {
84
84
  const result = evaluateAccess(policy, makeAuth({ roles: ['editor'], scopes: ['read', 'write'] }));
85
85
  expect(result.allowed).toBe(true);
86
86
  });
87
+ it('allows internal callers regardless of roles', () => {
88
+ const policy = { roles: ['admin'], tenantScoped: true };
89
+ const result = evaluateAccess(policy, makeAuth({ roles: ['system'], internal: true, tenantId: 't-1' }));
90
+ expect(result.allowed).toBe(true);
91
+ });
92
+ it('still enforces tenant scoping for internal callers', () => {
93
+ const policy = { roles: ['admin'], tenantScoped: true };
94
+ const result = evaluateAccess(policy, makeAuth({ roles: [], internal: true, tenantId: undefined }));
95
+ expect(result.allowed).toBe(false);
96
+ expect(result.reason).toContain('Tenant context required');
97
+ });
87
98
  });
88
99
  //# sourceMappingURL=authorization.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/authorization.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authorization.test.js","sourceRoot":"","sources":["../../../src/execution/__tests__/authorization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,SAAS,QAAQ,CAAC,YAAkC,EAAE;IACpD,OAAO;QACL,MAAM,EAAE,QAAQ;QAChB,KAAK,EAAE,CAAC,QAAQ,CAAC;QACjB,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,UAAU;QACpB,GAAG,SAAS;KACb,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAiB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5D,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACzF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACtE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAiB,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAiB;YAC3B,eAAe,EAAE,CAAC,YAAY,CAAC;YAC/B,KAAK,EAAE,CAAC,OAAO,CAAC;SACjB,CAAC;QACF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAiB;YAC3B,eAAe,EAAE,CAAC,YAAY,CAAC;YAC/B,KAAK,EAAE,CAAC,OAAO,CAAC;SACjB,CAAC;QACF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/F,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAiB;YAC3B,KAAK,EAAE,CAAC,QAAQ,CAAC;YACjB,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB,CAAC;QACF,MAAM,MAAM,GAAG,cAAc,CAC3B,MAAM,EACN,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAC3D,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,cAAc,CAC3B,MAAM,EACN,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CACjE,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAiB,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,cAAc,CAC3B,MAAM,EACN,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAC7D,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../src/execution/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,IAAI,EAAE,WAAW,GAChB,mBAAmB,CAmDrB"}
1
+ {"version":3,"file":"authorization.d.ts","sourceRoot":"","sources":["../../src/execution/authorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,YAAY,GAAG,SAAS,EAChC,IAAI,EAAE,WAAW,GAChB,mBAAmB,CAwDrB"}
@@ -25,6 +25,10 @@ export function evaluateAccess(policy, auth) {
25
25
  if (policy.tenantScoped && !auth.tenantId) {
26
26
  return { allowed: false, reason: 'Tenant context required' };
27
27
  }
28
+ // Internal callers (e.g. flow engine) skip role/scope checks
29
+ if (auth.internal) {
30
+ return { allowed: true };
31
+ }
28
32
  // Role check — caller must have at least one required role
29
33
  if (policy.roles && policy.roles.length > 0) {
30
34
  const hasRole = policy.roles.some((r) => auth.roles.includes(r));
@@ -1 +1 @@
1
- {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/execution/authorization.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAgC,EAChC,IAAiB;IAEjB,8BAA8B;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IAChE,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAC/D,CAAC;IAED,+EAA+E;IAC/E,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAC/D,CAAC;IAED,2DAA2D;IAC3D,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
1
+ {"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../src/execution/authorization.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAgC,EAChC,IAAiB;IAEjB,8BAA8B;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;IAChE,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAC/D,CAAC;IAED,+EAA+E;IAC/E,IAAI,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChE,IAAI,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;IAC/D,CAAC;IAED,6DAA6D;IAC7D,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,2DAA2D;IAC3D,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,qDAAqD;IACrD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,mBAAmB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;aACtD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3B,CAAC"}
@@ -1,14 +1,14 @@
1
1
  import type { z } from 'zod';
2
2
  import type { CapabilityContract } from '../types/capability.js';
3
3
  import type { ExecutionContext } from '../types/context.js';
4
- import type { PlumbusError } from '../types/errors.js';
4
+ import type { PlumbusErrorLike } from '../types/errors.js';
5
5
  export interface ExecutionResult<T = unknown> {
6
6
  success: true;
7
7
  data: T;
8
8
  }
9
9
  export interface ExecutionFailure {
10
10
  success: false;
11
- error: PlumbusError;
11
+ error: PlumbusErrorLike;
12
12
  }
13
13
  export type CapabilityResult<T = unknown> = ExecutionResult<T> | ExecutionFailure;
14
14
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"capability-executor.d.ts","sourceRoot":"","sources":["../../src/execution/capability-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGvD,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAElF;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,SAAS,CAAC,CAAC,UAAU,EAC/F,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CA+D7C"}
1
+ {"version":3,"file":"capability-executor.d.ts","sourceRoot":"","sources":["../../src/execution/capability-executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAG3D,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACT;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;IACf,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,OAAO,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC;AAElF;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,SAAS,CAAC,CAAC,UAAU,EAAE,OAAO,SAAS,CAAC,CAAC,UAAU,EAC/F,UAAU,EAAE,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/C,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAsE7C"}
@@ -40,12 +40,18 @@ export async function executeCapability(capability, ctx, rawInput) {
40
40
  await recordAudit(ctx, capability, 'failure', { error: err });
41
41
  return { success: false, error: err };
42
42
  }
43
+ const causeMessage = err instanceof Error && err.cause instanceof Error ? err.cause.message : undefined;
44
+ const errorMessage = causeMessage
45
+ ? `${causeMessage} — ${err instanceof Error ? err.message : String(err)}`
46
+ : err instanceof Error
47
+ ? err.message
48
+ : String(err);
43
49
  const error = ctx.errors.internal('Capability execution failed', {
44
50
  capability: capability.name,
45
- message: err instanceof Error ? err.message : String(err),
51
+ message: errorMessage,
46
52
  });
47
53
  ctx.logger.error(`Capability "${capability.name}" threw an error`, {
48
- error: err instanceof Error ? err.message : String(err),
54
+ error: errorMessage,
49
55
  });
50
56
  await recordAudit(ctx, capability, 'failure', { error });
51
57
  return { success: false, error };
@@ -1 +1 @@
1
- {"version":3,"file":"capability-executor.js","sourceRoot":"","sources":["../../src/execution/capability-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-executor.js","sourceRoot":"","sources":["../../src/execution/capability-executor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAcpD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,UAA+C,EAC/C,GAAqB,EACrB,QAAiB;IAEjB,mCAAmC;IACnC,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,EAAE;YACnD,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,MAAM;SACjC,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAuB,CAAC;IAElD,8CAA8C;IAC9C,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,IAAI,eAAe,EAAE;YACvE,UAAU,EAAE,UAAU,CAAC,IAAI;SAC5B,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,qBAAqB;IACrB,IAAI,SAA2B,CAAC;IAChC,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,2DAA2D;QAC3D,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACrF,MAAM,YAAY,GAAG,YAAY;YAC/B,CAAC,CAAC,GAAG,YAAY,MAAM,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACzE,CAAC,CAAC,GAAG,YAAY,KAAK;gBACpB,CAAC,CAAC,GAAG,CAAC,OAAO;gBACb,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,6BAA6B,EAAE;YAC/D,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC,IAAI,kBAAkB,EAAE;YACjE,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,oCAAoC;IACpC,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,gCAAgC,EAAE;YAClE,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM;SAClC,CAAC,CAAC;QACH,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC,IAAI,2BAA2B,EAAE;YAC1E,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,MAAM;SAClC,CAAC,CAAC;QACH,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IAED,0BAA0B;IAC1B,MAAM,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAE9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,CAAC,IAAwB,EAAE,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAqB,EACrB,UAAwC,EACxC,OAAyC,EACzC,QAAkC;IAElC,2DAA2D;IAC3D,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK;QAAE,OAAO;IAEhD,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,EAAE,KAAK,IAAI,cAAc,UAAU,CAAC,IAAI,EAAE,CAAC;IAE9E,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;YACjC,UAAU,EAAE,UAAU,CAAC,IAAI;YAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,OAAO;YACP,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM;YACtB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,QAAQ;YAC3B,GAAG,QAAQ;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;QACvD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
@@ -12,7 +12,7 @@ const defaultDeps = {
12
12
  describe('StepExecutor', () => {
13
13
  it('executes a capability step successfully', async () => {
14
14
  const step = { name: 'processOrder', type: FlowStepType.Capability };
15
- const result = await executeStep(step, mockCtx, {}, defaultDeps);
15
+ const result = await executeStep(step, mockCtx, {}, {}, defaultDeps);
16
16
  expect(result.status).toBe(StepStatus.Completed);
17
17
  expect(defaultDeps.executeCapability).toHaveBeenCalledWith('processOrder', mockCtx, {});
18
18
  });
@@ -22,7 +22,7 @@ describe('StepExecutor', () => {
22
22
  ...defaultDeps,
23
23
  executeCapability: vi.fn().mockResolvedValue({ success: false, error: 'oops' }),
24
24
  };
25
- const result = await executeStep(step, mockCtx, {}, deps);
25
+ const result = await executeStep(step, mockCtx, {}, {}, deps);
26
26
  expect(result.status).toBe(StepStatus.Failed);
27
27
  expect(result.error).toContain('oops');
28
28
  });
@@ -32,10 +32,62 @@ describe('StepExecutor', () => {
32
32
  ...defaultDeps,
33
33
  executeCapability: vi.fn().mockRejectedValue(new Error('boom')),
34
34
  };
35
- const result = await executeStep(step, mockCtx, {}, deps);
35
+ const result = await executeStep(step, mockCtx, {}, {}, deps);
36
36
  expect(result.status).toBe(StepStatus.Failed);
37
37
  expect(result.error).toBe('boom');
38
38
  });
39
+ it('merges flowInput and state into capability input', async () => {
40
+ const step = { name: 'process', type: FlowStepType.Capability };
41
+ const deps = {
42
+ ...defaultDeps,
43
+ executeCapability: vi.fn().mockResolvedValue({ success: true, data: {} }),
44
+ };
45
+ await executeStep(step, mockCtx, { projectId: 'p1', messageId: 'm1' }, { metadataId: 'md1' }, deps);
46
+ expect(deps.executeCapability).toHaveBeenCalledWith('process', mockCtx, {
47
+ projectId: 'p1',
48
+ messageId: 'm1',
49
+ metadataId: 'md1',
50
+ });
51
+ });
52
+ it('resolves $input and $state template references in step.input', async () => {
53
+ const step = {
54
+ name: 'extract',
55
+ type: FlowStepType.Capability,
56
+ input: {
57
+ sourceType: 'interview_message',
58
+ sourceReferenceId: '$input.messageId',
59
+ cached: '$state.metadataId',
60
+ },
61
+ };
62
+ const deps = {
63
+ ...defaultDeps,
64
+ executeCapability: vi.fn().mockResolvedValue({ success: true, data: {} }),
65
+ };
66
+ await executeStep(step, mockCtx, { projectId: 'p1', messageId: 'm1' }, { metadataId: 'md1' }, deps);
67
+ expect(deps.executeCapability).toHaveBeenCalledWith('extract', mockCtx, {
68
+ projectId: 'p1',
69
+ messageId: 'm1',
70
+ metadataId: 'md1',
71
+ sourceType: 'interview_message',
72
+ sourceReferenceId: 'm1',
73
+ cached: 'md1',
74
+ });
75
+ });
76
+ it('uses step.capability instead of step.name when provided', async () => {
77
+ const step = {
78
+ name: 'extractMetadata',
79
+ type: FlowStepType.Capability,
80
+ capability: 'extractMessageMetadata',
81
+ };
82
+ const deps = {
83
+ ...defaultDeps,
84
+ executeCapability: vi.fn().mockResolvedValue({ success: true, data: {} }),
85
+ };
86
+ await executeStep(step, mockCtx, { projectId: 'p1' }, {}, deps);
87
+ expect(deps.executeCapability).toHaveBeenCalledWith('extractMessageMetadata', mockCtx, {
88
+ projectId: 'p1',
89
+ });
90
+ });
39
91
  it('executes a conditional step — true branch', async () => {
40
92
  const step = {
41
93
  name: 'check',
@@ -48,7 +100,7 @@ describe('StepExecutor', () => {
48
100
  ...defaultDeps,
49
101
  evaluateCondition: vi.fn().mockReturnValue(true),
50
102
  };
51
- const result = await executeStep(step, mockCtx, {}, deps);
103
+ const result = await executeStep(step, mockCtx, {}, {}, deps);
52
104
  expect(result.status).toBe(StepStatus.Completed);
53
105
  expect(result.nextStep).toBe('approve');
54
106
  });
@@ -64,7 +116,7 @@ describe('StepExecutor', () => {
64
116
  ...defaultDeps,
65
117
  evaluateCondition: vi.fn().mockReturnValue(false),
66
118
  };
67
- const result = await executeStep(step, mockCtx, {}, deps);
119
+ const result = await executeStep(step, mockCtx, {}, {}, deps);
68
120
  expect(result.status).toBe(StepStatus.Completed);
69
121
  expect(result.nextStep).toBe('reject');
70
122
  });
@@ -74,7 +126,7 @@ describe('StepExecutor', () => {
74
126
  type: FlowStepType.Wait,
75
127
  event: 'approval.received',
76
128
  };
77
- const result = await executeStep(step, mockCtx, {}, defaultDeps);
129
+ const result = await executeStep(step, mockCtx, {}, {}, defaultDeps);
78
130
  expect(result.status).toBe(StepStatus.Completed);
79
131
  expect(result.waitEvent).toBe('approval.received');
80
132
  });
@@ -84,7 +136,7 @@ describe('StepExecutor', () => {
84
136
  type: FlowStepType.Delay,
85
137
  duration: '30m',
86
138
  };
87
- const result = await executeStep(step, mockCtx, {}, defaultDeps);
139
+ const result = await executeStep(step, mockCtx, {}, {}, defaultDeps);
88
140
  expect(result.status).toBe(StepStatus.Completed);
89
141
  expect(result.delayDuration).toBe('30m');
90
142
  });
@@ -94,7 +146,7 @@ describe('StepExecutor', () => {
94
146
  type: FlowStepType.Parallel,
95
147
  branches: ['branchA', 'branchB'],
96
148
  };
97
- const result = await executeStep(step, mockCtx, {}, defaultDeps);
149
+ const result = await executeStep(step, mockCtx, {}, {}, defaultDeps);
98
150
  expect(result.status).toBe(StepStatus.Completed);
99
151
  expect(result.parallelBranches).toEqual(['branchA', 'branchB']);
100
152
  });
@@ -104,7 +156,7 @@ describe('StepExecutor', () => {
104
156
  type: FlowStepType.EventEmit,
105
157
  event: 'order.shipped',
106
158
  };
107
- const result = await executeStep(step, mockCtx, { orderId: '123' }, defaultDeps);
159
+ const result = await executeStep(step, mockCtx, {}, { orderId: '123' }, defaultDeps);
108
160
  expect(result.status).toBe(StepStatus.Completed);
109
161
  expect(mockCtx.events.emit).toHaveBeenCalledWith('order.shipped', { orderId: '123' });
110
162
  });
@@ -117,7 +169,7 @@ describe('StepExecutor', () => {
117
169
  type: FlowStepType.EventEmit,
118
170
  event: 'order.shipped',
119
171
  };
120
- const result = await executeStep(step, ctx, {}, defaultDeps);
172
+ const result = await executeStep(step, ctx, {}, {}, defaultDeps);
121
173
  expect(result.status).toBe(StepStatus.Failed);
122
174
  expect(result.error).toBe('emit failed');
123
175
  });
@@ -1 +1 @@
1
- {"version":3,"file":"step-executor.test.js","sourceRoot":"","sources":["../../../src/flows/__tests__/step-executor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"step-executor.test.js","sourceRoot":"","sources":["../../../src/flows/__tests__/step-executor.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { PostgresJsDatabase } from 'drizzle-orm/postgres-js';
2
2
  import type { EventQueue } from '../events/queue.js';
3
3
  import type { AuditService } from '../types/audit.js';
4
- import type { ExecutionContext, FlowExecution } from '../types/context.js';
4
+ import type { DataService, ExecutionContext, FlowExecution } from '../types/context.js';
5
5
  import type { AuthContext } from '../types/security.js';
6
6
  import type { FlowRegistry } from './registry.js';
7
7
  import { type StepExecutorDeps } from './step-executor.js';
@@ -11,6 +11,17 @@ export interface FlowEngineConfig {
11
11
  stepDeps: StepExecutorDeps;
12
12
  audit?: AuditService;
13
13
  queue?: EventQueue;
14
+ /** Create a data service scoped to a specific auth context (for tenant isolation in flows). */
15
+ createDataService?: (auth: AuthContext) => DataService;
16
+ /** Called when a flow fails permanently (after retries exhausted). */
17
+ onFlowError?: (info: {
18
+ executionId: string;
19
+ flowName: string;
20
+ step: string | null;
21
+ error: string;
22
+ tenantId?: string | null;
23
+ actor?: string;
24
+ }) => Promise<void> | void;
14
25
  }
15
26
  /**
16
27
  * Creates the flow execution engine that manages flow lifecycle:
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/flows/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,kBAAkB,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAsCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;sBAO3C,MAAM,SACT,OAAO,QACR,WAAW,SACV;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KACzD,OAAO,CAAC,aAAa,CAAC;2BAmDW,MAAM,OAAO,gBAAgB,KAAG,OAAO,CAAC,aAAa,CAAC;0BA4MvD,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;sCAiC5B,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC;sCAoBhD,OAAO,CAAC,MAAM,EAAE,CAAC;0BAuBvB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;0BAiCtB,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;EA0EnE;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,MAAM,CAKjG"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/flows/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGxF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AASlD,OAAO,EAAkC,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,kBAAkB,CAAC;IACvB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,+FAA+F;IAC/F,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,WAAW,CAAC;IACvD,sEAAsE;IACtE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC5B;AAsCD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;sBAO3C,MAAM,SACT,OAAO,QACR,WAAW,SACV;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,KACzD,OAAO,CAAC,aAAa,CAAC;2BAmDW,MAAM,OAAO,gBAAgB,KAAG,OAAO,CAAC,aAAa,CAAC;0BA4NvD,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;sCAiC5B,MAAM,WAAW,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC;sCAoBhD,OAAO,CAAC,MAAM,EAAE,CAAC;0BAuBvB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;0BAiCtB,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC;EA6FnE;AAiCD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,SAAO,GAAG,MAAM,CAKjG"}
@@ -2,14 +2,14 @@ import { and, eq, inArray, isNull, lte, or } from 'drizzle-orm';
2
2
  import { randomUUID } from 'node:crypto';
3
3
  import { BackoffStrategy } from '../types/enums.js';
4
4
  import { flowExecutionsTable } from './schema.js';
5
- import { FlowStatus, StepStatus, assertTransition, isTerminal, } from './state-machine.js';
5
+ import { assertTransition, FlowStatus, isTerminal, StepStatus, } from './state-machine.js';
6
6
  import { buildHistoryEntry, executeStep } from './step-executor.js';
7
7
  /**
8
8
  * Creates the flow execution engine that manages flow lifecycle:
9
9
  * start, run steps, handle wait/resume, and persist state.
10
10
  */
11
11
  export function createFlowEngine(config) {
12
- const { db, registry, stepDeps, audit } = config;
12
+ const { db, registry, stepDeps, audit, onFlowError } = config;
13
13
  /**
14
14
  * Start a new flow execution.
15
15
  */
@@ -100,19 +100,28 @@ export function createFlowEngine(config) {
100
100
  }
101
101
  const step = flow.steps.find((s) => s.name === currentStepName);
102
102
  if (!step) {
103
- await failFlow(executionId, row.flowName, `Step "${currentStepName}" not found in flow definition`);
103
+ await failFlow(executionId, row.flowName, `Step "${currentStepName}" not found in flow definition`, row);
104
104
  return { id: executionId, flowName: row.flowName, status: FlowStatus.Failed };
105
105
  }
106
- // Build flow-scoped context
106
+ // Build flow-scoped context with tenant-aware auth from stored execution
107
+ const flowAuth = {
108
+ ...ctx.auth,
109
+ tenantId: row.tenantId ?? ctx.auth.tenantId,
110
+ userId: row.actor ?? ctx.auth.userId,
111
+ internal: true,
112
+ };
113
+ const flowData = config.createDataService ? config.createDataService(flowAuth) : ctx.data;
107
114
  const flowCtx = {
108
115
  ...ctx,
116
+ auth: flowAuth,
117
+ data: flowData,
109
118
  state: row.state,
110
119
  step: currentStepName,
111
120
  flowId: executionId,
112
121
  };
113
122
  // Execute the step
114
123
  const startedAt = new Date();
115
- const result = await executeStep(step, flowCtx, row.state, stepDeps);
124
+ const result = await executeStep(step, flowCtx, row.input, row.state, stepDeps);
116
125
  const completedAt = new Date();
117
126
  const historyEntry = buildHistoryEntry(currentStepName, result, startedAt, completedAt);
118
127
  const history = Array.isArray(row.stepHistory) ? row.stepHistory : [];
@@ -167,7 +176,7 @@ export function createFlowEngine(config) {
167
176
  .filter((s) => s != null);
168
177
  const branchResults = await Promise.allSettled(branchSteps.map(async (branchStep) => {
169
178
  const branchStart = new Date();
170
- const branchResult = await executeStep(branchStep, flowCtx, row.state, stepDeps);
179
+ const branchResult = await executeStep(branchStep, flowCtx, row.input, row.state, stepDeps);
171
180
  const branchEnd = new Date();
172
181
  return { branchStep, branchResult, branchStart, branchEnd };
173
182
  }));
@@ -324,7 +333,7 @@ export function createFlowEngine(config) {
324
333
  return { id: executionId, flowName: row.flowName, status: FlowStatus.Running };
325
334
  }
326
335
  // Exhausted retries — fail the flow
327
- await failFlow(executionId, row.flowName, error);
336
+ await failFlow(executionId, row.flowName, error, row);
328
337
  return { id: executionId, flowName: row.flowName, status: FlowStatus.Failed };
329
338
  }
330
339
  async function completeFlow(executionId, flowName) {
@@ -337,7 +346,7 @@ export function createFlowEngine(config) {
337
346
  await audit.record(`flow.completed.${flowName}`, { executionId, flowName });
338
347
  }
339
348
  }
340
- async function failFlow(executionId, flowName, error) {
349
+ async function failFlow(executionId, flowName, error, row) {
341
350
  await updateExecution(executionId, {
342
351
  status: FlowStatus.Failed,
343
352
  lastError: error ?? 'Unknown error',
@@ -350,6 +359,21 @@ export function createFlowEngine(config) {
350
359
  error,
351
360
  });
352
361
  }
362
+ if (onFlowError) {
363
+ try {
364
+ await onFlowError({
365
+ executionId,
366
+ flowName,
367
+ step: row?.currentStep ?? null,
368
+ error: error ?? 'Unknown error',
369
+ tenantId: row?.tenantId,
370
+ actor: row?.actor,
371
+ });
372
+ }
373
+ catch {
374
+ // Swallow — error logging must never break flow processing
375
+ }
376
+ }
353
377
  }
354
378
  async function updateExecution(id, updates) {
355
379
  await db
@@ -359,15 +383,37 @@ export function createFlowEngine(config) {
359
383
  }
360
384
  return { start, runNext, resume, resumeWaitingByEvent, listRunnable, cancel, status };
361
385
  }
386
+ /**
387
+ * Collect all step names that are branches of parallel steps.
388
+ * These should be skipped during linear step advancement.
389
+ */
390
+ function collectBranchNames(steps) {
391
+ const branches = new Set();
392
+ for (const step of steps) {
393
+ if (step.type === 'parallel' && 'branches' in step) {
394
+ for (const b of step.branches)
395
+ branches.add(b);
396
+ }
397
+ }
398
+ return branches;
399
+ }
362
400
  /**
363
401
  * Get the next step name in a linear flow sequence.
364
402
  * Returns undefined if we're at the last step.
403
+ * Skips branch steps that belong to parallel steps.
365
404
  */
366
405
  function getNextStepName(steps, currentStepName) {
367
- const idx = steps.findIndex((s) => s.name === currentStepName);
406
+ const branchNames = collectBranchNames(steps);
407
+ let idx = steps.findIndex((s) => s.name === currentStepName);
368
408
  if (idx === -1 || idx >= steps.length - 1)
369
409
  return undefined;
370
- return steps[idx + 1]?.name;
410
+ idx++;
411
+ while (idx < steps.length && branchNames.has(steps[idx]?.name ?? '')) {
412
+ idx++;
413
+ }
414
+ if (idx >= steps.length)
415
+ return undefined;
416
+ return steps[idx]?.name;
371
417
  }
372
418
  /**
373
419
  * Compute a retry delay in milliseconds given the retry policy.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/flows/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,UAAU,GAEX,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAyB,MAAM,oBAAoB,CAAC;AA8C3F;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAwB;IACvD,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAEjD;;OAEG;IACH,KAAK,UAAU,KAAK,CAClB,QAAgB,EAChB,KAAc,EACd,IAAiB,EACjB,IAA0D;QAE1D,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,qBAAqB,CAAC,CAAC;QAC1D,CAAC;QAED,iBAAiB;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,SAAS,QAAQ,sBAAsB,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAE5C,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC;YAC1C,EAAE,EAAE,WAAW;YACf,QAAQ;YACR,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,UAAU,CAAC,OAAO;YAC1B,KAAK,EAAE,WAAW,CAAC,IAA+B;YAClD,KAAK,EAAE,YAA8C;YACrD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,IAAI;YACxC,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI;YAC/B,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,IAAI;YAC1C,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI;SACK,CAAC,CAAC;QAErD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,MAAM,CAAC,gBAAgB,QAAQ,EAAE,EAAE;gBAC7C,WAAW;gBACX,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,MAAM;gBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,SAAS;aACnB,CAAC,CAAC;QACL,CAAC;QAED,OAAO;YACL,EAAE,EAAE,WAAW;YACf,QAAQ;YACR,MAAM,EAAE,UAAU,CAAC,OAAO;SAC3B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,GAAqB;QAC/D,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aAC9C,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;QACpD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,aAAa,CAAC,CAAC;QAC/D,CAAC;QAED,IAAI,UAAU,CAAC,GAAG,CAAC,MAAoB,CAAC,EAAE,CAAC;YACzC,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,qBAAqB,CAAC,CAAC;QAC9D,CAAC;QAED,uEAAuE;QACvE,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;YAC7D,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5E,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YACzF,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QAC5E,CAAC;QAED,wBAAwB;QACxB,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;YAC3E,gBAAgB,CAAC,GAAG,CAAC,MAAoB,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;YAC/D,MAAM,eAAe,CAAC,WAAW,EAAE;gBACjC,MAAM,EAAE,UAAU,CAAC,OAAO;gBAC1B,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,CAAC;QAED,oBAAoB;QACpB,MAAM,eAAe,GAAG,GAAG,CAAC,WAAW,CAAC;QACxC,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,oCAAoC;YACpC,MAAM,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;QACnF,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,QAAQ,CACZ,WAAW,EACX,GAAG,CAAC,QAAQ,EACZ,SAAS,eAAe,gCAAgC,CACzD,CAAC;YACF,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QAChF,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAqB;YAChC,GAAG,GAAG;YACN,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,WAAW;SACpB,CAAC;QAEF,mBAAmB;QACnB,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACrE,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAE/B,MAAM,YAAY,GAAG,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACxF,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAE,GAAG,CAAC,WAAkC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE3B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,MAAM,CAAC,aAAa,MAAM,CAAC,MAAM,IAAI,eAAe,EAAE,EAAE;gBAClE,WAAW;gBACX,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,eAAe;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB;QAChB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACxC,OAAO,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1E,CAAC;QAED,6BAA6B;QAC7B,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,eAAe,CAAC,WAAW,EAAE;gBACjC,MAAM,EAAE,UAAU,CAAC,OAAO;gBAC1B,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,eAAe,EAAE,qCAAqC;gBACnE,eAAe,EAAE,MAAM,CAAC,SAAS;gBACjC,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC;QAED,iDAAiD;QACjD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAC9D,IAAI,OAAe,CAAC;YACpB,IAAI,CAAC;gBACH,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACpD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,iBAAiB,CACtB,WAAW,EACX,GAAG,EACH,IAAI,EACJ,OAAO,EACP,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CACjD,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,CAAC,WAAW,EAAE;gBACjC,MAAM,EAAE,UAAU,CAAC,OAAO;gBAC1B,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,QAAQ;gBACrB,eAAe,EAAE,IAAI;gBACrB,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;aACvC,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC;QAED,kEAAkE;QAClE,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,MAAM,CAAC,gBAAgB;iBACxC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;iBAClE,MAAM,CAAC,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YAE3C,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,UAAU,CAC5C,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACjF,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;YAC9D,CAAC,CAAC,CACH,CAAC;YAEF,wFAAwF;YACxF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE,CAAC;gBACpC,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACnC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC;oBAC3E,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;gBACzF,CAAC;YACH,CAAC;YAED,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,MAAM,KAAK,UAAU;gBACvB,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,CAAC,CAClF,CAAC;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,iBAAiB,CACtB,WAAW,EACX,GAAG,EACH,IAAI,EACJ,OAAO,EACP,sCAAsC,CACvC,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;YAC9D,MAAM,eAAe,CAAC,WAAW,EAAE;gBACjC,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,QAAQ;aACtB,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC9C,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;YACnF,CAAC;YACD,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC;QAED,+CAA+C;QAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,eAAe,CAAC,WAAW,EAAE;gBACjC,WAAW,EAAE,OAAO;gBACpB,WAAW,EAAE,MAAM,CAAC,QAAQ;aAC7B,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC;QAED,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,eAAe,CAAC,WAAW,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;YAC7D,MAAM,YAAY,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC9C,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,CAAC;QACnF,CAAC;QAED,MAAM,eAAe,CAAC,WAAW,EAAE;YACjC,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,QAAQ;SACtB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;IACjF,CAAC;IAED;;OAEG;IACH,KAAK,UAAU,MAAM,CAAC,WAAmB,EAAE,MAAgB;QACzD,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aAC9C,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,aAAa,CAAC,CAAC;QAEvE,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,uBAAuB,WAAW,0BAA0B,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,SAAS,GAAG,CAAC,QAAQ,kBAAkB,CAAC,CAAC;QAEpE,mCAAmC;QACnC,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;QAEpE,MAAM,eAAe,CAAC,WAAW,EAAE;YACjC,MAAM,EAAE,UAAU,CAAC,OAAO;YAC1B,WAAW,EAAE,QAAQ;YACrB,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK;YAChD,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,oBAAoB,CAAC,SAAiB,EAAE,MAAgB;QACrE,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC;aACtC,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CACJ,GAAG,CACD,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAClD,EAAE,CAAC,mBAAmB,CAAC,eAAe,EAAE,SAAS,CAAC,CACnD,CACF,CAAC;QAEJ,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,UAAU,YAAY,CAAC,KAAK,GAAG,EAAE;QACpC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,EAAE,EAAE,CAAC;aACtC,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CACJ,EAAE,CACA,OAAO,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC7E,GAAG,CACD,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,EAClD,MAAM,CAAC,mBAAmB,CAAC,eAAe,CAAC,EAC3C,GAAG,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CACrC,CACF,CACF;aACA,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,KAAK,UAAU,MAAM,CAAC,WAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aAC9C,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,aAAa,CAAC,CAAC;QAEvE,IAAI,UAAU,CAAC,GAAG,CAAC,MAAoB,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,uBAAuB,WAAW,kCAAkC,GAAG,CAAC,MAAM,GAAG,CAClF,CAAC;QACJ,CAAC;QAED,gBAAgB,CAAC,GAAG,CAAC,MAAoB,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QACjE,MAAM,eAAe,CAAC,WAAW,EAAE;YACjC,MAAM,EAAE,UAAU,CAAC,SAAS;YAC5B,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;QAEH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,MAAM,CAAC,kBAAkB,GAAG,CAAC,QAAQ,EAAE,EAAE;gBACnD,WAAW;gBACX,QAAQ,EAAE,GAAG,CAAC,QAAQ;aACvB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,UAAU,MAAM,CAAC,WAAmB;QACvC,MAAM,IAAI,GAAG,MAAM,EAAE;aAClB,MAAM,EAAE;aACR,IAAI,CAAC,mBAAmB,CAAC;aACzB,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;aAC9C,KAAK,CAAC,CAAC,CAAC,CAAC;QAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAiC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,WAAW,aAAa,CAAC,CAAC;QAEvE,OAAO,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACpE,CAAC;IAED,yBAAyB;IAEzB,KAAK,UAAU,iBAAiB,CAC9B,WAAmB,EACnB,GAAqB,EACrB,IAAoB,EACpB,OAA2B,EAC3B,KAAc;QAEd,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,CAAC,CAAC;QAE7C,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;YAC7B,8CAA8C;YAC9C,MAAM,eAAe,CAAC,WAAW,EAAE;gBACjC,WAAW,EAAE,OAAO;gBACpB,UAAU;gBACV,SAAS,EAAE,KAAK,IAAI,IAAI;aACzB,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC;QACjF,CAAC;QAED,oCAAoC;QACpC,MAAM,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IAChF,CAAC;IAED,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,QAAgB;QAC/D,MAAM,eAAe,CAAC,WAAW,EAAE;YACjC,MAAM,EAAE,UAAU,CAAC,SAAS;YAC5B,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,MAAM,CAAC,kBAAkB,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9E,CAAC;IACH,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,WAAmB,EAAE,QAAgB,EAAE,KAAc;QAC3E,MAAM,eAAe,CAAC,WAAW,EAAE;YACjC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,SAAS,EAAE,KAAK,IAAI,eAAe;YACnC,WAAW,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC,CAAC;QACH,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,KAAK,CAAC,MAAM,CAAC,eAAe,QAAQ,EAAE,EAAE;gBAC5C,WAAW;gBACX,QAAQ;gBACR,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,UAAU,eAAe,CAAC,EAAU,EAAE,OAA4B;QACrE,MAAM,EAAE;aACL,MAAM,CAAC,mBAAmB,CAAC;aAC3B,GAAG,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;aAC1C,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AACxF,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,KAAiB,EAAE,eAAuB;IACjE,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;IAC/D,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,UAAkB,EAAE,OAAe,EAAE,WAAW,GAAG,IAAI;IACvF,IAAI,OAAO,KAAK,eAAe,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,WAAW,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,OAAO,WAAW,CAAC,CAAC,QAAQ;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,6CAA6C,CACjF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,IAAI,CAAC,CAAC;IAC3D,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAErC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,GAAG,IAAI,CAAC;IACtC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,GAAG,MAAM,CAAC;IACxC,IAAI,IAAI,KAAK,GAAG;QAAE,OAAO,KAAK,GAAG,SAAS,CAAC;IAC3C,OAAO,KAAK,GAAG,UAAU,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/flows/engine.ts"],"names":[],"mappings":"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"}