@longzai-intelligence-workflow/core 0.0.2 → 0.0.5

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 (38) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/.turbo/turbo-lint.log +1305 -0
  3. package/.turbo/turbo-typecheck.log +12 -0
  4. package/CHANGELOG.md +18 -0
  5. package/coverage/.lcov.info.0e095d78ac9192b0.tmp +329 -0
  6. package/coverage/.lcov.info.8f2985e5b3ad22cc.tmp +329 -0
  7. package/coverage/.lcov.info.a6ce2b7c3df2438b.tmp +228 -0
  8. package/coverage/.lcov.info.cd0e8c028b2d5097.tmp +329 -0
  9. package/coverage/.lcov.info.fbb8af17757faa2d.tmp +329 -0
  10. package/coverage/lcov.info +28 -28
  11. package/dist/index.d.ts +1 -0
  12. package/docs/overview.md +1 -1
  13. package/package.json +1 -1
  14. package/src/__tests__/unit/constants.test.ts +75 -30
  15. package/src/__tests__/unit/utils.test.ts +110 -38
  16. package/src/__tests__/work-item-rules.test.ts +18 -5
  17. package/src/index.ts +19 -5
  18. package/src/ports/action-executor.port.ts +2 -1
  19. package/src/ports/feed-event.port.ts +1 -1
  20. package/src/ports/index.ts +1 -0
  21. package/src/schemas/action-executor.schema.ts +2 -1
  22. package/src/schemas/definition.schema.ts +1 -1
  23. package/src/schemas/feed-event-trigger.schema.ts +1 -1
  24. package/src/schemas/index.ts +7 -0
  25. package/src/schemas/instance.schema.ts +1 -1
  26. package/src/schemas/monitoring.schema.ts +1 -1
  27. package/src/schemas/trigger.schema.ts +1 -1
  28. package/src/schemas/workflow-doc.schema.ts +4 -2
  29. package/src/types/action-executor.ts +1 -1
  30. package/src/types/feed-event-trigger.ts +1 -1
  31. package/src/types/index.ts +5 -0
  32. package/src/utils/index.ts +3 -1
  33. package/src/utils/work-item-rules.utils.ts +25 -6
  34. package/tsconfig/.cache/build.tsbuildinfo +1 -1
  35. package/tsconfig/.cache/node.tsbuildinfo +1 -1
  36. package/tsconfig/.cache/test.tsbuildinfo +1 -1
  37. package/tsconfig/node.json +1 -1
  38. package/tsconfig.json +9 -1
