@sparkleideas/neural 3.0.0-alpha.21 → 3.0.0-alpha.30

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 (110) hide show
  1. package/dist/algorithms/a2c.d.ts +86 -0
  2. package/dist/algorithms/a2c.d.ts.map +1 -0
  3. package/dist/algorithms/a2c.js +361 -0
  4. package/dist/algorithms/a2c.js.map +1 -0
  5. package/dist/algorithms/curiosity.d.ts +82 -0
  6. package/dist/algorithms/curiosity.d.ts.map +1 -0
  7. package/dist/algorithms/curiosity.js +392 -0
  8. package/dist/algorithms/curiosity.js.map +1 -0
  9. package/dist/algorithms/decision-transformer.d.ts +82 -0
  10. package/dist/algorithms/decision-transformer.d.ts.map +1 -0
  11. package/dist/algorithms/decision-transformer.js +415 -0
  12. package/dist/algorithms/decision-transformer.js.map +1 -0
  13. package/dist/algorithms/dqn.d.ts +72 -0
  14. package/dist/algorithms/dqn.d.ts.map +1 -0
  15. package/dist/algorithms/dqn.js +303 -0
  16. package/dist/algorithms/dqn.js.map +1 -0
  17. package/dist/algorithms/index.d.ts +32 -0
  18. package/dist/algorithms/index.d.ts.map +1 -0
  19. package/dist/algorithms/index.js +74 -0
  20. package/dist/algorithms/index.js.map +1 -0
  21. package/dist/algorithms/ppo.d.ts +72 -0
  22. package/dist/algorithms/ppo.d.ts.map +1 -0
  23. package/dist/algorithms/ppo.js +331 -0
  24. package/dist/algorithms/ppo.js.map +1 -0
  25. package/dist/algorithms/q-learning.d.ts +77 -0
  26. package/dist/algorithms/q-learning.d.ts.map +1 -0
  27. package/dist/algorithms/q-learning.js +259 -0
  28. package/dist/algorithms/q-learning.js.map +1 -0
  29. package/dist/algorithms/sarsa.d.ts +82 -0
  30. package/dist/algorithms/sarsa.d.ts.map +1 -0
  31. package/dist/algorithms/sarsa.js +297 -0
  32. package/dist/algorithms/sarsa.js.map +1 -0
  33. package/dist/application/index.d.ts +7 -0
  34. package/dist/application/index.d.ts.map +1 -0
  35. package/dist/application/index.js +7 -0
  36. package/dist/application/index.js.map +1 -0
  37. package/dist/application/services/neural-application-service.d.ts +92 -0
  38. package/dist/application/services/neural-application-service.d.ts.map +1 -0
  39. package/dist/application/services/neural-application-service.js +161 -0
  40. package/dist/application/services/neural-application-service.js.map +1 -0
  41. package/dist/domain/entities/pattern.d.ts +89 -0
  42. package/dist/domain/entities/pattern.d.ts.map +1 -0
  43. package/dist/domain/entities/pattern.js +134 -0
  44. package/dist/domain/entities/pattern.js.map +1 -0
  45. package/dist/domain/index.d.ts +8 -0
  46. package/dist/domain/index.d.ts.map +1 -0
  47. package/dist/domain/index.js +8 -0
  48. package/dist/domain/index.js.map +1 -0
  49. package/dist/domain/services/learning-service.d.ts +90 -0
  50. package/dist/domain/services/learning-service.d.ts.map +1 -0
  51. package/dist/domain/services/learning-service.js +195 -0
  52. package/dist/domain/services/learning-service.js.map +1 -0
  53. package/dist/index.d.ts +118 -0
  54. package/dist/index.d.ts.map +1 -0
  55. package/dist/index.js +201 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/modes/balanced.d.ts +60 -0
  58. package/dist/modes/balanced.d.ts.map +1 -0
  59. package/dist/modes/balanced.js +234 -0
  60. package/dist/modes/balanced.js.map +1 -0
  61. package/dist/modes/base.d.ts +50 -0
  62. package/dist/modes/base.d.ts.map +1 -0
  63. package/dist/modes/base.js +77 -0
  64. package/dist/modes/base.js.map +1 -0
  65. package/dist/modes/batch.d.ts +82 -0
  66. package/dist/modes/batch.d.ts.map +1 -0
  67. package/dist/modes/batch.js +316 -0
  68. package/dist/modes/batch.js.map +1 -0
  69. package/dist/modes/edge.d.ts +85 -0
  70. package/dist/modes/edge.d.ts.map +1 -0
  71. package/dist/modes/edge.js +310 -0
  72. package/dist/modes/edge.js.map +1 -0
  73. package/dist/modes/index.d.ts +13 -0
  74. package/dist/modes/index.d.ts.map +1 -0
  75. package/dist/modes/index.js +13 -0
  76. package/dist/modes/index.js.map +1 -0
  77. package/dist/modes/real-time.d.ts +58 -0
  78. package/dist/modes/real-time.d.ts.map +1 -0
  79. package/dist/modes/real-time.js +196 -0
  80. package/dist/modes/real-time.js.map +1 -0
  81. package/dist/modes/research.d.ts +79 -0
  82. package/dist/modes/research.d.ts.map +1 -0
  83. package/dist/modes/research.js +389 -0
  84. package/dist/modes/research.js.map +1 -0
  85. package/dist/pattern-learner.d.ts +117 -0
  86. package/dist/pattern-learner.d.ts.map +1 -0
  87. package/dist/pattern-learner.js +603 -0
  88. package/dist/pattern-learner.js.map +1 -0
  89. package/dist/reasoning-bank.d.ts +259 -0
  90. package/dist/reasoning-bank.d.ts.map +1 -0
  91. package/dist/reasoning-bank.js +993 -0
  92. package/dist/reasoning-bank.js.map +1 -0
  93. package/dist/reasoningbank-adapter.d.ts +168 -0
  94. package/dist/reasoningbank-adapter.d.ts.map +1 -0
  95. package/dist/reasoningbank-adapter.js +463 -0
  96. package/dist/reasoningbank-adapter.js.map +1 -0
  97. package/dist/sona-integration.d.ts +168 -0
  98. package/dist/sona-integration.d.ts.map +1 -0
  99. package/dist/sona-integration.js +316 -0
  100. package/dist/sona-integration.js.map +1 -0
  101. package/dist/sona-manager.d.ts +147 -0
  102. package/dist/sona-manager.d.ts.map +1 -0
  103. package/dist/sona-manager.js +695 -0
  104. package/dist/sona-manager.js.map +1 -0
  105. package/dist/types.d.ts +431 -0
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/types.js +11 -0
  108. package/dist/types.js.map +1 -0
  109. package/package.json +1 -1
  110. package/tsconfig.build.tsbuildinfo +1 -0
