@orgloop/core 0.5.0 → 0.7.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.
@@ -0,0 +1,100 @@
1
+ /**
2
+ * AuditTrail — tracks every SOP execution with full provenance.
3
+ *
4
+ * Records input events, matched routes, agent sessions, outputs,
5
+ * and content hashes for security observability.
6
+ */
7
+ /** A single output/side-effect produced by an SOP execution. */
8
+ export interface AuditOutput {
9
+ /** What kind of output (e.g., "message.sent", "issue.created", "pr.commented") */
10
+ type: string;
11
+ /** Target system or resource */
12
+ target: string;
13
+ /** SHA-256 hash of the output content */
14
+ content_hash: string;
15
+ /** Timestamp of the output */
16
+ timestamp: string;
17
+ /** Validation flags raised for this output */
18
+ flags: AuditFlag[];
19
+ }
20
+ /** A flag raised during output validation. */
21
+ export interface AuditFlag {
22
+ /** Flag type */
23
+ type: 'instruction_content' | 'input_echo' | 'scope_violation' | 'chain_depth';
24
+ /** Severity */
25
+ severity: 'info' | 'warning' | 'critical';
26
+ /** Human-readable description */
27
+ message: string;
28
+ }
29
+ /** Complete audit record for one SOP execution. */
30
+ export interface AuditRecord {
31
+ /** Unique audit record ID */
32
+ id: string;
33
+ /** ISO 8601 timestamp */
34
+ timestamp: string;
35
+ /** Trace ID linking the full event chain */
36
+ trace_id: string;
37
+ /** Input event ID */
38
+ input_event_id: string;
39
+ /** Input event source */
40
+ input_source: string;
41
+ /** Input event type */
42
+ input_type: string;
43
+ /** SHA-256 hash of the input event payload */
44
+ input_content_hash: string;
45
+ /** Matched route name */
46
+ route: string;
47
+ /** SOP file path (if any) */
48
+ sop_file: string | null;
49
+ /** Module that processed the event */
50
+ module: string;
51
+ /** Actor that handled the event */
52
+ actor: string;
53
+ /** Delivery status */
54
+ delivery_status: 'delivered' | 'rejected' | 'error' | 'held';
55
+ /** Processing duration in ms */
56
+ duration_ms: number;
57
+ /** All outputs/side-effects produced */
58
+ outputs: AuditOutput[];
59
+ /** Depth of this event in its chain (1 = root) */
60
+ chain_depth: number;
61
+ /** Parent event ID (if this event was triggered by another SOP execution) */
62
+ parent_event_id: string | null;
63
+ /** Whether any outputs were held for review */
64
+ held_for_review: boolean;
65
+ /** All flags raised during validation */
66
+ flags: AuditFlag[];
67
+ }
68
+ export interface AuditTrailOptions {
69
+ /** Maximum number of audit records to retain (default: 5000) */
70
+ maxSize?: number;
71
+ }
72
+ /** Generate a unique audit record ID. */
73
+ export declare function generateAuditId(): string;
74
+ /** Compute SHA-256 hash of a JSON-serializable value. */
75
+ export declare function contentHash(value: unknown): string;
76
+ export declare class AuditTrail {
77
+ private readonly buffer;
78
+ private readonly maxSize;
79
+ private head;
80
+ private count;
81
+ constructor(options?: AuditTrailOptions);
82
+ /** Record an audit entry. */
83
+ record(entry: AuditRecord): void;
84
+ /** Get the number of stored records. */
85
+ size(): number;
86
+ /** Query audit records, newest first. */
87
+ query(filter?: {
88
+ trace_id?: string;
89
+ route?: string;
90
+ actor?: string;
91
+ held_only?: boolean;
92
+ flagged_only?: boolean;
93
+ limit?: number;
94
+ }): AuditRecord[];
95
+ /** Get all records for a trace (the full event chain). */
96
+ getChain(traceId: string): AuditRecord[];
97
+ /** Return all records as an array, newest first. */
98
+ private toArray;
99
+ }
100
+ //# sourceMappingURL=audit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
package/dist/audit.js ADDED
@@ -0,0 +1,81 @@
1
+ /**
2
+ * AuditTrail — tracks every SOP execution with full provenance.
3
+ *
4
+ * Records input events, matched routes, agent sessions, outputs,
5
+ * and content hashes for security observability.
6
+ */
7
+ import { createHash } from 'node:crypto';
8
+ // ─── Helpers ──────────────────────────────────────────────────────────────────
9
+ let auditCounter = 0;
10
+ /** Generate a unique audit record ID. */
11
+ export function generateAuditId() {
12
+ return `aud_${Date.now().toString(36)}_${(auditCounter++).toString(36)}`;
13
+ }
14
+ /** Compute SHA-256 hash of a JSON-serializable value. */
15
+ export function contentHash(value) {
16
+ const json = JSON.stringify(value, null, 0);
17
+ return createHash('sha256').update(json).digest('hex');
18
+ }
19
+ // ─── AuditTrail Class ────────────────────────────────────────────────────────
20
+ export class AuditTrail {
21
+ buffer;
22
+ maxSize;
23
+ head = 0;
24
+ count = 0;
25
+ constructor(options) {
26
+ this.maxSize = options?.maxSize ?? 5000;
27
+ this.buffer = new Array(this.maxSize);
28
+ }
29
+ /** Record an audit entry. */
30
+ record(entry) {
31
+ this.buffer[this.head] = entry;
32
+ this.head = (this.head + 1) % this.maxSize;
33
+ if (this.count < this.maxSize) {
34
+ this.count++;
35
+ }
36
+ }
37
+ /** Get the number of stored records. */
38
+ size() {
39
+ return this.count;
40
+ }
41
+ /** Query audit records, newest first. */
42
+ query(filter) {
43
+ let records = this.toArray();
44
+ if (filter?.trace_id) {
45
+ records = records.filter((r) => r.trace_id === filter.trace_id);
46
+ }
47
+ if (filter?.route) {
48
+ records = records.filter((r) => r.route === filter.route);
49
+ }
50
+ if (filter?.actor) {
51
+ records = records.filter((r) => r.actor === filter.actor);
52
+ }
53
+ if (filter?.held_only) {
54
+ records = records.filter((r) => r.held_for_review);
55
+ }
56
+ if (filter?.flagged_only) {
57
+ records = records.filter((r) => r.flags.length > 0);
58
+ }
59
+ if (filter?.limit && filter.limit > 0) {
60
+ records = records.slice(0, filter.limit);
61
+ }
62
+ return records;
63
+ }
64
+ /** Get all records for a trace (the full event chain). */
65
+ getChain(traceId) {
66
+ return this.toArray().filter((r) => r.trace_id === traceId);
67
+ }
68
+ /** Return all records as an array, newest first. */
69
+ toArray() {
70
+ if (this.count === 0)
71
+ return [];
72
+ const result = [];
73
+ const start = (this.head - this.count + this.maxSize) % this.maxSize;
74
+ for (let i = this.count - 1; i >= 0; i--) {
75
+ const idx = (start + i) % this.maxSize;
76
+ result.push(this.buffer[idx]);
77
+ }
78
+ return result;
79
+ }
80
+ }
81
+ //# sourceMappingURL=audit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * EventHistory — in-memory ring buffer for recent event records.
3
+ *
4
+ * Stores processed events with routing metadata for the REST API.
5
+ * Configurable max size (default 1000). Oldest entries evicted on overflow.
6
+ */
7
+ export interface EventRecord {
8
+ /** Event ID */
9
+ event_id: string;
10
+ /** ISO 8601 timestamp */
11
+ timestamp: string;
12
+ /** Source connector ID */
13
+ source: string;
14
+ /** Event type (resource.changed, actor.stopped, message.received) */
15
+ type: string;
16
+ /** Route(s) that matched this event */
17
+ matched_routes: string[];
18
+ /** SOP file paths for matched routes */
19
+ sop_files: string[];
20
+ /** Actor IDs delivered to */
21
+ actors: string[];
22
+ /** Processing time in milliseconds */
23
+ processing_ms: number;
24
+ /** Module that processed this event */
25
+ module: string;
26
+ /** Trace ID */
27
+ trace_id?: string;
28
+ }
29
+ export interface EventHistoryOptions {
30
+ /** Maximum number of events to retain (default: 1000) */
31
+ maxSize?: number;
32
+ }
33
+ export interface EventHistoryQuery {
34
+ /** ISO 8601 start timestamp */
35
+ from?: string;
36
+ /** ISO 8601 end timestamp */
37
+ to?: string;
38
+ /** Filter by source connector ID */
39
+ source?: string;
40
+ /** Filter by matched route name */
41
+ route?: string;
42
+ /** Maximum number of results to return */
43
+ limit?: number;
44
+ }
45
+ export declare class EventHistory {
46
+ private readonly buffer;
47
+ private readonly maxSize;
48
+ private head;
49
+ private count;
50
+ constructor(options?: EventHistoryOptions);
51
+ /** Add an event record to the ring buffer. */
52
+ push(record: EventRecord): void;
53
+ /** Get the current number of stored records. */
54
+ size(): number;
55
+ /** Query events with optional filters. Returns newest-first. */
56
+ query(q?: EventHistoryQuery): EventRecord[];
57
+ /** Return all records as an array, newest first. */
58
+ private toArray;
59
+ }
60
+ //# sourceMappingURL=event-history.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-history.d.ts","sourceRoot":"","sources":["../src/event-history.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC3B,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,uCAAuC;IACvC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,wCAAwC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IACnC,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IACjC,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6BAA6B;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,YAAY;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAK;gBAEN,OAAO,CAAC,EAAE,mBAAmB;IAKzC,8CAA8C;IAC9C,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAQ/B,gDAAgD;IAChD,IAAI,IAAI,MAAM;IAId,gEAAgE;IAChE,KAAK,CAAC,CAAC,CAAC,EAAE,iBAAiB,GAAG,WAAW,EAAE;IA+B3C,oDAAoD;IACpD,OAAO,CAAC,OAAO;CAaf"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * EventHistory — in-memory ring buffer for recent event records.
3
+ *
4
+ * Stores processed events with routing metadata for the REST API.
5
+ * Configurable max size (default 1000). Oldest entries evicted on overflow.
6
+ */
7
+ export class EventHistory {
8
+ buffer;
9
+ maxSize;
10
+ head = 0;
11
+ count = 0;
12
+ constructor(options) {
13
+ this.maxSize = options?.maxSize ?? 1000;
14
+ this.buffer = new Array(this.maxSize);
15
+ }
16
+ /** Add an event record to the ring buffer. */
17
+ push(record) {
18
+ this.buffer[this.head] = record;
19
+ this.head = (this.head + 1) % this.maxSize;
20
+ if (this.count < this.maxSize) {
21
+ this.count++;
22
+ }
23
+ }
24
+ /** Get the current number of stored records. */
25
+ size() {
26
+ return this.count;
27
+ }
28
+ /** Query events with optional filters. Returns newest-first. */
29
+ query(q) {
30
+ const records = this.toArray();
31
+ let filtered = records;
32
+ if (q?.from) {
33
+ const fromTime = new Date(q.from).getTime();
34
+ filtered = filtered.filter((r) => new Date(r.timestamp).getTime() >= fromTime);
35
+ }
36
+ if (q?.to) {
37
+ const toTime = new Date(q.to).getTime();
38
+ filtered = filtered.filter((r) => new Date(r.timestamp).getTime() <= toTime);
39
+ }
40
+ if (q?.source) {
41
+ filtered = filtered.filter((r) => r.source === q.source);
42
+ }
43
+ if (q?.route) {
44
+ const routeFilter = q.route;
45
+ filtered = filtered.filter((r) => r.matched_routes.includes(routeFilter));
46
+ }
47
+ if (q?.limit && q.limit > 0) {
48
+ filtered = filtered.slice(0, q.limit);
49
+ }
50
+ return filtered;
51
+ }
52
+ /** Return all records as an array, newest first. */
53
+ toArray() {
54
+ if (this.count === 0)
55
+ return [];
56
+ const result = [];
57
+ const start = (this.head - this.count + this.maxSize) % this.maxSize;
58
+ for (let i = this.count - 1; i >= 0; i--) {
59
+ const idx = (start + i) % this.maxSize;
60
+ result.push(this.buffer[idx]);
61
+ }
62
+ return result;
63
+ }
64
+ }
65
+ //# sourceMappingURL=event-history.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-history.js","sourceRoot":"","sources":["../src/event-history.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA2CH,MAAM,OAAO,YAAY;IACP,MAAM,CAAgB;IACtB,OAAO,CAAS;IACzB,IAAI,GAAG,CAAC,CAAC;IACT,KAAK,GAAG,CAAC,CAAC;IAElB,YAAY,OAA6B;QACxC,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAc,IAAI,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC,MAAmB;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC;IACF,CAAC;IAED,gDAAgD;IAChD,IAAI;QACH,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,CAAqB;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAI,QAAQ,GAAG,OAAO,CAAC;QAEvB,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,QAAQ,CAAC,CAAC;QAChF,CAAC;QAED,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;YACxC,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,IAAI,MAAM,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YACf,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;YACd,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC;YAC5B,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,oDAAoD;IAC5C,OAAO;QACd,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEhC,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QAErE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD"}
package/dist/http.d.ts CHANGED
@@ -17,15 +17,19 @@ export interface RuntimeControl {
17
17
  getModuleStatus(name: string): unknown;
18
18
  stop(): Promise<void>;
19
19
  }
