@loopstack/core 0.37.0 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist/common/errors/index.d.ts +1 -0
  2. package/dist/common/errors/index.d.ts.map +1 -1
  3. package/dist/common/errors/index.js +1 -0
  4. package/dist/common/errors/index.js.map +1 -1
  5. package/dist/common/errors/transition-aborted.error.d.ts +4 -0
  6. package/dist/common/errors/transition-aborted.error.d.ts.map +1 -0
  7. package/dist/common/errors/transition-aborted.error.js +7 -0
  8. package/dist/common/errors/transition-aborted.error.js.map +1 -0
  9. package/dist/common/interfaces/app-config.interface.d.ts +1 -0
  10. package/dist/common/interfaces/app-config.interface.d.ts.map +1 -1
  11. package/dist/common/services/index.d.ts +1 -0
  12. package/dist/common/services/index.d.ts.map +1 -1
  13. package/dist/common/services/index.js +1 -0
  14. package/dist/common/services/index.js.map +1 -1
  15. package/dist/common/services/system-clock.d.ts +6 -0
  16. package/dist/common/services/system-clock.d.ts.map +1 -0
  17. package/dist/common/services/system-clock.js +21 -0
  18. package/dist/common/services/system-clock.js.map +1 -0
  19. package/dist/loop-core.module.d.ts +0 -1
  20. package/dist/loop-core.module.d.ts.map +1 -1
  21. package/dist/loop-core.module.js +10 -5
  22. package/dist/loop-core.module.js.map +1 -1
  23. package/dist/persistence/services/workflow.service.d.ts.map +1 -1
  24. package/dist/persistence/services/workflow.service.js +4 -1
  25. package/dist/persistence/services/workflow.service.js.map +1 -1
  26. package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.d.ts +1 -0
  27. package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.d.ts.map +1 -1
  28. package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.js +8 -0
  29. package/dist/scheduler/services/task-processor/run-workflow-task-processor.service.js.map +1 -1
  30. package/dist/scheduler/services/task-processor.service.d.ts.map +1 -1
  31. package/dist/scheduler/services/task-processor.service.js +1 -0
  32. package/dist/scheduler/services/task-processor.service.js.map +1 -1
  33. package/dist/scheduler/services/workflow-runner.service.d.ts.map +1 -1
  34. package/dist/scheduler/services/workflow-runner.service.js +7 -1
  35. package/dist/scheduler/services/workflow-runner.service.js.map +1 -1
  36. package/dist/scheduler/task-queue.module.d.ts.map +1 -1
  37. package/dist/scheduler/task-queue.module.js +9 -5
  38. package/dist/scheduler/task-queue.module.js.map +1 -1
  39. package/dist/workflow-processor/services/document-persistence.service.d.ts.map +1 -1
  40. package/dist/workflow-processor/services/document-persistence.service.js +12 -1
  41. package/dist/workflow-processor/services/document-persistence.service.js.map +1 -1
  42. package/dist/workflow-processor/services/document-store.service.d.ts +1 -0
  43. package/dist/workflow-processor/services/document-store.service.d.ts.map +1 -1
  44. package/dist/workflow-processor/services/document-store.service.js +14 -1
  45. package/dist/workflow-processor/services/document-store.service.js.map +1 -1
  46. package/dist/workflow-processor/services/index.d.ts +2 -1
  47. package/dist/workflow-processor/services/index.d.ts.map +1 -1
  48. package/dist/workflow-processor/services/index.js +2 -1
  49. package/dist/workflow-processor/services/index.js.map +1 -1
  50. package/dist/workflow-processor/services/processors/workflow-processor.service.d.ts +7 -2
  51. package/dist/workflow-processor/services/processors/workflow-processor.service.d.ts.map +1 -1
  52. package/dist/workflow-processor/services/processors/workflow-processor.service.js +163 -16
  53. package/dist/workflow-processor/services/processors/workflow-processor.service.js.map +1 -1
  54. package/dist/workflow-processor/services/run-trace.service.d.ts +19 -0
  55. package/dist/workflow-processor/services/run-trace.service.d.ts.map +1 -0
  56. package/dist/workflow-processor/services/run-trace.service.js +110 -0
  57. package/dist/workflow-processor/services/run-trace.service.js.map +1 -0
  58. package/dist/workflow-processor/services/stateless-child-runner.service.d.ts +14 -0
  59. package/dist/workflow-processor/services/stateless-child-runner.service.d.ts.map +1 -0
  60. package/dist/workflow-processor/services/stateless-child-runner.service.js +40 -0
  61. package/dist/workflow-processor/services/stateless-child-runner.service.js.map +1 -0
  62. package/dist/workflow-processor/services/tool-pipeline.service.d.ts +4 -1
  63. package/dist/workflow-processor/services/tool-pipeline.service.d.ts.map +1 -1
  64. package/dist/workflow-processor/services/tool-pipeline.service.js +63 -5
  65. package/dist/workflow-processor/services/tool-pipeline.service.js.map +1 -1
  66. package/dist/workflow-processor/services/workflow-orchestration.service.d.ts +4 -1
  67. package/dist/workflow-processor/services/workflow-orchestration.service.d.ts.map +1 -1
  68. package/dist/workflow-processor/services/workflow-orchestration.service.js +56 -4
  69. package/dist/workflow-processor/services/workflow-orchestration.service.js.map +1 -1
  70. package/dist/workflow-processor/utils/execution-scope.d.ts +10 -3
  71. package/dist/workflow-processor/utils/execution-scope.d.ts.map +1 -1
  72. package/dist/workflow-processor/utils/execution-scope.js.map +1 -1
  73. package/dist/workflow-processor/utils/index.d.ts +1 -0
  74. package/dist/workflow-processor/utils/index.d.ts.map +1 -1
  75. package/dist/workflow-processor/utils/index.js +1 -0
  76. package/dist/workflow-processor/utils/index.js.map +1 -1
  77. package/dist/workflow-processor/utils/run-trace-collector.d.ts +14 -0
  78. package/dist/workflow-processor/utils/run-trace-collector.d.ts.map +1 -0
  79. package/dist/workflow-processor/utils/run-trace-collector.js +44 -0
  80. package/dist/workflow-processor/utils/run-trace-collector.js.map +1 -0
  81. package/package.json +2 -2
  82. package/dist/workflow-processor/services/tool-logging.interceptor.d.ts +0 -6
  83. package/dist/workflow-processor/services/tool-logging.interceptor.d.ts.map +0 -1
  84. package/dist/workflow-processor/services/tool-logging.interceptor.js +0 -34
  85. package/dist/workflow-processor/services/tool-logging.interceptor.js.map +0 -1
