@probelabs/visor 0.1.149 → 0.1.150-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/README.md +52 -1
- package/dist/909.index.js +27117 -0
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/docs/assistant-workflows.md +805 -0
- package/dist/docs/event-triggers.md +25 -0
- package/dist/docs/scheduler.md +156 -0
- package/dist/docs/slack-integration.md +48 -0
- package/dist/enterprise/scheduler/knex-store.d.ts +7 -1
- package/dist/enterprise/scheduler/knex-store.d.ts.map +1 -1
- package/dist/examples/code-talk-as-tool.yaml +76 -0
- package/dist/examples/code-talk-workflow.yaml +68 -0
- package/dist/examples/intent-router-workflow.yaml +66 -0
- package/dist/examples/slack-message-triggers.yaml +270 -0
- package/dist/generated/config-schema.d.ts +102 -7
- package/dist/generated/config-schema.d.ts.map +1 -1
- package/dist/generated/config-schema.json +116 -7
- package/dist/git-repository-analyzer.d.ts +8 -0
- package/dist/git-repository-analyzer.d.ts.map +1 -1
- package/dist/index.js +5868 -4756
- package/dist/scheduler/message-trigger.d.ts +47 -0
- package/dist/scheduler/message-trigger.d.ts.map +1 -0
- package/dist/scheduler/schedule-store.d.ts +31 -1
- package/dist/scheduler/schedule-store.d.ts.map +1 -1
- package/dist/scheduler/schedule-tool.d.ts +17 -1
- package/dist/scheduler/schedule-tool.d.ts.map +1 -1
- package/dist/scheduler/store/sqlite-store.d.ts +7 -1
- package/dist/scheduler/store/sqlite-store.d.ts.map +1 -1
- package/dist/scheduler/store/types.d.ts +45 -0
- package/dist/scheduler/store/types.d.ts.map +1 -1
- package/dist/sdk/{check-provider-registry-LVLC4EPF.mjs → check-provider-registry-RRYBG6AU.mjs} +6 -6
- package/dist/sdk/{check-provider-registry-X4OZJWPK.mjs → check-provider-registry-VHM53BTI.mjs} +6 -6
- package/dist/sdk/{chunk-V6GI4U2M.mjs → chunk-AADKUA6L.mjs} +585 -29
- package/dist/sdk/{chunk-6EXCUX7Y.mjs.map → chunk-AADKUA6L.mjs.map} +1 -1
- package/dist/sdk/{chunk-YYZAN5NK.mjs → chunk-FYK2DJK6.mjs} +106 -9
- package/dist/sdk/chunk-FYK2DJK6.mjs.map +1 -0
- package/dist/sdk/{chunk-RJLJUTSU.mjs → chunk-FZEQ744M.mjs} +2 -2
- package/dist/sdk/{chunk-Q6EPAJ6Z.mjs → chunk-GLROSEYJ.mjs} +3 -3
- package/dist/sdk/{chunk-6EXCUX7Y.mjs → chunk-O4H5KZ7Y.mjs} +586 -30
- package/dist/sdk/{chunk-GFNXX64M.mjs.map → chunk-O4H5KZ7Y.mjs.map} +1 -1
- package/dist/sdk/{chunk-62TNF5PJ.mjs → chunk-PETLPNRA.mjs} +2 -2
- package/dist/sdk/{chunk-62TNF5PJ.mjs.map → chunk-PETLPNRA.mjs.map} +1 -1
- package/dist/sdk/{config-KQH254CA.mjs → config-MTEIGCOQ.mjs} +2 -2
- package/dist/sdk/{failure-condition-evaluator-IVCTD4BZ.mjs → failure-condition-evaluator-XV2ZMFFY.mjs} +3 -3
- package/dist/sdk/{git-repository-analyzer-QFMW6WIS.mjs → git-repository-analyzer-TWNJUN42.mjs} +34 -3
- package/dist/sdk/git-repository-analyzer-TWNJUN42.mjs.map +1 -0
- package/dist/sdk/{github-frontend-DFT5G32K.mjs → github-frontend-A2R7D4N6.mjs} +3 -3
- package/dist/sdk/{host-7YKRMOUJ.mjs → host-BRZQLVCH.mjs} +2 -2
- package/dist/sdk/{host-H7IX4GBK.mjs → host-MR7L57QI.mjs} +2 -2
- package/dist/sdk/knex-store-CRORFJE6.mjs +527 -0
- package/dist/sdk/knex-store-CRORFJE6.mjs.map +1 -0
- package/dist/sdk/loader-NJCF7DUS.mjs +89 -0
- package/dist/sdk/loader-NJCF7DUS.mjs.map +1 -0
- package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs +655 -0
- package/dist/sdk/opa-policy-engine-S2S2ULEI.mjs.map +1 -0
- package/dist/sdk/{routing-LU5PAREW.mjs → routing-V3MYZAOH.mjs} +4 -4
- package/dist/sdk/{schedule-tool-EOMZFICZ.mjs → schedule-tool-4QDBJV74.mjs} +6 -6
- package/dist/sdk/{schedule-tool-NX75VKGA.mjs → schedule-tool-NYLNJUEW.mjs} +6 -6
- package/dist/sdk/{schedule-tool-handler-3FJHDIPG.mjs → schedule-tool-handler-27XEVLSY.mjs} +6 -6
- package/dist/sdk/{schedule-tool-handler-KKN7XJYT.mjs → schedule-tool-handler-EFQIYD3W.mjs} +6 -6
- package/dist/sdk/sdk.d.mts +38 -1
- package/dist/sdk/sdk.d.ts +38 -1
- package/dist/sdk/sdk.js +2338 -280
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +5 -5
- package/dist/sdk/{trace-helpers-EJUIOP6L.mjs → trace-helpers-6NSZBC35.mjs} +2 -2
- package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
- package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
- package/dist/sdk/{workflow-check-provider-AGZ5JY2I.mjs → workflow-check-provider-3MVUCEJR.mjs} +6 -6
- package/dist/sdk/{workflow-check-provider-PTNUWM5W.mjs → workflow-check-provider-XLH7N4FV.mjs} +6 -6
- package/dist/slack/socket-runner.d.ts +14 -0
- package/dist/slack/socket-runner.d.ts.map +1 -1
- package/dist/test-runner/core/flow-stage.d.ts.map +1 -1
- package/dist/test-runner/fixture-loader.d.ts +1 -1
- package/dist/test-runner/fixture-loader.d.ts.map +1 -1
- package/dist/test-runner/index.d.ts.map +1 -1
- package/dist/test-runner/validator.d.ts.map +1 -1
- package/dist/types/config.d.ts +38 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/utils/workspace-manager.d.ts +4 -0
- package/dist/utils/workspace-manager.d.ts.map +1 -1
- package/dist/utils/worktree-manager.d.ts +15 -1
- package/dist/utils/worktree-manager.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/output/traces/run-2026-03-03T07-19-07-543Z.ndjson +0 -138
- package/dist/output/traces/run-2026-03-03T07-19-50-933Z.ndjson +0 -2121
- package/dist/sdk/check-provider-registry-IYSUDKPB.mjs +0 -29
- package/dist/sdk/chunk-BR7DYA3S.mjs +0 -739
- package/dist/sdk/chunk-CISJ6DJW.mjs +0 -1502
- package/dist/sdk/chunk-GFNXX64M.mjs +0 -43159
- package/dist/sdk/chunk-Q6EPAJ6Z.mjs.map +0 -1
- package/dist/sdk/chunk-RJLJUTSU.mjs.map +0 -1
- package/dist/sdk/chunk-V6GI4U2M.mjs.map +0 -1
- package/dist/sdk/chunk-VLUGLWLA.mjs +0 -443
- package/dist/sdk/chunk-VLUGLWLA.mjs.map +0 -1
- package/dist/sdk/chunk-YYZAN5NK.mjs.map +0 -1
- package/dist/sdk/failure-condition-evaluator-LZ2AG5PY.mjs +0 -17
- package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs.map +0 -1
- package/dist/sdk/github-frontend-S523EEJB.mjs +0 -1368
- package/dist/sdk/github-frontend-S523EEJB.mjs.map +0 -1
- package/dist/sdk/routing-ZMBKWMVI.mjs +0 -25
- package/dist/sdk/schedule-tool-CDVUSZEG.mjs +0 -35
- package/dist/sdk/schedule-tool-handler-KKN7XJYT.mjs.map +0 -1
- package/dist/sdk/schedule-tool-handler-QNZG55DX.mjs +0 -39
- package/dist/sdk/schedule-tool-handler-QNZG55DX.mjs.map +0 -1
- package/dist/sdk/trace-helpers-6ROJR7N3.mjs +0 -25
- package/dist/sdk/trace-helpers-6ROJR7N3.mjs.map +0 -1
- package/dist/sdk/trace-helpers-EJUIOP6L.mjs.map +0 -1
- package/dist/sdk/workflow-check-provider-6ERNNCNA.mjs +0 -29
- package/dist/sdk/workflow-check-provider-6ERNNCNA.mjs.map +0 -1
- package/dist/sdk/workflow-check-provider-AGZ5JY2I.mjs.map +0 -1
- package/dist/sdk/workflow-check-provider-PTNUWM5W.mjs.map +0 -1
- package/dist/traces/run-2026-03-03T07-19-07-543Z.ndjson +0 -138
- package/dist/traces/run-2026-03-03T07-19-50-933Z.ndjson +0 -2121
- /package/dist/sdk/{check-provider-registry-IYSUDKPB.mjs.map → check-provider-registry-RRYBG6AU.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-LVLC4EPF.mjs.map → check-provider-registry-VHM53BTI.mjs.map} +0 -0
- /package/dist/sdk/{chunk-BR7DYA3S.mjs.map → chunk-FZEQ744M.mjs.map} +0 -0
- /package/dist/sdk/{chunk-CISJ6DJW.mjs.map → chunk-GLROSEYJ.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-X4OZJWPK.mjs.map → config-MTEIGCOQ.mjs.map} +0 -0
- /package/dist/sdk/{config-KQH254CA.mjs.map → failure-condition-evaluator-XV2ZMFFY.mjs.map} +0 -0
- /package/dist/sdk/{github-frontend-DFT5G32K.mjs.map → github-frontend-A2R7D4N6.mjs.map} +0 -0
- /package/dist/sdk/{host-7YKRMOUJ.mjs.map → host-BRZQLVCH.mjs.map} +0 -0
- /package/dist/sdk/{host-H7IX4GBK.mjs.map → host-MR7L57QI.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-IVCTD4BZ.mjs.map → routing-V3MYZAOH.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-LZ2AG5PY.mjs.map → schedule-tool-4QDBJV74.mjs.map} +0 -0
- /package/dist/sdk/{routing-LU5PAREW.mjs.map → schedule-tool-NYLNJUEW.mjs.map} +0 -0
- /package/dist/sdk/{routing-ZMBKWMVI.mjs.map → schedule-tool-handler-27XEVLSY.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-CDVUSZEG.mjs.map → schedule-tool-handler-EFQIYD3W.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-EOMZFICZ.mjs.map → trace-helpers-6NSZBC35.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-NX75VKGA.mjs.map → workflow-check-provider-3MVUCEJR.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-3FJHDIPG.mjs.map → workflow-check-provider-XLH7N4FV.mjs.map} +0 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# Slack Message Triggers — event-driven workflows from Slack messages
|
|
2
|
+
#
|
|
3
|
+
# This example shows how to build workflows that fire in response to
|
|
4
|
+
# Slack messages matching specific patterns (channels, keywords, bots).
|
|
5
|
+
#
|
|
6
|
+
# Message triggers can be defined statically in config (scheduler.on_message)
|
|
7
|
+
# or created dynamically at runtime via the AI schedule tool:
|
|
8
|
+
#
|
|
9
|
+
# "watch #cicd for messages containing 'failed' and run handle-cicd"
|
|
10
|
+
# "list my message triggers"
|
|
11
|
+
# "delete trigger abc123"
|
|
12
|
+
#
|
|
13
|
+
# ASCII Flow Overview
|
|
14
|
+
# ====================
|
|
15
|
+
#
|
|
16
|
+
# Slack message arrives
|
|
17
|
+
# │
|
|
18
|
+
# ▼
|
|
19
|
+
# MessageTriggerEvaluator
|
|
20
|
+
# ├── channels match?
|
|
21
|
+
# ├── keyword/regex match?
|
|
22
|
+
# ├── bot filter?
|
|
23
|
+
# └── thread scope?
|
|
24
|
+
# │
|
|
25
|
+
# ▼ (matched)
|
|
26
|
+
# Workflow executes with slack.event context
|
|
27
|
+
# │
|
|
28
|
+
# ├─ alert-triage (AI: summarize + classify)
|
|
29
|
+
# │
|
|
30
|
+
# └─ cicd-responder (AI: suggest fix)
|
|
31
|
+
#
|
|
32
|
+
|
|
33
|
+
version: "1.0"
|
|
34
|
+
|
|
35
|
+
# Static message trigger config (usually under scheduler.on_message in .visor.yaml)
|
|
36
|
+
# These define patterns that route incoming Slack messages to workflows.
|
|
37
|
+
#
|
|
38
|
+
# scheduler:
|
|
39
|
+
# on_message:
|
|
40
|
+
# cicd-watcher:
|
|
41
|
+
# channels: ["C0CICD"]
|
|
42
|
+
# contains: ["failed", "error"]
|
|
43
|
+
# from_bots: true
|
|
44
|
+
# workflow: handle-cicd-failure
|
|
45
|
+
# security-alert:
|
|
46
|
+
# channels: ["C0SECURITY"]
|
|
47
|
+
# match: "CVE-\\d{4}-\\d+"
|
|
48
|
+
# workflow: triage-security
|
|
49
|
+
# inputs:
|
|
50
|
+
# severity: high
|
|
51
|
+
|
|
52
|
+
# Workflows that fire on slack_message events.
|
|
53
|
+
# In production these are invoked by the trigger evaluator;
|
|
54
|
+
# in tests we simulate the event via fixture or inline payload.
|
|
55
|
+
|
|
56
|
+
checks:
|
|
57
|
+
# Triage incoming alerts — summarize and classify severity
|
|
58
|
+
alert-triage:
|
|
59
|
+
type: ai
|
|
60
|
+
on: [slack_message]
|
|
61
|
+
prompt: |
|
|
62
|
+
A Slack message was received that matched a monitoring trigger.
|
|
63
|
+
Analyze the message and provide a structured triage response.
|
|
64
|
+
|
|
65
|
+
Channel: {{ slack.event.channel }}
|
|
66
|
+
Message: {{ slack.event.text }}
|
|
67
|
+
|
|
68
|
+
Classify the alert severity and recommend immediate actions.
|
|
69
|
+
schema:
|
|
70
|
+
type: object
|
|
71
|
+
properties:
|
|
72
|
+
severity:
|
|
73
|
+
type: string
|
|
74
|
+
enum: [critical, high, medium, low]
|
|
75
|
+
summary:
|
|
76
|
+
type: string
|
|
77
|
+
actions:
|
|
78
|
+
type: array
|
|
79
|
+
items:
|
|
80
|
+
type: string
|
|
81
|
+
required: [severity, summary]
|
|
82
|
+
|
|
83
|
+
# CI/CD failure responder — analyze build failures
|
|
84
|
+
cicd-responder:
|
|
85
|
+
type: ai
|
|
86
|
+
on: [slack_message]
|
|
87
|
+
depends_on: [alert-triage]
|
|
88
|
+
prompt: |
|
|
89
|
+
A CI/CD notification was received. Based on the triage:
|
|
90
|
+
Severity: {{ outputs['alert-triage'].severity }}
|
|
91
|
+
Summary: {{ outputs['alert-triage'].summary }}
|
|
92
|
+
|
|
93
|
+
Original message: {{ slack.event.text }}
|
|
94
|
+
|
|
95
|
+
Suggest concrete next steps to resolve the failure.
|
|
96
|
+
schema:
|
|
97
|
+
type: object
|
|
98
|
+
properties:
|
|
99
|
+
diagnosis:
|
|
100
|
+
type: string
|
|
101
|
+
fix_steps:
|
|
102
|
+
type: array
|
|
103
|
+
items:
|
|
104
|
+
type: string
|
|
105
|
+
escalate:
|
|
106
|
+
type: boolean
|
|
107
|
+
required: [diagnosis, fix_steps]
|
|
108
|
+
|
|
109
|
+
# A PR-only check to verify event filtering works correctly
|
|
110
|
+
pr-review:
|
|
111
|
+
type: ai
|
|
112
|
+
on: [pr_opened]
|
|
113
|
+
prompt: "Review the PR changes."
|
|
114
|
+
schema: text
|
|
115
|
+
|
|
116
|
+
# ─────────────────────────────────────────────────────────────
|
|
117
|
+
# Embedded tests
|
|
118
|
+
# ─────────────────────────────────────────────────────────────
|
|
119
|
+
tests:
|
|
120
|
+
defaults:
|
|
121
|
+
strict: false
|
|
122
|
+
ai_provider: mock
|
|
123
|
+
|
|
124
|
+
cases:
|
|
125
|
+
# 1. Simple Slack message via built-in fixture
|
|
126
|
+
- name: simple-message-fixture
|
|
127
|
+
event: slack_message
|
|
128
|
+
fixture: slack.message.simple
|
|
129
|
+
mocks:
|
|
130
|
+
alert-triage:
|
|
131
|
+
severity: high
|
|
132
|
+
summary: "Build #42 failed in CI pipeline"
|
|
133
|
+
actions: ["Check build logs", "Retry pipeline"]
|
|
134
|
+
cicd-responder:
|
|
135
|
+
diagnosis: "Test suite timeout in integration tests"
|
|
136
|
+
fix_steps: ["Increase timeout", "Fix flaky test"]
|
|
137
|
+
escalate: false
|
|
138
|
+
expect:
|
|
139
|
+
calls:
|
|
140
|
+
- step: alert-triage
|
|
141
|
+
exactly: 1
|
|
142
|
+
- step: cicd-responder
|
|
143
|
+
exactly: 1
|
|
144
|
+
|
|
145
|
+
# 2. Bot message via fixture (e.g., Jenkins or CI bot)
|
|
146
|
+
- name: bot-message-fixture
|
|
147
|
+
event: slack_message
|
|
148
|
+
fixture: slack.message.bot
|
|
149
|
+
mocks:
|
|
150
|
+
alert-triage:
|
|
151
|
+
severity: critical
|
|
152
|
+
summary: "Production deploy failed"
|
|
153
|
+
actions: ["Rollback immediately", "Notify on-call"]
|
|
154
|
+
cicd-responder:
|
|
155
|
+
diagnosis: "Docker image build failed — missing dependency"
|
|
156
|
+
fix_steps: ["Update Dockerfile", "Rebuild image"]
|
|
157
|
+
escalate: true
|
|
158
|
+
expect:
|
|
159
|
+
calls:
|
|
160
|
+
- step: alert-triage
|
|
161
|
+
exactly: 1
|
|
162
|
+
- step: cicd-responder
|
|
163
|
+
exactly: 1
|
|
164
|
+
|
|
165
|
+
# 3. Thread reply via fixture
|
|
166
|
+
- name: thread-reply-fixture
|
|
167
|
+
event: slack_message
|
|
168
|
+
fixture: slack.message.thread
|
|
169
|
+
mocks:
|
|
170
|
+
alert-triage:
|
|
171
|
+
severity: low
|
|
172
|
+
summary: "Thread follow-up with error details"
|
|
173
|
+
cicd-responder:
|
|
174
|
+
diagnosis: "Additional context from thread"
|
|
175
|
+
fix_steps: ["Review thread context"]
|
|
176
|
+
escalate: false
|
|
177
|
+
expect:
|
|
178
|
+
calls:
|
|
179
|
+
- step: alert-triage
|
|
180
|
+
exactly: 1
|
|
181
|
+
|
|
182
|
+
# 4. Inline Slack message payload (no fixture needed)
|
|
183
|
+
- name: inline-critical-alert
|
|
184
|
+
event: slack_message
|
|
185
|
+
slack_message:
|
|
186
|
+
channel: C0ALERTS
|
|
187
|
+
user: U_OPS
|
|
188
|
+
text: "CRITICAL: database connection pool exhausted"
|
|
189
|
+
ts: "2000.001"
|
|
190
|
+
mocks:
|
|
191
|
+
alert-triage:
|
|
192
|
+
severity: critical
|
|
193
|
+
summary: "Database connection pool exhausted"
|
|
194
|
+
actions: ["Scale pool", "Check for connection leaks"]
|
|
195
|
+
cicd-responder:
|
|
196
|
+
diagnosis: "Connection leak in auth service"
|
|
197
|
+
fix_steps: ["Deploy connection pool fix", "Restart auth pods"]
|
|
198
|
+
escalate: true
|
|
199
|
+
expect:
|
|
200
|
+
calls:
|
|
201
|
+
- step: alert-triage
|
|
202
|
+
exactly: 1
|
|
203
|
+
- step: cicd-responder
|
|
204
|
+
exactly: 1
|
|
205
|
+
|
|
206
|
+
# 5. Inline message in a thread
|
|
207
|
+
- name: inline-thread-update
|
|
208
|
+
event: slack_message
|
|
209
|
+
slack_message:
|
|
210
|
+
channel: C0INCIDENTS
|
|
211
|
+
user: U_ONCALL
|
|
212
|
+
text: "Update: hotfix deployed, monitoring recovery"
|
|
213
|
+
ts: "2000.004"
|
|
214
|
+
thread_ts: "2000.001"
|
|
215
|
+
mocks:
|
|
216
|
+
alert-triage:
|
|
217
|
+
severity: low
|
|
218
|
+
summary: "Hotfix deployed — incident resolving"
|
|
219
|
+
cicd-responder:
|
|
220
|
+
diagnosis: "Hotfix applied successfully"
|
|
221
|
+
fix_steps: ["Continue monitoring"]
|
|
222
|
+
escalate: false
|
|
223
|
+
expect:
|
|
224
|
+
calls:
|
|
225
|
+
- step: alert-triage
|
|
226
|
+
exactly: 1
|
|
227
|
+
|
|
228
|
+
# 6. Inline bot message (CI system notification)
|
|
229
|
+
- name: inline-ci-bot-failure
|
|
230
|
+
event: slack_message
|
|
231
|
+
slack_message:
|
|
232
|
+
channel: C0CICD
|
|
233
|
+
user: B_JENKINS
|
|
234
|
+
text: "Build #99 FAILED — test suite timeout after 30m"
|
|
235
|
+
ts: "2000.005"
|
|
236
|
+
is_bot: true
|
|
237
|
+
mocks:
|
|
238
|
+
alert-triage:
|
|
239
|
+
severity: high
|
|
240
|
+
summary: "Jenkins build timeout"
|
|
241
|
+
actions: ["Check test logs", "Increase timeout"]
|
|
242
|
+
cicd-responder:
|
|
243
|
+
diagnosis: "Flaky integration test causing timeout"
|
|
244
|
+
fix_steps: ["Quarantine flaky test", "Increase timeout to 45m"]
|
|
245
|
+
escalate: false
|
|
246
|
+
expect:
|
|
247
|
+
calls:
|
|
248
|
+
- step: alert-triage
|
|
249
|
+
exactly: 1
|
|
250
|
+
- step: cicd-responder
|
|
251
|
+
exactly: 1
|
|
252
|
+
|
|
253
|
+
# 7. PR-only check must NOT fire on slack_message events
|
|
254
|
+
- name: event-filtering
|
|
255
|
+
event: slack_message
|
|
256
|
+
fixture: slack.message.simple
|
|
257
|
+
mocks:
|
|
258
|
+
alert-triage:
|
|
259
|
+
severity: medium
|
|
260
|
+
summary: "Alert processed"
|
|
261
|
+
cicd-responder:
|
|
262
|
+
diagnosis: "Handled"
|
|
263
|
+
fix_steps: []
|
|
264
|
+
escalate: false
|
|
265
|
+
expect:
|
|
266
|
+
calls:
|
|
267
|
+
- step: alert-triage
|
|
268
|
+
exactly: 1
|
|
269
|
+
- step: pr-review
|
|
270
|
+
exactly: 0
|
|
@@ -875,7 +875,7 @@ export declare const configSchema: {
|
|
|
875
875
|
readonly description: "Arguments/inputs for the workflow";
|
|
876
876
|
};
|
|
877
877
|
readonly overrides: {
|
|
878
|
-
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
878
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E%3E";
|
|
879
879
|
readonly description: "Override specific step configurations in the workflow";
|
|
880
880
|
};
|
|
881
881
|
readonly output_mapping: {
|
|
@@ -891,7 +891,7 @@ export declare const configSchema: {
|
|
|
891
891
|
readonly description: "Config file path - alternative to workflow ID (loads a Visor config file as workflow)";
|
|
892
892
|
};
|
|
893
893
|
readonly workflow_overrides: {
|
|
894
|
-
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
894
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E%3E";
|
|
895
895
|
readonly description: "Alias for overrides - workflow step overrides (backward compatibility)";
|
|
896
896
|
};
|
|
897
897
|
readonly ref: {
|
|
@@ -1046,7 +1046,7 @@ export declare const configSchema: {
|
|
|
1046
1046
|
};
|
|
1047
1047
|
readonly EventTrigger: {
|
|
1048
1048
|
readonly type: "string";
|
|
1049
|
-
readonly enum: readonly ["pr_opened", "pr_updated", "pr_closed", "issue_opened", "issue_comment", "manual", "schedule", "webhook_received"];
|
|
1049
|
+
readonly enum: readonly ["pr_opened", "pr_updated", "pr_closed", "issue_opened", "issue_comment", "manual", "schedule", "webhook_received", "slack_message"];
|
|
1050
1050
|
readonly description: "Valid event triggers for checks";
|
|
1051
1051
|
};
|
|
1052
1052
|
readonly AIProviderConfig: {
|
|
@@ -1543,7 +1543,7 @@ export declare const configSchema: {
|
|
|
1543
1543
|
readonly description: "Custom output name (defaults to workflow name)";
|
|
1544
1544
|
};
|
|
1545
1545
|
readonly overrides: {
|
|
1546
|
-
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1546
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E%3E";
|
|
1547
1547
|
readonly description: "Step overrides";
|
|
1548
1548
|
};
|
|
1549
1549
|
readonly output_mapping: {
|
|
@@ -1558,13 +1558,13 @@ export declare const configSchema: {
|
|
|
1558
1558
|
readonly '^x-': {};
|
|
1559
1559
|
};
|
|
1560
1560
|
};
|
|
1561
|
-
readonly 'Record<string,Partial<interface-src_types_config.ts-
|
|
1561
|
+
readonly 'Record<string,Partial<interface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255>>': {
|
|
1562
1562
|
readonly type: "object";
|
|
1563
1563
|
readonly additionalProperties: {
|
|
1564
|
-
readonly $ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-
|
|
1564
|
+
readonly $ref: "#/definitions/Partial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E";
|
|
1565
1565
|
};
|
|
1566
1566
|
};
|
|
1567
|
-
readonly 'Partial<interface-src_types_config.ts-
|
|
1567
|
+
readonly 'Partial<interface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255>': {
|
|
1568
1568
|
readonly type: "object";
|
|
1569
1569
|
readonly additionalProperties: false;
|
|
1570
1570
|
};
|
|
@@ -2434,6 +2434,10 @@ export declare const configSchema: {
|
|
|
2434
2434
|
readonly $ref: "#/definitions/Record%3Cstring%2CStaticCronJob%3E";
|
|
2435
2435
|
readonly description: "Static cron jobs defined in configuration (always executed)";
|
|
2436
2436
|
};
|
|
2437
|
+
readonly on_message: {
|
|
2438
|
+
readonly $ref: "#/definitions/Record%3Cstring%2CSlackMessageTrigger%3E";
|
|
2439
|
+
readonly description: "Slack message triggers for reactive workflow execution";
|
|
2440
|
+
};
|
|
2437
2441
|
};
|
|
2438
2442
|
readonly additionalProperties: false;
|
|
2439
2443
|
readonly description: "Scheduler configuration for workflow scheduling";
|
|
@@ -2682,6 +2686,97 @@ export declare const configSchema: {
|
|
|
2682
2686
|
readonly '^x-': {};
|
|
2683
2687
|
};
|
|
2684
2688
|
};
|
|
2689
|
+
readonly 'Record<string,SlackMessageTrigger>': {
|
|
2690
|
+
readonly type: "object";
|
|
2691
|
+
readonly additionalProperties: {
|
|
2692
|
+
readonly $ref: "#/definitions/SlackMessageTrigger";
|
|
2693
|
+
};
|
|
2694
|
+
};
|
|
2695
|
+
readonly SlackMessageTrigger: {
|
|
2696
|
+
readonly type: "object";
|
|
2697
|
+
readonly properties: {
|
|
2698
|
+
readonly channels: {
|
|
2699
|
+
readonly type: "array";
|
|
2700
|
+
readonly items: {
|
|
2701
|
+
readonly type: "string";
|
|
2702
|
+
};
|
|
2703
|
+
readonly description: "Channel IDs to monitor (supports wildcard suffix, e.g., \"CENG*\")";
|
|
2704
|
+
};
|
|
2705
|
+
readonly from: {
|
|
2706
|
+
readonly type: "array";
|
|
2707
|
+
readonly items: {
|
|
2708
|
+
readonly type: "string";
|
|
2709
|
+
};
|
|
2710
|
+
readonly description: "Only trigger on messages from these user IDs";
|
|
2711
|
+
};
|
|
2712
|
+
readonly from_bots: {
|
|
2713
|
+
readonly type: "boolean";
|
|
2714
|
+
readonly description: "Allow bot messages to trigger (default: false)";
|
|
2715
|
+
};
|
|
2716
|
+
readonly contains: {
|
|
2717
|
+
readonly type: "array";
|
|
2718
|
+
readonly items: {
|
|
2719
|
+
readonly type: "string";
|
|
2720
|
+
};
|
|
2721
|
+
readonly description: "Keyword match - any keyword triggers (case-insensitive OR)";
|
|
2722
|
+
};
|
|
2723
|
+
readonly match: {
|
|
2724
|
+
readonly type: "string";
|
|
2725
|
+
readonly description: "Regex pattern to match against message text";
|
|
2726
|
+
};
|
|
2727
|
+
readonly threads: {
|
|
2728
|
+
readonly type: "string";
|
|
2729
|
+
readonly enum: readonly ["root_only", "thread_only", "any"];
|
|
2730
|
+
readonly description: "Thread scope filter (default: 'any')";
|
|
2731
|
+
};
|
|
2732
|
+
readonly workflow: {
|
|
2733
|
+
readonly type: "string";
|
|
2734
|
+
readonly description: "Workflow/check ID to execute";
|
|
2735
|
+
};
|
|
2736
|
+
readonly inputs: {
|
|
2737
|
+
readonly $ref: "#/definitions/Record%3Cstring%2Cunknown%3E";
|
|
2738
|
+
readonly description: "Optional workflow inputs";
|
|
2739
|
+
};
|
|
2740
|
+
readonly output: {
|
|
2741
|
+
readonly type: "object";
|
|
2742
|
+
readonly properties: {
|
|
2743
|
+
readonly type: {
|
|
2744
|
+
readonly type: "string";
|
|
2745
|
+
readonly enum: readonly ["slack", "github", "webhook", "none"];
|
|
2746
|
+
readonly description: "Output type: slack, github, webhook, or none";
|
|
2747
|
+
};
|
|
2748
|
+
readonly target: {
|
|
2749
|
+
readonly type: "string";
|
|
2750
|
+
readonly description: "Target (channel name, repo, URL)";
|
|
2751
|
+
};
|
|
2752
|
+
readonly thread_id: {
|
|
2753
|
+
readonly type: "string";
|
|
2754
|
+
readonly description: "Thread ID for threaded outputs";
|
|
2755
|
+
};
|
|
2756
|
+
};
|
|
2757
|
+
readonly required: readonly ["type"];
|
|
2758
|
+
readonly additionalProperties: false;
|
|
2759
|
+
readonly description: "Output destination configuration";
|
|
2760
|
+
readonly patternProperties: {
|
|
2761
|
+
readonly '^x-': {};
|
|
2762
|
+
};
|
|
2763
|
+
};
|
|
2764
|
+
readonly description: {
|
|
2765
|
+
readonly type: "string";
|
|
2766
|
+
readonly description: "Description for logging/display";
|
|
2767
|
+
};
|
|
2768
|
+
readonly enabled: {
|
|
2769
|
+
readonly type: "boolean";
|
|
2770
|
+
readonly description: "Enable/disable this trigger (default: true)";
|
|
2771
|
+
};
|
|
2772
|
+
};
|
|
2773
|
+
readonly required: readonly ["workflow"];
|
|
2774
|
+
readonly additionalProperties: false;
|
|
2775
|
+
readonly description: "Slack message trigger for reactive workflow execution Triggers workflows based on Slack messages matching configured filters";
|
|
2776
|
+
readonly patternProperties: {
|
|
2777
|
+
readonly '^x-': {};
|
|
2778
|
+
};
|
|
2779
|
+
};
|
|
2685
2780
|
readonly PolicyConfig: {
|
|
2686
2781
|
readonly type: "object";
|
|
2687
2782
|
readonly properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"config-schema.d.ts","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/generated/config-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAy+Ff,CAAC;AACX,eAAe,YAAY,CAAC"}
|
|
@@ -966,7 +966,7 @@
|
|
|
966
966
|
"description": "Arguments/inputs for the workflow"
|
|
967
967
|
},
|
|
968
968
|
"overrides": {
|
|
969
|
-
"$ref": "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
969
|
+
"$ref": "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E%3E",
|
|
970
970
|
"description": "Override specific step configurations in the workflow"
|
|
971
971
|
},
|
|
972
972
|
"output_mapping": {
|
|
@@ -982,7 +982,7 @@
|
|
|
982
982
|
"description": "Config file path - alternative to workflow ID (loads a Visor config file as workflow)"
|
|
983
983
|
},
|
|
984
984
|
"workflow_overrides": {
|
|
985
|
-
"$ref": "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
985
|
+
"$ref": "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E%3E",
|
|
986
986
|
"description": "Alias for overrides - workflow step overrides (backward compatibility)"
|
|
987
987
|
},
|
|
988
988
|
"ref": {
|
|
@@ -1168,7 +1168,8 @@
|
|
|
1168
1168
|
"issue_comment",
|
|
1169
1169
|
"manual",
|
|
1170
1170
|
"schedule",
|
|
1171
|
-
"webhook_received"
|
|
1171
|
+
"webhook_received",
|
|
1172
|
+
"slack_message"
|
|
1172
1173
|
],
|
|
1173
1174
|
"description": "Valid event triggers for checks"
|
|
1174
1175
|
},
|
|
@@ -1707,7 +1708,7 @@
|
|
|
1707
1708
|
"description": "Custom output name (defaults to workflow name)"
|
|
1708
1709
|
},
|
|
1709
1710
|
"overrides": {
|
|
1710
|
-
"$ref": "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-
|
|
1711
|
+
"$ref": "#/definitions/Record%3Cstring%2CPartial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E%3E",
|
|
1711
1712
|
"description": "Step overrides"
|
|
1712
1713
|
},
|
|
1713
1714
|
"output_mapping": {
|
|
@@ -1724,13 +1725,13 @@
|
|
|
1724
1725
|
"^x-": {}
|
|
1725
1726
|
}
|
|
1726
1727
|
},
|
|
1727
|
-
"Record<string,Partial<interface-src_types_config.ts-
|
|
1728
|
+
"Record<string,Partial<interface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255>>": {
|
|
1728
1729
|
"type": "object",
|
|
1729
1730
|
"additionalProperties": {
|
|
1730
|
-
"$ref": "#/definitions/Partial%3Cinterface-src_types_config.ts-
|
|
1731
|
+
"$ref": "#/definitions/Partial%3Cinterface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255%3E"
|
|
1731
1732
|
}
|
|
1732
1733
|
},
|
|
1733
|
-
"Partial<interface-src_types_config.ts-
|
|
1734
|
+
"Partial<interface-src_types_config.ts-13509-28103-src_types_config.ts-0-55255>": {
|
|
1734
1735
|
"type": "object",
|
|
1735
1736
|
"additionalProperties": false
|
|
1736
1737
|
},
|
|
@@ -2673,6 +2674,10 @@
|
|
|
2673
2674
|
"cron": {
|
|
2674
2675
|
"$ref": "#/definitions/Record%3Cstring%2CStaticCronJob%3E",
|
|
2675
2676
|
"description": "Static cron jobs defined in configuration (always executed)"
|
|
2677
|
+
},
|
|
2678
|
+
"on_message": {
|
|
2679
|
+
"$ref": "#/definitions/Record%3Cstring%2CSlackMessageTrigger%3E",
|
|
2680
|
+
"description": "Slack message triggers for reactive workflow execution"
|
|
2676
2681
|
}
|
|
2677
2682
|
},
|
|
2678
2683
|
"additionalProperties": false,
|
|
@@ -2935,6 +2940,110 @@
|
|
|
2935
2940
|
"^x-": {}
|
|
2936
2941
|
}
|
|
2937
2942
|
},
|
|
2943
|
+
"Record<string,SlackMessageTrigger>": {
|
|
2944
|
+
"type": "object",
|
|
2945
|
+
"additionalProperties": {
|
|
2946
|
+
"$ref": "#/definitions/SlackMessageTrigger"
|
|
2947
|
+
}
|
|
2948
|
+
},
|
|
2949
|
+
"SlackMessageTrigger": {
|
|
2950
|
+
"type": "object",
|
|
2951
|
+
"properties": {
|
|
2952
|
+
"channels": {
|
|
2953
|
+
"type": "array",
|
|
2954
|
+
"items": {
|
|
2955
|
+
"type": "string"
|
|
2956
|
+
},
|
|
2957
|
+
"description": "Channel IDs to monitor (supports wildcard suffix, e.g., \"CENG*\")"
|
|
2958
|
+
},
|
|
2959
|
+
"from": {
|
|
2960
|
+
"type": "array",
|
|
2961
|
+
"items": {
|
|
2962
|
+
"type": "string"
|
|
2963
|
+
},
|
|
2964
|
+
"description": "Only trigger on messages from these user IDs"
|
|
2965
|
+
},
|
|
2966
|
+
"from_bots": {
|
|
2967
|
+
"type": "boolean",
|
|
2968
|
+
"description": "Allow bot messages to trigger (default: false)"
|
|
2969
|
+
},
|
|
2970
|
+
"contains": {
|
|
2971
|
+
"type": "array",
|
|
2972
|
+
"items": {
|
|
2973
|
+
"type": "string"
|
|
2974
|
+
},
|
|
2975
|
+
"description": "Keyword match - any keyword triggers (case-insensitive OR)"
|
|
2976
|
+
},
|
|
2977
|
+
"match": {
|
|
2978
|
+
"type": "string",
|
|
2979
|
+
"description": "Regex pattern to match against message text"
|
|
2980
|
+
},
|
|
2981
|
+
"threads": {
|
|
2982
|
+
"type": "string",
|
|
2983
|
+
"enum": [
|
|
2984
|
+
"root_only",
|
|
2985
|
+
"thread_only",
|
|
2986
|
+
"any"
|
|
2987
|
+
],
|
|
2988
|
+
"description": "Thread scope filter (default: 'any')"
|
|
2989
|
+
},
|
|
2990
|
+
"workflow": {
|
|
2991
|
+
"type": "string",
|
|
2992
|
+
"description": "Workflow/check ID to execute"
|
|
2993
|
+
},
|
|
2994
|
+
"inputs": {
|
|
2995
|
+
"$ref": "#/definitions/Record%3Cstring%2Cunknown%3E",
|
|
2996
|
+
"description": "Optional workflow inputs"
|
|
2997
|
+
},
|
|
2998
|
+
"output": {
|
|
2999
|
+
"type": "object",
|
|
3000
|
+
"properties": {
|
|
3001
|
+
"type": {
|
|
3002
|
+
"type": "string",
|
|
3003
|
+
"enum": [
|
|
3004
|
+
"slack",
|
|
3005
|
+
"github",
|
|
3006
|
+
"webhook",
|
|
3007
|
+
"none"
|
|
3008
|
+
],
|
|
3009
|
+
"description": "Output type: slack, github, webhook, or none"
|
|
3010
|
+
},
|
|
3011
|
+
"target": {
|
|
3012
|
+
"type": "string",
|
|
3013
|
+
"description": "Target (channel name, repo, URL)"
|
|
3014
|
+
},
|
|
3015
|
+
"thread_id": {
|
|
3016
|
+
"type": "string",
|
|
3017
|
+
"description": "Thread ID for threaded outputs"
|
|
3018
|
+
}
|
|
3019
|
+
},
|
|
3020
|
+
"required": [
|
|
3021
|
+
"type"
|
|
3022
|
+
],
|
|
3023
|
+
"additionalProperties": false,
|
|
3024
|
+
"description": "Output destination configuration",
|
|
3025
|
+
"patternProperties": {
|
|
3026
|
+
"^x-": {}
|
|
3027
|
+
}
|
|
3028
|
+
},
|
|
3029
|
+
"description": {
|
|
3030
|
+
"type": "string",
|
|
3031
|
+
"description": "Description for logging/display"
|
|
3032
|
+
},
|
|
3033
|
+
"enabled": {
|
|
3034
|
+
"type": "boolean",
|
|
3035
|
+
"description": "Enable/disable this trigger (default: true)"
|
|
3036
|
+
}
|
|
3037
|
+
},
|
|
3038
|
+
"required": [
|
|
3039
|
+
"workflow"
|
|
3040
|
+
],
|
|
3041
|
+
"additionalProperties": false,
|
|
3042
|
+
"description": "Slack message trigger for reactive workflow execution Triggers workflows based on Slack messages matching configured filters",
|
|
3043
|
+
"patternProperties": {
|
|
3044
|
+
"^x-": {}
|
|
3045
|
+
}
|
|
3046
|
+
},
|
|
2938
3047
|
"PolicyConfig": {
|
|
2939
3048
|
"type": "object",
|
|
2940
3049
|
"properties": {
|
|
@@ -46,6 +46,14 @@ export declare class GitRepositoryAnalyzer {
|
|
|
46
46
|
/**
|
|
47
47
|
* Get diff between current branch and base branch (for feature branch analysis)
|
|
48
48
|
*/
|
|
49
|
+
/**
|
|
50
|
+
* Resolve the base branch ref to a revision that exists locally.
|
|
51
|
+
* In CI (shallow clones), the local branch may not exist, so we try:
|
|
52
|
+
* 1. The branch name as-is (e.g. "main")
|
|
53
|
+
* 2. The remote-tracking ref (e.g. "origin/main")
|
|
54
|
+
* 3. Fetch from origin then retry
|
|
55
|
+
*/
|
|
56
|
+
private resolveBaseBranchRef;
|
|
49
57
|
private getBranchDiff;
|
|
50
58
|
private analyzeFileChange;
|
|
51
59
|
private generateTitle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/git-repository-analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,gBAAgB,GAAE,MAAsB;IAMpD;;OAEG;IACG,iBAAiB,CACrB,cAAc,GAAE,OAAc,EAC9B,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,iBAAiB,CAAC;IAyF7B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAE,cAAc,GAAE,OAAc,GAAG,MAAM;YAmCrE,eAAe;YASf,gBAAgB;YAShB,aAAa;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;YAkBP,aAAa;YAYb,qBAAqB;IAoCnC;;OAEG;YACW,aAAa;
|
|
1
|
+
{"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/visor/visor/src/git-repository-analyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAU,MAAM,eAAe,CAAC;AAG/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,GAAG,CAAY;IACvB,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,gBAAgB,GAAE,MAAsB;IAMpD;;OAEG;IACG,iBAAiB,CACrB,cAAc,GAAE,OAAc,EAC9B,gBAAgB,GAAE,OAAe,GAChC,OAAO,CAAC,iBAAiB,CAAC;IAyF7B;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,iBAAiB,EAAE,cAAc,GAAE,OAAc,GAAG,MAAM;YAmCrE,eAAe;YASf,gBAAgB;YAShB,aAAa;IAmB3B;;OAEG;IACH,OAAO,CAAC,aAAa;YAkBP,aAAa;YAYb,qBAAqB;IAoCnC;;OAEG;IACH;;;;;;OAMG;YACW,oBAAoB;YA8BpB,aAAa;YAiFb,iBAAiB;IA4E/B,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,yBAAyB;CAclC"}
|