@versori/run 0.5.5 → 0.5.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 (45) hide show
  1. package/esm/src/context/Context.d.ts +6 -1
  2. package/esm/src/context/Context.d.ts.map +1 -1
  3. package/esm/src/context/Context.js +5 -2
  4. package/esm/src/context/VanillaContext.d.ts +1 -1
  5. package/esm/src/context/VanillaContext.d.ts.map +1 -1
  6. package/esm/src/context/VanillaContext.js +5 -2
  7. package/esm/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
  8. package/esm/src/interpreter/durable/compilers/catch.js +4 -4
  9. package/esm/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  10. package/esm/src/interpreter/durable/compilers/durableworkflow.js +50 -29
  11. package/esm/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
  12. package/esm/src/interpreter/memory/compilers/catch.js +4 -4
  13. package/esm/src/interpreter/vanilla/compilers/catch.d.ts.map +1 -1
  14. package/esm/src/interpreter/vanilla/compilers/catch.js +2 -2
  15. package/esm/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
  16. package/esm/src/interpreter/vanilla/compilers/durableworkflow.js +37 -16
  17. package/esm/src/kv/memory/MemoryKeyValue.d.ts.map +1 -1
  18. package/esm/src/kv/memory/MemoryKeyValue.js +70 -19
  19. package/esm/src/kv/nats/NatsKeyValue.d.ts.map +1 -1
  20. package/esm/src/kv/nats/NatsKeyValue.js +77 -23
  21. package/esm/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  22. package/esm/src/kv/sdk/SDKKeyValue.js +103 -38
  23. package/package.json +1 -1
  24. package/script/src/context/Context.d.ts +6 -1
  25. package/script/src/context/Context.d.ts.map +1 -1
  26. package/script/src/context/Context.js +5 -2
  27. package/script/src/context/VanillaContext.d.ts +1 -1
  28. package/script/src/context/VanillaContext.d.ts.map +1 -1
  29. package/script/src/context/VanillaContext.js +5 -2
  30. package/script/src/interpreter/durable/compilers/catch.d.ts.map +1 -1
  31. package/script/src/interpreter/durable/compilers/catch.js +4 -4
  32. package/script/src/interpreter/durable/compilers/durableworkflow.d.ts.map +1 -1
  33. package/script/src/interpreter/durable/compilers/durableworkflow.js +50 -29
  34. package/script/src/interpreter/memory/compilers/catch.d.ts.map +1 -1
  35. package/script/src/interpreter/memory/compilers/catch.js +4 -4
  36. package/script/src/interpreter/vanilla/compilers/catch.d.ts.map +1 -1
  37. package/script/src/interpreter/vanilla/compilers/catch.js +2 -2
  38. package/script/src/interpreter/vanilla/compilers/durableworkflow.d.ts.map +1 -1
  39. package/script/src/interpreter/vanilla/compilers/durableworkflow.js +37 -16
  40. package/script/src/kv/memory/MemoryKeyValue.d.ts.map +1 -1
  41. package/script/src/kv/memory/MemoryKeyValue.js +73 -19
  42. package/script/src/kv/nats/NatsKeyValue.d.ts.map +1 -1
  43. package/script/src/kv/nats/NatsKeyValue.js +80 -23
  44. package/script/src/kv/sdk/SDKKeyValue.d.ts.map +1 -1
  45. package/script/src/kv/sdk/SDKKeyValue.js +106 -38
@@ -12,6 +12,8 @@
12
12
  */
13
13
  import { KvOperationsService } from '../../dsl/http/versori/kvapi/services/KvOperationsService.js';
14
14
  import { QueryOperationsService } from '../../dsl/http/versori/kvapi/services/QueryOperationsService.js';
