@aalis/plugin-okx-trading 0.11.0 → 0.11.1
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/index.d.ts.map +1 -1
- package/dist/index.js +35 -25
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8FA;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,aAa7B,CAAC;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,aAgCjC,CAAC;;;;;;AAOH,wBAOG"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { tools } from '@aalis/api-tools';
|
|
2
2
|
import { config, definePlugin, logger, optional } from '@aalis/core';
|
|
3
|
+
import { configError, defineConfig, parseConfig } from '@aalis/schema-config';
|
|
3
4
|
import { OkxClient } from './client.js';
|
|
4
5
|
import { registerAccountTools } from './tools/account.js';
|
|
5
6
|
import { registerAlgoTools } from './tools/algo.js';
|
|
@@ -8,7 +9,7 @@ import { registerOrderQueryTools } from './tools/orders.js';
|
|
|
8
9
|
import { registerRubikTools } from './tools/rubik.js';
|
|
9
10
|
import { registerTradeTools } from './tools/trade.js';
|
|
10
11
|
import { registerTransferTools } from './tools/transfer.js';
|
|
11
|
-
const configSchema = {
|
|
12
|
+
const configSchema = defineConfig({
|
|
12
13
|
apiKey: {
|
|
13
14
|
type: 'string',
|
|
14
15
|
label: 'API Key',
|
|
@@ -16,8 +17,9 @@ const configSchema = {
|
|
|
16
17
|
secret: true,
|
|
17
18
|
description: '在 OKX 设置中创建的 API Key',
|
|
18
19
|
default: '',
|
|
20
|
+
onInvalid: 'error',
|
|
19
21
|
},
|
|
20
|
-
secretKey: { type: 'string', label: 'Secret Key', required: true, secret: true, default: '' },
|
|
22
|
+
secretKey: { type: 'string', label: 'Secret Key', required: true, secret: true, default: '', onInvalid: 'error' },
|
|
21
23
|
passphrase: {
|
|
22
24
|
type: 'string',
|
|
23
25
|
label: 'Passphrase',
|
|
@@ -25,23 +27,27 @@ const configSchema = {
|
|
|
25
27
|
secret: true,
|
|
26
28
|
description: '创建 API 时设定的口令',
|
|
27
29
|
default: '',
|
|
30
|
+
onInvalid: 'error',
|
|
28
31
|
},
|
|
29
32
|
baseUrl: {
|
|
30
33
|
type: 'string',
|
|
31
34
|
label: 'API 地址',
|
|
32
35
|
default: 'https://www.okx.com',
|
|
36
|
+
onInvalid: 'error',
|
|
33
37
|
description: '默认实盘地址,可改为自定义域名',
|
|
34
38
|
},
|
|
35
39
|
demo: {
|
|
36
40
|
type: 'boolean',
|
|
37
41
|
label: '模拟盘',
|
|
38
42
|
default: true,
|
|
43
|
+
onInvalid: 'error',
|
|
39
44
|
description: '启用后将使用模拟交易环境,强烈建议先在模拟盘测试',
|
|
40
45
|
},
|
|
41
46
|
confirmRealMoney: {
|
|
42
47
|
type: 'boolean',
|
|
43
48
|
label: '确认实盘风险',
|
|
44
49
|
default: false,
|
|
50
|
+
onInvalid: 'error',
|
|
45
51
|
description: '仅当关闭模拟盘(demo:false)、用真实资金时,须显式设为 true 以确认风险;否则不暴露下单/撤单/策略/划转/提币等交易工具,仅保留查询。',
|
|
46
52
|
},
|
|
47
53
|
timeoutMs: { type: 'number', label: '请求超时 (ms)', default: 15000 },
|
|
@@ -49,10 +55,23 @@ const configSchema = {
|
|
|
49
55
|
type: 'boolean',
|
|
50
56
|
label: '启用交易工具',
|
|
51
57
|
default: true,
|
|
58
|
+
onInvalid: 'error',
|
|
52
59
|
description: '关闭后仅保留查询类工具,不暴露下单/撤单操作',
|
|
53
60
|
},
|
|
54
|
-
enableAlgo: {
|
|
55
|
-
|
|
61
|
+
enableAlgo: {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
label: '启用策略委托',
|
|
64
|
+
default: false,
|
|
65
|
+
onInvalid: 'error',
|
|
66
|
+
description: '启用止盈止损 / 计划委托工具',
|
|
67
|
+
},
|
|
68
|
+
enableTransfer: {
|
|
69
|
+
type: 'boolean',
|
|
70
|
+
label: '启用资金划转',
|
|
71
|
+
default: false,
|
|
72
|
+
onInvalid: 'error',
|
|
73
|
+
description: '启用资金账户划转工具',
|
|
74
|
+
},
|
|
56
75
|
defaultPageLimit: {
|
|
57
76
|
type: 'number',
|
|
58
77
|
label: '分页查询默认条数',
|
|
@@ -65,25 +84,7 @@ const configSchema = {
|
|
|
65
84
|
default: 100,
|
|
66
85
|
description: 'LLM 传入的 limit 会被 cap 到该值;查到的条目整份交给模型,调大会增加单次工具结果的体积。OKX API 本身单页一般最多 100(个别接口 300)。',
|
|
67
86
|
},
|
|
68
|
-
};
|
|
69
|
-
function resolveConfig(config) {
|
|
70
|
-
const maxPageLimit = Math.max(1, Math.min(1000, Number(config.maxPageLimit) || 100));
|
|
71
|
-
const defaultPageLimitRaw = Math.max(1, Math.floor(Number(config.defaultPageLimit) || 20));
|
|
72
|
-
return {
|
|
73
|
-
apiKey: config.apiKey ?? '',
|
|
74
|
-
secretKey: config.secretKey ?? '',
|
|
75
|
-
passphrase: config.passphrase ?? '',
|
|
76
|
-
baseUrl: config.baseUrl ?? 'https://www.okx.com',
|
|
77
|
-
demo: config.demo ?? true,
|
|
78
|
-
confirmRealMoney: config.confirmRealMoney ?? false,
|
|
79
|
-
timeoutMs: config.timeoutMs ?? 15000,
|
|
80
|
-
enableTrading: config.enableTrading ?? true,
|
|
81
|
-
enableAlgo: config.enableAlgo ?? false,
|
|
82
|
-
enableTransfer: config.enableTransfer ?? false,
|
|
83
|
-
defaultPageLimit: Math.min(defaultPageLimitRaw, maxPageLimit),
|
|
84
|
-
maxPageLimit,
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
+
});
|
|
87
88
|
// ===== 工具权限三分名单(模块级导出,测试做补集断言防漏网)=====
|
|
88
89
|
/**
|
|
89
90
|
* 动真金白银 / 改仓位:visibility restricted(最低等级 2,仅信任档/owner 可驱动)。
|
|
@@ -157,11 +158,20 @@ export default definePlugin({
|
|
|
157
158
|
apply: registerOkxTools,
|
|
158
159
|
});
|
|
159
160
|
function registerOkxTools({ tools: baseTools, logger, config }) {
|
|
160
|
-
const
|
|
161
|
-
if (!
|
|
161
|
+
const parsed = parseConfig(configSchema, config, logger);
|
|
162
|
+
if (!parsed.apiKey || !parsed.secretKey || !parsed.passphrase) {
|
|
162
163
|
logger.warn('OKX 交易插件缺少 API 凭证,已跳过初始化');
|
|
163
164
|
return;
|
|
164
165
|
}
|
|
166
|
+
if (!URL.canParse(parsed.baseUrl) || new URL(parsed.baseUrl).username || new URL(parsed.baseUrl).password) {
|
|
167
|
+
throw configError('baseUrl 需为不带用户名或密码的完整 URL');
|
|
168
|
+
}
|
|
169
|
+
const maxPageLimit = Math.max(1, Math.min(1000, parsed.maxPageLimit || 100));
|
|
170
|
+
const cfg = {
|
|
171
|
+
...parsed,
|
|
172
|
+
maxPageLimit,
|
|
173
|
+
defaultPageLimit: Math.min(Math.max(1, Math.floor(parsed.defaultPageLimit || 20)), maxPageLimit),
|
|
174
|
+
};
|
|
165
175
|
const client = new OkxClient({
|
|
166
176
|
credentials: { apiKey: cfg.apiKey, secretKey: cfg.secretKey, passphrase: cfg.passphrase },
|
|
167
177
|
baseUrl: cfg.baseUrl,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAgB,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-okx-trading",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"dist"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aalis/schema-config": ">=0.
|
|
27
|
+
"@aalis/schema-config": ">=0.14.0 <1.0.0",
|
|
28
28
|
"@aalis/api-tools": ">=0.10.0 <1.0.0"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.0.0",
|
|
32
32
|
"typescript": "^5.7.0",
|
|
33
|
-
"@aalis/core": "0.
|
|
34
|
-
"@aalis/api-webui": "0.11.
|
|
33
|
+
"@aalis/core": "0.19.1",
|
|
34
|
+
"@aalis/api-webui": "0.11.1"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@aalis/core": ">=0.18.0 <1.0.0"
|