@timmeck/brain-core 2.15.0 → 2.17.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 (62) hide show
  1. package/dist/api/server.js +10 -0
  2. package/dist/api/server.js.map +1 -1
  3. package/dist/codegen/code-generator.d.ts +42 -0
  4. package/dist/codegen/code-generator.js +225 -0
  5. package/dist/codegen/code-generator.js.map +1 -0
  6. package/dist/codegen/code-miner.d.ts +45 -0
  7. package/dist/codegen/code-miner.js +243 -0
  8. package/dist/codegen/code-miner.js.map +1 -0
  9. package/dist/codegen/context-builder.d.ts +15 -0
  10. package/dist/codegen/context-builder.js +137 -0
  11. package/dist/codegen/context-builder.js.map +1 -0
  12. package/dist/codegen/index.d.ts +5 -0
  13. package/dist/codegen/index.js +5 -0
  14. package/dist/codegen/index.js.map +1 -0
  15. package/dist/codegen/pattern-extractor.d.ts +25 -0
  16. package/dist/codegen/pattern-extractor.js +222 -0
  17. package/dist/codegen/pattern-extractor.js.map +1 -0
  18. package/dist/codegen/types.d.ts +127 -0
  19. package/dist/codegen/types.js +3 -0
  20. package/dist/codegen/types.js.map +1 -0
  21. package/dist/consciousness/consciousness-server.js +10 -0
  22. package/dist/consciousness/consciousness-server.js.map +1 -1
  23. package/dist/index.d.ts +12 -1
  24. package/dist/index.js +12 -1
  25. package/dist/index.js.map +1 -1
  26. package/dist/mcp/http-server.js +10 -0
  27. package/dist/mcp/http-server.js.map +1 -1
  28. package/dist/prediction/types.d.ts +1 -1
  29. package/dist/research/adapters/index.d.ts +1 -0
  30. package/dist/research/adapters/index.js +1 -0
  31. package/dist/research/adapters/index.js.map +1 -1
  32. package/dist/research/adapters/scanner-adapter.d.ts +14 -0
  33. package/dist/research/adapters/scanner-adapter.js +209 -0
  34. package/dist/research/adapters/scanner-adapter.js.map +1 -0
  35. package/dist/research/data-miner.d.ts +3 -1
  36. package/dist/research/data-miner.js +79 -69
  37. package/dist/research/data-miner.js.map +1 -1
  38. package/dist/research/research-orchestrator.d.ts +13 -1
  39. package/dist/research/research-orchestrator.js +78 -2
  40. package/dist/research/research-orchestrator.js.map +1 -1
  41. package/dist/scanner/crypto-collector.d.ts +17 -0
  42. package/dist/scanner/crypto-collector.js +89 -0
  43. package/dist/scanner/crypto-collector.js.map +1 -0
  44. package/dist/scanner/github-collector.d.ts +22 -0
  45. package/dist/scanner/github-collector.js +104 -0
  46. package/dist/scanner/github-collector.js.map +1 -0
  47. package/dist/scanner/hn-collector.d.ts +17 -0
  48. package/dist/scanner/hn-collector.js +58 -0
  49. package/dist/scanner/hn-collector.js.map +1 -0
  50. package/dist/scanner/index.d.ts +6 -0
  51. package/dist/scanner/index.js +6 -0
  52. package/dist/scanner/index.js.map +1 -0
  53. package/dist/scanner/signal-scanner.d.ts +83 -0
  54. package/dist/scanner/signal-scanner.js +859 -0
  55. package/dist/scanner/signal-scanner.js.map +1 -0
  56. package/dist/scanner/signal-scorer.d.ts +31 -0
  57. package/dist/scanner/signal-scorer.js +205 -0
  58. package/dist/scanner/signal-scorer.js.map +1 -0
  59. package/dist/scanner/types.d.ts +170 -0
  60. package/dist/scanner/types.js +3 -0
  61. package/dist/scanner/types.js.map +1 -0
  62. package/package.json +1 -1
@@ -15,6 +15,9 @@ import type { DataMiner } from './data-miner.js';
15
15
  import type { DreamEngine } from '../dream/dream-engine.js';
16
16
  import type { ThoughtStream } from '../consciousness/thought-stream.js';