@@ -0,0 +1,329 @@
1
+ TN:
2
+ SF:src/__tests__/helpers/setup.ts
3
+ FNF:3
4
+ FNH:3
5
+ DA:1,58
6
+ DA:3,32
7
+ DA:5,18
8
+ DA:7,17
9
+ DA:9,17
10
+ LF:5
11
+ LH:5
12
+ end_of_record
13
+ TN:
14
+ SF:src/constants/workflow.ts
15
+ FNF:1
16
+ FNH:1
17
+ DA:4,28
18
+ DA:5,15
19
+ DA:6,13
20
+ DA:7,13
21
+ DA:8,16
22
+ DA:9,21
23
+ DA:10,20
24
+ DA:11,21
25
+ DA:12,15
26
+ DA:13,15
27
+ DA:14,15
28
+ DA:15,14
29
+ DA:16,2
30
+ DA:21,35
31
+ DA:22,12
32
+ DA:23,12
33
+ DA:24,11
34
+ DA:25,14
35
+ DA:26,14
36
+ DA:27,9
37
+ DA:28,2
38
+ DA:33,41
39
+ DA:34,12
40
+ DA:35,12
41
+ DA:36,14
42
+ DA:37,11
43
+ DA:38,10
44
+ DA:39,2
45
+ DA:44,73
46
+ DA:51,34
47
+ DA:55,18
48
+ DA:60,19
49
+ DA:65,18
50
+ DA:70,20
51
+ DA:71,2
52
+ DA:76,73
53
+ DA:88,30
54
+ DA:89,19
55
+ DA:90,19
56
+ DA:91,17
57
+ DA:92,15
58
+ DA:93,2
59
+ DA:98,30
60
+ DA:99,17
61
+ DA:100,17
62
+ DA:101,17
63
+ DA:102,17
64
+ DA:103,17
65
+ DA:104,2
66
+ DA:109,36
67
+ DA:114,32
68
+ LF:51
69
+ LH:51
70
+ end_of_record
71
+ TN:
72
+ SF:src/schemas/workflow-doc.schema.ts
73
+ FNF:4
74
+ FNH:3
75
+ DA:9,25
76
+ DA:14,82
77
+ DA:24,51
78
+ DA:29,113
79
+ DA:34,36
80
+ DA:35,107
81
+ DA:36,3
82
+ DA:41,97
83
+ DA:46,25
84
+ DA:47,137
85
+ DA:52,82
86
+ DA:142,61
87
+ DA:146,38
88
+ DA:151,27
89
+ DA:156,63
90
+ DA:161,29
91
+ DA:166,60
92
+ DA:171,38
93
+ DA:172,3
94
+ DA:185,15
95
+ DA:189,47
96
+ DA:190,18
97
+ DA:191,11
98
+ DA:192,2
99
+ DA:197,24
100
+ DA:202,27
101
+ DA:207,25
102
+ DA:212,28
103
+ DA:213,89
104
+ DA:214,0
105
+ DA:215,2
106
+ DA:220,59
107
+ DA:225,64
108
+ DA:226,27
109
+ DA:227,0
110
+ DA:228,2
111
+ DA:229,54
112
+ DA:238,0
113
+ DA:239,0
114
+ DA:240,0
115
+ DA:241,0
116
+ DA:242,0
117
+ DA:243,0
118
+ DA:244,0
119
+ DA:245,0
120
+ DA:246,0
121
+ DA:247,0
122
+ DA:248,0
123
+ DA:249,0
124
+ DA:250,0
125
+ DA:251,0
126
+ DA:252,0
127
+ DA:253,0
128
+ DA:254,0
129
+ DA:255,0
130
+ DA:256,0
131
+ DA:257,0
132
+ DA:258,0
133
+ DA:259,1
134
+ DA:268,18
135
+ DA:272,52
136
+ DA:273,13
137
+ DA:274,0
138
+ DA:275,2
139
+ DA:280,42
140
+ DA:281,25
141
+ DA:282,0
142
+ DA:283,2
143
+ DA:288,91
144
+ DA:293,66
145
+ DA:294,27
146
+ DA:295,0
147
+ DA:296,2
148
+ DA:301,31
149
+ DA:306,30
150
+ DA:307,12
151
+ DA:308,34
152
+ DA:309,49
153
+ DA:310,41
154
+ DA:311,2
155
+ DA:320,15
156
+ DA:324,47
157
+ DA:325,18
158
+ DA:326,11
159
+ DA:327,2
160
+ DA:332,24
161
+ DA:337,26
162
+ DA:342,26
163
+ DA:347,35
164
+ DA:348,96
165
+ DA:349,0
166
+ DA:350,2
167
+ DA:355,48
168
+ DA:356,20
169
+ DA:357,0
170
+ DA:358,2
171
+ DA:359,34
172
+ DA:365,104
173
+ LF:98
174
+ LH:70
175
+ end_of_record
176
+ TN:
177
+ SF:src/utils/dag.utils.ts
178
+ FNF:1
179
+ FNH:1
180
+ DA:4,196
181
+ LF:1
182
+ LH:1
183
+ end_of_record
184
+ TN:
185
+ SF:src/utils/declaration-frontmatter.utils.ts
186
+ FNF:3
187
+ FNH:0
188
+ DA:34,0
189
+ DA:35,0
190
+ DA:36,0
191
+ DA:37,0
192
+ DA:38,0
193
+ DA:39,0
194
+ DA:40,0
195
+ DA:50,0
196
+ DA:51,0
197
+ DA:52,0
198
+ DA:53,0
199
+ DA:54,0
200
+ DA:55,0
201
+ DA:56,0
202
+ DA:57,0
203
+ DA:58,0
204
+ DA:59,0
205
+ DA:60,0
206
+ DA:61,0
207
+ DA:62,1
208
+ DA:71,0
209
+ DA:72,0
210
+ DA:73,0
211
+ DA:74,0
212
+ DA:75,0
213
+ DA:76,0
214
+ DA:77,0
215
+ DA:78,0
216
+ DA:79,0
217
+ DA:80,0
218
+ DA:81,0
219
+ DA:82,0
220
+ DA:83,0
221
+ DA:84,0
222
+ DA:85,0
223
+ DA:86,0
224
+ DA:87,0
225
+ DA:88,0
226
+ DA:89,0
227
+ DA:90,0
228
+ DA:91,0
229
+ DA:92,0
230
+ DA:93,0
231
+ DA:94,0
232
+ DA:95,0
233
+ DA:96,0
234
+ DA:97,0
235
+ DA:98,0
236
+ DA:99,0
237
+ DA:100,0
238
+ DA:101,0
239
+ DA:102,0
240
+ DA:103,0
241
+ DA:104,0
242
+ DA:105,0
243
+ DA:106,0
244
+ DA:107,0
245
+ DA:108,0
246
+ DA:109,0
247
+ DA:110,0
248
+ DA:111,0
249
+ DA:112,0
250
+ DA:113,0
251
+ DA:114,0
252
+ DA:115,0
253
+ DA:116,0
254
+ DA:117,0
255
+ DA:118,0
256
+ DA:119,0
257
+ DA:120,0
258
+ DA:121,0
259
+ DA:122,0
260
+ DA:123,0
261
+ DA:124,0
262
+ DA:125,0
263
+ DA:126,0
264
+ DA:127,0
265
+ DA:128,0
266
+ DA:129,0
267
+ DA:130,0
268
+ DA:131,0
269
+ DA:132,0
270
+ DA:133,0
271
+ DA:134,0
272
+ DA:135,0
273
+ DA:136,0
274
+ LF:86
275
+ LH:1
276
+ end_of_record
277
+ TN:
278
+ SF:src/utils/work-item-rules.utils.ts
279
+ FNF:10
280
+ FNH:10
281
+ DA:7,65
282
+ DA:14,44
283
+ DA:15,40
284
+ DA:16,40
285
+ DA:17,40
286
+ DA:18,28
287
+ DA:19,18
288
+ DA:20,2
289
+ DA:44,19
290
+ DA:48,51
291
+ DA:49,26
292
+ DA:50,0
293
+ DA:51,2
294
+ DA:52,31
295
+ DA:53,164
296
+ DA:54,2
297
+ DA:55,11
298
+ DA:138,12
299
+ DA:139,49
300
+ DA:149,6
301
+ DA:150,7
302
+ DA:151,7
303
+ DA:152,7
304
+ DA:153,3
305
+ DA:157,93
306
+ DA:162,139
307
+ DA:167,38
308
+ DA:171,61
309
+ DA:173,14
310
+ DA:174,18
311
+ DA:175,26
312
+ DA:176,14
313
+ DA:177,64
314
+ DA:178,81
315
+ DA:179,1
316
+ DA:180,4
317
+ DA:185,29
318
+ DA:186,87
319
+ DA:187,19
320
+ DA:188,35
321
+ DA:189,16
322
+ DA:190,20
323
+ DA:191,20
324
+ DA:192,34
325
+ DA:193,5
326
+ DA:195,39
327
+ LF:46
328
+ LH:45
329
+ end_of_record
@@ -295,35 +295,35 @@ DA:52,31
295
295
  DA:53,164
