rax-flow-core 0.2.0 → 2.0.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 (46) hide show
  1. package/dist/governance/audit-trail.d.ts +94 -0
  2. package/dist/governance/audit-trail.d.ts.map +1 -0
  3. package/dist/governance/audit-trail.js +246 -0
  4. package/dist/governance/audit-trail.js.map +1 -0
  5. package/dist/governance/policy-engine.d.ts +101 -0
  6. package/dist/governance/policy-engine.d.ts.map +1 -0
  7. package/dist/governance/policy-engine.js +446 -0
  8. package/dist/governance/policy-engine.js.map +1 -0
  9. package/dist/governance/rbac-engine.d.ts +59 -0
  10. package/dist/governance/rbac-engine.d.ts.map +1 -0
  11. package/dist/governance/rbac-engine.js +183 -0
  12. package/dist/governance/rbac-engine.js.map +1 -0
  13. package/dist/index.d.ts +5 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +5 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/memory/embeddings-service.d.ts +116 -0
  18. package/dist/memory/embeddings-service.d.ts.map +1 -0
  19. package/dist/memory/embeddings-service.js +287 -0
  20. package/dist/memory/embeddings-service.js.map +1 -0
  21. package/dist/memory/local-vector-store.d.ts +37 -3
  22. package/dist/memory/local-vector-store.d.ts.map +1 -1
  23. package/dist/memory/local-vector-store.js +91 -8
  24. package/dist/memory/local-vector-store.js.map +1 -1
  25. package/dist/orchestrator/core-orchestrator.d.ts +12 -0
  26. package/dist/orchestrator/core-orchestrator.d.ts.map +1 -1
  27. package/dist/orchestrator/core-orchestrator.js +75 -0
  28. package/dist/orchestrator/core-orchestrator.js.map +1 -1
  29. package/dist/orchestrator/task-decomposer.d.ts +56 -0
  30. package/dist/orchestrator/task-decomposer.d.ts.map +1 -0
  31. package/dist/orchestrator/task-decomposer.js +286 -0
  32. package/dist/orchestrator/task-decomposer.js.map +1 -0
  33. package/dist/plugins/plugin-system.d.ts +84 -1
  34. package/dist/plugins/plugin-system.d.ts.map +1 -1
  35. package/dist/plugins/plugin-system.js +91 -0
  36. package/dist/plugins/plugin-system.js.map +1 -1
  37. package/package.json +1 -1
  38. package/src/governance/audit-trail.ts +375 -0
  39. package/src/governance/policy-engine.ts +582 -0
  40. package/src/governance/rbac-engine.ts +244 -0
  41. package/src/index.ts +5 -2
  42. package/src/memory/embeddings-service.ts +322 -0
  43. package/src/memory/local-vector-store.ts +105 -8
  44. package/src/orchestrator/core-orchestrator.ts +78 -0
  45. package/src/orchestrator/task-decomposer.ts +428 -0
  46. package/src/plugins/plugin-system.ts +162 -1
