@probelabs/visor 0.1.152-ee → 0.1.153-ee
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/config.d.ts.map +1 -1
- package/dist/docs/ai-configuration.md +4 -4
- package/dist/docs/sandbox-engines.md +53 -5
- package/dist/examples/ai-with-bash.yaml +2 -2
- package/dist/examples/sandbox-bind-paths.yaml +31 -0
- package/dist/examples/sandbox-host-workdir.yaml +27 -0
- package/dist/examples/workflow-sandbox.yaml +43 -0
- package/dist/generated/config-schema.d.ts +38 -8
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +40 -8
- package/dist/index.js +148 -36
- package/dist/sandbox/bubblewrap-sandbox.d.ts.map +1 -1
- package/dist/sandbox/check-runner.d.ts.map +1 -1
- package/dist/sandbox/docker-image-sandbox.d.ts.map +1 -1
- package/dist/sandbox/seatbelt-sandbox.d.ts.map +1 -1
- package/dist/sandbox/types.d.ts +13 -0
- package/dist/sandbox/types.d.ts.map +1 -1
- package/dist/scheduler/schedule-tool.d.ts +2 -0
- package/dist/scheduler/schedule-tool.d.ts.map +1 -1
- package/dist/sdk/{check-provider-registry-HR6YM5MI.mjs → check-provider-registry-XZE5PRSE.mjs} +3 -3
- package/dist/sdk/{check-provider-registry-QBURXJ6B.mjs → check-provider-registry-ZOGNKTC3.mjs} +3 -3
- package/dist/sdk/{chunk-FYK2DJK6.mjs → chunk-CPYQDJ27.mjs} +86 -26
- package/dist/sdk/chunk-CPYQDJ27.mjs.map +1 -0
- package/dist/sdk/{chunk-JRDGCUEG.mjs → chunk-DXNWUIAN.mjs} +130 -91
- package/dist/sdk/chunk-DXNWUIAN.mjs.map +1 -0
- package/dist/sdk/{chunk-QRR6OJQN.mjs → chunk-EYQWEVZF.mjs} +130 -91
- package/dist/sdk/chunk-EYQWEVZF.mjs.map +1 -0
- package/dist/sdk/{config-MTEIGCOQ.mjs → config-SW3VO4DQ.mjs} +2 -2
- package/dist/sdk/{schedule-tool-62XTFB6K.mjs → schedule-tool-74VMD77T.mjs} +3 -3
- package/dist/sdk/{schedule-tool-6NALFGQR.mjs → schedule-tool-WSZKJUNQ.mjs} +3 -3
- package/dist/sdk/{schedule-tool-handler-5K275UT6.mjs → schedule-tool-handler-EOQBRZSD.mjs} +3 -3
- package/dist/sdk/{schedule-tool-handler-RLAKPPPX.mjs → schedule-tool-handler-Q7E5NBHS.mjs} +3 -3
- package/dist/sdk/sdk.d.mts +15 -2
- package/dist/sdk/sdk.d.ts +15 -2
- package/dist/sdk/sdk.js +209 -110
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +2 -2
- package/dist/sdk/{workflow-check-provider-6TEZHBZJ.mjs → workflow-check-provider-GIW4WECT.mjs} +3 -3
- package/dist/sdk/{workflow-check-provider-KG6IFH6W.mjs → workflow-check-provider-JHHACJHF.mjs} +3 -3
- package/dist/state-machine/workflow-projection.d.ts.map +1 -1
- package/dist/types/config.d.ts +2 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/workflow.d.ts +8 -0
- package/dist/types/workflow.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/sdk/chunk-FYK2DJK6.mjs.map +0 -1
- package/dist/sdk/chunk-JRDGCUEG.mjs.map +0 -1
- package/dist/sdk/chunk-QRR6OJQN.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-HR6YM5MI.mjs.map → check-provider-registry-XZE5PRSE.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-QBURXJ6B.mjs.map → check-provider-registry-ZOGNKTC3.mjs.map} +0 -0
- /package/dist/sdk/{config-MTEIGCOQ.mjs.map → config-SW3VO4DQ.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-62XTFB6K.mjs.map → schedule-tool-74VMD77T.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-6NALFGQR.mjs.map → schedule-tool-WSZKJUNQ.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-5K275UT6.mjs.map → schedule-tool-handler-EOQBRZSD.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-RLAKPPPX.mjs.map → schedule-tool-handler-Q7E5NBHS.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-6TEZHBZJ.mjs.map → workflow-check-provider-GIW4WECT.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-KG6IFH6W.mjs.map → workflow-check-provider-JHHACJHF.mjs.map} +0 -0
|
@@ -1352,7 +1352,7 @@ var init_config_schema = __esm({
|
|
|
1352
1352
|
description: "Arguments/inputs for the workflow"
|
|
1353
1353
|
},
|
|
1354
1354
|
overrides: {
|
|
1355
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1355
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13519-28113-src_types_config.ts-0-55265%3E%3E",
|
|
1356
1356
|
description: "Override specific step configurations in the workflow"
|
|
1357
1357
|
},
|
|
1358
1358
|
output_mapping: {
|
|
@@ -1368,7 +1368,7 @@ var init_config_schema = __esm({
|
|
|
1368
1368
|
description: "Config file path - alternative to workflow ID (loads a Visor config file as workflow)"
|
|
1369
1369
|
},
|
|
1370
1370
|
workflow_overrides: {
|
|
1371
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1371
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13519-28113-src_types_config.ts-0-55265%3E%3E",
|
|
1372
1372
|
description: "Alias for overrides - workflow step overrides (backward compatibility)"
|
|
1373
1373
|
},
|
|
1374
1374
|
ref: {
|
|
@@ -1789,11 +1789,11 @@ var init_config_schema = __esm({
|
|
|
1789
1789
|
},
|
|
1790
1790
|
description: "Array of blocked command patterns (e.g., ['rm -rf', 'sudo'])"
|
|
1791
1791
|
},
|
|
1792
|
-
|
|
1792
|
+
disableDefaultAllow: {
|
|
1793
1793
|
type: "boolean",
|
|
1794
1794
|
description: "Disable default safe command list (use with caution)"
|
|
1795
1795
|
},
|
|
1796
|
-
|
|
1796
|
+
disableDefaultDeny: {
|
|
1797
1797
|
type: "boolean",
|
|
1798
1798
|
description: "Disable default dangerous command blocklist (use with extreme caution)"
|
|
1799
1799
|
},
|
|
@@ -2057,7 +2057,7 @@ var init_config_schema = __esm({
|
|
|
2057
2057
|
description: "Custom output name (defaults to workflow name)"
|
|
2058
2058
|
},
|
|
2059
2059
|
overrides: {
|
|
2060
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
2060
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13519-28113-src_types_config.ts-0-55265%3E%3E",
|
|
2061
2061
|
description: "Step overrides"
|
|
2062
2062
|
},
|
|
2063
2063
|
output_mapping: {
|
|
@@ -2072,13 +2072,13 @@ var init_config_schema = __esm({
|
|
|
2072
2072
|
"^x-": {}
|
|
2073
2073
|
}
|
|
2074
2074
|
},
|
|
2075
|
-
"Record<string,Partial<interface-src_types_config.ts-
|
|
2075
|
+
"Record<string,Partial<interface-src_types_config.ts-13519-28113-src_types_config.ts-0-55265>>": {
|
|
2076
2076
|
type: "object",
|
|
2077
2077
|
additionalProperties: {
|
|
2078
|
-
$ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-
|
|
2078
|
+
$ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-13519-28113-src_types_config.ts-0-55265%3E"
|
|
2079
2079
|
}
|
|
2080
2080
|
},
|
|
2081
|
-
"Partial<interface-src_types_config.ts-
|
|
2081
|
+
"Partial<interface-src_types_config.ts-13519-28113-src_types_config.ts-0-55265>": {
|
|
2082
2082
|
type: "object",
|
|
2083
2083
|
additionalProperties: false
|
|
2084
2084
|
},
|
|
@@ -2784,6 +2784,13 @@ var init_config_schema = __esm({
|
|
|
2784
2784
|
cache: {
|
|
2785
2785
|
$ref: "#/definitions/SandboxCacheConfig",
|
|
2786
2786
|
description: "Cache volume configuration"
|
|
2787
|
+
},
|
|
2788
|
+
bind_paths: {
|
|
2789
|
+
type: "array",
|
|
2790
|
+
items: {
|
|
2791
|
+
$ref: "#/definitions/SandboxBindPath"
|
|
2792
|
+
},
|
|
2793
|
+
description: "Additional host paths to bind-mount into the sandbox"
|
|
2787
2794
|
}
|
|
2788
2795
|
},
|
|
2789
2796
|
additionalProperties: false,
|
|
@@ -2844,6 +2851,29 @@ var init_config_schema = __esm({
|
|
|
2844
2851
|
"^x-": {}
|
|
2845
2852
|
}
|
|
2846
2853
|
},
|
|
2854
|
+
SandboxBindPath: {
|
|
2855
|
+
type: "object",
|
|
2856
|
+
properties: {
|
|
2857
|
+
host: {
|
|
2858
|
+
type: "string",
|
|
2859
|
+
description: "Host path (supports ~ prefix for home directory)"
|
|
2860
|
+
},
|
|
2861
|
+
container: {
|
|
2862
|
+
type: "string",
|
|
2863
|
+
description: "Container path (defaults to resolved host path)"
|
|
2864
|
+
},
|
|
2865
|
+
read_only: {
|
|
2866
|
+
type: "boolean",
|
|
2867
|
+
description: "Mount as read-only (default: true)"
|
|
2868
|
+
}
|
|
2869
|
+
},
|
|
2870
|
+
required: ["host"],
|
|
2871
|
+
additionalProperties: false,
|
|
2872
|
+
description: "Additional host path to bind-mount into the sandbox",
|
|
2873
|
+
patternProperties: {
|
|
2874
|
+
"^x-": {}
|
|
2875
|
+
}
|
|
2876
|
+
},
|
|
2847
2877
|
SandboxDefaults: {
|
|
2848
2878
|
type: "object",
|
|
2849
2879
|
properties: {
|
|
@@ -4216,7 +4246,6 @@ ${errors}`);
|
|
|
4216
4246
|
["compose", config.compose],
|
|
4217
4247
|
["service", config.service],
|
|
4218
4248
|
["cache", config.cache],
|
|
4219
|
-
["visor_path", config.visor_path],
|
|
4220
4249
|
["resources", config.resources]
|
|
4221
4250
|
];
|
|
4222
4251
|
for (const [field, value] of dockerOnlyFields) {
|
|
@@ -4262,20 +4291,6 @@ ${errors}`);
|
|
|
4262
4291
|
message: `Compose file path '${config.compose}' in sandbox '${name}' must not contain '..' path traversal`
|
|
4263
4292
|
});
|
|
4264
4293
|
}
|
|
4265
|
-
if (config.visor_path) {
|
|
4266
|
-
if (!config.visor_path.startsWith("/")) {
|
|
4267
|
-
errors.push({
|
|
4268
|
-
field: `sandboxes.${name}.visor_path`,
|
|
4269
|
-
message: `visor_path '${config.visor_path}' in sandbox '${name}' must be an absolute path (start with /)`
|
|
4270
|
-
});
|
|
4271
|
-
}
|
|
4272
|
-
if (/\.\./.test(config.visor_path)) {
|
|
4273
|
-
errors.push({
|
|
4274
|
-
field: `sandboxes.${name}.visor_path`,
|
|
4275
|
-
message: `visor_path '${config.visor_path}' in sandbox '${name}' must not contain '..' path traversal`
|
|
4276
|
-
});
|
|
4277
|
-
}
|
|
4278
|
-
}
|
|
4279
4294
|
if (config.cache?.paths) {
|
|
4280
4295
|
for (const p of config.cache.paths) {
|
|
4281
4296
|
if (!p.startsWith("/")) {
|
|
@@ -4304,11 +4319,25 @@ ${errors}`);
|
|
|
4304
4319
|
}
|
|
4305
4320
|
}
|
|
4306
4321
|
}
|
|
4307
|
-
if (config.
|
|
4322
|
+
if (config.visor_path) {
|
|
4323
|
+
if (!config.visor_path.startsWith("/")) {
|
|
4324
|
+
errors.push({
|
|
4325
|
+
field: `sandboxes.${name}.visor_path`,
|
|
4326
|
+
message: `visor_path '${config.visor_path}' in sandbox '${name}' must be an absolute path (start with /)`
|
|
4327
|
+
});
|
|
4328
|
+
}
|
|
4329
|
+
if (/\.\./.test(config.visor_path)) {
|
|
4330
|
+
errors.push({
|
|
4331
|
+
field: `sandboxes.${name}.visor_path`,
|
|
4332
|
+
message: `visor_path '${config.visor_path}' in sandbox '${name}' must not contain '..' path traversal`
|
|
4333
|
+
});
|
|
4334
|
+
}
|
|
4335
|
+
}
|
|
4336
|
+
if (config.workdir && config.workdir !== "host") {
|
|
4308
4337
|
if (!config.workdir.startsWith("/")) {
|
|
4309
4338
|
errors.push({
|
|
4310
4339
|
field: `sandboxes.${name}.workdir`,
|
|
4311
|
-
message: `Workdir '${config.workdir}' in sandbox '${name}' must be an absolute path (start with /)`
|
|
4340
|
+
message: `Workdir '${config.workdir}' in sandbox '${name}' must be an absolute path (start with /) or the literal "host"`
|
|
4312
4341
|
});
|
|
4313
4342
|
}
|
|
4314
4343
|
if (/\.\./.test(config.workdir)) {
|
|
@@ -4318,6 +4347,37 @@ ${errors}`);
|
|
|
4318
4347
|
});
|
|
4319
4348
|
}
|
|
4320
4349
|
}
|
|
4350
|
+
if (config.bind_paths) {
|
|
4351
|
+
for (let i = 0; i < config.bind_paths.length; i++) {
|
|
4352
|
+
const bp = config.bind_paths[i];
|
|
4353
|
+
if (!bp.host) {
|
|
4354
|
+
errors.push({
|
|
4355
|
+
field: `sandboxes.${name}.bind_paths[${i}].host`,
|
|
4356
|
+
message: `bind_paths[${i}] in sandbox '${name}' is missing required 'host' field`
|
|
4357
|
+
});
|
|
4358
|
+
}
|
|
4359
|
+
if (bp.host && /\.\./.test(bp.host)) {
|
|
4360
|
+
errors.push({
|
|
4361
|
+
field: `sandboxes.${name}.bind_paths[${i}].host`,
|
|
4362
|
+
message: `bind_paths[${i}].host '${bp.host}' in sandbox '${name}' must not contain '..' path traversal`
|
|
4363
|
+
});
|
|
4364
|
+
}
|
|
4365
|
+
if (bp.container) {
|
|
4366
|
+
if (!bp.container.startsWith("/")) {
|
|
4367
|
+
errors.push({
|
|
4368
|
+
field: `sandboxes.${name}.bind_paths[${i}].container`,
|
|
4369
|
+
message: `bind_paths[${i}].container '${bp.container}' in sandbox '${name}' must be an absolute path (start with /)`
|
|
4370
|
+
});
|
|
4371
|
+
}
|
|
4372
|
+
if (/\.\./.test(bp.container)) {
|
|
4373
|
+
errors.push({
|
|
4374
|
+
field: `sandboxes.${name}.bind_paths[${i}].container`,
|
|
4375
|
+
message: `bind_paths[${i}].container '${bp.container}' in sandbox '${name}' must not contain '..' path traversal`
|
|
4376
|
+
});
|
|
4377
|
+
}
|
|
4378
|
+
}
|
|
4379
|
+
}
|
|
4380
|
+
}
|
|
4321
4381
|
}
|
|
4322
4382
|
/**
|
|
4323
4383
|
* Validate individual check configuration
|
|
@@ -5058,4 +5118,4 @@ export {
|
|
|
5058
5118
|
config_exports,
|
|
5059
5119
|
init_config
|
|
5060
5120
|
};
|
|
5061
|
-
//# sourceMappingURL=chunk-
|
|
5121
|
+
//# sourceMappingURL=chunk-CPYQDJ27.mjs.map
|