@probelabs/visor 0.1.186-ee → 0.1.187-ee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/defaults/assistant.yaml +31 -0
- package/defaults/code-talk.yaml +32 -0
- package/defaults/skills/code-explorer.yaml +6 -0
- package/dist/agent-protocol/task-live-update-slack.d.ts +10 -0
- package/dist/agent-protocol/task-live-update-slack.d.ts.map +1 -1
- package/dist/agent-protocol/task-live-updates.d.ts +10 -0
- package/dist/agent-protocol/task-live-updates.d.ts.map +1 -1
- package/dist/agent-protocol/tasks-cli-handler.d.ts.map +1 -1
- package/dist/agent-protocol/trace-serializer.d.ts +43 -1
- package/dist/agent-protocol/trace-serializer.d.ts.map +1 -1
- package/dist/agent-protocol/track-execution.d.ts.map +1 -1
- package/dist/ai-review-service.d.ts +22 -1
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/cli-main.d.ts +1 -0
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/defaults/assistant.yaml +31 -0
- package/dist/defaults/code-talk.yaml +32 -0
- package/dist/defaults/skills/code-explorer.yaml +6 -0
- package/dist/docs/telemetry-setup.md +18 -2
- package/dist/email/polling-runner.d.ts +1 -0
- package/dist/email/polling-runner.d.ts.map +1 -1
- package/dist/frontends/email-frontend.d.ts.map +1 -1
- package/dist/frontends/slack-frontend.d.ts.map +1 -1
- package/dist/frontends/teams-frontend.d.ts.map +1 -1
- package/dist/frontends/telegram-frontend.d.ts.map +1 -1
- package/dist/frontends/whatsapp-frontend.d.ts.map +1 -1
- package/dist/generated/config-schema.d.ts +16 -8
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7658 -1460
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-check-provider.d.ts.map +1 -1
- package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
- package/dist/providers/script-check-provider.d.ts.map +1 -1
- package/dist/providers/workflow-check-provider.d.ts.map +1 -1
- package/dist/runners/mcp-server-runner.d.ts.map +1 -1
- package/dist/scheduler/scheduler.d.ts.map +1 -1
- package/dist/sdk/a2a-frontend-7EGXSULE.mjs +1751 -0
- package/dist/sdk/a2a-frontend-7EGXSULE.mjs.map +1 -0
- package/dist/sdk/{a2a-frontend-OI4OVSKC.mjs → a2a-frontend-QVKJ7MVW.mjs} +3 -3
- package/dist/sdk/{check-provider-registry-TQR32QBD.mjs → check-provider-registry-IGNTM4MW.mjs} +5 -5
- package/dist/sdk/{check-provider-registry-7T2AEWLU.mjs → check-provider-registry-QUUL6JI2.mjs} +14 -11
- package/dist/sdk/chunk-2LLKENYD.mjs +33 -0
- package/dist/sdk/chunk-2LLKENYD.mjs.map +1 -0
- package/dist/sdk/{chunk-XX6WT332.mjs → chunk-6DDNEBZ7.mjs} +2 -1
- package/dist/sdk/{chunk-XX6WT332.mjs.map → chunk-6DDNEBZ7.mjs.map} +1 -1
- package/dist/sdk/chunk-6LQEODDA.mjs +391 -0
- package/dist/sdk/chunk-6LQEODDA.mjs.map +1 -0
- package/dist/sdk/chunk-77AKSSW2.mjs +175 -0
- package/dist/sdk/chunk-77AKSSW2.mjs.map +1 -0
- package/dist/sdk/chunk-7QI6F66G.mjs +145 -0
- package/dist/sdk/chunk-7QI6F66G.mjs.map +1 -0
- package/dist/sdk/{chunk-UM7LGO2P.mjs → chunk-BBLBZVWC.mjs} +3 -3
- package/dist/sdk/chunk-BVEATT5V.mjs +2495 -0
- package/dist/sdk/chunk-BVEATT5V.mjs.map +1 -0
- package/dist/sdk/{chunk-SRU5TFNY.mjs → chunk-D6O5SCPC.mjs} +2 -1
- package/dist/sdk/{chunk-SRU5TFNY.mjs.map → chunk-D6O5SCPC.mjs.map} +1 -1
- package/dist/sdk/chunk-H2ZWNJJO.mjs +204 -0
- package/dist/sdk/chunk-H2ZWNJJO.mjs.map +1 -0
- package/dist/sdk/{chunk-TAOGXCWT.mjs → chunk-HMVD3AEC.mjs} +16 -16
- package/dist/sdk/{chunk-LWH6CVLZ.mjs → chunk-HQCCT6WP.mjs} +570 -259
- package/dist/sdk/chunk-HQCCT6WP.mjs.map +1 -0
- package/dist/sdk/chunk-HW4MPCOW.mjs +691 -0
- package/dist/sdk/chunk-HW4MPCOW.mjs.map +1 -0
- package/dist/sdk/chunk-PGBV3VZB.mjs +122 -0
- package/dist/sdk/chunk-PGBV3VZB.mjs.map +1 -0
- package/dist/sdk/chunk-PZADRRLX.mjs +739 -0
- package/dist/sdk/chunk-PZADRRLX.mjs.map +1 -0
- package/dist/sdk/chunk-QT766ZLD.mjs +217 -0
- package/dist/sdk/chunk-QT766ZLD.mjs.map +1 -0
- package/dist/sdk/chunk-RQDLVMER.mjs +1507 -0
- package/dist/sdk/chunk-RQDLVMER.mjs.map +1 -0
- package/dist/sdk/chunk-TL3ZTYFY.mjs +141 -0
- package/dist/sdk/chunk-TL3ZTYFY.mjs.map +1 -0
- package/dist/sdk/{chunk-YBXNG75V.mjs → chunk-YTG5DN72.mjs} +103 -28
- package/dist/sdk/chunk-YTG5DN72.mjs.map +1 -0
- package/dist/sdk/chunk-YU3VR5SZ.mjs +749 -0
- package/dist/sdk/chunk-YU3VR5SZ.mjs.map +1 -0
- package/dist/sdk/chunk-ZCBVXBKG.mjs +1150 -0
- package/dist/sdk/chunk-ZCBVXBKG.mjs.map +1 -0
- package/dist/sdk/{config-BCYAVJ5S.mjs → config-BI5ZXG6D.mjs} +2 -2
- package/dist/sdk/{config-TVU5RWR5.mjs → config-H5IOLBFA.mjs} +2 -2
- package/dist/sdk/{dist-PN5UHL6A.mjs → dist-YLO6HUFD.mjs} +238 -65
- package/dist/sdk/dist-YLO6HUFD.mjs.map +1 -0
- package/dist/sdk/{email-frontend-6JU4L33L.mjs → email-frontend-6O454VL5.mjs} +18 -3
- package/dist/sdk/{email-frontend-ECHQCFTR.mjs.map → email-frontend-6O454VL5.mjs.map} +1 -1
- package/dist/sdk/{email-frontend-ECHQCFTR.mjs → email-frontend-JE7H3LBC.mjs} +2 -2
- package/dist/sdk/failure-condition-evaluator-7WHZUYDC.mjs +18 -0
- package/dist/sdk/github-frontend-RGK4DPRI.mjs +1394 -0
- package/dist/sdk/github-frontend-RGK4DPRI.mjs.map +1 -0
- package/dist/sdk/{host-RM6UJEPP.mjs → host-UZESVA6Z.mjs} +8 -8
- package/dist/sdk/{host-OJSMCLKK.mjs → host-YWXWROIE.mjs} +6 -6
- package/dist/sdk/oauth2-token-cache-OS7WHLDI.mjs +13 -0
- package/dist/sdk/{routing-NNQQSLWA.mjs → routing-PHHRW2C7.mjs} +2 -2
- package/dist/sdk/routing-TYXT3STD.mjs +26 -0
- package/dist/sdk/{schedule-tool-7IQI6MID.mjs → schedule-tool-ITD445EO.mjs} +5 -5
- package/dist/sdk/{schedule-tool-25C5NMDG.mjs → schedule-tool-ODMIDBMT.mjs} +14 -11
- package/dist/sdk/{schedule-tool-handler-IYBNJLTV.mjs → schedule-tool-handler-5WPHFBOG.mjs} +5 -5
- package/dist/sdk/{schedule-tool-handler-VWGTVSB6.mjs → schedule-tool-handler-IQSKBFLS.mjs} +14 -11
- package/dist/sdk/schedule-tool-handler-IQSKBFLS.mjs.map +1 -0
- package/dist/sdk/sdk.d.mts +14 -2
- package/dist/sdk/sdk.d.ts +14 -2
- package/dist/sdk/sdk.js +1926 -642
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +13 -10
- package/dist/sdk/sdk.mjs.map +1 -1
- package/dist/sdk/session-registry-CENXWIFR.mjs +12 -0
- package/dist/sdk/session-registry-CENXWIFR.mjs.map +1 -0
- package/dist/sdk/{slack-frontend-K3TPGERM.mjs → slack-frontend-H7PX5GE7.mjs} +2 -2
- package/dist/sdk/slack-frontend-JMX5MUVZ.mjs +1015 -0
- package/dist/sdk/slack-frontend-JMX5MUVZ.mjs.map +1 -0
- package/dist/sdk/task-evaluator-4QG4CYQA.mjs +264 -0
- package/dist/sdk/task-evaluator-4QG4CYQA.mjs.map +1 -0
- package/dist/sdk/teams-frontend-6MDAN7OR.mjs +355 -0
- package/dist/sdk/teams-frontend-6MDAN7OR.mjs.map +1 -0
- package/dist/sdk/{teams-frontend-6RRW533K.mjs → teams-frontend-HCT4MTY4.mjs} +2 -2
- package/dist/sdk/telegram-frontend-NLX2ZHS4.mjs +599 -0
- package/dist/sdk/telegram-frontend-NLX2ZHS4.mjs.map +1 -0
- package/dist/sdk/{telegram-frontend-5UA77YAT.mjs → telegram-frontend-YQRYDKPN.mjs} +2 -2
- package/dist/sdk/trace-helpers-AM2QE5UZ.mjs +31 -0
- package/dist/sdk/trace-helpers-AM2QE5UZ.mjs.map +1 -0
- package/dist/sdk/trace-serializer-4TOIAVQL.mjs +32 -0
- package/dist/sdk/trace-serializer-4TOIAVQL.mjs.map +1 -0
- package/dist/sdk/{track-execution-3CHMGEPH.mjs → track-execution-BULXL2XD.mjs} +2 -2
- package/dist/sdk/track-execution-VJJVJH6K.mjs +320 -0
- package/dist/sdk/track-execution-VJJVJH6K.mjs.map +1 -0
- package/dist/sdk/utcp-check-provider-WDTSQ7DZ.mjs +17 -0
- package/dist/sdk/utcp-check-provider-WDTSQ7DZ.mjs.map +1 -0
- package/dist/sdk/whatsapp-frontend-3EMMNC7R.mjs +451 -0
- package/dist/sdk/whatsapp-frontend-3EMMNC7R.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-FOWDJUO3.mjs → workflow-check-provider-OVZDCL4E.mjs} +5 -5
- package/dist/sdk/workflow-check-provider-OVZDCL4E.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-MRP3C2NC.mjs → workflow-check-provider-XOWQYWTC.mjs} +14 -11
- package/dist/sdk/workflow-check-provider-XOWQYWTC.mjs.map +1 -0
- package/dist/session-registry.d.ts +2 -7
- package/dist/session-registry.d.ts.map +1 -1
- package/dist/slack/client.d.ts +8 -0
- package/dist/slack/client.d.ts.map +1 -1
- package/dist/slack/markdown.d.ts.map +1 -1
- package/dist/slack/slack-output-adapter.d.ts.map +1 -1
- package/dist/slack/socket-runner.d.ts +1 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/state-machine/dispatch/debounce-manager.d.ts +44 -0
- package/dist/state-machine/dispatch/debounce-manager.d.ts.map +1 -0
- package/dist/state-machine/states/level-dispatch.d.ts.map +1 -1
- package/dist/state-machine-execution-engine.d.ts +1 -0
- package/dist/state-machine-execution-engine.d.ts.map +1 -1
- package/dist/teams/webhook-runner.d.ts +1 -0
- package/dist/teams/webhook-runner.d.ts.map +1 -1
- package/dist/telegram/polling-runner.d.ts +1 -0
- package/dist/telegram/polling-runner.d.ts.map +1 -1
- package/dist/types/config.d.ts +14 -2
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/child-process-error-handler.d.ts +19 -0
- package/dist/utils/child-process-error-handler.d.ts.map +1 -0
- package/dist/utils/user-facing-error.d.ts +4 -0
- package/dist/utils/user-facing-error.d.ts.map +1 -0
- package/dist/utils/workspace-manager.d.ts +5 -0
- package/dist/utils/workspace-manager.d.ts.map +1 -1
- package/dist/utils/worktree-cleanup.d.ts +28 -0
- package/dist/utils/worktree-cleanup.d.ts.map +1 -1
- package/dist/utils/worktree-manager.d.ts +6 -0
- package/dist/utils/worktree-manager.d.ts.map +1 -1
- package/dist/whatsapp/webhook-runner.d.ts +1 -0
- package/dist/whatsapp/webhook-runner.d.ts.map +1 -1
- package/dist/workflow-executor.d.ts +7 -0
- package/dist/workflow-executor.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/sdk/chunk-LWH6CVLZ.mjs.map +0 -1
- package/dist/sdk/chunk-YBXNG75V.mjs.map +0 -1
- package/dist/sdk/dist-PN5UHL6A.mjs.map +0 -1
- /package/dist/sdk/{a2a-frontend-OI4OVSKC.mjs.map → a2a-frontend-QVKJ7MVW.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-7T2AEWLU.mjs.map → check-provider-registry-IGNTM4MW.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-TQR32QBD.mjs.map → check-provider-registry-QUUL6JI2.mjs.map} +0 -0
- /package/dist/sdk/{chunk-UM7LGO2P.mjs.map → chunk-BBLBZVWC.mjs.map} +0 -0
- /package/dist/sdk/{chunk-TAOGXCWT.mjs.map → chunk-HMVD3AEC.mjs.map} +0 -0
- /package/dist/sdk/{config-BCYAVJ5S.mjs.map → config-BI5ZXG6D.mjs.map} +0 -0
- /package/dist/sdk/{config-TVU5RWR5.mjs.map → config-H5IOLBFA.mjs.map} +0 -0
- /package/dist/sdk/{email-frontend-6JU4L33L.mjs.map → email-frontend-JE7H3LBC.mjs.map} +0 -0
- /package/dist/sdk/{routing-NNQQSLWA.mjs.map → failure-condition-evaluator-7WHZUYDC.mjs.map} +0 -0
- /package/dist/sdk/{host-OJSMCLKK.mjs.map → host-UZESVA6Z.mjs.map} +0 -0
- /package/dist/sdk/{host-RM6UJEPP.mjs.map → host-YWXWROIE.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-25C5NMDG.mjs.map → oauth2-token-cache-OS7WHLDI.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-7IQI6MID.mjs.map → routing-PHHRW2C7.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-IYBNJLTV.mjs.map → routing-TYXT3STD.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-VWGTVSB6.mjs.map → schedule-tool-ITD445EO.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-FOWDJUO3.mjs.map → schedule-tool-ODMIDBMT.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-MRP3C2NC.mjs.map → schedule-tool-handler-5WPHFBOG.mjs.map} +0 -0
- /package/dist/sdk/{slack-frontend-K3TPGERM.mjs.map → slack-frontend-H7PX5GE7.mjs.map} +0 -0
- /package/dist/sdk/{teams-frontend-6RRW533K.mjs.map → teams-frontend-HCT4MTY4.mjs.map} +0 -0
- /package/dist/sdk/{telegram-frontend-5UA77YAT.mjs.map → telegram-frontend-YQRYDKPN.mjs.map} +0 -0
- /package/dist/sdk/{track-execution-3CHMGEPH.mjs.map → track-execution-BULXL2XD.mjs.map} +0 -0
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import {
|
|
2
|
+
__commonJS,
|
|
3
|
+
__esm
|
|
4
|
+
} from "./chunk-J7LXIPZS.mjs";
|
|
5
|
+
|
|
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)];
|
|
12
|
+
}
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
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}`;
|
|
20
|
+
}
|
|
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}`;
|
|
25
|
+
}
|
|
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
|
+
];
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
// src/utils/instance-id.ts
|
|
144
|
+
function getInstanceId() {
|
|
145
|
+
if (!_instanceId) {
|
|
146
|
+
_instanceId = generateHumanId();
|
|
147
|
+
}
|
|
148
|
+
return _instanceId;
|
|
149
|
+
}
|
|
150
|
+
var _instanceId;
|
|
151
|
+
var init_instance_id = __esm({
|
|
152
|
+
"src/utils/instance-id.ts"() {
|
|
153
|
+
"use strict";
|
|
154
|
+
init_human_id();
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
// package.json
|
|
159
|
+
var require_package = __commonJS({
|
|
160
|
+
"package.json"(exports, module) {
|
|
161
|
+
module.exports = {
|
|
162
|
+
name: "@probelabs/visor",
|
|
163
|
+
version: "0.1.42",
|
|
164
|
+
main: "dist/index.js",
|
|
165
|
+
bin: {
|
|
166
|
+
visor: "./dist/index.js"
|
|
167
|
+
},
|
|
168
|
+
exports: {
|
|
169
|
+
".": {
|
|
170
|
+
require: "./dist/index.js",
|
|
171
|
+
import: "./dist/index.js"
|
|
172
|
+
},
|
|
173
|
+
"./sdk": {
|
|
174
|
+
types: "./dist/sdk/sdk.d.ts",
|
|
175
|
+
import: "./dist/sdk/sdk.mjs",
|
|
176
|
+
require: "./dist/sdk/sdk.js"
|
|
177
|
+
},
|
|
178
|
+
"./cli": {
|
|
179
|
+
require: "./dist/index.js"
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
files: [
|
|
183
|
+
"dist/",
|
|
184
|
+
"defaults/",
|
|
185
|
+
"action.yml",
|
|
186
|
+
"README.md",
|
|
187
|
+
"LICENSE"
|
|
188
|
+
],
|
|
189
|
+
publishConfig: {
|
|
190
|
+
access: "public",
|
|
191
|
+
registry: "https://registry.npmjs.org/"
|
|
192
|
+
},
|
|
193
|
+
scripts: {
|
|
194
|
+
"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",
|
|
195
|
+
"build:sdk": "tsup src/sdk.ts --dts --sourcemap --format esm,cjs --out-dir dist/sdk",
|
|
196
|
+
build: "npm run build:oss",
|
|
197
|
+
"build:oss": "./scripts/build-oss.sh",
|
|
198
|
+
"build:ee": "npm run build:cli && npm run build:sdk",
|
|
199
|
+
test: "jest && npm run test:yaml",
|
|
200
|
+
"test:unit": "jest",
|
|
201
|
+
prepublishOnly: "npm run build",
|
|
202
|
+
"test:watch": "jest --watch",
|
|
203
|
+
"test:coverage": "jest --coverage",
|
|
204
|
+
"test:ee": "jest --testPathPatterns='tests/ee' --testPathIgnorePatterns='/node_modules/' --no-coverage",
|
|
205
|
+
"test:manual:bash": "RUN_MANUAL_TESTS=true jest tests/manual/bash-config-manual.test.ts",
|
|
206
|
+
lint: "eslint src tests --ext .ts",
|
|
207
|
+
"lint:fix": "eslint src tests --ext .ts --fix",
|
|
208
|
+
format: "prettier --write src tests",
|
|
209
|
+
"format:check": "prettier --check src tests",
|
|
210
|
+
clean: "",
|
|
211
|
+
"clean:traces": "node scripts/clean-traces.js",
|
|
212
|
+
prebuild: "npm run clean && node scripts/generate-config-schema.js",
|
|
213
|
+
pretest: "npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli",
|
|
214
|
+
"pretest:unit": "npm run clean:traces && node scripts/generate-config-schema.js && npm run build:cli",
|
|
215
|
+
"test:with-build": "npm run build:cli && jest",
|
|
216
|
+
"test:yaml": "node dist/index.js test --progress compact",
|
|
217
|
+
"test:yaml:parallel": "node dist/index.js test --progress compact --max-parallel 4",
|
|
218
|
+
prepare: "husky",
|
|
219
|
+
"pre-commit": "lint-staged",
|
|
220
|
+
"deploy:site": "cd site && npx wrangler pages deploy . --project-name=visor-site --commit-dirty=true",
|
|
221
|
+
"deploy:worker": "npx wrangler deploy",
|
|
222
|
+
deploy: "npm run deploy:site && npm run deploy:worker",
|
|
223
|
+
"publish:ee": "./scripts/publish-ee.sh",
|
|
224
|
+
release: "./scripts/release.sh",
|
|
225
|
+
"release:patch": "./scripts/release.sh patch",
|
|
226
|
+
"release:minor": "./scripts/release.sh minor",
|
|
227
|
+
"release:major": "./scripts/release.sh major",
|
|
228
|
+
"release:prerelease": "./scripts/release.sh prerelease",
|
|
229
|
+
"docs:validate": "node scripts/validate-readme-links.js",
|
|
230
|
+
"workshop:setup": "npm install -D reveal-md@6.1.2",
|
|
231
|
+
"workshop:serve": "cd workshop && reveal-md slides.md -w",
|
|
232
|
+
"workshop:export": "reveal-md workshop/slides.md --static workshop/build",
|
|
233
|
+
"workshop:pdf": "reveal-md workshop/slides.md --print workshop/Visor-Workshop.pdf --print-size letter",
|
|
234
|
+
"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"',
|
|
235
|
+
"workshop:pdf:a4": "reveal-md workshop/slides.md --print workshop/Visor-Workshop-A4.pdf --print-size A4",
|
|
236
|
+
"workshop:build": "npm run workshop:export && npm run workshop:pdf",
|
|
237
|
+
"simulate:issue": "TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issues --action opened --debug",
|
|
238
|
+
"simulate:comment": "TS_NODE_TRANSPILE_ONLY=1 ts-node scripts/simulate-gh-run.ts --event issue_comment --action created --debug"
|
|
239
|
+
},
|
|
240
|
+
keywords: [
|
|
241
|
+
"code-review",
|
|
242
|
+
"ai",
|
|
243
|
+
"github-action",
|
|
244
|
+
"cli",
|
|
245
|
+
"pr-review",
|
|
246
|
+
"visor"
|
|
247
|
+
],
|
|
248
|
+
author: "Probe Labs",
|
|
249
|
+
license: "MIT",
|
|
250
|
+
description: "AI workflow engine for code review, assistants, and automation \u2014 orchestrate checks, MCP tools, and AI providers with YAML-driven pipelines",
|
|
251
|
+
repository: {
|
|
252
|
+
type: "git",
|
|
253
|
+
url: "git+https://github.com/probelabs/visor.git"
|
|
254
|
+
},
|
|
255
|
+
bugs: {
|
|
256
|
+
url: "https://github.com/probelabs/visor/issues"
|
|
257
|
+
},
|
|
258
|
+
homepage: "https://github.com/probelabs/visor#readme",
|
|
259
|
+
dependencies: {
|
|
260
|
+
"@actions/core": "^1.11.1",
|
|
261
|
+
"@apidevtools/swagger-parser": "^12.1.0",
|
|
262
|
+
"@grammyjs/runner": "^2.0.3",
|
|
263
|
+
"@modelcontextprotocol/sdk": "^1.25.3",
|
|
264
|
+
"@nyariv/sandboxjs": "github:probelabs/SandboxJS#d0d8c8ab3113d3b73e08b79b88a4b834ba3fae11",
|
|
265
|
+
"@octokit/action": "^8.0.2",
|
|
266
|
+
"@octokit/auth-app": "^8.1.0",
|
|
267
|
+
"@octokit/core": "^7.0.3",
|
|
268
|
+
"@octokit/rest": "^22.0.0",
|
|
269
|
+
"@opentelemetry/api": "^1.9.0",
|
|
270
|
+
"@opentelemetry/api-logs": "^0.203.0",
|
|
271
|
+
"@opentelemetry/core": "^1.30.1",
|
|
272
|
+
"@opentelemetry/exporter-logs-otlp-http": "^0.203.0",
|
|
273
|
+
"@opentelemetry/exporter-metrics-otlp-http": "^0.203.0",
|
|
274
|
+
"@opentelemetry/exporter-trace-otlp-grpc": "^0.203.0",
|
|
275
|
+
"@opentelemetry/exporter-trace-otlp-http": "^0.203.0",
|
|
276
|
+
"@opentelemetry/instrumentation": "^0.203.0",
|
|
277
|
+
"@opentelemetry/resources": "^1.30.1",
|
|
278
|
+
"@opentelemetry/sdk-logs": "^0.203.0",
|
|
279
|
+
"@opentelemetry/sdk-metrics": "^1.30.1",
|
|
280
|
+
"@opentelemetry/sdk-node": "^0.203.0",
|
|
281
|
+
"@opentelemetry/sdk-trace-base": "^1.30.1",
|
|
282
|
+
"@opentelemetry/semantic-conventions": "^1.30.1",
|
|
283
|
+
"@probelabs/probe": "^0.6.0-rc318",
|
|
284
|
+
"@types/commander": "^2.12.0",
|
|
285
|
+
"@types/uuid": "^10.0.0",
|
|
286
|
+
"@utcp/file": "^1.1.0",
|
|
287
|
+
"@utcp/http": "^1.1.0",
|
|
288
|
+
"@utcp/sdk": "^1.1.0",
|
|
289
|
+
"@utcp/text": "^1.1.0",
|
|
290
|
+
acorn: "^8.16.0",
|
|
291
|
+
"acorn-walk": "^8.3.5",
|
|
292
|
+
ajv: "^8.17.1",
|
|
293
|
+
"ajv-formats": "^3.0.1",
|
|
294
|
+
"better-sqlite3": "^11.0.0",
|
|
295
|
+
blessed: "^0.1.81",
|
|
296
|
+
botbuilder: "^4.23.3",
|
|
297
|
+
"botframework-connector": "^4.23.3",
|
|
298
|
+
"cli-table3": "^0.6.5",
|
|
299
|
+
commander: "^14.0.0",
|
|
300
|
+
deepmerge: "^4.3.1",
|
|
301
|
+
dotenv: "^17.2.3",
|
|
302
|
+
grammy: "^1.41.1",
|
|
303
|
+
ignore: "^7.0.5",
|
|
304
|
+
imapflow: "^1.2.12",
|
|
305
|
+
"js-yaml": "^4.1.0",
|
|
306
|
+
"jsonpath-plus": "^10.4.0",
|
|
307
|
+
liquidjs: "^10.21.1",
|
|
308
|
+
mailparser: "^3.9.3",
|
|
309
|
+
minimatch: "^10.2.2",
|
|
310
|
+
"node-cron": "^3.0.3",
|
|
311
|
+
nodemailer: "^8.0.1",
|
|
312
|
+
open: "^9.1.0",
|
|
313
|
+
resend: "^6.9.3",
|
|
314
|
+
"simple-git": "^3.28.0",
|
|
315
|
+
uuid: "^11.1.0",
|
|
316
|
+
ws: "^8.18.3"
|
|
317
|
+
},
|
|
318
|
+
optionalDependencies: {
|
|
319
|
+
"@anthropic/claude-code-sdk": "npm:null@*",
|
|
320
|
+
"@open-policy-agent/opa-wasm": "^1.10.0",
|
|
321
|
+
knex: "^3.1.0",
|
|
322
|
+
mysql2: "^3.11.0",
|
|
323
|
+
pg: "^8.13.0",
|
|
324
|
+
tedious: "^19.0.0"
|
|
325
|
+
},
|
|
326
|
+
devDependencies: {
|
|
327
|
+
"@eslint/js": "^9.34.0",
|
|
328
|
+
"@kie/act-js": "^2.6.2",
|
|
329
|
+
"@kie/mock-github": "^2.0.1",
|
|
330
|
+
"@swc/core": "^1.13.2",
|
|
331
|
+
"@swc/jest": "^0.2.37",
|
|
332
|
+
"@types/better-sqlite3": "^7.6.0",
|
|
333
|
+
"@types/blessed": "^0.1.27",
|
|
334
|
+
"@types/jest": "^30.0.0",
|
|
335
|
+
"@types/js-yaml": "^4.0.9",
|
|
336
|
+
"@types/mailparser": "^3.4.6",
|
|
337
|
+
"@types/node": "^24.3.0",
|
|
338
|
+
"@types/node-cron": "^3.0.11",
|
|
339
|
+
"@types/nodemailer": "^7.0.11",
|
|
340
|
+
"@types/ws": "^8.18.1",
|
|
341
|
+
"@typescript-eslint/eslint-plugin": "^8.42.0",
|
|
342
|
+
"@typescript-eslint/parser": "^8.42.0",
|
|
343
|
+
"@vercel/ncc": "^0.38.4",
|
|
344
|
+
eslint: "^9.34.0",
|
|
345
|
+
"eslint-config-prettier": "^10.1.8",
|
|
346
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
347
|
+
husky: "^9.1.7",
|
|
348
|
+
jest: "^30.1.3",
|
|
349
|
+
"lint-staged": "^16.1.6",
|
|
350
|
+
prettier: "^3.6.2",
|
|
351
|
+
"reveal-md": "^6.1.2",
|
|
352
|
+
"ts-json-schema-generator": "^1.5.1",
|
|
353
|
+
"ts-node": "^10.9.2",
|
|
354
|
+
tsup: "^8.5.0",
|
|
355
|
+
typescript: "^5.9.2",
|
|
356
|
+
wrangler: "^3.0.0"
|
|
357
|
+
},
|
|
358
|
+
peerDependenciesMeta: {
|
|
359
|
+
"@anthropic/claude-code-sdk": {
|
|
360
|
+
optional: true
|
|
361
|
+
}
|
|
362
|
+
},
|
|
363
|
+
directories: {
|
|
364
|
+
test: "tests"
|
|
365
|
+
},
|
|
366
|
+
"lint-staged": {
|
|
367
|
+
"src/**/*.{ts,js}": [
|
|
368
|
+
"eslint --fix",
|
|
369
|
+
"prettier --write"
|
|
370
|
+
],
|
|
371
|
+
"tests/**/*.{ts,js}": [
|
|
372
|
+
"eslint --fix",
|
|
373
|
+
"prettier --write"
|
|
374
|
+
],
|
|
375
|
+
"*.{json,md,yml,yaml}": [
|
|
376
|
+
"prettier --write"
|
|
377
|
+
]
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
});
|
|
382
|
+
|
|
383
|
+
export {
|
|
384
|
+
generateHumanId,
|
|
385
|
+
generateShortHumanId,
|
|
386
|
+
init_human_id,
|
|
387
|
+
getInstanceId,
|
|
388
|
+
init_instance_id,
|
|
389
|
+
require_package
|
|
390
|
+
};
|
|
391
|
+
//# sourceMappingURL=chunk-6LQEODDA.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.42\",\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\": \"npm run build:oss\",\n \"build:oss\": \"./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#d0d8c8ab3113d3b73e08b79b88a4b834ba3fae11\",\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-rc318\",\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":[]}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import {
|
|
2
|
+
init_logger,
|
|
3
|
+
logger
|
|
4
|
+
} from "./chunk-6E625R3C.mjs";
|
|
5
|
+
import {
|
|
6
|
+
__esm,
|
|
7
|
+
__export
|
|
8
|
+
} from "./chunk-J7LXIPZS.mjs";
|
|
9
|
+
|
|
10
|
+
// src/session-registry.ts
|
|
11
|
+
var session_registry_exports = {};
|
|
12
|
+
__export(session_registry_exports, {
|
|
13
|
+
SessionRegistry: () => SessionRegistry
|
|
14
|
+
});
|
|
15
|
+
var SessionRegistry;
|
|
16
|
+
var init_session_registry = __esm({
|
|
17
|
+
"src/session-registry.ts"() {
|
|
18
|
+
init_logger();
|
|
19
|
+
SessionRegistry = class _SessionRegistry {
|
|
20
|
+
static instance;
|
|
21
|
+
sessions = /* @__PURE__ */ new Map();
|
|
22
|
+
constructor() {
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get the singleton instance of SessionRegistry
|
|
26
|
+
*/
|
|
27
|
+
static getInstance() {
|
|
28
|
+
if (!_SessionRegistry.instance) {
|
|
29
|
+
_SessionRegistry.instance = new _SessionRegistry();
|
|
30
|
+
}
|
|
31
|
+
return _SessionRegistry.instance;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Register a ProbeAgent session
|
|
35
|
+
*/
|
|
36
|
+
registerSession(sessionId, agent) {
|
|
37
|
+
logger.debug(`[SessionRegistry] Registering AI session: ${sessionId}`);
|
|
38
|
+
this.sessions.set(sessionId, agent);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Get an existing ProbeAgent session
|
|
42
|
+
*/
|
|
43
|
+
getSession(sessionId) {
|
|
44
|
+
const agent = this.sessions.get(sessionId);
|
|
45
|
+
if (agent) {
|
|
46
|
+
logger.debug(`[SessionRegistry] Reusing AI session: ${sessionId}`);
|
|
47
|
+
}
|
|
48
|
+
return agent;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Remove a session from the registry
|
|
52
|
+
*/
|
|
53
|
+
async unregisterSession(sessionId) {
|
|
54
|
+
if (this.sessions.has(sessionId)) {
|
|
55
|
+
const agent = this.sessions.get(sessionId);
|
|
56
|
+
this.sessions.delete(sessionId);
|
|
57
|
+
if (agent && typeof agent.cleanup === "function") {
|
|
58
|
+
try {
|
|
59
|
+
await agent.cleanup();
|
|
60
|
+
} catch (error) {
|
|
61
|
+
logger.warn(
|
|
62
|
+
`[SessionRegistry] Failed to cleanup ProbeAgent session ${sessionId}: ${error}`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Clear all sessions (useful for cleanup)
|
|
70
|
+
*/
|
|
71
|
+
async clearAllSessions() {
|
|
72
|
+
if (this.sessions.size === 0) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
logger.debug(`[SessionRegistry] Clearing all AI sessions (${this.sessions.size} sessions)`);
|
|
76
|
+
const sessions = Array.from(this.sessions.entries());
|
|
77
|
+
this.sessions.clear();
|
|
78
|
+
await Promise.allSettled(
|
|
79
|
+
sessions.map(async ([sessionId, agent]) => {
|
|
80
|
+
if (agent && typeof agent.cleanup === "function") {
|
|
81
|
+
try {
|
|
82
|
+
await agent.cleanup();
|
|
83
|
+
} catch (error) {
|
|
84
|
+
logger.warn(
|
|
85
|
+
`[SessionRegistry] Failed to cleanup ProbeAgent session ${sessionId}: ${error}`
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get all active session IDs
|
|
94
|
+
*/
|
|
95
|
+
getActiveSessionIds() {
|
|
96
|
+
return Array.from(this.sessions.keys());
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Check if a session exists
|
|
100
|
+
*/
|
|
101
|
+
hasSession(sessionId) {
|
|
102
|
+
return this.sessions.has(sessionId);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Clone a session with a new session ID using ProbeAgent's official clone() method
|
|
106
|
+
* This uses ProbeAgent's built-in cloning which automatically handles:
|
|
107
|
+
* - Intelligent filtering of internal messages (schema reminders, tool prompts, etc.)
|
|
108
|
+
* - Preserving system message for cache efficiency
|
|
109
|
+
* - Deep copying conversation history
|
|
110
|
+
* - Copying agent configuration
|
|
111
|
+
*/
|
|
112
|
+
async cloneSession(sourceSessionId, newSessionId, checkName) {
|
|
113
|
+
const sourceAgent = this.sessions.get(sourceSessionId);
|
|
114
|
+
if (!sourceAgent) {
|
|
115
|
+
logger.warn(`[SessionRegistry] Cannot clone session: ${sourceSessionId} not found`);
|
|
116
|
+
return void 0;
|
|
117
|
+
}
|
|
118
|
+
try {
|
|
119
|
+
const clonedAgent = sourceAgent.clone({
|
|
120
|
+
sessionId: newSessionId,
|
|
121
|
+
stripInternalMessages: true,
|
|
122
|
+
// Remove schema reminders, tool prompts, etc.
|
|
123
|
+
keepSystemMessage: true,
|
|
124
|
+
// Keep for cache efficiency
|
|
125
|
+
deepCopy: true
|
|
126
|
+
// Safe deep copy of history
|
|
127
|
+
});
|
|
128
|
+
if (sourceAgent.debug && checkName) {
|
|
129
|
+
try {
|
|
130
|
+
const { initializeTracer } = await import("./tracer-init-XPRWKMZT.mjs");
|
|
131
|
+
const tracerResult = await initializeTracer(newSessionId, checkName);
|
|
132
|
+
if (tracerResult) {
|
|
133
|
+
clonedAgent.tracer = tracerResult.tracer;
|
|
134
|
+
clonedAgent._telemetryConfig = tracerResult.telemetryConfig;
|
|
135
|
+
clonedAgent._traceFilePath = tracerResult.filePath;
|
|
136
|
+
}
|
|
137
|
+
} catch (traceError) {
|
|
138
|
+
logger.warn(
|
|
139
|
+
`[SessionRegistry] Failed to initialize tracing for cloned session ${newSessionId}: ${traceError}`
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (sourceAgent._mcpInitialized && typeof clonedAgent.initialize === "function") {
|
|
144
|
+
try {
|
|
145
|
+
await clonedAgent.initialize();
|
|
146
|
+
logger.debug(
|
|
147
|
+
`[SessionRegistry] Initialized MCP tools for cloned session ${newSessionId}`
|
|
148
|
+
);
|
|
149
|
+
} catch (initError) {
|
|
150
|
+
logger.warn(
|
|
151
|
+
`[SessionRegistry] Failed to initialize cloned agent ${newSessionId}: ${initError}`
|
|
152
|
+
);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
const historyLength = clonedAgent.history?.length || 0;
|
|
156
|
+
logger.debug(
|
|
157
|
+
`[SessionRegistry] Cloned session ${sourceSessionId} -> ${newSessionId} using ProbeAgent.clone() (${historyLength} messages, internal messages filtered)`
|
|
158
|
+
);
|
|
159
|
+
this.registerSession(newSessionId, clonedAgent);
|
|
160
|
+
return clonedAgent;
|
|
161
|
+
} catch (error) {
|
|
162
|
+
logger.warn(`[SessionRegistry] Failed to clone session ${sourceSessionId}: ${error}`);
|
|
163
|
+
return void 0;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
export {
|
|
171
|
+
SessionRegistry,
|
|
172
|
+
session_registry_exports,
|
|
173
|
+
init_session_registry
|
|
174
|
+
};
|
|
175
|
+
//# sourceMappingURL=chunk-77AKSSW2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/session-registry.ts"],"sourcesContent":["import { ProbeAgent } from '@probelabs/probe';\nimport { logger } from './logger';\n\n/**\n * Extended ProbeAgent interface that includes tracing properties\n */\ninterface TracedProbeAgent extends ProbeAgent {\n tracer?: any; // AppTracer removed from probe\n _telemetryConfig?: any; // TelemetryConfig removed from probe\n _traceFilePath?: string;\n}\n\n/**\n * Registry to manage active ProbeAgent sessions for session reuse\n */\nexport class SessionRegistry {\n private static instance: SessionRegistry;\n private sessions: Map<string, TracedProbeAgent> = new Map();\n\n private constructor() {}\n\n /**\n * Get the singleton instance of SessionRegistry\n */\n public static getInstance(): SessionRegistry {\n if (!SessionRegistry.instance) {\n SessionRegistry.instance = new SessionRegistry();\n }\n return SessionRegistry.instance;\n }\n\n /**\n * Register a ProbeAgent session\n */\n public registerSession(sessionId: string, agent: TracedProbeAgent): void {\n logger.debug(`[SessionRegistry] Registering AI session: ${sessionId}`);\n this.sessions.set(sessionId, agent);\n }\n\n /**\n * Get an existing ProbeAgent session\n */\n public getSession(sessionId: string): TracedProbeAgent | undefined {\n const agent = this.sessions.get(sessionId);\n if (agent) {\n logger.debug(`[SessionRegistry] Reusing AI session: ${sessionId}`);\n }\n return agent;\n }\n\n /**\n * Remove a session from the registry\n */\n public async unregisterSession(sessionId: string): Promise<void> {\n if (this.sessions.has(sessionId)) {\n const agent = this.sessions.get(sessionId);\n this.sessions.delete(sessionId);\n\n // Cleanup the ProbeAgent instance to prevent hanging processes\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (agent && typeof (agent as any).cleanup === 'function') {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await (agent as any).cleanup();\n } catch (error) {\n logger.warn(\n `[SessionRegistry] Failed to cleanup ProbeAgent session ${sessionId}: ${error}`\n );\n }\n }\n }\n }\n\n /**\n * Clear all sessions (useful for cleanup)\n */\n public async clearAllSessions(): Promise<void> {\n if (this.sessions.size === 0) {\n return;\n }\n\n logger.debug(`[SessionRegistry] Clearing all AI sessions (${this.sessions.size} sessions)`);\n\n // Cleanup each ProbeAgent instance before clearing\n const sessions = Array.from(this.sessions.entries());\n this.sessions.clear();\n\n await Promise.allSettled(\n sessions.map(async ([sessionId, agent]) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (agent && typeof (agent as any).cleanup === 'function') {\n try {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await (agent as any).cleanup();\n } catch (error) {\n logger.warn(\n `[SessionRegistry] Failed to cleanup ProbeAgent session ${sessionId}: ${error}`\n );\n }\n }\n })\n );\n }\n\n /**\n * Get all active session IDs\n */\n public getActiveSessionIds(): string[] {\n return Array.from(this.sessions.keys());\n }\n\n /**\n * Check if a session exists\n */\n public hasSession(sessionId: string): boolean {\n return this.sessions.has(sessionId);\n }\n\n /**\n * Clone a session with a new session ID using ProbeAgent's official clone() method\n * This uses ProbeAgent's built-in cloning which automatically handles:\n * - Intelligent filtering of internal messages (schema reminders, tool prompts, etc.)\n * - Preserving system message for cache efficiency\n * - Deep copying conversation history\n * - Copying agent configuration\n */\n public async cloneSession(\n sourceSessionId: string,\n newSessionId: string,\n checkName?: string\n ): Promise<ProbeAgent | undefined> {\n const sourceAgent = this.sessions.get(sourceSessionId);\n if (!sourceAgent) {\n logger.warn(`[SessionRegistry] Cannot clone session: ${sourceSessionId} not found`);\n return undefined;\n }\n\n try {\n // Use ProbeAgent's official clone() method with options\n // This handles intelligent message filtering automatically\n const clonedAgent = (sourceAgent as any).clone({\n sessionId: newSessionId,\n stripInternalMessages: true, // Remove schema reminders, tool prompts, etc.\n keepSystemMessage: true, // Keep for cache efficiency\n deepCopy: true, // Safe deep copy of history\n }) as TracedProbeAgent;\n\n // Set up tracing for cloned session if debug mode is enabled\n if ((sourceAgent as any).debug && checkName) {\n try {\n const { initializeTracer } = await import('./utils/tracer-init');\n const tracerResult = await initializeTracer(newSessionId, checkName);\n if (tracerResult) {\n clonedAgent.tracer = tracerResult.tracer;\n // Store telemetry config and trace file path for proper shutdown\n clonedAgent._telemetryConfig = tracerResult.telemetryConfig;\n clonedAgent._traceFilePath = tracerResult.filePath;\n }\n } catch (traceError) {\n logger.warn(\n `[SessionRegistry] Failed to initialize tracing for cloned session ${newSessionId}: ${traceError}`\n );\n }\n }\n\n // Initialize MCP tools if the source agent had them initialized\n if (\n (sourceAgent as any)._mcpInitialized &&\n typeof (clonedAgent as any).initialize === 'function'\n ) {\n try {\n await (clonedAgent as any).initialize();\n logger.debug(\n `[SessionRegistry] Initialized MCP tools for cloned session ${newSessionId}`\n );\n } catch (initError) {\n logger.warn(\n `[SessionRegistry] Failed to initialize cloned agent ${newSessionId}: ${initError}`\n );\n }\n }\n\n // Get history length for logging\n const historyLength = (clonedAgent as any).history?.length || 0;\n\n logger.debug(\n `[SessionRegistry] Cloned session ${sourceSessionId} -> ${newSessionId} using ProbeAgent.clone() (${historyLength} messages, internal messages filtered)`\n );\n\n // Register the cloned session\n this.registerSession(newSessionId, clonedAgent);\n\n return clonedAgent;\n } catch (error) {\n logger.warn(`[SessionRegistry] Failed to clone session ${sourceSessionId}: ${error}`);\n return undefined;\n }\n }\n}\n"],"mappings":"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","names":[]}
|