296
296
  DA:54,2
297
297
  DA:55,11
298
- DA:138,12
299
- DA:139,49
300
- DA:149,6
301
- DA:150,7
302
- DA:151,7
298
+ DA:139,12
299
+ DA:140,49
300
+ DA:151,6
303
301
  DA:152,7
304
- DA:153,3
305
- DA:157,93
306
- DA:162,139
307
- DA:167,38
308
- DA:171,61
309
- DA:173,14
310
- DA:174,18
311
- DA:175,26
312
- DA:176,14
313
- DA:177,64
314
- DA:178,81
315
- DA:179,1
316
- DA:180,4
317
- DA:185,29
318
- DA:186,87
319
- DA:187,19
320
- DA:188,35
321
- DA:189,16
322
- DA:190,20
323
- DA:191,20
324
- DA:192,34
325
- DA:193,5
326
- DA:195,39
302
+ DA:153,7
303
+ DA:154,7
304
+ DA:155,3
305
+ DA:159,93
306
+ DA:164,139
307
+ DA:169,38
308
+ DA:173,61
309
+ DA:175,14
310
+ DA:176,18
311
+ DA:177,26
312
+ DA:178,14
313
+ DA:179,64
314
+ DA:180,81
315
+ DA:181,1
316
+ DA:182,4
317
+ DA:187,29
318
+ DA:188,87
319
+ DA:189,19
320
+ DA:190,35
321
+ DA:191,16
322
+ DA:192,20
323
+ DA:193,20
324
+ DA:194,34
325
+ DA:195,5
326
+ DA:197,39
327
327
  LF:46
328
328
  LH:45
329
329
  end_of_record
