@autonomaai/agent-core 1.0.2

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/base-agent.d.ts +112 -0
  2. package/dist/base-agent.d.ts.map +1 -0
  3. package/dist/base-agent.js +173 -0
  4. package/dist/base-agent.js.map +1 -0
  5. package/dist/core.d.ts +81 -0
  6. package/dist/core.d.ts.map +1 -0
  7. package/dist/core.js +633 -0
  8. package/dist/core.js.map +1 -0
  9. package/dist/error-handler.d.ts +78 -0
  10. package/dist/error-handler.d.ts.map +1 -0
  11. package/dist/error-handler.js +129 -0
  12. package/dist/error-handler.js.map +1 -0
  13. package/dist/factory.d.ts +60 -0
  14. package/dist/factory.d.ts.map +1 -0
  15. package/dist/factory.js +621 -0
  16. package/dist/factory.js.map +1 -0
  17. package/dist/index.d.ts +13 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +19 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/streaming.d.ts +24 -0
  22. package/dist/streaming.d.ts.map +1 -0
  23. package/dist/streaming.js +36 -0
  24. package/dist/streaming.js.map +1 -0
  25. package/dist/trading/formatters.d.ts +167 -0
  26. package/dist/trading/formatters.d.ts.map +1 -0
  27. package/dist/trading/formatters.js +271 -0
  28. package/dist/trading/formatters.js.map +1 -0
  29. package/dist/trading/index.d.ts +9 -0
  30. package/dist/trading/index.d.ts.map +1 -0
  31. package/dist/trading/index.js +10 -0
  32. package/dist/trading/index.js.map +1 -0
  33. package/dist/trading/types.d.ts +205 -0
  34. package/dist/trading/types.d.ts.map +1 -0
  35. package/dist/trading/types.js +7 -0
  36. package/dist/trading/types.js.map +1 -0
  37. package/dist/trading/utils.d.ts +120 -0
  38. package/dist/trading/utils.d.ts.map +1 -0
  39. package/dist/trading/utils.js +291 -0
  40. package/dist/trading/utils.js.map +1 -0
  41. package/dist/trading/validation.d.ts +40 -0
  42. package/dist/trading/validation.d.ts.map +1 -0
  43. package/dist/trading/validation.js +247 -0
  44. package/dist/trading/validation.js.map +1 -0
  45. package/dist/types.d.ts +282 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +21 -0
  48. package/dist/types.js.map +1 -0
  49. package/package.json +57 -0
  50. package/src/base-agent.ts +263 -0
  51. package/src/core.ts +792 -0
  52. package/src/error-handler.ts +166 -0
  53. package/src/factory.ts +687 -0
  54. package/src/global.d.ts +12 -0
  55. package/src/index.ts +24 -0
  56. package/src/streaming.ts +50 -0
  57. package/src/trading/formatters.ts +363 -0
  58. package/src/trading/index.ts +10 -0
  59. package/src/trading/types.ts +263 -0
  60. package/src/trading/utils.ts +355 -0
  61. package/src/trading/validation.ts +321 -0
  62. package/src/types.ts +402 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEtD,mCAAmC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,4BAA4B;AAC5B,cAAc,cAAc,CAAC;AAE7B,mBAAmB;AACnB,cAAc,YAAY,CAAC;AAE3B,oBAAoB;AACpB,cAAc,gBAAgB,CAAC;AAE/B,8BAA8B;AAC9B,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Lightweight streaming event store for agents.
