@probelabs/visor 0.1.169-ee → 0.1.169
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/index.js +23 -1840
- package/dist/output/traces/run-2026-03-07T13-37-21-566Z.ndjson +138 -0
- package/dist/output/traces/run-2026-03-07T13-37-59-420Z.ndjson +2266 -0
- package/dist/sdk/a2a-frontend-XFCSNQR5.mjs +1605 -0
- package/dist/sdk/a2a-frontend-XFCSNQR5.mjs.map +1 -0
- package/dist/sdk/{check-provider-registry-Q2OVYSBJ.mjs → check-provider-registry-5CMLUEFG.mjs} +2 -2
- package/dist/sdk/check-provider-registry-XEU5BSRJ.mjs +30 -0
- package/dist/sdk/chunk-HBT572VG.mjs +443 -0
- package/dist/sdk/chunk-HBT572VG.mjs.map +1 -0
- package/dist/sdk/{chunk-46P7AYHG.mjs → chunk-LB77GR4Q.mjs} +9 -9
- package/dist/sdk/{chunk-46P7AYHG.mjs.map → chunk-LB77GR4Q.mjs.map} +1 -1
- package/dist/sdk/chunk-ROMY3ZN3.mjs +44771 -0
- package/dist/sdk/chunk-ROMY3ZN3.mjs.map +1 -0
- package/dist/sdk/chunk-VPPW2TFI.mjs +1502 -0
- package/dist/sdk/chunk-VPPW2TFI.mjs.map +1 -0
- package/dist/sdk/chunk-WGZNS5IB.mjs +739 -0
- package/dist/sdk/chunk-WGZNS5IB.mjs.map +1 -0
- package/dist/sdk/failure-condition-evaluator-WYDAZT3H.mjs +17 -0
- package/dist/sdk/github-frontend-BVM7MHBJ.mjs +1386 -0
- package/dist/sdk/github-frontend-BVM7MHBJ.mjs.map +1 -0
- package/dist/sdk/{host-RATJKJW5.mjs → host-MHYGIPDP.mjs} +3 -3
- package/dist/sdk/routing-K2U7U3OO.mjs +25 -0
- package/dist/sdk/{schedule-tool-VI5IUMEL.mjs → schedule-tool-H4G5ITNL.mjs} +2 -2
- package/dist/sdk/schedule-tool-H4G5ITNL.mjs.map +1 -0
- package/dist/sdk/schedule-tool-RYYNPLDH.mjs +36 -0
- package/dist/sdk/schedule-tool-RYYNPLDH.mjs.map +1 -0
- package/dist/sdk/schedule-tool-handler-NFNY6BVX.mjs +40 -0
- package/dist/sdk/schedule-tool-handler-NFNY6BVX.mjs.map +1 -0
- package/dist/sdk/{schedule-tool-handler-PIXYVVJY.mjs → schedule-tool-handler-UQWDPFP6.mjs} +2 -2
- package/dist/sdk/schedule-tool-handler-UQWDPFP6.mjs.map +1 -0
- package/dist/sdk/sdk.js +274 -1648
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +4 -4
- package/dist/sdk/trace-helpers-DQYOGQT5.mjs +25 -0
- package/dist/sdk/trace-helpers-DQYOGQT5.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-W5FKQU5G.mjs → workflow-check-provider-FAO4AUGB.mjs} +2 -2
- package/dist/sdk/workflow-check-provider-FAO4AUGB.mjs.map +1 -0
- package/dist/sdk/workflow-check-provider-OM5L5FJX.mjs +30 -0
- package/dist/sdk/workflow-check-provider-OM5L5FJX.mjs.map +1 -0
- package/dist/traces/run-2026-03-07T13-37-21-566Z.ndjson +138 -0
- package/dist/traces/run-2026-03-07T13-37-59-420Z.ndjson +2266 -0
- package/package.json +1 -1
- package/dist/sdk/knex-store-CRORFJE6.mjs +0 -527
- package/dist/sdk/knex-store-CRORFJE6.mjs.map +0 -1
- package/dist/sdk/loader-NJCF7DUS.mjs +0 -89
- package/dist/sdk/loader-NJCF7DUS.mjs.map +0 -1
- package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs +0 -655
- package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs.map +0 -1
- package/dist/sdk/validator-XTZJZZJH.mjs +0 -134
- package/dist/sdk/validator-XTZJZZJH.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-Q2OVYSBJ.mjs.map → check-provider-registry-5CMLUEFG.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-VI5IUMEL.mjs.map → check-provider-registry-XEU5BSRJ.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-PIXYVVJY.mjs.map → failure-condition-evaluator-WYDAZT3H.mjs.map} +0 -0
- /package/dist/sdk/{host-RATJKJW5.mjs.map → host-MHYGIPDP.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-W5FKQU5G.mjs.map → routing-K2U7U3OO.mjs.map} +0 -0
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SpanStatusCode,
|
|
3
|
+
context,
|
|
4
|
+
init_lazy_otel,
|
|
5
|
+
trace
|
|
6
|
+
} from "./chunk-UCMJJ3IM.mjs";
|
|
7
|
+
import {
|
|
8
|
+
__commonJS,
|
|
9
|
+
__esm,
|
|
10
|
+
__export,
|
|
11
|
+
__require,
|
|
12
|
+
__toCommonJS
|
|
13
|
+
} from "./chunk-J7LXIPZS.mjs";
|
|
14
|
+
|
|
15
|
+
// src/telemetry/fallback-ndjson.ts
|
|
16
|
+
var fallback_ndjson_exports = {};
|
|
17
|
+
__export(fallback_ndjson_exports, {
|
|
18
|
+
emitNdjsonFallback: () => emitNdjsonFallback,
|
|
19
|
+
emitNdjsonSpanWithEvents: () => emitNdjsonSpanWithEvents,
|
|
20
|
+
flushNdjson: () => flushNdjson
|
|
21
|
+
});
|
|
22
|
+
import * as fs from "fs";
|
|
23
|
+
import * as path from "path";
|
|
24
|
+
function resolveTargetPath(outDir) {
|
|
25
|
+
if (process.env.VISOR_FALLBACK_TRACE_FILE) {
|
|
26
|
+
CURRENT_FILE = process.env.VISOR_FALLBACK_TRACE_FILE;
|
|
27
|
+
return CURRENT_FILE;
|
|
28
|
+
}
|
|
29
|
+
if (CURRENT_FILE) return CURRENT_FILE;
|
|
30
|
+
const ts = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
31
|
+
CURRENT_FILE = path.join(outDir, `${ts}.ndjson`);
|
|
32
|
+
return CURRENT_FILE;
|
|
33
|
+
}
|
|
34
|
+
function isEnabled() {
|
|
35
|
+
if (process.env.VISOR_FALLBACK_TRACE_FILE) return true;
|
|
36
|
+
return process.env.VISOR_TELEMETRY_ENABLED === "true" && (process.env.VISOR_TELEMETRY_SINK || "file") === "file";
|
|
37
|
+
}
|
|
38
|
+
function appendAsync(outDir, line) {
|
|
39
|
+
writeChain = writeChain.then(async () => {
|
|
40
|
+
if (!dirReady) {
|
|
41
|
+
try {
|
|
42
|
+
await fs.promises.mkdir(outDir, { recursive: true });
|
|
43
|
+
} catch {
|
|
44
|
+
}
|
|
45
|
+
dirReady = true;
|
|
46
|
+
}
|
|
47
|
+
const target = resolveTargetPath(outDir);
|
|
48
|
+
await fs.promises.appendFile(target, line, "utf8");
|
|
49
|
+
}).catch(() => {
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
async function flushNdjson() {
|
|
53
|
+
try {
|
|
54
|
+
await writeChain;
|
|
55
|
+
} catch {
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function emitNdjsonFallback(name, attrs) {
|
|
59
|
+
try {
|
|
60
|
+
if (!isEnabled()) return;
|
|
61
|
+
const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), "output", "traces");
|
|
62
|
+
const line = JSON.stringify({ name, attributes: attrs }) + "\n";
|
|
63
|
+
appendAsync(outDir, line);
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function emitNdjsonSpanWithEvents(name, attrs, events) {
|
|
68
|
+
try {
|
|
69
|
+
if (!isEnabled()) return;
|
|
70
|
+
const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), "output", "traces");
|
|
71
|
+
const line = JSON.stringify({ name, attributes: attrs, events }) + "\n";
|
|
72
|
+
appendAsync(outDir, line);
|
|
73
|
+
} catch {
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
var CURRENT_FILE, dirReady, writeChain;
|
|
77
|
+
var init_fallback_ndjson = __esm({
|
|
78
|
+
"src/telemetry/fallback-ndjson.ts"() {
|
|
79
|
+
"use strict";
|
|
80
|
+
CURRENT_FILE = null;
|
|
81
|
+
dirReady = false;
|
|
82
|
+
writeChain = Promise.resolve();
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// package.json
|
|
87
|
+
var require_package = __commonJS({
|
|
88
|
+
"package.json"(exports, module) {
|
|
89
|
+
module.exports = {
|
|
90
|
+
name: "@probelabs/visor",
|
|
91
|
+
version: "0.1.169",
|
|
92
|
+
main: "dist/index.js",
|
|
93
|
+
bin: {
|
|
94
|
+
visor: "./dist/index.js"
|
|
95
|
+
},
|
|
96
|
+
exports: {
|
|
97
|
+
".": {
|
|
98
|
+
require: "./dist/index.js",
|
|
99
|
+
import: "./dist/index.js"
|
|
100
|
+
},
|
|
101
|
+
"./sdk": {
|
|
102
|
+
types: "./dist/sdk/sdk.d.ts",
|
|
103
|
+
import: "./dist/sdk/sdk.mjs",
|
|
104
|
+
require: "./dist/sdk/sdk.js"
|
|
105
|
+
},
|
|
106
|
+
"./cli": {
|
|
107
|
+
require: "./dist/index.js"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
files: [
|
|
111
|
+
"dist/",
|
|
112
|
+
"defaults/",
|
|
113
|
+
"action.yml",
|
|
114
|
+
"README.md",
|
|
115
|
+
"LICENSE"
|
|
116
|
+
],
|
|
117
|
+
publishConfig: {
|
|
118
|
+
access: "public",
|
|
119
|
+
registry: "https://registry.npmjs.org/"
|
|
120
|
+
},
|
|
121
|
+
scripts: {
|
|
122
|
+
"build:cli": "ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo '#!/usr/bin/env node' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js",
|
|
123
|
+
"build:sdk": "tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk",
|
|
124
|
+
build: "./scripts/build-oss.sh",
|
|
125
|
+
"build:ee": "npm run build:cli && npm run build:sdk",
|
|
126
|
+
test: "jest && npm run test:yaml",
|
|
127
|
+
"test:unit": "jest",
|
|
128
|
+
prepublishOnly: "npm run build",
|
|
129
|
+
"test:watch": "jest --watch",
|
|
130
|
+
"test:coverage": "jest --coverage",
|
|
131
|
+
"test:ee": "jest --testPathPatterns='tests/ee' --testPathIgnorePatterns='/node_modules/' --no-coverage",
|
|
132
|
+
"test:manual:bash": "RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts",
|
|
133
|
+
lint: "eslint src tests --ext .ts",
|
|
134
|
+
"lint:fix": "eslint src tests --ext .ts --fix",
|
|
135
|
+
format: "prettier --write src tests",
|
|
136
|
+
"format:check": "prettier --check src tests",
|
|
137
|
+
clean: "",
|
|
138
|
+
"clean:traces": "node scripts/clean-traces.js",
|
|
139
|
+
prebuild: "npm run clean && node scripts/generate-config-schema.js",
|
|
140
|
+
pretest: "npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli",
|
|
141
|
+
"pretest:unit": "npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli",
|
|
142
|
+
"test:with-build": "npm run build:cli && jest",
|
|
143
|
+
"test:yaml": "node dist/index.js test --progress compact",
|
|
144
|
+
"test:yaml:parallel": "node dist/index.js test --progress compact --max-parallel 4",
|
|
145
|
+
prepare: "husky",
|
|
146
|
+
"pre-commit": "lint-staged",
|
|
147
|
+
"deploy:site": "cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true",
|
|
148
|
+
"deploy:worker": "npx wrangler deploy",
|
|
149
|
+
deploy: "npm run deploy:site && npm run deploy:worker",
|
|
150
|
+
"publish:ee": "./scripts/publish-ee.sh",
|
|
151
|
+
release: "./scripts/release.sh",
|
|
152
|
+
"release:patch": "./scripts/release.sh patch",
|
|
153
|
+
"release:minor": "./scripts/release.sh minor",
|
|
154
|
+
"release:major": "./scripts/release.sh major",
|
|
155
|
+
"release:prerelease": "./scripts/release.sh prerelease",
|
|
156
|
+
"docs:validate": "node scripts/validate-readme-links.js",
|
|
157
|
+
"workshop:setup": "npm install -D reveal-md@6.1.2",
|
|
158
|
+
"workshop:serve": "cd workshop && reveal-md slides.md -w",
|
|
159
|
+
"workshop:export": "reveal-md workshop/slides.md --static workshop/build",
|
|
160
|
+
"workshop:pdf": "reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter",
|
|
161
|
+
"workshop:pdf:ci": 'reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args="--no-sandbox --disable-dev-shm-usage"',
|
|
162
|
+
"workshop:pdf:a4": "reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4",
|
|
163
|
+
"workshop:build": "npm run workshop:export && npm run workshop:pdf",
|
|
164
|
+
"simulate:issue": "TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug",
|
|
165
|
+
"simulate:comment": "TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"
|
|
166
|
+
},
|
|
167
|
+
keywords: [
|
|
168
|
+
"code-review",
|
|
169
|
+
"ai",
|
|
170
|
+
"github-action",
|
|
171
|
+
"cli",
|
|
172
|
+
"pr-review",
|
|
173
|
+
"visor"
|
|
174
|
+
],
|
|
175
|
+
author: "Probe Labs",
|
|
176
|
+
license: "MIT",
|
|
177
|
+
description: "AI workflow engine for code review, assistants, and automation \u2014 orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines",
|
|
178
|
+
repository: {
|
|
179
|
+
type: "git",
|
|
180
|
+
url: "git+https://github.com/probelabs/visor.git"
|
|
181
|
+
},
|
|
182
|
+
bugs: {
|
|
183
|
+
url: "https://github.com/probelabs/visor/issues"
|
|
184
|
+
},
|
|
185
|
+
homepage: "https://github.com/probelabs/visor#readme",
|
|
186
|
+
dependencies: {
|
|
187
|
+
"@actions/core": "^1.11.1",
|
|
188
|
+
"@apidevtools/swagger-parser": "^12.1.0",
|
|
189
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
190
|
+
"@nyariv/sandboxjs": "github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9",
|
|
191
|
+
"@octokit/action": "^8.0.2",
|
|
192
|
+
"@octokit/auth-app": "^8.1.0",
|
|
193
|
+
"@octokit/core": "^7.0.3",
|
|
194
|
+
"@octokit/rest": "^22.0.0",
|
|
195
|
+
"@opentelemetry/api": "^1.9.0",
|
|
196
|
+
"@opentelemetry/core": "^1.30.1",
|
|
197
|
+
"@opentelemetry/exporter-trace-otlp-grpc": "^0.203.0",
|
|
198
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
199
|
+
"@opentelemetry/instrumentation": "^0.203.0",
|
|
200
|
+
"@opentelemetry/resources": "^1.30.1",
|
|
201
|
+
"@opentelemetry/sdk-metrics": "^1.30.1",
|
|
202
|
+
"@opentelemetry/sdk-node": "^0.203.0",
|
|
203
|
+
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
204
|
+
"@opentelemetry/semantic-conventions": "^1.30.1",
|
|
205
|
+
"@probelabs/probe": "^0.6.0-rc286",
|
|
206
|
+
"@types/commander": "^2.12.0",
|
|
207
|
+
"@types/uuid": "^10.0.0",
|
|
208
|
+
acorn: "^8.16.0",
|
|
209
|
+
"acorn-walk": "^8.3.5",
|
|
210
|
+
ajv: "^8.17.1",
|
|
211
|
+
"ajv-formats": "^3.0.1",
|
|
212
|
+
"better-sqlite3": "^11.0.0",
|
|
213
|
+
blessed: "^0.1.81",
|
|
214
|
+
"cli-table3": "^0.6.5",
|
|
215
|
+
commander: "^14.0.0",
|
|
216
|
+
deepmerge: "^4.3.1",
|
|
217
|
+
dotenv: "^17.2.3",
|
|
218
|
+
ignore: "^7.0.5",
|
|
219
|
+
"js-yaml": "^4.1.0",
|
|
220
|
+
"jsonpath-plus": "^10.4.0",
|
|
221
|
+
liquidjs: "^10.21.1",
|
|
222
|
+
minimatch: "^10.2.2",
|
|
223
|
+
"node-cron": "^3.0.3",
|
|
224
|
+
open: "^9.1.0",
|
|
225
|
+
"simple-git": "^3.28.0",
|
|
226
|
+
uuid: "^11.1.0",
|
|
227
|
+
ws: "^8.18.3"
|
|
228
|
+
},
|
|
229
|
+
optionalDependencies: {
|
|
230
|
+
"@anthropic/claude-code-sdk": "npm:null@*",
|
|
231
|
+
"@open-policy-agent/opa-wasm": "^1.10.0",
|
|
232
|
+
knex: "^3.1.0",
|
|
233
|
+
mysql2: "^3.11.0",
|
|
234
|
+
pg: "^8.13.0",
|
|
235
|
+
tedious: "^19.0.0"
|
|
236
|
+
},
|
|
237
|
+
devDependencies: {
|
|
238
|
+
"@eslint/js": "^9.34.0",
|
|
239
|
+
"@kie/act-js": "^2.6.2",
|
|
240
|
+
"@kie/mock-github": "^2.0.1",
|
|
241
|
+
"@swc/core": "^1.13.2",
|
|
242
|
+
"@swc/jest": "^0.2.37",
|
|
243
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
244
|
+
"@types/blessed": "^0.1.27",
|
|
245
|
+
"@types/jest": "^30.0.0",
|
|
246
|
+
"@types/js-yaml": "^4.0.9",
|
|
247
|
+
"@types/node": "^24.3.0",
|
|
248
|
+
"@types/node-cron": "^3.0.11",
|
|
249
|
+
"@types/ws": "^8.18.1",
|
|
250
|
+
"@typescript-eslint/eslint-plugin": "^8.42.0",
|
|
251
|
+
"@typescript-eslint/parser": "^8.42.0",
|
|
252
|
+
"@vercel/ncc": "^0.38.4",
|
|
253
|
+
eslint: "^9.34.0",
|
|
254
|
+
"eslint-config-prettier": "^10.1.8",
|
|
255
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
256
|
+
husky: "^9.1.7",
|
|
257
|
+
jest: "^30.1.3",
|
|
258
|
+
"lint-staged": "^16.1.6",
|
|
259
|
+
prettier: "^3.6.2",
|
|
260
|
+
"reveal-md": "^6.1.2",
|
|
261
|
+
"ts-json-schema-generator": "^1.5.1",
|
|
262
|
+
"ts-node": "^10.9.2",
|
|
263
|
+
tsup: "^8.5.0",
|
|
264
|
+
typescript: "^5.9.2",
|
|
265
|
+
wrangler: "^3.0.0"
|
|
266
|
+
},
|
|
267
|
+
peerDependenciesMeta: {
|
|
268
|
+
"@anthropic/claude-code-sdk": {
|
|
269
|
+
optional: true
|
|
270
|
+
}
|
|
271
|
+
},
|
|
272
|
+
directories: {
|
|
273
|
+
test: "tests"
|
|
274
|
+
},
|
|
275
|
+
"lint-staged": {
|
|
276
|
+
"src/**/*.{ts,js}": [
|
|
277
|
+
"eslint --fix",
|
|
278
|
+
"prettier --write"
|
|
279
|
+
],
|
|
280
|
+
"tests/**/*.{ts,js}": [
|
|
281
|
+
"eslint --fix",
|
|
282
|
+
"prettier --write"
|
|
283
|
+
],
|
|
284
|
+
"*.{json,md,yml,yaml}": [
|
|
285
|
+
"prettier --write"
|
|
286
|
+
]
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
// src/telemetry/trace-helpers.ts
|
|
293
|
+
var trace_helpers_exports = {};
|
|
294
|
+
__export(trace_helpers_exports, {
|
|
295
|
+
__getOrCreateNdjsonPath: () => __getOrCreateNdjsonPath,
|
|
296
|
+
_appendRunMarker: () => _appendRunMarker,
|
|
297
|
+
addEvent: () => addEvent,
|
|
298
|
+
getTracer: () => getTracer,
|
|
299
|
+
getVisorRunAttributes: () => getVisorRunAttributes,
|
|
300
|
+
setSpanAttributes: () => setSpanAttributes,
|
|
301
|
+
setSpanError: () => setSpanError,
|
|
302
|
+
withActiveSpan: () => withActiveSpan
|
|
303
|
+
});
|
|
304
|
+
function getTracer() {
|
|
305
|
+
return trace.getTracer("visor");
|
|
306
|
+
}
|
|
307
|
+
async function withActiveSpan(name, attrs, fn) {
|
|
308
|
+
const tracer = getTracer();
|
|
309
|
+
return await new Promise((resolve, reject) => {
|
|
310
|
+
const callback = async (span) => {
|
|
311
|
+
try {
|
|
312
|
+
const res = await fn(span);
|
|
313
|
+
resolve(res);
|
|
314
|
+
} catch (err) {
|
|
315
|
+
try {
|
|
316
|
+
if (err instanceof Error) span.recordException(err);
|
|
317
|
+
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
318
|
+
} catch {
|
|
319
|
+
}
|
|
320
|
+
reject(err);
|
|
321
|
+
} finally {
|
|
322
|
+
try {
|
|
323
|
+
span.end();
|
|
324
|
+
} catch {
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
};
|
|
328
|
+
const options = attrs ? { attributes: attrs } : {};
|
|
329
|
+
tracer.startActiveSpan(name, options, callback);
|
|
330
|
+
});
|
|
331
|
+
}
|
|
332
|
+
function addEvent(name, attrs) {
|
|
333
|
+
const span = trace.getSpan(context.active());
|
|
334
|
+
if (span) {
|
|
335
|
+
try {
|
|
336
|
+
span.addEvent(name, attrs);
|
|
337
|
+
} catch {
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
try {
|
|
341
|
+
const { emitNdjsonSpanWithEvents: emitNdjsonSpanWithEvents2 } = (init_fallback_ndjson(), __toCommonJS(fallback_ndjson_exports));
|
|
342
|
+
emitNdjsonSpanWithEvents2("visor.event", {}, [{ name, attrs }]);
|
|
343
|
+
if (name === "fail_if.triggered") {
|
|
344
|
+
emitNdjsonSpanWithEvents2("visor.event", {}, [
|
|
345
|
+
{ name: "fail_if.evaluated", attrs },
|
|
346
|
+
{ name: "fail_if.triggered", attrs }
|
|
347
|
+
]);
|
|
348
|
+
}
|
|
349
|
+
} catch {
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
function setSpanAttributes(attrs) {
|
|
353
|
+
const span = trace.getSpan(context.active());
|
|
354
|
+
if (!span) return;
|
|
355
|
+
try {
|
|
356
|
+
for (const [k, v] of Object.entries(attrs)) span.setAttribute(k, v);
|
|
357
|
+
} catch {
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
function setSpanError(err) {
|
|
361
|
+
const span = trace.getSpan(context.active());
|
|
362
|
+
if (!span) return;
|
|
363
|
+
try {
|
|
364
|
+
if (err instanceof Error) span.recordException(err);
|
|
365
|
+
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
366
|
+
} catch {
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
function getVisorRunAttributes() {
|
|
370
|
+
const attrs = {};
|
|
371
|
+
try {
|
|
372
|
+
attrs["visor.version"] = process.env.VISOR_VERSION || (require_package()?.version ?? "dev");
|
|
373
|
+
} catch {
|
|
374
|
+
attrs["visor.version"] = "dev";
|
|
375
|
+
}
|
|
376
|
+
const commitShort = process.env.VISOR_COMMIT_SHORT || "";
|
|
377
|
+
const commitFull = process.env.VISOR_COMMIT_SHA || process.env.VISOR_COMMIT || "";
|
|
378
|
+
if (commitShort) {
|
|
379
|
+
attrs["visor.commit"] = commitShort;
|
|
380
|
+
}
|
|
381
|
+
if (commitFull) {
|
|
382
|
+
attrs["visor.commit.sha"] = commitFull;
|
|
383
|
+
}
|
|
384
|
+
return attrs;
|
|
385
|
+
}
|
|
386
|
+
function __getOrCreateNdjsonPath() {
|
|
387
|
+
try {
|
|
388
|
+
if (process.env.VISOR_TELEMETRY_SINK && process.env.VISOR_TELEMETRY_SINK !== "file")
|
|
389
|
+
return null;
|
|
390
|
+
const path2 = __require("path");
|
|
391
|
+
const fs2 = __require("fs");
|
|
392
|
+
if (process.env.VISOR_FALLBACK_TRACE_FILE) {
|
|
393
|
+
__ndjsonPath = process.env.VISOR_FALLBACK_TRACE_FILE;
|
|
394
|
+
const dir = path2.dirname(__ndjsonPath);
|
|
395
|
+
if (!fs2.existsSync(dir)) fs2.mkdirSync(dir, { recursive: true });
|
|
396
|
+
return __ndjsonPath;
|
|
397
|
+
}
|
|
398
|
+
const outDir = process.env.VISOR_TRACE_DIR || path2.join(process.cwd(), "output", "traces");
|
|
399
|
+
if (!fs2.existsSync(outDir)) fs2.mkdirSync(outDir, { recursive: true });
|
|
400
|
+
if (!__ndjsonPath) {
|
|
401
|
+
const ts = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
402
|
+
__ndjsonPath = path2.join(outDir, `${ts}.ndjson`);
|
|
403
|
+
}
|
|
404
|
+
return __ndjsonPath;
|
|
405
|
+
} catch {
|
|
406
|
+
return null;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
function _appendRunMarker() {
|
|
410
|
+
try {
|
|
411
|
+
const fs2 = __require("fs");
|
|
412
|
+
const p = __getOrCreateNdjsonPath();
|
|
413
|
+
if (!p) return;
|
|
414
|
+
const line = { name: "visor.run", attributes: { started: true } };
|
|
415
|
+
fs2.appendFileSync(p, JSON.stringify(line) + "\n", "utf8");
|
|
416
|
+
} catch {
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
var __ndjsonPath;
|
|
420
|
+
var init_trace_helpers = __esm({
|
|
421
|
+
"src/telemetry/trace-helpers.ts"() {
|
|
422
|
+
init_lazy_otel();
|
|
423
|
+
__ndjsonPath = null;
|
|
424
|
+
}
|
|
425
|
+
});
|
|
426
|
+
|
|
427
|
+
export {
|
|
428
|
+
emitNdjsonFallback,
|
|
429
|
+
emitNdjsonSpanWithEvents,
|
|
430
|
+
fallback_ndjson_exports,
|
|
431
|
+
init_fallback_ndjson,
|
|
432
|
+
getTracer,
|
|
433
|
+
withActiveSpan,
|
|
434
|
+
addEvent,
|
|
435
|
+
setSpanAttributes,
|
|
436
|
+
setSpanError,
|
|
437
|
+
getVisorRunAttributes,
|
|
438
|
+
__getOrCreateNdjsonPath,
|
|
439
|
+
_appendRunMarker,
|
|
440
|
+
trace_helpers_exports,
|
|
441
|
+
init_trace_helpers
|
|
442
|
+
};
|
|
443
|
+
//# sourceMappingURL=chunk-HBT572VG.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/telemetry/fallback-ndjson.ts","../../package.json","../../src/telemetry/trace-helpers.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\n\nlet CURRENT_FILE: string | null = null;\nlet dirReady = false;\nlet writeChain: Promise<void> = Promise.resolve();\nfunction resolveTargetPath(outDir: string): string {\n if (process.env.VISOR_FALLBACK_TRACE_FILE) {\n CURRENT_FILE = process.env.VISOR_FALLBACK_TRACE_FILE;\n return CURRENT_FILE;\n }\n if (CURRENT_FILE) return CURRENT_FILE;\n const ts = new Date().toISOString().replace(/[:.]/g, '-');\n CURRENT_FILE = path.join(outDir, `${ts}.ndjson`);\n return CURRENT_FILE;\n}\n\nfunction isEnabled(): boolean {\n // Enable when CLI set a fallback file (serverless mode), or when explicit file sink is enabled\n if (process.env.VISOR_FALLBACK_TRACE_FILE) return true;\n return (\n process.env.VISOR_TELEMETRY_ENABLED === 'true' &&\n (process.env.VISOR_TELEMETRY_SINK || 'file') === 'file'\n );\n}\n\nfunction appendAsync(outDir: string, line: string): void {\n writeChain = writeChain\n .then(async () => {\n if (!dirReady) {\n try {\n await fs.promises.mkdir(outDir, { recursive: true });\n } catch {}\n dirReady = true;\n }\n const target = resolveTargetPath(outDir);\n await fs.promises.appendFile(target, line, 'utf8');\n })\n .catch(() => {});\n}\n\nexport async function flushNdjson(): Promise<void> {\n try {\n await writeChain;\n } catch {}\n}\n\nexport function emitNdjsonFallback(name: string, attrs: Record<string, unknown>): void {\n try {\n if (!isEnabled()) return;\n const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), 'output', 'traces');\n const line = JSON.stringify({ name, attributes: attrs }) + '\\n';\n appendAsync(outDir, line);\n } catch {\n // ignore\n }\n}\n\nexport function emitNdjsonSpanWithEvents(\n name: string,\n attrs: Record<string, unknown>,\n events: Array<{ name: string; attrs?: Record<string, unknown> }>\n): void {\n try {\n if (!isEnabled()) return;\n const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), 'output', 'traces');\n const line = JSON.stringify({ name, attributes: attrs, events }) + '\\n';\n appendAsync(outDir, line);\n } catch {\n // ignore\n }\n}\n","{\n \"name\": \"@probelabs/visor\",\n \"version\": \"0.1.169\",\n \"main\": \"dist/index.js\",\n \"bin\": {\n \"visor\": \"./dist/index.js\"\n },\n \"exports\": {\n \".\": {\n \"require\": \"./dist/index.js\",\n \"import\": \"./dist/index.js\"\n },\n \"./sdk\": {\n \"types\": \"./dist/sdk/sdk.d.ts\",\n \"import\": \"./dist/sdk/sdk.mjs\",\n \"require\": \"./dist/sdk/sdk.js\"\n },\n \"./cli\": {\n \"require\": \"./dist/index.js\"\n }\n },\n \"files\": [\n \"dist/\",\n \"defaults/\",\n \"action.yml\",\n \"README.md\",\n \"LICENSE\"\n ],\n \"publishConfig\": {\n \"access\": \"public\",\n \"registry\": \"https://registry.npmjs.org/\"\n },\n \"scripts\": {\n \"build:cli\": \"ncc build src/index.ts -o dist && cp -r defaults dist/ && cp -r output dist/ && cp -r docs dist/ && cp -r examples dist/ && cp -r src/debug-visualizer/ui dist/debug-visualizer/ && node scripts/inject-version.js && echo '#!/usr/bin/env node' | cat - dist/index.js > temp && mv temp dist/index.js && chmod +x dist/index.js\",\n \"build:sdk\": \"tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk\",\n \"build\": \"./scripts/build-oss.sh\",\n \"build:ee\": \"npm run build:cli && npm run build:sdk\",\n \"test\": \"jest && npm run test:yaml\",\n \"test:unit\": \"jest\",\n \"prepublishOnly\": \"npm run build\",\n \"test:watch\": \"jest --watch\",\n \"test:coverage\": \"jest --coverage\",\n \"test:ee\": \"jest --testPathPatterns='tests/ee' --testPathIgnorePatterns='/node_modules/' --no-coverage\",\n \"test:manual:bash\": \"RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts\",\n \"lint\": \"eslint src tests --ext .ts\",\n \"lint:fix\": \"eslint src tests --ext .ts --fix\",\n \"format\": \"prettier --write src tests\",\n \"format:check\": \"prettier --check src tests\",\n \"clean\": \"\",\n \"clean:traces\": \"node scripts/clean-traces.js\",\n \"prebuild\": \"npm run clean && node scripts/generate-config-schema.js\",\n \"pretest\": \"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli\",\n \"pretest:unit\": \"npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli\",\n \"test:with-build\": \"npm run build:cli && jest\",\n \"test:yaml\": \"node dist/index.js test --progress compact\",\n \"test:yaml:parallel\": \"node dist/index.js test --progress compact --max-parallel 4\",\n \"prepare\": \"husky\",\n \"pre-commit\": \"lint-staged\",\n \"deploy:site\": \"cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true\",\n \"deploy:worker\": \"npx wrangler deploy\",\n \"deploy\": \"npm run deploy:site && npm run deploy:worker\",\n \"publish:ee\": \"./scripts/publish-ee.sh\",\n \"release\": \"./scripts/release.sh\",\n \"release:patch\": \"./scripts/release.sh patch\",\n \"release:minor\": \"./scripts/release.sh minor\",\n \"release:major\": \"./scripts/release.sh major\",\n \"release:prerelease\": \"./scripts/release.sh prerelease\",\n \"docs:validate\": \"node scripts/validate-readme-links.js\",\n \"workshop:setup\": \"npm install -D reveal-md@6.1.2\",\n \"workshop:serve\": \"cd workshop && reveal-md slides.md -w\",\n \"workshop:export\": \"reveal-md workshop/slides.md --static workshop/build\",\n \"workshop:pdf\": \"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter\",\n \"workshop:pdf:ci\": \"reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter --puppeteer-launch-args=\\\"--no-sandbox --disable-dev-shm-usage\\\"\",\n \"workshop:pdf:a4\": \"reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4\",\n \"workshop:build\": \"npm run workshop:export && npm run workshop:pdf\",\n \"simulate:issue\": \"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug\",\n \"simulate:comment\": \"TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug\"\n },\n \"keywords\": [\n \"code-review\",\n \"ai\",\n \"github-action\",\n \"cli\",\n \"pr-review\",\n \"visor\"\n ],\n \"author\": \"Probe Labs\",\n \"license\": \"MIT\",\n \"description\": \"AI workflow engine for code review, assistants, and automation — orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/probelabs/visor.git\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/probelabs/visor/issues\"\n },\n \"homepage\": \"https://github.com/probelabs/visor#readme\",\n \"dependencies\": {\n \"@actions/core\": \"^1.11.1\",\n \"@apidevtools/swagger-parser\": \"^12.1.0\",\n \"@modelcontextprotocol/sdk\": \"^1.25.3\",\n \"@nyariv/sandboxjs\": \"github:probelabs/SandboxJS#f1c13b8eee98734a8ea024061eada4aa9a9ff2e9\",\n \"@octokit/action\": \"^8.0.2\",\n \"@octokit/auth-app\": \"^8.1.0\",\n \"@octokit/core\": \"^7.0.3\",\n \"@octokit/rest\": \"^22.0.0\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/core\": \"^1.30.1\",\n \"@opentelemetry/exporter-trace-otlp-grpc\": \"^0.203.0\",\n \"@opentelemetry/exporter-trace-otlp-http\": \"^0.203.0\",\n \"@opentelemetry/instrumentation\": \"^0.203.0\",\n \"@opentelemetry/resources\": \"^1.30.1\",\n \"@opentelemetry/sdk-metrics\": \"^1.30.1\",\n \"@opentelemetry/sdk-node\": \"^0.203.0\",\n \"@opentelemetry/sdk-trace-base\": \"^1.30.1\",\n \"@opentelemetry/semantic-conventions\": \"^1.30.1\",\n \"@probelabs/probe\": \"^0.6.0-rc286\",\n \"@types/commander\": \"^2.12.0\",\n \"@types/uuid\": \"^10.0.0\",\n \"acorn\": \"^8.16.0\",\n \"acorn-walk\": \"^8.3.5\",\n \"ajv\": \"^8.17.1\",\n \"ajv-formats\": \"^3.0.1\",\n \"better-sqlite3\": \"^11.0.0\",\n \"blessed\": \"^0.1.81\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^14.0.0\",\n \"deepmerge\": \"^4.3.1\",\n \"dotenv\": \"^17.2.3\",\n \"ignore\": \"^7.0.5\",\n \"js-yaml\": \"^4.1.0\",\n \"jsonpath-plus\": \"^10.4.0\",\n \"liquidjs\": \"^10.21.1\",\n \"minimatch\": \"^10.2.2\",\n \"node-cron\": \"^3.0.3\",\n \"open\": \"^9.1.0\",\n \"simple-git\": \"^3.28.0\",\n \"uuid\": \"^11.1.0\",\n \"ws\": \"^8.18.3\"\n },\n \"optionalDependencies\": {\n \"@anthropic/claude-code-sdk\": \"npm:null@*\",\n \"@open-policy-agent/opa-wasm\": \"^1.10.0\",\n \"knex\": \"^3.1.0\",\n \"mysql2\": \"^3.11.0\",\n \"pg\": \"^8.13.0\",\n \"tedious\": \"^19.0.0\"\n },\n \"devDependencies\": {\n \"@eslint/js\": \"^9.34.0\",\n \"@kie/act-js\": \"^2.6.2\",\n \"@kie/mock-github\": \"^2.0.1\",\n \"@swc/core\": \"^1.13.2\",\n \"@swc/jest\": \"^0.2.37\",\n \"@types/better-sqlite3\": \"^7.6.0\",\n \"@types/blessed\": \"^0.1.27\",\n \"@types/jest\": \"^30.0.0\",\n \"@types/js-yaml\": \"^4.0.9\",\n \"@types/node\": \"^24.3.0\",\n \"@types/node-cron\": \"^3.0.11\",\n \"@types/ws\": \"^8.18.1\",\n \"@typescript-eslint/eslint-plugin\": \"^8.42.0\",\n \"@typescript-eslint/parser\": \"^8.42.0\",\n \"@vercel/ncc\": \"^0.38.4\",\n \"eslint\": \"^9.34.0\",\n \"eslint-config-prettier\": \"^10.1.8\",\n \"eslint-plugin-prettier\": \"^5.5.4\",\n \"husky\": \"^9.1.7\",\n \"jest\": \"^30.1.3\",\n \"lint-staged\": \"^16.1.6\",\n \"prettier\": \"^3.6.2\",\n \"reveal-md\": \"^6.1.2\",\n \"ts-json-schema-generator\": \"^1.5.1\",\n \"ts-node\": \"^10.9.2\",\n \"tsup\": \"^8.5.0\",\n \"typescript\": \"^5.9.2\",\n \"wrangler\": \"^3.0.0\"\n },\n \"peerDependenciesMeta\": {\n \"@anthropic/claude-code-sdk\": {\n \"optional\": true\n }\n },\n \"directories\": {\n \"test\": \"tests\"\n },\n \"lint-staged\": {\n \"src/**/*.{ts,js}\": [\n \"eslint --fix\",\n \"prettier --write\"\n ],\n \"tests/**/*.{ts,js}\": [\n \"eslint --fix\",\n \"prettier --write\"\n ],\n \"*.{json,md,yml,yaml}\": [\n \"prettier --write\"\n ]\n }\n}\n","import { context as otContext, Span, SpanStatusCode, trace, Attributes } from './lazy-otel';\n\nexport function getTracer() {\n return trace.getTracer('visor');\n}\n\nexport async function withActiveSpan<T>(\n name: string,\n attrs: Record<string, unknown> | undefined,\n fn: (span: Span) => Promise<T>\n): Promise<T> {\n const tracer = getTracer();\n // Preserve parent context via tracer API; avoid logging parent IDs to stdout\n // Avoid noisy stdout logs that break JSON consumers\n return await new Promise<T>((resolve, reject) => {\n const callback = async (span: Span) => {\n // console.debug(`[trace] Span callback invoked for: [trace_id=${ctx.traceId} span_id=${ctx.spanId}] ${name} span: true`);\n try {\n const res = await fn(span);\n // console.debug('[trace] Span execution completed for:', name);\n resolve(res);\n } catch (err) {\n // console.debug('[trace] Span execution errored for:', name, err);\n try {\n if (err instanceof Error) span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR });\n } catch {}\n reject(err);\n } finally {\n try {\n // console.debug('[trace] Ending span:', name);\n span.end();\n } catch {}\n }\n };\n // startActiveSpan should use the current active context to set parent automatically\n const options = attrs ? { attributes: attrs as Attributes } : {};\n tracer.startActiveSpan(name, options, callback);\n });\n}\n\nexport function addEvent(name: string, attrs?: Record<string, unknown>): void {\n const span = trace.getSpan(otContext.active());\n if (span) {\n try {\n span.addEvent(name, attrs as Attributes);\n } catch {\n // ignore\n }\n }\n // Fallback NDJSON emission for serverless/file sink when SDK may be inactive\n try {\n const { emitNdjsonSpanWithEvents } = require('./fallback-ndjson');\n emitNdjsonSpanWithEvents('visor.event', {}, [{ name, attrs }]);\n if (name === 'fail_if.triggered') {\n emitNdjsonSpanWithEvents('visor.event', {}, [\n { name: 'fail_if.evaluated', attrs },\n { name: 'fail_if.triggered', attrs },\n ]);\n }\n } catch {}\n}\n\nexport function setSpanAttributes(attrs: Record<string, unknown>): void {\n const span = trace.getSpan(otContext.active());\n if (!span) return;\n try {\n for (const [k, v] of Object.entries(attrs)) span.setAttribute(k, v as never);\n } catch {\n // ignore\n }\n}\n\nexport function setSpanError(err: unknown): void {\n const span = trace.getSpan(otContext.active());\n if (!span) return;\n try {\n if (err instanceof Error) span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR });\n } catch {\n // ignore\n }\n}\n\n/**\n * Return standard visor.* resource attributes for the root `visor.run` span.\n * Reads version from package.json / env and git commit short SHA from env.\n */\nexport function getVisorRunAttributes(): Record<string, string> {\n const attrs: Record<string, string> = {};\n try {\n attrs['visor.version'] =\n process.env.VISOR_VERSION || (require('../../package.json')?.version ?? 'dev');\n } catch {\n attrs['visor.version'] = 'dev';\n }\n const commitShort = process.env.VISOR_COMMIT_SHORT || '';\n const commitFull = process.env.VISOR_COMMIT_SHA || process.env.VISOR_COMMIT || '';\n if (commitShort) {\n attrs['visor.commit'] = commitShort;\n }\n if (commitFull) {\n attrs['visor.commit.sha'] = commitFull;\n }\n return attrs;\n}\n\n// Internal helper for tests: write a minimal run marker to NDJSON when using file sink\nlet __ndjsonPath: string | null = null;\nexport function __getOrCreateNdjsonPath(): string | null {\n try {\n // If sink is explicitly set to non-file, skip. If unset, still allow when a trace dir/file is configured.\n if (process.env.VISOR_TELEMETRY_SINK && process.env.VISOR_TELEMETRY_SINK !== 'file')\n return null;\n const path = require('path');\n const fs = require('fs');\n // Prefer explicit fallback file path if set by the CLI\n if (process.env.VISOR_FALLBACK_TRACE_FILE) {\n __ndjsonPath = process.env.VISOR_FALLBACK_TRACE_FILE;\n const dir = path.dirname(__ndjsonPath);\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });\n return __ndjsonPath;\n }\n const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), 'output', 'traces');\n if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });\n if (!__ndjsonPath) {\n const ts = new Date().toISOString().replace(/[:.]/g, '-');\n __ndjsonPath = path.join(outDir, `${ts}.ndjson`);\n }\n return __ndjsonPath;\n } catch {\n return null;\n }\n}\nexport function _appendRunMarker(): void {\n try {\n const fs = require('fs');\n const p = __getOrCreateNdjsonPath();\n if (!p) return;\n const line = { name: 'visor.run', attributes: { started: true } };\n fs.appendFileSync(p, JSON.stringify(line) + '\\n', 'utf8');\n } catch {}\n}\n"],"mappings":"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","names":["emitNdjsonSpanWithEvents","path","fs"]}
|
|
@@ -3979,7 +3979,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
|
|
|
3979
3979
|
...args,
|
|
3980
3980
|
...argsOverrides
|
|
3981
3981
|
};
|
|
3982
|
-
const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-
|
|
3982
|
+
const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-FAO4AUGB.mjs");
|
|
3983
3983
|
const provider = new WorkflowCheckProvider2();
|
|
3984
3984
|
const checkConfig = {
|
|
3985
3985
|
type: "workflow",
|
|
@@ -13315,7 +13315,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13315
13315
|
try {
|
|
13316
13316
|
const map = options?.webhookContext?.webhookData;
|
|
13317
13317
|
if (map) {
|
|
13318
|
-
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-
|
|
13318
|
+
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-5CMLUEFG.mjs");
|
|
13319
13319
|
const reg = CheckProviderRegistry2.getInstance();
|
|
13320
13320
|
const p = reg.getProvider("http_input");
|
|
13321
13321
|
if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
|
|
@@ -13438,7 +13438,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13438
13438
|
tag_filter: tagFilter
|
|
13439
13439
|
} : config;
|
|
13440
13440
|
try {
|
|
13441
|
-
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-
|
|
13441
|
+
const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-5CMLUEFG.mjs");
|
|
13442
13442
|
const registry = CheckProviderRegistry2.getInstance();
|
|
13443
13443
|
registry.setCustomTools(configWithTagFilter.tools || {});
|
|
13444
13444
|
} catch (error) {
|
|
@@ -13479,7 +13479,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13479
13479
|
logger.debug(
|
|
13480
13480
|
`[PolicyEngine] Loading enterprise policy engine (engine=${configWithTagFilter.policy.engine})`
|
|
13481
13481
|
);
|
|
13482
|
-
const { loadEnterprisePolicyEngine } = await import("./loader
|
|
13482
|
+
const { loadEnterprisePolicyEngine } = await import("./enterprise/loader");
|
|
13483
13483
|
context2.policyEngine = await loadEnterprisePolicyEngine(configWithTagFilter.policy);
|
|
13484
13484
|
logger.debug(
|
|
13485
13485
|
`[PolicyEngine] Initialized: ${context2.policyEngine?.constructor?.name || "unknown"}`
|
|
@@ -13502,7 +13502,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13502
13502
|
try {
|
|
13503
13503
|
const webhookData = this.executionContext?.webhookContext?.webhookData;
|
|
13504
13504
|
if (webhookData instanceof Map) {
|
|
13505
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
13505
|
+
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-UQWDPFP6.mjs");
|
|
13506
13506
|
const slackCtx = extractSlackContext2(webhookData);
|
|
13507
13507
|
if (slackCtx) {
|
|
13508
13508
|
const payload = Array.from(webhookData.values())[0];
|
|
@@ -13531,7 +13531,7 @@ var init_state_machine_execution_engine = __esm({
|
|
|
13531
13531
|
if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
|
|
13532
13532
|
try {
|
|
13533
13533
|
const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
|
|
13534
|
-
const { FrontendsHost } = await import("./host-
|
|
13534
|
+
const { FrontendsHost } = await import("./host-6HV5FMD7.mjs");
|
|
13535
13535
|
const bus = new EventBus();
|
|
13536
13536
|
context2.eventBus = bus;
|
|
13537
13537
|
frontendsHost = new FrontendsHost(bus, logger);
|
|
@@ -41212,8 +41212,8 @@ function buildBuiltinGlobals(opts) {
|
|
|
41212
41212
|
const asyncFunctionNames = /* @__PURE__ */ new Set();
|
|
41213
41213
|
const scheduleFn = async (args = {}) => {
|
|
41214
41214
|
try {
|
|
41215
|
-
const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-
|
|
41216
|
-
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-
|
|
41215
|
+
const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-H4G5ITNL.mjs");
|
|
41216
|
+
const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-UQWDPFP6.mjs");
|
|
41217
41217
|
const parentCtx = opts.sessionInfo?._parentContext;
|
|
41218
41218
|
const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
|
|
41219
41219
|
const visorCfg = parentCtx?.config;
|
|
@@ -44768,4 +44768,4 @@ undici/lib/fetch/body.js:
|
|
|
44768
44768
|
undici/lib/websocket/frame.js:
|
|
44769
44769
|
(*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
|
|
44770
44770
|
*/
|
|
44771
|
-
//# sourceMappingURL=chunk-
|
|
44771
|
+
//# sourceMappingURL=chunk-LB77GR4Q.mjs.map
|