@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.
Files changed (57) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/docs/ai-configuration.md +4 -4
  3. package/dist/docs/sandbox-engines.md +53 -5
  4. package/dist/examples/ai-with-bash.yaml +2 -2
  5. package/dist/examples/sandbox-bind-paths.yaml +31 -0
  6. package/dist/examples/sandbox-host-workdir.yaml +27 -0
  7. package/dist/examples/workflow-sandbox.yaml +43 -0
  8. package/dist/generated/config-schema.d.ts +38 -8
  9. package/dist/generated/config-schema.d.ts.map +1 -1
  10. package/dist/generated/config-schema.json +40 -8
  11. package/dist/index.js +148 -36
  12. package/dist/sandbox/bubblewrap-sandbox.d.ts.map +1 -1
  13. package/dist/sandbox/check-runner.d.ts.map +1 -1
  14. package/dist/sandbox/docker-image-sandbox.d.ts.map +1 -1
  15. package/dist/sandbox/seatbelt-sandbox.d.ts.map +1 -1
  16. package/dist/sandbox/types.d.ts +13 -0
  17. package/dist/sandbox/types.d.ts.map +1 -1
  18. package/dist/scheduler/schedule-tool.d.ts +2 -0
  19. package/dist/scheduler/schedule-tool.d.ts.map +1 -1
  20. package/dist/sdk/{check-provider-registry-HR6YM5MI.mjs → check-provider-registry-XZE5PRSE.mjs} +3 -3
  21. package/dist/sdk/{check-provider-registry-QBURXJ6B.mjs → check-provider-registry-ZOGNKTC3.mjs} +3 -3
  22. package/dist/sdk/{chunk-FYK2DJK6.mjs → chunk-CPYQDJ27.mjs} +86 -26
  23. package/dist/sdk/chunk-CPYQDJ27.mjs.map +1 -0
  24. package/dist/sdk/{chunk-JRDGCUEG.mjs → chunk-DXNWUIAN.mjs} +130 -91
  25. package/dist/sdk/chunk-DXNWUIAN.mjs.map +1 -0
  26. package/dist/sdk/{chunk-QRR6OJQN.mjs → chunk-EYQWEVZF.mjs} +130 -91
  27. package/dist/sdk/chunk-EYQWEVZF.mjs.map +1 -0
  28. package/dist/sdk/{config-MTEIGCOQ.mjs → config-SW3VO4DQ.mjs} +2 -2
  29. package/dist/sdk/{schedule-tool-62XTFB6K.mjs → schedule-tool-74VMD77T.mjs} +3 -3
  30. package/dist/sdk/{schedule-tool-6NALFGQR.mjs → schedule-tool-WSZKJUNQ.mjs} +3 -3
  31. package/dist/sdk/{schedule-tool-handler-5K275UT6.mjs → schedule-tool-handler-EOQBRZSD.mjs} +3 -3
  32. package/dist/sdk/{schedule-tool-handler-RLAKPPPX.mjs → schedule-tool-handler-Q7E5NBHS.mjs} +3 -3
  33. package/dist/sdk/sdk.d.mts +15 -2
  34. package/dist/sdk/sdk.d.ts +15 -2
  35. package/dist/sdk/sdk.js +209 -110
  36. package/dist/sdk/sdk.js.map +1 -1
  37. package/dist/sdk/sdk.mjs +2 -2
  38. package/dist/sdk/{workflow-check-provider-6TEZHBZJ.mjs → workflow-check-provider-GIW4WECT.mjs} +3 -3
  39. package/dist/sdk/{workflow-check-provider-KG6IFH6W.mjs → workflow-check-provider-JHHACJHF.mjs} +3 -3
  40. package/dist/state-machine/workflow-projection.d.ts.map +1 -1
  41. package/dist/types/config.d.ts +2 -2
  42. package/dist/types/config.d.ts.map +1 -1
  43. package/dist/types/workflow.d.ts +8 -0
  44. package/dist/types/workflow.d.ts.map +1 -1
  45. package/package.json +1 -1
  46. package/dist/sdk/chunk-FYK2DJK6.mjs.map +0 -1
  47. package/dist/sdk/chunk-JRDGCUEG.mjs.map +0 -1
  48. package/dist/sdk/chunk-QRR6OJQN.mjs.map +0 -1
  49. /package/dist/sdk/{check-provider-registry-HR6YM5MI.mjs.map → check-provider-registry-XZE5PRSE.mjs.map} +0 -0
  50. /package/dist/sdk/{check-provider-registry-QBURXJ6B.mjs.map → check-provider-registry-ZOGNKTC3.mjs.map} +0 -0
  51. /package/dist/sdk/{config-MTEIGCOQ.mjs.map → config-SW3VO4DQ.mjs.map} +0 -0
  52. /package/dist/sdk/{schedule-tool-62XTFB6K.mjs.map → schedule-tool-74VMD77T.mjs.map} +0 -0
  53. /package/dist/sdk/{schedule-tool-6NALFGQR.mjs.map → schedule-tool-WSZKJUNQ.mjs.map} +0 -0
  54. /package/dist/sdk/{schedule-tool-handler-5K275UT6.mjs.map → schedule-tool-handler-EOQBRZSD.mjs.map} +0 -0
  55. /package/dist/sdk/{schedule-tool-handler-RLAKPPPX.mjs.map → schedule-tool-handler-Q7E5NBHS.mjs.map} +0 -0
  56. /package/dist/sdk/{workflow-check-provider-6TEZHBZJ.mjs.map → workflow-check-provider-GIW4WECT.mjs.map} +0 -0
  57. /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-13509-28103-src_types_config.ts-0-55255%3E%3E",
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-13509-28103-src_types_config.ts-0-55255%3E%3E",
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
- noDefaultAllow: {
1792
+ disableDefaultAllow: {
1793
1793
  type: "boolean",
1794
1794
  description: "Disable default safe command list (use with caution)"
1795
1795
  },
1796
- noDefaultDeny: {
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-13509-28103-src_types_config.ts-0-55255%3E%3E",
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-13509-28103-src_types_config.ts-0-55255>>": {
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-13509-28103-src_types_config.ts-0-55255%3E"
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-13509-28103-src_types_config.ts-0-55255>": {
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.workdir) {
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-FYK2DJK6.mjs.map
5121
+ //# sourceMappingURL=chunk-CPYQDJ27.mjs.map