20
+ export type ApiHandler = (query: URLSearchParams) => Promise<unknown>;
20
21
  export declare class WebhookServer {
21
22
  private readonly handlers;
22
23
  private readonly onEvent;
23
24
  private server;
24
25
  private _runtime;
25
26
  private readonly controlHandlers;
27
+ private readonly apiHandlers;
26
28
  constructor(onEvent: (event: OrgLoopEvent) => Promise<void>, handlers?: Map<string, WebhookHandler>);
27
29
  /** Register a custom control API handler for a given route suffix. */
28
30
  registerControlHandler(route: string, handler: (body: Record<string, unknown>) => Promise<unknown>): void;
31
+ /** Register a GET /api/:route handler. */
32
+ registerApiHandler(route: string, handler: ApiHandler): void;
29
33
  set runtime(rt: RuntimeControl);
30
34
  addHandler(sourceId: string, handler: WebhookHandler): void;
31
35
  removeHandler(sourceId: string): void;
@@ -33,6 +37,7 @@ export declare class WebhookServer {
33
37
  stop(): Promise<void>;
34
38
  private handleRequest;
35
39
  private handleControlRequest;
40
+ private handleApiRequest;
36
41
  private jsonResponse;
37
42
  private readBody;
38
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC9B,MAAM,IAAI,OAAO,CAAC;IAClB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,IAAI,OAAO,EAAE,CAAC;IACzB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;gBAGH,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAMvC,sEAAsE;IACtE,sBAAsB,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAC1D,IAAI;IAIP,IAAI,OAAO,CAAC,EAAE,EAAE,cAAc,EAE7B;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAI3D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBb,aAAa;YA8Cb,oBAAoB;IA4FlC,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;CAehB"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjE,eAAO,MAAM,iBAAiB,OAAO,CAAC;AAEtC,qFAAqF;AACrF,MAAM,WAAW,cAAc;IAC9B,MAAM,IAAI,OAAO,CAAC;IAClB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,WAAW,IAAI,OAAO,EAAE,CAAC;IACzB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtE,qBAAa,aAAa;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IACJ,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiC;gBAG5D,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,EAC/C,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAMvC,sEAAsE;IACtE,sBAAsB,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAC1D,IAAI;IAIP,0CAA0C;IAC1C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,IAAI;IAI5D,IAAI,OAAO,CAAC,EAAE,EAAE,cAAc,EAE7B;IAED,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI;IAI3D,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI/B,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAalC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBb,aAAa;YAoDb,oBAAoB;YA4FpB,gBAAgB;IAwC9B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,QAAQ;CAehB"}
package/dist/http.js CHANGED
@@ -13,6 +13,7 @@ export class WebhookServer {
13
13
  server = null;
14
14
  _runtime = null;
15
15
  controlHandlers = new Map();
16
+ apiHandlers = new Map();
16
17
  constructor(onEvent, handlers) {
17
18
  this.onEvent = onEvent;
18
19
  this.handlers = handlers ?? new Map();
@@ -21,6 +22,10 @@ export class WebhookServer {
21
22
  registerControlHandler(route, handler) {
22
23
  this.controlHandlers.set(route, handler);
23
24
  }
25
+ /** Register a GET /api/:route handler. */
26
+ registerApiHandler(route, handler) {
27
+ this.apiHandlers.set(route, handler);
28
+ }
24
29
  set runtime(rt) {
25
30
  this._runtime = rt;
26
31
  }
@@ -65,6 +70,11 @@ export class WebhookServer {
65
70
  await this.handleControlRequest(req, res, parts.slice(1));
66
71
  return;
67
72
  }
73
+ // REST API routes (GET /api/*)
74
+ if (parts[0] === 'api') {
75
+ await this.handleApiRequest(req, res, url, parts.slice(1));
76
+ return;
77
+ }
68
78
  // Route: POST /webhook/:sourceId
69
79
  if (parts.length !== 2 || parts[0] !== 'webhook') {
70
80
  res.writeHead(404, { 'Content-Type': 'application/json' });
@@ -176,6 +186,36 @@ export class WebhookServer {
176
186
  }
177
187
  }
178
188
  }
189
+ async handleApiRequest(req, res, url, parts) {
190
+ if (req.method !== 'GET') {
191
+ res.writeHead(405, { 'Content-Type': 'application/json' });
192
+ res.end(JSON.stringify({ error: 'Method not allowed' }));
193
+ return;
194
+ }
195
+ const route = parts.join('/');
196
+ const handler = this.apiHandlers.get(route);
197
+ if (!handler) {
198
+ res.writeHead(404, { 'Content-Type': 'application/json' });
199
+ res.end(JSON.stringify({ error: 'Not found' }));
200
+ return;
201
+ }
202
+ try {
203
+ const result = await handler(url.searchParams);
204
+ // Special case: metrics endpoint returns plain text
205
+ if (route === 'metrics' && typeof result === 'string') {
206
+ res.writeHead(200, { 'Content-Type': 'text/plain; version=0.0.4; charset=utf-8' });
207
+ res.end(result);
208
+ return;
209
+ }
210
+ this.jsonResponse(res, 200, result);
211
+ }
212
+ catch (err) {
213
+ if (!res.headersSent) {
214
+ res.writeHead(500, { 'Content-Type': 'application/json' });
215
+ res.end(JSON.stringify({ error: err instanceof Error ? err.message : 'Internal error' }));
216
+ }
217
+ }
218
+ }
179
219
  jsonResponse(res, status, data) {
180
220
  res.writeHead(status, { 'Content-Type': 'application/json' });
181
221
  res.end(JSON.stringify(data));
package/dist/http.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,24 +3,33 @@
3
3
  *
4
4
  * Public API exports for library mode.
5
5
  */
6
+ export type { AuditFlag, AuditOutput, AuditRecord, AuditTrailOptions } from './audit.js';
7
+ export { AuditTrail, contentHash, generateAuditId } from './audit.js';
6
8
  export type { BusHandler, EventBus } from './bus.js';
7
9
  export { FileWalBus, InMemoryBus } from './bus.js';
8
10
  export type { EngineStatus, OrgLoopOptions, SourceCircuitBreakerOptions } from './engine.js';
9
11
  export { OrgLoop } from './engine.js';
10
12
  export { ConfigError, ConnectorError, DeliveryError, ModuleConflictError, ModuleNotFoundError, OrgLoopError, RuntimeError, SchemaError, TransformError, } from './errors.js';
11
- export type { RuntimeControl } from './http.js';
13
+ export type { EventHistoryOptions, EventHistoryQuery, EventRecord } from './event-history.js';
14
+ export { EventHistory } from './event-history.js';
15
+ export type { ApiHandler, RuntimeControl } from './http.js';
12
16
  export { DEFAULT_HTTP_PORT, WebhookServer } from './http.js';
13
17
  export { LoggerManager } from './logger.js';
18
+ export type { ChainNode, LoopCheckResult, LoopDetectorOptions } from './loop-detector.js';
19
+ export { LoopDetector } from './loop-detector.js';
14
20
  export type { MetricsServerOptions } from './metrics.js';
15
21
  export { MetricsServer } from './metrics.js';
16
22
  export type { ModuleConfig, ModuleContext } from './module-instance.js';
17
23
  export { ModuleInstance } from './module-instance.js';
24
+ export type { OutputValidationResult, OutputValidatorOptions } from './output-validator.js';
25
+ export { OutputValidator } from './output-validator.js';
18
26
  export type { StripFrontMatterResult } from './prompt.js';
19
27
  export { stripFrontMatter } from './prompt.js';
20
28
  export { ModuleRegistry } from './registry.js';
29
+ export { registerRestApi } from './rest-api.js';
21
30
  export type { MatchedRoute } from './router.js';
22
31
  export { matchRoutes } from './router.js';
23
- export type { LoadModuleOptions, RuntimeOptions } from './runtime.js';
32
+ export type { LoadModuleOptions, RouteStats, RuntimeOptions } from './runtime.js';
24
33
  export { Runtime } from './runtime.js';
25
34
  export { Scheduler } from './scheduler.js';
26
35
  export type { LoadConfigOptions } from './schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EACN,WAAW,EACX,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEtE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAErD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACnD,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGtC,OAAO,EACN,WAAW,EACX,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAElF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,YAAY,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAExE,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAExF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -3,23 +3,33 @@
3
3
  *
4
4
  * Public API exports for library mode.
5
5
  */
6
+ // Audit trail
7
+ export { AuditTrail, contentHash, generateAuditId } from './audit.js';
6
8
  // Event bus
7
9
  export { FileWalBus, InMemoryBus } from './bus.js';
8
10
  // Main engine
9
11
  export { OrgLoop } from './engine.js';
10
12
  // Errors
11
13
  export { ConfigError, ConnectorError, DeliveryError, ModuleConflictError, ModuleNotFoundError, OrgLoopError, RuntimeError, SchemaError, TransformError, } from './errors.js';
14
+ // Event history
15
+ export { EventHistory } from './event-history.js';
12
16
  // HTTP webhook server
13
17
  export { DEFAULT_HTTP_PORT, WebhookServer } from './http.js';
14
18
  // Logger manager
15
19
  export { LoggerManager } from './logger.js';
20
+ // Loop detector
21
+ export { LoopDetector } from './loop-detector.js';
16
22
  // Prometheus metrics
17
23
  export { MetricsServer } from './metrics.js';
18
24
  // Module system
19
25
  export { ModuleInstance } from './module-instance.js';
26
+ // Output validator
27
+ export { OutputValidator } from './output-validator.js';
20
28
  // Prompt utilities
21
29
  export { stripFrontMatter } from './prompt.js';
22
30
  export { ModuleRegistry } from './registry.js';
31
+ // REST API
32
+ export { registerRestApi } from './rest-api.js';
23
33
  // Router
24
34
  export { matchRoutes } from './router.js';
25
35
  // Runtime (new architecture)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEnD,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,SAAS;AACT,OAAO,EACN,WAAW,EACX,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,GACd,MAAM,aAAa,CAAC;AAErB,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,6BAA6B;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,SAAS;AACT,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAqB;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc;AACd,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtE,YAAY;AACZ,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEnD,cAAc;AACd,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,SAAS;AACT,OAAO,EACN,WAAW,EACX,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,GACd,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC7D,iBAAiB;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,qBAAqB;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,mBAAmB;AACnB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,6BAA6B;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY;AACZ,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,iBAAiB;AACjB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,SAAS;AACT,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,YAAY,CAAC;AAEpB,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAqB;AACrB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC"}