@probelabs/visor 0.1.152 → 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 +1987 -58
- 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-QBURXJ6B.mjs → check-provider-registry-XZE5PRSE.mjs} +3 -3
- package/dist/sdk/{check-provider-registry-DCZR46KQ.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-XJZKNTKZ.mjs → chunk-DXNWUIAN.mjs} +132 -93
- 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/{host-WNCX3MPT.mjs → host-X7ID5EW7.mjs} +2 -2
- package/dist/sdk/knex-store-CRORFJE6.mjs +527 -0
- package/dist/sdk/knex-store-CRORFJE6.mjs.map +1 -0
- package/dist/sdk/loader-NJCF7DUS.mjs +89 -0
- package/dist/sdk/loader-NJCF7DUS.mjs.map +1 -0
- package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs +655 -0
- package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs.map +1 -0
- package/dist/sdk/{schedule-tool-IJC2TSKU.mjs → schedule-tool-74VMD77T.mjs} +3 -3
- package/dist/sdk/{schedule-tool-62XTFB6K.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-T4L2ECBA.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 +1765 -292
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +5 -5
- package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
- package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-6TEZHBZJ.mjs → workflow-check-provider-GIW4WECT.mjs} +3 -3
- package/dist/sdk/{workflow-check-provider-FONJYRMR.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/output/traces/run-2026-03-04T06-46-24-105Z.ndjson +0 -138
- package/dist/output/traces/run-2026-03-04T06-47-08-884Z.ndjson +0 -2197
- package/dist/sdk/check-provider-registry-VY5ZZAEU.mjs +0 -29
- package/dist/sdk/chunk-6VQ73GYD.mjs +0 -443
- package/dist/sdk/chunk-6VQ73GYD.mjs.map +0 -1
- package/dist/sdk/chunk-FP3RZSLW.mjs +0 -739
- package/dist/sdk/chunk-FP3RZSLW.mjs.map +0 -1
- package/dist/sdk/chunk-FYK2DJK6.mjs.map +0 -1
- package/dist/sdk/chunk-LLVVHYIP.mjs +0 -1502
- package/dist/sdk/chunk-LLVVHYIP.mjs.map +0 -1
- package/dist/sdk/chunk-PCI4FXAO.mjs +0 -43715
- package/dist/sdk/chunk-PCI4FXAO.mjs.map +0 -1
- package/dist/sdk/chunk-QRR6OJQN.mjs.map +0 -1
- package/dist/sdk/chunk-XJZKNTKZ.mjs.map +0 -1
- package/dist/sdk/failure-condition-evaluator-TV227HAG.mjs +0 -17
- package/dist/sdk/github-frontend-YLSS5NQ7.mjs +0 -1368
- package/dist/sdk/github-frontend-YLSS5NQ7.mjs.map +0 -1
- package/dist/sdk/routing-FKWK5BHS.mjs +0 -25
- package/dist/sdk/schedule-tool-VOZ536P4.mjs +0 -35
- package/dist/sdk/schedule-tool-handler-5K275UT6.mjs.map +0 -1
- package/dist/sdk/schedule-tool-handler-T4L2ECBA.mjs.map +0 -1
- package/dist/sdk/schedule-tool-handler-WBIZSBGJ.mjs +0 -39
- package/dist/sdk/schedule-tool-handler-WBIZSBGJ.mjs.map +0 -1
- package/dist/sdk/trace-helpers-W33WMBL7.mjs +0 -25
- package/dist/sdk/trace-helpers-W33WMBL7.mjs.map +0 -1
- package/dist/sdk/workflow-check-provider-6TEZHBZJ.mjs.map +0 -1
- package/dist/sdk/workflow-check-provider-FONJYRMR.mjs.map +0 -1
- package/dist/sdk/workflow-check-provider-LREOGGTH.mjs +0 -29
- package/dist/sdk/workflow-check-provider-LREOGGTH.mjs.map +0 -1
- package/dist/traces/run-2026-03-04T06-46-24-105Z.ndjson +0 -138
- package/dist/traces/run-2026-03-04T06-47-08-884Z.ndjson +0 -2197
- /package/dist/sdk/{check-provider-registry-DCZR46KQ.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/{check-provider-registry-VY5ZZAEU.mjs.map → config-SW3VO4DQ.mjs.map} +0 -0
- /package/dist/sdk/{host-WNCX3MPT.mjs.map → host-X7ID5EW7.mjs.map} +0 -0
- /package/dist/sdk/{config-MTEIGCOQ.mjs.map → schedule-tool-74VMD77T.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-TV227HAG.mjs.map → schedule-tool-WSZKJUNQ.mjs.map} +0 -0
- /package/dist/sdk/{routing-FKWK5BHS.mjs.map → schedule-tool-handler-EOQBRZSD.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-62XTFB6K.mjs.map → schedule-tool-handler-Q7E5NBHS.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-IJC2TSKU.mjs.map → workflow-check-provider-GIW4WECT.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-VOZ536P4.mjs.map → workflow-check-provider-JHHACJHF.mjs.map} +0 -0
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
config_exports,
|
|
35
35
|
init_config
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-CPYQDJ27.mjs";
|
|
37
37
|
import {
|
|
38
38
|
ExecutionJournal,
|
|
39
39
|
checkLoopBudget,
|
|
@@ -2300,7 +2300,7 @@ ${"=".repeat(60)}
|
|
|
2300
2300
|
* Generate mock response for testing
|
|
2301
2301
|
*/
|
|
2302
2302
|
async generateMockResponse(_prompt, _checkName, _schema) {
|
|
2303
|
-
await new Promise((
|
|
2303
|
+
await new Promise((resolve9) => setTimeout(resolve9, 500));
|
|
2304
2304
|
const name = (_checkName || "").toLowerCase();
|
|
2305
2305
|
if (name.includes("extract-facts")) {
|
|
2306
2306
|
const arr = Array.from({ length: 6 }, (_, i) => ({
|
|
@@ -3959,7 +3959,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
|
|
|
3959
3959
|
...args,
|
|
3960
3960
|
...argsOverrides
|
|
3961
3961
|
};
|
|
3962
|
-
const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-
|
|
3962
|
+
const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-JHHACJHF.mjs");
|
|
3963
3963
|
const provider = new WorkflowCheckProvider2();
|
|
3964
3964
|
const checkConfig = {
|
|
3965
3965
|
type: "workflow",
|
|
@@ -6171,7 +6171,7 @@ var init_check_runner = __esm({
|
|
|
6171
6171
|
sandboxConfig.env_passthrough,
|
|
6172
6172
|
workspaceDefaults?.env_passthrough
|
|
6173
6173
|
);
|
|
6174
|
-
const workdir = sandboxConfig.workdir || "/workspace";
|
|
6174
|
+
const workdir = sandboxConfig.workdir === "host" ? sandboxManager.getRepoPath() : sandboxConfig.workdir || "/workspace";
|
|
6175
6175
|
let hostTracePath;
|
|
6176
6176
|
if (!sandboxConfig.read_only) {
|
|
6177
6177
|
const traceFileName = `.visor-trace-${randomUUID().slice(0, 8)}.ndjson`;
|
|
@@ -11208,7 +11208,7 @@ var init_runner = __esm({
|
|
|
11208
11208
|
import { promisify } from "util";
|
|
11209
11209
|
import { execFile as execFileCb } from "child_process";
|
|
11210
11210
|
import { writeFileSync as writeFileSync3, unlinkSync as unlinkSync2, mkdtempSync } from "fs";
|
|
11211
|
-
import { join as join5 } from "path";
|
|
11211
|
+
import { join as join5, resolve } from "path";
|
|
11212
11212
|
import { tmpdir } from "os";
|
|
11213
11213
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
11214
11214
|
var execFileAsync, EXEC_MAX_BUFFER, DockerImageSandbox;
|
|
@@ -11296,7 +11296,7 @@ var init_docker_image_sandbox = __esm({
|
|
|
11296
11296
|
*/
|
|
11297
11297
|
async start() {
|
|
11298
11298
|
const image = await this.buildImageIfNeeded();
|
|
11299
|
-
const workdir = this.config.workdir || "/workspace";
|
|
11299
|
+
const workdir = this.config.workdir === "host" ? this.repoPath : this.config.workdir || "/workspace";
|
|
11300
11300
|
const visorPath = this.config.visor_path || "/opt/visor";
|
|
11301
11301
|
const readOnlySuffix = this.config.read_only ? ":ro" : "";
|
|
11302
11302
|
const args = [
|
|
@@ -11324,6 +11324,14 @@ var init_docker_image_sandbox = __esm({
|
|
|
11324
11324
|
for (const mount of this.cacheVolumeMounts) {
|
|
11325
11325
|
args.push("-v", mount);
|
|
11326
11326
|
}
|
|
11327
|
+
if (this.config.bind_paths) {
|
|
11328
|
+
for (const bp of this.config.bind_paths) {
|
|
11329
|
+
const hostPath = bp.host.startsWith("~") ? resolve((process.env.HOME || "/root") + bp.host.slice(1)) : resolve(bp.host);
|
|
11330
|
+
const containerPath = bp.container || hostPath;
|
|
11331
|
+
const readOnly = bp.read_only !== false;
|
|
11332
|
+
args.push("-v", `${hostPath}:${containerPath}${readOnly ? ":ro" : ""}`);
|
|
11333
|
+
}
|
|
11334
|
+
}
|
|
11327
11335
|
args.push(image, "sleep", "infinity");
|
|
11328
11336
|
logger.info(`Starting sandbox container '${this.containerName}'`);
|
|
11329
11337
|
const { stdout } = await execFileAsync(args[0], args.slice(1), {
|
|
@@ -11702,7 +11710,7 @@ __export(bubblewrap_sandbox_exports, {
|
|
|
11702
11710
|
import { promisify as promisify4 } from "util";
|
|
11703
11711
|
import { execFile as execFileCb4 } from "child_process";
|
|
11704
11712
|
import { existsSync as existsSync4 } from "fs";
|
|
11705
|
-
import { resolve } from "path";
|
|
11713
|
+
import { resolve as resolve2 } from "path";
|
|
11706
11714
|
var execFileAsync4, EXEC_MAX_BUFFER4, BubblewrapSandbox;
|
|
11707
11715
|
var init_bubblewrap_sandbox = __esm({
|
|
11708
11716
|
"src/sandbox/bubblewrap-sandbox.ts"() {
|
|
@@ -11719,8 +11727,8 @@ var init_bubblewrap_sandbox = __esm({
|
|
|
11719
11727
|
constructor(name, config, repoPath, visorDistPath) {
|
|
11720
11728
|
this.name = name;
|
|
11721
11729
|
this.config = config;
|
|
11722
|
-
this.repoPath =
|
|
11723
|
-
this.visorDistPath =
|
|
11730
|
+
this.repoPath = resolve2(repoPath);
|
|
11731
|
+
this.visorDistPath = resolve2(visorDistPath);
|
|
11724
11732
|
}
|
|
11725
11733
|
/**
|
|
11726
11734
|
* Check if bwrap binary is available on the system.
|
|
@@ -11776,7 +11784,7 @@ var init_bubblewrap_sandbox = __esm({
|
|
|
11776
11784
|
* Build the bwrap command-line arguments.
|
|
11777
11785
|
*/
|
|
11778
11786
|
buildArgs(options) {
|
|
11779
|
-
const workdir = this.config.workdir || "/workspace";
|
|
11787
|
+
const workdir = this.config.workdir === "host" ? this.repoPath : this.config.workdir || "/workspace";
|
|
11780
11788
|
const args = [];
|
|
11781
11789
|
args.push("--ro-bind", "/usr", "/usr");
|
|
11782
11790
|
args.push("--ro-bind", "/bin", "/bin");
|
|
@@ -11803,6 +11811,14 @@ var init_bubblewrap_sandbox = __esm({
|
|
|
11803
11811
|
}
|
|
11804
11812
|
const visorPath = this.config.visor_path || "/opt/visor";
|
|
11805
11813
|
args.push("--ro-bind", this.visorDistPath, visorPath);
|
|
11814
|
+
if (this.config.bind_paths) {
|
|
11815
|
+
for (const bp of this.config.bind_paths) {
|
|
11816
|
+
const hostPath = bp.host.startsWith("~") ? resolve2((process.env.HOME || "/root") + bp.host.slice(1)) : resolve2(bp.host);
|
|
11817
|
+
const containerPath = bp.container || hostPath;
|
|
11818
|
+
const readOnly = bp.read_only !== false;
|
|
11819
|
+
args.push(readOnly ? "--ro-bind" : "--bind", hostPath, containerPath);
|
|
11820
|
+
}
|
|
11821
|
+
}
|
|
11806
11822
|
args.push("--chdir", workdir);
|
|
11807
11823
|
args.push("--unshare-pid");
|
|
11808
11824
|
args.push("--new-session");
|
|
@@ -11830,7 +11846,7 @@ __export(seatbelt_sandbox_exports, {
|
|
|
11830
11846
|
});
|
|
11831
11847
|
import { promisify as promisify5 } from "util";
|
|
11832
11848
|
import { execFile as execFileCb5 } from "child_process";
|
|
11833
|
-
import { resolve as
|
|
11849
|
+
import { resolve as resolve3 } from "path";
|
|
11834
11850
|
import { realpathSync } from "fs";
|
|
11835
11851
|
var execFileAsync5, EXEC_MAX_BUFFER5, SeatbeltSandbox;
|
|
11836
11852
|
var init_seatbelt_sandbox = __esm({
|
|
@@ -11848,8 +11864,8 @@ var init_seatbelt_sandbox = __esm({
|
|
|
11848
11864
|
constructor(name, config, repoPath, visorDistPath) {
|
|
11849
11865
|
this.name = name;
|
|
11850
11866
|
this.config = config;
|
|
11851
|
-
this.repoPath = realpathSync(
|
|
11852
|
-
this.visorDistPath = realpathSync(
|
|
11867
|
+
this.repoPath = realpathSync(resolve3(repoPath));
|
|
11868
|
+
this.visorDistPath = realpathSync(resolve3(visorDistPath));
|
|
11853
11869
|
}
|
|
11854
11870
|
/**
|
|
11855
11871
|
* Check if sandbox-exec binary is available on the system.
|
|
@@ -11952,6 +11968,16 @@ var init_seatbelt_sandbox = __esm({
|
|
|
11952
11968
|
}
|
|
11953
11969
|
const visorDistPath = this.escapePath(this.visorDistPath);
|
|
11954
11970
|
lines.push(`(allow file-read* (subpath "${visorDistPath}"))`);
|
|
11971
|
+
if (this.config.bind_paths) {
|
|
11972
|
+
for (const bp of this.config.bind_paths) {
|
|
11973
|
+
const hostPath = bp.host.startsWith("~") ? resolve3((process.env.HOME || "/root") + bp.host.slice(1)) : resolve3(bp.host);
|
|
11974
|
+
const escapedPath = this.escapePath(hostPath);
|
|
11975
|
+
lines.push(`(allow file-read* (subpath "${escapedPath}"))`);
|
|
11976
|
+
if (bp.read_only === false) {
|
|
11977
|
+
lines.push(`(allow file-write* (subpath "${escapedPath}"))`);
|
|
11978
|
+
}
|
|
11979
|
+
}
|
|
11980
|
+
}
|
|
11955
11981
|
if (this.config.network !== false) {
|
|
11956
11982
|
lines.push("(allow network*)");
|
|
11957
11983
|
}
|
|
@@ -11965,7 +11991,7 @@ var init_seatbelt_sandbox = __esm({
|
|
|
11965
11991
|
});
|
|
11966
11992
|
|
|
11967
11993
|
// src/sandbox/sandbox-manager.ts
|
|
11968
|
-
import { resolve as
|
|
11994
|
+
import { resolve as resolve4, dirname, join as join6 } from "path";
|
|
11969
11995
|
import { existsSync as existsSync5 } from "fs";
|
|
11970
11996
|
var SandboxManager;
|
|
11971
11997
|
var init_sandbox_manager = __esm({
|
|
@@ -11989,10 +12015,10 @@ var init_sandbox_manager = __esm({
|
|
|
11989
12015
|
}
|
|
11990
12016
|
constructor(sandboxDefs, repoPath, gitBranch) {
|
|
11991
12017
|
this.sandboxDefs = sandboxDefs;
|
|
11992
|
-
this.repoPath =
|
|
12018
|
+
this.repoPath = resolve4(repoPath);
|
|
11993
12019
|
this.gitBranch = gitBranch;
|
|
11994
12020
|
this.cacheManager = new CacheVolumeManager();
|
|
11995
|
-
this.visorDistPath = existsSync5(join6(__dirname, "index.js")) ? __dirname :
|
|
12021
|
+
this.visorDistPath = existsSync5(join6(__dirname, "index.js")) ? __dirname : resolve4(dirname(__dirname));
|
|
11996
12022
|
}
|
|
11997
12023
|
/**
|
|
11998
12024
|
* Resolve which sandbox a check should use.
|
|
@@ -12213,8 +12239,8 @@ var init_workspace_manager = __esm({
|
|
|
12213
12239
|
);
|
|
12214
12240
|
if (this.cleanupRequested && this.activeOperations === 0) {
|
|
12215
12241
|
logger.debug(`[Workspace] All references released, proceeding with deferred cleanup`);
|
|
12216
|
-
for (const
|
|
12217
|
-
|
|
12242
|
+
for (const resolve9 of this.cleanupResolvers) {
|
|
12243
|
+
resolve9();
|
|
12218
12244
|
}
|
|
12219
12245
|
this.cleanupResolvers = [];
|
|
12220
12246
|
}
|
|
@@ -12371,19 +12397,19 @@ var init_workspace_manager = __esm({
|
|
|
12371
12397
|
);
|
|
12372
12398
|
this.cleanupRequested = true;
|
|
12373
12399
|
await Promise.race([
|
|
12374
|
-
new Promise((
|
|
12400
|
+
new Promise((resolve9) => {
|
|
12375
12401
|
if (this.activeOperations === 0) {
|
|
12376
|
-
|
|
12402
|
+
resolve9();
|
|
12377
12403
|
} else {
|
|
12378
|
-
this.cleanupResolvers.push(
|
|
12404
|
+
this.cleanupResolvers.push(resolve9);
|
|
12379
12405
|
}
|
|
12380
12406
|
}),
|
|
12381
|
-
new Promise((
|
|
12407
|
+
new Promise((resolve9) => {
|
|
12382
12408
|
setTimeout(() => {
|
|
12383
12409
|
logger.warn(
|
|
12384
12410
|
`[Workspace] Cleanup timeout after ${timeout}ms, proceeding anyway (${this.activeOperations} operations still active)`
|
|
12385
12411
|
);
|
|
12386
|
-
|
|
12412
|
+
resolve9();
|
|
12387
12413
|
}, timeout);
|
|
12388
12414
|
})
|
|
12389
12415
|
]);
|
|
@@ -13001,7 +13027,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13001
13027
|
try {
|
|
13002
13028
|
const map = options?.webhookContext?.webhookData;
|
|
13003
13029
|
if (map) {
|
|
13004
|
-
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-
|
|
13030
|
+
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-XZE5PRSE.mjs");
|
|
13005
13031
|
const reg = CheckProviderRegistry2.getInstance();
|
|
13006
13032
|
const p = reg.getProvider("http_input");
|
|
13007
13033
|
if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
|
|
@@ -13114,7 +13140,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13114
13140
|
logger.info("[StateMachine] Using state machine engine");
|
|
13115
13141
|
}
|
|
13116
13142
|
if (!config) {
|
|
13117
|
-
const { ConfigManager } = await import("./config-
|
|
13143
|
+
const { ConfigManager } = await import("./config-SW3VO4DQ.mjs");
|
|
13118
13144
|
const configManager = new ConfigManager();
|
|
13119
13145
|
config = await configManager.getDefaultConfig();
|
|
13120
13146
|
logger.debug("[StateMachine] Using default configuration (no config provided)");
|
|
@@ -13124,7 +13150,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13124
13150
|
tag_filter: tagFilter
|
|
13125
13151
|
} : config;
|
|
13126
13152
|
try {
|
|
13127
|
-
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-
|
|
13153
|
+
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-XZE5PRSE.mjs");
|
|
13128
13154
|
const registry = CheckProviderRegistry2.getInstance();
|
|
13129
13155
|
registry.setCustomTools(configWithTagFilter.tools || {});
|
|
13130
13156
|
} catch (error) {
|
|
@@ -13165,7 +13191,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13165
13191
|
logger.debug(
|
|
13166
13192
|
`[PolicyEngine] Loading enterprise policy engine (engine=${configWithTagFilter.policy.engine})`
|
|
13167
13193
|
);
|
|
13168
|
-
const { loadEnterprisePolicyEngine } = await import("./
|
|
13194
|
+
const { loadEnterprisePolicyEngine } = await import("./loader-NJCF7DUS.mjs");
|
|
13169
13195
|
context2.policyEngine = await loadEnterprisePolicyEngine(configWithTagFilter.policy);
|
|
13170
13196
|
logger.debug(
|
|
13171
13197
|
`[PolicyEngine] Initialized: ${context2.policyEngine?.constructor?.name || "unknown"}`
|
|
@@ -13188,7 +13214,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13188
13214
|
try {
|
|
13189
13215
|
const webhookData = this.executionContext?.webhookContext?.webhookData;
|
|
13190
13216
|
if (webhookData instanceof Map) {
|
|
13191
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
13217
|
+
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-Q7E5NBHS.mjs");
|
|
13192
13218
|
const slackCtx = extractSlackContext2(webhookData);
|
|
13193
13219
|
if (slackCtx) {
|
|
13194
13220
|
const payload = Array.from(webhookData.values())[0];
|
|
@@ -13217,7 +13243,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13217
13243
|
if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
|
|
13218
13244
|
try {
|
|
13219
13245
|
const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
|
|
13220
|
-
const { FrontendsHost } = await import("./host-
|
|
13246
|
+
const { FrontendsHost } = await import("./host-X7ID5EW7.mjs");
|
|
13221
13247
|
const bus = new EventBus();
|
|
13222
13248
|
context2.eventBus = bus;
|
|
13223
13249
|
frontendsHost = new FrontendsHost(bus, logger);
|
|
@@ -15022,11 +15048,11 @@ async function handleCreateTrigger(args, context2, store) {
|
|
|
15022
15048
|
error: `Available workflows: ${context2.availableWorkflows.slice(0, 5).join(", ")}${context2.availableWorkflows.length > 5 ? "..." : ""}`
|
|
15023
15049
|
};
|
|
15024
15050
|
}
|
|
15025
|
-
if ((!args.trigger_channels || args.trigger_channels.length === 0) && (!args.trigger_contains || args.trigger_contains.length === 0) && !args.trigger_match) {
|
|
15051
|
+
if ((!args.trigger_channels || args.trigger_channels.length === 0) && (!args.trigger_from || args.trigger_from.length === 0) && (!args.trigger_contains || args.trigger_contains.length === 0) && !args.trigger_match) {
|
|
15026
15052
|
return {
|
|
15027
15053
|
success: false,
|
|
15028
15054
|
message: "Missing trigger filters",
|
|
15029
|
-
error: "Please specify at least one filter: trigger_channels, trigger_contains, or trigger_match."
|
|
15055
|
+
error: "Please specify at least one filter: trigger_channels, trigger_from, trigger_contains, or trigger_match."
|
|
15030
15056
|
};
|
|
15031
15057
|
}
|
|
15032
15058
|
const permissionCheck = checkSchedulePermissions(context2, args.workflow);
|
|
@@ -15044,6 +15070,7 @@ async function handleCreateTrigger(args, context2, store) {
|
|
|
15044
15070
|
creatorName: context2.userName,
|
|
15045
15071
|
description: args.trigger_description,
|
|
15046
15072
|
channels: args.trigger_channels,
|
|
15073
|
+
fromUsers: args.trigger_from,
|
|
15047
15074
|
fromBots: args.trigger_from_bots ?? false,
|
|
15048
15075
|
contains: args.trigger_contains,
|
|
15049
15076
|
matchPattern: args.trigger_match,
|
|
@@ -15062,7 +15089,8 @@ async function handleCreateTrigger(args, context2, store) {
|
|
|
15062
15089
|
|
|
15063
15090
|
**Workflow**: ${trigger.workflow}
|
|
15064
15091
|
**Channels**: ${trigger.channels?.join(", ") || "all"}
|
|
15065
|
-
${trigger.
|
|
15092
|
+
${trigger.fromUsers?.length ? `**From users**: ${trigger.fromUsers.join(", ")}
|
|
15093
|
+
` : ""}${trigger.contains?.length ? `**Contains**: ${trigger.contains.join(", ")}
|
|
15066
15094
|
` : ""}${trigger.matchPattern ? `**Pattern**: /${trigger.matchPattern}/
|
|
15067
15095
|
` : ""}${trigger.description ? `**Description**: ${trigger.description}
|
|
15068
15096
|
` : ""}
|
|
@@ -15188,7 +15216,7 @@ Slack messages in specific channels. Use the create_trigger, list_triggers, dele
|
|
|
15188
15216
|
actions for this. Message triggers fire workflows based on message content, channel, sender, and thread scope.
|
|
15189
15217
|
|
|
15190
15218
|
TRIGGER ACTIONS:
|
|
15191
|
-
- create_trigger: Create a new message trigger (requires workflow + at least one filter)
|
|
15219
|
+
- create_trigger: Create a new message trigger (requires workflow + at least one filter). Supports filtering by user IDs (trigger_from), channels, keywords, regex, and thread scope.
|
|
15192
15220
|
- list_triggers: Show user's message triggers
|
|
15193
15221
|
- delete_trigger: Remove a trigger by ID
|
|
15194
15222
|
- update_trigger: Enable/disable a trigger by ID
|
|
@@ -15285,6 +15313,9 @@ User: "cancel schedule abc123"
|
|
|
15285
15313
|
User: "watch #cicd for messages containing 'failed' and run %handle-cicd"
|
|
15286
15314
|
\u2192 { "action": "create_trigger", "trigger_channels": ["C0CICD"], "trigger_contains": ["failed"], "workflow": "handle-cicd" }
|
|
15287
15315
|
|
|
15316
|
+
User: "trigger on each of my messages in this channel and run %auto-reply" (user ID is U3P2L4XNE)
|
|
15317
|
+
\u2192 { "action": "create_trigger", "trigger_channels": ["C09V810NY6R"], "trigger_from": ["U3P2L4XNE"], "workflow": "auto-reply" }
|
|
15318
|
+
|
|
15288
15319
|
User: "list my message triggers"
|
|
15289
15320
|
\u2192 { "action": "list_triggers" }
|
|
15290
15321
|
|
|
@@ -15366,6 +15397,11 @@ User: "disable trigger abc123"
|
|
|
15366
15397
|
items: { type: "string" },
|
|
15367
15398
|
description: 'For create_trigger: Slack channel IDs to monitor (e.g., ["C0CICD"]). Supports wildcard suffix (e.g., "CENG*").'
|
|
15368
15399
|
},
|
|
15400
|
+
trigger_from: {
|
|
15401
|
+
type: "array",
|
|
15402
|
+
items: { type: "string" },
|
|
15403
|
+
description: 'For create_trigger: Slack user IDs to filter by. Only messages from these users will trigger the workflow. E.g., ["U3P2L4XNE"]. If omitted, messages from any user will trigger.'
|
|
15404
|
+
},
|
|
15369
15405
|
trigger_from_bots: {
|
|
15370
15406
|
type: "boolean",
|
|
15371
15407
|
description: "For create_trigger: allow bot messages to trigger (default: false)"
|
|
@@ -15713,7 +15749,7 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
15713
15749
|
* Returns the actual bound port number
|
|
15714
15750
|
*/
|
|
15715
15751
|
async start() {
|
|
15716
|
-
return new Promise((
|
|
15752
|
+
return new Promise((resolve9, reject) => {
|
|
15717
15753
|
try {
|
|
15718
15754
|
this.server = http.createServer((req, res) => {
|
|
15719
15755
|
this.handleRequest(req, res).catch((error) => {
|
|
@@ -15747,7 +15783,7 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
15747
15783
|
);
|
|
15748
15784
|
}
|
|
15749
15785
|
this.startKeepalive();
|
|
15750
|
-
|
|
15786
|
+
resolve9(this.port);
|
|
15751
15787
|
});
|
|
15752
15788
|
} catch (error) {
|
|
15753
15789
|
reject(error);
|
|
@@ -15810,7 +15846,7 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
15810
15846
|
logger.debug(
|
|
15811
15847
|
`[CustomToolsSSEServer:${this.sessionId}] Grace period before stop: ${waitMs}ms (activeToolCalls=${this.activeToolCalls})`
|
|
15812
15848
|
);
|
|
15813
|
-
await new Promise((
|
|
15849
|
+
await new Promise((resolve9) => setTimeout(resolve9, waitMs));
|
|
15814
15850
|
}
|
|
15815
15851
|
}
|
|
15816
15852
|
if (this.activeToolCalls > 0) {
|
|
@@ -15819,7 +15855,7 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
15819
15855
|
`[CustomToolsSSEServer:${this.sessionId}] Waiting for ${this.activeToolCalls} active tool call(s) before stop`
|
|
15820
15856
|
);
|
|
15821
15857
|
while (this.activeToolCalls > 0 && Date.now() - startedAt < effectiveDrainTimeoutMs) {
|
|
15822
|
-
await new Promise((
|
|
15858
|
+
await new Promise((resolve9) => setTimeout(resolve9, 250));
|
|
15823
15859
|
}
|
|
15824
15860
|
if (this.activeToolCalls > 0) {
|
|
15825
15861
|
logger.warn(
|
|
@@ -15844,21 +15880,21 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
15844
15880
|
}
|
|
15845
15881
|
this.connections.clear();
|
|
15846
15882
|
if (this.server) {
|
|
15847
|
-
await new Promise((
|
|
15883
|
+
await new Promise((resolve9, reject) => {
|
|
15848
15884
|
const timeout = setTimeout(() => {
|
|
15849
15885
|
if (this.debug) {
|
|
15850
15886
|
logger.debug(
|
|
15851
15887
|
`[CustomToolsSSEServer:${this.sessionId}] Force closing server after timeout`
|
|
15852
15888
|
);
|
|
15853
15889
|
}
|
|
15854
|
-
this.server?.close(() =>
|
|
15890
|
+
this.server?.close(() => resolve9());
|
|
15855
15891
|
}, 5e3);
|
|
15856
15892
|
this.server.close((error) => {
|
|
15857
15893
|
clearTimeout(timeout);
|
|
15858
15894
|
if (error) {
|
|
15859
15895
|
reject(error);
|
|
15860
15896
|
} else {
|
|
15861
|
-
|
|
15897
|
+
resolve9();
|
|
15862
15898
|
}
|
|
15863
15899
|
});
|
|
15864
15900
|
});
|
|
@@ -16284,7 +16320,7 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
16284
16320
|
logger.warn(
|
|
16285
16321
|
`[CustomToolsSSEServer:${this.sessionId}] Tool ${toolName} failed (attempt ${attempt + 1}/${retryCount + 1}): ${errorMsg}. Retrying in ${delay}ms`
|
|
16286
16322
|
);
|
|
16287
|
-
await new Promise((
|
|
16323
|
+
await new Promise((resolve9) => setTimeout(resolve9, delay));
|
|
16288
16324
|
attempt++;
|
|
16289
16325
|
}
|
|
16290
16326
|
}
|
|
@@ -25554,8 +25590,8 @@ var require_util2 = __commonJS({
|
|
|
25554
25590
|
function createDeferredPromise() {
|
|
25555
25591
|
let res;
|
|
25556
25592
|
let rej;
|
|
25557
|
-
const promise = new Promise((
|
|
25558
|
-
res =
|
|
25593
|
+
const promise = new Promise((resolve9, reject) => {
|
|
25594
|
+
res = resolve9;
|
|
25559
25595
|
rej = reject;
|
|
25560
25596
|
});
|
|
25561
25597
|
return { promise, resolve: res, reject: rej };
|
|
@@ -27060,8 +27096,8 @@ Content-Type: ${value.type || "application/octet-stream"}\r
|
|
|
27060
27096
|
});
|
|
27061
27097
|
}
|
|
27062
27098
|
});
|
|
27063
|
-
const busboyResolve = new Promise((
|
|
27064
|
-
busboy.on("finish",
|
|
27099
|
+
const busboyResolve = new Promise((resolve9, reject) => {
|
|
27100
|
+
busboy.on("finish", resolve9);
|
|
27065
27101
|
busboy.on("error", (err) => reject(new TypeError(err)));
|
|
27066
27102
|
});
|
|
27067
27103
|
if (this.body !== null) for await (const chunk of consumeBody(this[kState].body)) busboy.write(chunk);
|
|
@@ -27595,9 +27631,9 @@ var require_dispatcher_base = __commonJS({
|
|
|
27595
27631
|
}
|
|
27596
27632
|
close(callback) {
|
|
27597
27633
|
if (callback === void 0) {
|
|
27598
|
-
return new Promise((
|
|
27634
|
+
return new Promise((resolve9, reject) => {
|
|
27599
27635
|
this.close((err, data) => {
|
|
27600
|
-
return err ? reject(err) :
|
|
27636
|
+
return err ? reject(err) : resolve9(data);
|
|
27601
27637
|
});
|
|
27602
27638
|
});
|
|
27603
27639
|
}
|
|
@@ -27635,12 +27671,12 @@ var require_dispatcher_base = __commonJS({
|
|
|
27635
27671
|
err = null;
|
|
27636
27672
|
}
|
|
27637
27673
|
if (callback === void 0) {
|
|
27638
|
-
return new Promise((
|
|
27674
|
+
return new Promise((resolve9, reject) => {
|
|
27639
27675
|
this.destroy(err, (err2, data) => {
|
|
27640
27676
|
return err2 ? (
|
|
27641
27677
|
/* istanbul ignore next: should never error */
|
|
27642
27678
|
reject(err2)
|
|
27643
|
-
) :
|
|
27679
|
+
) : resolve9(data);
|
|
27644
27680
|
});
|
|
27645
27681
|
});
|
|
27646
27682
|
}
|
|
@@ -28702,16 +28738,16 @@ var require_client = __commonJS({
|
|
|
28702
28738
|
return this[kNeedDrain] < 2;
|
|
28703
28739
|
}
|
|
28704
28740
|
async [kClose]() {
|
|
28705
|
-
return new Promise((
|
|
28741
|
+
return new Promise((resolve9) => {
|
|
28706
28742
|
if (!this[kSize]) {
|
|
28707
|
-
|
|
28743
|
+
resolve9(null);
|
|
28708
28744
|
} else {
|
|
28709
|
-
this[kClosedResolve] =
|
|
28745
|
+
this[kClosedResolve] = resolve9;
|
|
28710
28746
|
}
|
|
28711
28747
|
});
|
|
28712
28748
|
}
|
|
28713
28749
|
async [kDestroy](err) {
|
|
28714
|
-
return new Promise((
|
|
28750
|
+
return new Promise((resolve9) => {
|
|
28715
28751
|
const requests = this[kQueue].splice(this[kPendingIdx]);
|
|
28716
28752
|
for (let i = 0; i < requests.length; i++) {
|
|
28717
28753
|
const request = requests[i];
|
|
@@ -28722,7 +28758,7 @@ var require_client = __commonJS({
|
|
|
28722
28758
|
this[kClosedResolve]();
|
|
28723
28759
|
this[kClosedResolve] = null;
|
|
28724
28760
|
}
|
|
28725
|
-
|
|
28761
|
+
resolve9();
|
|
28726
28762
|
};
|
|
28727
28763
|
if (this[kHTTP2Session] != null) {
|
|
28728
28764
|
util.destroy(this[kHTTP2Session], err);
|
|
@@ -29302,7 +29338,7 @@ var require_client = __commonJS({
|
|
|
29302
29338
|
});
|
|
29303
29339
|
}
|
|
29304
29340
|
try {
|
|
29305
|
-
const socket = await new Promise((
|
|
29341
|
+
const socket = await new Promise((resolve9, reject) => {
|
|
29306
29342
|
client[kConnector]({
|
|
29307
29343
|
host,
|
|
29308
29344
|
hostname,
|
|
@@ -29314,7 +29350,7 @@ var require_client = __commonJS({
|
|
|
29314
29350
|
if (err) {
|
|
29315
29351
|
reject(err);
|
|
29316
29352
|
} else {
|
|
29317
|
-
|
|
29353
|
+
resolve9(socket2);
|
|
29318
29354
|
}
|
|
29319
29355
|
});
|
|
29320
29356
|
});
|
|
@@ -29938,12 +29974,12 @@ upgrade: ${upgrade}\r
|
|
|
29938
29974
|
cb();
|
|
29939
29975
|
}
|
|
29940
29976
|
}
|
|
29941
|
-
const waitForDrain = () => new Promise((
|
|
29977
|
+
const waitForDrain = () => new Promise((resolve9, reject) => {
|
|
29942
29978
|
assert(callback === null);
|
|
29943
29979
|
if (socket[kError]) {
|
|
29944
29980
|
reject(socket[kError]);
|
|
29945
29981
|
} else {
|
|
29946
|
-
callback =
|
|
29982
|
+
callback = resolve9;
|
|
29947
29983
|
}
|
|
29948
29984
|
});
|
|
29949
29985
|
if (client[kHTTPConnVersion] === "h2") {
|
|
@@ -30289,8 +30325,8 @@ var require_pool_base = __commonJS({
|
|
|
30289
30325
|
if (this[kQueue].isEmpty()) {
|
|
30290
30326
|
return Promise.all(this[kClients].map((c) => c.close()));
|
|
30291
30327
|
} else {
|
|
30292
|
-
return new Promise((
|
|
30293
|
-
this[kClosedResolve] =
|
|
30328
|
+
return new Promise((resolve9) => {
|
|
30329
|
+
this[kClosedResolve] = resolve9;
|
|
30294
30330
|
});
|
|
30295
30331
|
}
|
|
30296
30332
|
}
|
|
@@ -30868,7 +30904,7 @@ var require_readable = __commonJS({
|
|
|
30868
30904
|
if (this.closed) {
|
|
30869
30905
|
return Promise.resolve(null);
|
|
30870
30906
|
}
|
|
30871
|
-
return new Promise((
|
|
30907
|
+
return new Promise((resolve9, reject) => {
|
|
30872
30908
|
const signalListenerCleanup = signal ? util.addAbortListener(signal, () => {
|
|
30873
30909
|
this.destroy();
|
|
30874
30910
|
}) : noop;
|
|
@@ -30877,7 +30913,7 @@ var require_readable = __commonJS({
|
|
|
30877
30913
|
if (signal && signal.aborted) {
|
|
30878
30914
|
reject(signal.reason || Object.assign(new Error("The operation was aborted"), { name: "AbortError" }));
|
|
30879
30915
|
} else {
|
|
30880
|
-
|
|
30916
|
+
resolve9(null);
|
|
30881
30917
|
}
|
|
30882
30918
|
}).on("error", noop).on("data", function(chunk) {
|
|
30883
30919
|
limit -= chunk.length;
|
|
@@ -30899,11 +30935,11 @@ var require_readable = __commonJS({
|
|
|
30899
30935
|
throw new TypeError("unusable");
|
|
30900
30936
|
}
|
|
30901
30937
|
assert(!stream[kConsume]);
|
|
30902
|
-
return new Promise((
|
|
30938
|
+
return new Promise((resolve9, reject) => {
|
|
30903
30939
|
stream[kConsume] = {
|
|
30904
30940
|
type,
|
|
30905
30941
|
stream,
|
|
30906
|
-
resolve:
|
|
30942
|
+
resolve: resolve9,
|
|
30907
30943
|
reject,
|
|
30908
30944
|
length: 0,
|
|
30909
30945
|
body: []
|
|
@@ -30938,12 +30974,12 @@ var require_readable = __commonJS({
|
|
|
30938
30974
|
}
|
|
30939
30975
|
}
|
|
30940
30976
|
function consumeEnd(consume2) {
|
|
30941
|
-
const { type, body, resolve:
|
|
30977
|
+
const { type, body, resolve: resolve9, stream, length } = consume2;
|
|
30942
30978
|
try {
|
|
30943
30979
|
if (type === "text") {
|
|
30944
|
-
|
|
30980
|
+
resolve9(toUSVString(Buffer.concat(body)));
|
|
30945
30981
|
} else if (type === "json") {
|
|
30946
|
-
|
|
30982
|
+
resolve9(JSON.parse(Buffer.concat(body)));
|
|
30947
30983
|
} else if (type === "arrayBuffer") {
|
|
30948
30984
|
const dst = new Uint8Array(length);
|
|
30949
30985
|
let pos = 0;
|
|
@@ -30951,12 +30987,12 @@ var require_readable = __commonJS({
|
|
|
30951
30987
|
dst.set(buf, pos);
|
|
30952
30988
|
pos += buf.byteLength;
|
|
30953
30989
|
}
|
|
30954
|
-
|
|
30990
|
+
resolve9(dst.buffer);
|
|
30955
30991
|
} else if (type === "blob") {
|
|
30956
30992
|
if (!Blob2) {
|
|
30957
30993
|
Blob2 = __require("buffer").Blob;
|
|
30958
30994
|
}
|
|
30959
|
-
|
|
30995
|
+
resolve9(new Blob2(body, { type: stream[kContentType] }));
|
|
30960
30996
|
}
|
|
30961
30997
|
consumeFinish(consume2);
|
|
30962
30998
|
} catch (err) {
|
|
@@ -31213,9 +31249,9 @@ var require_api_request = __commonJS({
|
|
|
31213
31249
|
};
|
|
31214
31250
|
function request(opts, callback) {
|
|
31215
31251
|
if (callback === void 0) {
|
|
31216
|
-
return new Promise((
|
|
31252
|
+
return new Promise((resolve9, reject) => {
|
|
31217
31253
|
request.call(this, opts, (err, data) => {
|
|
31218
|
-
return err ? reject(err) :
|
|
31254
|
+
return err ? reject(err) : resolve9(data);
|
|
31219
31255
|
});
|
|
31220
31256
|
});
|
|
31221
31257
|
}
|
|
@@ -31388,9 +31424,9 @@ var require_api_stream = __commonJS({
|
|
|
31388
31424
|
};
|
|
31389
31425
|
function stream(opts, factory, callback) {
|
|
31390
31426
|
if (callback === void 0) {
|
|
31391
|
-
return new Promise((
|
|
31427
|
+
return new Promise((resolve9, reject) => {
|
|
31392
31428
|
stream.call(this, opts, factory, (err, data) => {
|
|
31393
|
-
return err ? reject(err) :
|
|
31429
|
+
return err ? reject(err) : resolve9(data);
|
|
31394
31430
|
});
|
|
31395
31431
|
});
|
|
31396
31432
|
}
|
|
@@ -31671,9 +31707,9 @@ var require_api_upgrade = __commonJS({
|
|
|
31671
31707
|
};
|
|
31672
31708
|
function upgrade(opts, callback) {
|
|
31673
31709
|
if (callback === void 0) {
|
|
31674
|
-
return new Promise((
|
|
31710
|
+
return new Promise((resolve9, reject) => {
|
|
31675
31711
|
upgrade.call(this, opts, (err, data) => {
|
|
31676
|
-
return err ? reject(err) :
|
|
31712
|
+
return err ? reject(err) : resolve9(data);
|
|
31677
31713
|
});
|
|
31678
31714
|
});
|
|
31679
31715
|
}
|
|
@@ -31762,9 +31798,9 @@ var require_api_connect = __commonJS({
|
|
|
31762
31798
|
};
|
|
31763
31799
|
function connect(opts, callback) {
|
|
31764
31800
|
if (callback === void 0) {
|
|
31765
|
-
return new Promise((
|
|
31801
|
+
return new Promise((resolve9, reject) => {
|
|
31766
31802
|
connect.call(this, opts, (err, data) => {
|
|
31767
|
-
return err ? reject(err) :
|
|
31803
|
+
return err ? reject(err) : resolve9(data);
|
|
31768
31804
|
});
|
|
31769
31805
|
});
|
|
31770
31806
|
}
|
|
@@ -35387,7 +35423,7 @@ var require_fetch = __commonJS({
|
|
|
35387
35423
|
async function dispatch({ body }) {
|
|
35388
35424
|
const url = requestCurrentURL(request);
|
|
35389
35425
|
const agent = fetchParams.controller.dispatcher;
|
|
35390
|
-
return new Promise((
|
|
35426
|
+
return new Promise((resolve9, reject) => agent.dispatch(
|
|
35391
35427
|
{
|
|
35392
35428
|
path: url.pathname + url.search,
|
|
35393
35429
|
origin: url.origin,
|
|
@@ -35463,7 +35499,7 @@ var require_fetch = __commonJS({
|
|
|
35463
35499
|
}
|
|
35464
35500
|
}
|
|
35465
35501
|
}
|
|
35466
|
-
|
|
35502
|
+
resolve9({
|
|
35467
35503
|
status,
|
|
35468
35504
|
statusText,
|
|
35469
35505
|
headersList: headers[kHeadersList],
|
|
@@ -35506,7 +35542,7 @@ var require_fetch = __commonJS({
|
|
|
35506
35542
|
const val = headersList[n + 1].toString("latin1");
|
|
35507
35543
|
headers[kHeadersList].append(key, val);
|
|
35508
35544
|
}
|
|
35509
|
-
|
|
35545
|
+
resolve9({
|
|
35510
35546
|
status,
|
|
35511
35547
|
statusText: STATUS_CODES[status],
|
|
35512
35548
|
headersList: headers[kHeadersList],
|
|
@@ -39301,7 +39337,7 @@ var init_mcp_check_provider = __esm({
|
|
|
39301
39337
|
logger.warn(
|
|
39302
39338
|
`MCP ${transportName} failed (attempt ${attempt + 1}/${maxRetries + 1}), retrying in ${delay}ms: ${error instanceof Error ? error.message : String(error)}`
|
|
39303
39339
|
);
|
|
39304
|
-
await new Promise((
|
|
39340
|
+
await new Promise((resolve9) => setTimeout(resolve9, delay));
|
|
39305
39341
|
attempt += 1;
|
|
39306
39342
|
} finally {
|
|
39307
39343
|
try {
|
|
@@ -39584,7 +39620,7 @@ async function acquirePromptLock() {
|
|
|
39584
39620
|
activePrompt = true;
|
|
39585
39621
|
return;
|
|
39586
39622
|
}
|
|
39587
|
-
await new Promise((
|
|
39623
|
+
await new Promise((resolve9) => waiters.push(resolve9));
|
|
39588
39624
|
activePrompt = true;
|
|
39589
39625
|
}
|
|
39590
39626
|
function releasePromptLock() {
|
|
@@ -39594,7 +39630,7 @@ function releasePromptLock() {
|
|
|
39594
39630
|
}
|
|
39595
39631
|
async function interactivePrompt(options) {
|
|
39596
39632
|
await acquirePromptLock();
|
|
39597
|
-
return new Promise((
|
|
39633
|
+
return new Promise((resolve9, reject) => {
|
|
39598
39634
|
const dbg = process.env.VISOR_DEBUG === "true";
|
|
39599
39635
|
try {
|
|
39600
39636
|
if (dbg) {
|
|
@@ -39681,12 +39717,12 @@ async function interactivePrompt(options) {
|
|
|
39681
39717
|
};
|
|
39682
39718
|
const finish = (value) => {
|
|
39683
39719
|
cleanup();
|
|
39684
|
-
|
|
39720
|
+
resolve9(value);
|
|
39685
39721
|
};
|
|
39686
39722
|
if (options.timeout && options.timeout > 0) {
|
|
39687
39723
|
timeoutId = setTimeout(() => {
|
|
39688
39724
|
cleanup();
|
|
39689
|
-
if (defaultValue !== void 0) return
|
|
39725
|
+
if (defaultValue !== void 0) return resolve9(defaultValue);
|
|
39690
39726
|
return reject(new Error("Input timeout"));
|
|
39691
39727
|
}, options.timeout);
|
|
39692
39728
|
}
|
|
@@ -39818,7 +39854,7 @@ async function interactivePrompt(options) {
|
|
|
39818
39854
|
});
|
|
39819
39855
|
}
|
|
39820
39856
|
async function simplePrompt(prompt) {
|
|
39821
|
-
return new Promise((
|
|
39857
|
+
return new Promise((resolve9) => {
|
|
39822
39858
|
const rl = readline.createInterface({
|
|
39823
39859
|
input: process.stdin,
|
|
39824
39860
|
output: process.stdout
|
|
@@ -39834,7 +39870,7 @@ async function simplePrompt(prompt) {
|
|
|
39834
39870
|
rl.question(`${prompt}
|
|
39835
39871
|
> `, (answer) => {
|
|
39836
39872
|
rl.close();
|
|
39837
|
-
|
|
39873
|
+
resolve9(answer.trim());
|
|
39838
39874
|
});
|
|
39839
39875
|
});
|
|
39840
39876
|
}
|
|
@@ -39852,7 +39888,7 @@ function isStdinAvailable() {
|
|
|
39852
39888
|
return !process.stdin.isTTY;
|
|
39853
39889
|
}
|
|
39854
39890
|
async function readStdin(timeout, maxSize = 1024 * 1024) {
|
|
39855
|
-
return new Promise((
|
|
39891
|
+
return new Promise((resolve9, reject) => {
|
|
39856
39892
|
let data = "";
|
|
39857
39893
|
let timeoutId;
|
|
39858
39894
|
if (timeout) {
|
|
@@ -39879,7 +39915,7 @@ async function readStdin(timeout, maxSize = 1024 * 1024) {
|
|
|
39879
39915
|
};
|
|
39880
39916
|
const onEnd = () => {
|
|
39881
39917
|
cleanup();
|
|
39882
|
-
|
|
39918
|
+
resolve9(data.trim());
|
|
39883
39919
|
};
|
|
39884
39920
|
const onError = (err) => {
|
|
39885
39921
|
cleanup();
|
|
@@ -40666,8 +40702,8 @@ function buildBuiltinGlobals(opts) {
|
|
|
40666
40702
|
const asyncFunctionNames = /* @__PURE__ */ new Set();
|
|
40667
40703
|
const scheduleFn = async (args = {}) => {
|
|
40668
40704
|
try {
|
|
40669
|
-
const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-
|
|
40670
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
40705
|
+
const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-WSZKJUNQ.mjs");
|
|
40706
|
+
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-Q7E5NBHS.mjs");
|
|
40671
40707
|
const parentCtx = opts.sessionInfo?._parentContext;
|
|
40672
40708
|
const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
|
|
40673
40709
|
const visorCfg = parentCtx?.config;
|
|
@@ -42895,7 +42931,10 @@ function projectWorkflowToGraph(workflow, workflowInputs, _parentCheckId) {
|
|
|
42895
42931
|
group_by: "check",
|
|
42896
42932
|
collapse: false
|
|
42897
42933
|
}
|
|
42898
|
-
}
|
|
42934
|
+
},
|
|
42935
|
+
...workflow.sandboxes && { sandboxes: workflow.sandboxes },
|
|
42936
|
+
...workflow.sandbox && { sandbox: workflow.sandbox },
|
|
42937
|
+
...workflow.sandbox_defaults && { sandbox_defaults: workflow.sandbox_defaults }
|
|
42899
42938
|
};
|
|
42900
42939
|
if (logger.isDebugEnabled?.()) {
|
|
42901
42940
|
logger.debug(
|
|
@@ -43712,4 +43751,4 @@ undici/lib/fetch/body.js:
|
|
|
43712
43751
|
undici/lib/websocket/frame.js:
|
|
43713
43752
|
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
|
43714
43753
|
*/
|
|
43715
|
-
//# sourceMappingURL=chunk-
|
|
43754
|
+
//# sourceMappingURL=chunk-DXNWUIAN.mjs.map
|