@@ -0,0 +1,44 @@
1
+ export class RunTraceCollector {
2
+ now;
3
+ events;
4
+ seq;
5
+ toolSeqByTransition = new Map();
6
+ constructor(seed, now = () => Date.now()) {
7
+ this.now = now;
8
+ this.events = seed ? [...seed] : [];
9
+ this.seq = this.events.length > 0 ? this.events[this.events.length - 1].seq + 1 : 0;
10
+ }
11
+ continueFrom(nextSeq) {
12
+ this.seq = Math.max(this.seq, nextSeq);
13
+ }
14
+ emit(event) {
15
+ this.events.push({ ...event, seq: this.seq++, ts: this.now() });
16
+ }
17
+ nextToolSeq(transitionId) {
18
+ const key = transitionId ?? '';
19
+ const next = this.toolSeqByTransition.get(key) ?? 0;
20
+ this.toolSeqByTransition.set(key, next + 1);
21
+ return next;
22
+ }
23
+ startedSince(index) {
24
+ let count = 0;
25
+ for (let i = index; i < this.events.length; i++) {
26
+ if (this.events[i].type === 'transition.started')
27
+ count++;
28
+ }
29
+ return count;
30
+ }
31
+ }
32
+ export function shallowStateDiff(before, after) {
33
+ const diff = {};
34
+ for (const key of new Set([...Object.keys(before), ...Object.keys(after)])) {
35
+ if (!Object.is(before[key], after[key])) {
36
+ diff[key] = {
37
+ ...(key in before ? { before: before[key] } : {}),
38
+ ...(key in after ? { after: after[key] } : {}),
39
+ };
40
+ }
41
+ }
42
+ return diff;
43
+ }
44
+ //# sourceMappingURL=run-trace-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-trace-collector.js","sourceRoot":"","sources":["../../../src/workflow-processor/utils/run-trace-collector.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,iBAAiB;IAOT;IANV,MAAM,CAAkB;IACzB,GAAG,CAAS;IACZ,mBAAmB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAExD,YACE,IAAsB,EACL,MAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAApC,QAAG,GAAH,GAAG,CAAiC;QAErD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,CAAC;IAMD,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,CAAC,KAAyB;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAmB,CAAC,CAAC;IACnF,CAAC;IAGD,WAAW,CAAC,YAAgC;QAC1C,MAAM,GAAG,GAAG,YAAY,IAAI,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAGD,YAAY,CAAC,KAAa;QACxB,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,oBAAoB;gBAAE,KAAK,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAOD,MAAM,UAAU,gBAAgB,CAAC,MAA+B,EAAE,KAA8B;IAC9F,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,GAAG,CAAC,GAAG;gBACV,GAAG,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/C,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@loopstack/core",
3
3
  "displayName": "Loopstack Core Module",