@@ -0,0 +1,161 @@
1
+ /**
2
+ * Neural Application Service - Application Layer
3
+ *
4
+ * Orchestrates neural learning operations.
5
+ *
6
+ * @module v3/neural/application/services
7
+ */
8
+ import { Pattern } from '../../domain/entities/pattern.js';
9
+ import { LearningDomainService } from '../../domain/services/learning-service.js';
10
+ /**
11
+ * Neural Application Service
12
+ */
13
+ export class NeuralApplicationService {
14
+ learningService;
15
+ constructor() {
16
+ this.learningService = new LearningDomainService();
17
+ }
18
+ // ============================================================================
19
+ // Learning Operations
20
+ // ============================================================================
21
+ /**
22
+ * Learn from a single trajectory
23
+ */
24
+ learn(trajectory) {
25
+ return this.learningService.updatePatterns(trajectory);
26
+ }
27
+ /**
28
+ * Train on batch of trajectories
29
+ */
30
+ train(trajectories) {
31
+ const start = Date.now();
32
+ let totalPatternsExtracted = 0;
33
+ let totalPatternsUpdated = 0;
34
+ let totalConfidenceChange = 0;
35
+ for (const trajectory of trajectories) {
36
+ const result = this.learningService.updatePatterns(trajectory);
37
+ totalPatternsExtracted += result.patternsExtracted;
38
+ totalPatternsUpdated += result.patternsUpdated;
39
+ totalConfidenceChange += result.confidenceChange;
40
+ }
41
+ return {
42
+ trajectoriesProcessed: trajectories.length,
43
+ patternsExtracted: totalPatternsExtracted,
44
+ patternsUpdated: totalPatternsUpdated,
45
+ averageConfidenceChange: trajectories.length > 0 ? totalConfidenceChange / trajectories.length : 0,
46
+ duration: Date.now() - start,
47
+ };
48
+ }
49
+ // ============================================================================
50
+ // Routing
51
+ // ============================================================================
52
+ /**
53
+ * Get route recommendation for task
54
+ */
55
+ route(taskDescription) {
56
+ return this.learningService.getRouteRecommendation(taskDescription);
57
+ }
58
+ /**
59
+ * Explain routing decision
60
+ */
61
+ explain(taskDescription) {
62
+ const recommendation = this.route(taskDescription);
63
+ const matchingPatterns = this.learningService
64
+ .getPatternsByType('task-routing')
65
+ .filter((p) => p.matches(taskDescription));
66
+ const reasoning = [];
67
+ if (matchingPatterns.length > 0) {
68
+ reasoning.push(`Found ${matchingPatterns.length} matching patterns`);
69
+ for (const p of matchingPatterns.slice(0, 3)) {
70
+ reasoning.push(`- Pattern "${p.name}": ${p.successRate.toFixed(2)} success rate, ${p.confidence.toFixed(2)} confidence`);
71
+ }
72
+ }
73
+ else {
74
+ reasoning.push('No matching patterns found, using keyword-based routing');
75
+ }
76
+ reasoning.push(`Recommended: ${recommendation.agentRole} (${(recommendation.confidence * 100).toFixed(0)}% confidence)`);
77
+ return {
78
+ recommendation,
79
+ matchingPatterns,
80
+ reasoning,
81
+ };
82
+ }
83
+ // ============================================================================
84
+ // Pattern Management
85
+ // ============================================================================
86
+ /**
87
+ * Get all patterns
88
+ */
89
+ getPatterns() {
90
+ return this.learningService.getPatterns();
91
+ }
92
+ /**
93
+ * Get patterns by type
94
+ */
95
+ getPatternsByType(type) {
96
+ return this.learningService.getPatternsByType(type);
97
+ }
98
+ /**
99
+ * Add custom pattern
100
+ */
101
+ addPattern(props) {
102
+ const pattern = Pattern.create({
103
+ type: props.type,
104
+ name: props.name,
105
+ description: props.description,
106
+ condition: props.condition,
107
+ action: props.action,
108
+ confidence: props.confidence ?? 0.5,
109
+ });
110
+ this.learningService.addPattern(pattern);
111
+ return pattern;
112
+ }
113
+ /**
114
+ * Remove pattern
115
+ */
116
+ removePattern(id) {
117
+ return this.learningService.removePattern(id);
118
+ }
119
+ /**
120
+ * Consolidate patterns
121
+ */
122
+ consolidate(minConfidence) {
123
+ return this.learningService.consolidate(minConfidence);
124
+ }
125
+ // ============================================================================
126
+ // Metrics
127
+ // ============================================================================
128
+ /**
129
+ * Get neural metrics
130
+ */
131
+ getMetrics() {
132
+ const patterns = this.learningService.getPatterns();
133
+ const patternsByType = {
134
+ 'task-routing': 0,
135
+ 'error-recovery': 0,
136
+ optimization: 0,
137
+ learning: 0,
138
+ };
139
+ let totalConfidence = 0;
140
+ let reliablePatterns = 0;
141
+ let totalSuccesses = 0;
142
+ let totalFailures = 0;
143
+ for (const pattern of patterns) {
144
+ patternsByType[pattern.type]++;
145
+ totalConfidence += pattern.confidence;
146
+ if (pattern.isReliable())
147
+ reliablePatterns++;
148
+ totalSuccesses += pattern.successCount;
149
+ totalFailures += pattern.failureCount;
150
+ }
151
+ return {
152
+ totalPatterns: patterns.length,
153
+ patternsByType,
154
+ averageConfidence: patterns.length > 0 ? totalConfidence / patterns.length : 0,
155
+ reliablePatterns,
156
+ totalSuccesses,
157
+ totalFailures,
158
+ };
159
+ }
160
+ }
161
+ //# sourceMappingURL=neural-application-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"neural-application-service.js","sourceRoot":"","sources":["../../../src/application/services/neural-application-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAe,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAmD,MAAM,2CAA2C,CAAC;AAyBnI;;GAEG;AACH,MAAM,OAAO,wBAAwB;IAClB,eAAe,CAAwB;IAExD;QACE,IAAI,CAAC,eAAe,GAAG,IAAI,qBAAqB,EAAE,CAAC;IACrD,CAAC;IAED,+EAA+E;IAC/E,sBAAsB;IACtB,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,UAAsB;QAC1B,OAAO,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAA0B;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,IAAI,sBAAsB,GAAG,CAAC,CAAC;QAC/B,IAAI,oBAAoB,GAAG,CAAC,CAAC;QAC7B,IAAI,qBAAqB,GAAG,CAAC,CAAC;QAE9B,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC/D,sBAAsB,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACnD,oBAAoB,IAAI,MAAM,CAAC,eAAe,CAAC;YAC/C,qBAAqB,IAAI,MAAM,CAAC,gBAAgB,CAAC;QACnD,CAAC;QAED,OAAO;YACL,qBAAqB,EAAE,YAAY,CAAC,MAAM;YAC1C,iBAAiB,EAAE,sBAAsB;YACzC,eAAe,EAAE,oBAAoB;YACrC,uBAAuB,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClG,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;SAC7B,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,UAAU;IACV,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,eAAuB;QAC3B,OAAO,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,eAAuB;QAK7B,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe;aAC1C,iBAAiB,CAAC,cAAc,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;QAE7C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,SAAS,CAAC,IAAI,CAAC,SAAS,gBAAgB,CAAC,MAAM,oBAAoB,CAAC,CAAC;YACrE,KAAK,MAAM,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;gBAC7C,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;YAC3H,CAAC;QACH,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAC5E,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,gBAAgB,cAAc,CAAC,SAAS,KAAK,CAAC,cAAc,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAEzH,OAAO;YACL,cAAc;YACd,gBAAgB;YAChB,SAAS;SACV,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,qBAAqB;IACrB,+EAA+E;IAE/E;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,IAAiB;QACjC,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAOV;QACC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,GAAG;SACpC,CAAC,CAAC;QACH,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,aAAsB;QAChC,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC;IAED,+EAA+E;IAC/E,UAAU;IACV,+EAA+E;IAE/E;;OAEG;IACH,UAAU;QACR,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;QAEpD,MAAM,cAAc,GAAgC;YAClD,cAAc,EAAE,CAAC;YACjB,gBAAgB,EAAE,CAAC;YACnB,YAAY,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;SACZ,CAAC;QAEF,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,eAAe,IAAI,OAAO,CAAC,UAAU,CAAC;YACtC,IAAI,OAAO,CAAC,UAAU,EAAE;gBAAE,gBAAgB,EAAE,CAAC;YAC7C,cAAc,IAAI,OAAO,CAAC,YAAY,CAAC;YACvC,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC;QACxC,CAAC;QAED,OAAO;YACL,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,cAAc;YACd,iBAAiB,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC9E,gBAAgB;YAChB,cAAc;YACd,aAAa;SACd,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Pattern Entity - Domain Layer
3
+ *
4
+ * Represents a learned pattern for intelligent routing and optimization.
5
+ *
6
+ * @module v3/neural/domain/entities
7
+ */
8
+ /**
9
+ * Pattern type
10
+ */
11
+ export type PatternType = 'task-routing' | 'error-recovery' | 'optimization' | 'learning';
12
+ /**
13
+ * Pattern properties
14
+ */
15
+ export interface PatternProps {
16
+ id?: string;
17
+ type: PatternType;
18
+ name: string;
19
+ description: string;
20
+ condition: string;
21
+ action: string;
22
+ confidence: number;
23
+ successCount?: number;
24
+ failureCount?: number;
25
+ metadata?: Record<string, unknown>;
26
+ createdAt?: Date;
27
+ updatedAt?: Date;
28
+ lastMatchedAt?: Date;
29
+ }
30
+ /**
31
+ * Pattern Entity
32
+ */
33
+ export declare class Pattern {
34
+ private _id;
35
+ private _type;
36
+ private _name;
37
+ private _description;
38
+ private _condition;
39
+ private _action;
40
+ private _confidence;
41
+ private _successCount;
42
+ private _failureCount;
43
+ private _metadata;
44
+ private _createdAt;
45
+ private _updatedAt;
46
+ private _lastMatchedAt?;
47
+ private constructor();
48
+ static create(props: PatternProps): Pattern;
49
+ static fromPersistence(props: PatternProps): Pattern;
50
+ get id(): string;
51
+ get type(): PatternType;
52
+ get name(): string;
53
+ get description(): string;
54
+ get condition(): string;
55
+ get action(): string;
56
+ get confidence(): number;
57
+ get successCount(): number;
58
+ get failureCount(): number;
59
+ get metadata(): Record<string, unknown>;
60
+ get createdAt(): Date;
61
+ get updatedAt(): Date;
62
+ get lastMatchedAt(): Date | undefined;
63
+ /**
64
+ * Calculate success rate
65
+ */
66
+ get successRate(): number;
67
+ /**
68
+ * Record successful match
69
+ */
70
+ recordSuccess(): void;
71
+ /**
72
+ * Record failed match
73
+ */
74
+ recordFailure(): void;
75
+ /**
76
+ * Calculate confidence based on success rate
77
+ */
78
+ private calculateConfidence;
79
+ /**
80
+ * Check if pattern matches input
81
+ */
82
+ matches(input: string): boolean;
83
+ /**
84
+ * Check if pattern is reliable (high confidence, sufficient data)
85
+ */
86
+ isReliable(): boolean;
87
+ toPersistence(): Record<string, unknown>;
88
+ }
89
+ //# sourceMappingURL=pattern.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.d.ts","sourceRoot":"","sources":["../../../src/domain/entities/pattern.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,UAAU,CAAC;AAE1F;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,OAAO;IAClB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,UAAU,CAAO;IACzB,OAAO,CAAC,cAAc,CAAC,CAAO;IAE9B,OAAO;IAiBP,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAI3C,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAIpD,IAAI,EAAE,IAAI,MAAM,CAAqB;IACrC,IAAI,IAAI,IAAI,WAAW,CAAuB;IAC9C,IAAI,IAAI,IAAI,MAAM,CAAuB;IACzC,IAAI,WAAW,IAAI,MAAM,CAA8B;IACvD,IAAI,SAAS,IAAI,MAAM,CAA4B;IACnD,IAAI,MAAM,IAAI,MAAM,CAAyB;IAC7C,IAAI,UAAU,IAAI,MAAM,CAA6B;IACrD,IAAI,YAAY,IAAI,MAAM,CAA+B;IACzD,IAAI,YAAY,IAAI,MAAM,CAA+B;IACzD,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAkC;IACzE,IAAI,SAAS,IAAI,IAAI,CAAsC;IAC3D,IAAI,SAAS,IAAI,IAAI,CAAsC;IAC3D,IAAI,aAAa,IAAI,IAAI,GAAG,SAAS,CAA4E;IAEjH;;OAEG;IACH,IAAI,WAAW,IAAI,MAAM,CAGxB;IAED;;OAEG;IACH,aAAa,IAAI,IAAI;IAOrB;;OAEG;IACH,aAAa,IAAI,IAAI;IAOrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAS3B;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAS/B;;OAEG;IACH,UAAU,IAAI,OAAO;IAKrB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAiBzC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Pattern Entity - Domain Layer
3
+ *
4
+ * Represents a learned pattern for intelligent routing and optimization.
5
+ *
6
+ * @module v3/neural/domain/entities
7
+ */
8
+ import { randomUUID } from 'crypto';
9
+ /**
10
+ * Pattern Entity
11
+ */
12
+ export class Pattern {
13
+ _id;
14
+ _type;
15
+ _name;
16
+ _description;
17
+ _condition;
18
+ _action;
19
+ _confidence;
20
+ _successCount;
21
+ _failureCount;
22
+ _metadata;
23
+ _createdAt;
24
+ _updatedAt;
25
+ _lastMatchedAt;
26
+ constructor(props) {
27
+ const now = new Date();
28
+ this._id = props.id ?? randomUUID();
29
+ this._type = props.type;
30
+ this._name = props.name;
31
+ this._description = props.description;
32
+ this._condition = props.condition;
33
+ this._action = props.action;
34
+ this._confidence = props.confidence;
35
+ this._successCount = props.successCount ?? 0;
36
+ this._failureCount = props.failureCount ?? 0;
37
+ this._metadata = props.metadata ?? {};
38
+ this._createdAt = props.createdAt ?? now;
39
+ this._updatedAt = props.updatedAt ?? now;
40
+ this._lastMatchedAt = props.lastMatchedAt;
41
+ }
42
+ static create(props) {
43
+ return new Pattern(props);
44
+ }
45
+ static fromPersistence(props) {
46
+ return new Pattern(props);
47
+ }
48
+ get id() { return this._id; }
49
+ get type() { return this._type; }
50
+ get name() { return this._name; }
51
+ get description() { return this._description; }
52
+ get condition() { return this._condition; }
53
+ get action() { return this._action; }
54
+ get confidence() { return this._confidence; }
55
+ get successCount() { return this._successCount; }
56
+ get failureCount() { return this._failureCount; }
57
+ get metadata() { return { ...this._metadata }; }
58
+ get createdAt() { return new Date(this._createdAt); }
59
+ get updatedAt() { return new Date(this._updatedAt); }
60
+ get lastMatchedAt() { return this._lastMatchedAt ? new Date(this._lastMatchedAt) : undefined; }
61
+ /**
62
+ * Calculate success rate
63
+ */
64
+ get successRate() {
65
+ const total = this._successCount + this._failureCount;
66
+ return total > 0 ? this._successCount / total : 0;
67
+ }
68
+ /**
69
+ * Record successful match
70
+ */
71
+ recordSuccess() {
72
+ this._successCount++;
73
+ this._confidence = this.calculateConfidence();
74
+ this._lastMatchedAt = new Date();
75
+ this._updatedAt = new Date();
76
+ }
77
+ /**
78
+ * Record failed match
79
+ */
80
+ recordFailure() {
81
+ this._failureCount++;
82
+ this._confidence = this.calculateConfidence();
83
+ this._lastMatchedAt = new Date();
84
+ this._updatedAt = new Date();
85
+ }
86
+ /**
87
+ * Calculate confidence based on success rate
88
+ */
89
+ calculateConfidence() {
90
+ const total = this._successCount + this._failureCount;
91
+ if (total < 5)
92
+ return this._confidence; // Not enough data
93
+ const newConfidence = this.successRate;
94
+ // Weighted average with existing confidence
95
+ return this._confidence * 0.3 + newConfidence * 0.7;
96
+ }
97
+ /**
98
+ * Check if pattern matches input
99
+ */
100
+ matches(input) {
101
+ try {
102
+ const regex = new RegExp(this._condition, 'i');
103
+ return regex.test(input);
104
+ }
105
+ catch {
106
+ return input.toLowerCase().includes(this._condition.toLowerCase());
107
+ }
108
+ }
109
+ /**
110
+ * Check if pattern is reliable (high confidence, sufficient data)
111
+ */
112
+ isReliable() {
113
+ const total = this._successCount + this._failureCount;
114
+ return total >= 10 && this._confidence >= 0.7;
115
+ }
116
+ toPersistence() {
117
+ return {
118
+ id: this._id,
119
+ type: this._type,
120
+ name: this._name,
121
+ description: this._description,
122
+ condition: this._condition,
123
+ action: this._action,
124
+ confidence: this._confidence,
125
+ successCount: this._successCount,
126
+ failureCount: this._failureCount,
127
+ metadata: this._metadata,
128
+ createdAt: this._createdAt.toISOString(),
129
+ updatedAt: this._updatedAt.toISOString(),
130
+ lastMatchedAt: this._lastMatchedAt?.toISOString(),
131
+ };
132
+ }
133
+ }
134
+ //# sourceMappingURL=pattern.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern.js","sourceRoot":"","sources":["../../../src/domain/entities/pattern.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Neural Domain Layer - Public Exports
3
+ *
4
+ * @module v3/neural/domain
5
+ */
6
+ export { Pattern, type PatternType, type PatternProps, } from './entities/pattern.js';
7
+ export { LearningDomainService, type Trajectory, type LearningResult, type RouteRecommendation, } from './services/learning-service.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,OAAO,EACP,KAAK,WAAW,EAChB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,mBAAmB,GACzB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Neural Domain Layer - Public Exports
3
+ *
4
+ * @module v3/neural/domain
5
+ */
6
+ export { Pattern, } from './entities/pattern.js';
7
+ export { LearningDomainService, } from './services/learning-service.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/domain/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,OAAO,GAGR,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,GAItB,MAAM,gCAAgC,CAAC"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Learning Domain Service - Domain Layer
3
+ *
4
+ * Contains learning logic for pattern recognition and optimization.
5
+ *
6
+ * @module v3/neural/domain/services
7
+ */
8
+ import { Pattern, PatternType } from '../entities/pattern.js';
9
+ /**
10
+ * Learning trajectory
11
+ */
12
+ export interface Trajectory {
13
+ id: string;
14
+ input: string;
15
+ actions: string[];
16
+ outcome: 'success' | 'failure' | 'partial';
17
+ reward: number;
18
+ metadata?: Record<string, unknown>;
19
+ timestamp: Date;
20
+ }
21
+ /**
22
+ * Learning result
23
+ */
24
+ export interface LearningResult {
25
+ patternsExtracted: number;
26
+ patternsUpdated: number;
27
+ confidenceChange: number;
28
+ }
29
+ /**
30
+ * Route recommendation
31
+ */
32
+ export interface RouteRecommendation {
33
+ agentRole: string;
34
+ confidence: number;
35
+ reasoning: string;
36
+ alternates: Array<{
37
+ role: string;
38
+ confidence: number;
39
+ }>;
40
+ }
41
+ /**
42
+ * Learning Domain Service
43
+ */
44
+ export declare class LearningDomainService {
45
+ private patterns;
46
+ /**
47
+ * Extract patterns from trajectory
48
+ */
49
+ extractPatterns(trajectory: Trajectory): Pattern[];
50
+ /**
51
+ * Update patterns based on trajectory outcome
52
+ */
53
+ updatePatterns(trajectory: Trajectory): LearningResult;
54
+ /**
55
+ * Get route recommendation for task
56
+ */
57
+ getRouteRecommendation(taskDescription: string): RouteRecommendation;
58
+ /**
59
+ * Get default recommendation based on keywords
60
+ */
61
+ private getDefaultRecommendation;
62
+ /**
63
+ * Extract condition from input
64
+ */
65
+ private extractCondition;
66
+ /**
67
+ * Consolidate patterns (merge duplicates, prune low-confidence)
68
+ */
69
+ consolidate(minConfidence?: number): {
70
+ merged: number;
71
+ pruned: number;
72
+ };
73
+ /**
74
+ * Get all patterns
75
+ */
76
+ getPatterns(): Pattern[];
77
+ /**
78
+ * Get patterns by type
79
+ */
80
+ getPatternsByType(type: PatternType): Pattern[];
81
+ /**
82
+ * Add pattern
83
+ */
84
+ addPattern(pattern: Pattern): void;
85
+ /**
86
+ * Remove pattern
87
+ */
88
+ removePattern(id: string): boolean;
89
+ }
90
+ //# sourceMappingURL=learning-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-service.d.ts","sourceRoot":"","sources":["../../../src/domain/services/learning-service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAmC;IAEnD;;OAEG;IACH,eAAe,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,EAAE;IAmClD;;OAEG;IACH,cAAc,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc;IAgCtD;;OAEG;IACH,sBAAsB,CAAC,eAAe,EAAE,MAAM,GAAG,mBAAmB;IAiCpE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAkChC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB;;OAEG;IACH,WAAW,CAAC,aAAa,GAAE,MAAY,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAqB5E;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAIxB;;OAEG;IACH,iBAAiB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,EAAE;IAI/C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIlC;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;CAGnC"}