@123456btc/123456btc-cli 1.0.4 → 1.0.6

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 (147) hide show
  1. package/dist/api/auth.js +2 -2
  2. package/dist/api/auth.js.map +1 -1
  3. package/dist/api/client.d.ts +10 -6
  4. package/dist/api/client.d.ts.map +1 -1
  5. package/dist/api/client.js +62 -19
  6. package/dist/api/client.js.map +1 -1
  7. package/dist/api/client.test.js +24 -16
  8. package/dist/api/client.test.js.map +1 -1
  9. package/dist/api/signals.d.ts +3 -3
  10. package/dist/api/signals.d.ts.map +1 -1
  11. package/dist/api/signals.js +3 -3
  12. package/dist/api/signals.js.map +1 -1
  13. package/dist/api/strategy-stream.d.ts +4 -9
  14. package/dist/api/strategy-stream.d.ts.map +1 -1
  15. package/dist/api/strategy-stream.js +14 -13
  16. package/dist/api/strategy-stream.js.map +1 -1
  17. package/dist/api/strategy.d.ts +3 -1
  18. package/dist/api/strategy.d.ts.map +1 -1
  19. package/dist/api/strategy.js +3 -1
  20. package/dist/api/strategy.js.map +1 -1
  21. package/dist/api/token-manager.d.ts.map +1 -1
  22. package/dist/api/token-manager.js +4 -0
  23. package/dist/api/token-manager.js.map +1 -1
  24. package/dist/cli.js +5 -47
  25. package/dist/cli.js.map +1 -1
  26. package/dist/commands/auth.d.ts.map +1 -1
  27. package/dist/commands/auth.js +27 -93
  28. package/dist/commands/auth.js.map +1 -1
  29. package/dist/commands/exchange.d.ts +3 -0
  30. package/dist/commands/exchange.d.ts.map +1 -0
  31. package/dist/commands/exchange.js +141 -0
  32. package/dist/commands/exchange.js.map +1 -0
  33. package/dist/commands/gas.d.ts.map +1 -1
  34. package/dist/commands/gas.js +3 -2
  35. package/dist/commands/gas.js.map +1 -1
  36. package/dist/commands/health.d.ts.map +1 -1
  37. package/dist/commands/health.js +5 -3
  38. package/dist/commands/health.js.map +1 -1
  39. package/dist/commands/provider.d.ts.map +1 -1
  40. package/dist/commands/provider.js +17 -20
  41. package/dist/commands/provider.js.map +1 -1
  42. package/dist/commands/signals.d.ts.map +1 -1
  43. package/dist/commands/signals.js +10 -9
  44. package/dist/commands/signals.js.map +1 -1
  45. package/dist/commands/strategy.d.ts.map +1 -1
  46. package/dist/commands/strategy.js +184 -10
  47. package/dist/commands/strategy.js.map +1 -1
  48. package/dist/commands/tier.d.ts.map +1 -1
  49. package/dist/commands/tier.js +3 -2
  50. package/dist/commands/tier.js.map +1 -1
  51. package/dist/commands/vault.d.ts.map +1 -1
  52. package/dist/commands/vault.js +5 -3
  53. package/dist/commands/vault.js.map +1 -1
  54. package/dist/commands/wallet.d.ts.map +1 -1
  55. package/dist/commands/wallet.js +3 -2
  56. package/dist/commands/wallet.js.map +1 -1
  57. package/dist/config/strategy-exchange.d.ts +30 -0
  58. package/dist/config/strategy-exchange.d.ts.map +1 -0
  59. package/dist/config/strategy-exchange.js +130 -0
  60. package/dist/config/strategy-exchange.js.map +1 -0
  61. package/dist/config.d.ts +11 -4
  62. package/dist/config.d.ts.map +1 -1
  63. package/dist/config.js +28 -56
  64. package/dist/config.js.map +1 -1
  65. package/dist/exchange/index.d.ts +106 -0
  66. package/dist/exchange/index.d.ts.map +1 -0
  67. package/dist/exchange/index.js +43 -0
  68. package/dist/exchange/index.js.map +1 -0
  69. package/dist/exchange/v2/adapters/base.d.ts +130 -0
  70. package/dist/exchange/v2/adapters/base.d.ts.map +1 -0
  71. package/dist/exchange/v2/adapters/base.js +296 -0
  72. package/dist/exchange/v2/adapters/base.js.map +1 -0
  73. package/dist/exchange/v2/adapters/binance.d.ts +51 -0
  74. package/dist/exchange/v2/adapters/binance.d.ts.map +1 -0
  75. package/dist/exchange/v2/adapters/binance.js +549 -0
  76. package/dist/exchange/v2/adapters/binance.js.map +1 -0
  77. package/dist/exchange/v2/adapters/bitget.d.ts +43 -0
  78. package/dist/exchange/v2/adapters/bitget.d.ts.map +1 -0
  79. package/dist/exchange/v2/adapters/bitget.js +524 -0
  80. package/dist/exchange/v2/adapters/bitget.js.map +1 -0
  81. package/dist/exchange/v2/adapters/hyperliquid.d.ts +102 -0
  82. package/dist/exchange/v2/adapters/hyperliquid.d.ts.map +1 -0
  83. package/dist/exchange/v2/adapters/hyperliquid.js +536 -0
  84. package/dist/exchange/v2/adapters/hyperliquid.js.map +1 -0
  85. package/dist/exchange/v2/adapters/okx.d.ts +38 -0
  86. package/dist/exchange/v2/adapters/okx.d.ts.map +1 -0
  87. package/dist/exchange/v2/adapters/okx.js +437 -0
  88. package/dist/exchange/v2/adapters/okx.js.map +1 -0
  89. package/dist/exchange/v2/algorithms/index.d.ts +78 -0
  90. package/dist/exchange/v2/algorithms/index.d.ts.map +1 -0
  91. package/dist/exchange/v2/algorithms/index.js +441 -0
  92. package/dist/exchange/v2/algorithms/index.js.map +1 -0
  93. package/dist/exchange/v2/executor/circuit-breaker.d.ts +44 -0
  94. package/dist/exchange/v2/executor/circuit-breaker.d.ts.map +1 -0
  95. package/dist/exchange/v2/executor/circuit-breaker.js +90 -0
  96. package/dist/exchange/v2/executor/circuit-breaker.js.map +1 -0
  97. package/dist/exchange/v2/executor/core.d.ts +64 -0
  98. package/dist/exchange/v2/executor/core.d.ts.map +1 -0
  99. package/dist/exchange/v2/executor/core.js +458 -0
  100. package/dist/exchange/v2/executor/core.js.map +1 -0
  101. package/dist/exchange/v2/executor/risk.d.ts +29 -0
  102. package/dist/exchange/v2/executor/risk.d.ts.map +1 -0
  103. package/dist/exchange/v2/executor/risk.js +144 -0
  104. package/dist/exchange/v2/executor/risk.js.map +1 -0
  105. package/dist/exchange/v2/executor/state.d.ts +29 -0
  106. package/dist/exchange/v2/executor/state.d.ts.map +1 -0
  107. package/dist/exchange/v2/executor/state.js +171 -0
  108. package/dist/exchange/v2/executor/state.js.map +1 -0
  109. package/dist/exchange/v2/index.d.ts +50 -0
  110. package/dist/exchange/v2/index.d.ts.map +1 -0
  111. package/dist/exchange/v2/index.js +82 -0
  112. package/dist/exchange/v2/index.js.map +1 -0
  113. package/dist/exchange/v2/registry.d.ts +50 -0
  114. package/dist/exchange/v2/registry.d.ts.map +1 -0
  115. package/dist/exchange/v2/registry.js +101 -0
  116. package/dist/exchange/v2/registry.js.map +1 -0
  117. package/dist/exchange/v2/types.d.ts +413 -0
  118. package/dist/exchange/v2/types.d.ts.map +1 -0
  119. package/dist/exchange/v2/types.js +3 -0
  120. package/dist/exchange/v2/types.js.map +1 -0
  121. package/dist/index.d.ts +105 -23
  122. package/dist/index.d.ts.map +1 -1
  123. package/dist/index.js +40 -39
  124. package/dist/index.js.map +1 -1
  125. package/dist/session/store.d.ts +25 -0
  126. package/dist/session/store.d.ts.map +1 -0
  127. package/dist/session/store.js +108 -0
  128. package/dist/session/store.js.map +1 -0
  129. package/dist/session/store.test.d.ts +2 -0
  130. package/dist/session/store.test.d.ts.map +1 -0
  131. package/dist/session/store.test.js +118 -0
  132. package/dist/session/store.test.js.map +1 -0
  133. package/dist/types/financial.d.ts +14 -0
  134. package/dist/types/financial.d.ts.map +1 -0
  135. package/dist/types/financial.js +6 -0
  136. package/dist/types/financial.js.map +1 -0
  137. package/dist/utils/auth.d.ts +1 -1
  138. package/dist/utils/auth.d.ts.map +1 -1
  139. package/dist/utils/auth.js +5 -5
  140. package/dist/utils/auth.js.map +1 -1
  141. package/dist/vault/crypto.js +3 -3
  142. package/dist/vault/crypto.js.map +1 -1
  143. package/dist/vault/index.d.ts +28 -0
  144. package/dist/vault/index.d.ts.map +1 -1
  145. package/dist/vault/index.js +70 -0
  146. package/dist/vault/index.js.map +1 -1
  147. package/package.json +1 -1
