@trading-boy/core 0.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 (79) hide show
  1. package/README.md +8 -0
  2. package/dist/.gitkeep +0 -0
  3. package/dist/config/env.d.ts +102 -0
  4. package/dist/config/env.d.ts.map +1 -0
  5. package/dist/config/env.js +178 -0
  6. package/dist/config/env.js.map +1 -0
  7. package/dist/config/index.d.ts +2 -0
  8. package/dist/config/index.d.ts.map +1 -0
  9. package/dist/config/index.js +2 -0
  10. package/dist/config/index.js.map +1 -0
  11. package/dist/constants/index.d.ts +49 -0
  12. package/dist/constants/index.d.ts.map +1 -0
  13. package/dist/constants/index.js +63 -0
  14. package/dist/constants/index.js.map +1 -0
  15. package/dist/crypto.d.ts +47 -0
  16. package/dist/crypto.d.ts.map +1 -0
  17. package/dist/crypto.js +56 -0
  18. package/dist/crypto.js.map +1 -0
  19. package/dist/errors/index.d.ts +25 -0
  20. package/dist/errors/index.d.ts.map +1 -0
  21. package/dist/errors/index.js +50 -0
  22. package/dist/errors/index.js.map +1 -0
  23. package/dist/index.d.ts +13 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +13 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/llm/client.d.ts +38 -0
  28. package/dist/llm/client.d.ts.map +1 -0
  29. package/dist/llm/client.js +194 -0
  30. package/dist/llm/client.js.map +1 -0
  31. package/dist/llm/config.d.ts +12 -0
  32. package/dist/llm/config.d.ts.map +1 -0
  33. package/dist/llm/config.js +47 -0
  34. package/dist/llm/config.js.map +1 -0
  35. package/dist/llm/index.d.ts +5 -0
  36. package/dist/llm/index.d.ts.map +1 -0
  37. package/dist/llm/index.js +4 -0
  38. package/dist/llm/index.js.map +1 -0
  39. package/dist/llm/structured-output.d.ts +31 -0
  40. package/dist/llm/structured-output.d.ts.map +1 -0
  41. package/dist/llm/structured-output.js +69 -0
  42. package/dist/llm/structured-output.js.map +1 -0
  43. package/dist/llm/types.d.ts +39 -0
  44. package/dist/llm/types.d.ts.map +1 -0
  45. package/dist/llm/types.js +6 -0
  46. package/dist/llm/types.js.map +1 -0
  47. package/dist/logging/index.d.ts +2 -0
  48. package/dist/logging/index.d.ts.map +1 -0
  49. package/dist/logging/index.js +2 -0
  50. package/dist/logging/index.js.map +1 -0
  51. package/dist/logging/logger.d.ts +7 -0
  52. package/dist/logging/logger.d.ts.map +1 -0
  53. package/dist/logging/logger.js +66 -0
  54. package/dist/logging/logger.js.map +1 -0
  55. package/dist/types/context-package.d.ts +100 -0
  56. package/dist/types/context-package.d.ts.map +1 -0
  57. package/dist/types/context-package.js +2 -0
  58. package/dist/types/context-package.js.map +1 -0
  59. package/dist/types/daily-summary.d.ts +212 -0
  60. package/dist/types/daily-summary.d.ts.map +1 -0
  61. package/dist/types/daily-summary.js +6 -0
  62. package/dist/types/daily-summary.js.map +1 -0
  63. package/dist/types/decision-traces.d.ts +123 -0
  64. package/dist/types/decision-traces.d.ts.map +1 -0
  65. package/dist/types/decision-traces.js +2 -0
  66. package/dist/types/decision-traces.js.map +1 -0
  67. package/dist/types/enums.d.ts +207 -0
  68. package/dist/types/enums.d.ts.map +1 -0
  69. package/dist/types/enums.js +247 -0
  70. package/dist/types/enums.js.map +1 -0
  71. package/dist/types/graph-edges.d.ts +127 -0
  72. package/dist/types/graph-edges.d.ts.map +1 -0
  73. package/dist/types/graph-edges.js +3 -0
  74. package/dist/types/graph-edges.js.map +1 -0
  75. package/dist/types/graph-nodes.d.ts +79 -0
  76. package/dist/types/graph-nodes.d.ts.map +1 -0
  77. package/dist/types/graph-nodes.js +2 -0
  78. package/dist/types/graph-nodes.js.map +1 -0
  79. package/package.json +31 -0
