@nahisaho/musubix-neural-search 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 (66) hide show
  1. package/README.md +55 -0
  2. package/dist/errors.d.ts +48 -0
  3. package/dist/errors.d.ts.map +1 -0
  4. package/dist/errors.js +70 -0
  5. package/dist/errors.js.map +1 -0
  6. package/dist/index.d.ts +14 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +16 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/learning/ModelUpdater.d.ts +49 -0
  11. package/dist/learning/ModelUpdater.d.ts.map +1 -0
  12. package/dist/learning/ModelUpdater.js +98 -0
  13. package/dist/learning/ModelUpdater.js.map +1 -0
  14. package/dist/learning/OnlineLearner.d.ts +59 -0
  15. package/dist/learning/OnlineLearner.d.ts.map +1 -0
  16. package/dist/learning/OnlineLearner.js +155 -0
  17. package/dist/learning/OnlineLearner.js.map +1 -0
  18. package/dist/learning/TrajectoryLog.d.ts +52 -0
  19. package/dist/learning/TrajectoryLog.d.ts.map +1 -0
  20. package/dist/learning/TrajectoryLog.js +96 -0
  21. package/dist/learning/TrajectoryLog.js.map +1 -0
  22. package/dist/learning/index.d.ts +10 -0
  23. package/dist/learning/index.d.ts.map +1 -0
  24. package/dist/learning/index.js +8 -0
  25. package/dist/learning/index.js.map +1 -0
  26. package/dist/scorer/BranchScorer.d.ts +70 -0
  27. package/dist/scorer/BranchScorer.d.ts.map +1 -0
  28. package/dist/scorer/BranchScorer.js +161 -0
  29. package/dist/scorer/BranchScorer.js.map +1 -0
  30. package/dist/scorer/ContextEncoder.d.ts +59 -0
  31. package/dist/scorer/ContextEncoder.d.ts.map +1 -0
  32. package/dist/scorer/ContextEncoder.js +149 -0
  33. package/dist/scorer/ContextEncoder.js.map +1 -0
  34. package/dist/scorer/EmbeddingModel.d.ts +39 -0
  35. package/dist/scorer/EmbeddingModel.d.ts.map +1 -0
  36. package/dist/scorer/EmbeddingModel.js +104 -0
  37. package/dist/scorer/EmbeddingModel.js.map +1 -0
  38. package/dist/scorer/index.d.ts +9 -0
  39. package/dist/scorer/index.d.ts.map +1 -0
  40. package/dist/scorer/index.js +8 -0
  41. package/dist/scorer/index.js.map +1 -0
  42. package/dist/search/BeamSearch.d.ts +32 -0
  43. package/dist/search/BeamSearch.d.ts.map +1 -0
  44. package/dist/search/BeamSearch.js +139 -0
  45. package/dist/search/BeamSearch.js.map +1 -0
  46. package/dist/search/BestFirstSearch.d.ts +23 -0
  47. package/dist/search/BestFirstSearch.d.ts.map +1 -0
  48. package/dist/search/BestFirstSearch.js +110 -0
  49. package/dist/search/BestFirstSearch.js.map +1 -0
  50. package/dist/search/PriorityQueue.d.ts +54 -0
  51. package/dist/search/PriorityQueue.d.ts.map +1 -0
  52. package/dist/search/PriorityQueue.js +114 -0
  53. package/dist/search/PriorityQueue.js.map +1 -0
  54. package/dist/search/PruningManager.d.ts +62 -0
  55. package/dist/search/PruningManager.d.ts.map +1 -0
  56. package/dist/search/PruningManager.js +188 -0
  57. package/dist/search/PruningManager.js.map +1 -0
  58. package/dist/search/index.d.ts +10 -0
  59. package/dist/search/index.d.ts.map +1 -0
  60. package/dist/search/index.js +9 -0
  61. package/dist/search/index.js.map +1 -0
  62. package/dist/types.d.ts +416 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +7 -0
  65. package/dist/types.js.map +1 -0
  66. package/package.json +59 -0