package/dist/api/auth.js CHANGED
@@ -10,7 +10,7 @@ class AuthApi {
10
10
  * Verify API key and get identity tier
11
11
  */
12
12
  async verifyKey() {
13
- return this.client.get('/v1/auth/verify');
13
+ return this.client.get('/auth/verify');
14
14
  }
15
15
  /**
16
16
  * Refresh session token
@@ -22,7 +22,7 @@ class AuthApi {
22
22
  * Get current user info
23
23
  */
24
24
  async userInfo() {
25
- return this.client.get('/v1/auth/user');
25
+ return this.client.get('/auth/user');
26
26
  }
27
27
  }
28
28
  exports.AuthApi = AuthApi;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":";;;AAGA,MAAa,OAAO;IACV,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAe,iBAAiB,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QAMZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAKnB,eAAe,CAAC,CAAC;IACtB,CAAC;CACF;AAvCD,0BAuCC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/api/auth.ts"],"names":[],"mappings":";;;AAGA,MAAa,OAAO;IACV,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAe,cAAc,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CACrB,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QAMZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAKnB,YAAY,CAAC,CAAC;IACnB,CAAC;CACF;AAvCD,0BAuCC"}
@@ -1,17 +1,21 @@
1
1
  import { AxiosRequestConfig } from 'axios';
