@probelabs/visor 0.1.181 → 0.1.182
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 +80 -14
- package/defaults/engineer.yaml +33 -15
- package/defaults/skills/code-explorer.yaml +5 -0
- package/dist/agent-protocol/a2a-frontend.d.ts +10 -0
- package/dist/agent-protocol/a2a-frontend.d.ts.map +1 -1
- package/dist/agent-protocol/task-evaluator.d.ts +52 -0
- package/dist/agent-protocol/task-evaluator.d.ts.map +1 -0
- package/dist/agent-protocol/task-store.d.ts +5 -3
- package/dist/agent-protocol/task-store.d.ts.map +1 -1
- package/dist/agent-protocol/tasks-cli-handler.d.ts.map +1 -1
- package/dist/agent-protocol/tasks-tui.d.ts +34 -0
- package/dist/agent-protocol/tasks-tui.d.ts.map +1 -0
- package/dist/agent-protocol/trace-serializer.d.ts +90 -0
- package/dist/agent-protocol/trace-serializer.d.ts.map +1 -0
- package/dist/agent-protocol/track-execution.d.ts +2 -0
- package/dist/agent-protocol/track-execution.d.ts.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/defaults/code-talk.yaml +80 -14
- package/dist/defaults/engineer.yaml +33 -15
- package/dist/defaults/skills/code-explorer.yaml +5 -0
- package/dist/docs/commands.md +57 -14
- package/dist/docs/configuration.md +2 -0
- package/dist/docs/guides/graceful-restart.md +178 -0
- package/dist/docs/observability.md +69 -0
- package/dist/docs/production-deployment.md +17 -0
- package/dist/email/polling-runner.d.ts +4 -0
- package/dist/email/polling-runner.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +70 -6
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +73 -6
- package/dist/index.js +5006 -886
- package/dist/output/traces/{run-2026-03-17T13-58-29-402Z.ndjson → run-2026-03-18T19-02-50-465Z.ndjson} +84 -84
- package/dist/{traces/run-2026-03-17T13-59-10-403Z.ndjson → output/traces/run-2026-03-18T19-03-30-428Z.ndjson} +2037 -2037
- package/dist/providers/mcp-custom-sse-server.d.ts +4 -0
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/runners/graceful-restart.d.ts +46 -0
- package/dist/runners/graceful-restart.d.ts.map +1 -0
- package/dist/runners/mcp-server-runner.d.ts +12 -0
- package/dist/runners/mcp-server-runner.d.ts.map +1 -1
- package/dist/runners/runner-factory.d.ts.map +1 -1
- package/dist/runners/runner-host.d.ts +12 -0
- package/dist/runners/runner-host.d.ts.map +1 -1
- package/dist/runners/runner.d.ts +12 -0
- package/dist/runners/runner.d.ts.map +1 -1
- package/dist/sdk/{a2a-frontend-IWOUJOIZ.mjs → a2a-frontend-4LP3MLTS.mjs} +47 -5
- package/dist/sdk/a2a-frontend-4LP3MLTS.mjs.map +1 -0
- package/dist/sdk/a2a-frontend-5J3UNFY4.mjs +1718 -0
- package/dist/sdk/a2a-frontend-5J3UNFY4.mjs.map +1 -0
- package/dist/sdk/{a2a-frontend-BDACLGMA.mjs → a2a-frontend-MU5EO2HZ.mjs} +35 -1
- package/dist/sdk/a2a-frontend-MU5EO2HZ.mjs.map +1 -0
- package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs → check-provider-registry-MHXQGUNN.mjs} +7 -7
- package/dist/sdk/{check-provider-registry-4YFVBGYU.mjs → check-provider-registry-RRWCXSTG.mjs} +3 -3
- package/dist/sdk/{check-provider-registry-67ZLGDDQ.mjs → check-provider-registry-Y33CRFVD.mjs} +7 -7
- package/dist/sdk/{chunk-DGIH6EX3.mjs → chunk-4AXAVXG5.mjs} +151 -281
- package/dist/sdk/chunk-4AXAVXG5.mjs.map +1 -0
- package/dist/sdk/{chunk-VMVIM4JB.mjs → chunk-4I3TJ7UJ.mjs} +37 -7
- package/dist/sdk/chunk-4I3TJ7UJ.mjs.map +1 -0
- package/dist/sdk/{chunk-VXC2XNQJ.mjs → chunk-5J3DNRF7.mjs} +3 -3
- package/dist/sdk/{chunk-7YZSSO4X.mjs → chunk-6DPPP7LD.mjs} +10 -10
- package/dist/sdk/chunk-7ERVRLDV.mjs +296 -0
- package/dist/sdk/chunk-7ERVRLDV.mjs.map +1 -0
- package/dist/sdk/{chunk-4DVP6KVC.mjs → chunk-7Z2WHX2J.mjs} +71 -30
- package/dist/sdk/chunk-7Z2WHX2J.mjs.map +1 -0
- package/dist/sdk/chunk-ANUT54HW.mjs +1502 -0
- package/dist/sdk/chunk-ANUT54HW.mjs.map +1 -0
- package/dist/sdk/{chunk-J73GEFPT.mjs → chunk-DHETLQIX.mjs} +2 -2
- package/dist/sdk/{chunk-QGBASDYP.mjs → chunk-JCOSKBMP.mjs} +71 -30
- package/dist/sdk/chunk-JCOSKBMP.mjs.map +1 -0
- package/dist/sdk/chunk-MK7ONH47.mjs +739 -0
- package/dist/sdk/chunk-MK7ONH47.mjs.map +1 -0
- package/dist/sdk/chunk-QXT47ZHR.mjs +390 -0
- package/dist/sdk/chunk-QXT47ZHR.mjs.map +1 -0
- package/dist/sdk/chunk-V75NEIXL.mjs +296 -0
- package/dist/sdk/chunk-V75NEIXL.mjs.map +1 -0
- package/dist/sdk/chunk-ZOF5QT6U.mjs +5943 -0
- package/dist/sdk/chunk-ZOF5QT6U.mjs.map +1 -0
- package/dist/sdk/{config-TSA5FUOM.mjs → config-2STD74CJ.mjs} +2 -2
- package/dist/sdk/config-JE4HKTWW.mjs +16 -0
- package/dist/sdk/{failure-condition-evaluator-HTPB5FYW.mjs → failure-condition-evaluator-5DZYMCGW.mjs} +4 -4
- package/dist/sdk/failure-condition-evaluator-R6DCDJAV.mjs +18 -0
- package/dist/sdk/{github-frontend-3SDFCCKI.mjs → github-frontend-3PSCKPAJ.mjs} +4 -4
- package/dist/sdk/github-frontend-L3F5JXPJ.mjs +1394 -0
- package/dist/sdk/github-frontend-L3F5JXPJ.mjs.map +1 -0
- package/dist/sdk/{host-QE4L7UXE.mjs → host-54CHV2LW.mjs} +3 -3
- package/dist/sdk/{host-VBBSLUWG.mjs → host-WAU6CT42.mjs} +3 -3
- package/dist/sdk/{host-CVH2CSHM.mjs → host-X5ZZCEWN.mjs} +2 -2
- package/dist/sdk/{routing-YVMTKFDZ.mjs → routing-CVQT4KHX.mjs} +5 -5
- package/dist/sdk/routing-EBAE5SSO.mjs +26 -0
- package/dist/sdk/{schedule-tool-Z5VG67JK.mjs → schedule-tool-POY3CDZL.mjs} +7 -7
- package/dist/sdk/{schedule-tool-ADUXTCY7.mjs → schedule-tool-R2OAATUS.mjs} +7 -7
- package/dist/sdk/{schedule-tool-ZMX3Y7LF.mjs → schedule-tool-Z6QYL2B3.mjs} +3 -3
- package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs → schedule-tool-handler-J4NUETJ6.mjs} +3 -3
- package/dist/sdk/{schedule-tool-handler-PCERK6ZZ.mjs → schedule-tool-handler-JMAKHPI7.mjs} +7 -7
- package/dist/sdk/{schedule-tool-handler-QOJVFRB4.mjs → schedule-tool-handler-MWFUIQKR.mjs} +7 -7
- package/dist/sdk/sdk.d.mts +33 -0
- package/dist/sdk/sdk.d.ts +33 -0
- package/dist/sdk/sdk.js +2058 -342
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +6 -6
- package/dist/sdk/task-evaluator-HLNXKKVV.mjs +1278 -0
- package/dist/sdk/task-evaluator-HLNXKKVV.mjs.map +1 -0
- package/dist/sdk/{trace-helpers-KXDOJWBL.mjs → trace-helpers-HL5FBX65.mjs} +3 -3
- package/dist/sdk/trace-helpers-WJXYVV4S.mjs +29 -0
- package/dist/sdk/trace-helpers-WJXYVV4S.mjs.map +1 -0
- package/dist/sdk/trace-reader-ZY77OFNM.mjs +266 -0
- package/dist/sdk/trace-reader-ZY77OFNM.mjs.map +1 -0
- package/dist/sdk/track-execution-MKIQXP2C.mjs +136 -0
- package/dist/sdk/track-execution-MKIQXP2C.mjs.map +1 -0
- package/dist/sdk/track-execution-YUXQ6WQH.mjs +136 -0
- package/dist/sdk/track-execution-YUXQ6WQH.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-NTHC5ZBF.mjs → workflow-check-provider-SE5I7EMA.mjs} +7 -7
- package/dist/sdk/workflow-check-provider-SE5I7EMA.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-SRIMWKLQ.mjs → workflow-check-provider-VKYGI5GK.mjs} +3 -3
- package/dist/sdk/workflow-check-provider-VKYGI5GK.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-CJXW2Z4F.mjs → workflow-check-provider-YDGZRI3Z.mjs} +7 -7
- package/dist/sdk/workflow-check-provider-YDGZRI3Z.mjs.map +1 -0
- package/dist/slack/socket-runner.d.ts +12 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/teams/webhook-runner.d.ts +4 -0
- package/dist/teams/webhook-runner.d.ts.map +1 -1
- package/dist/telegram/polling-runner.d.ts +2 -0
- package/dist/telegram/polling-runner.d.ts.map +1 -1
- package/dist/traces/{run-2026-03-17T13-58-29-402Z.ndjson → run-2026-03-18T19-02-50-465Z.ndjson} +84 -84
- package/dist/{output/traces/run-2026-03-17T13-59-10-403Z.ndjson → traces/run-2026-03-18T19-03-30-428Z.ndjson} +2037 -2037
- package/dist/types/config.d.ts +33 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/whatsapp/webhook-runner.d.ts +4 -0
- package/dist/whatsapp/webhook-runner.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/sdk/a2a-frontend-BDACLGMA.mjs.map +0 -1
- package/dist/sdk/a2a-frontend-IWOUJOIZ.mjs.map +0 -1
- package/dist/sdk/chunk-4DVP6KVC.mjs.map +0 -1
- package/dist/sdk/chunk-DGIH6EX3.mjs.map +0 -1
- package/dist/sdk/chunk-QGBASDYP.mjs.map +0 -1
- package/dist/sdk/chunk-VMVIM4JB.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-4YFVBGYU.mjs.map → check-provider-registry-MHXQGUNN.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs.map → check-provider-registry-RRWCXSTG.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-67ZLGDDQ.mjs.map → check-provider-registry-Y33CRFVD.mjs.map} +0 -0
- /package/dist/sdk/{chunk-VXC2XNQJ.mjs.map → chunk-5J3DNRF7.mjs.map} +0 -0
- /package/dist/sdk/{chunk-7YZSSO4X.mjs.map → chunk-6DPPP7LD.mjs.map} +0 -0
- /package/dist/sdk/{chunk-J73GEFPT.mjs.map → chunk-DHETLQIX.mjs.map} +0 -0
- /package/dist/sdk/{config-TSA5FUOM.mjs.map → config-2STD74CJ.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-HTPB5FYW.mjs.map → config-JE4HKTWW.mjs.map} +0 -0
- /package/dist/sdk/{routing-YVMTKFDZ.mjs.map → failure-condition-evaluator-5DZYMCGW.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-ADUXTCY7.mjs.map → failure-condition-evaluator-R6DCDJAV.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-3SDFCCKI.mjs.map → github-frontend-3PSCKPAJ.mjs.map} +0 -0
- /package/dist/sdk/{host-CVH2CSHM.mjs.map → host-54CHV2LW.mjs.map} +0 -0
- /package/dist/sdk/{host-QE4L7UXE.mjs.map → host-WAU6CT42.mjs.map} +0 -0
- /package/dist/sdk/{host-VBBSLUWG.mjs.map → host-X5ZZCEWN.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-Z5VG67JK.mjs.map → routing-CVQT4KHX.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-ZMX3Y7LF.mjs.map → routing-EBAE5SSO.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs.map → schedule-tool-POY3CDZL.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-PCERK6ZZ.mjs.map → schedule-tool-R2OAATUS.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-QOJVFRB4.mjs.map → schedule-tool-Z6QYL2B3.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-KXDOJWBL.mjs.map → schedule-tool-handler-J4NUETJ6.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-CJXW2Z4F.mjs.map → schedule-tool-handler-JMAKHPI7.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-NTHC5ZBF.mjs.map → schedule-tool-handler-MWFUIQKR.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-SRIMWKLQ.mjs.map → trace-helpers-HL5FBX65.mjs.map} +0 -0
|
@@ -1,93 +1,157 @@
|
|
|
1
|
-
import {
|
|
2
|
-
getInstanceId,
|
|
3
|
-
init_instance_id
|
|
4
|
-
} from "./chunk-6VVXKXTI.mjs";
|
|
5
|
-
import {
|
|
6
|
-
init_metrics,
|
|
7
|
-
metrics_exports
|
|
8
|
-
} from "./chunk-34QX63WK.mjs";
|
|
9
|
-
import {
|
|
10
|
-
SpanStatusCode,
|
|
11
|
-
context,
|
|
12
|
-
init_lazy_otel,
|
|
13
|
-
trace
|
|
14
|
-
} from "./chunk-UCMJJ3IM.mjs";
|
|
15
1
|
import {
|
|
16
2
|
__commonJS,
|
|
17
|
-
__esm
|
|
18
|
-
__export,
|
|
19
|
-
__require,
|
|
20
|
-
__toCommonJS
|
|
3
|
+
__esm
|
|
21
4
|
} from "./chunk-J7LXIPZS.mjs";
|
|
22
5
|
|
|
23
|
-
// src/
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
});
|
|
30
|
-
import * as fs from "fs";
|
|
31
|
-
import * as path from "path";
|
|
32
|
-
function resolveTargetPath(outDir) {
|
|
33
|
-
if (process.env.VISOR_FALLBACK_TRACE_FILE) {
|
|
34
|
-
CURRENT_FILE = process.env.VISOR_FALLBACK_TRACE_FILE;
|
|
35
|
-
return CURRENT_FILE;
|
|
6
|
+
// src/utils/human-id.ts
|
|
7
|
+
function randomSuffix() {
|
|
8
|
+
const chars = "abcdefghjkmnpqrstuvwxyz23456789";
|
|
9
|
+
let result = "";
|
|
10
|
+
for (let i = 0; i < 4; i++) {
|
|
11
|
+
result += chars[Math.floor(Math.random() * chars.length)];
|
|
36
12
|
}
|
|
37
|
-
|
|
38
|
-
const ts = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
39
|
-
CURRENT_FILE = path.join(outDir, `${ts}.ndjson`);
|
|
40
|
-
return CURRENT_FILE;
|
|
13
|
+
return result;
|
|
41
14
|
}
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
|
|
15
|
+
function generateHumanId() {
|
|
16
|
+
const adj = adjectives[Math.floor(Math.random() * adjectives.length)];
|
|
17
|
+
const noun = nouns[Math.floor(Math.random() * nouns.length)];
|
|
18
|
+
const suffix = randomSuffix();
|
|
19
|
+
return `${adj}-${noun}-${suffix}`;
|
|
45
20
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
await fs.promises.mkdir(outDir, { recursive: true });
|
|
51
|
-
} catch {
|
|
52
|
-
}
|
|
53
|
-
dirReady = true;
|
|
54
|
-
}
|
|
55
|
-
const target = resolveTargetPath(outDir);
|
|
56
|
-
await fs.promises.appendFile(target, line, "utf8");
|
|
57
|
-
}).catch(() => {
|
|
58
|
-
});
|
|
21
|
+
function generateShortHumanId() {
|
|
22
|
+
const adj = adjectives[Math.floor(Math.random() * adjectives.length)];
|
|
23
|
+
const noun = nouns[Math.floor(Math.random() * nouns.length)];
|
|
24
|
+
return `${adj}-${noun}`;
|
|
59
25
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
26
|
+
var adjectives, nouns;
|
|
27
|
+
var init_human_id = __esm({
|
|
28
|
+
"src/utils/human-id.ts"() {
|
|
29
|
+
"use strict";
|
|
30
|
+
adjectives = [
|
|
31
|
+
"bold",
|
|
32
|
+
"calm",
|
|
33
|
+
"cool",
|
|
34
|
+
"dark",
|
|
35
|
+
"fast",
|
|
36
|
+
"gold",
|
|
37
|
+
"green",
|
|
38
|
+
"happy",
|
|
39
|
+
"kind",
|
|
40
|
+
"loud",
|
|
41
|
+
"mild",
|
|
42
|
+
"neat",
|
|
43
|
+
"nice",
|
|
44
|
+
"pink",
|
|
45
|
+
"pure",
|
|
46
|
+
"quick",
|
|
47
|
+
"rare",
|
|
48
|
+
"rich",
|
|
49
|
+
"safe",
|
|
50
|
+
"slim",
|
|
51
|
+
"soft",
|
|
52
|
+
"tall",
|
|
53
|
+
"tidy",
|
|
54
|
+
"tiny",
|
|
55
|
+
"warm",
|
|
56
|
+
"wise",
|
|
57
|
+
"young",
|
|
58
|
+
"able",
|
|
59
|
+
"blue",
|
|
60
|
+
"brave",
|
|
61
|
+
"busy",
|
|
62
|
+
"clean",
|
|
63
|
+
"crisp",
|
|
64
|
+
"eager",
|
|
65
|
+
"fair",
|
|
66
|
+
"fresh",
|
|
67
|
+
"glad",
|
|
68
|
+
"grand",
|
|
69
|
+
"keen",
|
|
70
|
+
"lush",
|
|
71
|
+
"prime",
|
|
72
|
+
"proud",
|
|
73
|
+
"sharp",
|
|
74
|
+
"sleek",
|
|
75
|
+
"smart",
|
|
76
|
+
"solid",
|
|
77
|
+
"swift",
|
|
78
|
+
"vivid",
|
|
79
|
+
"wild",
|
|
80
|
+
"witty",
|
|
81
|
+
"zesty"
|
|
82
|
+
];
|
|
83
|
+
nouns = [
|
|
84
|
+
"ant",
|
|
85
|
+
"bat",
|
|
86
|
+
"bear",
|
|
87
|
+
"bee",
|
|
88
|
+
"bird",
|
|
89
|
+
"bull",
|
|
90
|
+
"cat",
|
|
91
|
+
"cow",
|
|
92
|
+
"crab",
|
|
93
|
+
"crow",
|
|
94
|
+
"deer",
|
|
95
|
+
"dog",
|
|
96
|
+
"dove",
|
|
97
|
+
"duck",
|
|
98
|
+
"eagle",
|
|
99
|
+
"elk",
|
|
100
|
+
"fish",
|
|
101
|
+
"fox",
|
|
102
|
+
"frog",
|
|
103
|
+
"goat",
|
|
104
|
+
"hawk",
|
|
105
|
+
"hare",
|
|
106
|
+
"horse",
|
|
107
|
+
"jay",
|
|
108
|
+
"lark",
|
|
109
|
+
"lion",
|
|
110
|
+
"lynx",
|
|
111
|
+
"mole",
|
|
112
|
+
"moth",
|
|
113
|
+
"mouse",
|
|
114
|
+
"newt",
|
|
115
|
+
"owl",
|
|
116
|
+
"panda",
|
|
117
|
+
"pig",
|
|
118
|
+
"puma",
|
|
119
|
+
"rat",
|
|
120
|
+
"raven",
|
|
121
|
+
"seal",
|
|
122
|
+
"shark",
|
|
123
|
+
"sheep",
|
|
124
|
+
"sloth",
|
|
125
|
+
"snail",
|
|
126
|
+
"snake",
|
|
127
|
+
"spider",
|
|
128
|
+
"swan",
|
|
129
|
+
"tiger",
|
|
130
|
+
"toad",
|
|
131
|
+
"trout",
|
|
132
|
+
"viper",
|
|
133
|
+
"wasp",
|
|
134
|
+
"whale",
|
|
135
|
+
"wolf",
|
|
136
|
+
"wren",
|
|
137
|
+
"yak",
|
|
138
|
+
"zebra"
|
|
139
|
+
];
|
|
73
140
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
appendAsync(outDir, line);
|
|
81
|
-
} catch {
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// src/utils/instance-id.ts
|
|
144
|
+
function getInstanceId() {
|
|
145
|
+
if (!_instanceId) {
|
|
146
|
+
_instanceId = generateHumanId();
|
|
82
147
|
}
|
|
148
|
+
return _instanceId;
|
|
83
149
|
}
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
"src/
|
|
150
|
+
var _instanceId;
|
|
151
|
+
var init_instance_id = __esm({
|
|
152
|
+
"src/utils/instance-id.ts"() {
|
|
87
153
|
"use strict";
|
|
88
|
-
|
|
89
|
-
dirReady = false;
|
|
90
|
-
writeChain = Promise.resolve();
|
|
154
|
+
init_human_id();
|
|
91
155
|
}
|
|
92
156
|
});
|
|
93
157
|
|
|
@@ -96,7 +160,7 @@ var require_package = __commonJS({
|
|
|
96
160
|
"package.json"(exports, module) {
|
|
97
161
|
module.exports = {
|
|
98
162
|
name: "@probelabs/visor",
|
|
99
|
-
version: "0.1.
|
|
163
|
+
version: "0.1.182",
|
|
100
164
|
main: "dist/index.js",
|
|
101
165
|
bin: {
|
|
102
166
|
visor: "./dist/index.js"
|
|
@@ -215,7 +279,7 @@ var require_package = __commonJS({
|
|
|
215
279
|
"@opentelemetry/sdk-node": "^0.203.0",
|
|
216
280
|
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
217
281
|
"@opentelemetry/semantic-conventions": "^1.30.1",
|
|
218
|
-
"@probelabs/probe": "^0.6.0-
|
|
282
|
+
"@probelabs/probe": "^0.6.0-rc300",
|
|
219
283
|
"@types/commander": "^2.12.0",
|
|
220
284
|
"@types/uuid": "^10.0.0",
|
|
221
285
|
"@utcp/file": "^1.1.0",
|
|
@@ -315,206 +379,12 @@ var require_package = __commonJS({
|
|
|
315
379
|
}
|
|
316
380
|
});
|
|
317
381
|
|
|
318
|
-
// src/telemetry/trace-helpers.ts
|
|
319
|
-
var trace_helpers_exports = {};
|
|
320
|
-
__export(trace_helpers_exports, {
|
|
321
|
-
__getOrCreateNdjsonPath: () => __getOrCreateNdjsonPath,
|
|
322
|
-
_appendRunMarker: () => _appendRunMarker,
|
|
323
|
-
addEvent: () => addEvent,
|
|
324
|
-
getTracer: () => getTracer,
|
|
325
|
-
getVisorRunAttributes: () => getVisorRunAttributes,
|
|
326
|
-
setSpanAttributes: () => setSpanAttributes,
|
|
327
|
-
setSpanError: () => setSpanError,
|
|
328
|
-
withActiveSpan: () => withActiveSpan,
|
|
329
|
-
withVisorRun: () => withVisorRun
|
|
330
|
-
});
|
|
331
|
-
function getTracer() {
|
|
332
|
-
return trace.getTracer("visor");
|
|
333
|
-
}
|
|
334
|
-
async function withActiveSpan(name, attrs, fn) {
|
|
335
|
-
const tracer = getTracer();
|
|
336
|
-
return await new Promise((resolve, reject) => {
|
|
337
|
-
const callback = async (span) => {
|
|
338
|
-
try {
|
|
339
|
-
const res = await fn(span);
|
|
340
|
-
resolve(res);
|
|
341
|
-
} catch (err) {
|
|
342
|
-
try {
|
|
343
|
-
if (err instanceof Error) span.recordException(err);
|
|
344
|
-
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
345
|
-
} catch {
|
|
346
|
-
}
|
|
347
|
-
reject(err);
|
|
348
|
-
} finally {
|
|
349
|
-
try {
|
|
350
|
-
span.end();
|
|
351
|
-
} catch {
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
};
|
|
355
|
-
const options = attrs ? { attributes: attrs } : {};
|
|
356
|
-
tracer.startActiveSpan(name, options, callback);
|
|
357
|
-
});
|
|
358
|
-
}
|
|
359
|
-
function addEvent(name, attrs) {
|
|
360
|
-
const span = trace.getSpan(context.active());
|
|
361
|
-
if (span) {
|
|
362
|
-
try {
|
|
363
|
-
span.addEvent(name, attrs);
|
|
364
|
-
} catch {
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
try {
|
|
368
|
-
const { emitNdjsonSpanWithEvents: emitNdjsonSpanWithEvents2 } = (init_fallback_ndjson(), __toCommonJS(fallback_ndjson_exports));
|
|
369
|
-
emitNdjsonSpanWithEvents2("visor.event", {}, [{ name, attrs }]);
|
|
370
|
-
if (name === "fail_if.triggered") {
|
|
371
|
-
emitNdjsonSpanWithEvents2("visor.event", {}, [
|
|
372
|
-
{ name: "fail_if.evaluated", attrs },
|
|
373
|
-
{ name: "fail_if.triggered", attrs }
|
|
374
|
-
]);
|
|
375
|
-
}
|
|
376
|
-
} catch {
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
function setSpanAttributes(attrs) {
|
|
380
|
-
const span = trace.getSpan(context.active());
|
|
381
|
-
if (!span) return;
|
|
382
|
-
try {
|
|
383
|
-
for (const [k, v] of Object.entries(attrs)) span.setAttribute(k, v);
|
|
384
|
-
} catch {
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
function setSpanError(err) {
|
|
388
|
-
const span = trace.getSpan(context.active());
|
|
389
|
-
if (!span) return;
|
|
390
|
-
try {
|
|
391
|
-
if (err instanceof Error) span.recordException(err);
|
|
392
|
-
span.setStatus({ code: SpanStatusCode.ERROR });
|
|
393
|
-
} catch {
|
|
394
|
-
}
|
|
395
|
-
}
|
|
396
|
-
function getVisorRunAttributes() {
|
|
397
|
-
const attrs = {};
|
|
398
|
-
try {
|
|
399
|
-
attrs["visor.version"] = process.env.VISOR_VERSION || (require_package()?.version ?? "dev");
|
|
400
|
-
} catch {
|
|
401
|
-
attrs["visor.version"] = "dev";
|
|
402
|
-
}
|
|
403
|
-
const commitShort = process.env.VISOR_COMMIT_SHORT || "";
|
|
404
|
-
const commitFull = process.env.VISOR_COMMIT_SHA || process.env.VISOR_COMMIT || "";
|
|
405
|
-
if (commitShort) {
|
|
406
|
-
attrs["visor.commit"] = commitShort;
|
|
407
|
-
}
|
|
408
|
-
if (commitFull) {
|
|
409
|
-
attrs["visor.commit.sha"] = commitFull;
|
|
410
|
-
}
|
|
411
|
-
attrs["visor.instance_id"] = getInstanceId();
|
|
412
|
-
return attrs;
|
|
413
|
-
}
|
|
414
|
-
async function withVisorRun(attrs, runMeta, fn) {
|
|
415
|
-
const {
|
|
416
|
-
recordRunStart,
|
|
417
|
-
recordRunDuration,
|
|
418
|
-
resetRunAiCalls,
|
|
419
|
-
recordRunAiCalls,
|
|
420
|
-
getRunAiCalls
|
|
421
|
-
} = (init_metrics(), __toCommonJS(metrics_exports));
|
|
422
|
-
const instanceId = getInstanceId();
|
|
423
|
-
recordRunStart({
|
|
424
|
-
source: runMeta.source,
|
|
425
|
-
userId: runMeta.userId,
|
|
426
|
-
userName: runMeta.userName,
|
|
427
|
-
workflowId: runMeta.workflowId,
|
|
428
|
-
instanceId
|
|
429
|
-
});
|
|
430
|
-
resetRunAiCalls();
|
|
431
|
-
const startMs = Date.now();
|
|
432
|
-
let success = true;
|
|
433
|
-
try {
|
|
434
|
-
return await withActiveSpan("visor.run", attrs, async (span) => {
|
|
435
|
-
try {
|
|
436
|
-
return await fn(span);
|
|
437
|
-
} finally {
|
|
438
|
-
try {
|
|
439
|
-
span.setAttribute("visor.run.ai_calls", getRunAiCalls());
|
|
440
|
-
span.setAttribute("visor.run.duration_ms", Date.now() - startMs);
|
|
441
|
-
} catch {
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
});
|
|
445
|
-
} catch (err) {
|
|
446
|
-
success = false;
|
|
447
|
-
throw err;
|
|
448
|
-
} finally {
|
|
449
|
-
recordRunAiCalls({
|
|
450
|
-
source: runMeta.source,
|
|
451
|
-
workflowId: runMeta.workflowId
|
|
452
|
-
});
|
|
453
|
-
recordRunDuration(Date.now() - startMs, {
|
|
454
|
-
source: runMeta.source,
|
|
455
|
-
userId: runMeta.userId,
|
|
456
|
-
workflowId: runMeta.workflowId,
|
|
457
|
-
success
|
|
458
|
-
});
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
function __getOrCreateNdjsonPath() {
|
|
462
|
-
try {
|
|
463
|
-
if (process.env.VISOR_TELEMETRY_SINK && process.env.VISOR_TELEMETRY_SINK !== "file")
|
|
464
|
-
return null;
|
|
465
|
-
const path2 = __require("path");
|
|
466
|
-
const fs2 = __require("fs");
|
|
467
|
-
if (process.env.VISOR_FALLBACK_TRACE_FILE) {
|
|
468
|
-
__ndjsonPath = process.env.VISOR_FALLBACK_TRACE_FILE;
|
|
469
|
-
const dir = path2.dirname(__ndjsonPath);
|
|
470
|
-
if (!fs2.existsSync(dir)) fs2.mkdirSync(dir, { recursive: true });
|
|
471
|
-
return __ndjsonPath;
|
|
472
|
-
}
|
|
473
|
-
const outDir = process.env.VISOR_TRACE_DIR || path2.join(process.cwd(), "output", "traces");
|
|
474
|
-
if (!fs2.existsSync(outDir)) fs2.mkdirSync(outDir, { recursive: true });
|
|
475
|
-
if (!__ndjsonPath) {
|
|
476
|
-
const ts = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
|
|
477
|
-
__ndjsonPath = path2.join(outDir, `${ts}.ndjson`);
|
|
478
|
-
}
|
|
479
|
-
return __ndjsonPath;
|
|
480
|
-
} catch {
|
|
481
|
-
return null;
|
|
482
|
-
}
|
|
483
|
-
}
|
|
484
|
-
function _appendRunMarker() {
|
|
485
|
-
try {
|
|
486
|
-
const fs2 = __require("fs");
|
|
487
|
-
const p = __getOrCreateNdjsonPath();
|
|
488
|
-
if (!p) return;
|
|
489
|
-
const line = { name: "visor.run", attributes: { started: true } };
|
|
490
|
-
fs2.appendFileSync(p, JSON.stringify(line) + "\n", "utf8");
|
|
491
|
-
} catch {
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
var __ndjsonPath;
|
|
495
|
-
var init_trace_helpers = __esm({
|
|
496
|
-
"src/telemetry/trace-helpers.ts"() {
|
|
497
|
-
init_lazy_otel();
|
|
498
|
-
init_instance_id();
|
|
499
|
-
__ndjsonPath = null;
|
|
500
|
-
}
|
|
501
|
-
});
|
|
502
|
-
|
|
503
382
|
export {
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
addEvent,
|
|
511
|
-
setSpanAttributes,
|
|
512
|
-
setSpanError,
|
|
513
|
-
getVisorRunAttributes,
|
|
514
|
-
withVisorRun,
|
|
515
|
-
__getOrCreateNdjsonPath,
|
|
516
|
-
_appendRunMarker,
|
|
517
|
-
trace_helpers_exports,
|
|
518
|
-
init_trace_helpers
|
|
383
|
+
generateHumanId,
|
|
384
|
+
generateShortHumanId,
|
|
385
|
+
init_human_id,
|
|
386
|
+
getInstanceId,
|
|
387
|
+
init_instance_id,
|
|
388
|
+
require_package
|
|
519
389
|
};
|
|
520
|
-
//# sourceMappingURL=chunk-
|
|
390
|
+
//# sourceMappingURL=chunk-4AXAVXG5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utils/human-id.ts","../../src/utils/instance-id.ts","../../package.json"],"sourcesContent":["/**\n * Generate human-readable IDs like Kubernetes (e.g., \"happy-panda-7x3k\")\n */\n\nconst adjectives = [\n 'bold',\n 'calm',\n 'cool',\n 'dark',\n 'fast',\n 'gold',\n 'green',\n 'happy',\n 'kind',\n 'loud',\n 'mild',\n 'neat',\n 'nice',\n 'pink',\n 'pure',\n 'quick',\n 'rare',\n 'rich',\n 'safe',\n 'slim',\n 'soft',\n 'tall',\n 'tidy',\n 'tiny',\n 'warm',\n 'wise',\n 'young',\n 'able',\n 'blue',\n 'brave',\n 'busy',\n 'clean',\n 'crisp',\n 'eager',\n 'fair',\n 'fresh',\n 'glad',\n 'grand',\n 'keen',\n 'lush',\n 'prime',\n 'proud',\n 'sharp',\n 'sleek',\n 'smart',\n 'solid',\n 'swift',\n 'vivid',\n 'wild',\n 'witty',\n 'zesty',\n];\n\nconst nouns = [\n 'ant',\n 'bat',\n 'bear',\n 'bee',\n 'bird',\n 'bull',\n 'cat',\n 'cow',\n 'crab',\n 'crow',\n 'deer',\n 'dog',\n 'dove',\n 'duck',\n 'eagle',\n 'elk',\n 'fish',\n 'fox',\n 'frog',\n 'goat',\n 'hawk',\n 'hare',\n 'horse',\n 'jay',\n 'lark',\n 'lion',\n 'lynx',\n 'mole',\n 'moth',\n 'mouse',\n 'newt',\n 'owl',\n 'panda',\n 'pig',\n 'puma',\n 'rat',\n 'raven',\n 'seal',\n 'shark',\n 'sheep',\n 'sloth',\n 'snail',\n 'snake',\n 'spider',\n 'swan',\n 'tiger',\n 'toad',\n 'trout',\n 'viper',\n 'wasp',\n 'whale',\n 'wolf',\n 'wren',\n 'yak',\n 'zebra',\n];\n\n/**\n * Generate a random alphanumeric suffix (4 chars)\n */\nfunction randomSuffix(): string {\n const chars = 'abcdefghjkmnpqrstuvwxyz23456789'; // no i,l,o,0,1 to avoid confusion\n let result = '';\n for (let i = 0; i < 4; i++) {\n result += chars[Math.floor(Math.random() * chars.length)];\n }\n return result;\n}\n\n/**\n * Generate a human-readable ID like \"happy-panda-7x3k\"\n */\nexport function generateHumanId(): string {\n const adj = adjectives[Math.floor(Math.random() * adjectives.length)];\n const noun = nouns[Math.floor(Math.random() * nouns.length)];\n const suffix = randomSuffix();\n return `${adj}-${noun}-${suffix}`;\n}\n\n/**\n * Generate a short human-readable ID like \"happy-panda\" (no suffix)\n */\nexport function generateShortHumanId(): string {\n const adj = adjectives[Math.floor(Math.random() * adjectives.length)];\n const noun = nouns[Math.floor(Math.random() * nouns.length)];\n return `${adj}-${noun}`;\n}\n","/**\n * Visor instance ID — unique per process lifetime.\n *\n * Used to identify which visor instance created/owns a task,\n * especially in multi-node environments.\n */\n\nimport { generateHumanId } from './human-id';\n\nlet _instanceId: string | undefined;\n\n/** Get or generate the visor instance ID for this process. */\nexport function getInstanceId(): string {\n if (!_instanceId) {\n _instanceId = generateHumanId();\n }\n return _instanceId;\n}\n","{\n \"name\": \"@probelabs/visor\",\n \"version\": \"0.1.182\",\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 \"@grammyjs/runner\": \"^2.0.3\",\n \"@modelcontextprotocol/sdk\": \"^1.25.3\",\n \"@nyariv/sandboxjs\": \"github:probelabs/SandboxJS#23c4bb611f7d05f3cb8c523917b5f57103e48108\",\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/api-logs\": \"^0.203.0\",\n \"@opentelemetry/core\": \"^1.30.1\",\n \"@opentelemetry/exporter-logs-otlp-http\": \"^0.203.0\",\n \"@opentelemetry/exporter-metrics-otlp-http\": \"^0.203.0\",\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-logs\": \"^0.203.0\",\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-rc300\",\n \"@types/commander\": \"^2.12.0\",\n \"@types/uuid\": \"^10.0.0\",\n \"@utcp/file\": \"^1.1.0\",\n \"@utcp/http\": \"^1.1.0\",\n \"@utcp/sdk\": \"^1.1.0\",\n \"@utcp/text\": \"^1.1.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 \"botbuilder\": \"^4.23.3\",\n \"botframework-connector\": \"^4.23.3\",\n \"cli-table3\": \"^0.6.5\",\n \"commander\": \"^14.0.0\",\n \"deepmerge\": \"^4.3.1\",\n \"dotenv\": \"^17.2.3\",\n \"grammy\": \"^1.41.1\",\n \"ignore\": \"^7.0.5\",\n \"imapflow\": \"^1.2.12\",\n \"js-yaml\": \"^4.1.0\",\n \"jsonpath-plus\": \"^10.4.0\",\n \"liquidjs\": \"^10.21.1\",\n \"mailparser\": \"^3.9.3\",\n \"minimatch\": \"^10.2.2\",\n \"node-cron\": \"^3.0.3\",\n \"nodemailer\": \"^8.0.1\",\n \"open\": \"^9.1.0\",\n \"resend\": \"^6.9.3\",\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/mailparser\": \"^3.4.6\",\n \"@types/node\": \"^24.3.0\",\n \"@types/node-cron\": \"^3.0.11\",\n \"@types/nodemailer\": \"^7.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"],"mappings":"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","names":[]}
|
|
@@ -640,6 +640,10 @@ var init_config_schema = __esm({
|
|
|
640
640
|
task_tracking: {
|
|
641
641
|
type: "boolean",
|
|
642
642
|
description: "Enable cross-frontend task tracking (default: false). When true, all workflow executions (CLI, Slack, TUI, Scheduler) are recorded in a shared SQLite TaskStore visible via `visor tasks`."
|
|
643
|
+
},
|
|
644
|
+
graceful_restart: {
|
|
645
|
+
$ref: "#/definitions/GracefulRestartConfig",
|
|
646
|
+
description: "Graceful restart configuration"
|
|
643
647
|
}
|
|
644
648
|
},
|
|
645
649
|
required: ["version"],
|
|
@@ -1512,7 +1516,7 @@ var init_config_schema = __esm({
|
|
|
1512
1516
|
description: "Arguments/inputs for the workflow"
|
|
1513
1517
|
},
|
|
1514
1518
|
overrides: {
|
|
1515
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-
|
|
1519
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-60281%3E%3E",
|
|
1516
1520
|
description: "Override specific step configurations in the workflow"
|
|
1517
1521
|
},
|
|
1518
1522
|
output_mapping: {
|
|
@@ -1528,7 +1532,7 @@ var init_config_schema = __esm({
|
|
|
1528
1532
|
description: "Config file path - alternative to workflow ID (loads a Visor config file as workflow)"
|
|
1529
1533
|
},
|
|
1530
1534
|
workflow_overrides: {
|
|
1531
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-
|
|
1535
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-60281%3E%3E",
|
|
1532
1536
|
description: "Alias for overrides - workflow step overrides (backward compatibility)"
|
|
1533
1537
|
},
|
|
1534
1538
|
ref: {
|
|
@@ -2256,7 +2260,7 @@ var init_config_schema = __esm({
|
|
|
2256
2260
|
description: "Custom output name (defaults to workflow name)"
|
|
2257
2261
|
},
|
|
2258
2262
|
overrides: {
|
|
2259
|
-
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-
|
|
2263
|
+
$ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-60281%3E%3E",
|
|
2260
2264
|
description: "Step overrides"
|
|
2261
2265
|
},
|
|
2262
2266
|
output_mapping: {
|
|
@@ -2271,13 +2275,13 @@ var init_config_schema = __esm({
|
|
|
2271
2275
|
"^x-": {}
|
|
2272
2276
|
}
|
|
2273
2277
|
},
|
|
2274
|
-
"Record<string,Partial<interface-src_types_config.ts-15521-30601-src_types_config.ts-0-
|
|
2278
|
+
"Record<string,Partial<interface-src_types_config.ts-15521-30601-src_types_config.ts-0-60281>>": {
|
|
2275
2279
|
type: "object",
|
|
2276
2280
|
additionalProperties: {
|
|
2277
|
-
$ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-
|
|
2281
|
+
$ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-15521-30601-src_types_config.ts-0-60281%3E"
|
|
2278
2282
|
}
|
|
2279
2283
|
},
|
|
2280
|
-
"Partial<interface-src_types_config.ts-15521-30601-src_types_config.ts-0-
|
|
2284
|
+
"Partial<interface-src_types_config.ts-15521-30601-src_types_config.ts-0-60281>": {
|
|
2281
2285
|
type: "object",
|
|
2282
2286
|
additionalProperties: false
|
|
2283
2287
|
},
|
|
@@ -4157,6 +4161,32 @@ var init_config_schema = __esm({
|
|
|
4157
4161
|
patternProperties: {
|
|
4158
4162
|
"^x-": {}
|
|
4159
4163
|
}
|
|
4164
|
+
},
|
|
4165
|
+
GracefulRestartConfig: {
|
|
4166
|
+
type: "object",
|
|
4167
|
+
properties: {
|
|
4168
|
+
drain_timeout_ms: {
|
|
4169
|
+
type: "number",
|
|
4170
|
+
description: "Max time in ms to wait for in-flight work to complete. 0 = unlimited (default)."
|
|
4171
|
+
},
|
|
4172
|
+
child_ready_timeout_ms: {
|
|
4173
|
+
type: "number",
|
|
4174
|
+
description: "Max time in ms to wait for the new child process to become ready. Default: 15000."
|
|
4175
|
+
},
|
|
4176
|
+
notify_users: {
|
|
4177
|
+
type: "boolean",
|
|
4178
|
+
description: 'Send "restarting" messages to active conversations. Default: true.'
|
|
4179
|
+
},
|
|
4180
|
+
restart_command: {
|
|
4181
|
+
type: "string",
|
|
4182
|
+
description: "Override the command used to spawn the new process. If not set, auto-detects: npx re-invokes npx, direct execution re-spawns same binary."
|
|
4183
|
+
}
|
|
4184
|
+
},
|
|
4185
|
+
additionalProperties: false,
|
|
4186
|
+
description: "Graceful restart configuration",
|
|
4187
|
+
patternProperties: {
|
|
4188
|
+
"^x-": {}
|
|
4189
|
+
}
|
|
4160
4190
|
}
|
|
4161
4191
|
}
|
|
4162
4192
|
};
|
|
@@ -5873,4 +5903,4 @@ export {
|
|
|
5873
5903
|
config_exports,
|
|
5874
5904
|
init_config
|
|
5875
5905
|
};
|
|
5876
|
-
//# sourceMappingURL=chunk-
|
|
5906
|
+
//# sourceMappingURL=chunk-4I3TJ7UJ.mjs.map
|