@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.
- package/dist/api/server.js +10 -0
- package/dist/api/server.js.map +1 -1
- package/dist/codegen/code-generator.d.ts +42 -0
- package/dist/codegen/code-generator.js +225 -0
- package/dist/codegen/code-generator.js.map +1 -0
- package/dist/codegen/code-miner.d.ts +45 -0
- package/dist/codegen/code-miner.js +243 -0
- package/dist/codegen/code-miner.js.map +1 -0
- package/dist/codegen/context-builder.d.ts +15 -0
- package/dist/codegen/context-builder.js +137 -0
- package/dist/codegen/context-builder.js.map +1 -0
- package/dist/codegen/index.d.ts +5 -0
- package/dist/codegen/index.js +5 -0
- package/dist/codegen/index.js.map +1 -0
- package/dist/codegen/pattern-extractor.d.ts +25 -0
- package/dist/codegen/pattern-extractor.js +222 -0
- package/dist/codegen/pattern-extractor.js.map +1 -0
- package/dist/codegen/types.d.ts +127 -0
- package/dist/codegen/types.js +3 -0
- package/dist/codegen/types.js.map +1 -0
- package/dist/consciousness/consciousness-server.js +10 -0
- package/dist/consciousness/consciousness-server.js.map +1 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +12 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/http-server.js +10 -0
- package/dist/mcp/http-server.js.map +1 -1
- package/dist/prediction/types.d.ts +1 -1
- package/dist/research/adapters/index.d.ts +1 -0
- package/dist/research/adapters/index.js +1 -0
- package/dist/research/adapters/index.js.map +1 -1
- package/dist/research/adapters/scanner-adapter.d.ts +14 -0
- package/dist/research/adapters/scanner-adapter.js +209 -0
- package/dist/research/adapters/scanner-adapter.js.map +1 -0
- package/dist/research/data-miner.d.ts +3 -1
- package/dist/research/data-miner.js +79 -69
- package/dist/research/data-miner.js.map +1 -1
- package/dist/research/research-orchestrator.d.ts +13 -1
- package/dist/research/research-orchestrator.js +78 -2
- package/dist/research/research-orchestrator.js.map +1 -1
- package/dist/scanner/crypto-collector.d.ts +17 -0
- package/dist/scanner/crypto-collector.js +89 -0
- package/dist/scanner/crypto-collector.js.map +1 -0
- package/dist/scanner/github-collector.d.ts +22 -0
- package/dist/scanner/github-collector.js +104 -0
- package/dist/scanner/github-collector.js.map +1 -0
- package/dist/scanner/hn-collector.d.ts +17 -0
- package/dist/scanner/hn-collector.js +58 -0
- package/dist/scanner/hn-collector.js.map +1 -0
- package/dist/scanner/index.d.ts +6 -0
- package/dist/scanner/index.js +6 -0
- package/dist/scanner/index.js.map +1 -0
- package/dist/scanner/signal-scanner.d.ts +83 -0
- package/dist/scanner/signal-scanner.js +859 -0
- package/dist/scanner/signal-scanner.js.map +1 -0
- package/dist/scanner/signal-scorer.d.ts +31 -0
- package/dist/scanner/signal-scorer.js +205 -0
- package/dist/scanner/signal-scorer.js.map +1 -0
- package/dist/scanner/types.d.ts +170 -0
- package/dist/scanner/types.js +3 -0
- package/dist/scanner/types.js.map +1 -0
- 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":"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"}
|
|
@@ -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
|