@principal-ai/principal-view-core 0.5.6
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.
- package/README.md +126 -0
- package/dist/ConfigurationLoader.d.ts +76 -0
- package/dist/ConfigurationLoader.d.ts.map +1 -0
- package/dist/ConfigurationLoader.js +144 -0
- package/dist/ConfigurationLoader.js.map +1 -0
- package/dist/ConfigurationValidator.d.ts +31 -0
- package/dist/ConfigurationValidator.d.ts.map +1 -0
- package/dist/ConfigurationValidator.js +242 -0
- package/dist/ConfigurationValidator.js.map +1 -0
- package/dist/EventProcessor.d.ts +49 -0
- package/dist/EventProcessor.d.ts.map +1 -0
- package/dist/EventProcessor.js +215 -0
- package/dist/EventProcessor.js.map +1 -0
- package/dist/EventRecorderService.d.ts +305 -0
- package/dist/EventRecorderService.d.ts.map +1 -0
- package/dist/EventRecorderService.js +463 -0
- package/dist/EventRecorderService.js.map +1 -0
- package/dist/LibraryLoader.d.ts +63 -0
- package/dist/LibraryLoader.d.ts.map +1 -0
- package/dist/LibraryLoader.js +188 -0
- package/dist/LibraryLoader.js.map +1 -0
- package/dist/PathBasedEventProcessor.d.ts +90 -0
- package/dist/PathBasedEventProcessor.d.ts.map +1 -0
- package/dist/PathBasedEventProcessor.js +239 -0
- package/dist/PathBasedEventProcessor.js.map +1 -0
- package/dist/SessionManager.d.ts +194 -0
- package/dist/SessionManager.d.ts.map +1 -0
- package/dist/SessionManager.js +299 -0
- package/dist/SessionManager.js.map +1 -0
- package/dist/ValidationEngine.d.ts +31 -0
- package/dist/ValidationEngine.d.ts.map +1 -0
- package/dist/ValidationEngine.js +158 -0
- package/dist/ValidationEngine.js.map +1 -0
- package/dist/helpers/GraphInstrumentationHelper.d.ts +93 -0
- package/dist/helpers/GraphInstrumentationHelper.d.ts.map +1 -0
- package/dist/helpers/GraphInstrumentationHelper.js +248 -0
- package/dist/helpers/GraphInstrumentationHelper.js.map +1 -0
- package/dist/index.d.ts +33 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/rules/config.d.ts +57 -0
- package/dist/rules/config.d.ts.map +1 -0
- package/dist/rules/config.js +382 -0
- package/dist/rules/config.js.map +1 -0
- package/dist/rules/engine.d.ts +70 -0
- package/dist/rules/engine.d.ts.map +1 -0
- package/dist/rules/engine.js +252 -0
- package/dist/rules/engine.js.map +1 -0
- package/dist/rules/implementations/connection-type-references.d.ts +7 -0
- package/dist/rules/implementations/connection-type-references.d.ts.map +1 -0
- package/dist/rules/implementations/connection-type-references.js +104 -0
- package/dist/rules/implementations/connection-type-references.js.map +1 -0
- package/dist/rules/implementations/dead-end-states.d.ts +17 -0
- package/dist/rules/implementations/dead-end-states.d.ts.map +1 -0
- package/dist/rules/implementations/dead-end-states.js +72 -0
- package/dist/rules/implementations/dead-end-states.js.map +1 -0
- package/dist/rules/implementations/index.d.ts +24 -0
- package/dist/rules/implementations/index.d.ts.map +1 -0
- package/dist/rules/implementations/index.js +62 -0
- package/dist/rules/implementations/index.js.map +1 -0
- package/dist/rules/implementations/library-node-type-match.d.ts +17 -0
- package/dist/rules/implementations/library-node-type-match.d.ts.map +1 -0
- package/dist/rules/implementations/library-node-type-match.js +123 -0
- package/dist/rules/implementations/library-node-type-match.js.map +1 -0
- package/dist/rules/implementations/minimum-node-sources.d.ts +22 -0
- package/dist/rules/implementations/minimum-node-sources.d.ts.map +1 -0
- package/dist/rules/implementations/minimum-node-sources.js +54 -0
- package/dist/rules/implementations/minimum-node-sources.js.map +1 -0
- package/dist/rules/implementations/no-unknown-fields.d.ts +7 -0
- package/dist/rules/implementations/no-unknown-fields.d.ts.map +1 -0
- package/dist/rules/implementations/no-unknown-fields.js +211 -0
- package/dist/rules/implementations/no-unknown-fields.js.map +1 -0
- package/dist/rules/implementations/orphaned-edge-types.d.ts +7 -0
- package/dist/rules/implementations/orphaned-edge-types.d.ts.map +1 -0
- package/dist/rules/implementations/orphaned-edge-types.js +47 -0
- package/dist/rules/implementations/orphaned-edge-types.js.map +1 -0
- package/dist/rules/implementations/orphaned-node-types.d.ts +7 -0
- package/dist/rules/implementations/orphaned-node-types.d.ts.map +1 -0
- package/dist/rules/implementations/orphaned-node-types.js +50 -0
- package/dist/rules/implementations/orphaned-node-types.js.map +1 -0
- package/dist/rules/implementations/required-metadata.d.ts +7 -0
- package/dist/rules/implementations/required-metadata.d.ts.map +1 -0
- package/dist/rules/implementations/required-metadata.js +57 -0
- package/dist/rules/implementations/required-metadata.js.map +1 -0
- package/dist/rules/implementations/state-transition-references.d.ts +7 -0
- package/dist/rules/implementations/state-transition-references.d.ts.map +1 -0
- package/dist/rules/implementations/state-transition-references.js +135 -0
- package/dist/rules/implementations/state-transition-references.js.map +1 -0
- package/dist/rules/implementations/unreachable-states.d.ts +7 -0
- package/dist/rules/implementations/unreachable-states.d.ts.map +1 -0
- package/dist/rules/implementations/unreachable-states.js +80 -0
- package/dist/rules/implementations/unreachable-states.js.map +1 -0
- package/dist/rules/implementations/valid-action-patterns.d.ts +17 -0
- package/dist/rules/implementations/valid-action-patterns.d.ts.map +1 -0
- package/dist/rules/implementations/valid-action-patterns.js +109 -0
- package/dist/rules/implementations/valid-action-patterns.js.map +1 -0
- package/dist/rules/implementations/valid-color-format.d.ts +7 -0
- package/dist/rules/implementations/valid-color-format.d.ts.map +1 -0
- package/dist/rules/implementations/valid-color-format.js +91 -0
- package/dist/rules/implementations/valid-color-format.js.map +1 -0
- package/dist/rules/implementations/valid-edge-types.d.ts +7 -0
- package/dist/rules/implementations/valid-edge-types.d.ts.map +1 -0
- package/dist/rules/implementations/valid-edge-types.js +244 -0
- package/dist/rules/implementations/valid-edge-types.js.map +1 -0
- package/dist/rules/implementations/valid-node-types.d.ts +7 -0
- package/dist/rules/implementations/valid-node-types.d.ts.map +1 -0
- package/dist/rules/implementations/valid-node-types.js +175 -0
- package/dist/rules/implementations/valid-node-types.js.map +1 -0
- package/dist/rules/index.d.ts +28 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +45 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/types.d.ts +309 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +35 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/types/canvas.d.ts +409 -0
- package/dist/types/canvas.d.ts.map +1 -0
- package/dist/types/canvas.js +70 -0
- package/dist/types/canvas.js.map +1 -0
- package/dist/types/index.d.ts +311 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/library.d.ts +185 -0
- package/dist/types/library.d.ts.map +1 -0
- package/dist/types/library.js +15 -0
- package/dist/types/library.js.map +1 -0
- package/dist/types/path-based-config.d.ts +230 -0
- package/dist/types/path-based-config.d.ts.map +1 -0
- package/dist/types/path-based-config.js +9 -0
- package/dist/types/path-based-config.js.map +1 -0
- package/dist/utils/CanvasConverter.d.ts +118 -0
- package/dist/utils/CanvasConverter.d.ts.map +1 -0
- package/dist/utils/CanvasConverter.js +315 -0
- package/dist/utils/CanvasConverter.js.map +1 -0
- package/dist/utils/GraphConverter.d.ts +18 -0
- package/dist/utils/GraphConverter.d.ts.map +1 -0
- package/dist/utils/GraphConverter.js +61 -0
- package/dist/utils/GraphConverter.js.map +1 -0
- package/dist/utils/LibraryConverter.d.ts +113 -0
- package/dist/utils/LibraryConverter.d.ts.map +1 -0
- package/dist/utils/LibraryConverter.js +166 -0
- package/dist/utils/LibraryConverter.js.map +1 -0
- package/dist/utils/PathMatcher.d.ts +55 -0
- package/dist/utils/PathMatcher.d.ts.map +1 -0
- package/dist/utils/PathMatcher.js +172 -0
- package/dist/utils/PathMatcher.js.map +1 -0
- package/dist/utils/YamlParser.d.ts +36 -0
- package/dist/utils/YamlParser.d.ts.map +1 -0
- package/dist/utils/YamlParser.js +63 -0
- package/dist/utils/YamlParser.js.map +1 -0
- package/package.json +47 -0
- package/src/ConfigurationLoader.test.ts +490 -0
- package/src/ConfigurationLoader.ts +185 -0
- package/src/ConfigurationValidator.test.ts +200 -0
- package/src/ConfigurationValidator.ts +283 -0
- package/src/EventProcessor.test.ts +405 -0
- package/src/EventProcessor.ts +250 -0
- package/src/EventRecorderService.test.ts +541 -0
- package/src/EventRecorderService.ts +744 -0
- package/src/LibraryLoader.ts +215 -0
- package/src/PathBasedEventProcessor.test.ts +567 -0
- package/src/PathBasedEventProcessor.ts +332 -0
- package/src/SessionManager.test.ts +424 -0
- package/src/SessionManager.ts +470 -0
- package/src/ValidationEngine.test.ts +371 -0
- package/src/ValidationEngine.ts +196 -0
- package/src/helpers/GraphInstrumentationHelper.test.ts +340 -0
- package/src/helpers/GraphInstrumentationHelper.ts +326 -0
- package/src/index.ts +85 -0
- package/src/rules/config.test.ts +278 -0
- package/src/rules/config.ts +459 -0
- package/src/rules/engine.test.ts +332 -0
- package/src/rules/engine.ts +318 -0
- package/src/rules/implementations/connection-type-references.ts +117 -0
- package/src/rules/implementations/dead-end-states.ts +101 -0
- package/src/rules/implementations/index.ts +73 -0
- package/src/rules/implementations/library-node-type-match.ts +148 -0
- package/src/rules/implementations/minimum-node-sources.ts +82 -0
- package/src/rules/implementations/no-unknown-fields.ts +342 -0
- package/src/rules/implementations/orphaned-edge-types.ts +55 -0
- package/src/rules/implementations/orphaned-node-types.ts +58 -0
- package/src/rules/implementations/required-metadata.ts +64 -0
- package/src/rules/implementations/state-transition-references.ts +151 -0
- package/src/rules/implementations/unreachable-states.ts +94 -0
- package/src/rules/implementations/valid-action-patterns.ts +136 -0
- package/src/rules/implementations/valid-color-format.ts +140 -0
- package/src/rules/implementations/valid-edge-types.ts +258 -0
- package/src/rules/implementations/valid-node-types.ts +189 -0
- package/src/rules/index.ts +95 -0
- package/src/rules/types.ts +426 -0
- package/src/types/canvas.ts +496 -0
- package/src/types/index.ts +382 -0
- package/src/types/library.ts +233 -0
- package/src/types/path-based-config.ts +281 -0
- package/src/utils/CanvasConverter.ts +431 -0
- package/src/utils/GraphConverter.test.ts +195 -0
- package/src/utils/GraphConverter.ts +71 -0
- package/src/utils/LibraryConverter.ts +245 -0
- package/src/utils/PathMatcher.test.ts +148 -0
- package/src/utils/PathMatcher.ts +183 -0
- package/src/utils/YamlParser.ts +75 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { GraphEvent, GraphConfiguration, GraphState, ValidationResult } from './types';
|
|
2
|
+
export interface ProcessingResult {
|
|
3
|
+
success: boolean;
|
|
4
|
+
state: GraphState;
|
|
5
|
+
validation: ValidationResult;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* EventProcessor handles the ingestion and processing of graph events
|
|
10
|
+
*/
|
|
11
|
+
export declare class EventProcessor {
|
|
12
|
+
private state;
|
|
13
|
+
private validationEngine;
|
|
14
|
+
private eventHistory;
|
|
15
|
+
constructor(configuration: GraphConfiguration, options?: {
|
|
16
|
+
validateConfig?: boolean;
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* Process a single graph event
|
|
20
|
+
*/
|
|
21
|
+
processEvent(event: GraphEvent): ProcessingResult;
|
|
22
|
+
/**
|
|
23
|
+
* Validate an event against configuration rules
|
|
24
|
+
*/
|
|
25
|
+
validateEvent(event: GraphEvent): ValidationResult;
|
|
26
|
+
/**
|
|
27
|
+
* Get the current graph state
|
|
28
|
+
*/
|
|
29
|
+
getGraphState(): GraphState;
|
|
30
|
+
/**
|
|
31
|
+
* Get event history
|
|
32
|
+
*/
|
|
33
|
+
getEventHistory(): GraphEvent[];
|
|
34
|
+
/**
|
|
35
|
+
* Reset processor state
|
|
36
|
+
*/
|
|
37
|
+
reset(): void;
|
|
38
|
+
/**
|
|
39
|
+
* Apply event to internal state
|
|
40
|
+
*/
|
|
41
|
+
private applyEvent;
|
|
42
|
+
private handleNodeEvent;
|
|
43
|
+
private handleEdgeEvent;
|
|
44
|
+
private handleStateEvent;
|
|
45
|
+
private handleDataEvent;
|
|
46
|
+
private handleSystemEvent;
|
|
47
|
+
private getEmptyMetrics;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=EventProcessor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventProcessor.d.ts","sourceRoot":"","sources":["../src/EventProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAIjB,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,UAAU,CAAC;IAClB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,YAAY,CAAoB;gBAE5B,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAcrF;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB;IA+BjD;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,gBAAgB;IAIlD;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,eAAe,IAAI,UAAU,EAAE;IAI/B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,OAAO,CAAC,UAAU;IAsBlB,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,eAAe;IAmCvB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,eAAe;IAuBvB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,eAAe;CAUxB"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { ValidationEngine } from './ValidationEngine';
|
|
2
|
+
import { ConfigurationValidator } from './ConfigurationValidator';
|
|
3
|
+
/**
|
|
4
|
+
* EventProcessor handles the ingestion and processing of graph events
|
|
5
|
+
*/
|
|
6
|
+
export class EventProcessor {
|
|
7
|
+
constructor(configuration, options) {
|
|
8
|
+
this.eventHistory = [];
|
|
9
|
+
// Validate configuration by default (can be disabled for performance)
|
|
10
|
+
if (options?.validateConfig !== false) {
|
|
11
|
+
ConfigurationValidator.validateOrThrow(configuration);
|
|
12
|
+
}
|
|
13
|
+
this.state = {
|
|
14
|
+
nodes: new Map(),
|
|
15
|
+
edges: new Map(),
|
|
16
|
+
configuration,
|
|
17
|
+
};
|
|
18
|
+
this.validationEngine = new ValidationEngine(configuration.validation || {});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Process a single graph event
|
|
22
|
+
*/
|
|
23
|
+
processEvent(event) {
|
|
24
|
+
try {
|
|
25
|
+
// Validate event first
|
|
26
|
+
const validation = this.validateEvent(event);
|
|
27
|
+
// Apply the event to state
|
|
28
|
+
this.applyEvent(event);
|
|
29
|
+
// Store in history
|
|
30
|
+
this.eventHistory.push(event);
|
|
31
|
+
return {
|
|
32
|
+
success: true,
|
|
33
|
+
state: this.state,
|
|
34
|
+
validation,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
return {
|
|
39
|
+
success: false,
|
|
40
|
+
state: this.state,
|
|
41
|
+
validation: {
|
|
42
|
+
valid: false,
|
|
43
|
+
violations: [],
|
|
44
|
+
warnings: [],
|
|
45
|
+
metrics: this.getEmptyMetrics(),
|
|
46
|
+
},
|
|
47
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Validate an event against configuration rules
|
|
53
|
+
*/
|
|
54
|
+
validateEvent(event) {
|
|
55
|
+
return this.validationEngine.validate(event, this.state);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get the current graph state
|
|
59
|
+
*/
|
|
60
|
+
getGraphState() {
|
|
61
|
+
return this.state;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get event history
|
|
65
|
+
*/
|
|
66
|
+
getEventHistory() {
|
|
67
|
+
return [...this.eventHistory];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reset processor state
|
|
71
|
+
*/
|
|
72
|
+
reset() {
|
|
73
|
+
this.state.nodes.clear();
|
|
74
|
+
this.state.edges.clear();
|
|
75
|
+
this.eventHistory = [];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Apply event to internal state
|
|
79
|
+
*/
|
|
80
|
+
applyEvent(event) {
|
|
81
|
+
const timestamp = event.timestamp;
|
|
82
|
+
switch (event.category) {
|
|
83
|
+
case 'node':
|
|
84
|
+
this.handleNodeEvent(event, timestamp);
|
|
85
|
+
break;
|
|
86
|
+
case 'edge':
|
|
87
|
+
this.handleEdgeEvent(event, timestamp);
|
|
88
|
+
break;
|
|
89
|
+
case 'state':
|
|
90
|
+
this.handleStateEvent(event, timestamp);
|
|
91
|
+
break;
|
|
92
|
+
case 'data':
|
|
93
|
+
this.handleDataEvent(event);
|
|
94
|
+
break;
|
|
95
|
+
case 'system':
|
|
96
|
+
this.handleSystemEvent(event);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
handleNodeEvent(event, timestamp) {
|
|
101
|
+
const payload = event.payload;
|
|
102
|
+
switch (payload.operation) {
|
|
103
|
+
case 'create':
|
|
104
|
+
this.state.nodes.set(payload.nodeId, {
|
|
105
|
+
id: payload.nodeId,
|
|
106
|
+
type: payload.nodeType,
|
|
107
|
+
data: payload.data || {},
|
|
108
|
+
position: payload.position,
|
|
109
|
+
createdAt: timestamp,
|
|
110
|
+
updatedAt: timestamp,
|
|
111
|
+
});
|
|
112
|
+
break;
|
|
113
|
+
case 'update': {
|
|
114
|
+
const existingNode = this.state.nodes.get(payload.nodeId);
|
|
115
|
+
if (existingNode) {
|
|
116
|
+
this.state.nodes.set(payload.nodeId, {
|
|
117
|
+
...existingNode,
|
|
118
|
+
data: { ...existingNode.data, ...payload.data },
|
|
119
|
+
position: payload.position || existingNode.position,
|
|
120
|
+
updatedAt: timestamp,
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case 'delete':
|
|
126
|
+
this.state.nodes.delete(payload.nodeId);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
handleEdgeEvent(event, timestamp) {
|
|
131
|
+
const payload = event.payload;
|
|
132
|
+
switch (payload.operation) {
|
|
133
|
+
case 'create':
|
|
134
|
+
this.state.edges.set(payload.edgeId, {
|
|
135
|
+
id: payload.edgeId,
|
|
136
|
+
type: payload.edgeType,
|
|
137
|
+
from: payload.from,
|
|
138
|
+
to: payload.to,
|
|
139
|
+
data: payload.data,
|
|
140
|
+
createdAt: timestamp,
|
|
141
|
+
updatedAt: timestamp,
|
|
142
|
+
});
|
|
143
|
+
break;
|
|
144
|
+
case 'update': {
|
|
145
|
+
const existingEdge = this.state.edges.get(payload.edgeId);
|
|
146
|
+
if (existingEdge) {
|
|
147
|
+
this.state.edges.set(payload.edgeId, {
|
|
148
|
+
...existingEdge,
|
|
149
|
+
data: { ...existingEdge.data, ...payload.data },
|
|
150
|
+
updatedAt: timestamp,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
case 'delete':
|
|
156
|
+
this.state.edges.delete(payload.edgeId);
|
|
157
|
+
break;
|
|
158
|
+
case 'animate':
|
|
159
|
+
// Animation is handled by the UI layer
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
handleStateEvent(event, timestamp) {
|
|
164
|
+
const payload = event.payload;
|
|
165
|
+
const node = this.state.nodes.get(payload.nodeId);
|
|
166
|
+
if (node) {
|
|
167
|
+
this.state.nodes.set(payload.nodeId, {
|
|
168
|
+
...node,
|
|
169
|
+
state: payload.newState,
|
|
170
|
+
data: { ...node.data, ...payload.data },
|
|
171
|
+
updatedAt: timestamp,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
handleDataEvent(event) {
|
|
176
|
+
const payload = event.payload;
|
|
177
|
+
if (payload.targetType === 'node') {
|
|
178
|
+
const node = this.state.nodes.get(payload.targetId);
|
|
179
|
+
if (node) {
|
|
180
|
+
this.state.nodes.set(payload.targetId, {
|
|
181
|
+
...node,
|
|
182
|
+
data: { ...node.data, ...payload.updates },
|
|
183
|
+
updatedAt: event.timestamp,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
const edge = this.state.edges.get(payload.targetId);
|
|
189
|
+
if (edge) {
|
|
190
|
+
this.state.edges.set(payload.targetId, {
|
|
191
|
+
...edge,
|
|
192
|
+
data: { ...edge.data, ...payload.updates },
|
|
193
|
+
updatedAt: event.timestamp,
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
handleSystemEvent(event) {
|
|
199
|
+
const payload = event.payload;
|
|
200
|
+
if (payload.action === 'reset') {
|
|
201
|
+
this.reset();
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
getEmptyMetrics() {
|
|
205
|
+
return {
|
|
206
|
+
totalEvents: 0,
|
|
207
|
+
validEvents: 0,
|
|
208
|
+
violations: 0,
|
|
209
|
+
warnings: 0,
|
|
210
|
+
unexpectedEvents: 0,
|
|
211
|
+
expectedEventsMissing: 0,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=EventProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventProcessor.js","sourceRoot":"","sources":["../src/EventProcessor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EventRecorderService - Log ingestion and event recording service
|
|
3
|
+
*
|
|
4
|
+
* This service:
|
|
5
|
+
* 1. Accepts logs via message protocol or direct API
|
|
6
|
+
* 2. Processes logs through PathBasedEventProcessor
|
|
7
|
+
* 3. Manages sessions through SessionManager
|
|
8
|
+
* 4. Emits events to subscribers for visualization
|
|
9
|
+
*
|
|
10
|
+
* The service is transport-agnostic - it handles message parsing and responses
|
|
11
|
+
* but does not implement any specific transport (WebSocket, IPC, etc.).
|
|
12
|
+
* The host application is responsible for the actual transport layer.
|
|
13
|
+
*/
|
|
14
|
+
import { SessionManager } from './SessionManager';
|
|
15
|
+
import type { EventSession, CreateSessionOptions, EndSessionOptions } from './SessionManager';
|
|
16
|
+
import type { LogEntry } from './PathBasedEventProcessor';
|
|
17
|
+
import type { PathBasedGraphConfiguration, PathBasedEvent } from './types/path-based-config';
|
|
18
|
+
import type { GraphEvent } from './types';
|
|
19
|
+
/**
|
|
20
|
+
* Protocol message types for log ingestion
|
|
21
|
+
*/
|
|
22
|
+
export type ProtocolMessageType = 'session_start' | 'session_end' | 'log' | 'log_batch' | 'ping' | 'pong' | 'error' | 'ack';
|
|
23
|
+
/**
|
|
24
|
+
* Base protocol message structure
|
|
25
|
+
*/
|
|
26
|
+
export interface ProtocolMessage {
|
|
27
|
+
type: ProtocolMessageType;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
requestId?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Session start message
|
|
33
|
+
*/
|
|
34
|
+
export interface SessionStartMessage extends ProtocolMessage {
|
|
35
|
+
type: 'session_start';
|
|
36
|
+
payload: {
|
|
37
|
+
name: string;
|
|
38
|
+
id?: string;
|
|
39
|
+
metadata?: {
|
|
40
|
+
testFile?: string;
|
|
41
|
+
testName?: string;
|
|
42
|
+
testSuite?: string;
|
|
43
|
+
tags?: string[];
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Session end message
|
|
49
|
+
*/
|
|
50
|
+
export interface SessionEndMessage extends ProtocolMessage {
|
|
51
|
+
type: 'session_end';
|
|
52
|
+
payload: {
|
|
53
|
+
sessionId: string;
|
|
54
|
+
result?: 'pass' | 'fail' | 'skip';
|
|
55
|
+
error?: string;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Single log message
|
|
60
|
+
*/
|
|
61
|
+
export interface LogMessage extends ProtocolMessage {
|
|
62
|
+
type: 'log';
|
|
63
|
+
payload: LogEntry;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Batch log message
|
|
67
|
+
*/
|
|
68
|
+
export interface LogBatchMessage extends ProtocolMessage {
|
|
69
|
+
type: 'log_batch';
|
|
70
|
+
payload: {
|
|
71
|
+
logs: LogEntry[];
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Ping message for keepalive
|
|
76
|
+
*/
|
|
77
|
+
export interface PingMessage extends ProtocolMessage {
|
|
78
|
+
type: 'ping';
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Pong response
|
|
82
|
+
*/
|
|
83
|
+
export interface PongMessage extends ProtocolMessage {
|
|
84
|
+
type: 'pong';
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Error response
|
|
88
|
+
*/
|
|
89
|
+
export interface ErrorMessage extends ProtocolMessage {
|
|
90
|
+
type: 'error';
|
|
91
|
+
payload: {
|
|
92
|
+
code: string;
|
|
93
|
+
message: string;
|
|
94
|
+
requestId?: string;
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Acknowledgment response
|
|
99
|
+
*/
|
|
100
|
+
export interface AckMessage extends ProtocolMessage {
|
|
101
|
+
type: 'ack';
|
|
102
|
+
payload: {
|
|
103
|
+
requestId: string;
|
|
104
|
+
sessionId?: string;
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Union type for all incoming messages
|
|
109
|
+
*/
|
|
110
|
+
export type IncomingMessage = SessionStartMessage | SessionEndMessage | LogMessage | LogBatchMessage | PingMessage;
|
|
111
|
+
/**
|
|
112
|
+
* Union type for all outgoing messages
|
|
113
|
+
*/
|
|
114
|
+
export type OutgoingMessage = PongMessage | ErrorMessage | AckMessage;
|
|
115
|
+
/**
|
|
116
|
+
* Recording mode
|
|
117
|
+
*/
|
|
118
|
+
export type RecordingMode = 'auto' | 'manual' | 'continuous';
|
|
119
|
+
/**
|
|
120
|
+
* Event callback for processed events
|
|
121
|
+
*/
|
|
122
|
+
export type EventCallback = (event: PathBasedEvent | GraphEvent) => void;
|
|
123
|
+
/**
|
|
124
|
+
* Event batch callback
|
|
125
|
+
*/
|
|
126
|
+
export type EventBatchCallback = (events: Array<PathBasedEvent | GraphEvent>) => void;
|
|
127
|
+
/**
|
|
128
|
+
* Connection state
|
|
129
|
+
*/
|
|
130
|
+
export interface ConnectionState {
|
|
131
|
+
id: string;
|
|
132
|
+
connectedAt: number;
|
|
133
|
+
lastActivityAt: number;
|
|
134
|
+
activeSessionId: string | null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* EventRecorderService configuration
|
|
138
|
+
*/
|
|
139
|
+
export interface EventRecorderServiceConfig {
|
|
140
|
+
/** Graph configuration for PathBasedEventProcessor */
|
|
141
|
+
graphConfig: PathBasedGraphConfiguration;
|
|
142
|
+
/** Recording mode (default: 'manual') */
|
|
143
|
+
recordingMode?: RecordingMode;
|
|
144
|
+
/** Whether to emit events immediately or batch them (default: true) */
|
|
145
|
+
emitImmediately?: boolean;
|
|
146
|
+
/** Batch interval in ms when emitImmediately is false (default: 100) */
|
|
147
|
+
batchIntervalMs?: number;
|
|
148
|
+
/** SessionManager configuration */
|
|
149
|
+
sessionConfig?: {
|
|
150
|
+
maxEventsPerSession?: number;
|
|
151
|
+
maxSessions?: number;
|
|
152
|
+
sessionRetention?: number;
|
|
153
|
+
autoCleanup?: boolean;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* EventRecorderService - Main service for log ingestion and event recording
|
|
158
|
+
*/
|
|
159
|
+
export declare class EventRecorderService {
|
|
160
|
+
private sessionManager;
|
|
161
|
+
private eventProcessor;
|
|
162
|
+
private config;
|
|
163
|
+
private eventListeners;
|
|
164
|
+
private batchListeners;
|
|
165
|
+
private eventBuffer;
|
|
166
|
+
private batchTimer;
|
|
167
|
+
private connections;
|
|
168
|
+
private isRecording;
|
|
169
|
+
constructor(config: EventRecorderServiceConfig);
|
|
170
|
+
/**
|
|
171
|
+
* Process an incoming protocol message
|
|
172
|
+
*/
|
|
173
|
+
processMessage(message: IncomingMessage, connectionId: string): OutgoingMessage | null;
|
|
174
|
+
/**
|
|
175
|
+
* Handle session start message
|
|
176
|
+
*/
|
|
177
|
+
private handleSessionStart;
|
|
178
|
+
/**
|
|
179
|
+
* Handle session end message
|
|
180
|
+
*/
|
|
181
|
+
private handleSessionEnd;
|
|
182
|
+
/**
|
|
183
|
+
* Handle single log message
|
|
184
|
+
*/
|
|
185
|
+
private handleLog;
|
|
186
|
+
/**
|
|
187
|
+
* Handle batch log message
|
|
188
|
+
*/
|
|
189
|
+
private handleLogBatch;
|
|
190
|
+
/**
|
|
191
|
+
* Handle ping message
|
|
192
|
+
*/
|
|
193
|
+
private handlePing;
|
|
194
|
+
/**
|
|
195
|
+
* Create an error response
|
|
196
|
+
*/
|
|
197
|
+
private createError;
|
|
198
|
+
/**
|
|
199
|
+
* Emit events to listeners
|
|
200
|
+
*/
|
|
201
|
+
private emitEvents;
|
|
202
|
+
/**
|
|
203
|
+
* Start batch processing timer
|
|
204
|
+
*/
|
|
205
|
+
private startBatchProcessing;
|
|
206
|
+
/**
|
|
207
|
+
* Stop batch processing timer
|
|
208
|
+
*/
|
|
209
|
+
private stopBatchProcessing;
|
|
210
|
+
/**
|
|
211
|
+
* Process a log entry directly (without protocol message wrapper)
|
|
212
|
+
*/
|
|
213
|
+
processLog(log: LogEntry): PathBasedEvent[];
|
|
214
|
+
/**
|
|
215
|
+
* Process multiple log entries directly (without protocol message wrapper)
|
|
216
|
+
*/
|
|
217
|
+
processLogs(logs: LogEntry[]): PathBasedEvent[];
|
|
218
|
+
/**
|
|
219
|
+
* Start a new session directly
|
|
220
|
+
*/
|
|
221
|
+
startSession(options: CreateSessionOptions): EventSession;
|
|
222
|
+
/**
|
|
223
|
+
* End a session directly
|
|
224
|
+
*/
|
|
225
|
+
endSession(sessionId: string, options?: EndSessionOptions): void;
|
|
226
|
+
/**
|
|
227
|
+
* End the active session
|
|
228
|
+
*/
|
|
229
|
+
endActiveSession(options?: EndSessionOptions): void;
|
|
230
|
+
/**
|
|
231
|
+
* Start recording (for manual mode)
|
|
232
|
+
*/
|
|
233
|
+
startRecording(): void;
|
|
234
|
+
/**
|
|
235
|
+
* Stop recording (for manual mode)
|
|
236
|
+
*/
|
|
237
|
+
stopRecording(): void;
|
|
238
|
+
/**
|
|
239
|
+
* Check if currently recording
|
|
240
|
+
*/
|
|
241
|
+
get recording(): boolean;
|
|
242
|
+
/**
|
|
243
|
+
* Register a new connection
|
|
244
|
+
*/
|
|
245
|
+
registerConnection(connectionId: string): void;
|
|
246
|
+
/**
|
|
247
|
+
* Unregister a connection
|
|
248
|
+
*/
|
|
249
|
+
unregisterConnection(connectionId: string): void;
|
|
250
|
+
/**
|
|
251
|
+
* Get connection state
|
|
252
|
+
*/
|
|
253
|
+
getConnection(connectionId: string): ConnectionState | undefined;
|
|
254
|
+
/**
|
|
255
|
+
* Get all active connections
|
|
256
|
+
*/
|
|
257
|
+
getConnections(): ConnectionState[];
|
|
258
|
+
/**
|
|
259
|
+
* Subscribe to individual events
|
|
260
|
+
*/
|
|
261
|
+
onEvent(callback: EventCallback): () => void;
|
|
262
|
+
/**
|
|
263
|
+
* Subscribe to event batches
|
|
264
|
+
*/
|
|
265
|
+
onEventBatch(callback: EventBatchCallback): () => void;
|
|
266
|
+
/**
|
|
267
|
+
* Get SessionManager for direct access
|
|
268
|
+
*/
|
|
269
|
+
getSessionManager(): SessionManager;
|
|
270
|
+
/**
|
|
271
|
+
* Get active session
|
|
272
|
+
*/
|
|
273
|
+
getActiveSession(): EventSession | undefined;
|
|
274
|
+
/**
|
|
275
|
+
* Get session by ID
|
|
276
|
+
*/
|
|
277
|
+
getSession(id: string): EventSession | undefined;
|
|
278
|
+
/**
|
|
279
|
+
* List all sessions
|
|
280
|
+
*/
|
|
281
|
+
listSessions(): EventSession[];
|
|
282
|
+
/**
|
|
283
|
+
* Get service statistics
|
|
284
|
+
*/
|
|
285
|
+
getStats(): {
|
|
286
|
+
isRecording: boolean;
|
|
287
|
+
recordingMode: RecordingMode;
|
|
288
|
+
activeConnections: number;
|
|
289
|
+
sessions: {
|
|
290
|
+
total: number;
|
|
291
|
+
active: number;
|
|
292
|
+
totalEvents: number;
|
|
293
|
+
};
|
|
294
|
+
processor: {
|
|
295
|
+
totalComponents: number;
|
|
296
|
+
componentsWithSources: number;
|
|
297
|
+
totalSourcePatterns: number;
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
/**
|
|
301
|
+
* Dispose of the service
|
|
302
|
+
*/
|
|
303
|
+
dispose(): void;
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=EventRecorderService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventRecorderService.d.ts","sourceRoot":"","sources":["../src/EventRecorderService.ts"],"names":[],"mappings":"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"}
|