@probelabs/visor 0.1.177-ee → 0.1.178
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/defaults/code-talk.yaml +10 -5
- package/dist/defaults/code-talk.yaml +10 -5
- package/dist/docs/ai-custom-tools.md +49 -0
- package/dist/docs/http.md +23 -0
- package/dist/docs/testing/cookbook.md +48 -0
- package/dist/docs/testing/dsl-reference.md +4 -2
- package/dist/docs/testing/flows.md +33 -1
- package/dist/examples/http-integration-config.yaml +16 -0
- package/dist/generated/config-schema.d.ts +51 -6
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +61 -6
- package/dist/github-comments.d.ts +5 -1
- package/dist/github-comments.d.ts.map +1 -1
- package/dist/index.js +407 -1910
- package/dist/output/traces/run-2026-03-11T06-33-05-398Z.ndjson +138 -0
- package/dist/output/traces/run-2026-03-11T06-33-47-884Z.ndjson +2296 -0
- package/dist/providers/api-tool-executor.d.ts +2 -0
- package/dist/providers/api-tool-executor.d.ts.map +1 -1
- package/dist/providers/http-client-provider.d.ts.map +1 -1
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/providers/workflow-check-provider.d.ts.map +1 -1
- package/dist/sdk/{a2a-frontend-BPWLYLCG.mjs → a2a-frontend-U3PTNCLR.mjs} +2 -2
- package/dist/sdk/{a2a-frontend-FUJRKHJB.mjs → a2a-frontend-WYBMBBYG.mjs} +2 -2
- package/dist/sdk/{check-provider-registry-G64PWDCZ.mjs → check-provider-registry-3DZOXYIA.mjs} +6 -6
- package/dist/sdk/{check-provider-registry-HW4QPPSA.mjs → check-provider-registry-T5J3H2N7.mjs} +6 -6
- package/dist/sdk/check-provider-registry-ZX76MY2L.mjs +30 -0
- package/dist/sdk/{chunk-OPI632LK.mjs → chunk-4ECMTCOM.mjs} +2 -2
- package/dist/sdk/{chunk-65SHRIQF.mjs → chunk-6YGCACBF.mjs} +2 -2
- package/dist/sdk/{chunk-65SHRIQF.mjs.map → chunk-6YGCACBF.mjs.map} +1 -1
- package/dist/sdk/{chunk-IYXOLUDJ.mjs → chunk-AK64Y6Y2.mjs} +222 -37
- package/dist/sdk/chunk-AK64Y6Y2.mjs.map +1 -0
- package/dist/sdk/chunk-ANEKFNAS.mjs +45424 -0
- package/dist/sdk/chunk-ANEKFNAS.mjs.map +1 -0
- package/dist/sdk/{chunk-Y6PVSFCS.mjs → chunk-B7XHSG3L.mjs} +237 -47
- package/dist/sdk/chunk-B7XHSG3L.mjs.map +1 -0
- package/dist/sdk/{chunk-MM3TGVQ4.mjs → chunk-BMXVAJ2M.mjs} +52 -7
- package/dist/sdk/chunk-BMXVAJ2M.mjs.map +1 -0
- package/dist/sdk/{chunk-EFNNJIMY.mjs → chunk-CDRKH5HH.mjs} +2 -2
- package/dist/sdk/{chunk-OHOBWVPP.mjs → chunk-ENSZDV3O.mjs} +3 -3
- package/dist/sdk/{chunk-GVTWESYN.mjs → chunk-KG6PM4OL.mjs} +3 -3
- package/dist/sdk/chunk-KG6PM4OL.mjs.map +1 -0
- package/dist/sdk/{chunk-WJIV7MKY.mjs → chunk-WZS4ARZB.mjs} +3 -3
- package/dist/sdk/{config-OOUMTCEA.mjs → config-DFOF7LP4.mjs} +2 -2
- package/dist/sdk/{failure-condition-evaluator-HL33X7MH.mjs → failure-condition-evaluator-MMPKQGUA.mjs} +3 -3
- package/dist/sdk/{failure-condition-evaluator-DL6H57NX.mjs → failure-condition-evaluator-P3MS5DRL.mjs} +3 -3
- package/dist/sdk/{github-frontend-F2YCPK6H.mjs → github-frontend-7RLEBJWG.mjs} +11 -3
- package/dist/sdk/github-frontend-7RLEBJWG.mjs.map +1 -0
- package/dist/sdk/{github-frontend-U2U42CKV.mjs → github-frontend-QTKOYB56.mjs} +11 -3
- package/dist/sdk/github-frontend-QTKOYB56.mjs.map +1 -0
- package/dist/sdk/{host-HFOJQIOF.mjs → host-I2TBBKD5.mjs} +3 -3
- package/dist/sdk/{host-6TBS44ER.mjs → host-SE3MQHWG.mjs} +4 -4
- package/dist/sdk/{routing-GF2CF3JT.mjs → routing-2X6QF5IW.mjs} +4 -4
- package/dist/sdk/{routing-SFP4D6O3.mjs → routing-QHXBQS6X.mjs} +4 -4
- package/dist/sdk/{schedule-tool-45NAALKS.mjs → schedule-tool-MKT5FZ6J.mjs} +6 -6
- package/dist/sdk/{schedule-tool-7O7SWSJ4.mjs → schedule-tool-R6JJIDZ6.mjs} +6 -6
- package/dist/sdk/schedule-tool-W4SQ334O.mjs +36 -0
- package/dist/sdk/{schedule-tool-handler-6MPP5DXK.mjs → schedule-tool-handler-AOMZV3Q3.mjs} +6 -6
- package/dist/sdk/{schedule-tool-handler-KYDXJ2ZL.mjs → schedule-tool-handler-MPJFLH4J.mjs} +6 -6
- package/dist/sdk/schedule-tool-handler-WY7WCFE5.mjs +40 -0
- package/dist/sdk/sdk.d.mts +21 -0
- package/dist/sdk/sdk.d.ts +21 -0
- package/dist/sdk/sdk.js +545 -1681
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +5 -5
- package/dist/sdk/{trace-helpers-FKM2MEDW.mjs → trace-helpers-4ADQ4GB3.mjs} +2 -2
- package/dist/sdk/{trace-helpers-L3EOYW5P.mjs → trace-helpers-K47ZVJSU.mjs} +2 -2
- package/dist/sdk/trace-helpers-K47ZVJSU.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-JIXZJNV5.mjs → workflow-check-provider-A3YH2UZJ.mjs} +6 -6
- package/dist/sdk/workflow-check-provider-A3YH2UZJ.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-OA33MESM.mjs → workflow-check-provider-WHZP7BDF.mjs} +6 -6
- package/dist/sdk/workflow-check-provider-WHZP7BDF.mjs.map +1 -0
- package/dist/sdk/workflow-check-provider-WZN3B2S2.mjs +30 -0
- package/dist/sdk/workflow-check-provider-WZN3B2S2.mjs.map +1 -0
- package/dist/state-machine/context/build-engine-context.d.ts.map +1 -1
- package/dist/test-runner/conversation-sugar.d.ts +3 -0
- package/dist/test-runner/conversation-sugar.d.ts.map +1 -1
- package/dist/test-runner/validator.d.ts.map +1 -1
- package/dist/traces/run-2026-03-11T06-33-05-398Z.ndjson +138 -0
- package/dist/traces/run-2026-03-11T06-33-47-884Z.ndjson +2296 -0
- package/dist/types/config.d.ts +21 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/rate-limiter.d.ts +61 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/sdk/chunk-GVTWESYN.mjs.map +0 -1
- package/dist/sdk/chunk-IYXOLUDJ.mjs.map +0 -1
- package/dist/sdk/chunk-MM3TGVQ4.mjs.map +0 -1
- package/dist/sdk/chunk-Y6PVSFCS.mjs.map +0 -1
- package/dist/sdk/github-frontend-F2YCPK6H.mjs.map +0 -1
- package/dist/sdk/github-frontend-U2U42CKV.mjs.map +0 -1
- package/dist/sdk/knex-store-QCEW4I4R.mjs +0 -527
- package/dist/sdk/knex-store-QCEW4I4R.mjs.map +0 -1
- package/dist/sdk/loader-Q7K76ZIY.mjs +0 -89
- package/dist/sdk/loader-Q7K76ZIY.mjs.map +0 -1
- package/dist/sdk/opa-policy-engine-QCSSIMUF.mjs +0 -655
- package/dist/sdk/opa-policy-engine-QCSSIMUF.mjs.map +0 -1
- package/dist/sdk/slack-frontend-6SXPTQDI.mjs +0 -895
- package/dist/sdk/slack-frontend-6SXPTQDI.mjs.map +0 -1
- package/dist/sdk/validator-XTZJZZJH.mjs +0 -134
- package/dist/sdk/validator-XTZJZZJH.mjs.map +0 -1
- /package/dist/sdk/{a2a-frontend-BPWLYLCG.mjs.map → a2a-frontend-U3PTNCLR.mjs.map} +0 -0
- /package/dist/sdk/{a2a-frontend-FUJRKHJB.mjs.map → a2a-frontend-WYBMBBYG.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-G64PWDCZ.mjs.map → check-provider-registry-3DZOXYIA.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-HW4QPPSA.mjs.map → check-provider-registry-T5J3H2N7.mjs.map} +0 -0
- /package/dist/sdk/{config-OOUMTCEA.mjs.map → check-provider-registry-ZX76MY2L.mjs.map} +0 -0
- /package/dist/sdk/{chunk-EFNNJIMY.mjs.map → chunk-4ECMTCOM.mjs.map} +0 -0
- /package/dist/sdk/{chunk-OPI632LK.mjs.map → chunk-CDRKH5HH.mjs.map} +0 -0
- /package/dist/sdk/{chunk-OHOBWVPP.mjs.map → chunk-ENSZDV3O.mjs.map} +0 -0
- /package/dist/sdk/{chunk-WJIV7MKY.mjs.map → chunk-WZS4ARZB.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-DL6H57NX.mjs.map → config-DFOF7LP4.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-HL33X7MH.mjs.map → failure-condition-evaluator-MMPKQGUA.mjs.map} +0 -0
- /package/dist/sdk/{routing-GF2CF3JT.mjs.map → failure-condition-evaluator-P3MS5DRL.mjs.map} +0 -0
- /package/dist/sdk/{host-6TBS44ER.mjs.map → host-I2TBBKD5.mjs.map} +0 -0
- /package/dist/sdk/{host-HFOJQIOF.mjs.map → host-SE3MQHWG.mjs.map} +0 -0
- /package/dist/sdk/{routing-SFP4D6O3.mjs.map → routing-2X6QF5IW.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-45NAALKS.mjs.map → routing-QHXBQS6X.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-7O7SWSJ4.mjs.map → schedule-tool-MKT5FZ6J.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-6MPP5DXK.mjs.map → schedule-tool-R6JJIDZ6.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-KYDXJ2ZL.mjs.map → schedule-tool-W4SQ334O.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-FKM2MEDW.mjs.map → schedule-tool-handler-AOMZV3Q3.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-L3EOYW5P.mjs.map → schedule-tool-handler-MPJFLH4J.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-JIXZJNV5.mjs.map → schedule-tool-handler-WY7WCFE5.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-OA33MESM.mjs.map → trace-helpers-4ADQ4GB3.mjs.map} +0 -0
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
import {
|
|
44
44
|
config_exports,
|
|
45
45
|
init_config
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-BMXVAJ2M.mjs";
|
|
47
47
|
import {
|
|
48
48
|
ExecutionJournal,
|
|
49
49
|
checkLoopBudget,
|
|
@@ -52,11 +52,11 @@ import {
|
|
|
52
52
|
init_routing,
|
|
53
53
|
init_snapshot_store,
|
|
54
54
|
snapshot_store_exports
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-ENSZDV3O.mjs";
|
|
56
56
|
import {
|
|
57
57
|
FailureConditionEvaluator,
|
|
58
58
|
init_failure_condition_evaluator
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-4ECMTCOM.mjs";
|
|
60
60
|
import {
|
|
61
61
|
addEvent,
|
|
62
62
|
emitNdjsonFallback,
|
|
@@ -67,7 +67,7 @@ import {
|
|
|
67
67
|
setSpanAttributes,
|
|
68
68
|
trace_helpers_exports,
|
|
69
69
|
withActiveSpan
|
|
70
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-6YGCACBF.mjs";
|
|
71
71
|
import {
|
|
72
72
|
generateHumanId,
|
|
73
73
|
init_human_id
|
|
@@ -2891,6 +2891,162 @@ var init_state_capture = __esm({
|
|
|
2891
2891
|
}
|
|
2892
2892
|
});
|
|
2893
2893
|
|
|
2894
|
+
// src/utils/rate-limiter.ts
|
|
2895
|
+
function windowToMs(per) {
|
|
2896
|
+
switch (per) {
|
|
2897
|
+
case "second":
|
|
2898
|
+
return 1e3;
|
|
2899
|
+
case "minute":
|
|
2900
|
+
return 6e4;
|
|
2901
|
+
case "hour":
|
|
2902
|
+
return 36e5;
|
|
2903
|
+
}
|
|
2904
|
+
}
|
|
2905
|
+
function resolveRateLimitKey(config, fallbackUrl) {
|
|
2906
|
+
if (config.key) {
|
|
2907
|
+
return config.key;
|
|
2908
|
+
}
|
|
2909
|
+
if (fallbackUrl) {
|
|
2910
|
+
try {
|
|
2911
|
+
const url = new URL(fallbackUrl);
|
|
2912
|
+
return url.origin;
|
|
2913
|
+
} catch {
|
|
2914
|
+
return fallbackUrl;
|
|
2915
|
+
}
|
|
2916
|
+
}
|
|
2917
|
+
return "__default__";
|
|
2918
|
+
}
|
|
2919
|
+
async function rateLimitedFetch(url, options, rateLimitConfig) {
|
|
2920
|
+
if (!rateLimitConfig) {
|
|
2921
|
+
return fetch(url, options);
|
|
2922
|
+
}
|
|
2923
|
+
const key = resolveRateLimitKey(rateLimitConfig, url);
|
|
2924
|
+
const registry = RateLimiterRegistry.getInstance();
|
|
2925
|
+
const bucket = registry.getOrCreate(key, rateLimitConfig);
|
|
2926
|
+
const maxRetries = rateLimitConfig.max_retries ?? 3;
|
|
2927
|
+
const backoff = rateLimitConfig.backoff ?? "exponential";
|
|
2928
|
+
const initialDelay = rateLimitConfig.initial_delay_ms ?? 1e3;
|
|
2929
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
2930
|
+
await bucket.acquire();
|
|
2931
|
+
const response = await fetch(url, options);
|
|
2932
|
+
if (response.status !== 429) {
|
|
2933
|
+
return response;
|
|
2934
|
+
}
|
|
2935
|
+
if (attempt === maxRetries) {
|
|
2936
|
+
logger.warn(`[rate-limiter] Exhausted ${maxRetries} retries for ${url} (bucket: ${key})`);
|
|
2937
|
+
return response;
|
|
2938
|
+
}
|
|
2939
|
+
let delayMs;
|
|
2940
|
+
const retryAfter = response.headers.get("retry-after");
|
|
2941
|
+
if (retryAfter) {
|
|
2942
|
+
const parsed = Number(retryAfter);
|
|
2943
|
+
if (!isNaN(parsed)) {
|
|
2944
|
+
delayMs = parsed * 1e3;
|
|
2945
|
+
} else {
|
|
2946
|
+
const date = new Date(retryAfter).getTime();
|
|
2947
|
+
delayMs = Math.max(0, date - Date.now());
|
|
2948
|
+
}
|
|
2949
|
+
} else {
|
|
2950
|
+
delayMs = backoff === "exponential" ? initialDelay * Math.pow(2, attempt) : initialDelay;
|
|
2951
|
+
}
|
|
2952
|
+
logger.verbose(
|
|
2953
|
+
`[rate-limiter] 429 on ${url} (bucket: ${key}), retry ${attempt + 1}/${maxRetries} in ${delayMs}ms`
|
|
2954
|
+
);
|
|
2955
|
+
await new Promise((resolve9) => setTimeout(resolve9, delayMs));
|
|
2956
|
+
}
|
|
2957
|
+
return fetch(url, options);
|
|
2958
|
+
}
|
|
2959
|
+
var TokenBucket, REGISTRY_KEY, RateLimiterRegistry;
|
|
2960
|
+
var init_rate_limiter = __esm({
|
|
2961
|
+
"src/utils/rate-limiter.ts"() {
|
|
2962
|
+
"use strict";
|
|
2963
|
+
init_logger();
|
|
2964
|
+
TokenBucket = class {
|
|
2965
|
+
tokens;
|
|
2966
|
+
capacity;
|
|
2967
|
+
refillRate;
|
|
2968
|
+
// tokens per ms
|
|
2969
|
+
lastRefill;
|
|
2970
|
+
waitQueue = [];
|
|
2971
|
+
constructor(capacity, windowMs) {
|
|
2972
|
+
this.capacity = capacity;
|
|
2973
|
+
this.tokens = capacity;
|
|
2974
|
+
this.refillRate = capacity / windowMs;
|
|
2975
|
+
this.lastRefill = Date.now();
|
|
2976
|
+
}
|
|
2977
|
+
refill() {
|
|
2978
|
+
const now = Date.now();
|
|
2979
|
+
const elapsed = now - this.lastRefill;
|
|
2980
|
+
const newTokens = elapsed * this.refillRate;
|
|
2981
|
+
this.tokens = Math.min(this.capacity, this.tokens + newTokens);
|
|
2982
|
+
this.lastRefill = now;
|
|
2983
|
+
}
|
|
2984
|
+
/**
|
|
2985
|
+
* Non-blocking: try to consume one token.
|
|
2986
|
+
*/
|
|
2987
|
+
tryConsume() {
|
|
2988
|
+
this.refill();
|
|
2989
|
+
if (this.tokens >= 1) {
|
|
2990
|
+
this.tokens -= 1;
|
|
2991
|
+
return true;
|
|
2992
|
+
}
|
|
2993
|
+
return false;
|
|
2994
|
+
}
|
|
2995
|
+
/**
|
|
2996
|
+
* Blocking: wait until a token is available, then consume it.
|
|
2997
|
+
* Requests are served FIFO.
|
|
2998
|
+
*/
|
|
2999
|
+
async acquire() {
|
|
3000
|
+
if (this.tryConsume()) {
|
|
3001
|
+
return;
|
|
3002
|
+
}
|
|
3003
|
+
const waitMs = Math.ceil((1 - this.tokens) / this.refillRate);
|
|
3004
|
+
return new Promise((resolve9) => {
|
|
3005
|
+
const entry = { resolve: resolve9 };
|
|
3006
|
+
this.waitQueue.push(entry);
|
|
3007
|
+
setTimeout(() => {
|
|
3008
|
+
const idx = this.waitQueue.indexOf(entry);
|
|
3009
|
+
if (idx >= 0) {
|
|
3010
|
+
this.waitQueue.splice(idx, 1);
|
|
3011
|
+
}
|
|
3012
|
+
this.refill();
|
|
3013
|
+
if (this.tokens >= 1) {
|
|
3014
|
+
this.tokens -= 1;
|
|
3015
|
+
}
|
|
3016
|
+
resolve9();
|
|
3017
|
+
}, waitMs);
|
|
3018
|
+
});
|
|
3019
|
+
}
|
|
3020
|
+
};
|
|
3021
|
+
REGISTRY_KEY = /* @__PURE__ */ Symbol.for("visor.rateLimiterRegistry");
|
|
3022
|
+
RateLimiterRegistry = class _RateLimiterRegistry {
|
|
3023
|
+
buckets = /* @__PURE__ */ new Map();
|
|
3024
|
+
static getInstance() {
|
|
3025
|
+
const g = globalThis;
|
|
3026
|
+
if (!g[REGISTRY_KEY]) {
|
|
3027
|
+
g[REGISTRY_KEY] = new _RateLimiterRegistry();
|
|
3028
|
+
}
|
|
3029
|
+
return g[REGISTRY_KEY];
|
|
3030
|
+
}
|
|
3031
|
+
getOrCreate(key, config) {
|
|
3032
|
+
let bucket = this.buckets.get(key);
|
|
3033
|
+
if (!bucket) {
|
|
3034
|
+
const windowMs = windowToMs(config.per);
|
|
3035
|
+
bucket = new TokenBucket(config.requests, windowMs);
|
|
3036
|
+
this.buckets.set(key, bucket);
|
|
3037
|
+
logger.verbose(
|
|
3038
|
+
`[rate-limiter] Created bucket "${key}": ${config.requests} req/${config.per}`
|
|
3039
|
+
);
|
|
3040
|
+
}
|
|
3041
|
+
return bucket;
|
|
3042
|
+
}
|
|
3043
|
+
cleanup() {
|
|
3044
|
+
this.buckets.clear();
|
|
3045
|
+
}
|
|
3046
|
+
};
|
|
3047
|
+
}
|
|
3048
|
+
});
|
|
3049
|
+
|
|
2894
3050
|
// src/providers/api-tool-executor.ts
|
|
2895
3051
|
import fs2 from "fs/promises";
|
|
2896
3052
|
import path3 from "path";
|
|
@@ -3126,7 +3282,8 @@ function getApiToolConfig(tool) {
|
|
|
3126
3282
|
apiKey: tool.apiKey ?? tool.api_key,
|
|
3127
3283
|
securitySchemeName: tool.securitySchemeName ?? tool.security_scheme_name,
|
|
3128
3284
|
securityCredentials: tool.securityCredentials || tool.security_credentials || {},
|
|
3129
|
-
requestTimeoutMs: tool.requestTimeoutMs ?? tool.request_timeout_ms ?? tool.timeout ?? 3e4
|
|
3285
|
+
requestTimeoutMs: tool.requestTimeoutMs ?? tool.request_timeout_ms ?? tool.timeout ?? 3e4,
|
|
3286
|
+
rateLimitConfig: tool.rate_limit
|
|
3130
3287
|
};
|
|
3131
3288
|
}
|
|
3132
3289
|
function buildOutputSchema(operation) {
|
|
@@ -3558,12 +3715,16 @@ async function executeMappedApiTool(mappedTool, args) {
|
|
|
3558
3715
|
const controller = new AbortController();
|
|
3559
3716
|
const timeout = setTimeout(() => controller.abort(), apiToolConfig.requestTimeoutMs);
|
|
3560
3717
|
try {
|
|
3561
|
-
const response = await
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
|
|
3718
|
+
const response = await rateLimitedFetch(
|
|
3719
|
+
endpoint.toString(),
|
|
3720
|
+
{
|
|
3721
|
+
method,
|
|
3722
|
+
headers,
|
|
3723
|
+
body: requestBodyValue === void 0 ? void 0 : headers["Content-Type"]?.includes("application/json") ? JSON.stringify(requestBodyValue) : String(requestBodyValue),
|
|
3724
|
+
signal: controller.signal
|
|
3725
|
+
},
|
|
3726
|
+
apiToolConfig.rateLimitConfig
|
|
3727
|
+
);
|
|
3567
3728
|
const raw = await response.text();
|
|
3568
3729
|
let body = raw;
|
|
3569
3730
|
const contentType = response.headers.get("content-type") || "";
|
|
@@ -3600,6 +3761,7 @@ var init_api_tool_executor = __esm({
|
|
|
3600
3761
|
"src/providers/api-tool-executor.ts"() {
|
|
3601
3762
|
"use strict";
|
|
3602
3763
|
init_logger();
|
|
3764
|
+
init_rate_limiter();
|
|
3603
3765
|
HTTP_METHODS = /* @__PURE__ */ new Set(["get", "put", "post", "delete", "options", "head", "patch", "trace"]);
|
|
3604
3766
|
ApiToolRegistry = class {
|
|
3605
3767
|
bundleCache = /* @__PURE__ */ new Map();
|
|
@@ -4042,7 +4204,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
|
|
|
4042
4204
|
...args,
|
|
4043
4205
|
...argsOverrides
|
|
4044
4206
|
};
|
|
4045
|
-
const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-
|
|
4207
|
+
const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-A3YH2UZJ.mjs");
|
|
4046
4208
|
const provider = new WorkflowCheckProvider2();
|
|
4047
4209
|
const checkConfig = {
|
|
4048
4210
|
type: "workflow",
|
|
@@ -6919,7 +7081,7 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
|
|
|
6919
7081
|
workflowInputs,
|
|
6920
7082
|
ai: {
|
|
6921
7083
|
...checkConfig.ai || {},
|
|
6922
|
-
timeout: checkConfig.ai?.timeout || 18e5,
|
|
7084
|
+
timeout: checkConfig.timeout || checkConfig.ai?.timeout || 18e5,
|
|
6923
7085
|
debug: !!context2.debug
|
|
6924
7086
|
}
|
|
6925
7087
|
};
|
|
@@ -7006,7 +7168,7 @@ async function executeCheckWithForEachItems(checkId, forEachParent, forEachItems
|
|
|
7006
7168
|
context2,
|
|
7007
7169
|
prInfo,
|
|
7008
7170
|
dependencyResults,
|
|
7009
|
-
checkConfig.ai?.timeout || 18e5,
|
|
7171
|
+
checkConfig.timeout || checkConfig.ai?.timeout || 18e5,
|
|
7010
7172
|
() => provider.execute(prInfo, providerConfig, dependencyResults, executionContext)
|
|
7011
7173
|
);
|
|
7012
7174
|
try {
|
|
@@ -7422,7 +7584,7 @@ async function executeInvocation(item, context2, scope, prInfo, dependencyResult
|
|
|
7422
7584
|
__outputHistory: outputHistory,
|
|
7423
7585
|
ai: {
|
|
7424
7586
|
...stepConfig.ai || {},
|
|
7425
|
-
timeout: stepConfig.ai?.timeout || 18e5,
|
|
7587
|
+
timeout: stepConfig.timeout || stepConfig.ai?.timeout || 18e5,
|
|
7426
7588
|
debug: !!context2.debug
|
|
7427
7589
|
}
|
|
7428
7590
|
};
|
|
@@ -7946,7 +8108,7 @@ async function executeSingleCheck(checkId, context2, state, emitEvent, transitio
|
|
|
7946
8108
|
workflowInputs,
|
|
7947
8109
|
ai: {
|
|
7948
8110
|
...checkConfig.ai || {},
|
|
7949
|
-
timeout: checkConfig.ai?.timeout || 18e5,
|
|
8111
|
+
timeout: checkConfig.timeout || checkConfig.ai?.timeout || 18e5,
|
|
7950
8112
|
debug: !!context2.debug
|
|
7951
8113
|
}
|
|
7952
8114
|
};
|
|
@@ -8047,7 +8209,7 @@ async function executeSingleCheck(checkId, context2, state, emitEvent, transitio
|
|
|
8047
8209
|
context2,
|
|
8048
8210
|
prInfo,
|
|
8049
8211
|
dependencyResults,
|
|
8050
|
-
checkConfig.ai?.timeout || 18e5,
|
|
8212
|
+
checkConfig.timeout || checkConfig.ai?.timeout || 18e5,
|
|
8051
8213
|
() => provider.execute(prInfo, providerConfig, dependencyResults, executionContext)
|
|
8052
8214
|
);
|
|
8053
8215
|
try {
|
|
@@ -8776,7 +8938,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
|
|
|
8776
8938
|
workflowInputs,
|
|
8777
8939
|
ai: {
|
|
8778
8940
|
...checkConfig.ai || {},
|
|
8779
|
-
timeout: checkConfig.ai?.timeout || 18e5,
|
|
8941
|
+
timeout: checkConfig.timeout || checkConfig.ai?.timeout || 18e5,
|
|
8780
8942
|
debug: !!context2.debug
|
|
8781
8943
|
}
|
|
8782
8944
|
};
|
|
@@ -8811,7 +8973,10 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
|
|
|
8811
8973
|
`[LevelDispatch] Conversation extracted (${conv?.transport || "unknown"}): ${messageCount} messages`
|
|
8812
8974
|
);
|
|
8813
8975
|
}
|
|
8814
|
-
const transportCtx = slackConv ? { slack: { event: event || {}, conversation: slackConv } } : {
|
|
8976
|
+
const transportCtx = slackConv ? { slack: { event: event || {}, conversation: slackConv } } : {
|
|
8977
|
+
telegram: { event: event || {}, conversation: telegramConv },
|
|
8978
|
+
webhook: payload
|
|
8979
|
+
};
|
|
8815
8980
|
providerConfig.eventContext = {
|
|
8816
8981
|
...providerConfig.eventContext,
|
|
8817
8982
|
...transportCtx,
|
|
@@ -8918,11 +9083,12 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
|
|
|
8918
9083
|
};
|
|
8919
9084
|
{
|
|
8920
9085
|
const assumeExpr = checkConfig?.assume;
|
|
8921
|
-
if (assumeExpr) {
|
|
9086
|
+
if (assumeExpr !== void 0 && assumeExpr !== null) {
|
|
8922
9087
|
let ok = true;
|
|
8923
9088
|
try {
|
|
8924
9089
|
const evaluator = new FailureConditionEvaluator();
|
|
8925
|
-
const
|
|
9090
|
+
const rawExprs = Array.isArray(assumeExpr) ? assumeExpr : [assumeExpr];
|
|
9091
|
+
const exprs = rawExprs.map((e) => typeof e === "string" ? e : String(e));
|
|
8926
9092
|
const conversation = context2.executionContext?.conversation || providerConfig?.eventContext?.conversation;
|
|
8927
9093
|
for (const ex of exprs) {
|
|
8928
9094
|
const res = await evaluator.evaluateIfCondition(checkId, ex, {
|
|
@@ -8975,7 +9141,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
|
|
|
8975
9141
|
context2,
|
|
8976
9142
|
prInfo,
|
|
8977
9143
|
dependencyResults,
|
|
8978
|
-
checkConfig.ai?.timeout || 18e5,
|
|
9144
|
+
checkConfig.timeout || checkConfig.ai?.timeout || 18e5,
|
|
8979
9145
|
() => provider.execute(prInfo, providerConfig, dependencyResults, executionContext)
|
|
8980
9146
|
);
|
|
8981
9147
|
try {
|
|
@@ -9363,7 +9529,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
|
|
|
9363
9529
|
}
|
|
9364
9530
|
}
|
|
9365
9531
|
try {
|
|
9366
|
-
const { evaluateTransitions } = await import("./routing-
|
|
9532
|
+
const { evaluateTransitions } = await import("./routing-2X6QF5IW.mjs");
|
|
9367
9533
|
const transTarget = await evaluateTransitions(
|
|
9368
9534
|
onFinish.transitions,
|
|
9369
9535
|
forEachParent,
|
|
@@ -9423,7 +9589,7 @@ async function executeCheckWithForEachItems2(checkId, forEachParent, forEachItem
|
|
|
9423
9589
|
`[LevelDispatch] Error evaluating on_finish transitions for ${forEachParent}: ${e instanceof Error ? e.message : String(e)}`
|
|
9424
9590
|
);
|
|
9425
9591
|
}
|
|
9426
|
-
const { evaluateGoto: evaluateGoto2 } = await import("./routing-
|
|
9592
|
+
const { evaluateGoto: evaluateGoto2 } = await import("./routing-2X6QF5IW.mjs");
|
|
9427
9593
|
if (context2.debug) {
|
|
9428
9594
|
logger.info(
|
|
9429
9595
|
`[LevelDispatch] Evaluating on_finish.goto_js for forEach parent: ${forEachParent}`
|
|
@@ -9904,7 +10070,7 @@ async function executeSingleCheck2(checkId, context2, state, emitEvent, transiti
|
|
|
9904
10070
|
workflowInputs,
|
|
9905
10071
|
ai: {
|
|
9906
10072
|
...checkConfig2.ai || {},
|
|
9907
|
-
timeout: checkConfig2.ai?.timeout || 18e5,
|
|
10073
|
+
timeout: checkConfig2.timeout || checkConfig2.ai?.timeout || 18e5,
|
|
9908
10074
|
debug: !!context2.debug
|
|
9909
10075
|
}
|
|
9910
10076
|
};
|
|
@@ -9935,7 +10101,9 @@ async function executeSingleCheck2(checkId, context2, state, emitEvent, transiti
|
|
|
9935
10101
|
const event = payload?.event;
|
|
9936
10102
|
const messageCount = Array.isArray(conv?.messages) ? conv.messages.length : 0;
|
|
9937
10103
|
if (context2.debug) {
|
|
9938
|
-
logger.info(
|
|
10104
|
+
logger.info(
|
|
10105
|
+
`[LevelDispatch] Conversation extracted (${conv?.transport || "unknown"}): ${messageCount} messages`
|
|
10106
|
+
);
|
|
9939
10107
|
}
|
|
9940
10108
|
const transportCtx = slackConv ? { slack: { event: event || {}, conversation: slackConv } } : { telegram: { event: event || {}, conversation: telegramConv }, webhook: payload };
|
|
9941
10109
|
providerConfig.eventContext = {
|
|
@@ -9988,11 +10156,12 @@ async function executeSingleCheck2(checkId, context2, state, emitEvent, transiti
|
|
|
9988
10156
|
};
|
|
9989
10157
|
{
|
|
9990
10158
|
const assumeExpr = checkConfig2?.assume;
|
|
9991
|
-
if (assumeExpr) {
|
|
10159
|
+
if (assumeExpr !== void 0 && assumeExpr !== null) {
|
|
9992
10160
|
let ok = true;
|
|
9993
10161
|
try {
|
|
9994
10162
|
const evaluator = new FailureConditionEvaluator();
|
|
9995
|
-
const
|
|
10163
|
+
const rawExprs = Array.isArray(assumeExpr) ? assumeExpr : [assumeExpr];
|
|
10164
|
+
const exprs = rawExprs.map((e) => typeof e === "string" ? e : String(e));
|
|
9996
10165
|
const conversation = context2.executionContext?.conversation || providerConfig?.eventContext?.conversation;
|
|
9997
10166
|
for (const ex of exprs) {
|
|
9998
10167
|
const res = await evaluator.evaluateIfCondition(checkId, ex, {
|
|
@@ -10073,7 +10242,7 @@ async function executeSingleCheck2(checkId, context2, state, emitEvent, transiti
|
|
|
10073
10242
|
context2,
|
|
10074
10243
|
prInfo,
|
|
10075
10244
|
dependencyResults,
|
|
10076
|
-
checkConfig2.ai?.timeout || 18e5,
|
|
10245
|
+
checkConfig2.timeout || checkConfig2.ai?.timeout || 18e5,
|
|
10077
10246
|
() => provider.execute(prInfo, providerConfig, dependencyResults, executionContext)
|
|
10078
10247
|
);
|
|
10079
10248
|
try {
|
|
@@ -13172,7 +13341,8 @@ function buildEngineContextForRun(workingDirectory, config, prInfo, debug, maxPa
|
|
|
13172
13341
|
sharedConcurrencyLimiter = {
|
|
13173
13342
|
async acquire(parentSessionId, _dbg, queueTimeout) {
|
|
13174
13343
|
const sid = parentSessionId || sessionId;
|
|
13175
|
-
|
|
13344
|
+
const effectiveQueueTimeout = queueTimeout ?? 0;
|
|
13345
|
+
return fairLimiter.acquire(sid, _dbg, effectiveQueueTimeout);
|
|
13176
13346
|
},
|
|
13177
13347
|
release(parentSessionId, _dbg) {
|
|
13178
13348
|
const sid = parentSessionId || sessionId;
|
|
@@ -13405,7 +13575,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13405
13575
|
try {
|
|
13406
13576
|
const map = options?.webhookContext?.webhookData;
|
|
13407
13577
|
if (map) {
|
|
13408
|
-
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-
|
|
13578
|
+
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-ZX76MY2L.mjs");
|
|
13409
13579
|
const reg = CheckProviderRegistry2.getInstance();
|
|
13410
13580
|
const p = reg.getProvider("http_input");
|
|
13411
13581
|
if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
|
|
@@ -13518,7 +13688,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13518
13688
|
logger.info("[StateMachine] Using state machine engine");
|
|
13519
13689
|
}
|
|
13520
13690
|
if (!config) {
|
|
13521
|
-
const { ConfigManager } = await import("./config-
|
|
13691
|
+
const { ConfigManager } = await import("./config-DFOF7LP4.mjs");
|
|
13522
13692
|
const configManager = new ConfigManager();
|
|
13523
13693
|
config = await configManager.getDefaultConfig();
|
|
13524
13694
|
logger.debug("[StateMachine] Using default configuration (no config provided)");
|
|
@@ -13528,7 +13698,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13528
13698
|
tag_filter: tagFilter
|
|
13529
13699
|
} : config;
|
|
13530
13700
|
try {
|
|
13531
|
-
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-
|
|
13701
|
+
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-ZX76MY2L.mjs");
|
|
13532
13702
|
const registry = CheckProviderRegistry2.getInstance();
|
|
13533
13703
|
registry.setCustomTools(configWithTagFilter.tools || {});
|
|
13534
13704
|
} catch (error) {
|
|
@@ -13592,7 +13762,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13592
13762
|
try {
|
|
13593
13763
|
const webhookData = this.executionContext?.webhookContext?.webhookData;
|
|
13594
13764
|
if (webhookData instanceof Map) {
|
|
13595
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
13765
|
+
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-AOMZV3Q3.mjs");
|
|
13596
13766
|
const slackCtx = extractSlackContext2(webhookData);
|
|
13597
13767
|
if (slackCtx) {
|
|
13598
13768
|
const payload = Array.from(webhookData.values())[0];
|
|
@@ -13621,7 +13791,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13621
13791
|
if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
|
|
13622
13792
|
try {
|
|
13623
13793
|
const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
|
|
13624
|
-
const { FrontendsHost } = await import("./host-
|
|
13794
|
+
const { FrontendsHost } = await import("./host-I2TBBKD5.mjs");
|
|
13625
13795
|
const bus = new EventBus();
|
|
13626
13796
|
context2.eventBus = bus;
|
|
13627
13797
|
frontendsHost = new FrontendsHost(bus, logger);
|
|
@@ -13973,9 +14143,9 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13973
14143
|
* @returns Array of failure condition evaluation results
|
|
13974
14144
|
*/
|
|
13975
14145
|
async evaluateFailureConditions(checkName, reviewSummary, config, previousOutputs, authorAssociation) {
|
|
13976
|
-
const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-
|
|
14146
|
+
const { FailureConditionEvaluator: FailureConditionEvaluator2 } = await import("./failure-condition-evaluator-P3MS5DRL.mjs");
|
|
13977
14147
|
const evaluator = new FailureConditionEvaluator2();
|
|
13978
|
-
const { addEvent: addEvent3 } = await import("./trace-helpers-
|
|
14148
|
+
const { addEvent: addEvent3 } = await import("./trace-helpers-K47ZVJSU.mjs");
|
|
13979
14149
|
const { addFailIfTriggered } = await import("./metrics-JTOG2HNO.mjs");
|
|
13980
14150
|
const checkConfig = config.checks?.[checkName];
|
|
13981
14151
|
if (!checkConfig) {
|
|
@@ -16141,6 +16311,7 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
16141
16311
|
init_schedule_tool();
|
|
16142
16312
|
init_schedule_tool_handler();
|
|
16143
16313
|
init_env_resolver();
|
|
16314
|
+
init_rate_limiter();
|
|
16144
16315
|
CustomToolsSSEServer = class _CustomToolsSSEServer {
|
|
16145
16316
|
server = null;
|
|
16146
16317
|
port = 0;
|
|
@@ -16897,7 +17068,8 @@ var init_mcp_custom_sse_server = __esm({
|
|
|
16897
17068
|
resolvedHeaders["Content-Type"] = "application/json";
|
|
16898
17069
|
}
|
|
16899
17070
|
}
|
|
16900
|
-
const
|
|
17071
|
+
const rateLimitConfig = tool.rate_limit;
|
|
17072
|
+
const response = await rateLimitedFetch(url, requestOptions, rateLimitConfig);
|
|
16901
17073
|
clearTimeout(timeoutId);
|
|
16902
17074
|
if (!response.ok) {
|
|
16903
17075
|
let errorBody = "";
|
|
@@ -19542,6 +19714,7 @@ var init_http_client_provider = __esm({
|
|
|
19542
19714
|
init_template_context();
|
|
19543
19715
|
init_oauth2_token_cache();
|
|
19544
19716
|
init_logger();
|
|
19717
|
+
init_rate_limiter();
|
|
19545
19718
|
HttpClientProvider = class extends CheckProvider {
|
|
19546
19719
|
liquid;
|
|
19547
19720
|
sandbox;
|
|
@@ -19696,6 +19869,7 @@ var init_http_client_provider = __esm({
|
|
|
19696
19869
|
`[http_client] Body: ${requestBody.substring(0, 500)}${requestBody.length > 500 ? "..." : ""}`
|
|
19697
19870
|
);
|
|
19698
19871
|
}
|
|
19872
|
+
const rateLimitConfig = config.rate_limit;
|
|
19699
19873
|
if (resolvedOutputFile) {
|
|
19700
19874
|
const fileResult = await this.downloadToFile(
|
|
19701
19875
|
renderedUrl,
|
|
@@ -19703,11 +19877,19 @@ var init_http_client_provider = __esm({
|
|
|
19703
19877
|
resolvedHeaders,
|
|
19704
19878
|
requestBody,
|
|
19705
19879
|
timeout,
|
|
19706
|
-
resolvedOutputFile
|
|
19880
|
+
resolvedOutputFile,
|
|
19881
|
+
rateLimitConfig
|
|
19707
19882
|
);
|
|
19708
19883
|
return fileResult;
|
|
19709
19884
|
}
|
|
19710
|
-
const data = await this.fetchData(
|
|
19885
|
+
const data = await this.fetchData(
|
|
19886
|
+
renderedUrl,
|
|
19887
|
+
method,
|
|
19888
|
+
resolvedHeaders,
|
|
19889
|
+
requestBody,
|
|
19890
|
+
timeout,
|
|
19891
|
+
rateLimitConfig
|
|
19892
|
+
);
|
|
19711
19893
|
let processedData = data;
|
|
19712
19894
|
if (transform) {
|
|
19713
19895
|
try {
|
|
@@ -19790,7 +19972,7 @@ var init_http_client_provider = __esm({
|
|
|
19790
19972
|
};
|
|
19791
19973
|
}
|
|
19792
19974
|
}
|
|
19793
|
-
async fetchData(url, method, headers, body, timeout = 3e4) {
|
|
19975
|
+
async fetchData(url, method, headers, body, timeout = 3e4, rateLimitConfig) {
|
|
19794
19976
|
if (typeof fetch === "undefined") {
|
|
19795
19977
|
throw new Error("HTTP client provider requires Node.js 18+ or node-fetch package");
|
|
19796
19978
|
}
|
|
@@ -19813,7 +19995,7 @@ var init_http_client_provider = __esm({
|
|
|
19813
19995
|
};
|
|
19814
19996
|
}
|
|
19815
19997
|
}
|
|
19816
|
-
const response = await
|
|
19998
|
+
const response = await rateLimitedFetch(url, requestOptions, rateLimitConfig);
|
|
19817
19999
|
clearTimeout(timeoutId);
|
|
19818
20000
|
logger.verbose(`[http_client] Response: ${response.status} ${response.statusText}`);
|
|
19819
20001
|
if (!response.ok) {
|
|
@@ -19845,7 +20027,7 @@ var init_http_client_provider = __esm({
|
|
|
19845
20027
|
throw error;
|
|
19846
20028
|
}
|
|
19847
20029
|
}
|
|
19848
|
-
async downloadToFile(url, method, headers, body, timeout, outputFile) {
|
|
20030
|
+
async downloadToFile(url, method, headers, body, timeout, outputFile, rateLimitConfig) {
|
|
19849
20031
|
if (typeof fetch === "undefined") {
|
|
19850
20032
|
throw new Error("HTTP client provider requires Node.js 18+ or node-fetch package");
|
|
19851
20033
|
}
|
|
@@ -19866,7 +20048,7 @@ var init_http_client_provider = __esm({
|
|
|
19866
20048
|
};
|
|
19867
20049
|
}
|
|
19868
20050
|
}
|
|
19869
|
-
const response = await
|
|
20051
|
+
const response = await rateLimitedFetch(url, requestOptions, rateLimitConfig);
|
|
19870
20052
|
clearTimeout(timeoutId);
|
|
19871
20053
|
if (!response.ok) {
|
|
19872
20054
|
return {
|
|
@@ -41614,8 +41796,8 @@ function buildBuiltinGlobals(opts) {
|
|
|
41614
41796
|
const asyncFunctionNames = /* @__PURE__ */ new Set();
|
|
41615
41797
|
const scheduleFn = async (args = {}) => {
|
|
41616
41798
|
try {
|
|
41617
|
-
const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-
|
|
41618
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
41799
|
+
const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-R6JJIDZ6.mjs");
|
|
41800
|
+
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-AOMZV3Q3.mjs");
|
|
41619
41801
|
const parentCtx = opts.sessionInfo?._parentContext;
|
|
41620
41802
|
const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
|
|
41621
41803
|
const visorCfg = parentCtx?.config;
|
|
@@ -44822,6 +45004,14 @@ var init_workflow_check_provider = __esm({
|
|
|
44822
45004
|
inputs,
|
|
44823
45005
|
config.checkName || workflow.id
|
|
44824
45006
|
);
|
|
45007
|
+
const parentTimeout = config.timeout || config.ai?.timeout;
|
|
45008
|
+
if (parentTimeout && workflowConfig.checks) {
|
|
45009
|
+
for (const stepCfg of Object.values(workflowConfig.checks)) {
|
|
45010
|
+
if (!stepCfg.timeout && !stepCfg.ai?.timeout) {
|
|
45011
|
+
stepCfg.timeout = parentTimeout;
|
|
45012
|
+
}
|
|
45013
|
+
}
|
|
45014
|
+
}
|
|
44825
45015
|
const parentMemoryCfg = parentContext?.memory && parentContext.memory.getConfig && parentContext.memory.getConfig() || parentContext?.config?.memory;
|
|
44826
45016
|
const childJournal = new ExecutionJournal2();
|
|
44827
45017
|
const childMemory = MemoryStore2.createIsolated(parentMemoryCfg);
|
|
@@ -45231,4 +45421,4 @@ undici/lib/fetch/body.js:
|
|
|
45231
45421
|
undici/lib/websocket/frame.js:
|
|
45232
45422
|
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
|
45233
45423
|
*/
|
|
45234
|
-
//# sourceMappingURL=chunk-
|
|
45424
|
+
//# sourceMappingURL=chunk-B7XHSG3L.mjs.map
|