@probelabs/visor 0.1.131 → 0.1.132
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/README.md +460 -596
- package/action.yml +2 -2
- package/dist/ai-review-service.d.ts +3 -0
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/config/config-watcher.d.ts +15 -1
- package/dist/config/config-watcher.d.ts.map +1 -1
- package/dist/enterprise/policy/policy-input-builder.d.ts +2 -0
- package/dist/enterprise/policy/policy-input-builder.d.ts.map +1 -1
- package/dist/frontends/slack-frontend.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +404 -96
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +2875 -0
- package/dist/index.js +23064 -8507
- package/dist/{traces/run-2026-02-15T19-14-20-379Z.ndjson → output/traces/run-2026-02-18T11-06-48-673Z.ndjson} +84 -84
- package/dist/{traces/run-2026-02-15T19-15-09-410Z.ndjson → output/traces/run-2026-02-18T11-07-37-310Z.ndjson} +1017 -1017
- package/dist/providers/ai-check-provider.d.ts +12 -0
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/workflow-check-provider.d.ts.map +1 -1
- package/dist/providers/workflow-tool-executor.d.ts +5 -1
- package/dist/providers/workflow-tool-executor.d.ts.map +1 -1
- package/dist/sdk/{check-provider-registry-S7BMQ2FC.mjs → check-provider-registry-4WLTLPMU.mjs} +6 -6
- package/dist/sdk/{check-provider-registry-ZOLEYDKM.mjs → check-provider-registry-7TCA3NSG.mjs} +6 -6
- package/dist/sdk/{check-provider-registry-AAPPJ4CP.mjs → check-provider-registry-RRUZHGJI.mjs} +6 -6
- package/dist/sdk/{chunk-OMFPM576.mjs → chunk-27RV5RR2.mjs} +2 -2
- package/dist/sdk/{chunk-6ZZ4DPAA.mjs → chunk-5VY5QJTY.mjs} +231 -42
- package/dist/sdk/chunk-5VY5QJTY.mjs.map +1 -0
- package/dist/sdk/{chunk-2GCSK3PD.mjs → chunk-BGBXLPLL.mjs} +3 -3
- package/dist/sdk/{chunk-LDFUW34H.mjs → chunk-BOGVSF57.mjs} +231 -42
- package/dist/sdk/chunk-BOGVSF57.mjs.map +1 -0
- package/dist/sdk/{chunk-EBTD2D4L.mjs → chunk-FAKITJ3J.mjs} +2 -2
- package/dist/sdk/{chunk-RI77TA6V.mjs → chunk-LMJNI6RM.mjs} +4 -4
- package/dist/sdk/chunk-LMJNI6RM.mjs.map +1 -0
- package/dist/sdk/{chunk-LQ5B4T6L.mjs → chunk-U3BLLEW3.mjs} +431 -82
- package/dist/sdk/chunk-U3BLLEW3.mjs.map +1 -0
- package/dist/sdk/{chunk-VO4N6TEL.mjs → chunk-UBDHAGYY.mjs} +3 -3
- package/dist/sdk/{chunk-N4I6ZDCJ.mjs → chunk-VG7FWDC2.mjs} +3 -3
- package/dist/sdk/{chunk-RI77TA6V.mjs.map → chunk-VG7FWDC2.mjs.map} +1 -1
- package/dist/sdk/{chunk-MQ57AB4U.mjs → chunk-XGI47XIH.mjs} +260 -55
- package/dist/sdk/chunk-XGI47XIH.mjs.map +1 -0
- package/dist/sdk/{config-4EG7IQIU.mjs → config-FMIIATKX.mjs} +2 -2
- package/dist/sdk/{failure-condition-evaluator-GLHZZF47.mjs → failure-condition-evaluator-MUUAK7MN.mjs} +3 -3
- package/dist/sdk/{failure-condition-evaluator-KN55WXRO.mjs → failure-condition-evaluator-PNONVBXD.mjs} +3 -3
- package/dist/sdk/{github-frontend-F4TE2JY7.mjs → github-frontend-DWF6BLZH.mjs} +3 -3
- package/dist/sdk/{github-frontend-HCOKL53D.mjs → github-frontend-WR4S3NG5.mjs} +3 -3
- package/dist/sdk/{host-SAT6RHDX.mjs → host-S3LSWESP.mjs} +3 -3
- package/dist/sdk/{host-VA3ET7N6.mjs → host-U7V54J2H.mjs} +3 -3
- package/dist/sdk/{routing-KFYQGOYU.mjs → routing-F4FOWVKF.mjs} +4 -4
- package/dist/sdk/{routing-OXQKETSA.mjs → routing-MVDVJDYJ.mjs} +4 -4
- package/dist/sdk/{schedule-tool-handler-OQF57URO.mjs → schedule-tool-handler-7DNEGDZC.mjs} +6 -6
- package/dist/sdk/{schedule-tool-handler-PJVKWSYX.mjs → schedule-tool-handler-FRN3KKRM.mjs} +6 -6
- package/dist/sdk/{schedule-tool-handler-G353DHS6.mjs → schedule-tool-handler-VFES42DD.mjs} +6 -6
- package/dist/sdk/sdk.d.mts +56 -38
- package/dist/sdk/sdk.d.ts +56 -38
- package/dist/sdk/sdk.js +744 -115
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +5 -5
- package/dist/sdk/{slack-frontend-LAY45IBR.mjs → slack-frontend-JS2VAZWB.mjs} +95 -4
- package/dist/sdk/slack-frontend-JS2VAZWB.mjs.map +1 -0
- package/dist/sdk/{trace-helpers-R2ETIEC2.mjs → trace-helpers-KSPGA24B.mjs} +2 -2
- package/dist/sdk/{trace-helpers-LOPBHYYX.mjs → trace-helpers-RDPXIN4S.mjs} +2 -2
- package/dist/sdk/{workflow-check-provider-LRWD52WN.mjs → workflow-check-provider-4NFWH6YO.mjs} +6 -6
- package/dist/sdk/{workflow-check-provider-N2DRFQDB.mjs → workflow-check-provider-BMVJ6X7N.mjs} +6 -6
- package/dist/sdk/{workflow-check-provider-57KAR4Y4.mjs → workflow-check-provider-CPGIRZMH.mjs} +6 -6
- package/dist/slack/adapter.d.ts +2 -0
- package/dist/slack/adapter.d.ts.map +1 -1
- package/dist/slack/client.d.ts +3 -0
- package/dist/slack/client.d.ts.map +1 -1
- package/dist/slack/markdown.d.ts +29 -0
- package/dist/slack/markdown.d.ts.map +1 -1
- package/dist/slack/socket-runner.d.ts +2 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/{output/traces/run-2026-02-15T19-14-20-379Z.ndjson → traces/run-2026-02-18T11-06-48-673Z.ndjson} +84 -84
- package/dist/{output/traces/run-2026-02-15T19-15-09-410Z.ndjson → traces/run-2026-02-18T11-07-37-310Z.ndjson} +1017 -1017
- package/dist/tui/chat-tui.d.ts +7 -0
- package/dist/tui/chat-tui.d.ts.map +1 -1
- package/dist/tui/components/input-bar.d.ts +11 -0
- package/dist/tui/components/input-bar.d.ts.map +1 -1
- package/dist/tui/components/trace-viewer.d.ts +25 -1
- package/dist/tui/components/trace-viewer.d.ts.map +1 -1
- package/dist/types/bot.d.ts +12 -0
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/config.d.ts +4 -1
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/defaults/.visor.yaml +0 -420
- package/dist/sdk/chunk-6ZZ4DPAA.mjs.map +0 -1
- package/dist/sdk/chunk-LDFUW34H.mjs.map +0 -1
- package/dist/sdk/chunk-LQ5B4T6L.mjs.map +0 -1
- package/dist/sdk/chunk-MQ57AB4U.mjs.map +0 -1
- package/dist/sdk/chunk-N4I6ZDCJ.mjs.map +0 -1
- package/dist/sdk/slack-frontend-LAY45IBR.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-AAPPJ4CP.mjs.map → check-provider-registry-4WLTLPMU.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-S7BMQ2FC.mjs.map → check-provider-registry-7TCA3NSG.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-ZOLEYDKM.mjs.map → check-provider-registry-RRUZHGJI.mjs.map} +0 -0
- /package/dist/sdk/{chunk-EBTD2D4L.mjs.map → chunk-27RV5RR2.mjs.map} +0 -0
- /package/dist/sdk/{chunk-2GCSK3PD.mjs.map → chunk-BGBXLPLL.mjs.map} +0 -0
- /package/dist/sdk/{chunk-OMFPM576.mjs.map → chunk-FAKITJ3J.mjs.map} +0 -0
- /package/dist/sdk/{chunk-VO4N6TEL.mjs.map → chunk-UBDHAGYY.mjs.map} +0 -0
- /package/dist/sdk/{config-4EG7IQIU.mjs.map → config-FMIIATKX.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-GLHZZF47.mjs.map → failure-condition-evaluator-MUUAK7MN.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-KN55WXRO.mjs.map → failure-condition-evaluator-PNONVBXD.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-F4TE2JY7.mjs.map → github-frontend-DWF6BLZH.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-HCOKL53D.mjs.map → github-frontend-WR4S3NG5.mjs.map} +0 -0
- /package/dist/sdk/{host-SAT6RHDX.mjs.map → host-S3LSWESP.mjs.map} +0 -0
- /package/dist/sdk/{host-VA3ET7N6.mjs.map → host-U7V54J2H.mjs.map} +0 -0
- /package/dist/sdk/{routing-KFYQGOYU.mjs.map → routing-F4FOWVKF.mjs.map} +0 -0
- /package/dist/sdk/{routing-OXQKETSA.mjs.map → routing-MVDVJDYJ.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-G353DHS6.mjs.map → schedule-tool-handler-7DNEGDZC.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-OQF57URO.mjs.map → schedule-tool-handler-FRN3KKRM.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-PJVKWSYX.mjs.map → schedule-tool-handler-VFES42DD.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-LOPBHYYX.mjs.map → trace-helpers-KSPGA24B.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-R2ETIEC2.mjs.map → trace-helpers-RDPXIN4S.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-57KAR4Y4.mjs.map → workflow-check-provider-4NFWH6YO.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-LRWD52WN.mjs.map → workflow-check-provider-BMVJ6X7N.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-N2DRFQDB.mjs.map → workflow-check-provider-CPGIRZMH.mjs.map} +0 -0
|
@@ -515,6 +515,10 @@ var init_config_schema = __esm({
|
|
|
515
515
|
type: "number",
|
|
516
516
|
description: "Maximum number of checks to run in parallel (default: 3)"
|
|
517
517
|
},
|
|
518
|
+
max_ai_concurrency: {
|
|
519
|
+
type: "number",
|
|
520
|
+
description: "Maximum total concurrent AI API calls across all checks (default: unlimited). When set, creates a shared concurrency limiter that gates every LLM request across all ProbeAgent instances in this run."
|
|
521
|
+
},
|
|
518
522
|
fail_fast: {
|
|
519
523
|
type: "boolean",
|
|
520
524
|
description: "Stop execution when any check fails (default: false)"
|
|
@@ -561,6 +565,18 @@ var init_config_schema = __esm({
|
|
|
561
565
|
$ref: "#/definitions/WorkspaceConfig",
|
|
562
566
|
description: "Workspace isolation configuration for sandboxed execution"
|
|
563
567
|
},
|
|
568
|
+
sandbox: {
|
|
569
|
+
type: "string",
|
|
570
|
+
description: "Workspace-level default sandbox name (all checks use this unless overridden)"
|
|
571
|
+
},
|
|
572
|
+
sandboxes: {
|
|
573
|
+
$ref: "#/definitions/Record%3Cstring%2CSandboxConfig%3E",
|
|
574
|
+
description: "Named sandbox environment definitions"
|
|
575
|
+
},
|
|
576
|
+
sandbox_defaults: {
|
|
577
|
+
$ref: "#/definitions/SandboxDefaults",
|
|
578
|
+
description: "Workspace-level sandbox defaults (env allowlist, etc.)"
|
|
579
|
+
},
|
|
564
580
|
slack: {
|
|
565
581
|
$ref: "#/definitions/SlackConfig",
|
|
566
582
|
description: "Slack configuration"
|
|
@@ -571,7 +587,7 @@ var init_config_schema = __esm({
|
|
|
571
587
|
},
|
|
572
588
|
policy: {
|
|
573
589
|
$ref: "#/definitions/PolicyConfig",
|
|
574
|
-
description: "Enterprise policy engine configuration
|
|
590
|
+
description: "Enterprise policy engine configuration"
|
|
575
591
|
}
|
|
576
592
|
},
|
|
577
593
|
required: ["version"],
|
|
@@ -874,7 +890,7 @@ var init_config_schema = __esm({
|
|
|
874
890
|
},
|
|
875
891
|
ai_bash_config_js: {
|
|
876
892
|
type: "string",
|
|
877
|
-
description: "JavaScript expression to dynamically compute bash configuration for this AI check. Expression has access to: outputs, inputs, pr, files, env, memory
|
|
893
|
+
description: "JavaScript expression to dynamically compute bash configuration for this AI check. Expression has access to: outputs, inputs, pr, files, env, memory Must return a BashConfig object with allow/deny arrays.\n\nExample: ``` return outputs['build-config']?.bash_config ?? {}; ```"
|
|
878
894
|
},
|
|
879
895
|
claude_code: {
|
|
880
896
|
$ref: "#/definitions/ClaudeCodeConfig",
|
|
@@ -1140,7 +1156,7 @@ var init_config_schema = __esm({
|
|
|
1140
1156
|
description: "Arguments/inputs for the workflow"
|
|
1141
1157
|
},
|
|
1142
1158
|
overrides: {
|
|
1143
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1159
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13489-27516-src_types_config.ts-0-51381%3E%3E",
|
|
1144
1160
|
description: "Override specific step configurations in the workflow"
|
|
1145
1161
|
},
|
|
1146
1162
|
output_mapping: {
|
|
@@ -1156,7 +1172,7 @@ var init_config_schema = __esm({
|
|
|
1156
1172
|
description: "Config file path - alternative to workflow ID (loads a Visor config file as workflow)"
|
|
1157
1173
|
},
|
|
1158
1174
|
workflow_overrides: {
|
|
1159
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1175
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13489-27516-src_types_config.ts-0-51381%3E%3E",
|
|
1160
1176
|
description: "Alias for overrides - workflow step overrides (backward compatibility)"
|
|
1161
1177
|
},
|
|
1162
1178
|
ref: {
|
|
@@ -1226,6 +1242,10 @@ var init_config_schema = __esm({
|
|
|
1226
1242
|
type: "boolean",
|
|
1227
1243
|
description: "Keep worktree after workflow completion (default: false)"
|
|
1228
1244
|
},
|
|
1245
|
+
sandbox: {
|
|
1246
|
+
type: "string",
|
|
1247
|
+
description: "Sandbox name to use for this check (overrides workspace-level default)"
|
|
1248
|
+
},
|
|
1229
1249
|
policy: {
|
|
1230
1250
|
$ref: "#/definitions/StepPolicyOverride",
|
|
1231
1251
|
description: "Per-step policy override (enterprise)"
|
|
@@ -1370,6 +1390,14 @@ var init_config_schema = __esm({
|
|
|
1370
1390
|
completion_prompt: {
|
|
1371
1391
|
type: "string",
|
|
1372
1392
|
description: "Completion prompt for post-completion validation/review (runs after attempt_completion)"
|
|
1393
|
+
},
|
|
1394
|
+
enable_scheduler: {
|
|
1395
|
+
type: "boolean",
|
|
1396
|
+
description: "Enable the schedule tool for scheduling workflow executions (requires scheduler configuration)"
|
|
1397
|
+
},
|
|
1398
|
+
enableExecutePlan: {
|
|
1399
|
+
type: "boolean",
|
|
1400
|
+
description: "Enable the execute_plan DSL orchestration tool (replaces analyze_all when enabled)"
|
|
1373
1401
|
}
|
|
1374
1402
|
},
|
|
1375
1403
|
additionalProperties: false,
|
|
@@ -1832,7 +1860,7 @@ var init_config_schema = __esm({
|
|
|
1832
1860
|
description: "Custom output name (defaults to workflow name)"
|
|
1833
1861
|
},
|
|
1834
1862
|
overrides: {
|
|
1835
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1863
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13489-27516-src_types_config.ts-0-51381%3E%3E",
|
|
1836
1864
|
description: "Step overrides"
|
|
1837
1865
|
},
|
|
1838
1866
|
output_mapping: {
|
|
@@ -1847,13 +1875,13 @@ var init_config_schema = __esm({
|
|
|
1847
1875
|
"^x-": {}
|
|
1848
1876
|
}
|
|
1849
1877
|
},
|
|
1850
|
-
"Record<string,Partial<interface-src_types_config.ts-
|
|
1878
|
+
"Record<string,Partial<interface-src_types_config.ts-13489-27516-src_types_config.ts-0-51381>>": {
|
|
1851
1879
|
type: "object",
|
|
1852
1880
|
additionalProperties: {
|
|
1853
|
-
$ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-
|
|
1881
|
+
$ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-13489-27516-src_types_config.ts-0-51381%3E"
|
|
1854
1882
|
}
|
|
1855
1883
|
},
|
|
1856
|
-
"Partial<interface-src_types_config.ts-
|
|
1884
|
+
"Partial<interface-src_types_config.ts-13489-27516-src_types_config.ts-0-51381>": {
|
|
1857
1885
|
type: "object",
|
|
1858
1886
|
additionalProperties: false
|
|
1859
1887
|
},
|
|
@@ -1967,9 +1995,9 @@ var init_config_schema = __esm({
|
|
|
1967
1995
|
run: {
|
|
1968
1996
|
type: "array",
|
|
1969
1997
|
items: {
|
|
1970
|
-
|
|
1998
|
+
$ref: "#/definitions/OnSuccessRunItem"
|
|
1971
1999
|
},
|
|
1972
|
-
description: "Post-success steps to run"
|
|
2000
|
+
description: "Post-success steps to run - can be step names or rich invocations with arguments"
|
|
1973
2001
|
},
|
|
1974
2002
|
goto: {
|
|
1975
2003
|
type: "string",
|
|
@@ -2001,6 +2029,20 @@ var init_config_schema = __esm({
|
|
|
2001
2029
|
"^x-": {}
|
|
2002
2030
|
}
|
|
2003
2031
|
},
|
|
2032
|
+
OnSuccessRunItem: {
|
|
2033
|
+
anyOf: [
|
|
2034
|
+
{
|
|
2035
|
+
type: "string"
|
|
2036
|
+
},
|
|
2037
|
+
{
|
|
2038
|
+
$ref: "#/definitions/OnInitStepInvocation"
|
|
2039
|
+
},
|
|
2040
|
+
{
|
|
2041
|
+
$ref: "#/definitions/OnInitWorkflowInvocation"
|
|
2042
|
+
}
|
|
2043
|
+
],
|
|
2044
|
+
description: "Success routing run item - can be step name, step with args, or workflow with args"
|
|
2045
|
+
},
|
|
2004
2046
|
OnFinishConfig: {
|
|
2005
2047
|
type: "object",
|
|
2006
2048
|
properties: {
|
|
@@ -2041,6 +2083,40 @@ var init_config_schema = __esm({
|
|
|
2041
2083
|
"^x-": {}
|
|
2042
2084
|
}
|
|
2043
2085
|
},
|
|
2086
|
+
StepPolicyOverride: {
|
|
2087
|
+
type: "object",
|
|
2088
|
+
properties: {
|
|
2089
|
+
require: {
|
|
2090
|
+
anyOf: [
|
|
2091
|
+
{
|
|
2092
|
+
type: "string"
|
|
2093
|
+
},
|
|
2094
|
+
{
|
|
2095
|
+
type: "array",
|
|
2096
|
+
items: {
|
|
2097
|
+
type: "string"
|
|
2098
|
+
}
|
|
2099
|
+
}
|
|
2100
|
+
],
|
|
2101
|
+
description: "Required role(s) - any of these roles suffices"
|
|
2102
|
+
},
|
|
2103
|
+
deny: {
|
|
2104
|
+
type: "array",
|
|
2105
|
+
items: {
|
|
2106
|
+
type: "string"
|
|
2107
|
+
},
|
|
2108
|
+
description: "Explicit deny for roles"
|
|
2109
|
+
},
|
|
2110
|
+
rule: {
|
|
2111
|
+
type: "string",
|
|
2112
|
+
description: "Custom OPA rule path for this step"
|
|
2113
|
+
}
|
|
2114
|
+
},
|
|
2115
|
+
additionalProperties: false,
|
|
2116
|
+
patternProperties: {
|
|
2117
|
+
"^x-": {}
|
|
2118
|
+
}
|
|
2119
|
+
},
|
|
2044
2120
|
OutputConfig: {
|
|
2045
2121
|
type: "object",
|
|
2046
2122
|
properties: {
|
|
@@ -2447,6 +2523,141 @@ var init_config_schema = __esm({
|
|
|
2447
2523
|
"^x-": {}
|
|
2448
2524
|
}
|
|
2449
2525
|
},
|
|
2526
|
+
"Record<string,SandboxConfig>": {
|
|
2527
|
+
type: "object",
|
|
2528
|
+
additionalProperties: {
|
|
2529
|
+
$ref: "#/definitions/SandboxConfig"
|
|
2530
|
+
}
|
|
2531
|
+
},
|
|
2532
|
+
SandboxConfig: {
|
|
2533
|
+
type: "object",
|
|
2534
|
+
properties: {
|
|
2535
|
+
image: {
|
|
2536
|
+
type: "string",
|
|
2537
|
+
description: 'Docker image to use (e.g., "node:20-alpine")'
|
|
2538
|
+
},
|
|
2539
|
+
dockerfile: {
|
|
2540
|
+
type: "string",
|
|
2541
|
+
description: "Path to Dockerfile (relative to config file or absolute)"
|
|
2542
|
+
},
|
|
2543
|
+
dockerfile_inline: {
|
|
2544
|
+
type: "string",
|
|
2545
|
+
description: "Inline Dockerfile content"
|
|
2546
|
+
},
|
|
2547
|
+
compose: {
|
|
2548
|
+
type: "string",
|
|
2549
|
+
description: "Path to docker-compose file"
|
|
2550
|
+
},
|
|
2551
|
+
service: {
|
|
2552
|
+
type: "string",
|
|
2553
|
+
description: "Service name within the compose file"
|
|
2554
|
+
},
|
|
2555
|
+
workdir: {
|
|
2556
|
+
type: "string",
|
|
2557
|
+
description: "Working directory inside container (default: /workspace)"
|
|
2558
|
+
},
|
|
2559
|
+
env_passthrough: {
|
|
2560
|
+
type: "array",
|
|
2561
|
+
items: {
|
|
2562
|
+
type: "string"
|
|
2563
|
+
},
|
|
2564
|
+
description: "Glob patterns for host env vars to forward into sandbox"
|
|
2565
|
+
},
|
|
2566
|
+
network: {
|
|
2567
|
+
type: "boolean",
|
|
2568
|
+
description: "Enable/disable network access (default: true)"
|
|
2569
|
+
},
|
|
2570
|
+
read_only: {
|
|
2571
|
+
type: "boolean",
|
|
2572
|
+
description: "Mount repo as read-only (default: false)"
|
|
2573
|
+
},
|
|
2574
|
+
resources: {
|
|
2575
|
+
$ref: "#/definitions/SandboxResourceConfig",
|
|
2576
|
+
description: "Resource limits"
|
|
2577
|
+
},
|
|
2578
|
+
visor_path: {
|
|
2579
|
+
type: "string",
|
|
2580
|
+
description: "Where visor is mounted inside container (default: /opt/visor)"
|
|
2581
|
+
},
|
|
2582
|
+
cache: {
|
|
2583
|
+
$ref: "#/definitions/SandboxCacheConfig",
|
|
2584
|
+
description: "Cache volume configuration"
|
|
2585
|
+
}
|
|
2586
|
+
},
|
|
2587
|
+
additionalProperties: false,
|
|
2588
|
+
description: "Configuration for a single sandbox environment",
|
|
2589
|
+
patternProperties: {
|
|
2590
|
+
"^x-": {}
|
|
2591
|
+
}
|
|
2592
|
+
},
|
|
2593
|
+
SandboxResourceConfig: {
|
|
2594
|
+
type: "object",
|
|
2595
|
+
properties: {
|
|
2596
|
+
memory: {
|
|
2597
|
+
type: "string",
|
|
2598
|
+
description: 'Memory limit (e.g., "512m", "2g")'
|
|
2599
|
+
},
|
|
2600
|
+
cpu: {
|
|
2601
|
+
type: "number",
|
|
2602
|
+
description: "CPU limit (e.g., 1.0, 0.5)"
|
|
2603
|
+
}
|
|
2604
|
+
},
|
|
2605
|
+
additionalProperties: false,
|
|
2606
|
+
description: "Resource limits for sandbox containers",
|
|
2607
|
+
patternProperties: {
|
|
2608
|
+
"^x-": {}
|
|
2609
|
+
}
|
|
2610
|
+
},
|
|
2611
|
+
SandboxCacheConfig: {
|
|
2612
|
+
type: "object",
|
|
2613
|
+
properties: {
|
|
2614
|
+
prefix: {
|
|
2615
|
+
type: "string",
|
|
2616
|
+
description: "Liquid template for cache scope prefix (default: git branch)"
|
|
2617
|
+
},
|
|
2618
|
+
fallback_prefix: {
|
|
2619
|
+
type: "string",
|
|
2620
|
+
description: "Fallback prefix when current prefix has no cache"
|
|
2621
|
+
},
|
|
2622
|
+
paths: {
|
|
2623
|
+
type: "array",
|
|
2624
|
+
items: {
|
|
2625
|
+
type: "string"
|
|
2626
|
+
},
|
|
2627
|
+
description: "Paths inside the container to cache"
|
|
2628
|
+
},
|
|
2629
|
+
ttl: {
|
|
2630
|
+
type: "string",
|
|
2631
|
+
description: 'Time-to-live for cache volumes (e.g., "7d", "24h")'
|
|
2632
|
+
},
|
|
2633
|
+
max_scopes: {
|
|
2634
|
+
type: "number",
|
|
2635
|
+
description: "Maximum number of cache scopes to keep"
|
|
2636
|
+
}
|
|
2637
|
+
},
|
|
2638
|
+
required: ["paths"],
|
|
2639
|
+
additionalProperties: false,
|
|
2640
|
+
description: "Cache configuration for sandbox volumes",
|
|
2641
|
+
patternProperties: {
|
|
2642
|
+
"^x-": {}
|
|
2643
|
+
}
|
|
2644
|
+
},
|
|
2645
|
+
SandboxDefaults: {
|
|
2646
|
+
type: "object",
|
|
2647
|
+
properties: {
|
|
2648
|
+
env_passthrough: {
|
|
2649
|
+
type: "array",
|
|
2650
|
+
items: {
|
|
2651
|
+
type: "string"
|
|
2652
|
+
},
|
|
2653
|
+
description: "Base env var patterns for all sandboxes (replaces hardcoded defaults when set)"
|
|
2654
|
+
}
|
|
2655
|
+
},
|
|
2656
|
+
additionalProperties: false,
|
|
2657
|
+
patternProperties: {
|
|
2658
|
+
"^x-": {}
|
|
2659
|
+
}
|
|
2660
|
+
},
|
|
2450
2661
|
SlackConfig: {
|
|
2451
2662
|
type: "object",
|
|
2452
2663
|
properties: {
|
|
@@ -2506,7 +2717,16 @@ var init_config_schema = __esm({
|
|
|
2506
2717
|
properties: {
|
|
2507
2718
|
path: {
|
|
2508
2719
|
type: "string",
|
|
2509
|
-
description: "Path to schedules JSON file (
|
|
2720
|
+
description: "Path to schedules JSON file (legacy, triggers auto-migration)"
|
|
2721
|
+
},
|
|
2722
|
+
driver: {
|
|
2723
|
+
type: "string",
|
|
2724
|
+
enum: ["sqlite", "postgresql", "mysql", "mssql"],
|
|
2725
|
+
description: "Database driver (default: 'sqlite')"
|
|
2726
|
+
},
|
|
2727
|
+
connection: {
|
|
2728
|
+
$ref: "#/definitions/SchedulerStorageConnectionConfig",
|
|
2729
|
+
description: "Database connection configuration"
|
|
2510
2730
|
}
|
|
2511
2731
|
},
|
|
2512
2732
|
additionalProperties: false,
|
|
@@ -2515,6 +2735,10 @@ var init_config_schema = __esm({
|
|
|
2515
2735
|
"^x-": {}
|
|
2516
2736
|
}
|
|
2517
2737
|
},
|
|
2738
|
+
ha: {
|
|
2739
|
+
$ref: "#/definitions/SchedulerHAConfig",
|
|
2740
|
+
description: "High-availability configuration for multi-node deployments"
|
|
2741
|
+
},
|
|
2518
2742
|
limits: {
|
|
2519
2743
|
$ref: "#/definitions/SchedulerLimitsConfig",
|
|
2520
2744
|
description: "Limits for dynamic schedules"
|
|
@@ -2542,44 +2766,123 @@ var init_config_schema = __esm({
|
|
|
2542
2766
|
"^x-": {}
|
|
2543
2767
|
}
|
|
2544
2768
|
},
|
|
2545
|
-
|
|
2769
|
+
SchedulerStorageConnectionConfig: {
|
|
2546
2770
|
type: "object",
|
|
2547
2771
|
properties: {
|
|
2548
|
-
|
|
2772
|
+
filename: {
|
|
2549
2773
|
type: "string",
|
|
2550
|
-
|
|
2551
|
-
description: "Policy engine mode: 'local' (WASM), 'remote' (HTTP OPA server), or 'disabled'"
|
|
2774
|
+
description: "SQLite database file path (default: '.visor/schedules.db')"
|
|
2552
2775
|
},
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
description: "
|
|
2776
|
+
host: {
|
|
2777
|
+
type: "string",
|
|
2778
|
+
description: "Database host (PostgreSQL/MySQL/MSSQL)"
|
|
2556
2779
|
},
|
|
2557
|
-
|
|
2780
|
+
port: {
|
|
2781
|
+
type: "number",
|
|
2782
|
+
description: "Database port (PostgreSQL/MySQL/MSSQL)"
|
|
2783
|
+
},
|
|
2784
|
+
database: {
|
|
2558
2785
|
type: "string",
|
|
2559
|
-
description: "
|
|
2786
|
+
description: "Database name (PostgreSQL/MySQL/MSSQL)"
|
|
2560
2787
|
},
|
|
2561
|
-
|
|
2788
|
+
user: {
|
|
2562
2789
|
type: "string",
|
|
2563
|
-
description: "
|
|
2790
|
+
description: "Database user (PostgreSQL/MySQL/MSSQL)"
|
|
2564
2791
|
},
|
|
2565
|
-
|
|
2792
|
+
password: {
|
|
2566
2793
|
type: "string",
|
|
2567
|
-
|
|
2568
|
-
description: "Default decision when policy evaluation fails (default: 'deny'). Use 'warn' for audit mode: violations are logged but not enforced."
|
|
2794
|
+
description: "Database password (PostgreSQL/MySQL/MSSQL)"
|
|
2569
2795
|
},
|
|
2570
|
-
|
|
2571
|
-
|
|
2572
|
-
|
|
2796
|
+
ssl: {
|
|
2797
|
+
anyOf: [
|
|
2798
|
+
{
|
|
2799
|
+
type: "boolean"
|
|
2800
|
+
},
|
|
2801
|
+
{
|
|
2802
|
+
$ref: "#/definitions/SchedulerSslConfig"
|
|
2803
|
+
}
|
|
2804
|
+
],
|
|
2805
|
+
description: "SSL/TLS configuration (PostgreSQL/MySQL/MSSQL)"
|
|
2573
2806
|
},
|
|
2574
|
-
|
|
2807
|
+
connection_string: {
|
|
2808
|
+
type: "string",
|
|
2809
|
+
description: "Connection string URL (e.g., postgresql://user:pass@host/db)"
|
|
2810
|
+
},
|
|
2811
|
+
pool: {
|
|
2575
2812
|
type: "object",
|
|
2576
|
-
|
|
2577
|
-
|
|
2813
|
+
properties: {
|
|
2814
|
+
min: {
|
|
2815
|
+
type: "number"
|
|
2816
|
+
},
|
|
2817
|
+
max: {
|
|
2818
|
+
type: "number"
|
|
2819
|
+
}
|
|
2578
2820
|
},
|
|
2579
|
-
|
|
2821
|
+
additionalProperties: false,
|
|
2822
|
+
description: "Connection pool configuration",
|
|
2823
|
+
patternProperties: {
|
|
2824
|
+
"^x-": {}
|
|
2825
|
+
}
|
|
2826
|
+
}
|
|
2827
|
+
},
|
|
2828
|
+
additionalProperties: false,
|
|
2829
|
+
description: "Scheduler storage connection configuration",
|
|
2830
|
+
patternProperties: {
|
|
2831
|
+
"^x-": {}
|
|
2832
|
+
}
|
|
2833
|
+
},
|
|
2834
|
+
SchedulerSslConfig: {
|
|
2835
|
+
type: "object",
|
|
2836
|
+
properties: {
|
|
2837
|
+
enabled: {
|
|
2838
|
+
type: "boolean",
|
|
2839
|
+
description: "Enable SSL (default: true when SslConfig object is provided)"
|
|
2840
|
+
},
|
|
2841
|
+
reject_unauthorized: {
|
|
2842
|
+
type: "boolean",
|
|
2843
|
+
description: "Reject unauthorized certificates (default: true)"
|
|
2844
|
+
},
|
|
2845
|
+
ca: {
|
|
2846
|
+
type: "string",
|
|
2847
|
+
description: "Path to CA certificate PEM file"
|
|
2848
|
+
},
|
|
2849
|
+
cert: {
|
|
2850
|
+
type: "string",
|
|
2851
|
+
description: "Path to client certificate PEM file"
|
|
2852
|
+
},
|
|
2853
|
+
key: {
|
|
2854
|
+
type: "string",
|
|
2855
|
+
description: "Path to client key PEM file"
|
|
2856
|
+
}
|
|
2857
|
+
},
|
|
2858
|
+
additionalProperties: false,
|
|
2859
|
+
description: "SSL/TLS configuration for scheduler database connections",
|
|
2860
|
+
patternProperties: {
|
|
2861
|
+
"^x-": {}
|
|
2862
|
+
}
|
|
2863
|
+
},
|
|
2864
|
+
SchedulerHAConfig: {
|
|
2865
|
+
type: "object",
|
|
2866
|
+
properties: {
|
|
2867
|
+
enabled: {
|
|
2868
|
+
type: "boolean",
|
|
2869
|
+
description: "Enable distributed locking for multi-node deployments (default: false)"
|
|
2870
|
+
},
|
|
2871
|
+
node_id: {
|
|
2872
|
+
type: "string",
|
|
2873
|
+
description: "Unique node identifier (default: hostname-pid)"
|
|
2874
|
+
},
|
|
2875
|
+
lock_ttl: {
|
|
2876
|
+
type: "number",
|
|
2877
|
+
description: "Lock time-to-live in seconds (default: 60)"
|
|
2878
|
+
},
|
|
2879
|
+
heartbeat_interval: {
|
|
2880
|
+
type: "number",
|
|
2881
|
+
description: "Heartbeat interval for lock renewal in seconds (default: 15)"
|
|
2580
2882
|
}
|
|
2581
2883
|
},
|
|
2582
2884
|
additionalProperties: false,
|
|
2885
|
+
description: "Scheduler high-availability configuration",
|
|
2583
2886
|
patternProperties: {
|
|
2584
2887
|
"^x-": {}
|
|
2585
2888
|
}
|
|
@@ -2642,45 +2945,6 @@ var init_config_schema = __esm({
|
|
|
2642
2945
|
"^x-": {}
|
|
2643
2946
|
}
|
|
2644
2947
|
},
|
|
2645
|
-
PolicyRoleConfig: {
|
|
2646
|
-
type: "object",
|
|
2647
|
-
properties: {
|
|
2648
|
-
author_association: {
|
|
2649
|
-
type: "array",
|
|
2650
|
-
items: { type: "string" },
|
|
2651
|
-
description: "GitHub author associations that map to this role"
|
|
2652
|
-
},
|
|
2653
|
-
teams: {
|
|
2654
|
-
type: "array",
|
|
2655
|
-
items: { type: "string" },
|
|
2656
|
-
description: "GitHub team slugs"
|
|
2657
|
-
},
|
|
2658
|
-
users: {
|
|
2659
|
-
type: "array",
|
|
2660
|
-
items: { type: "string" },
|
|
2661
|
-
description: "Explicit GitHub usernames"
|
|
2662
|
-
},
|
|
2663
|
-
slack_users: {
|
|
2664
|
-
type: "array",
|
|
2665
|
-
items: { type: "string" },
|
|
2666
|
-
description: "Slack user IDs (e.g., U0123ABC)"
|
|
2667
|
-
},
|
|
2668
|
-
emails: {
|
|
2669
|
-
type: "array",
|
|
2670
|
-
items: { type: "string" },
|
|
2671
|
-
description: "Email addresses for identity matching"
|
|
2672
|
-
},
|
|
2673
|
-
slack_channels: {
|
|
2674
|
-
type: "array",
|
|
2675
|
-
items: { type: "string" },
|
|
2676
|
-
description: "Slack channel IDs \u2014 role only applies when triggered from these channels"
|
|
2677
|
-
}
|
|
2678
|
-
},
|
|
2679
|
-
additionalProperties: false,
|
|
2680
|
-
patternProperties: {
|
|
2681
|
-
"^x-": {}
|
|
2682
|
-
}
|
|
2683
|
-
},
|
|
2684
2948
|
"Record<string,StaticCronJob>": {
|
|
2685
2949
|
type: "object",
|
|
2686
2950
|
additionalProperties: {
|
|
@@ -2746,21 +3010,106 @@ var init_config_schema = __esm({
|
|
|
2746
3010
|
"^x-": {}
|
|
2747
3011
|
}
|
|
2748
3012
|
},
|
|
2749
|
-
|
|
3013
|
+
PolicyConfig: {
|
|
2750
3014
|
type: "object",
|
|
2751
3015
|
properties: {
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
3016
|
+
engine: {
|
|
3017
|
+
type: "string",
|
|
3018
|
+
enum: ["local", "remote", "disabled"],
|
|
3019
|
+
description: "Policy engine mode"
|
|
2755
3020
|
},
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
3021
|
+
rules: {
|
|
3022
|
+
anyOf: [
|
|
3023
|
+
{
|
|
3024
|
+
type: "string"
|
|
3025
|
+
},
|
|
3026
|
+
{
|
|
3027
|
+
type: "array",
|
|
3028
|
+
items: {
|
|
3029
|
+
type: "string"
|
|
3030
|
+
}
|
|
3031
|
+
}
|
|
3032
|
+
],
|
|
3033
|
+
description: "Path to .rego files or .wasm bundle (local mode)"
|
|
2760
3034
|
},
|
|
2761
|
-
|
|
3035
|
+
data: {
|
|
2762
3036
|
type: "string",
|
|
2763
|
-
description: "
|
|
3037
|
+
description: "Path to a JSON file to load as OPA data document"
|
|
3038
|
+
},
|
|
3039
|
+
url: {
|
|
3040
|
+
type: "string",
|
|
3041
|
+
description: "OPA server URL (remote mode)"
|
|
3042
|
+
},
|
|
3043
|
+
fallback: {
|
|
3044
|
+
type: "string",
|
|
3045
|
+
enum: ["allow", "deny", "warn"],
|
|
3046
|
+
description: "Default decision when policy evaluation fails"
|
|
3047
|
+
},
|
|
3048
|
+
timeout: {
|
|
3049
|
+
type: "number",
|
|
3050
|
+
description: "Evaluation timeout in ms (default: 5000)"
|
|
3051
|
+
},
|
|
3052
|
+
roles: {
|
|
3053
|
+
$ref: "#/definitions/Record%3Cstring%2CPolicyRoleConfig%3E",
|
|
3054
|
+
description: "Role definitions: map role names to conditions"
|
|
3055
|
+
}
|
|
3056
|
+
},
|
|
3057
|
+
required: ["engine"],
|
|
3058
|
+
additionalProperties: false,
|
|
3059
|
+
patternProperties: {
|
|
3060
|
+
"^x-": {}
|
|
3061
|
+
}
|
|
3062
|
+
},
|
|
3063
|
+
"Record<string,PolicyRoleConfig>": {
|
|
3064
|
+
type: "object",
|
|
3065
|
+
additionalProperties: {
|
|
3066
|
+
$ref: "#/definitions/PolicyRoleConfig"
|
|
3067
|
+
}
|
|
3068
|
+
},
|
|
3069
|
+
PolicyRoleConfig: {
|
|
3070
|
+
type: "object",
|
|
3071
|
+
properties: {
|
|
3072
|
+
author_association: {
|
|
3073
|
+
type: "array",
|
|
3074
|
+
items: {
|
|
3075
|
+
type: "string"
|
|
3076
|
+
},
|
|
3077
|
+
description: "GitHub author associations that map to this role"
|
|
3078
|
+
},
|
|
3079
|
+
teams: {
|
|
3080
|
+
type: "array",
|
|
3081
|
+
items: {
|
|
3082
|
+
type: "string"
|
|
3083
|
+
},
|
|
3084
|
+
description: "GitHub team slugs (requires GitHub API)"
|
|
3085
|
+
},
|
|
3086
|
+
users: {
|
|
3087
|
+
type: "array",
|
|
3088
|
+
items: {
|
|
3089
|
+
type: "string"
|
|
3090
|
+
},
|
|
3091
|
+
description: "Explicit GitHub usernames"
|
|
3092
|
+
},
|
|
3093
|
+
slack_users: {
|
|
3094
|
+
type: "array",
|
|
3095
|
+
items: {
|
|
3096
|
+
type: "string"
|
|
3097
|
+
},
|
|
3098
|
+
description: 'Slack user IDs (e.g., ["U0123ABC"])'
|
|
3099
|
+
},
|
|
3100
|
+
emails: {
|
|
3101
|
+
type: "array",
|
|
3102
|
+
items: {
|
|
3103
|
+
type: "string"
|
|
3104
|
+
},
|
|
3105
|
+
description: 'Email addresses for identity matching (e.g., ["alice@co.com"])'
|
|
3106
|
+
},
|
|
3107
|
+
slack_channels: {
|
|
3108
|
+
type: "array",
|
|
3109
|
+
items: {
|
|
3110
|
+
type: "string"
|
|
3111
|
+
},
|
|
3112
|
+
description: "Slack channel IDs \u2014 role only applies when triggered from these channels"
|
|
2764
3113
|
}
|
|
2765
3114
|
},
|
|
2766
3115
|
additionalProperties: false,
|
|
@@ -4320,4 +4669,4 @@ export {
|
|
|
4320
4669
|
config_exports,
|
|
4321
4670
|
init_config
|
|
4322
4671
|
};
|
|
4323
|
-
//# sourceMappingURL=chunk-
|
|
4672
|
+
//# sourceMappingURL=chunk-U3BLLEW3.mjs.map
|