@@ -0,0 +1,94 @@
1
+ export interface AuditEntry {
2
+ id: string;
3
+ timestamp: number;
4
+ action: string;
5
+ actor: {
6
+ type: "user" | "system" | "agent";
7
+ id: string;
8
+ role?: string;
9
+ };
10
+ resource: {
11
+ type: string;
12
+ id: string;
13
+ };
14
+ details: Record<string, unknown>;
15
+ outcome: "success" | "failure" | "blocked";
16
+ reason?: string;
17
+ previousHash: string;
18
+ hash: string;
19
+ metadata?: {
20
+ ip?: string;
21
+ userAgent?: string;
22
+ sessionId?: string;
23
+ correlationId?: string;
24
+ };
25
+ }
26
+ export interface AuditQuery {
27
+ actorId?: string;
28
+ action?: string;
29
+ resourceType?: string;
30
+ resourceId?: string;
31
+ outcome?: AuditEntry["outcome"];
32
+ fromTimestamp?: number;
33
+ toTimestamp?: number;
34
+ limit?: number;
35
+ offset?: number;
36
+ }
37
+ export interface AuditStats {
38
+ totalEntries: number;
39
+ entriesByAction: Record<string, number>;
40
+ entriesByOutcome: Record<string, number>;
41
+ entriesByActor: Record<string, number>;
42
+ oldestEntry?: number;
43
+ newestEntry?: number;
44
+ }
45
+ export declare class AuditTrail {
46
+ private entries;
47
+ private lastHash;
48
+ private persistPath?;
49
+ private bufferSize;
50
+ private flushTimer?;
51
+ private pendingWrites;
52
+ constructor(options?: {
53
+ persistPath?: string;
54
+ bufferSize?: number;
55
+ autoFlushMs?: number;
56
+ });
57
+ initialize(): Promise<void>;
58
+ record(params: {
59
+ action: string;
60
+ actor: AuditEntry["actor"];
61
+ resource: AuditEntry["resource"];
62
+ details?: Record<string, unknown>;
63
+ outcome: AuditEntry["outcome"];
64
+ reason?: string;
65
+ metadata?: AuditEntry["metadata"];
66
+ }): Promise<AuditEntry>;
67
+ recordUserAction(userId: string, action: string, resourceType: string, resourceId: string, details?: Record<string, unknown>, outcome?: AuditEntry["outcome"]): Promise<AuditEntry>;
68
+ recordSystemEvent(action: string, resourceType: string, resourceId: string, details?: Record<string, unknown>, outcome?: AuditEntry["outcome"]): Promise<AuditEntry>;
69
+ recordAgentAction(agentId: string, action: string, resourceType: string, resourceId: string, details?: Record<string, unknown>, outcome?: AuditEntry["outcome"]): Promise<AuditEntry>;
70
+ recordBlockedAction(userId: string, action: string, resourceType: string, resourceId: string, reason: string, details?: Record<string, unknown>): Promise<AuditEntry>;
71
+ query(query: AuditQuery): AuditEntry[];
72
+ getById(id: string): AuditEntry | undefined;
73
+ getRecent(limit?: number): AuditEntry[];
74
+ getByCorrelationId(correlationId: string): AuditEntry[];
75
+ getStats(): AuditStats;
76
+ verifyIntegrity(): {
77
+ valid: boolean;
78
+ errors: string[];
79
+ };
80
+ flush(): Promise<void>;
81
+ private load;
82
+ close(): Promise<void>;
83
+ clear(): void;
84
+ private generateId;
85
+ private computeHash;
86
+ export(): AuditEntry[];
87
+ exportAsJSON(): string;
88
+ exportToFile(filePath: string): Promise<void>;
89
+ getEntriesForResource(resourceType: string, resourceId: string): AuditEntry[];
90
+ getEntriesForActor(actorType: AuditEntry["actor"]["type"], actorId: string): AuditEntry[];
91
+ countByOutcome(outcome: AuditEntry["outcome"]): number;
92
+ countByAction(action: string): number;
93
+ }
94
+ //# sourceMappingURL=audit-trail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-trail.d.ts","sourceRoot":"","sources":["../../src/governance/audit-trail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,246 @@
1
+ import { writeFile, mkdir, readFile, appendFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { createHash } from "node:crypto";
4
+ export class AuditTrail {
5
+ entries = [];
6
+ lastHash = "0".repeat(64);
7
+ persistPath;
8
+ bufferSize;
9
+ flushTimer;
10
+ pendingWrites = [];
11
+ constructor(options) {
12
+ this.persistPath = options?.persistPath;
13
+ this.bufferSize = options?.bufferSize ?? 100;
14
+ if (options?.autoFlushMs) {
15
+ this.flushTimer = setInterval(() => this.flush(), options.autoFlushMs);
16
+ }
17
+ }
18
+ async initialize() {
19
+ if (this.persistPath) {
20
+ await this.load();
21
+ }
22
+ }
23
+ async record(params) {
24
+ const entry = {
25
+ id: this.generateId(),
26
+ timestamp: Date.now(),
27
+ action: params.action,
28
+ actor: params.actor,
29
+ resource: params.resource,
30
+ details: params.details ?? {},
31
+ outcome: params.outcome,
32
+ reason: params.reason,
33
+ previousHash: this.lastHash,
34
+ hash: "",
35
+ metadata: params.metadata
36
+ };
37
+ entry.hash = this.computeHash(entry);
38
+ this.lastHash = entry.hash;
39
+ this.entries.push(entry);
40
+ this.pendingWrites.push(entry);
41
+ if (this.pendingWrites.length >= this.bufferSize && this.persistPath) {
42
+ await this.flush();
43
+ }
44
+ return entry;
45
+ }
46
+ async recordUserAction(userId, action, resourceType, resourceId, details, outcome = "success") {
47
+ return this.record({
48
+ action,
49
+ actor: { type: "user", id: userId },
50
+ resource: { type: resourceType, id: resourceId },
51
+ details,
52
+ outcome
53
+ });
54
+ }
55
+ async recordSystemEvent(action, resourceType, resourceId, details, outcome = "success") {
56
+ return this.record({
57
+ action,
58
+ actor: { type: "system", id: "system" },
59
+ resource: { type: resourceType, id: resourceId },
60
+ details,
61
+ outcome
62
+ });
63
+ }
64
+ async recordAgentAction(agentId, action, resourceType, resourceId, details, outcome = "success") {
65
+ return this.record({
66
+ action,
67
+ actor: { type: "agent", id: agentId },
68
+ resource: { type: resourceType, id: resourceId },
69
+ details,
70
+ outcome
71
+ });
72
+ }
73
+ async recordBlockedAction(userId, action, resourceType, resourceId, reason, details) {
74
+ return this.record({
75
+ action,
76
+ actor: { type: "user", id: userId },
77
+ resource: { type: resourceType, id: resourceId },
78
+ details,
79
+ outcome: "blocked",
80
+ reason
81
+ });
82
+ }
83
+ query(query) {
84
+ let results = [...this.entries];
85
+ if (query.actorId) {
86
+ results = results.filter(e => e.actor.id === query.actorId);
87
+ }
88
+ if (query.action) {
89
+ results = results.filter(e => e.action === query.action);
90
+ }
91
+ if (query.resourceType) {
92
+ results = results.filter(e => e.resource.type === query.resourceType);
93
+ }
94
+ if (query.resourceId) {
95
+ results = results.filter(e => e.resource.id === query.resourceId);
96
+ }
97
+ if (query.outcome) {
98
+ results = results.filter(e => e.outcome === query.outcome);
99
+ }
100
+ if (query.fromTimestamp) {
101
+ results = results.filter(e => e.timestamp >= query.fromTimestamp);
102
+ }
103
+ if (query.toTimestamp) {
104
+ results = results.filter(e => e.timestamp <= query.toTimestamp);
105
+ }
106
+ results.sort((a, b) => b.timestamp - a.timestamp);
107
+ if (query.offset) {
108
+ results = results.slice(query.offset);
109
+ }
110
+ if (query.limit) {
111
+ results = results.slice(0, query.limit);
112
+ }
113
+ return results;
114
+ }
115
+ getById(id) {
116
+ return this.entries.find(e => e.id === id);
117
+ }
118
+ getRecent(limit = 100) {
119
+ return this.entries.slice(-limit);
120
+ }
121
+ getByCorrelationId(correlationId) {
122
+ return this.entries.filter(e => e.metadata?.correlationId === correlationId);
123
+ }
124
+ getStats() {
125
+ const entriesByAction = {};
126
+ const entriesByOutcome = {};
127
+ const entriesByActor = {};
128
+ for (const entry of this.entries) {
129
+ entriesByAction[entry.action] = (entriesByAction[entry.action] ?? 0) + 1;
130
+ entriesByOutcome[entry.outcome] = (entriesByOutcome[entry.outcome] ?? 0) + 1;
131
+ const actorKey = `${entry.actor.type}:${entry.actor.id}`;
132
+ entriesByActor[actorKey] = (entriesByActor[actorKey] ?? 0) + 1;
133
+ }
134
+ return {
135
+ totalEntries: this.entries.length,
136
+ entriesByAction,
137
+ entriesByOutcome,
138
+ entriesByActor,
139
+ oldestEntry: this.entries[0]?.timestamp,
140
+ newestEntry: this.entries[this.entries.length - 1]?.timestamp
141
+ };
142
+ }
143
+ verifyIntegrity() {
144
+ const errors = [];
145
+ let prevHash = "0".repeat(64);
146
+ for (let i = 0; i < this.entries.length; i++) {
147
+ const entry = this.entries[i];
148
+ if (entry.previousHash !== prevHash) {
149
+ errors.push(`Entry ${i}: Previous hash mismatch`);
150
+ }
151
+ const computedHash = this.computeHash({ ...entry, hash: "" });
152
+ if (computedHash !== entry.hash) {
153
+ errors.push(`Entry ${i}: Hash verification failed`);
154
+ }
155
+ prevHash = entry.hash;
156
+ }
157
+ return { valid: errors.length === 0, errors };
158
+ }
159
+ async flush() {
160
+ if (!this.persistPath || this.pendingWrites.length === 0)
161
+ return;
162
+ await mkdir(path.dirname(this.persistPath), { recursive: true });
163
+ const lines = this.pendingWrites.map(e => JSON.stringify(e)).join("\n") + "\n";
164
+ await appendFile(this.persistPath, lines, "utf8");
165
+ this.pendingWrites = [];
166
+ }
167
+ async load() {
168
+ if (!this.persistPath)
169
+ return;
170
+ try {
171
+ const content = await readFile(this.persistPath, "utf8");
172
+ const lines = content.trim().split("\n");
173
+ this.entries = [];
174
+ for (const line of lines) {
175
+ if (line.trim()) {
176
+ try {
177
+ const entry = JSON.parse(line);
178
+ this.entries.push(entry);
179
+ }
180
+ catch {
181
+ // Skip malformed lines
182
+ }
183
+ }
184
+ }
185
+ if (this.entries.length > 0) {
186
+ this.lastHash = this.entries[this.entries.length - 1].hash;
187
+ }
188
+ }
189
+ catch {
190
+ // File doesn't exist yet, that's fine
191
+ this.entries = [];
192
+ this.lastHash = "0".repeat(64);
193
+ }
194
+ }
195
+ async close() {
196
+ if (this.flushTimer) {
197
+ clearInterval(this.flushTimer);
198
+ }
199
+ await this.flush();
200
+ }
201
+ clear() {
202
+ this.entries = [];
203
+ this.pendingWrites = [];
204
+ this.lastHash = "0".repeat(64);
205
+ }
206
+ generateId() {
207
+ const timestamp = Date.now().toString(36);
208
+ const random = Math.random().toString(36).substring(2, 10);
209
+ return `audit_${timestamp}_${random}`;
210
+ }
211
+ computeHash(entry) {
212
+ const data = JSON.stringify({
213
+ id: entry.id,
214
+ timestamp: entry.timestamp,
215
+ action: entry.action,
216
+ actor: entry.actor,
217
+ resource: entry.resource,
218
+ outcome: entry.outcome,
219
+ previousHash: entry.previousHash
220
+ });
221
+ return createHash("sha256").update(data).digest("hex");
222
+ }
223
+ export() {
224
+ return [...this.entries];
225
+ }
226
+ exportAsJSON() {
227
+ return JSON.stringify(this.entries, null, 2);
228
+ }
229
+ async exportToFile(filePath) {
230
+ await mkdir(path.dirname(filePath), { recursive: true });
231
+ await writeFile(filePath, this.exportAsJSON(), "utf8");
232
+ }
233
+ getEntriesForResource(resourceType, resourceId) {
234
+ return this.entries.filter(e => e.resource.type === resourceType && e.resource.id === resourceId);
235
+ }
236
+ getEntriesForActor(actorType, actorId) {
237
+ return this.entries.filter(e => e.actor.type === actorType && e.actor.id === actorId);
238
+ }
239
+ countByOutcome(outcome) {
240
+ return this.entries.filter(e => e.outcome === outcome).length;
241
+ }
242
+ countByAction(action) {
243
+ return this.entries.filter(e => e.action === action).length;
244
+ }
245
+ }
246
+ //# sourceMappingURL=audit-trail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-trail.js","sourceRoot":"","sources":["../../src/governance/audit-trail.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { Policy } from "../plugins/governance-plugin.js";
2
+ import { PolicyDecision, AgentInput, AgentOutput } from "../types/contracts.js";
3
+ export interface GovernanceRule {
4
+ id: string;
5
+ name: string;
6
+ description: string;
7
+ enabled: boolean;
8
+ severity: "low" | "medium" | "high" | "critical";
9
+ scope: "input" | "output" | "both";
10
+ evaluate: (context: GovernanceContext) => Promise<PolicyDecision>;
11
+ }
12
+ export interface GovernanceContext {
13
+ taskId: string;
14
+ nodeId?: string;
15
+ agent?: string;
16
+ input?: AgentInput;
17
+ output?: AgentOutput;
18
+ metadata?: Record<string, unknown>;
19
+ costUsd?: number;
20
+ tokensUsed?: number;
21
+ latencyMs?: number;
22
+ }
23
+ export interface GovernanceConfig {
24
+ maxCostPerRun: number;
25
+ maxTokensPerRun: number;
26
+ maxLatencyMs: number;
27
+ allowedIntents?: string[];
28
+ blockedPatterns?: string[];
29
+ requireApprovalFor?: string[];
30
+ rateLimitPerMinute?: number;
31
+ }
32
+ export interface GovernanceStats {
33
+ totalEvaluations: number;
34
+ violationsByType: Record<string, number>;
35
+ violationsBySeverity: Record<string, number>;
36
+ blockedCount: number;
37
+ allowedCount: number;
38
+ }
39
+ export declare class GovernanceEngine {
40
+ private rules;
41
+ private config;
42
+ private stats;
43
+ private rateLimitTracker;
44
+ constructor(config?: Partial<GovernanceConfig>);
45
+ private initializeDefaultRules;
46
+ addRule(rule: GovernanceRule): void;
47
+ removeRule(ruleId: string): boolean;
48
+ enableRule(ruleId: string): boolean;
49
+ disableRule(ruleId: string): boolean;
50
+ evaluateInput(context: GovernanceContext): Promise<PolicyDecision>;
51
+ evaluateOutput(context: GovernanceContext): Promise<PolicyDecision>;
52
+ evaluate(context: GovernanceContext, phase: "input" | "output"): Promise<PolicyDecision>;
53
+ private evaluateCostLimit;
54
+ private evaluateTokenLimit;
55
+ private evaluateLatencyLimit;
56
+ private evaluateBlockedContent;
57
+ private evaluateIntentWhitelist;
58
+ private evaluateApprovalRequired;
59
+ private evaluateRateLimit;
60
+ private updateStats;
61
+ getStats(): GovernanceStats;
62
+ getConfig(): GovernanceConfig;
63
+ updateConfig(updates: Partial<GovernanceConfig>): void;
64
+ getRules(): GovernanceRule[];
65
+ getRule(id: string): GovernanceRule | undefined;
66
+ resetStats(): void;
67
+ }
68
+ export interface CostPolicyConfig {
69
+ maxPerRequest: number;
70
+ maxPerSession: number;
71
+ maxPerDay: number;
72
+ alertThreshold: number;
73
+ }
74
+ export declare class CostPolicy implements Policy {
75
+ private config;
76
+ name: string;
77
+ private sessionCosts;
78
+ private dailyCosts;
79
+ constructor(config: CostPolicyConfig);
80
+ validateInput(input: AgentInput): Promise<PolicyDecision>;
81
+ validateOutput(output: AgentOutput): Promise<PolicyDecision>;
82
+ recordCost(sessionId: string, cost: number): void;
83
+ getSessionCost(sessionId: string): number;
84
+ getDailyCost(): number;
85
+ }
86
+ export interface TokenPolicyConfig {
87
+ maxPerRequest: number;
88
+ maxPerSession: number;
89
+ reserveForResponse: number;
90
+ }
91
+ export declare class TokenPolicy implements Policy {
92
+ private config;
93
+ name: string;
94
+ private sessionTokens;
95
+ constructor(config: TokenPolicyConfig);
96
+ validateInput(input: AgentInput): Promise<PolicyDecision>;
97
+ validateOutput(output: AgentOutput): Promise<PolicyDecision>;
98
+ recordTokens(sessionId: string, tokens: number): void;
99
+ private estimateTokens;
100
+ }
101
+ //# sourceMappingURL=policy-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../../src/governance/policy-engine.ts"],"names":[],"mappings":"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"}