4
4
  "description": "The core module of the loopstack automation framework",
5
- "version": "0.37.0",
5
+ "version": "0.39.0",
6
6
  "repository": "loopstack-ai/core",
7
7
  "license": "MIT",
8
8
  "author": {
@@ -31,7 +31,7 @@
31
31
  "watch": "nest build --watch"
32
32
  },
33
33
  "dependencies": {
34
- "@loopstack/common": "^0.37.0",
34
+ "@loopstack/common": "^0.39.0",
35
35
  "handlebars": "^4.7.9",
36
36
  "lodash": "^4.18.1",
37
37
  "yaml": "^2.8.3"
@@ -1,6 +0,0 @@
1
- import { ToolEnvelope, ToolExecutionContext, ToolInterceptor } from '@loopstack/common';
2
- export declare class ToolLoggingInterceptor implements ToolInterceptor {
3
- private readonly logger;
4
- intercept(context: ToolExecutionContext, next: () => Promise<ToolEnvelope>): Promise<ToolEnvelope>;
5
- }
6
- //# sourceMappingURL=tool-logging.interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-logging.interceptor.d.ts","sourceRoot":"","sources":["../../../src/workflow-processor/services/tool-logging.interceptor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAsB,MAAM,mBAAmB,CAAC;AAM5G,qBACa,sBAAuB,YAAW,eAAe;IAC5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IAEhD,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;CA2BzG"}
@@ -1,34 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { Logger } from '@nestjs/common';
8
- import { UseToolInterceptor } from '@loopstack/common';
9
- let ToolLoggingInterceptor = class ToolLoggingInterceptor {
10
- logger = new Logger('ToolExecution');
11
- async intercept(context, next) {
12
- const toolName = context.tool.constructor.name;
13
- const startTime = performance.now();
14
- this.logger.debug(`${toolName} — executing`);
15
- try {
16
- const result = await next();
17
- const durationMs = Math.round(performance.now() - startTime);
18
- context.metadata.durationMs = durationMs;
19
- this.logger.debug(`${toolName} — completed in ${durationMs}ms`);
20
- return result;
21
- }
22
- catch (error) {
23
- const durationMs = Math.round(performance.now() - startTime);
24
- context.metadata.durationMs = durationMs;
25
- this.logger.warn(`${toolName} — failed after ${durationMs}ms: ${error instanceof Error ? error.message : String(error)}`);
26
- throw error;
27
- }
28
- }
29
- };
30
- ToolLoggingInterceptor = __decorate([
31
- UseToolInterceptor({ priority: 0 })
32
- ], ToolLoggingInterceptor);
33
- export { ToolLoggingInterceptor };
34
- //# sourceMappingURL=tool-logging.interceptor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-logging.interceptor.js","sourceRoot":"","sources":["../../../src/workflow-processor/services/tool-logging.interceptor.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAuD,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAOrG,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAChB,MAAM,GAAG,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC;IAEtD,KAAK,CAAC,SAAS,CAAC,OAA6B,EAAE,IAAiC;QAC9E,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAC/C,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,cAAc,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YAE7D,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,mBAAmB,UAAU,IAAI,CAAC,CAAC;YAEhE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;YAE7D,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC;YAEzC,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,QAAQ,mBAAmB,UAAU,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACxG,CAAC;YAEF,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AA9BY,sBAAsB;IADlC,kBAAkB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;GACvB,sBAAsB,CA8BlC"}