2
2
  import { ApiResponse } from '../types/api';
3
- import { TokenManager } from './token-manager';
3
+ import { SessionStore } from '../session/store';
4
4
  export declare class ApiClient {
5
5
  private client;
6
- private baseUrl;
7
- private apiKey;
8
- private tokenManager;
9
- constructor(baseUrl: string, apiKey: string);
6
+ private store;
7
+ constructor(store: SessionStore);
8
+ /**
9
+ * Resolve the auth token to send with each request.
10
+ * Priority:
11
+ * 1. If apiKey present → exchange for access token (cached in session.json)
12
+ * 2. If jwt present → use JWT directly
13
+ */
14
+ private resolveAuthToken;
10
15
  get<T>(endpoint: string, params?: Record<string, unknown>): Promise<ApiResponse<T>>;
11
16
  post<T>(endpoint: string, data?: unknown, config?: AxiosRequestConfig): Promise<ApiResponse<T>>;
12
17
  put<T>(endpoint: string, data?: unknown): Promise<ApiResponse<T>>;
13
18
  patch<T>(endpoint: string, data?: unknown): Promise<ApiResponse<T>>;
14
19
  delete<T>(endpoint: string): Promise<ApiResponse<T>>;
15
- getTokenManager(): TokenManager;
16
20
  }