package/dist/index.d.ts CHANGED
@@ -429,6 +429,7 @@ type WorkflowView = {
429
429
  * @param items - 工作项清单(声明档现状)
430
430
  * @param edges - 依赖边清单
431
431
  * @param gates - 裁定门清单(含裁定事实)
432
+ * @returns 工作流声明视图,含全部工作项视图与未决裁定清单
432
433
  */
433
434
  declare function deriveWorkflowView(items: readonly WorkflowItem[], edges: readonly WorkflowEdge[], gates: readonly WorkflowGate[]): WorkflowView;
434
435
  //#endregion
package/docs/overview.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 定位(承接)
6
6
 
7
- 位于项目分层架构的最底层,不依赖任何技术框架,仅依赖共享内核与 Zod。被四个领域 contract 与 API 契约层(packages/api/core)引用,作为整个项目共享类型与端口定义的单一事实来源。(整改前 README 所列被 packages/sdk、packages/elysia、packages/adapters/memory 引用为历史形态,上述包已不在当前结构中,按当前依赖面更正留痕。)
7
+ 位于项目分层架构的最底层,不依赖任何技术框架,仅依赖共享内核与 Zod。被四个领域 contract 引用,作为整个项目共享类型与端口定义的单一事实来源。(整改前 README 所列被 packages/sdk、packages/elysia、packages/adapters/memory 引用为历史形态,上述包已不在当前结构中,按当前依赖面更正留痕。四层 API 契约层 packages/api 已整体退役,对外 API 定义面由各域定义包与生成客户端承载,本次退役按当前依赖面更正留痕。)
8
8
 
9
9
  ## 实现情况(承接)
10
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@longzai-intelligence-workflow/core",
3
- "version": "0.0.2",
3
+ "version": "0.0.5",
4
4
  "license": "UNLICENSED",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -9,25 +9,31 @@ import {
9
9
  NODE_EXECUTION_STATUSES,
10
10
  NODE_TYPES,
11
11
  TRIGGER_TYPES,
12
- } from '../../constants/workflow';
12
+ } from '@/constants/workflow';
13
13
 
14
14
  describe('DEFAULT_PAGE_SIZE', () => {
15
15
  it('默认分页大小为 20', () => {
16
- // Arrange & Act & Assert
16
+ /*
17
+ * 断言 DEFAULT_PAGE_SIZE 的导出值为 20
18
+ */
17
19
  expect(DEFAULT_PAGE_SIZE).toBe(20);
18
20
  });
19
21
  });
20
22
 
21
23
  describe('MAX_PAGE_SIZE', () => {
22
24
  it('最大分页大小为 100', () => {
23
- // Arrange & Act & Assert
25
+ /*
26
+ * 断言 MAX_PAGE_SIZE 的导出值为 100
27
+ */
24
28
  expect(MAX_PAGE_SIZE).toBe(100);
25
29
  });
26
30
  });
27
31
 