@@ -0,0 +1,100 @@
1
+ import type { Event } from './graph-nodes.js';
2
+ import { MarketRegime, Materiality, SentimentTrend, SignalType, Trend } from './enums.js';
3
+ export interface TokenSummary {
4
+ symbol: string;
5
+ name: string;
6
+ chains: string[];
7
+ narrativeTags: string[];
8
+ }
9
+ export interface MarketData {
10
+ price: number;
11
+ priceChange24h: number;
12
+ volume24h: number;
13
+ marketCap: number;
14
+ fundingRate: number | null;
15
+ openInterest: number | null;
16
+ openInterestChange24h: number | null;
17
+ }
18
+ export interface OnchainData {
19
+ mvrvZscore: number | null;
20
+ sopr: number | null;
21
+ exchangeNetflow24h: number;
22
+ whaleTransactions24h: number;
23
+ activeAddressesTrend: Trend;
24
+ }
25
+ export interface DependencyNode {
26
+ name: string;
27
+ type: string;
28
+ criticality: number;
29
+ children: DependencyNode[];
30
+ }
31
+ export interface DefiRiskProfile {
32
+ dependencyChain: DependencyNode[];
33
+ concentrationRisks: string[];
34
+ protocolTvlTrend: string;
35
+ riskScore: number;
36
+ }
37
+ export interface UnlockPressure {
38
+ nextUnlockDate: string | null;
39
+ nextUnlockPct: number | null;
40
+ recipientType: string | null;
41
+ materiality: Materiality;
42
+ }
43
+ export interface Catalysts {
44
+ upcomingEvents: Event[];
45
+ unlockPressure: UnlockPressure;
46
+ }
47
+ export interface NarrativeScore {
48
+ narrative: string;
49
+ membership: number;
50
+ momentum: number;
51
+ status: string;
52
+ }
53
+ export interface SocialContext {
54
+ narrativeMembership: NarrativeScore[];
55
+ sentiment24h: number;
56
+ sentimentTrend: SentimentTrend;
57
+ mindshareRank: number | null;
58
+ notableMentions: string[];
59
+ }
60
+ export interface DetectedSignal {
61
+ type: SignalType;
62
+ confidence: number;
63
+ description: string;
64
+ }
65
+ export interface Synthesis {
66
+ regime: MarketRegime;
67
+ signalConfluence: string;
68
+ detectedSignals: DetectedSignal[];
69
+ keyRisks: string[];
70
+ keyOpportunities: string[];
71
+ }
72
+ export interface ContextMeta {
73
+ assembledAt: string;
74
+ dataFreshness: Record<string, string | null>;
75
+ missingLayers: string[];
76
+ cached: boolean;
77
+ cacheTtlMs: number;
78
+ }
79
+ export interface ContextPackage {
80
+ token: TokenSummary;
81
+ timestamp: string;
82
+ market: MarketData;
83
+ onchain: OnchainData;
84
+ defiRisk: DefiRiskProfile;
85
+ catalysts: Catalysts;
86
+ social: SocialContext;
87
+ synthesis: Synthesis;
88
+ }
89
+ export interface AssembledContextPackage {
90
+ token: TokenSummary;
91
+ timestamp: string;
92
+ market: MarketData | null;
93
+ onchain: OnchainData | null;
94
+ defiRisk: DefiRiskProfile | null;
95
+ catalysts: Catalysts | null;
96
+ social: SocialContext | null;
97
+ synthesis: Synthesis | null;
98
+ _meta: ContextMeta;
99
+ }
100
+ //# sourceMappingURL=context-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-package.d.ts","sourceRoot":"","sources":["../../src/types/context-package.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=context-package.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-package.js","sourceRoot":"","sources":["../../src/types/context-package.ts"],"names":[],"mappings":""}
@@ -0,0 +1,212 @@
1
+ import type { SetupType, EmotionalTag, MarketRegime, BehavioralFlag, TraumaState } from './enums.js';
2
+ /** A single trade's summary for the daily report. */
3
+ export interface TradeSummary {
4
+ /** DecisionEvent id */
5
+ decisionId: string;
6
+ tokenSymbol: string;
7
+ direction: 'LONG' | 'SHORT';
8
+ setupType: SetupType | null;
9
+ thesis: string | null;
10
+ emotionalTag: EmotionalTag;
11
+ confidence: number;
12
+ entryPrice: number;
13
+ exitPrice: number | null;
14
+ sizeUsd: number;
15
+ /** null if trade is still open */
16
+ pnlUsd: number | null;
17
+ pnlPercent: number | null;
18
+ holdDurationMs: number | null;
19
+ maxFavorableExcursion: number | null;
20
+ maxAdverseExcursion: number | null;
21
+ behavioralFlags: BehavioralFlag[];
22
+ /** ISO timestamp of the trade */
23
+ eventTime: string;
24
+ /** Whether this trade is still open (entry without matching exit) */
25
+ isOpen: boolean;
26
+ }
27
+ /** Win rate and PnL stats for a grouping (overall, by setup, by token). */
28
+ export interface PerformanceSnapshot {
29
+ totalTrades: number;
30
+ wins: number;
31
+ losses: number;
32
+ winRate: number;
33
+ totalPnlUsd: number;
34
+ avgPnlPercent: number;
35
+ bestTradeUsd: number | null;
36
+ worstTradeUsd: number | null;
37
+ }
38
+ export type DayGrade = 'A+' | 'A' | 'B' | 'C' | 'D' | 'F';
39
+ export interface DayGradeResult {
40
+ grade: DayGrade;
41
+ score: number;
42
+ reason: string;
43
+ components: {
44
+ commitmentAdherence: number;
45
+ behavioralCleanliness: number;
46
+ documentationQuality: number;
47
+ calibrationAlignment: number;
48
+ };
49
+ }
50
+ /** An extracted lesson from the day's trading. */
51
+ export interface TradingLesson {
52
+ type: 'win_pattern' | 'loss_pattern' | 'behavioral' | 'regime' | 'general' | 'tilt_cascade' | 'revenge_trade' | 'fomo_entry' | 'commitment_violation' | 'edge_confirmed' | 'time_of_day' | 'confidence_inverted' | 'clean_day';
53
+ description: string;
54
+ priority: number;
55
+ }
56
+ export type TiltmeterColor = 'GREEN' | 'YELLOW' | 'RED';
57
+ export interface BehavioralCheck {
58
+ disciplineScore: number;
59
+ tiltmeter: TiltmeterColor;
60
+ patterns: {
61
+ pattern: string;
62
+ confidence: number;
63
+ description: string;
64
+ }[];
65
+ commitmentScorecard: {
66
+ honored: number;
67
+ violated: number;
68
+ pending: number;
69
+ honorRateToday: number;
70
+ honorRate30d: number;
71
+ };
72
+ violatedCommitments: {
73
+ description: string;
74
+ token: string;
75
+ }[];
76
+ traumaState: TraumaState;
77
+ }
78
+ export interface TomorrowsWatch {
79
+ catalysts: {
80
+ title: string;
81
+ token: string;
82
+ date: string;
83
+ severity: string;
84
+ }[];
85
+ openPositions: {
86
+ token: string;
87
+ direction: 'LONG' | 'SHORT';
88
+ entryPrice: number;
89
+ currentPrice: number | null;
90
+ unrealizedPnl: number | null;
91
+ unrealizedPnlPct: number | null;
92
+ commitments: string[];
93
+ }[];
94
+ unlockWatch: {
95
+ token: string;
96
+ pctUnlock: number;
97
+ date: string;
98
+ materiality: string;
99
+ }[];
100
+ }
101
+ export interface RollingStats {
102
+ period7d: PerformanceSnapshot;
103
+ period30d: PerformanceSnapshot;
104
+ winRateTrend: 'IMPROVING' | 'DECLINING' | 'STABLE';
105
+ avgPnlTrend: 'IMPROVING' | 'DECLINING' | 'STABLE';
106
+ currentStreak: {
107
+ type: 'wins' | 'losses';
108
+ count: number;
109
+ };
110
+ longestWinStreak30d: number;
111
+ longestLossStreak30d: number;
112
+ confirmedEdges: {
113
+ setupType: string;
114
+ winRate: number;
115
+ baseRate: number;
116
+ zScore: number;
117
+ }[];
118
+ }
119
+ export interface MarketContextSection {
120
+ regime: MarketRegime | null;
121
+ regimeDescription: string;
122
+ signals: {
123
+ type: string;
124
+ confidence: number;
125
+ description: string;
126
+ }[];
127
+ narratives: {
128
+ name: string;
129
+ status: string;
130
+ momentum: number;
131
+ }[];
132
+ fundingRate: number | null;
133
+ fundingLabel: string;
134
+ oiChange24h: number | null;
135
+ exchangeNetflow: number | null;
136
+ netflowLabel: string;
137
+ }
138
+ export type DayGradeLetter = 'A' | 'B' | 'C' | 'D' | 'F';
139
+ export interface TiltmeterReading {
140
+ score: number;
141
+ label: string;
142
+ }
143
+ export interface CommitmentSummary {
144
+ honored: number;
145
+ violated: number;
146
+ pending: number;
147
+ honorRate: number;
148
+ thirtyDayHonorRate: number | null;
149
+ }
150
+ export interface CatalystEntry {
151
+ description: string;
152
+ tokenSymbol: string;
153
+ date: string;
154
+ severity: string;
155
+ detail: string | null;
156
+ }
157
+ export interface SignalEntry {
158
+ name: string;
159
+ confidence: number;
160
+ }
161
+ export interface NarrativeEntry {
162
+ name: string;
163
+ phase: string;
164
+ momentum: number;
165
+ }
166
+ export interface DailySummary {
167
+ /** ISO date string (YYYY-MM-DD) */
168
+ date: string;
169
+ traderId: string;
170
+ traderName: string;
171
+ marketRegime: MarketRegime | null;
172
+ /** All trade entries and exits from this day */
173
+ trades: TradeSummary[];
174
+ /** Trades that were closed today (have exit + PnL) */
175
+ closedTrades: TradeSummary[];
176
+ /** Trades opened today that are still open */
177
+ openTrades: TradeSummary[];
178
+ performance: {
179
+ overall: PerformanceSnapshot;
180
+ bySetupType: Record<string, PerformanceSnapshot>;
181
+ byToken: Record<string, PerformanceSnapshot>;
182
+ };
183
+ lessons: TradingLesson[];
184
+ /** Behavioral flags triggered today */
185
+ behavioralFlags: BehavioralFlag[];
186
+ /** Count of each flag type */
187
+ behavioralFlagCounts: Record<string, number>;
188
+ dayGrade: DayGradeResult | null;
189
+ marketContext: MarketContextSection | null;
190
+ behavioralCheck: BehavioralCheck | null;
191
+ lessonOfTheDay: TradingLesson | null;
192
+ tomorrowsWatch: TomorrowsWatch | null;
193
+ rollingStats: RollingStats | null;
194
+ generatedAt: string;
195
+ /** Whether this was a no-trade day */
196
+ noTradeDay: boolean;
197
+ /** Tiltmeter reading — behavioral score 0-100 */
198
+ tiltmeter?: TiltmeterReading;
199
+ /** Commitment summary for the day */
200
+ commitments?: CommitmentSummary;
201
+ /** Upcoming catalysts within the watch window */
202
+ catalysts?: CatalystEntry[];
203
+ /** Detected cross-layer signals */
204
+ signals?: SignalEntry[];
205
+ /** Active narratives */
206
+ narratives?: NarrativeEntry[];
207
+ /** Trauma state — only present if not NORMAL */
208
+ traumaState?: string;
209
+ /** Net P&L as percentage of portfolio */
210
+ netPnlPercent?: number;
211
+ }
212
+ //# sourceMappingURL=daily-summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-summary.d.ts","sourceRoot":"","sources":["../../src/types/daily-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ // ─── Daily Summary Types ───
2
+ //
3
+ // The DailySummary is the structured output of the daily summary generator.
4
+ // It's consumed by both Telegram (markdown) and email (HTML) delivery channels.
5
+ export {};
6
+ //# sourceMappingURL=daily-summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daily-summary.js","sourceRoot":"","sources":["../../src/types/daily-summary.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,EAAE;AACF,4EAA4E;AAC5E,gFAAgF"}
@@ -0,0 +1,123 @@
1
+ import { DecisionType, SetupType, ActorType, EmotionalTag, CommitmentType, CommitmentStatus, ThesisAccuracy, BehavioralFlag, PlanStatus, NotificationChannel } from './enums.js';
2
+ import type { BaseNode } from './graph-nodes.js';
3
+ export interface Trader extends BaseNode {
4
+ name: string;
5
+ walletAddresses: string[];
6
+ riskToleranceMax: number;
7
+ createdAt: Date;
8
+ }
9
+ export interface TraderPreferences {
10
+ timezone: string;
11
+ summaryChannel: NotificationChannel;
12
+ summaryTime: string;
13
+ telegramChatId: string | null;
14
+ email: string | null;
15
+ watchlistTokens: string[];
16
+ quietHoursStart: string | null;
17
+ quietHoursEnd: string | null;
18
+ }
19
+ export interface PreState {
20
+ portfolioValueUsd: number;
21
+ openPositions: number;
22
+ price: number;
23
+ fundingRate: number | null;
24
+ volume24h: number;
25
+ openInterest: number | null;
26
+ marketRegime: string;
27
+ }
28
+ export interface DecisionEvent extends BaseNode {
29
+ eventTime: Date;
30
+ ingestTime: Date;
31
+ decisionType: DecisionType;
32
+ actor: ActorType;
33
+ tokenSymbol: string;
34
+ tokenMint: string;
35
+ setupType: SetupType | null;
36
+ thesis: string | null;
37
+ triggers: string[];
38
+ emotionalTag: EmotionalTag;
39
+ confidence: number;
40
+ direction: 'LONG' | 'SHORT' | null;
41
+ entryPrice: number | null;
42
+ exitPrice: number | null;
43
+ size: number | null;
44
+ sizeUsd: number | null;
45
+ txHash: string | null;
46
+ preState: PreState;
47
+ pnlAbsolute: number | null;
48
+ pnlPercent: number | null;
49
+ thesisAccuracy: ThesisAccuracy;
50
+ holdDurationMs: number | null;
51
+ maxFavorableExcursion: number | null;
52
+ maxAdverseExcursion: number | null;
53
+ behavioralFlags: BehavioralFlag[];
54
+ linkedEntryId: string | null;
55
+ }
56
+ export interface Commitment extends BaseNode {
57
+ type: CommitmentType;
58
+ status: CommitmentStatus;
59
+ description: string;
60
+ triggerCondition: string;
61
+ triggerAsset: string;
62
+ triggerValue: number | null;
63
+ createdAt: Date;
64
+ triggeredAt: Date | null;
65
+ resolvedAt: Date | null;
66
+ }
67
+ export interface PreTradePlan {
68
+ id: string;
69
+ traderId: string;
70
+ tokenSymbol: string;
71
+ direction: 'LONG' | 'SHORT';
72
+ thesis: string;
73
+ setupType: SetupType;
74
+ entryTarget: number;
75
+ invalidationPrice: number;
76
+ takeProfitPrice: number;
77
+ riskPercent: number;
78
+ confidence: number;
79
+ emotionalTag: EmotionalTag;
80
+ riskRewardRatio: number;
81
+ kellySuggestion: number | null;
82
+ preState: PreState;
83
+ status: PlanStatus;
84
+ linkedDecisionId: string | null;
85
+ createdAt: Date;
86
+ }
87
+ export interface ActualVsPotential {
88
+ actualPnl: number;
89
+ potentialPnl: number;
90
+ managementCost: number;
91
+ managementScore: number;
92
+ }
93
+ export interface KellyRecommendation {
94
+ fullKelly: number;
95
+ fractionalKelly: number;
96
+ positionSizeUsd: number;
97
+ sampleSize: number;
98
+ confidenceNote: string;
99
+ }
100
+ export interface TradeOutcome {
101
+ entryId: string;
102
+ exitId: string;
103
+ tokenSymbol: string;
104
+ setupType: SetupType;
105
+ direction: 'LONG' | 'SHORT';
106
+ entryPrice: number;
107
+ exitPrice: number;
108
+ sizeUsd: number;
109
+ pnlAbsolute: number;
110
+ pnlPercent: number;
111
+ thesisAccuracy: ThesisAccuracy;
112
+ holdDurationMs: number;
113
+ maxFavorableExcursion: number;
114
+ maxAdverseExcursion: number;
115
+ emotionalTag: EmotionalTag;
116
+ behavioralFlags: BehavioralFlag[];
117
+ triggers: string[];
118
+ commitmentsHonored: number;
119
+ commitmentsViolated: number;
120
+ entryTime: Date;
121
+ exitTime: Date;
122
+ }
123
+ //# sourceMappingURL=decision-traces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-traces.d.ts","sourceRoot":"","sources":["../../src/types/decision-traces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=decision-traces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision-traces.js","sourceRoot":"","sources":["../../src/types/decision-traces.ts"],"names":[],"mappings":""}