15
+ import opentelemetry from '@opentelemetry/api';
16
+ const tracer = opentelemetry.trace.getTracer('versori-run-kv');
15
17
  export class SDKKeyValue {
16
18
  constructor(store, prefix) {
17
19
  Object.defineProperty(this, "store", {
@@ -28,59 +30,122 @@ export class SDKKeyValue {
28
30
  });
29
31
  }
30
32
  async get(key, options = {}) {
31
- try {
32
- const k = this.generateKey(key instanceof Array ? key.join('/') : key);
33
- const entry = await KvOperationsService.getKv(this.store.id, k);
34
- if (entry.value === undefined) {
35
- if (options.throwOnNotFound) {
36
- throw new Error('Key not found');
33
+ return await tracer.startActiveSpan('kv.get', async (span) => {
34
+ const keyStr = key instanceof Array ? key.join('/') : key;
35
+ span.setAttribute('kv.key', keyStr);
36
+ span.setAttribute('kv.store_id', this.store.id);
37
+ try {
38
+ const k = this.generateKey(keyStr);
39
+ const entry = await KvOperationsService.getKv(this.store.id, k);
40
+ if (entry.value === undefined) {
41
+ if (options.throwOnNotFound) {
42
+ throw new Error('Key not found');
43
+ }
44
+ return undefined;
37
45
  }
38
- return undefined;
46
+ return JSON.parse(String(entry.value));
39
47
  }
40
- return JSON.parse(String(entry.value));
41
- }
42
- catch (error) {
43
- if (options.throwOnNotFound && error instanceof Error &&
44
- error.message === 'Key not found') {
45
- throw new Error('Key not found');
48
+ catch (error) {
49
+ if (options.throwOnNotFound && error instanceof Error &&
50
+ error.message === 'Key not found') {
51
+ throw new Error('Key not found');
52
+ }
53
+ else if (!options.throwOnNotFound) {
54
+ return undefined;
55
+ }
56
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
57
+ console.error('Unknown error reading from KV store', error);
58
+ throw new Error('Unknown error reading from KV store');
46
59
  }
47
- else if (!options.throwOnNotFound) {
48
- return undefined;
60
+ finally {
61
+ span.end();
49
62
  }
50
- console.error('Unknown error reading from KV store', error);
51
- throw new Error('Unknown error reading from KV store');
52
- }
63
+ });
53
64
  }
54
65
  async set(key, value) {
55
- const payload = JSON.stringify(value);
56
- const k = this.generateKey(key instanceof Array ? key.join('/') : key);
57
- await KvOperationsService.setKv(this.store.id, k, {
58
- value: payload,
59
- options: {},
66
+ return await tracer.startActiveSpan('kv.set', async (span) => {
67
+ const keyStr = key instanceof Array ? key.join('/') : key;
68
+ span.setAttribute('kv.key', keyStr);
69
+ span.setAttribute('kv.store_id', this.store.id);
70
+ try {
71
+ const payload = JSON.stringify(value);
72
+ const k = this.generateKey(keyStr);
73
+ await KvOperationsService.setKv(this.store.id, k, {
74
+ value: payload,
75
+ options: {},
76
+ });
77
+ }
78
+ catch (error) {
79
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
80
+ throw error;
81
+ }
82
+ finally {
83
+ span.end();
84
+ }
60
85
  });
61
86
  }
62
87
  async delete(key) {
63
- const k = this.generateKey(key instanceof Array ? key.join('/') : key);
64
- await KvOperationsService.deleteKv(this.store.id, k, {
65
- options: {},
88
+ return await tracer.startActiveSpan('kv.delete', async (span) => {
89
+ const keyStr = key instanceof Array ? key.join('/') : key;
90
+ span.setAttribute('kv.key', keyStr);
91
+ span.setAttribute('kv.store_id', this.store.id);
92
+ try {
93
+ const k = this.generateKey(keyStr);
94
+ await KvOperationsService.deleteKv(this.store.id, k, {
95
+ options: {},
96
+ });
97
+ }
98
+ catch (error) {
99
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
100
+ throw error;
101
+ }
102
+ finally {
103
+ span.end();
104
+ }
66
105
  });
67
106
  }
68
107
  async count(prefix) {
69
- const k = this.generateKey(prefix).split('/');
70
- return await QueryOperationsService.countKv(this.store.id, {
71
- selector: {
72
- prefix: k,
73
- },
108
+ return await tracer.startActiveSpan('kv.count', async (span) => {
109
+ span.setAttribute('kv.prefix', prefix.join('/'));
110
+ span.setAttribute('kv.store_id', this.store.id);
111
+ try {
112
+ const k = this.generateKey(prefix).split('/');
113
+ return await QueryOperationsService.countKv(this.store.id, {
114
+ selector: {
115
+ prefix: k,
116
+ },
117
+ });
118
+ }
119
+ catch (error) {
120
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
121
+ throw error;
122
+ }
123
+ finally {
124
+ span.end();
125
+ }
74
126
  });
75
127
  }
76
128
  async list(prefix, options) {
77
- const k = this.generateKey(prefix).split('/');
78
- return await QueryOperationsService.listKv(this.store.id, {
79
- selector: {
80
- prefix: k,
81
- ...options?.selector,
82
- },
83
- options: options?.options,
129
+ return await tracer.startActiveSpan('kv.list', async (span) => {
130
+ span.setAttribute('kv.prefix', prefix.join('/'));
131
+ span.setAttribute('kv.store_id', this.store.id);
132
+ try {
133
+ const k = this.generateKey(prefix).split('/');
134
+ return await QueryOperationsService.listKv(this.store.id, {
135
+ selector: {
136
+ prefix: k,
137
+ ...options?.selector,
138
+ },
139
+ options: options?.options,
140
+ });
141
+ }
142
+ catch (error) {
143
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
144
+ throw error;
145
+ }
146
+ finally {
147
+ span.end();
148
+ }
84
149
  });
85
150
  }
86
151
  generateKey(key) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@versori/run",
3
- "version": "0.5.5",
3
+ "version": "0.5.7",
4
4
  "description": "Versori Run",
5
5
  "homepage": "https://github.com/versori/versori-run#readme",
6
6
  "repository": {
@@ -15,6 +15,11 @@ export type ContextOptions = {
15
15
  request?: express.Request;
16
16
  onSuccess?: OnSuccessFn;
17
17
  onError?: OnErrorFn;
18
+ /**
19
+ * Set by the catch task compiler when execution continues via `.catch()`. The durable workflow trigger's
20
+ * `onSuccess` skips queue completion when this is set so recovered errors are not reported as completed runs.
21
+ */
22
+ recoveredFromCatch?: boolean;
18
23
  };
19
24
  /**
20
25
  * CreateIssue is the payload for creating a new issue.
@@ -104,7 +109,7 @@ export declare class ContextImpl<D, Index = void> implements Context<D> {
104
109
  get activation(): ActivationImpl;
105
110
  get workflow(): Workflow | undefined;
106
111
  setIndex(idx: number): ContextImpl<D, number>;
107
- withData<D2>(data: D2): ContextImpl<D2, Index>;
112
+ withData<D2>(data: D2, optionsPatch?: Partial<ContextOptions>): ContextImpl<D2, Index>;
108
113
  openKv(scope?: KeyValueScope): KeyValue;
109
114
  request(): express.Request | undefined;
110
115
  workflowClient(): WorkflowInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Context.d.ts","sourceRoot":"","sources":["../../../src/src/context/Context.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,KAAK,OAAO,MAAM,SAAS,CAAC;AAExC,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAgB,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAIpF,MAAM,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;AAEpD,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACtB;;OAEG;IACH,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAEjB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAExC;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE9E;;;OAGG;IACH,WAAW,IAAI,mBAAmB,CAAC;IAEnC;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;;;;;OAMG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IAE5F;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;IAEvC,cAAc,IAAI,iBAAiB,CAAC;CACvC;AAED,qBAAa,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAE,YAAW,OAAO,CAAC,CAAC,CAAC;;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IAGjB,GAAG,EAAE,KAAK,CAAC;IAEX,QAAQ,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;IAE1B,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;gBAI7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,mBAAmB,EAC1B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,IAAI,EACf,IAAI,EAAE,CAAC,EACP,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,QAAQ,EAChB,KAAK,CAAC,EAAE,QAAQ,EAChB,OAAO,GAAE,cAAmB;IA2BhC,IAAI,UAAU,IAAI,cAAc,CAE/B;IAED,IAAI,QAAQ,IAAI,QAAQ,GAAG,SAAS,CAEnC;IAED,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC;IAkB7C,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC;IAmBtF,MAAM,CAAC,KAAK,GAAE,aAA2B,GAAG,QAAQ;IAepD,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,SAAS;IAItC,cAAc,IAAI,iBAAiB;IAQ7B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;IAgCtE,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAYpH,WAAW,IAAI,mBAAmB;IAUlC,OAAO,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAe5C,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAQlD"}
@@ -114,8 +114,11 @@ class ContextImpl {
114
114
  next.idx = idx;
115
115
  return next;
116
116
  }
117
- withData(data) {
118
- return new ContextImpl(this.log, this.kvp, __classPrivateFieldGet(this, _ContextImpl_creds, "f"), this.executionId, this.startTime, data, __classPrivateFieldGet(this, _ContextImpl_activation, "f"), __classPrivateFieldGet(this, _ContextImpl_issues, "f"), this.queue, this.options);
117
+ withData(data, optionsPatch) {
118
+ const nextOptions = optionsPatch !== undefined
119
+ ? { ...this.options, ...optionsPatch }
120
+ : this.options;
121
+ return new ContextImpl(this.log, this.kvp, __classPrivateFieldGet(this, _ContextImpl_creds, "f"), this.executionId, this.startTime, data, __classPrivateFieldGet(this, _ContextImpl_activation, "f"), __classPrivateFieldGet(this, _ContextImpl_issues, "f"), this.queue, nextOptions);
119
122
  }
120
123
  openKv(scope = ':project:') {
121
124
  if (scope === ':execution:') {
@@ -36,7 +36,7 @@ export declare class VanillaContext<D, Index = void> implements Context<D> {
36
36
  get activation(): ActivationInterface;
37
37
  get workflow(): Workflow | undefined;
38
38
  setIndex(idx: number): VanillaContext<D, number>;
39
- withData<D2>(data: D2): VanillaContext<D2, Index>;
39
+ withData<D2>(data: D2, optionsPatch?: Partial<ContextOptions>): VanillaContext<D2, Index>;
40
40
  openKv(scope?: KeyValueScope): KeyValue;
41
41
  request(): express.Request | undefined;
42
42
  workflowClient(): WorkflowInterface;
@@ -1 +1 @@
1
- {"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VanillaContext.d.ts","sourceRoot":"","sources":["../../../src/src/context/VanillaContext.ts"],"names":[],"mappings":"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"}
@@ -165,8 +165,11 @@ class VanillaContext {
165
165
  next.idx = idx;
166
166
  return next;
167
167
  }
168
- withData(data) {
169
- return new VanillaContext(this.log, this.kvp, this.executionId, this.startTime, data, __classPrivateFieldGet(this, _VanillaContext_activation, "f"), __classPrivateFieldGet(this, _VanillaContext_issues, "f"), this.queue, this.options);
168
+ withData(data, optionsPatch) {
169
+ const nextOptions = optionsPatch !== undefined
170
+ ? { ...this.options, ...optionsPatch }
171
+ : this.options;
172
+ return new VanillaContext(this.log, this.kvp, this.executionId, this.startTime, data, __classPrivateFieldGet(this, _VanillaContext_activation, "f"), __classPrivateFieldGet(this, _VanillaContext_issues, "f"), this.queue, nextOptions);
170
173
  }
171
174
  openKv(scope = ':project:') {
172
175
  if (scope === ':execution:') {
@@ -1 +1 @@
1
- {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAqFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
1
+ {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAuFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
@@ -46,15 +46,15 @@ function compileCatch(compilerCtx, task) {
46
46
  reason: 'error',
47
47
  severity: 'high',
48
48
  });
49
- return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }))));
49
+ return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
50
50
  }
51
51
  ctx.log.error('execution has encountered an error', {
52
52
  error: error,
53
53
  });
54
54
  compilerCtx.issueProvider.submitIssue({
55
55
  annotations: {
56
- 'error': error.message,
57
- 'stack': error.stack || '',
56
+ 'error': String(error),
57
+ 'stack': '',
58
58
  'workflowId': ctx.options.workflow?.id || ctx.workflow?.id || '',
59
59
  'executionId': ctx.executionId,
60
60
  'activationId': ctx.activation.id,
@@ -65,7 +65,7 @@ function compileCatch(compilerCtx, task) {
65
65
  });
66
66
  span.setAttribute('error', `${error}`);
67
67
  span.end();
68
- return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }))));
68
+ return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
69
69
  });
70
70
  }));
71
71
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAW,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CA2F9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
1
+ {"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/durable/compilers/durableworkflow.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAW,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAgH9C;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
@@ -44,42 +44,63 @@ function compileDurableWorkflow(ctx, trigger, signal) {
44
44
  continue;
45
45
  }
46
46
  for (const wf of wfs.workflows) {
47
- const payload = wf.payload ? atob(wf.payload) : '{}';
48
- const data = JSON.parse(payload);
49
- let activation;
50
- if (wf.metadata?.activationId) {
47
+ await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, async (span) => {
48
+ span.setAttribute('task.id', trigger.id);
49
+ span.setAttribute('task.type', 'durableworkflow');
50
+ span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
51
+ if (wf.metadata?.activationId) {
52
+ span.setAttribute('activation.id', wf.metadata.activationId);
53
+ }
51
54
  try {
52
- const { data } = await ctx.platformApi.getActivation({
53
- path: {
54
- activation_id: wf.metadata.activationId,
55
- organisation_id: ctx.organisationId,
56
- environment_id: Deno.env.get(constants_js_1.envVarEnvId) || 'development',
55
+ const payload = wf.payload ? atob(wf.payload) : '{}';
56
+ const data = JSON.parse(payload);
57
+ let activation;
58
+ if (wf.metadata?.activationId) {
59
+ try {
60
+ const { data } = await ctx.platformApi.getActivation({
61
+ path: {
62
+ activation_id: wf.metadata.activationId,
63
+ organisation_id: ctx.organisationId,
64
+ environment_id: Deno.env.get(constants_js_1.envVarEnvId) || 'development',
65
+ },
66
+ throwOnError: true,
67
+ });
68
+ activation = data;
69
+ }
70
+ catch (error) {
71
+ ctx.log.error('Failed to get activation', { error });
72
+ throw new Error('Failed to get activation');
73
+ }
74
+ }
75
+ const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
76
+ workflow: wf,
77
+ onSuccess: (completedContext) => {
78
+ const opts = completedContext.options;
79
+ if (opts.recoveredFromCatch) {
80
+ return;
81
+ }
82
+ // locked status means we own the workflow and it's not completed yet
83
+ if (wf.status !== 'locked') {
84
+ return;
85
+ }
86
+ ctx.queueProvider.complete({
87
+ id: wf.id,
88
+ output: btoa(JSON.stringify(completedContext.data)),
89
+ status: 'completed',
90
+ });
57
91
  },
58
- throwOnError: true,
59
92
  });
60
- activation = data;
93
+ consecutiveErrors = 0;
94
+ subscriber.next(newContext);
61
95
  }
62
96
  catch (error) {
63
- ctx.log.error('Failed to get activation', { error });
64
- throw new Error('Failed to get activation');
97
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
98
+ ctx.log.error('Error processing workflow', { error });
99
+ }
100
+ finally {
101
+ span.end();
65
102
  }
66
- }
67
- const newContext = ctx.contextProvider.createWithExecutionId(activation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
68
- workflow: wf,
69
- onSuccess: (completedContext) => {
70
- // locked status means we own the workflow and it's not completed yet
71
- if (wf.status !== 'locked') {
72
- return;
73
- }
74
- ctx.queueProvider.complete({
75
- id: wf.id,
76
- output: btoa(JSON.stringify(completedContext.data)),
77
- status: 'completed',
78
- });
79
- },
80
103
  });
81
- consecutiveErrors = 0;
82
- subscriber.next(newContext);
83
104
  }
84
105
  }
85
106
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAoFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
1
+ {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/memory/compilers/catch.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAsFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
@@ -45,12 +45,12 @@ function compileCatch(compilerCtx, task) {
45
45
  reason: 'error',
46
46
  severity: 'high',
47
47
  });
48
- return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }))));
48
+ return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
49
49
  }
50
50
  compilerCtx.issueProvider.submitIssue({
51
51
  annotations: {
52
- 'error': error.message,
53
- 'stack': error.stack || '',
52
+ 'error': String(error),
53
+ 'stack': '',
54
54
  'workflowId': ctx.options.workflow?.id || ctx.workflow?.id || '',
55
55
  'executionId': ctx.executionId,
56
56
  'activationId': ctx.activation.id,
@@ -64,7 +64,7 @@ function compileCatch(compilerCtx, task) {
64
64
  });
65
65
  span.setAttribute('error', `${error}`);
66
66
  span.end();
67
- return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }))));
67
+ return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
68
68
  });
69
69
  }));
70
70
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/catch.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AAwFnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
1
+ {"version":3,"file":"catch.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/catch.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAG5D,OAAO,EAA2B,YAAY,EAAE,MAAM,YAAY,CAAC;AA0FnE,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAGrE,CAAC"}
@@ -47,7 +47,7 @@ function compileCatch(compilerCtx, task) {
47
47
  // reason: 'error',
48
48
  // severity: 'high',
49
49
  // });
50
- return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }))));
50
+ return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, error.message, { cause: error }), { recoveredFromCatch: true })));
51
51
  }
52
52
  ctx.log.error('execution has encountered an error', {
53
53
  error: error,
@@ -66,7 +66,7 @@ function compileCatch(compilerCtx, task) {
66
66
  // });
67
67
  span.setAttribute('error', `${error}`);
68
68
  span.end();
69
- return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }))));
69
+ return errorOperator((0, rxjs_1.of)(ctx.withData(new ExecutionError_js_1.ExecutionError(ctx, `${error}`, { cause: error }), { recoveredFromCatch: true })));
70
70
  });
71
71
  }));
72
72
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CA6EjD;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
1
+ {"version":3,"file":"durableworkflow.d.ts","sourceRoot":"","sources":["../../../../../src/src/interpreter/vanilla/compilers/durableworkflow.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EACH,mBAAmB,EACnB,sBAAsB,EACzB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAqB,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEpE,wBAAgB,sBAAsB,CAClC,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,WAAW,GACpB,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC,CAkGjD;AAED,eAAO,MAAM,uBAAuB,EAAE,eAAe,CAAC,mBAAmB,EAAE,sBAAsB,CAIhG,CAAC"}
@@ -44,24 +44,45 @@ function compileDurableWorkflow(ctx, trigger, signal) {
44
44
  continue;
45
45
  }
46
46
  for (const wf of wfs.workflows) {
47
- const payload = wf.payload ? atob(wf.payload) : '{}';
48
- const data = JSON.parse(payload);
49
- const newContext = ctx.contextProvider.createWithExecutionId(ObservableCompiler_js_1.VanillaActivation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
50
- workflow: wf,
51
- onSuccess: (completedContext) => {
52
- // locked status means we own the workflow and it's not completed yet
53
- if (wf.status !== 'locked') {
54
- return;
55
- }
56
- ctx.queueProvider.complete({
57
- id: wf.id,
58
- output: btoa(JSON.stringify(completedContext.data)),
59
- status: 'completed',
47
+ await ctx.tracer.startActiveSpan(`durableworkflow-${trigger.id}`, (span) => {
48
+ span.setAttribute('task.id', trigger.id);
49
+ span.setAttribute('task.type', 'durableworkflow');
50
+ span.setAttribute('execution.id', wf.metadata?.executionId ?? '');
51
+ if (wf.metadata?.activationId) {
52
+ span.setAttribute('activation.id', wf.metadata.activationId);
53
+ }
54
+ try {
55
+ const payload = wf.payload ? atob(wf.payload) : '{}';
56
+ const data = JSON.parse(payload);
57
+ const newContext = ctx.contextProvider.createWithExecutionId(ObservableCompiler_js_1.VanillaActivation, data, wf.metadata?.executionId ?? (0, mod_js_1.ulid)().toString(), {
58
+ workflow: wf,
59
+ onSuccess: (completedContext) => {
60
+ const opts = completedContext.options;
61
+ if (opts.recoveredFromCatch) {
62
+ return;
63
+ }
64
+ // locked status means we own the workflow and it's not completed yet
65
+ if (wf.status !== 'locked') {
66
+ return;
67
+ }
68
+ ctx.queueProvider.complete({
69
+ id: wf.id,
70
+ output: btoa(JSON.stringify(completedContext.data)),
71
+ status: 'completed',
72
+ });
73
+ },
60
74
  });
61
- },
75
+ consecutiveErrors = 0;
76
+ subscriber.next(newContext);
77
+ }
78
+ catch (error) {
79
+ span.recordException(error instanceof Error ? error : new Error(String(error)));
80
+ ctx.log.error('Error processing workflow', { error });
81
+ }
82
+ finally {
83
+ span.end();
84
+ }
62
85
  });
63
- consecutiveErrors = 0;
64
- subscriber.next(newContext);
65
86
  }
66
87
  }
67
88
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;AAC/C,qBAAa,cAAe,YAAW,QAAQ;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAEhD,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAc/E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAMvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAKxE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAIpD"}
1
+ {"version":3,"file":"MemoryKeyValue.d.ts","sourceRoot":"","sources":["../../../../src/src/kv/memory/MemoryKeyValue.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,EACH,eAAe,EACf,aAAa,EACb,cAAc,EACjB,MAAM,uCAAuC,CAAC;AAK/C,qBAAa,cAAe,YAAW,QAAQ;IAC3C,OAAO,CAAC,KAAK,CAAmC;IAE1C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IA0B/E,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;CAWpD"}