package/README.md ADDED
@@ -0,0 +1,55 @@
1
+ # @nahisaho/musubix-neural-search
2
+
3
+ Neural search engine with embedding-based scoring and learning-based pruning for MUSUBIX code synthesis.
4
+
5
+ ## Features
6
+
7
+ - **Neural Scorer**: Embedding-based code and specification scoring
8
+ - **Search Engine**: Beam search and best-first search algorithms
9
+ - **Learning Module**: Online learning from search trajectories
10
+
11
+ ## Installation
12
+
13
+ ```bash
14
+ npm install @nahisaho/musubix-neural-search
15
+ ```
16
+
17
+ ## Requirements
18
+
19
+ - REQ-NS-001: Branch Scoring with neural embeddings
20
+ - REQ-NS-002: Search prioritization based on scores
21
+ - REQ-NS-003: Learning-based pruning
22
+ - REQ-NS-004: Search trajectory learning
23
+
24
+ ## Architecture
25
+
26
+ ```
27
+ ┌─────────────────────────────────────────────────────────┐
28
+ │ Neural Search Engine │
29
+ ├─────────────────┬─────────────────┬────────────────────┤
30
+ │ Neural Scorer │ Search Engine │ Learning Module │
31
+ ├─────────────────┼─────────────────┼────────────────────┤
32
+ │ EmbeddingModel │ BeamSearch │ TrajectoryLog │
33
+ │ BranchScorer │ BestFirstSearch │ OnlineLearner │
34
+ │ ContextEncoder │ PruningManager │ ModelUpdater │
35
+ └─────────────────┴─────────────────┴────────────────────┘
36
+ ```
37
+
38
+ ## Usage
39
+
40
+ ```typescript
41
+ import { BeamSearch, BranchScorer, OnlineLearner } from '@nahisaho/musubix-neural-search';
42
+
43
+ // Create scorer
44
+ const scorer = new BranchScorer();
45
+
46
+ // Create search
47
+ const search = new BeamSearch({ beamWidth: 5 });
48
+
49
+ // Execute search
50
+ const results = await search.search(initialState, scorer);
51
+ ```
52
+
53
+ ## License
54
+
55
+ MIT
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Neural Search Errors
3
+ * @module @nahisaho/musubix-neural-search
4
+ */
5
+ /**
6
+ * Base error for neural search
7
+ */
8
+ export declare class NeuralSearchError extends Error {
9
+ readonly code: string;
10
+ constructor(message: string, code: string);
11
+ }
12
+ /**
13
+ * Embedding error
14
+ */
15
+ export declare class EmbeddingError extends NeuralSearchError {
16
+ constructor(message: string);
17
+ }
18
+ /**
19
+ * Search error
20
+ */
21
+ export declare class SearchError extends NeuralSearchError {
22
+ constructor(message: string);
23
+ }
24
+ /**
25
+ * Search timeout error
26
+ */
27
+ export declare class SearchTimeoutError extends SearchError {
28
+ constructor(timeout: number);
29
+ }
30
+ /**
31
+ * Search depth exceeded error
32
+ */
33
+ export declare class SearchDepthExceededError extends SearchError {
34
+ constructor(maxDepth: number);
35
+ }
36
+ /**
37
+ * Learning error
38
+ */
39
+ export declare class LearningError extends NeuralSearchError {
40
+ constructor(message: string);
41
+ }
42
+ /**
43
+ * Invalid state error
44
+ */
45
+ export declare class InvalidStateError extends NeuralSearchError {
46
+ constructor(message: string);
47
+ }
48
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,KAAK;aACG,IAAI,EAAE,MAAM;gBAA7C,OAAO,EAAE,MAAM,EAAkB,IAAI,EAAE,MAAM;CAI1D;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,iBAAiB;gBACvC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,iBAAiB;gBACpC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,WAAW;gBAC3C,QAAQ,EAAE,MAAM;CAI7B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,iBAAiB;gBAC1C,OAAO,EAAE,MAAM;CAI5B"}
package/dist/errors.js ADDED
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Neural Search Errors
3
+ * @module @nahisaho/musubix-neural-search
4
+ */
5
+ /**
6
+ * Base error for neural search
7
+ */
8
+ export class NeuralSearchError extends Error {
9
+ code;
10
+ constructor(message, code) {
11
+ super(message);
12
+ this.code = code;
13
+ this.name = 'NeuralSearchError';
14
+ }
15
+ }
16
+ /**
17
+ * Embedding error
18
+ */
19
+ export class EmbeddingError extends NeuralSearchError {
20
+ constructor(message) {
21
+ super(message, 'EMBEDDING_ERROR');
22
+ this.name = 'EmbeddingError';
23
+ }
24
+ }
25
+ /**
26
+ * Search error
27
+ */
28
+ export class SearchError extends NeuralSearchError {
29
+ constructor(message) {
30
+ super(message, 'SEARCH_ERROR');
31
+ this.name = 'SearchError';
32
+ }
33
+ }
34
+ /**
35
+ * Search timeout error
36
+ */
37
+ export class SearchTimeoutError extends SearchError {
38
+ constructor(timeout) {
39
+ super(`Search timed out after ${timeout}ms`);
40
+ this.name = 'SearchTimeoutError';
41
+ }
42
+ }
43
+ /**
44
+ * Search depth exceeded error
45
+ */
46
+ export class SearchDepthExceededError extends SearchError {
47
+ constructor(maxDepth) {
48
+ super(`Maximum search depth ${maxDepth} exceeded`);
49
+ this.name = 'SearchDepthExceededError';
50
+ }
51
+ }
52
+ /**
53
+ * Learning error
54
+ */
55
+ export class LearningError extends NeuralSearchError {
56
+ constructor(message) {
57
+ super(message, 'LEARNING_ERROR');
58
+ this.name = 'LearningError';
59
+ }
60
+ }
61
+ /**
62
+ * Invalid state error
63
+ */
64
+ export class InvalidStateError extends NeuralSearchError {
65
+ constructor(message) {
66
+ super(message, 'INVALID_STATE');
67
+ this.name = 'InvalidStateError';
68
+ }
69
+ }
70
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACG;IAA7C,YAAY,OAAe,EAAkB,IAAY;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAQ;QAEvD,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,iBAAiB;IACnD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,iBAAiB;IAChD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,YAAY,OAAe;QACzB,KAAK,CAAC,0BAA0B,OAAO,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvD,YAAY,QAAgB;QAC1B,KAAK,CAAC,wBAAwB,QAAQ,WAAW,CAAC,CAAC;QACnD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,iBAAiB;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,iBAAiB;IACtD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Neural Search Package
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Neural search engine with embedding-based scoring and learning-based pruning
5
+ */
6
+ export * from './types.js';
7
+ export * from './errors.js';
8
+ export { EmbeddingModel, BranchScorer, ContextEncoder, } from './scorer/index.js';
9
+ export type { ScoreWeights } from './scorer/index.js';
10
+ export { PriorityQueue, BeamSearch, BestFirstSearch, PruningManager, } from './search/index.js';
11
+ export type { PruningConfig } from './search/index.js';
12
+ export { TrajectoryLog, OnlineLearner, ModelUpdater, } from './learning/index.js';
13
+ export type { OnlineLearnerConfig, ModelUpdaterConfig, } from './learning/index.js';
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,aAAa,CAAC;AAG5B,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Neural Search Package
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Neural search engine with embedding-based scoring and learning-based pruning
5
+ */
6
+ // Types
7
+ export * from './types.js';
8
+ // Errors
9
+ export * from './errors.js';
10
+ // Neural Scorer
11
+ export { EmbeddingModel, BranchScorer, ContextEncoder, } from './scorer/index.js';
12
+ // Search Engine
13
+ export { PriorityQueue, BeamSearch, BestFirstSearch, PruningManager, } from './search/index.js';
14
+ // Learning Module
15
+ export { TrajectoryLog, OnlineLearner, ModelUpdater, } from './learning/index.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,SAAS;AACT,cAAc,aAAa,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,gBAAgB;AAChB,OAAO,EACL,aAAa,EACb,UAAU,EACV,eAAe,EACf,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,kBAAkB;AAClB,OAAO,EACL,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Model Updater
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Batched model updates
5
+ */
6
+ import type { IModelUpdater, LearningUpdate } from '../types.js';
7
+ /**
8
+ * Model updater configuration
9
+ */
10
+ export interface ModelUpdaterConfig {
11
+ batchSize: number;
12
+ flushInterval: number;
13
+ }
14
+ /**
15
+ * Model updater implementation
16
+ */
17
+ export declare class ModelUpdater implements IModelUpdater {
18
+ private readonly config;
19
+ private pendingUpdates;
20
+ private onFlush?;
21
+ private flushTimer?;
22
+ private totalFlushed;
23
+ constructor(config?: Partial<ModelUpdaterConfig>, onFlush?: (updates: LearningUpdate[]) => Promise<void>);
24
+ /**
25
+ * Queue an update
26
+ */
27
+ queueUpdate(update: LearningUpdate): void;
28
+ /**
29
+ * Flush pending updates
30
+ */
31
+ flushUpdates(): Promise<void>;
32
+ /**
33
+ * Get pending update count
34
+ */
35
+ getPendingCount(): number;
36
+ /**
37
+ * Get total flushed count
38
+ */
39
+ getTotalFlushed(): number;
40
+ /**
41
+ * Clear pending updates without flushing
42
+ */
43
+ clear(): void;
44
+ /**
45
+ * Schedule a flush
46
+ */
47
+ private scheduleFlush;
48
+ }
49
+ //# sourceMappingURL=ModelUpdater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelUpdater.d.ts","sourceRoot":"","sources":["../../src/learning/ModelUpdater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAUD;;GAEG;AACH,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,OAAO,CAAC,CAA+C;IAC/D,OAAO,CAAC,UAAU,CAAC,CAAgC;IACnD,OAAO,CAAC,YAAY,CAAS;gBAG3B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,EACxC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC;IAQxD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAYzC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBnC;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,eAAe,IAAI,MAAM;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;IAQb;;OAEG;IACH,OAAO,CAAC,aAAa;CAUtB"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Model Updater
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Batched model updates
5
+ */
6
+ /**
7
+ * Default configuration
8
+ */
9
+ const DEFAULT_CONFIG = {
10
+ batchSize: 10,
11
+ flushInterval: 5000,
12
+ };
13
+ /**
14
+ * Model updater implementation
15
+ */
16
+ export class ModelUpdater {
17
+ config;
18
+ pendingUpdates;
19
+ onFlush;
20
+ flushTimer;
21
+ totalFlushed;
22
+ constructor(config = {}, onFlush) {
23
+ this.config = { ...DEFAULT_CONFIG, ...config };
24
+ this.pendingUpdates = [];
25
+ this.onFlush = onFlush;
26
+ this.totalFlushed = 0;
27
+ }
28
+ /**
29
+ * Queue an update
30
+ */
31
+ queueUpdate(update) {
32
+ this.pendingUpdates.push(update);
33
+ // Auto-flush if batch size reached
34
+ if (this.pendingUpdates.length >= this.config.batchSize) {
35
+ void this.flushUpdates();
36
+ }
37
+ else {
38
+ // Set timer for flush
39
+ this.scheduleFlush();
40
+ }
41
+ }
42
+ /**
43
+ * Flush pending updates
44
+ */
45
+ async flushUpdates() {
46
+ if (this.pendingUpdates.length === 0) {
47
+ return;
48
+ }
49
+ // Clear timer
50
+ if (this.flushTimer) {
51
+ clearTimeout(this.flushTimer);
52
+ this.flushTimer = undefined;
53
+ }
54
+ // Get updates to flush
55
+ const updates = [...this.pendingUpdates];
56
+ this.pendingUpdates = [];
57
+ this.totalFlushed += updates.length;
58
+ // Call flush handler if provided
59
+ if (this.onFlush) {
60
+ await this.onFlush(updates);
61
+ }
62
+ }
63
+ /**
64
+ * Get pending update count
65
+ */
66
+ getPendingCount() {
67
+ return this.pendingUpdates.length;
68
+ }
69
+ /**
70
+ * Get total flushed count
71
+ */
72
+ getTotalFlushed() {
73
+ return this.totalFlushed;
74
+ }
75
+ /**
76
+ * Clear pending updates without flushing
77
+ */
78
+ clear() {
79
+ if (this.flushTimer) {
80
+ clearTimeout(this.flushTimer);
81
+ this.flushTimer = undefined;
82
+ }
83
+ this.pendingUpdates = [];
84
+ }
85
+ /**
86
+ * Schedule a flush
87
+ */
88
+ scheduleFlush() {
89
+ if (this.flushTimer) {
90
+ return;
91
+ }
92
+ this.flushTimer = setTimeout(() => {
93
+ this.flushTimer = undefined;
94
+ void this.flushUpdates();
95
+ }, this.config.flushInterval);
96
+ }
97
+ }
98
+ //# sourceMappingURL=ModelUpdater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelUpdater.js","sourceRoot":"","sources":["../../src/learning/ModelUpdater.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH;;GAEG;AACH,MAAM,cAAc,GAAuB;IACzC,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,IAAI;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACN,MAAM,CAAqB;IACpC,cAAc,CAAmB;IACjC,OAAO,CAAgD;IACvD,UAAU,CAAiC;IAC3C,YAAY,CAAS;IAE7B,YACE,SAAsC,EAAE,EACxC,OAAsD;QAEtD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAsB;QAChC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,mCAAmC;QACnC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxD,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,sBAAsB;YACtB,IAAI,CAAC,aAAa,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,cAAc;QACd,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QAED,uBAAuB;QACvB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;QAEpC,iCAAiC;QACjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,aAAa;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3B,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Online Learner
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Online learning from search trajectories
5
+ * Traces to: REQ-NS-004 (探索履歴学習)
6
+ */
7
+ import type { IOnlineLearner, LearningStatistics, LearningUpdate, SearchTrajectory } from '../types.js';
8
+ /**
9
+ * Online learner configuration
10
+ */
11
+ export interface OnlineLearnerConfig {
12
+ learningRate: number;
13
+ momentumDecay: number;
14
+ gradientClip: number;
15
+ }
16
+ /**
17
+ * Online learner implementation
18
+ */
19
+ export declare class OnlineLearner implements IOnlineLearner {
20
+ private readonly config;
21
+ private parameters;
22
+ private momentum;
23
+ private totalUpdates;
24
+ private lossHistory;
25
+ constructor(config?: Partial<OnlineLearnerConfig>);
26
+ /**
27
+ * Learn from a trajectory
28
+ */
29
+ learnFromTrajectory(trajectory: SearchTrajectory): LearningUpdate;
30
+ /**
31
+ * Get current model parameters
32
+ */
33
+ getParameters(): Map<string, number>;
34
+ /**
35
+ * Apply learning update
36
+ */
37
+ applyUpdate(update: LearningUpdate): void;
38
+ /**
39
+ * Get learning statistics
40
+ */
41
+ getStatistics(): LearningStatistics;
42
+ /**
43
+ * Reset learner
44
+ */
45
+ reset(): void;
46
+ /**
47
+ * Initialize default parameters
48
+ */
49
+ private initializeParameters;
50
+ /**
51
+ * Compute gradients from trajectory
52
+ */
53
+ private computeGradients;
54
+ /**
55
+ * Compute loss from trajectory
56
+ */
57
+ private computeLoss;
58
+ }
59
+ //# sourceMappingURL=OnlineLearner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnlineLearner.d.ts","sourceRoot":"","sources":["../../src/learning/OnlineLearner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAWD;;GAEG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,WAAW,CAAW;gBAElB,MAAM,GAAE,OAAO,CAAC,mBAAmB,CAAM;IAWrD;;OAEG;IACH,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,cAAc;IAcjE;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAIpC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAsBzC;;OAEG;IACH,aAAa,IAAI,kBAAkB;IAsBnC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,WAAW;CAiBpB"}
@@ -0,0 +1,155 @@
1
+ /**
2
+ * Online Learner
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Online learning from search trajectories
5
+ * Traces to: REQ-NS-004 (探索履歴学習)
6
+ */
7
+ /**
8
+ * Default configuration
9
+ */
10
+ const DEFAULT_CONFIG = {
11
+ learningRate: 0.01,
12
+ momentumDecay: 0.9,
13
+ gradientClip: 1.0,
14
+ };
15
+ /**
16
+ * Online learner implementation
17
+ */
18
+ export class OnlineLearner {
19
+ config;
20
+ parameters;
21
+ momentum;
22
+ totalUpdates;
23
+ lossHistory;
24
+ constructor(config = {}) {
25
+ this.config = { ...DEFAULT_CONFIG, ...config };
26
+ this.parameters = new Map();
27
+ this.momentum = new Map();
28
+ this.totalUpdates = 0;
29
+ this.lossHistory = [];
30
+ // Initialize default parameters
31
+ this.initializeParameters();
32
+ }
33
+ /**
34
+ * Learn from a trajectory
35
+ */
36
+ learnFromTrajectory(trajectory) {
37
+ const gradients = this.computeGradients(trajectory);
38
+ const loss = this.computeLoss(trajectory);
39
+ this.lossHistory.push(loss);
40
+ this.totalUpdates++;
41
+ return {
42
+ trajectoryId: trajectory.id,
43
+ gradients,
44
+ loss,
45
+ };
46
+ }
47
+ /**
48
+ * Get current model parameters
49
+ */
50
+ getParameters() {
51
+ return new Map(this.parameters);
52
+ }
53
+ /**
54
+ * Apply learning update
55
+ */
56
+ applyUpdate(update) {
57
+ for (const [key, gradient] of update.gradients) {
58
+ // Get current values
59
+ const param = this.parameters.get(key) ?? 0;
60
+ const mom = this.momentum.get(key) ?? 0;
61
+ // Clip gradient
62
+ const clippedGrad = Math.max(-this.config.gradientClip, Math.min(this.config.gradientClip, gradient));
63
+ // Update momentum
64
+ const newMom = this.config.momentumDecay * mom + clippedGrad;
65
+ this.momentum.set(key, newMom);
66
+ // Update parameter
67
+ const newParam = param - this.config.learningRate * newMom;
68
+ this.parameters.set(key, newParam);
69
+ }
70
+ }
71
+ /**
72
+ * Get learning statistics
73
+ */
74
+ getStatistics() {
75
+ const recentLoss = this.lossHistory.slice(-100);
76
+ const avgLoss = recentLoss.length > 0
77
+ ? recentLoss.reduce((a, b) => a + b, 0) / recentLoss.length
78
+ : 0;
79
+ // Compute convergence metric (variance of recent losses)
80
+ const variance = recentLoss.length > 1
81
+ ? recentLoss.reduce((sum, l) => sum + Math.pow(l - avgLoss, 2), 0) /
82
+ (recentLoss.length - 1)
83
+ : 1;
84
+ return {
85
+ totalUpdates: this.totalUpdates,
86
+ averageLoss: avgLoss,
87
+ learningRate: this.config.learningRate,
88
+ convergenceMetric: 1 / (1 + variance), // Higher = more converged
89
+ };
90
+ }
91
+ /**
92
+ * Reset learner
93
+ */
94
+ reset() {
95
+ this.initializeParameters();
96
+ this.momentum.clear();
97
+ this.totalUpdates = 0;
98
+ this.lossHistory = [];
99
+ }
100
+ /**
101
+ * Initialize default parameters
102
+ */
103
+ initializeParameters() {
104
+ this.parameters = new Map([
105
+ ['specAlignment', 0.4],
106
+ ['codeQuality', 0.3],
107
+ ['novelty', 0.15],
108
+ ['feasibility', 0.15],
109
+ ['depthPenalty', 0.05],
110
+ ['complexityPenalty', 0.1],
111
+ ]);
112
+ }
113
+ /**
114
+ * Compute gradients from trajectory
115
+ */
116
+ computeGradients(trajectory) {
117
+ const gradients = new Map();
118
+ const reward = trajectory.outcome.success ? 1 : -1;
119
+ // Compute gradients based on trajectory outcome
120
+ for (const step of trajectory.path) {
121
+ // Positive gradient for parameters that led to success
122
+ const specGrad = reward * 0.1 * (1 / (step.state.depth + 1));
123
+ const qualityGrad = reward * 0.05;
124
+ const noveltyGrad = reward * 0.02 * (step.score > 0.5 ? 1 : -1);
125
+ // Accumulate gradients
126
+ gradients.set('specAlignment', (gradients.get('specAlignment') ?? 0) + specGrad);
127
+ gradients.set('codeQuality', (gradients.get('codeQuality') ?? 0) + qualityGrad);
128
+ gradients.set('novelty', (gradients.get('novelty') ?? 0) + noveltyGrad);
129
+ }
130
+ // Normalize by path length
131
+ const pathLength = trajectory.path.length || 1;
132
+ for (const [key, value] of gradients) {
133
+ gradients.set(key, value / pathLength);
134
+ }
135
+ return gradients;
136
+ }
137
+ /**
138
+ * Compute loss from trajectory
139
+ */
140
+ computeLoss(trajectory) {
141
+ // Cross-entropy style loss
142
+ // For success, we want high predicted score → low loss
143
+ // For failure, we want high predicted score → high loss
144
+ const target = trajectory.outcome.success ? 1 : 0;
145
+ const predicted = trajectory.outcome.finalScore;
146
+ // Clamp to avoid log(0)
147
+ const p = Math.max(0.001, Math.min(0.999, predicted));
148
+ // Cross-entropy: -[target * log(p) + (1-target) * log(1-p)]
149
+ // If target=1 (success): loss = -log(p), so high p → low loss
150
+ // If target=0 (failure): loss = -log(1-p), so high p → high loss
151
+ const loss = -(target * Math.log(p) + (1 - target) * Math.log(1 - p));
152
+ return loss;
153
+ }
154
+ }
155
+ //# sourceMappingURL=OnlineLearner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnlineLearner.js","sourceRoot":"","sources":["../../src/learning/OnlineLearner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Trajectory Log
3
+ * @module @nahisaho/musubix-neural-search
4
+ * @description Logs and queries search trajectories
5
+ * Traces to: REQ-NS-004 (探索履歴学習)
6
+ */
7
+ import type { ITrajectoryLog, SearchTrajectory, TrajectoryStatistics } from '../types.js';
8
+ /**
9
+ * Trajectory log implementation
10
+ */
11
+ export declare class TrajectoryLog implements ITrajectoryLog {
12
+ private trajectories;
13
+ private specIndex;
14
+ constructor();
15
+ /**
16
+ * Log a completed trajectory
17
+ */
18
+ log(trajectory: SearchTrajectory): void;
19
+ /**
20
+ * Query trajectories by specification
21
+ */
22
+ queryBySpec(spec: string, limit?: number): SearchTrajectory[];
23
+ /**
24
+ * Get successful trajectories
25
+ */
26
+ getSuccessful(limit?: number): SearchTrajectory[];
27
+ /**
28
+ * Get all trajectories
29
+ */
30
+ getAll(): SearchTrajectory[];
31
+ /**
32
+ * Get trajectory by ID
33
+ */
34
+ get(id: string): SearchTrajectory | undefined;
35
+ /**
36
+ * Get statistics
37
+ */
38
+ getStatistics(): TrajectoryStatistics;
39
+ /**
40
+ * Clear all trajectories
41
+ */
42
+ clear(): void;
43
+ /**
44
+ * Get size
45
+ */
46
+ size(): number;
47
+ /**
48
+ * Hash specification for indexing
49
+ */
50
+ private hashSpec;
51
+ }
52
+ //# sourceMappingURL=TrajectoryLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrajectoryLog.d.ts","sourceRoot":"","sources":["../../src/learning/TrajectoryLog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,SAAS,CAAwB;;IAOzC;;OAEG;IACH,GAAG,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAUvC;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;IAUjE;;OAEG;IACH,aAAa,CAAC,KAAK,GAAE,MAAW,GAAG,gBAAgB,EAAE;IAOrD;;OAEG;IACH,MAAM,IAAI,gBAAgB,EAAE;IAI5B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7C;;OAEG;IACH,aAAa,IAAI,oBAAoB;IAkBrC;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,MAAM;IAId;;OAEG;IACH,OAAO,CAAC,QAAQ;CAIjB"}