28
32
  describe('NODE_TYPES', () => {
29
33
  it('包含预期的节点类型', () => {
30
- // Arrange
34
+ /*
35
+ * 列出全部预期节点类型的字面量清单
36
+ */
31
37
  const expectedTypes = [
32
38
  'StartEvent',
33
39
  'EndEvent',
@@ -40,90 +46,129 @@ describe('NODE_TYPES', () => {
40
46
  'TimerEvent',
41
47
  'ErrorEvent',
42
48
  'SignalEvent',
43
- ];
49
+ ] as const;
44
50
 
45
- // Act & Assert
51
+ /*
52
+ * 断言 NODE_TYPES 与清单逐项一致
53
+ */
46
54
  expect(NODE_TYPES).toEqual(expectedTypes);
47
55
  });
48
56
 
49
57
  it('包含 StartEvent', () => {
50
- // Arrange & Act & Assert
58
+ /*
59
+ * 断言 NODE_TYPES 包含 StartEvent 成员
60
+ */
51
61
  expect(NODE_TYPES).toContain('StartEvent');
52
62
  });
53
63
 
54
64
  it('包含 EndEvent', () => {
55
- // Arrange & Act & Assert
65
+ /*
66
+ * 断言 NODE_TYPES 包含 EndEvent 成员
67
+ */
56
68
  expect(NODE_TYPES).toContain('EndEvent');
57
69
  });
58
70
 
59
71
  it('为只读数组', () => {
60
- // Arrange & Act & Assert
72
+ /*
73
+ * 断言 NODE_TYPES 本体是数组实例
74
+ */
61
75
  expect(Array.isArray(NODE_TYPES)).toBe(true);
62
76
  });
63
77
  });
64
78
 
65
79
  describe('INSTANCE_STATUSES', () => {
66
80
  it('包含预期的实例状态', () => {
67
- // Arrange
68
- const expectedStatuses = ['pending', 'running', 'paused', 'completed', 'cancelled', 'failed'];
69
-
70
- // Act & Assert
81
+ /*
82
+ * 列出全部预期实例状态的字面量清单
83
+ */
84
+ const expectedStatuses = [
85
+ 'pending',
86
+ 'running',
87
+ 'paused',
88
+ 'completed',
89
+ 'cancelled',
90
+ 'failed',
91
+ ] as const;
92
+
93
+ /*
94
+ * 断言 INSTANCE_STATUSES 与清单逐项一致
95
+ */
71
96
  expect(INSTANCE_STATUSES).toEqual(expectedStatuses);
72
97
  });
73
98
 
74
99
  it('包含 pending 状态', () => {
75
- // Arrange & Act & Assert
100
+ /*
101
+ * 断言 INSTANCE_STATUSES 包含 pending
102
+ */
76
103
  expect(INSTANCE_STATUSES).toContain('pending');
77
104
  });
78
105
 
79
106
  it('包含 failed 状态', () => {
80
- // Arrange & Act & Assert
107
+ /*
108
+ * 断言 INSTANCE_STATUSES 包含 failed
109
+ */
81
110
  expect(INSTANCE_STATUSES).toContain('failed');
82
111
  });
83
112
  });
84
113
 
85
114
  describe('NODE_EXECUTION_STATUSES', () => {
86
115
  it('包含预期的节点执行状态', () => {
87
- // Arrange
88
- const expectedStatuses = ['pending', 'running', 'completed', 'failed', 'skipped'];
89
-
90
- // Act & Assert
116
+ /*
117
+ * 列出全部预期节点执行状态的字面量清单
118
+ */
119
+ const expectedStatuses = ['pending', 'running', 'completed', 'failed', 'skipped'] as const;
120
+
121
+ /*
122
+ * 断言 NODE_EXECUTION_STATUSES 与清单逐项一致
123
+ */
91
124
  expect(NODE_EXECUTION_STATUSES).toEqual(expectedStatuses);
92
125
  });
93
126
  });
94
127
 
95
128
  describe('TRIGGER_TYPES', () => {
96
129
  it('包含预期的触发器类型', () => {
97
- // Arrange
98
- const expectedTypes = ['timer', 'webhook', 'event'];
99
-
100
- // Act & Assert
130
+ /*
131
+ * 列出全部预期触发器类型的字面量清单
132
+ */
133
+ const expectedTypes = ['timer', 'webhook', 'event', 'feed.event'] as const;
134
+
135
+ /*
136
+ * 断言 TRIGGER_TYPES 与清单逐项一致
137
+ */
101
138
  expect(TRIGGER_TYPES).toEqual(expectedTypes);
102
139
  });
103
140
  });
104
141
 
105
142
  describe('ALERT_TYPES', () => {
106
143
  it('包含预期的告警类型', () => {
107
- // Arrange
108
- const expectedTypes = ['timeout', 'failure_rate', 'slow_execution'];
109
-
110
- // Act & Assert
144
+ /*
145
+ * 列出全部预期告警类型的字面量清单
146
+ */
147
+ const expectedTypes = ['timeout', 'failure_rate', 'slow_execution'] as const;
148
+
149
+ /*
150
+ * 断言 ALERT_TYPES 与清单逐项一致
151
+ */
111
152
  expect(ALERT_TYPES).toEqual(expectedTypes);
112
153
  });
113
154
  });
114
155
 
115
156
  describe('METRIC_TYPES', () => {
116
157
  it('包含预期的指标类型', () => {
117
- // Arrange
158
+ /*
159
+ * 列出全部预期指标类型的字面量清单
160
+ */
118
161
  const expectedTypes = [
119
162
  'avg_duration',
120
163
  'success_rate',
121
164
  'failure_rate',
122
165
  'timeout_rate',
123
166
  'instance_count',
124
- ];
167
+ ] as const;
125
168
 
126
- // Act & Assert
169
+ /*
170
+ * 断言 METRIC_TYPES 与清单逐项一致
171
+ */
127
172
  expect(METRIC_TYPES).toEqual(expectedTypes);
128
173
  });
129
174
  });