3
+ * Agents publish partial responses so external subscribers can poll for streaming updates.
4
+ */
5
+ export type StreamingEventType = 'start' | 'progress' | 'done' | 'error';
6
+ export interface StreamingEvent {
7
+ sessionId: string;
8
+ type: StreamingEventType;
9
+ content: string;
10
+ timestamp: string;
11
+ metadata?: Record<string, any>;
12
+ }
13
+ declare class StreamingService {
14
+ private events;
15
+ private readonly maxEventsPerSession;
16
+ publish(sessionId: string, event: Omit<StreamingEvent, 'sessionId' | 'timestamp'> & {
17
+ timestamp?: string;
18
+ }): void;
19
+ consume(sessionId: string): StreamingEvent[];
20
+ clear(sessionId: string): void;
21
+ }
22
+ export declare const streamingService: StreamingService;
23
+ export {};
24
+ //# sourceMappingURL=streaming.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAAuC;IACrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAM;IAE1C,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,WAAW,GAAG,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAmBjH,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;IAM5C,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;CAG/B;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Lightweight streaming event store for agents.
3
+ * Agents publish partial responses so external subscribers can poll for streaming updates.
4
+ */
5
+ class StreamingService {
6
+ constructor() {
7
+ this.events = new Map();
8
+ this.maxEventsPerSession = 50;
9
+ }
10
+ publish(sessionId, event) {
11
+ const timestamp = event.timestamp || new Date().toISOString();
12
+ const payload = {
13
+ sessionId,
14
+ content: event.content,
15
+ type: event.type,
16
+ metadata: event.metadata,
17
+ timestamp
18
+ };
19
+ const existing = this.events.get(sessionId) || [];
20
+ existing.push(payload);
21
+ if (existing.length > this.maxEventsPerSession) {
22
+ existing.shift();
23
+ }
24
+ this.events.set(sessionId, existing);
25
+ }
26
+ consume(sessionId) {
27
+ const stored = this.events.get(sessionId) || [];
28
+ this.events.delete(sessionId);
29
+ return stored;
30
+ }
31
+ clear(sessionId) {
32
+ this.events.delete(sessionId);
33
+ }
34
+ }
35
+ export const streamingService = new StreamingService();
36
+ //# sourceMappingURL=streaming.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,gBAAgB;IAAtB;QACU,WAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;QACpC,wBAAmB,GAAG,EAAE,CAAC;IA8B5C,CAAC;IA5BC,OAAO,CAAC,SAAiB,EAAE,KAA+E;QACxG,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9D,MAAM,OAAO,GAAmB;YAC9B,SAAS;YACT,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,SAAS;SACV,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC/C,QAAQ,CAAC,KAAK,EAAE,CAAC;QACnB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,CAAC,SAAiB;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Trading Formatters for autonoma Agent Core
3
+ *
4
+ * Formatting utilities for displaying trading data in a consistent manner.
5
+ */
6
+ import { Order, Position, Portfolio, TokenPrice, YieldOpportunity } from './types.js';
7
+ /**
8
+ * Format currency amount with appropriate decimal places
9
+ */
10
+ export declare function formatCurrency(amount: number, currency?: string, decimals?: number): string;
11
+ /**
12
+ * Format cryptocurrency amount with appropriate precision
13
+ */
14
+ export declare function formatCrypto(amount: number, symbol: string, decimals?: number): string;
15
+ /**
16
+ * Format percentage with color coding
17
+ */
18
+ export declare function formatPercentage(value: number, decimals?: number, showSign?: boolean): {
19
+ text: string;
20
+ color: 'green' | 'red' | 'gray';
21
+ };
22
+ /**
23
+ * Format large numbers with appropriate units (K, M, B)
24
+ */
25
+ export declare function formatLargeNumber(value: number, decimals?: number): string;
26
+ /**
27
+ * Format date for trading displays
28
+ */
29
+ export declare function formatTradingDate(date: Date): string;
30
+ /**
31
+ * Format relative time (e.g., "2 minutes ago")
32
+ */
33
+ export declare function formatRelativeTime(date: Date): string;
34
+ /**
35
+ * Format duration in human readable format
36
+ */
37
+ export declare function formatDuration(milliseconds: number): string;
38
+ /**
39
+ * Format order for display
40
+ */
41
+ export declare function formatOrder(order: Order): {
42
+ id: string;
43
+ symbol: string;
44
+ side: string;
45
+ type: string;
46
+ amount: string;
47
+ price: string;
48
+ status: string;
49
+ filled: string;
50
+ time: string;
51
+ };
52
+ /**
53
+ * Format position for display
54
+ */
55
+ export declare function formatPosition(position: Position): {
56
+ symbol: string;
57
+ quantity: string;
58
+ avgPrice: string;
59
+ marketValue: string;
60
+ pnl: {
61
+ text: string;
62
+ color: 'green' | 'red' | 'gray';
63
+ };
64
+ change: {
65
+ text: string;
66
+ color: 'green' | 'red' | 'gray';
67
+ };
68
+ };
69
+ /**
70
+ * Format portfolio summary
71
+ */
72
+ export declare function formatPortfolioSummary(portfolio: Portfolio): {
73
+ totalValue: string;
74
+ cash: string;
75
+ invested: string;
76
+ dayPnL: {
77
+ text: string;
78
+ color: 'green' | 'red' | 'gray';
79
+ };
80
+ totalPnL: {
81
+ text: string;
82
+ color: 'green' | 'red' | 'gray';
83
+ };
84
+ lastUpdate: string;
85
+ };
86
+ /**
87
+ * Format token price for display
88
+ */
89
+ export declare function formatTokenPrice(price: TokenPrice): {
90
+ symbol: string;
91
+ price: string;
92
+ change: {
93
+ text: string;
94
+ color: 'green' | 'red' | 'gray';
95
+ };
96
+ volume: string;
97
+ marketCap: string;
98
+ lastUpdate: string;
99
+ };
100
+ /**
101
+ * Format yield opportunity for display
102
+ */
103
+ export declare function formatYieldOpportunity(opportunity: YieldOpportunity): {
104
+ protocol: string;
105
+ pool: string;
106
+ apy: {
107
+ text: string;
108
+ color: 'green' | 'red' | 'gray';
109
+ };
110
+ tvl: string;
111
+ risk: {
112
+ text: string;
113
+ color: 'green' | 'yellow' | 'red';
114
+ };
115
+ category: string;
116
+ blockchain: string;
117
+ minDeposit: string;
118
+ };
119
+ /**
120
+ * Format order status with color coding
121
+ */
122
+ export declare function formatOrderStatus(status: string): {
123
+ text: string;
124
+ color: 'green' | 'yellow' | 'red' | 'blue' | 'gray';
125
+ };
126
+ /**
127
+ * Format risk level with color coding
128
+ */
129
+ export declare function formatRiskLevel(risk: string): {
130
+ text: string;
131
+ color: 'green' | 'yellow' | 'red';
132
+ icon: string;
133
+ };
134
+ /**
135
+ * Format data for chart display
136
+ */
137
+ export declare function formatChartData(data: Array<{
138
+ timestamp: Date;
139
+ value: number;
140
+ }>, type: 'price' | 'percentage' | 'volume'): Array<{
141
+ x: string;
142
+ y: number;
143
+ formatted: string;
144
+ }>;
145
+ /**
146
+ * Format trading session summary
147
+ */
148
+ export declare function formatTradingSession(session: {
149
+ duration: number;
150
+ trades: number;
151
+ pnl: number;
152
+ winRate: number;
153
+ avgTradeSize: number;
154
+ }): {
155
+ duration: string;
156
+ trades: string;
157
+ pnl: {
158
+ text: string;
159
+ color: 'green' | 'red' | 'gray';
160
+ };
161
+ winRate: {
162
+ text: string;
163
+ color: 'green' | 'red' | 'gray';
164
+ };
165
+ avgTradeSize: string;
166
+ };
167
+ //# sourceMappingURL=formatters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/trading/formatters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAMtF;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAc,EACxB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAiBtF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,MAAU,EACpB,QAAQ,GAAE,OAAc,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;CAAE,CAUnD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAe7E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAQpD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAcrD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAU3D;AAMD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd,CAYA;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IACvD,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;CAC3D,CAYA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG;IAC5D,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1D,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC5D,UAAU,EAAE,MAAM,CAAC;CACpB,CAWA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB,CASA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,GAAG;IACrE,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IACvD,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAA;KAAE,CAAC;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB,CAiBA;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CACrD,CAWA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd,CASA;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,IAAI,EAAE,OAAO,GAAG,YAAY,GAAG,QAAQ,GACtC,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAQpD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IACvD,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAA;KAAE,CAAC;IAC3D,YAAY,EAAE,MAAM,CAAC;CACtB,CAQA"}
@@ -0,0 +1,271 @@
1
+ /**
2
+ * Trading Formatters for autonoma Agent Core
3
+ *
4
+ * Formatting utilities for displaying trading data in a consistent manner.
5
+ */
6
+ // =============================================================================
7
+ // Number Formatting
8
+ // =============================================================================
9
+ /**
10
+ * Format currency amount with appropriate decimal places
11
+ */
12
+ export function formatCurrency(amount, currency = 'USD', decimals) {
13
+ // Auto-determine decimal places based on amount
14
+ if (decimals === undefined) {
15
+ if (amount >= 1000)
16
+ decimals = 0;
17
+ else if (amount >= 1)
18
+ decimals = 2;
19
+ else if (amount >= 0.01)
20
+ decimals = 4;
21
+ else
22
+ decimals = 8;
23
+ }
24
+ return new Intl.NumberFormat('en-US', {
25
+ style: 'currency',
26
+ currency: currency,
27
+ minimumFractionDigits: decimals,
28
+ maximumFractionDigits: decimals
29
+ }).format(amount);
30
+ }
31
+ /**
32
+ * Format cryptocurrency amount with appropriate precision
33
+ */
34
+ export function formatCrypto(amount, symbol, decimals) {
35
+ if (decimals === undefined) {
36
+ // Common crypto decimal places
37
+ const cryptoDecimals = {
38
+ 'BTC': 8,
39
+ 'ETH': 6,
40
+ 'USDT': 2,
41
+ 'USDC': 2,
42
+ 'BNB': 4,
43
+ 'SOL': 4,
44
+ 'ADA': 6,
45
+ 'DOT': 4
46
+ };
47
+ decimals = cryptoDecimals[symbol.toUpperCase()] || 6;
48
+ }
49
+ return `${amount.toFixed(decimals)} ${symbol}`;
50
+ }
51
+ /**
52
+ * Format percentage with color coding
53
+ */
54
+ export function formatPercentage(value, decimals = 2, showSign = true) {
55
+ const sign = showSign && value >= 0 ? '+' : '';
56
+ const text = `${sign}${value.toFixed(decimals)}%`;
57
+ let color;
58
+ if (value > 0)
59
+ color = 'green';
60
+ else if (value < 0)
61
+ color = 'red';
62
+ else
63
+ color = 'gray';
64
+ return { text, color };
65
+ }
66
+ /**
67
+ * Format large numbers with appropriate units (K, M, B)
68
+ */
69
+ export function formatLargeNumber(value, decimals = 1) {
70
+ const units = [
71
+ { threshold: 1e12, suffix: 'T' },
72
+ { threshold: 1e9, suffix: 'B' },
73
+ { threshold: 1e6, suffix: 'M' },
74
+ { threshold: 1e3, suffix: 'K' }
75
+ ];
76
+ for (const unit of units) {
77
+ if (Math.abs(value) >= unit.threshold) {
78
+ return `${(value / unit.threshold).toFixed(decimals)}${unit.suffix}`;
79
+ }
80
+ }
81
+ return value.toFixed(decimals);
82
+ }
83
+ // =============================================================================
84
+ // Date & Time Formatting
85
+ // =============================================================================
86
+ /**
87
+ * Format date for trading displays
88
+ */
89
+ export function formatTradingDate(date) {
90
+ return new Intl.DateTimeFormat('en-US', {
91
+ month: 'short',
92
+ day: '2-digit',
93
+ hour: '2-digit',
94
+ minute: '2-digit',
95
+ hour12: false
96
+ }).format(date);
97
+ }
98
+ /**
99
+ * Format relative time (e.g., "2 minutes ago")
100
+ */
101
+ export function formatRelativeTime(date) {
102
+ const now = new Date();
103
+ const diffMs = now.getTime() - date.getTime();
104
+ const diffSeconds = Math.floor(diffMs / 1000);
105
+ const diffMinutes = Math.floor(diffSeconds / 60);
106
+ const diffHours = Math.floor(diffMinutes / 60);
107
+ const diffDays = Math.floor(diffHours / 24);
108
+ if (diffSeconds < 60)
109
+ return 'just now';
110
+ if (diffMinutes < 60)
111
+ return `${diffMinutes}m ago`;
112
+ if (diffHours < 24)
113
+ return `${diffHours}h ago`;
114
+ if (diffDays < 7)
115
+ return `${diffDays}d ago`;
116
+ return formatTradingDate(date);
117
+ }
118
+ /**
119
+ * Format duration in human readable format
120
+ */
121
+ export function formatDuration(milliseconds) {
122
+ const seconds = Math.floor(milliseconds / 1000);
123
+ const minutes = Math.floor(seconds / 60);
124
+ const hours = Math.floor(minutes / 60);
125
+ const days = Math.floor(hours / 24);
126
+ if (days > 0)
127
+ return `${days}d ${hours % 24}h`;
128
+ if (hours > 0)
129
+ return `${hours}h ${minutes % 60}m`;
130
+ if (minutes > 0)
131
+ return `${minutes}m ${seconds % 60}s`;
132
+ return `${seconds}s`;
133
+ }
134
+ // =============================================================================
135
+ // Trading Object Formatting
136
+ // =============================================================================
137
+ /**
138
+ * Format order for display
139
+ */
140
+ export function formatOrder(order) {
141
+ return {
142
+ id: order.id.slice(0, 8),
143
+ symbol: order.symbol,
144
+ side: order.side.toUpperCase(),
145
+ type: order.type.toUpperCase(),
146
+ amount: formatCrypto(order.quantity, order.symbol.split('/')[0] ?? ''),
147
+ price: order.price ? formatCurrency(order.price) : 'Market',
148
+ status: order.status.toUpperCase(),
149
+ filled: `${((order.filledQuantity / order.quantity) * 100).toFixed(1)}%`,
150
+ time: formatRelativeTime(order.createdAt)
151
+ };
152
+ }
153
+ /**
154
+ * Format position for display
155
+ */
156
+ export function formatPosition(position) {
157
+ const currentPrice = position.marketValue / position.quantity;
158
+ const change = ((currentPrice - position.averagePrice) / position.averagePrice) * 100;
159
+ return {
160
+ symbol: position.symbol,
161
+ quantity: formatCrypto(position.quantity, position.symbol.split('/')[0] ?? ''),
162
+ avgPrice: formatCurrency(position.averagePrice),
163
+ marketValue: formatCurrency(position.marketValue),
164
+ pnl: formatPercentage(position.unrealizedPnL),
165
+ change: formatPercentage(change)
166
+ };
167
+ }
168
+ /**
169
+ * Format portfolio summary
170
+ */
171
+ export function formatPortfolioSummary(portfolio) {
172
+ const investedValue = portfolio.totalValue - portfolio.cash;
173
+ return {
174
+ totalValue: formatCurrency(portfolio.totalValue),
175
+ cash: formatCurrency(portfolio.cash),
176
+ invested: formatCurrency(investedValue),
177
+ dayPnL: formatPercentage(portfolio.dayPnL),
178
+ totalPnL: formatPercentage(portfolio.totalPnL),
179
+ lastUpdate: formatRelativeTime(portfolio.lastUpdate)
180
+ };
181
+ }
182
+ /**
183
+ * Format token price for display
184
+ */
185
+ export function formatTokenPrice(price) {
186
+ return {
187
+ symbol: price.symbol,
188
+ price: formatCurrency(price.price),
189
+ change: formatPercentage(price.change24h),
190
+ volume: formatLargeNumber(price.volume24h),
191
+ marketCap: price.marketCap ? formatLargeNumber(price.marketCap) : 'N/A',
192
+ lastUpdate: formatRelativeTime(price.timestamp)
193
+ };
194
+ }
195
+ /**
196
+ * Format yield opportunity for display
197
+ */
198
+ export function formatYieldOpportunity(opportunity) {
199
+ const riskColors = {
200
+ low: 'green',
201
+ medium: 'yellow',
202
+ high: 'red'
203
+ };
204
+ return {
205
+ protocol: opportunity.protocol,
206
+ pool: opportunity.pool,
207
+ apy: { text: `${opportunity.apy.toFixed(2)}%`, color: 'green' },
208
+ tvl: formatLargeNumber(opportunity.tvl),
209
+ risk: { text: opportunity.risk.toUpperCase(), color: riskColors[opportunity.risk] },
210
+ category: opportunity.category.charAt(0).toUpperCase() + opportunity.category.slice(1),
211
+ blockchain: opportunity.blockchain,
212
+ minDeposit: opportunity.minimumDeposit ? formatCurrency(opportunity.minimumDeposit) : 'No minimum'
213
+ };
214
+ }
215
+ // =============================================================================
216
+ // Status & Badge Formatting
217
+ // =============================================================================
218
+ /**
219
+ * Format order status with color coding
220
+ */
221
+ export function formatOrderStatus(status) {
222
+ const statusMap = {
223
+ pending: { text: 'PENDING', color: 'yellow' },
224
+ open: { text: 'OPEN', color: 'blue' },
225
+ filled: { text: 'FILLED', color: 'green' },
226
+ canceled: { text: 'CANCELED', color: 'gray' },
227
+ rejected: { text: 'REJECTED', color: 'red' }
228
+ };
229
+ return statusMap[status.toLowerCase()] ||
230
+ { text: status.toUpperCase(), color: 'gray' };
231
+ }
232
+ /**
233
+ * Format risk level with color coding
234
+ */
235
+ export function formatRiskLevel(risk) {
236
+ const riskMap = {
237
+ low: { text: 'LOW RISK', color: 'green', icon: '🟢' },
238
+ medium: { text: 'MEDIUM RISK', color: 'yellow', icon: '🟡' },
239
+ high: { text: 'HIGH RISK', color: 'red', icon: '🔴' }
240
+ };
241
+ return riskMap[risk.toLowerCase()] ||
242
+ { text: risk.toUpperCase(), color: 'yellow', icon: '⚪' };
243
+ }
244
+ // =============================================================================
245
+ // Chart Data Formatting
246
+ // =============================================================================
247
+ /**
248
+ * Format data for chart display
249
+ */
250
+ export function formatChartData(data, type) {
251
+ return data.map(point => ({
252
+ x: point.timestamp.toISOString(),
253
+ y: point.value,
254
+ formatted: type === 'price' ? formatCurrency(point.value) :
255
+ type === 'percentage' ? formatPercentage(point.value).text :
256
+ formatLargeNumber(point.value)
257
+ }));
258
+ }
259
+ /**
260
+ * Format trading session summary
261
+ */
262
+ export function formatTradingSession(session) {
263
+ return {
264
+ duration: formatDuration(session.duration),
265
+ trades: session.trades.toString(),
266
+ pnl: formatPercentage(session.pnl),
267
+ winRate: formatPercentage(session.winRate, 1),
268
+ avgTradeSize: formatCurrency(session.avgTradeSize)
269
+ };
270
+ }
271
+ //# sourceMappingURL=formatters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/trading/formatters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Trading Utilities for autonoma Agents
3
+ *
4
+ * Common trading functions, types, and utilities used across trading agents.
5
+ */
6
+ export * from './types.js';
7
+ export * from './utils.js';
8
+ export * from './validation.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/trading/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Trading Utilities for autonoma Agents
3
+ *
4
+ * Common trading functions, types, and utilities used across trading agents.
5
+ */
6
+ export * from './types.js';
7
+ export * from './utils.js';
8
+ export * from './validation.js';
9
+ // Formatters exports removed to avoid conflicts with utils
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/trading/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,4DAA4D"}