@timmeck/brain 2.0.0 → 2.1.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 (50) hide show
  1. package/README.md +16 -2
  2. package/brain.log +2712 -0
  3. package/dashboard.html +7 -1
  4. package/dist/brain.d.ts +1 -0
  5. package/dist/brain.js +11 -5
  6. package/dist/brain.js.map +1 -1
  7. package/dist/cli/commands/dashboard.js +21 -2
  8. package/dist/cli/commands/dashboard.js.map +1 -1
  9. package/dist/cli/commands/status.js +0 -1
  10. package/dist/cli/commands/status.js.map +1 -1
  11. package/dist/config.js +2 -29
  12. package/dist/config.js.map +1 -1
  13. package/dist/ipc/__tests__/protocol.test.js +1 -1
  14. package/dist/ipc/__tests__/protocol.test.js.map +1 -1
  15. package/dist/ipc/router.d.ts +2 -0
  16. package/dist/ipc/router.js +22 -0
  17. package/dist/ipc/router.js.map +1 -1
  18. package/dist/learning/confidence-scorer.d.ts +2 -5
  19. package/dist/learning/confidence-scorer.js +4 -19
  20. package/dist/learning/confidence-scorer.js.map +1 -1
  21. package/dist/learning/decay.js +2 -3
  22. package/dist/learning/decay.js.map +1 -1
  23. package/dist/learning/learning-engine.d.ts +2 -5
  24. package/dist/learning/learning-engine.js +3 -15
  25. package/dist/learning/learning-engine.js.map +1 -1
  26. package/dist/mcp/tools.js +36 -0
  27. package/dist/mcp/tools.js.map +1 -1
  28. package/dist/parsing/parsers/compiler.js +1 -1
  29. package/dist/parsing/parsers/compiler.js.map +1 -1
  30. package/dist/research/research-engine.d.ts +2 -6
  31. package/dist/research/research-engine.js +3 -23
  32. package/dist/research/research-engine.js.map +1 -1
  33. package/dist/services/synapse.service.d.ts +3 -3
  34. package/dist/synapses/activation.d.ts +3 -13
  35. package/dist/synapses/activation.js +2 -49
  36. package/dist/synapses/activation.js.map +1 -1
  37. package/dist/synapses/decay.d.ts +2 -11
  38. package/dist/synapses/decay.js +2 -26
  39. package/dist/synapses/decay.js.map +1 -1
  40. package/dist/synapses/hebbian.d.ts +2 -13
  41. package/dist/synapses/hebbian.js +2 -35
  42. package/dist/synapses/hebbian.js.map +1 -1
  43. package/dist/synapses/pathfinder.d.ts +2 -14
  44. package/dist/synapses/pathfinder.js +2 -49
  45. package/dist/synapses/pathfinder.js.map +1 -1
  46. package/dist/synapses/synapse-manager.d.ts +7 -23
  47. package/dist/synapses/synapse-manager.js +6 -63
  48. package/dist/synapses/synapse-manager.js.map +1 -1
  49. package/eslint.config.js +14 -0
  50. package/package.json +56 -50