17
21
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,WAAW,EAAY,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAe;gBAEvB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAyErC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBnF,IAAI,CAAC,CAAC,EACV,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBpB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBjE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBnE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgB1D,eAAe,IAAI,YAAY;CAGhC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAE,MAAM,OAAO,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,KAAK,CAAe;gBAEhB,KAAK,EAAE,YAAY;IAsF/B;;;;;OAKG;YACW,gBAAgB;IA4CxB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBnF,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgB/F,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBjE,KAAK,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAgBnE,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;CAe3D"}
@@ -5,16 +5,26 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ApiClient = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
- const token_manager_1 = require("./token-manager");
9
8
  class ApiClient {
10
9
  client;
11
- baseUrl;
12
- apiKey;
13
- tokenManager;
14
- constructor(baseUrl, apiKey) {
15
- this.baseUrl = baseUrl;
16
- this.apiKey = apiKey;
17
- this.tokenManager = new token_manager_1.TokenManager(baseUrl, apiKey);
10
+ store;
11
+ constructor(store) {
12
+ this.store = store;
13
+ const creds = store.getCredentials();
14
+ if (!creds) {
15
+ throw new Error('No credentials found. Run "123456btc-cli auth login" or "123456btc-cli auth wallet-login"');
16
+ }
17
+ // Normalize baseUrl: ensure /api suffix
18
+ let baseUrl = creds.baseUrl;
19
+ if (baseUrl.endsWith('/ext-api')) {
20
+ baseUrl = baseUrl.slice(0, -8);
21
+ }
22
+ if (baseUrl.endsWith('/')) {
23
+ baseUrl = baseUrl.slice(0, -1);
24
+ }
25
+ if (!baseUrl.endsWith('/api')) {
26
+ baseUrl = baseUrl + '/api';
27
+ }
18
28
  this.client = axios_1.default.create({
19
29
  baseURL: baseUrl,
20
30
  timeout: 30000,
@@ -22,26 +32,24 @@ class ApiClient {
22
32
  'Content-Type': 'application/json',
23
33
  },
24
34
  });
25
- // Request interceptor: inject access token
35
+ // Request interceptor: inject auth token
26
36
  this.client.interceptors.request.use(async (config) => {
27
- const token = await this.tokenManager.getAccessToken();
37
+ const token = await this.resolveAuthToken();
28
38
  config.headers['Authorization'] = `Bearer ${token}`;
29
39
  return config;
30
40
  });
31
- // Response interceptor: handle 401 by refreshing token and retrying once
41
+ // Response interceptor: handle 401 by clearing session and retrying once
32
42
  this.client.interceptors.response.use((response) => response, async (error) => {
33
43
  const originalRequest = error.config;
34
- // If 401 and we haven't retried yet
35
44
  if (error.response?.status === 401 && originalRequest && !originalRequest._retry) {
36
45
  originalRequest._retry = true;
37
46
  try {
38
- // Clear session and get fresh token
39
- this.tokenManager.clearSession();
40
- const token = await this.tokenManager.getAccessToken();
47
+ this.store.clearAccessToken();
48
+ const token = await this.resolveAuthToken();
41
49
  originalRequest.headers['Authorization'] = `Bearer ${token}`;
42
50
  return this.client(originalRequest);
43
51
  }
44
- catch (refreshError) {
52
+ catch {
45
53
  return {
46
54
  data: {
47
55
  success: false,
@@ -76,6 +84,44 @@ class ApiClient {
76
84
  };
77
85
  });
78
86
  }
87
+ /**
88
+ * Resolve the auth token to send with each request.
89
+ * Priority:
90
+ * 1. If apiKey present → exchange for access token (cached in session.json)
91
+ * 2. If jwt present → use JWT directly
92
+ */
93
+ async resolveAuthToken() {
94
+ const creds = this.store.getCredentials();
95
+ if (!creds) {
96
+ throw new Error('Not authenticated');
97
+ }
98
+ // API Key mode: exchange for short-lived access token
99
+ if (creds.apiKey) {
100
+ const cached = this.store.getAccessToken();
101
+ if (cached && cached.expiresAt > Date.now() + 5 * 60 * 1000) {
102
+ return cached.token;
103
+ }
104
+ const res = await axios_1.default.post(`${this.client.defaults.baseURL}/v1/auth/token`, {}, {
105
+ headers: { Authorization: `Bearer ${creds.apiKey}` },
106
+ timeout: 15000,
107
+ });
108
+ const data = res.data?.data || res.data;
109
+ if (!data?.access_token) {
110
+ throw new Error('Failed to exchange token: invalid response');
111
+ }
112
+ this.store.saveAccessToken({
113
+ token: data.access_token,
114
+ expiresAt: data.expires_at || Date.now() + 24 * 60 * 60 * 1000,
115
+ scopes: data.scopes || [],
116
+ });
117
+ return data.access_token;
118
+ }
119
+ // JWT mode: use directly
120
+ if (creds.jwt) {
121
+ return creds.jwt;
122
+ }
123
+ throw new Error('No valid authentication credentials');
124
+ }
79
125
  async get(endpoint, params) {
80
126
  try {
81
127
  const response = await this.client.get(endpoint, { params });
@@ -156,9 +202,6 @@ class ApiClient {
156
202
  };
157
203
  }
158
204
  }
159
- getTokenManager() {
160
- return this.tokenManager;
161
- }
162
205
  }
163
206
  exports.ApiClient = ApiClient;
164
207
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/api/client.ts"],"names":[],"mappings":"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"}
@@ -1,27 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_1 = require("./client");
4
+ const store_1 = require("../session/store");
5
+ // Mock SessionStore
6
+ jest.mock('../session/store', () => {
7
+ return {
8
+ SessionStore: jest.fn().mockImplementation(() => ({
9
+ getCredentials: jest.fn().mockReturnValue({
10
+ apiKey: 'sk-bbt-test123',
11
+ baseUrl: 'https://platform.123456btc.com',
12
+ environment: 'live',
13
+ savedAt: new Date().toISOString(),
14
+ }),
15
+ getAccessToken: jest.fn().mockReturnValue(null),
16
+ saveAccessToken: jest.fn(),
17
+ })),
18
+ };
19
+ });
4
20
  describe('ApiClient', () => {
5
21
  let client;
6
22
  beforeEach(() => {
7
- client = new client_1.ApiClient('https://api.test.com', 'sk_test_test123');
8
- });
9
- describe('constructor', () => {
10
- it('should create client with correct base url', () => {
11
- expect(client).toBeDefined();
12
- });
23
+ client = new client_1.ApiClient(new store_1.SessionStore());
13
24
  });
14
- describe('get', () => {
15
- it('should return success response on 200', async () => {
16
- const response = await client.get('/test');
17
- expect(response).toHaveProperty('success');
18
- });
25
+ it('should create client when credentials exist', () => {
26
+ expect(client).toBeDefined();
19
27
  });
20
- describe('post', () => {
21
- it('should return success response on 200', async () => {
22
- const response = await client.post('/test', { data: 'test' });
23
- expect(response).toHaveProperty('success');
24
- });
28
+ it('should throw when no credentials exist', () => {
29
+ store_1.SessionStore.mockImplementationOnce(() => ({
30
+ getCredentials: jest.fn().mockReturnValue(null),
31
+ }));
32
+ expect(() => new client_1.ApiClient(new store_1.SessionStore())).toThrow('No credentials found');
25
33
  });
26
34
  });
27
35
  //# sourceMappingURL=client.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/api/client.test.ts"],"names":[],"mappings":";;AAAA,qCAAqC;AAErC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,MAAiB,CAAC;IAEtB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,kBAAS,CAAC,sBAAsB,EAAE,iBAAiB,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;YACpD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE;QACnB,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE;QACpB,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/api/client.test.ts"],"names":[],"mappings":";;AAAA,qCAAqC;AACrC,4CAAgD;AAEhD,oBAAoB;AACpB,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,OAAO;QACL,YAAY,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC;gBACxC,MAAM,EAAE,gBAAgB;gBACxB,OAAO,EAAE,gCAAgC;gBACzC,WAAW,EAAE,MAAM;gBACnB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC;YACF,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAC/C,eAAe,EAAE,IAAI,CAAC,EAAE,EAAE;SAC3B,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,MAAiB,CAAC;IAEtB,UAAU,CAAC,GAAG,EAAE;QACd,MAAM,GAAG,IAAI,kBAAS,CAAC,IAAI,oBAAY,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC/C,oBAA0B,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC,CAAC;YACxD,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;SAChD,CAAC,CAAC,CAAC;QACJ,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,kBAAS,CAAC,IAAI,oBAAY,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -12,7 +12,7 @@ export interface Signal {
12
12
  reasoning: string;
13
13
  created_at: number;
14
14
  }
15
- export interface SignalAckResponse {
15
+ export interface SignalExecuteResponse {
16
16
  ok: boolean;
17
17
  bbt_charged: number;
18
18
  }
@@ -40,8 +40,8 @@ export declare class SignalsApi {
40
40
  total: number;
41
41
  }>>;
42
42
  /**
43
- * Acknowledge a signal (triggers per-signal BBT billing if applicable)
43
+ * Execute a signal (triggers per-signal BBT billing if applicable)
44
44
  */
45
- ack(signalId: string, action?: string, quantity?: number): Promise<ApiResponse<SignalAckResponse>>;
45
+ execute(signalId: string, action?: string, quantity?: number): Promise<ApiResponse<SignalExecuteResponse>>;
46
46
  }
47
47
  //# sourceMappingURL=signals.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/api/signals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9G,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,SAAS;IAI7B;;OAEG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI3G;;OAEG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI7I;;OAEG;IACG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;CAMzG"}
1
+ {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/api/signals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,eAAe,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9G,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,SAAS;IAI7B;;OAEG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI3G;;OAEG;IACG,OAAO,CAAC,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAI7I;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAMjH"}
@@ -19,15 +19,15 @@ class SignalsApi {
19
19
  return this.client.get('/signals/history', params);
20
20
  }
21
21
  /**
22
- * Acknowledge a signal (triggers per-signal BBT billing if applicable)
22
+ * Execute a signal (triggers per-signal BBT billing if applicable)
23
23
  */
24
- async ack(signalId, action, quantity) {
24
+ async execute(signalId, action, quantity) {
25
25
  const body = { signal_id: signalId };
26
26
  if (action)
27
27
  body.action = action;
28
28
  if (quantity !== undefined)
29
29
  body.quantity = quantity;
30
- return this.client.post('/signals/ack', body);
30
+ return this.client.post('/signals/execute', body);
31
31
  }
32
32
  }
33
33
  exports.SignalsApi = SignalsApi;
@@ -1 +1 @@
1
- {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/api/signals.ts"],"names":[],"mappings":";;;AAqBA,MAAa,UAAU;IACb,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAiC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAkE;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,QAAgB,EAAE,MAAe,EAAE,QAAiB;QAC5D,MAAM,IAAI,GAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC9D,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,IAAI,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAoB,cAAc,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AA9BD,gCA8BC"}
1
+ {"version":3,"file":"signals.js","sourceRoot":"","sources":["../../src/api/signals.ts"],"names":[],"mappings":";;;AAqBA,MAAa,UAAU;IACb,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,MAAiC;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAkE;QAC9E,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAuC,kBAAkB,EAAE,MAAM,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,QAAgB,EAAE,MAAe,EAAE,QAAiB;QAChE,MAAM,IAAI,GAA4B,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC9D,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACjC,IAAI,QAAQ,KAAK,SAAS;YAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAwB,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF;AA9BD,gCA8BC"}
@@ -32,18 +32,13 @@ export declare class StrategyStream {
32
32
  private signalHandler;
33
33
  private onErrorHandler;
34
34
  private onCloseHandler;
35
- private ackApi;
36
- private autoAck;
35
+ private executeHandler;
36
+ private autoExecute;
37
37
  private processedSignals;
38
38
  constructor(client: ApiClient, options?: {
39
- autoAck?: boolean;
39
+ autoExecute?: boolean;
40
40
  });
41
- setAckApi(ackApi: {
42
- ack: (signalId: string) => Promise<ApiResponse<{
43
- ok: boolean;
44
- bbt_charged: number;
45
- }>>;
46
- }): void;
41
+ setExecuteHandler(handler: (signal: StreamSignal) => Promise<void>): void;
47
42
  /**
48
43
  * 请求策略服务器地址并建立 WebSocket 连接
49
44
  */
@@ -1 +1 @@
1
- {"version":3,"file":"strategy-stream.d.ts","sourceRoot":"","sources":["../../src/api/strategy-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,MAAM,CAA0G;IACxH,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,gBAAgB,CAA0B;gBAEtC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE;IAK9D,SAAS,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC;YAAE,EAAE,EAAE,OAAO,CAAC;YAAC,WAAW,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAA;KAAE;IAI3G;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAuB/E,OAAO,CAAC,SAAS;IA4DjB,OAAO,CAAC,iBAAiB;IAWzB,QAAQ,CAAC,OAAO,EAAE,aAAa;IAI/B,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;IAIrC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI;IAI3B,UAAU;IAWV,WAAW,IAAI,OAAO;CAGvB"}
1
+ {"version":3,"file":"strategy-stream.d.ts","sourceRoot":"","sources":["../../src/api/strategy-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAI3C,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE3E,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,cAAc,CAA0D;IAChF,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,gBAAgB,CAA0B;gBAEtC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE;IAKlE,iBAAiB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC;IAIlE;;OAEG;IACG,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IAuB/E,OAAO,CAAC,SAAS;IA6DjB,OAAO,CAAC,iBAAiB;IAWzB,QAAQ,CAAC,OAAO,EAAE,aAAa;IAI/B,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;IAIrC,OAAO,CAAC,OAAO,EAAE,MAAM,IAAI;IAI3B,UAAU;IAWV,WAAW,IAAI,OAAO;CAGvB"}
@@ -12,15 +12,15 @@ class StrategyStream {
12
12
  signalHandler = () => { };
13
13
  onErrorHandler = () => { };
14
14
  onCloseHandler = () => { };
15
- ackApi = null;
16
- autoAck = true;
15
+ executeHandler = null;
16
+ autoExecute = true;
17
17
  processedSignals = new Set();
18
18
  constructor(client, options) {
19
19
  this.client = client;
20
- this.autoAck = options?.autoAck !== false;
20
+ this.autoExecute = options?.autoExecute !== false;
21
21
  }
22
- setAckApi(ackApi) {
23
- this.ackApi = ackApi;
22
+ setExecuteHandler(handler) {
23
+ this.executeHandler = handler;
24
24
  }
25
25
  /**
26
26
  * 请求策略服务器地址并建立 WebSocket 连接
@@ -66,14 +66,15 @@ class StrategyStream {
66
66
  }
67
67
  }
68
68
  signal = JSON.parse(rawData);
69
- if (signal.type === 'signal' && signal.id && this.autoAck && this.ackApi) {
70
- // 自动 ack(上报接收 + 扣费)
71
- try {
72
- await this.ackApi.ack(signal.id);
73
- }
74
- catch (e) {
75
- // ack 失败不影响信号处理
76
- console.warn(`[StrategyStream] Auto-ack failed for ${signal.id}:`, e);
69
+ if (signal.type === 'signal' && signal.id && this.autoExecute && this.executeHandler) {
70
+ if (!this.processedSignals.has(signal.id)) {
71
+ this.processedSignals.add(signal.id);
72
+ try {
73
+ await this.executeHandler(signal);
74
+ }
75
+ catch (e) {
76
+ console.warn(`[StrategyStream] Auto-execute failed for ${signal.id}:`, e);
77
+ }
77
78
  }
78
79
  }
79
80
  await this.signalHandler(signal);
@@ -1 +1 @@
1
- {"version":3,"file":"strategy-stream.js","sourceRoot":"","sources":["../../src/api/strategy-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy-stream.js","sourceRoot":"","sources":["../../src/api/strategy-stream.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export interface Strategy {
9
9
  asset_class?: string;
10
10
  exchange?: string;
11
11
  symbol_pattern?: string;
12
+ trading_pairs?: string[];
13
+ timeframes?: string[];
12
14
  pricing_model: string;
13
15
  price_per_day: number;
14
16
  price_per_signal: number;
@@ -66,7 +68,7 @@ export declare class StrategyApi {
66
68
  /**
67
69
  * Subscribe to a strategy
68
70
  */
69
- subscribe(id: string, billingModel?: string): Promise<ApiResponse<{
71
+ subscribe(id: string, billingModel?: string, exchangeConfigName?: string): Promise<ApiResponse<{
70
72
  subscription_id: string;
71
73
  status: string;
72
74
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/api/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,cAAe,SAAQ,QAAQ;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,SAAS;IAI7B;;OAEG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAIrF;;OAEG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAI3D;;OAEG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAMrH;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAIpE;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC;QAAE,aAAa,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC,CAAC;CAGjF"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../src/api/strategy.ts"],"names":[],"mappings":"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"}
@@ -21,10 +21,12 @@ class StrategyApi {
21
21
  /**
22
22
  * Subscribe to a strategy
23
23
  */
24
- async subscribe(id, billingModel) {
24
+ async subscribe(id, billingModel, exchangeConfigName) {
25
25
  const body = {};
26
26
  if (billingModel)
27
27
  body.billing_model = billingModel;
28
+ if (exchangeConfigName)
29
+ body.exchange_config_name = exchangeConfigName;
28
30
  return this.client.post(`/strategies/${id}/subscribe`, body);
29
31
  }
30
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/api/strategy.ts"],"names":[],"mappings":";;;AAgDA,MAAa,WAAW;IACd,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAMV;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAA8D,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAiB,eAAe,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,YAAqB;QAC/C,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QACpD,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAA8C,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAkB,eAAe,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAoC,gBAAgB,CAAC,CAAC;IAC9E,CAAC;CACF;AAjDD,kCAiDC"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/api/strategy.ts"],"names":[],"mappings":";;;AAkDA,MAAa,WAAW;IACd,MAAM,CAAY;IAE1B,YAAY,MAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,MAMV;QACC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAA8D,aAAa,EAAE,MAAM,CAAC,CAAC;IAC7G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAiB,eAAe,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,YAAqB,EAAE,kBAA2B;QAC5E,MAAM,IAAI,GAA4B,EAAE,CAAC;QACzC,IAAI,YAAY;YAAE,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QACpD,IAAI,kBAAkB;YAAE,IAAI,CAAC,oBAAoB,GAAG,kBAAkB,CAAC;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAA8C,eAAe,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5G,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAkB,eAAe,EAAE,YAAY,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAoC,gBAAgB,CAAC,CAAC;IAC9E,CAAC;CACF;AAlDD,kCAkDC"}
@@ -1 +1 @@
1
- {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../src/api/token-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM3C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAuBvC;;OAEG;YACW,aAAa;IAsB3B;;OAEG;YACW,YAAY;IAsB1B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB7B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IAanB,YAAY,IAAI,IAAI;IAWpB,SAAS,IAAI,MAAM,EAAE;CAGtB"}
1
+ {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../src/api/token-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkBH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAwB;gBAE3B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM3C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IA4BvC;;OAEG;YACW,aAAa;IAsB3B;;OAEG;YACW,YAAY;IAsB1B;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB7B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,WAAW;IAanB,YAAY,IAAI,IAAI;IAWpB,SAAS,IAAI,MAAM,EAAE;CAGtB"}
@@ -64,6 +64,10 @@ class TokenManager {
64
64
  * Get valid access token, auto-refresh if needed
65
65
  */
66
66
  async getAccessToken() {
67
+ // If apiKey is a JWT (direct auth for /api routes), use it directly
68
+ if (this.apiKey.startsWith('eyJ')) {
69
+ return this.apiKey;
70
+ }
67
71
  // Check cached session
68
72
  if (this.session && this.session.expiresAt > Date.now() + 5 * 60 * 1000) {
69
73
  return this.session.accessToken;
@@ -1 +1 @@
1
- {"version":3,"file":"token-manager.js","sourceRoot":"","sources":["../../src/api/token-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-manager.js","sourceRoot":"","sources":["../../src/api/token-manager.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -1,42 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
3
  Object.defineProperty(exports, "__esModule", { value: true });
37
4
  const commander_1 = require("commander");
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
5
+ const store_1 = require("./session/store");
40
6
  const auth_1 = require("./commands/auth");
41
7
  const strategy_1 = require("./commands/strategy");
42
8
  const wallet_1 = require("./commands/wallet");
@@ -46,8 +12,6 @@ const health_1 = require("./commands/health");
46
12
  const signals_1 = require("./commands/signals");
47
13
  const provider_1 = require("./commands/provider");
48
14
  const vault_1 = require("./commands/vault");
49
- const CREDENTIALS_FILE = path.join(process.env.HOME || process.env.USERPROFILE || '.', '.123456btc-cli', 'credentials.json');
50
- const SESSION_FILE = path.join(process.env.HOME || process.env.USERPROFILE || '.', '.123456btc-cli', 'session.json');
51
15
  const program = new commander_1.Command();
52
16
  // Global options
53
17
  program
@@ -65,16 +29,10 @@ program
65
29
  .command('logout')
66
30
  .description('Clear authentication (shortcut for auth logout)')
67
31
  .action(() => {
68
- let cleared = false;
69
- if (fs.existsSync(CREDENTIALS_FILE)) {
70
- fs.unlinkSync(CREDENTIALS_FILE);
71
- cleared = true;
72
- }
73
- if (fs.existsSync(SESSION_FILE)) {
74
- fs.unlinkSync(SESSION_FILE);
75
- cleared = true;
76
- }
77
- if (cleared) {
32
+ const store = new store_1.SessionStore();
33
+ const hadCreds = store.getCredentials() !== null;
34
+ store.clearAll();
35
+ if (hadCreds) {
78
36
  console.log('✓ Authentication cleared');
79
37
  }
80
38
  else {
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AACA,yCAAoC;AAEpC,2CAA+C;AAC/C,0CAAoD;AACpD,kDAA4D;AAC5D,8CAAwD;AACxD,gDAA0D;AAC1D,0CAAoD;AACpD,8CAAwD;AACxD,gDAA0D;AAC1D,kDAA4D;AAC5D,4CAAyD;AAEzD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,iBAAiB;AACjB,OAAO;KACJ,MAAM,CAAC,qBAAqB,EAAE,uCAAuC,CAAC;KACtE,MAAM,CAAC,sBAAsB,EAAE,cAAc,CAAC;KAC9C,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;AAE7C,UAAU;AACV,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,4BAA4B;AAC5B,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;AAE3B,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,KAAK,GAAG,IAAI,oBAAY,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI,CAAC;IACjD,KAAK,CAAC,QAAQ,EAAE,CAAC;IACjB,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACnC,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,yBAAyB;AACzB,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,gCAAqB,EAAC,OAAO,CAAC,CAAC;AAC/B,IAAA,4BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,wBAAiB,EAAC,OAAO,CAAC,CAAC;AAC3B,IAAA,4BAAmB,EAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,8BAAoB,EAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,6BAAqB,EAAC,OAAO,CAAC,CAAC;AAE/B,wBAAwB;AACxB,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE;IAC5B,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,QAAQ;AACR,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,oCAAoC;AACpC,MAAM,MAAM,GAAQ,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC5C,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}