17
17
  import type { PredictionEngine } from '../prediction/prediction-engine.js';
18
+ import type { SignalScanner } from '../scanner/signal-scanner.js';
19
+ import type { CodeGenerator } from '../codegen/code-generator.js';
20
+ import type { CodeMiner } from '../codegen/code-miner.js';
18
21
  import { AutoResponder } from './auto-responder.js';
19
22
  export interface ResearchOrchestratorConfig {
20
23
  brainName: string;
@@ -43,6 +46,9 @@ export declare class ResearchOrchestrator {
43
46
  private dreamEngine;
44
47
  private thoughtStream;
45
48
  private predictionEngine;
49
+ private signalScanner;
50
+ private codeGenerator;
51
+ private codeMiner;
46
52
  private brainName;
47
53
  private feedbackTimer;
48
54
  private cycleCount;
@@ -61,6 +67,12 @@ export declare class ResearchOrchestrator {
61
67
  setDreamEngine(engine: DreamEngine): void;
62
68
  /** Set the ThoughtStream for consciousness — emits thoughts at each step. */
63
69
  setThoughtStream(stream: ThoughtStream): void;
70
+ /** Set the SignalScanner — feeds scan results into journal/predictions. */
71
+ setSignalScanner(scanner: SignalScanner): void;
72
+ /** Set the CodeGenerator — autonomous code generation from brain knowledge. */
73
+ setCodeGenerator(generator: CodeGenerator): void;
74
+ /** Set the CodeMiner — mines repo contents from GitHub for pattern analysis. */
75
+ setCodeMiner(miner: CodeMiner): void;
64
76
  /** Set the PredictionEngine — wires journal into it. */
65
77
  setPredictionEngine(engine: PredictionEngine): void;
66
78
  /** Start the autonomous feedback loop timer. */
@@ -86,7 +98,7 @@ export declare class ResearchOrchestrator {
86
98
  * Run one autonomous feedback cycle.
87
99
  * This is where the engines talk to each other.
88
100
  */
89
- runFeedbackCycle(): void;
101
+ runFeedbackCycle(): Promise<void>;
90
102
  /** Analyze Brain's own state and generate concrete improvement suggestions.
91
103
  * Tracks suggestion history — if a suggestion repeats 3+ times without resolution,
92
104
  * Brain tries alternative strategies instead of repeating itself. */
@@ -30,6 +30,9 @@ export class ResearchOrchestrator {
30
30
  dreamEngine = null;
31
31
  thoughtStream = null;
32
32
  predictionEngine = null;
33
+ signalScanner = null;
34
+ codeGenerator = null;
35
+ codeMiner = null;
33
36
  brainName;
34
37
  feedbackTimer = null;
35
38
  cycleCount = 0;
@@ -75,6 +78,20 @@ export class ResearchOrchestrator {
75
78
  this.thoughtStream = stream;
76
79
  this.autoResponder.setThoughtStream(stream);
77
80
  }
81
+ /** Set the SignalScanner — feeds scan results into journal/predictions. */
82
+ setSignalScanner(scanner) {
83
+ this.signalScanner = scanner;
84
+ }
85
+ /** Set the CodeGenerator — autonomous code generation from brain knowledge. */
86
+ setCodeGenerator(generator) {
87
+ this.codeGenerator = generator;
88
+ generator.setJournal(this.journal);
89
+ generator.setKnowledgeDistiller(this.knowledgeDistiller);
90
+ }
91
+ /** Set the CodeMiner — mines repo contents from GitHub for pattern analysis. */
92
+ setCodeMiner(miner) {
93
+ this.codeMiner = miner;
94
+ }
78
95
  /** Set the PredictionEngine — wires journal into it. */
79
96
  setPredictionEngine(engine) {
80
97
  this.predictionEngine = engine;
@@ -86,7 +103,7 @@ export class ResearchOrchestrator {
86
103
  return;
87
104
  this.feedbackTimer = setInterval(() => {
88
105
  try {
89
- this.runFeedbackCycle();
106
+ void this.runFeedbackCycle();
90
107
  }
91
108
  catch (err) {
92
109
  this.log.error('[orchestrator] Feedback cycle error', { error: err.message });
@@ -155,7 +172,7 @@ export class ResearchOrchestrator {
155
172
  * Run one autonomous feedback cycle.
156
173
  * This is where the engines talk to each other.
157
174
  */
158
- runFeedbackCycle() {
175
+ async runFeedbackCycle() {
159
176
  this.cycleCount++;
160
177
  const start = Date.now();
161
178
  const ts = this.thoughtStream;
@@ -409,6 +426,62 @@ export class ResearchOrchestrator {
409
426
  this.log.error(`[orchestrator] Dream consolidation error: ${err.message}`);
410
427
  }
411
428
  }
429
+ // 14. Signal Scanner: feed latest scan results into journal + predictions
430
+ if (this.signalScanner) {
431
+ ts?.emit('signal_scanner', 'perceiving', 'Checking scanner results...');
432
+ try {
433
+ const status = this.signalScanner.getStatus();
434
+ if (status.last_scan) {
435
+ const scan = status.last_scan;
436
+ // Feed scan metrics into PredictionEngine
437
+ if (this.predictionEngine) {
438
+ this.predictionEngine.recordMetric('scanner_total_repos', status.total_repos, 'scanner');
439
+ this.predictionEngine.recordMetric('scanner_breakouts', status.by_level.breakout, 'scanner');
440
+ this.predictionEngine.recordMetric('scanner_signals', status.by_level.signal, 'scanner');
441
+ }
442
+ // Journal new breakouts
443
+ if (scan.new_breakouts > 0) {
444
+ const breakouts = this.signalScanner.getSignals('breakout', 5);
445
+ for (const repo of breakouts) {
446
+ this.journal.recordDiscovery(`Breakout: ${repo.full_name}`, `★${repo.current_stars} (+${repo.star_velocity_24h}/24h) — Score: ${repo.signal_score.toFixed(1)} — ${repo.description ?? ''}`, { url: repo.url, language: repo.language, phase: repo.phase }, 'breakthrough');
447
+ }
448
+ ts?.emit('signal_scanner', 'discovering', `${scan.new_breakouts} new breakout repo${scan.new_breakouts > 1 ? 's' : ''}!`, 'breakthrough');
449
+ }
450
+ // Journal new signals
451
+ if (scan.new_signals > 0) {
452
+ ts?.emit('signal_scanner', 'discovering', `${scan.new_signals} new signal repo${scan.new_signals > 1 ? 's' : ''}`, 'notable');
453
+ }
454
+ }
455
+ }
456
+ catch (err) {
457
+ this.log.error(`[orchestrator] Scanner integration error: ${err.message}`);
458
+ }
459
+ }
460
+ // 15. CodeMiner: mine new repo contents (every 10 cycles)
461
+ if (this.codeMiner && this.cycleCount % 10 === 0) {
462
+ ts?.emit('code_miner', 'perceiving', 'Mining new repo contents...');
463
+ try {
464
+ const mineResult = await this.codeMiner.mine();
465
+ if (mineResult.mined > 0) {
466
+ ts?.emit('code_miner', 'discovering', `Mined ${mineResult.mined} new repos`, 'notable');
467
+ }
468
+ }
469
+ catch (err) {
470
+ this.log.error(`[orchestrator] CodeMiner error: ${err.message}`);
471
+ }
472
+ }
473
+ // 16. CodeGenerator: feed generation metrics into HypothesisEngine
474
+ if (this.codeGenerator) {
475
+ const codegenSummary = this.codeGenerator.getSummary();
476
+ if (codegenSummary.total_generations > 0) {
477
+ this.hypothesisEngine.observe({ source: this.brainName, type: 'codegen_total', value: codegenSummary.total_generations, timestamp: now });
478
+ this.hypothesisEngine.observe({ source: this.brainName, type: 'codegen_approval_rate', value: codegenSummary.approval_rate, timestamp: now });
479
+ if (this.predictionEngine) {
480
+ this.predictionEngine.recordMetric('codegen_generations', codegenSummary.total_generations, 'codegen');
481
+ this.predictionEngine.recordMetric('codegen_tokens', codegenSummary.total_tokens_used, 'codegen');
482
+ }
483
+ }
484
+ }
412
485
  const duration = Date.now() - start;
413
486
  ts?.emit('orchestrator', 'reflecting', `Feedback Cycle #${this.cycleCount} complete (${duration}ms)`);
414
487
  this.log.info(`[orchestrator] ─── Feedback Cycle #${this.cycleCount} complete (${duration}ms) ───`);
@@ -714,6 +787,9 @@ export class ResearchOrchestrator {
714
787
  prediction: this.predictionEngine?.getSummary() ?? null,
715
788
  autoResponder: this.autoResponder.getStatus(),
716
789
  hypotheses: this.hypothesisEngine.getSummary(),
790
+ scanner: this.signalScanner?.getStatus() ?? null,
791
+ codeGenerator: this.codeGenerator?.getSummary() ?? null,
792
+ codeMiner: this.codeMiner?.getSummary() ?? null,
717
793
  };
718
794
  }
719
795
  }
@@ -1 +1 @@
1
- {"version":3,"file":"research-orchestrator.js","sourceRoot":"","sources":["../../src/research/research-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"research-orchestrator.js","sourceRoot":"","sources":["../../src/research/research-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { CoinGeckoMarket, CoinGeckoTrending } from './types.js';
2
+ /**
3
+ * Collect crypto market data from CoinGecko Free API.
4
+ * Free tier: 10-50 calls/min, no auth needed.
5
+ */
6
+ export declare class CryptoCollector {
7
+ private aborted;
8
+ abort(): void;
9
+ reset(): void;
10
+ /** Fetch trending coins from CoinGecko. */
11
+ collectTrending(): Promise<CoinGeckoTrending | null>;
12
+ /** Fetch market data for watchlist coins. */
13
+ collectWatchlist(): Promise<CoinGeckoMarket[]>;
14
+ /** Fetch top movers by market cap (top 250). */
15
+ collectTopMovers(limit?: number): Promise<CoinGeckoMarket[]>;
16
+ private fetchMarkets;
17
+ }
@@ -0,0 +1,89 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ const log = getLogger();
3
+ /** AI/DeFi watchlist coin IDs for CoinGecko. */
4
+ const WATCHLIST_IDS = [
5
+ // AI
6
+ 'render-token', 'fetch-ai', 'ocean-protocol', 'singularitynet', 'bittensor',
7
+ 'arkham', 'worldcoin-wld', 'numeraire', 'cortex',
8
+ // DeFi
9
+ 'uniswap', 'aave', 'lido-dao', 'maker', 'compound-governance-token',
10
+ 'curve-dao-token', 'balancer', 'synthetix-network-token',
11
+ // Infra
12
+ 'solana', 'avalanche-2', 'near', 'chainlink', 'polkadot', 'cosmos',
13
+ ];
14
+ /**
15
+ * Collect crypto market data from CoinGecko Free API.
16
+ * Free tier: 10-50 calls/min, no auth needed.
17
+ */
18
+ export class CryptoCollector {
19
+ aborted = false;
20
+ abort() { this.aborted = true; }
21
+ reset() { this.aborted = false; }
22
+ /** Fetch trending coins from CoinGecko. */
23
+ async collectTrending() {
24
+ try {
25
+ const res = await globalThis.fetch('https://api.coingecko.com/api/v3/search/trending', {
26
+ headers: { 'User-Agent': 'brain-ecosystem-scanner' },
27
+ signal: this.aborted ? AbortSignal.abort() : undefined,
28
+ });
29
+ if (!res.ok) {
30
+ log.error(`[crypto-collector] Trending failed: ${res.status}`);
31
+ return null;
32
+ }
33
+ return await res.json();
34
+ }
35
+ catch (err) {
36
+ if (this.aborted)
37
+ return null;
38
+ log.error(`[crypto-collector] Error: ${err.message}`);
39
+ return null;
40
+ }
41
+ }
42
+ /** Fetch market data for watchlist coins. */
43
+ async collectWatchlist() {
44
+ return this.fetchMarkets(WATCHLIST_IDS);
45
+ }
46
+ /** Fetch top movers by market cap (top 250). */
47
+ async collectTopMovers(limit = 250) {
48
+ const perPage = Math.min(limit, 250);
49
+ const url = `https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&order=market_cap_desc&per_page=${perPage}&page=1&sparkline=false&price_change_percentage=7d`;
50
+ try {
51
+ const res = await globalThis.fetch(url, {
52
+ headers: { 'User-Agent': 'brain-ecosystem-scanner' },
53
+ signal: this.aborted ? AbortSignal.abort() : undefined,
54
+ });
55
+ if (!res.ok) {
56
+ log.error(`[crypto-collector] Top movers failed: ${res.status}`);
57
+ return [];
58
+ }
59
+ return await res.json();
60
+ }
61
+ catch (err) {
62
+ if (this.aborted)
63
+ return [];
64
+ log.error(`[crypto-collector] Error: ${err.message}`);
65
+ return [];
66
+ }
67
+ }
68
+ async fetchMarkets(ids) {
69
+ const url = `https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=${ids.join(',')}&order=market_cap_desc&sparkline=false&price_change_percentage=7d`;
70
+ try {
71
+ const res = await globalThis.fetch(url, {
72
+ headers: { 'User-Agent': 'brain-ecosystem-scanner' },
73
+ signal: this.aborted ? AbortSignal.abort() : undefined,
74
+ });
75
+ if (!res.ok) {
76
+ log.error(`[crypto-collector] Watchlist failed: ${res.status}`);
77
+ return [];
78
+ }
79
+ return await res.json();
80
+ }
81
+ catch (err) {
82
+ if (this.aborted)
83
+ return [];
84
+ log.error(`[crypto-collector] Error: ${err.message}`);
85
+ return [];
86
+ }
87
+ }
88
+ }
89
+ //# sourceMappingURL=crypto-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto-collector.js","sourceRoot":"","sources":["../../src/scanner/crypto-collector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAExB,gDAAgD;AAChD,MAAM,aAAa,GAAG;IACpB,KAAK;IACL,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW;IAC3E,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ;IAChD,OAAO;IACP,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,2BAA2B;IACnE,iBAAiB,EAAE,UAAU,EAAE,yBAAyB;IACxD,QAAQ;IACR,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ;CACnE,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,eAAe;IAClB,OAAO,GAAG,KAAK,CAAC;IAExB,KAAK,KAAW,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;IACtC,KAAK,KAAW,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC;IAEvC,2CAA2C;IAC3C,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,kDAAkD,EAAE;gBACrF,OAAO,EAAE,EAAE,YAAY,EAAE,yBAAyB,EAAE;gBACpD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,uCAAuC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAC9B,GAAG,CAAC,KAAK,CAAC,6BAA8B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,KAAK,CAAC,gBAAgB;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC1C,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,gBAAgB,CAAC,KAAK,GAAG,GAAG;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,iGAAiG,OAAO,oDAAoD,CAAC;QACzK,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtC,OAAO,EAAE,EAAE,YAAY,EAAE,yBAAyB,EAAE;gBACpD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,yCAAyC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,6BAA8B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,GAAa;QACtC,MAAM,GAAG,GAAG,sEAAsE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,mEAAmE,CAAC;QACnK,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;gBACtC,OAAO,EAAE,EAAE,YAAY,EAAE,yBAAyB,EAAE;gBACpD,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;aACvD,CAAC,CAAC;YACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBACZ,GAAG,CAAC,KAAK,CAAC,wCAAwC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChE,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,OAAO,MAAM,GAAG,CAAC,IAAI,EAAuB,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;YAC5B,GAAG,CAAC,KAAK,CAAC,6BAA8B,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import type { GitHubRepo, ScannerConfig } from './types.js';
2
+ /**
3
+ * Collect emerging and trending repos from GitHub Search API.
4
+ * Respects rate limits (30 req/min for authenticated, 10 for unauthed).
5
+ */
6
+ export declare class GitHubCollector {
7
+ private token;
8
+ private minStarsEmerging;
9
+ private minStarsTrending;
10
+ private aborted;
11
+ constructor(config: Pick<ScannerConfig, 'githubToken' | 'minStarsEmerging' | 'minStarsTrending'>);
12
+ abort(): void;
13
+ reset(): void;
14
+ /** Fetch emerging repos: created in last 7 days with stars > threshold. */
15
+ collectEmerging(): Promise<GitHubRepo[]>;
16
+ /** Fetch trending repos: pushed in last 3 days with stars > threshold, per language. */
17
+ collectTrending(): Promise<GitHubRepo[]>;
18
+ /** Search with pagination up to maxResults. */
19
+ private searchAll;
20
+ /** Single search API call. */
21
+ private search;
22
+ }
@@ -0,0 +1,104 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ const log = getLogger();
3
+ const TRENDING_LANGUAGES = [
4
+ 'TypeScript', 'Python', 'Rust', 'Go', 'JavaScript',
5
+ 'C++', 'Java', 'Kotlin', 'Swift', 'Zig',
6
+ 'C#', 'Ruby', 'Elixir',
7
+ ];
8
+ /**
9
+ * Collect emerging and trending repos from GitHub Search API.
10
+ * Respects rate limits (30 req/min for authenticated, 10 for unauthed).
11
+ */
12
+ export class GitHubCollector {
13
+ token;
14
+ minStarsEmerging;
15
+ minStarsTrending;
16
+ aborted = false;
17
+ constructor(config) {
18
+ this.token = config.githubToken;
19
+ this.minStarsEmerging = config.minStarsEmerging;
20
+ this.minStarsTrending = config.minStarsTrending;
21
+ }
22
+ abort() { this.aborted = true; }
23
+ reset() { this.aborted = false; }
24
+ /** Fetch emerging repos: created in last 7 days with stars > threshold. */
25
+ async collectEmerging() {
26
+ const sevenDaysAgo = new Date(Date.now() - 7 * 86_400_000).toISOString().split('T')[0];
27
+ const query = `created:>${sevenDaysAgo} stars:>${this.minStarsEmerging}`;
28
+ return this.searchAll(query, 300);
29
+ }
30
+ /** Fetch trending repos: pushed in last 3 days with stars > threshold, per language. */
31
+ async collectTrending() {
32
+ const threeDaysAgo = new Date(Date.now() - 3 * 86_400_000).toISOString().split('T')[0];
33
+ const all = [];
34
+ const seen = new Set();
35
+ for (const lang of TRENDING_LANGUAGES) {
36
+ if (this.aborted)
37
+ break;
38
+ const query = `pushed:>${threeDaysAgo} stars:>${this.minStarsTrending} language:${lang}`;
39
+ const repos = await this.search(query, 1, 30);
40
+ for (const r of repos) {
41
+ if (!seen.has(r.id)) {
42
+ seen.add(r.id);
43
+ all.push(r);
44
+ }
45
+ }
46
+ // Delay between language searches to respect rate limits
47
+ await sleep(1200);
48
+ }
49
+ return all;
50
+ }
51
+ /** Search with pagination up to maxResults. */
52
+ async searchAll(query, maxResults) {
53
+ const all = [];
54
+ const perPage = 100;
55
+ const maxPages = Math.ceil(maxResults / perPage);
56
+ for (let page = 1; page <= maxPages; page++) {
57
+ if (this.aborted)
58
+ break;
59
+ const repos = await this.search(query, page, perPage);
60
+ all.push(...repos);
61
+ if (repos.length < perPage)
62
+ break;
63
+ await sleep(1500);
64
+ }
65
+ return all;
66
+ }
67
+ /** Single search API call. */
68
+ async search(query, page, perPage) {
69
+ const url = `https://api.github.com/search/repositories?q=${encodeURIComponent(query)}&sort=stars&order=desc&per_page=${perPage}&page=${page}`;
70
+ const headers = {
71
+ 'Accept': 'application/vnd.github+json',
72
+ 'User-Agent': 'brain-ecosystem-scanner',
73
+ };
74
+ if (this.token) {
75
+ headers['Authorization'] = `Bearer ${this.token}`;
76
+ }
77
+ try {
78
+ const res = await fetch(url, { headers, signal: this.aborted ? AbortSignal.abort() : undefined });
79
+ if (res.status === 403 || res.status === 429) {
80
+ const reset = res.headers.get('x-ratelimit-reset');
81
+ const waitMs = reset ? (Number(reset) * 1000 - Date.now()) : 60_000;
82
+ log.warn(`[github-collector] Rate limited, waiting ${Math.ceil(waitMs / 1000)}s`);
83
+ await sleep(Math.min(waitMs, 120_000));
84
+ return this.search(query, page, perPage);
85
+ }
86
+ if (!res.ok) {
87
+ log.error(`[github-collector] Search failed: ${res.status} ${res.statusText}`);
88
+ return [];
89
+ }
90
+ const data = await res.json();
91
+ return data.items ?? [];
92
+ }
93
+ catch (err) {
94
+ if (this.aborted)
95
+ return [];
96
+ log.error(`[github-collector] Error: ${err.message}`);
97
+ return [];
98
+ }
99
+ }
100
+ }
101
+ function sleep(ms) {
102
+ return new Promise(resolve => setTimeout(resolve, ms));
103
+ }
104
+ //# sourceMappingURL=github-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"github-collector.js","sourceRoot":"","sources":["../../src/scanner/github-collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { HnHit } from './types.js';
2
+ /**
3
+ * Collect GitHub-related posts from HackerNews via Algolia API.
4
+ * Free, no auth required, generous rate limits.
5
+ */
6
+ export declare class HnCollector {
7
+ private aborted;
8
+ abort(): void;
9
+ reset(): void;
10
+ /** Search HN for GitHub repos on frontpage (last 24h). */
11
+ collectFrontpage(): Promise<HnHit[]>;
12
+ /** Cross-reference: search HN for a specific repo name. */
13
+ searchRepo(repoFullName: string): Promise<HnHit[]>;
14
+ /** Batch cross-reference: search HN for multiple repos. */
15
+ crossReference(repoNames: string[]): Promise<Map<string, HnHit[]>>;
16
+ private fetch;
17
+ }
@@ -0,0 +1,58 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ const log = getLogger();
3
+ /**
4
+ * Collect GitHub-related posts from HackerNews via Algolia API.
5
+ * Free, no auth required, generous rate limits.
6
+ */
7
+ export class HnCollector {
8
+ aborted = false;
9
+ abort() { this.aborted = true; }
10
+ reset() { this.aborted = false; }
11
+ /** Search HN for GitHub repos on frontpage (last 24h). */
12
+ async collectFrontpage() {
13
+ const oneDayAgo = Math.floor((Date.now() - 86_400_000) / 1000);
14
+ const url = `https://hn.algolia.com/api/v1/search?query=github.com&tags=story&numericFilters=created_at_i>${oneDayAgo}&hitsPerPage=100`;
15
+ return this.fetch(url);
16
+ }
17
+ /** Cross-reference: search HN for a specific repo name. */
18
+ async searchRepo(repoFullName) {
19
+ const url = `https://hn.algolia.com/api/v1/search?query=${encodeURIComponent(repoFullName)}&tags=story&hitsPerPage=20`;
20
+ return this.fetch(url);
21
+ }
22
+ /** Batch cross-reference: search HN for multiple repos. */
23
+ async crossReference(repoNames) {
24
+ const results = new Map();
25
+ for (const name of repoNames) {
26
+ if (this.aborted)
27
+ break;
28
+ const hits = await this.searchRepo(name);
29
+ if (hits.length > 0) {
30
+ results.set(name, hits);
31
+ }
32
+ // Be polite to Algolia API
33
+ await new Promise(r => setTimeout(r, 200));
34
+ }
35
+ return results;
36
+ }
37
+ async fetch(url) {
38
+ try {
39
+ const res = await globalThis.fetch(url, {
40
+ headers: { 'User-Agent': 'brain-ecosystem-scanner' },
41
+ signal: this.aborted ? AbortSignal.abort() : undefined,
42
+ });
43
+ if (!res.ok) {
44
+ log.error(`[hn-collector] Fetch failed: ${res.status} ${res.statusText}`);
45
+ return [];
46
+ }
47
+ const data = await res.json();
48
+ return data.hits ?? [];
49
+ }
50
+ catch (err) {
51
+ if (this.aborted)
52
+ return [];
53
+ log.error(`[hn-collector] Error: ${err.message}`);
54
+ return [];
55
+ }
56
+ }
57
+ }
58
+ //# sourceMappingURL=hn-collector.js.map