@@ -1,51 +1,9 @@
1
- import { strengthen, weaken } from './hebbian.js';
2
- import { decayAll } from './decay.js';
3
- import { spreadingActivation } from './activation.js';
4
- import { findPath } from './pathfinder.js';
5
- import { getLogger } from '../utils/logger.js';
6
- export class SynapseManager {
7
- repo;
8
- config;
9
- logger = getLogger();
10
- constructor(repo, config) {
11
- this.repo = repo;
12
- this.config = config;
13
- }
14
- strengthen(source, target, synapseType, context) {
15
- this.logger.debug(`Strengthening synapse ${source.type}:${source.id} --${synapseType}--> ${target.type}:${target.id}`);
16
- return strengthen(this.repo, source, target, synapseType, {
17
- initialWeight: this.config.initialWeight,
18
- learningRate: this.config.learningRate,
19
- pruneThreshold: this.config.pruneThreshold,
20
- }, context);
21
- }
22
- weaken(synapseId, factor = 0.5) {
23
- this.logger.debug(`Weakening synapse ${synapseId} by factor ${factor}`);
24
- weaken(this.repo, synapseId, {
25
- initialWeight: this.config.initialWeight,
26
- learningRate: this.config.learningRate,
27
- pruneThreshold: this.config.pruneThreshold,
28
- }, factor);
29
- }
30
- find(source, target, synapseType) {
31
- return this.repo.findBySourceTarget(source.type, source.id, target.type, target.id, synapseType);
32
- }
33
- activate(startNode, maxDepth, minWeight) {
34
- return spreadingActivation(this.repo, startNode, maxDepth ?? this.config.maxDepth, minWeight ?? this.config.minActivationWeight);
35
- }
36
- findPath(from, to, maxDepth) {
37
- return findPath(this.repo, from, to, maxDepth ?? this.config.maxDepth + 2);
38
- }
39
- runDecay() {
40
- this.logger.info('Running synapse decay cycle');
41
- const result = decayAll(this.repo, {
42
- decayHalfLifeDays: this.config.decayHalfLifeDays,
43
- decayAfterDays: this.config.decayAfterDays,
44
- pruneThreshold: this.config.pruneThreshold,
45
- });
46
- this.logger.info(`Decay complete: ${result.decayed} decayed, ${result.pruned} pruned`);
47
- return result;
48
- }
1
+ import { BaseSynapseManager } from '@timmeck/brain-core';
2
+ /**
3
+ * Brain-specific SynapseManager.
4
+ * Extends BaseSynapseManager with error-context domain methods.
5
+ */
6
+ export class SynapseManager extends BaseSynapseManager {
49
7
  getErrorContext(errorId) {
50
8
  const all = this.activate({ type: 'error', id: errorId });
51
9
  return {
@@ -56,20 +14,5 @@ export class SynapseManager {
56
14
  insights: all.filter(a => a.node.type === 'insight'),
57
15
  };
58
16
  }
59
- getStrongestSynapses(limit = 20) {
60
- return this.repo.topByWeight(limit);
61
- }
62
- getDiverseSynapses(perType = 25) {
63
- return this.repo.topDiverse(perType);
64
- }
65
- getNetworkStats() {
66
- return {
67
- totalNodes: this.repo.countNodes(),
68
- totalSynapses: this.repo.totalCount(),
69
- avgWeight: this.repo.avgWeight(),
70
- nodesByType: {},
71
- synapsesByType: this.repo.countByType(),
72
- };
73
- }
74
17
  }
75
18
  //# sourceMappingURL=synapse-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"synapse-manager.js","sourceRoot":"","sources":["../../src/synapses/synapse-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"synapse-manager.js","sourceRoot":"","sources":["../../src/synapses/synapse-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAGzD;;;GAGG;AACH,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IACpD,eAAe,CAAC,OAAe;QAO7B,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAC1D,OAAO;YACL,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;YACtD,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;YACvD,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;YAC/D,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;YACxD,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;SACrD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import tseslint from 'typescript-eslint';
2
+
3
+ export default tseslint.config(
4
+ ...tseslint.configs.recommended,
5
+ {
6
+ ignores: ['dist/', 'node_modules/', '**/*.js', '**/*.d.ts'],
7
+ },
8
+ {
9
+ rules: {
10
+ '@typescript-eslint/no-explicit-any': 'warn',
11
+ '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
12
+ },
13
+ },
14
+ );
package/package.json CHANGED
@@ -1,50 +1,56 @@
1
- {
2
- "name": "@timmeck/brain",
3
- "version": "2.0.0",
4
- "description": "Adaptive error memory and code intelligence system with Hebbian synapse network, hybrid search, and REST API",
5
- "type": "module",
6
- "main": "dist/index.js",
7
- "bin": {
8
- "brain": "./dist/index.js"
9
- },
10
- "scripts": {
11
- "build": "tsc",
12
- "dev": "tsx src/index.ts",
13
- "test": "vitest"
14
- },
15
- "keywords": [
16
- "error-memory",
17
- "code-intelligence",
18
- "mcp",
19
- "claude-code",
20
- "hebbian-learning",
21
- "synapse-network",
22
- "adaptive-learning",
23
- "vector-search",
24
- "embeddings",
25
- "rest-api",
26
- "developer-tools"
27
- ],
28
- "author": "Tim Mecklenburg",
29
- "license": "MIT",
30
- "repository": {
31
- "type": "git",
32
- "url": "https://github.com/timmeck/brain"
33
- },
34
- "dependencies": {
35
- "@huggingface/transformers": "^3.8.1",
36
- "@modelcontextprotocol/sdk": "^1.0.0",
37
- "@timmeck/brain-core": "^1.1.0",
38
- "better-sqlite3": "^11.7.0",
39
- "chalk": "^5.6.2",
40
- "commander": "^13.0.0",
41
- "winston": "^3.17.0"
42
- },
43
- "devDependencies": {
44
- "@types/better-sqlite3": "^7.6.12",
45
- "@types/node": "^22.0.0",
46
- "tsx": "^4.19.0",
47
- "typescript": "^5.7.0",
48
- "vitest": "^3.0.0"
49
- }
50
- }
1
+ {
2
+ "name": "@timmeck/brain",
3
+ "version": "2.1.0",
4
+ "description": "Adaptive error memory and code intelligence system with Hebbian synapse network, hybrid search, and REST API",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "brain": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsx src/index.ts",
13
+ "test": "vitest",
14
+ "lint": "eslint src/",
15
+ "lint:fix": "eslint src/ --fix",
16
+ "test:coverage": "vitest --coverage"
17
+ },
18
+ "keywords": [
19
+ "error-memory",
20
+ "code-intelligence",
21
+ "mcp",
22
+ "claude-code",
23
+ "hebbian-learning",
24
+ "synapse-network",
25
+ "adaptive-learning",
26
+ "vector-search",
27
+ "embeddings",
28
+ "rest-api",
29
+ "developer-tools"
30
+ ],
31
+ "author": "Tim Mecklenburg",
32
+ "license": "MIT",
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/timmeck/brain"
36
+ },
37
+ "dependencies": {
38
+ "@huggingface/transformers": "^3.8.1",
39
+ "@modelcontextprotocol/sdk": "^1.0.0",
40
+ "@timmeck/brain-core": "^1.1.0",
41
+ "better-sqlite3": "^11.7.0",
42
+ "chalk": "^5.6.2",
43
+ "commander": "^13.0.0",
44
+ "winston": "^3.17.0"
45
+ },
46
+ "devDependencies": {
47
+ "@types/better-sqlite3": "^7.6.12",
48
+ "@types/node": "^22.0.0",
49
+ "@vitest/coverage-v8": "^3.2.4",
50
+ "eslint": "^9.39.3",
51
+ "tsx": "^4.19.0",
52
+ "typescript": "^5.7.0",
53
+ "typescript-eslint": "^8.56.1",
54
+ "vitest": "^3.0.0"
55
+ }
56
+ }