@aalis/plugin-tool-code-runner 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -25
- package/dist/index.js.map +1 -1
- package/dist/locales/en.d.ts +24 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/en.js +24 -0
- package/dist/locales/en.js.map +1 -0
- package/dist/runner.d.ts +1 -2
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js.map +1 -1
- package/dist/texts.d.ts +47 -0
- package/dist/texts.d.ts.map +1 -0
- package/dist/texts.js +32 -0
- package/dist/texts.js.map +1 -0
- package/package.json +8 -7
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":";;;;;;;;AAqJA,wBAoJG"}
|
package/dist/index.js
CHANGED
|
@@ -5,74 +5,78 @@ import { tools, withToolGroups } from '@aalis/api-tools';
|
|
|
5
5
|
import { config, definePlugin, logger, optional } from '@aalis/core';
|
|
6
6
|
import { defineConfig, parseConfig } from '@aalis/schema-config';
|
|
7
7
|
import { runCode } from './runner.js';
|
|
8
|
+
import { t } from './texts.js';
|
|
8
9
|
const configSchema = defineConfig({
|
|
9
10
|
python: {
|
|
10
11
|
label: 'Python',
|
|
11
12
|
fields: {
|
|
12
|
-
enabled: { type: 'boolean', label: '
|
|
13
|
+
enabled: { type: 'boolean', label: t('enableTool', { tool: 'run_python' }), default: true, onInvalid: 'error' },
|
|
13
14
|
interpreter: {
|
|
14
15
|
type: 'string',
|
|
15
|
-
label: '
|
|
16
|
+
label: t('interpreterLabel'),
|
|
16
17
|
default: 'python3',
|
|
17
18
|
required: true,
|
|
18
19
|
onInvalid: 'error',
|
|
19
|
-
description: '
|
|
20
|
+
description: t('pythonInterpreterDescription'),
|
|
20
21
|
},
|
|
21
22
|
},
|
|
22
23
|
},
|
|
23
24
|
javascript: {
|
|
24
25
|
label: 'JavaScript (Node.js)',
|
|
25
26
|
fields: {
|
|
26
|
-
enabled: {
|
|
27
|
+
enabled: {
|
|
28
|
+
type: 'boolean',
|
|
29
|
+
label: t('enableTool', { tool: 'run_javascript' }),
|
|
30
|
+
default: true,
|
|
31
|
+
onInvalid: 'error',
|
|
32
|
+
},
|
|
27
33
|
interpreter: {
|
|
28
34
|
type: 'string',
|
|
29
|
-
label: '
|
|
35
|
+
label: t('interpreterLabel'),
|
|
30
36
|
default: 'node',
|
|
31
37
|
required: true,
|
|
32
38
|
onInvalid: 'error',
|
|
33
|
-
description: '
|
|
39
|
+
description: t('javascriptInterpreterDescription'),
|
|
34
40
|
},
|
|
35
41
|
},
|
|
36
42
|
},
|
|
37
43
|
maxOutputSize: {
|
|
38
44
|
type: 'number',
|
|
39
|
-
label: '
|
|
45
|
+
label: t('maxOutputSizeLabel'),
|
|
40
46
|
default: 131072,
|
|
41
|
-
description: '
|
|
47
|
+
description: t('maxOutputSizeDescription'),
|
|
42
48
|
},
|
|
43
49
|
workingDirectory: {
|
|
44
50
|
type: 'string',
|
|
45
|
-
label: '
|
|
51
|
+
label: t('workingDirectoryLabel'),
|
|
46
52
|
default: 'workspace:/',
|
|
47
53
|
onInvalid: 'error',
|
|
48
|
-
description: '
|
|
54
|
+
description: t('workingDirectoryDescription'),
|
|
49
55
|
},
|
|
50
56
|
sandbox: {
|
|
51
|
-
label: '
|
|
57
|
+
label: t('sandboxLabel'),
|
|
52
58
|
fields: {
|
|
53
59
|
mode: {
|
|
54
60
|
type: 'select',
|
|
55
|
-
label: '
|
|
61
|
+
label: t('modeLabel'),
|
|
56
62
|
default: 'auto',
|
|
57
63
|
onInvalid: 'error',
|
|
58
64
|
options: [
|
|
59
|
-
{ label: '
|
|
60
|
-
{ label: '
|
|
65
|
+
{ label: t('modeAuto'), value: 'auto' },
|
|
66
|
+
{ label: t('modeNone'), value: 'none' },
|
|
61
67
|
],
|
|
62
|
-
description: '
|
|
63
|
-
'只放行白名单环境变量;无可用沙箱后端时拒绝执行(fail-closed)。none:退回无隔离裸进程,每次告警。' +
|
|
64
|
-
'说明:v1 读放开(解释器需系统库),防的是写出工作区/联网外泄/篡改系统,不防读取本机其它文件。',
|
|
68
|
+
description: t('modeDescription'),
|
|
65
69
|
},
|
|
66
70
|
network: {
|
|
67
71
|
type: 'select',
|
|
68
|
-
label: '
|
|
72
|
+
label: t('networkLabel'),
|
|
69
73
|
default: 'deny',
|
|
70
74
|
onInvalid: 'error',
|
|
71
75
|
options: [
|
|
72
|
-
{ label: '
|
|
73
|
-
{ label: '
|
|
76
|
+
{ label: t('networkDeny'), value: 'deny' },
|
|
77
|
+
{ label: t('networkAllow'), value: 'allow' },
|
|
74
78
|
],
|
|
75
|
-
description: '
|
|
79
|
+
description: t('networkDescription'),
|
|
76
80
|
},
|
|
77
81
|
},
|
|
78
82
|
},
|
|
@@ -80,8 +84,24 @@ const configSchema = defineConfig({
|
|
|
80
84
|
function toRunnerCwdUri(input) {
|
|
81
85
|
return resolveAgainstCwd(input, 'workspace:/');
|
|
82
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* 交给脚本的环境变量白名单,两种模式下都只交这些(runner 另加 PYTHONIOENCODING)。SystemRoot 以下几项给 Windows:
|
|
89
|
+
* 它没有沙箱后端、只能 mode=none,系统组件要 SystemRoot 等,解释器的临时目录与用户目录取 TEMP、TMP、USERPROFILE
|
|
90
|
+
*/
|
|
83
91
|
function safeEnv() {
|
|
84
|
-
const keep = [
|
|
92
|
+
const keep = [
|
|
93
|
+
'PATH',
|
|
94
|
+
'LANG',
|
|
95
|
+
'LC_ALL',
|
|
96
|
+
'TERM',
|
|
97
|
+
'SystemRoot',
|
|
98
|
+
'WINDIR',
|
|
99
|
+
'COMSPEC',
|
|
100
|
+
'PATHEXT',
|
|
101
|
+
'TEMP',
|
|
102
|
+
'TMP',
|
|
103
|
+
'USERPROFILE',
|
|
104
|
+
];
|
|
85
105
|
const env = {};
|
|
86
106
|
for (const key of keep) {
|
|
87
107
|
if (process.env[key])
|
|
@@ -116,7 +136,7 @@ async function createRunnerConfig(caps, cfg) {
|
|
|
116
136
|
}
|
|
117
137
|
export default definePlugin({
|
|
118
138
|
name: '@aalis/plugin-tool-code-runner',
|
|
119
|
-
displayName: '
|
|
139
|
+
displayName: t('displayName'),
|
|
120
140
|
subsystem: 'tools',
|
|
121
141
|
configSchema,
|
|
122
142
|
uses,
|
|
@@ -124,7 +144,7 @@ export default definePlugin({
|
|
|
124
144
|
const { tools, proc, storage, codeSandbox, logger } = caps;
|
|
125
145
|
const cfg = parseConfig(configSchema, caps.config.use, logger.use);
|
|
126
146
|
if (cfg.sandbox.mode === 'none') {
|
|
127
|
-
logger.use.warn('
|
|
147
|
+
logger.use.warn('注意:code-runner 运行在【无隔离】模式(sandbox.mode=none):代码以宿主用户全权限裸跑,仅在完全可信环境使用。');
|
|
128
148
|
}
|
|
129
149
|
const cwdUri = toRunnerCwdUri(cfg.workingDirectory);
|
|
130
150
|
// 每次调用现取:cwd 要按当时的 storage 实况解析,沙箱后端也可能中途上下线
|
|
@@ -134,7 +154,8 @@ export default definePlugin({
|
|
|
134
154
|
// 注册工具分组
|
|
135
155
|
tools.use.registerGroup({
|
|
136
156
|
name: 'code-runner',
|
|
137
|
-
label: '
|
|
157
|
+
label: t('groupLabel'),
|
|
158
|
+
summary: t('groupSummary'),
|
|
138
159
|
description: '编写并运行 Python / JavaScript 代码来解决计算、分析、文件处理等问题',
|
|
139
160
|
});
|
|
140
161
|
const osName = process.platform === 'darwin' ? 'macOS' : process.platform === 'win32' ? 'Windows' : 'Linux';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAgB,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAiB,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAqB,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAgB,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnF,OAAO,EAAiB,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAqB,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,CAAC,EAAE,MAAM,YAAY,CAAC;AAE/B,MAAM,YAAY,GAAG,YAAY,CAAC;IAChC,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,MAAM,EAAE;YACN,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;YAC/G,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC;gBAC5B,OAAO,EAAE,SAAS;gBAClB,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,8BAA8B,CAAC;aAC/C;SACF;KACF;IACD,UAAU,EAAE;QACV,KAAK,EAAE,sBAAsB;QAC7B,MAAM,EAAE;YACN,OAAO,EAAE;gBACP,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,CAAC,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;gBAClD,OAAO,EAAE,IAAI;gBACb,SAAS,EAAE,OAAO;aACnB;YACD,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,CAAC,kBAAkB,CAAC;gBAC5B,OAAO,EAAE,MAAM;gBACf,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,OAAO;gBAClB,WAAW,EAAE,CAAC,CAAC,kCAAkC,CAAC;aACnD;SACF;KACF;IACD,aAAa,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC;QAC9B,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,CAAC,CAAC,0BAA0B,CAAC;KAC3C;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,CAAC,CAAC,uBAAuB,CAAC;QACjC,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,OAAO;QAClB,WAAW,EAAE,CAAC,CAAC,6BAA6B,CAAC;KAC9C;IACD,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC;QACxB,MAAM,EAAE;YACN,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC;gBACrB,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;oBACvC,EAAE,KAAK,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;iBACxC;gBACD,WAAW,EAAE,CAAC,CAAC,iBAAiB,CAAC;aAClC;YACD,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC;gBACxB,OAAO,EAAE,MAAM;gBACf,SAAS,EAAE,OAAO;gBAClB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;oBAC1C,EAAE,KAAK,EAAE,CAAC,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;iBAC7C;gBACD,WAAW,EAAE,CAAC,CAAC,oBAAoB,CAAC;aACrC;SACF;KACF;CACF,CAAC,CAAC;AAMH,SAAS,cAAc,CAAC,KAAyB;IAC/C,OAAO,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO;IACd,MAAM,IAAI,GAAG;QACX,MAAM;QACN,MAAM;QACN,QAAQ;QACR,MAAM;QACN,YAAY;QACZ,QAAQ;QACR,SAAS;QACT,SAAS;QACT,MAAM;QACN,KAAK;QACL,aAAa;KACd,CAAC;IACF,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mBAAmB;AAEnB,2EAA2E;AAC3E,yCAAyC;AACzC,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC;IACtB,OAAO;IACP,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC;IAClC,MAAM;IACN,MAAM;CACP,CAAC;AAGF,KAAK,UAAU,kBAAkB,CAC/B,IAA2C,EAC3C,GAAqB;IAErB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACjE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACjC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACpD,OAAO;QACL,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,GAAG,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC;QACnD,GAAG,EAAE,OAAO,EAAE;QACd,0FAA0F;QAC1F,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE;QACnF,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;KACzE,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE,gCAAgC;IACtC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC;IAC7B,SAAS,EAAE,OAAO;IAClB,YAAY;IACZ,IAAI;IACJ,KAAK,CAAC,IAAI;QACR,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC3D,MAAM,GAAG,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,CAAC,GAAG,CAAC,IAAI,CACb,uEAAuE,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpD,6CAA6C;QAC7C,MAAM,UAAU,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAE5C,eAAe;QACf,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;QAE9D,SAAS;QACT,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC;YACtB,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,CAAC,CAAC,YAAY,CAAC;YACtB,OAAO,EAAE,CAAC,CAAC,cAAc,CAAC;YAC1B,WAAW,EAAE,8CAA8C;SAC5D,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QAE5G,uDAAuD;QACvD,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,UAAU,CAAC,QAAQ,CAAC;gBAClB,UAAU,EAAE;oBACV,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,YAAY;wBAClB,WAAW,EACT,OAAO,MAAM,2CAA2C;4BACxD,wCAAwC;4BACxC,wBAAwB;4BACxB,oDAAoD;4BACpD,+CAA+C;4BAC/C,kCAAkC;4BAClC,qCAAqC;4BACrC,oCAAoC;4BACpC,yBAAyB;4BACzB,kCAAkC;4BAClC,aAAa;4BACb,oCAAoC;4BACpC,+CAA+C;4BAC/C,uCAAuC;4BACvC,wCAAwC;wBAC1C,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE;oCACJ,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,kBAAkB;iCAChC;6BACF;4BACD,QAAQ,EAAE,CAAC,MAAM,CAAC;4BAClB,oBAAoB,EAAE,KAAK;yBAC5B;qBACF;iBACF;gBACD,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;oBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;oBACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;oBAClD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,GAAG,EACX,GAAG,CAAC,MAAM,CAAC,WAAW,EACtB,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,EAAE,EACF,OAAO,CAAC,MAAM,CACf,CAAC;oBACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QACvE,CAAC;QAED,2DAA2D;QAC3D,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC3B,UAAU,CAAC,QAAQ,CAAC;gBAClB,UAAU,EAAE;oBACV,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,IAAI,EAAE,gBAAgB;wBACtB,WAAW,EACT,OAAO,MAAM,yDAAyD;4BACtE,mDAAmD;4BACnD,wBAAwB;4BACxB,kBAAkB;4BAClB,kBAAkB;4BAClB,2BAA2B;4BAC3B,4BAA4B;4BAC5B,iCAAiC;4BACjC,aAAa;4BACb,2BAA2B;4BAC3B,0BAA0B;4BAC1B,+CAA+C;wBACjD,UAAU,EAAE;4BACV,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,IAAI,EAAE;oCACJ,IAAI,EAAE,QAAQ;oCACd,WAAW,EAAE,oCAAoC;iCAClD;6BACF;4BACD,QAAQ,EAAE,CAAC,MAAM,CAAC;4BAClB,oBAAoB,EAAE,KAAK;yBAC5B;qBACF;iBACF;gBACD,UAAU,EAAE,YAAY;gBACxB,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;oBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAc,CAAC;oBACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;oBACtD,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAC1B,IAAI,CAAC,GAAG,EACR,OAAO,CAAC,GAAG,EACX,GAAG,CAAC,UAAU,CAAC,WAAW,EAC1B,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,EAAE,EACF,OAAO,CAAC,MAAM,CACf,CAAC;oBACF,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAChC,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,GAAG,CAAC,UAAU,CAAC,WAAW,GAAG,CAAC,CAAC;QAC/E,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,qBAAqB,MAAM,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
readonly displayName: "Code runner";
|
|
3
|
+
readonly groupLabel: "Code execution";
|
|
4
|
+
readonly groupSummary: "Write and run Python / JavaScript code to solve computation, analysis, file processing and similar problems";
|
|
5
|
+
readonly enableTool: "Enable {tool}";
|
|
6
|
+
readonly interpreterLabel: "Interpreter path";
|
|
7
|
+
readonly pythonInterpreterDescription: "Path or command name of the Python interpreter, such as python3 or /usr/bin/python3";
|
|
8
|
+
readonly javascriptInterpreterDescription: "Path or command name of the Node.js interpreter";
|
|
9
|
+
readonly maxOutputSizeLabel: "Max output bytes";
|
|
10
|
+
readonly maxOutputSizeDescription: "Maximum output bytes for stdout and stderr each";
|
|
11
|
+
readonly workingDirectoryLabel: "Logical working directory";
|
|
12
|
+
readonly workingDirectoryDescription: "Working directory (a storage URI) for running scripts, such as workspace:/ or tmp:/run; relative paths are resolved under workspace:/.";
|
|
13
|
+
readonly sandboxLabel: "Code sandbox";
|
|
14
|
+
readonly modeLabel: "Isolation mode";
|
|
15
|
+
readonly modeAuto: "Automatic (enforce isolation when a sandbox is available, otherwise refuse to run)";
|
|
16
|
+
readonly modeNone: "No isolation (bare process, dangerous, trusted environments only)";
|
|
17
|
+
readonly modeDescription: "auto: through the code-sandbox service (Linux bubblewrap / macOS sandbox-exec), code is confined to “the workspace + this run's temporary directory”, has no network by default, and only allowlisted environment variables are passed; with no sandbox backend available, it refuses to run (fail-closed). none: falls back to a bare process without isolation, warning every time. Note: v1 leaves reads open (interpreters need system libraries); it guards against writing outside the workspace, exfiltrating over the network and tampering with the system, not against reading other files on this machine.";
|
|
18
|
+
readonly networkLabel: "Child process network";
|
|
19
|
+
readonly networkDeny: "No network (recommended)";
|
|
20
|
+
readonly networkAllow: "Allowed (coarse, cannot filter by domain)";
|
|
21
|
+
readonly networkDescription: "Only takes effect in auto mode. deny: network access from the script (including fetch) fails. allow: opens the child process network (cannot be filtered by a domain allowlist).";
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
24
|
+
//# sourceMappingURL=en.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,wBAyBG"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { defineLocale } from '@aalis/schema-i18n';
|
|
2
|
+
export default defineLocale()({
|
|
3
|
+
displayName: 'Code runner',
|
|
4
|
+
groupLabel: 'Code execution',
|
|
5
|
+
groupSummary: 'Write and run Python / JavaScript code to solve computation, analysis, file processing and similar problems',
|
|
6
|
+
enableTool: 'Enable {tool}',
|
|
7
|
+
interpreterLabel: 'Interpreter path',
|
|
8
|
+
pythonInterpreterDescription: 'Path or command name of the Python interpreter, such as python3 or /usr/bin/python3',
|
|
9
|
+
javascriptInterpreterDescription: 'Path or command name of the Node.js interpreter',
|
|
10
|
+
maxOutputSizeLabel: 'Max output bytes',
|
|
11
|
+
maxOutputSizeDescription: 'Maximum output bytes for stdout and stderr each',
|
|
12
|
+
workingDirectoryLabel: 'Logical working directory',
|
|
13
|
+
workingDirectoryDescription: 'Working directory (a storage URI) for running scripts, such as workspace:/ or tmp:/run; relative paths are resolved under workspace:/.',
|
|
14
|
+
sandboxLabel: 'Code sandbox',
|
|
15
|
+
modeLabel: 'Isolation mode',
|
|
16
|
+
modeAuto: 'Automatic (enforce isolation when a sandbox is available, otherwise refuse to run)',
|
|
17
|
+
modeNone: 'No isolation (bare process, dangerous, trusted environments only)',
|
|
18
|
+
modeDescription: "auto: through the code-sandbox service (Linux bubblewrap / macOS sandbox-exec), code is confined to “the workspace + this run's temporary directory”, has no network by default, and only allowlisted environment variables are passed; with no sandbox backend available, it refuses to run (fail-closed). none: falls back to a bare process without isolation, warning every time. Note: v1 leaves reads open (interpreters need system libraries); it guards against writing outside the workspace, exfiltrating over the network and tampering with the system, not against reading other files on this machine.",
|
|
19
|
+
networkLabel: 'Child process network',
|
|
20
|
+
networkDeny: 'No network (recommended)',
|
|
21
|
+
networkAllow: 'Allowed (coarse, cannot filter by domain)',
|
|
22
|
+
networkDescription: 'Only takes effect in auto mode. deny: network access from the script (including fetch) fails. allow: opens the child process network (cannot be filtered by a domain allowlist).',
|
|
23
|
+
});
|
|
24
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,eAAe,YAAY,EAAU,CAAC;IACpC,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,gBAAgB;IAC5B,YAAY,EACV,6GAA6G;IAC/G,UAAU,EAAE,eAAe;IAC3B,gBAAgB,EAAE,kBAAkB;IACpC,4BAA4B,EAAE,qFAAqF;IACnH,gCAAgC,EAAE,iDAAiD;IACnF,kBAAkB,EAAE,kBAAkB;IACtC,wBAAwB,EAAE,iDAAiD;IAC3E,qBAAqB,EAAE,2BAA2B;IAClD,2BAA2B,EACzB,wIAAwI;IAC1I,YAAY,EAAE,cAAc;IAC5B,SAAS,EAAE,gBAAgB;IAC3B,QAAQ,EAAE,oFAAoF;IAC9F,QAAQ,EAAE,mEAAmE;IAC7E,eAAe,EACb,ulBAAulB;IACzlB,YAAY,EAAE,uBAAuB;IACrC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2CAA2C;IACzD,kBAAkB,EAChB,kLAAkL;CACrL,CAAC,CAAC"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -11,8 +11,7 @@ export interface RunnerConfig {
|
|
|
11
11
|
maxOutputSize: number;
|
|
12
12
|
/** 子进程 cwd(已通过 storage.resolveLocalPath 解析的本地路径) */
|
|
13
13
|
cwd: string;
|
|
14
|
-
/**
|
|
15
|
-
* 非沙箱路径走 process-local,env 被**叠加**在宿主全量环境之上(提供与否都合并),无隔离作用 */
|
|
14
|
+
/** 子进程只拿到这些环境变量(白名单):沙箱路径经 env -i 清空后注入,非沙箱路径由进程服务按替换语义交给子进程 */
|
|
16
15
|
env?: Record<string, string | undefined>;
|
|
17
16
|
/**
|
|
18
17
|
* 沙箱:给定即要求 OS 隔离(写白名单 = [cwd, 本次临时目录]、网络按 network、env 仅白名单);
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;;;OAGG;IACH,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACxC,mDAAmD;IACnD,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAQD;;;;;;;;;;;GAWG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,cAAc,EACvB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,YAAY,EACpB,SAAS,GAAE,MAAM,EAAO,EACxB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,SAAS,CAAC,CAgFpB"}
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/texts.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
declare const SOURCE: {
|
|
2
|
+
readonly displayName: "代码执行器";
|
|
3
|
+
readonly groupLabel: "代码执行";
|
|
4
|
+
readonly groupSummary: "编写并运行 Python / JavaScript 代码来解决计算、分析、文件处理等问题";
|
|
5
|
+
readonly enableTool: "启用 {tool}";
|
|
6
|
+
readonly interpreterLabel: "解释器路径";
|
|
7
|
+
readonly pythonInterpreterDescription: "Python 解释器路径或命令名,如 python3、/usr/bin/python3";
|
|
8
|
+
readonly javascriptInterpreterDescription: "Node.js 解释器路径或命令名";
|
|
9
|
+
readonly maxOutputSizeLabel: "最大输出字节";
|
|
10
|
+
readonly maxOutputSizeDescription: "stdout/stderr 各自的最大输出字节数";
|
|
11
|
+
readonly workingDirectoryLabel: "逻辑工作目录";
|
|
12
|
+
readonly workingDirectoryDescription: "脚本执行时的 storage URI 工作目录,如 workspace:/ 或 tmp:/run;相对路径会解释为 workspace:/ 下路径。";
|
|
13
|
+
readonly sandboxLabel: "代码沙箱";
|
|
14
|
+
readonly modeLabel: "隔离模式";
|
|
15
|
+
readonly modeAuto: "自动(有沙箱则强制隔离,无则拒绝运行)";
|
|
16
|
+
readonly modeNone: "无隔离(裸进程,危险,仅信任环境)";
|
|
17
|
+
readonly modeDescription: "auto:经 code-sandbox 服务(Linux bubblewrap / macOS sandbox-exec)把代码限制在「工作区 + 本次临时目录」、默认断网、只放行白名单环境变量;无可用沙箱后端时拒绝执行(fail-closed)。none:退回无隔离裸进程,每次告警。说明:v1 读放开(解释器需系统库),防的是写出工作区/联网外泄/篡改系统,不防读取本机其它文件。";
|
|
18
|
+
readonly networkLabel: "子进程网络";
|
|
19
|
+
readonly networkDeny: "断网(推荐)";
|
|
20
|
+
readonly networkAllow: "放开(粗粒度,无法按域名过滤)";
|
|
21
|
+
readonly networkDescription: "仅 auto 模式生效。deny:脚本内联网(含 fetch)会失败。allow:放开子进程网络(无法按域名白名单过滤)。";
|
|
22
|
+
};
|
|
23
|
+
export type Source = typeof SOURCE;
|
|
24
|
+
export declare const t: import("@aalis/schema-i18n").TextFactory<{
|
|
25
|
+
readonly displayName: "代码执行器";
|
|
26
|
+
readonly groupLabel: "代码执行";
|
|
27
|
+
readonly groupSummary: "编写并运行 Python / JavaScript 代码来解决计算、分析、文件处理等问题";
|
|
28
|
+
readonly enableTool: "启用 {tool}";
|
|
29
|
+
readonly interpreterLabel: "解释器路径";
|
|
30
|
+
readonly pythonInterpreterDescription: "Python 解释器路径或命令名,如 python3、/usr/bin/python3";
|
|
31
|
+
readonly javascriptInterpreterDescription: "Node.js 解释器路径或命令名";
|
|
32
|
+
readonly maxOutputSizeLabel: "最大输出字节";
|
|
33
|
+
readonly maxOutputSizeDescription: "stdout/stderr 各自的最大输出字节数";
|
|
34
|
+
readonly workingDirectoryLabel: "逻辑工作目录";
|
|
35
|
+
readonly workingDirectoryDescription: "脚本执行时的 storage URI 工作目录,如 workspace:/ 或 tmp:/run;相对路径会解释为 workspace:/ 下路径。";
|
|
36
|
+
readonly sandboxLabel: "代码沙箱";
|
|
37
|
+
readonly modeLabel: "隔离模式";
|
|
38
|
+
readonly modeAuto: "自动(有沙箱则强制隔离,无则拒绝运行)";
|
|
39
|
+
readonly modeNone: "无隔离(裸进程,危险,仅信任环境)";
|
|
40
|
+
readonly modeDescription: "auto:经 code-sandbox 服务(Linux bubblewrap / macOS sandbox-exec)把代码限制在「工作区 + 本次临时目录」、默认断网、只放行白名单环境变量;无可用沙箱后端时拒绝执行(fail-closed)。none:退回无隔离裸进程,每次告警。说明:v1 读放开(解释器需系统库),防的是写出工作区/联网外泄/篡改系统,不防读取本机其它文件。";
|
|
41
|
+
readonly networkLabel: "子进程网络";
|
|
42
|
+
readonly networkDeny: "断网(推荐)";
|
|
43
|
+
readonly networkAllow: "放开(粗粒度,无法按域名过滤)";
|
|
44
|
+
readonly networkDescription: "仅 auto 模式生效。deny:脚本内联网(含 fetch)会失败。allow:放开子进程网络(无法按域名白名单过滤)。";
|
|
45
|
+
}>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=texts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.d.ts","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;CAwBF,CAAC;AACX,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;EAKZ,CAAC"}
|
package/dist/texts.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// 本插件自己的原文字典:显示名、工具分组名与概述、配置项
|
|
2
|
+
import { defineTexts } from '@aalis/schema-i18n';
|
|
3
|
+
import en from './locales/en.js';
|
|
4
|
+
const SOURCE = {
|
|
5
|
+
displayName: '代码执行器',
|
|
6
|
+
groupLabel: '代码执行',
|
|
7
|
+
groupSummary: '编写并运行 Python / JavaScript 代码来解决计算、分析、文件处理等问题',
|
|
8
|
+
enableTool: '启用 {tool}',
|
|
9
|
+
interpreterLabel: '解释器路径',
|
|
10
|
+
pythonInterpreterDescription: 'Python 解释器路径或命令名,如 python3、/usr/bin/python3',
|
|
11
|
+
javascriptInterpreterDescription: 'Node.js 解释器路径或命令名',
|
|
12
|
+
maxOutputSizeLabel: '最大输出字节',
|
|
13
|
+
maxOutputSizeDescription: 'stdout/stderr 各自的最大输出字节数',
|
|
14
|
+
workingDirectoryLabel: '逻辑工作目录',
|
|
15
|
+
workingDirectoryDescription: '脚本执行时的 storage URI 工作目录,如 workspace:/ 或 tmp:/run;相对路径会解释为 workspace:/ 下路径。',
|
|
16
|
+
sandboxLabel: '代码沙箱',
|
|
17
|
+
modeLabel: '隔离模式',
|
|
18
|
+
modeAuto: '自动(有沙箱则强制隔离,无则拒绝运行)',
|
|
19
|
+
modeNone: '无隔离(裸进程,危险,仅信任环境)',
|
|
20
|
+
modeDescription: 'auto:经 code-sandbox 服务(Linux bubblewrap / macOS sandbox-exec)把代码限制在「工作区 + 本次临时目录」、默认断网、只放行白名单环境变量;无可用沙箱后端时拒绝执行(fail-closed)。none:退回无隔离裸进程,每次告警。说明:v1 读放开(解释器需系统库),防的是写出工作区/联网外泄/篡改系统,不防读取本机其它文件。',
|
|
21
|
+
networkLabel: '子进程网络',
|
|
22
|
+
networkDeny: '断网(推荐)',
|
|
23
|
+
networkAllow: '放开(粗粒度,无法按域名过滤)',
|
|
24
|
+
networkDescription: '仅 auto 模式生效。deny:脚本内联网(含 fetch)会失败。allow:放开子进程网络(无法按域名白名单过滤)。',
|
|
25
|
+
};
|
|
26
|
+
export const t = defineTexts({
|
|
27
|
+
ns: '@aalis/plugin-tool-code-runner',
|
|
28
|
+
language: 'zh-CN',
|
|
29
|
+
source: SOURCE,
|
|
30
|
+
locales: { en },
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=texts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"texts.js","sourceRoot":"","sources":["../src/texts.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEjC,MAAM,MAAM,GAAG;IACb,WAAW,EAAE,OAAO;IACpB,UAAU,EAAE,MAAM;IAClB,YAAY,EAAE,8CAA8C;IAC5D,UAAU,EAAE,WAAW;IACvB,gBAAgB,EAAE,OAAO;IACzB,4BAA4B,EAAE,6CAA6C;IAC3E,gCAAgC,EAAE,mBAAmB;IACrD,kBAAkB,EAAE,QAAQ;IAC5B,wBAAwB,EAAE,0BAA0B;IACpD,qBAAqB,EAAE,QAAQ;IAC/B,2BAA2B,EACzB,4EAA4E;IAC9E,YAAY,EAAE,MAAM;IACpB,SAAS,EAAE,MAAM;IACjB,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,mBAAmB;IAC7B,eAAe,EACb,kMAAkM;IACpM,YAAY,EAAE,OAAO;IACrB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,iBAAiB;IAC/B,kBAAkB,EAChB,+DAA+D;CACzD,CAAC;AAGX,MAAM,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC;IAC3B,EAAE,EAAE,gCAAgC;IACpC,QAAQ,EAAE,OAAO;IACjB,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,EAAE,EAAE,EAAE;CAChB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-tool-code-runner",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,18 +25,19 @@
|
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@aalis/api-code-sandbox": ">=0.7.0 <1.0.0",
|
|
28
|
-
"@aalis/schema-config": ">=0.
|
|
29
|
-
"@aalis/
|
|
30
|
-
"@aalis/api-
|
|
31
|
-
"@aalis/api-
|
|
28
|
+
"@aalis/schema-config": ">=0.16.0 <1.0.0",
|
|
29
|
+
"@aalis/schema-i18n": ">=0.1.0 <1.0.0",
|
|
30
|
+
"@aalis/api-process": ">=0.10.0 <1.0.0",
|
|
31
|
+
"@aalis/api-storage": ">=0.9.0 <1.0.0",
|
|
32
|
+
"@aalis/api-tools": ">=0.12.0 <1.0.0"
|
|
32
33
|
},
|
|
33
34
|
"devDependencies": {
|
|
34
35
|
"@types/node": "^22.0.0",
|
|
35
36
|
"typescript": "^5.7.0",
|
|
36
|
-
"@aalis/core": "0.
|
|
37
|
+
"@aalis/core": "0.21.0"
|
|
37
38
|
},
|
|
38
39
|
"peerDependencies": {
|
|
39
|
-
"@aalis/core": ">=0.
|
|
40
|
+
"@aalis/core": ">=0.21.0 <1.0.0"
|
|
40
41
|
},
|
|
41
42
|
"aalis": {
|
|
42
43
|
"service": {
|