@probelabs/visor 0.1.149-ee → 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 +4150 -4735
- 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-TJAJVSMY.mjs → check-provider-registry-VHM53BTI.mjs} +6 -6
- package/dist/sdk/{chunk-V6GI4U2M.mjs → chunk-AADKUA6L.mjs} +585 -29
- package/dist/sdk/{chunk-NYFTDVG5.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-CISJ6DJW.mjs → chunk-GLROSEYJ.mjs} +3 -3
- package/dist/sdk/{chunk-NYFTDVG5.mjs → chunk-O4H5KZ7Y.mjs} +586 -30
- package/dist/sdk/{chunk-V6GI4U2M.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-H7IX4GBK.mjs → host-BRZQLVCH.mjs} +2 -2
- package/dist/sdk/{host-NZXGBBJI.mjs → host-MR7L57QI.mjs} +2 -2
- package/dist/sdk/{knex-store-HPXJILBL.mjs → knex-store-CRORFJE6.mjs} +117 -1
- package/dist/sdk/knex-store-CRORFJE6.mjs.map +1 -0
- package/dist/sdk/{loader-YSRMVXC3.mjs → loader-NJCF7DUS.mjs} +2 -2
- package/dist/sdk/{routing-LU5PAREW.mjs → routing-V3MYZAOH.mjs} +4 -4
- package/dist/sdk/{schedule-tool-4U32CSH6.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-6S2DNP26.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 +821 -21
- package/dist/sdk/sdk.js.map +1 -1
- package/dist/sdk/sdk.mjs +5 -5
- package/dist/sdk/{trace-helpers-6ROJR7N3.mjs → trace-helpers-6NSZBC35.mjs} +2 -2
- package/dist/sdk/{workflow-check-provider-AGZ5JY2I.mjs → workflow-check-provider-3MVUCEJR.mjs} +6 -6
- package/dist/sdk/{workflow-check-provider-FDNGOBBG.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/sdk/chunk-YYZAN5NK.mjs.map +0 -1
- package/dist/sdk/git-repository-analyzer-QFMW6WIS.mjs.map +0 -1
- package/dist/sdk/knex-store-HPXJILBL.mjs.map +0 -1
- /package/dist/sdk/{check-provider-registry-LVLC4EPF.mjs.map → check-provider-registry-RRYBG6AU.mjs.map} +0 -0
- /package/dist/sdk/{check-provider-registry-TJAJVSMY.mjs.map → check-provider-registry-VHM53BTI.mjs.map} +0 -0
- /package/dist/sdk/{chunk-RJLJUTSU.mjs.map → chunk-FZEQ744M.mjs.map} +0 -0
- /package/dist/sdk/{chunk-CISJ6DJW.mjs.map → chunk-GLROSEYJ.mjs.map} +0 -0
- /package/dist/sdk/{config-KQH254CA.mjs.map → config-MTEIGCOQ.mjs.map} +0 -0
- /package/dist/sdk/{failure-condition-evaluator-IVCTD4BZ.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-H7IX4GBK.mjs.map → host-BRZQLVCH.mjs.map} +0 -0
- /package/dist/sdk/{host-NZXGBBJI.mjs.map → host-MR7L57QI.mjs.map} +0 -0
- /package/dist/sdk/{loader-YSRMVXC3.mjs.map → loader-NJCF7DUS.mjs.map} +0 -0
- /package/dist/sdk/{routing-LU5PAREW.mjs.map → routing-V3MYZAOH.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-4U32CSH6.mjs.map → schedule-tool-4QDBJV74.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-NX75VKGA.mjs.map → schedule-tool-NYLNJUEW.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-6S2DNP26.mjs.map → schedule-tool-handler-27XEVLSY.mjs.map} +0 -0
- /package/dist/sdk/{schedule-tool-handler-KKN7XJYT.mjs.map → schedule-tool-handler-EFQIYD3W.mjs.map} +0 -0
- /package/dist/sdk/{trace-helpers-6ROJR7N3.mjs.map → trace-helpers-6NSZBC35.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-AGZ5JY2I.mjs.map → workflow-check-provider-3MVUCEJR.mjs.map} +0 -0
- /package/dist/sdk/{workflow-check-provider-FDNGOBBG.mjs.map → workflow-check-provider-XLH7N4FV.mjs.map} +0 -0
|
@@ -73,7 +73,7 @@ async function loadEnterpriseStoreBackend(driver, storageConfig, haConfig) {
|
|
|
73
73
|
"[visor:enterprise] License has expired but is within the 72-hour grace period. Please renew your license."
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
|
-
const { KnexStoreBackend } = await import("./knex-store-
|
|
76
|
+
const { KnexStoreBackend } = await import("./knex-store-CRORFJE6.mjs");
|
|
77
77
|
return new KnexStoreBackend(driver, storageConfig, haConfig);
|
|
78
78
|
}
|
|
79
79
|
var init_loader = __esm({
|
|
@@ -86,4 +86,4 @@ export {
|
|
|
86
86
|
loadEnterprisePolicyEngine,
|
|
87
87
|
loadEnterpriseStoreBackend
|
|
88
88
|
};
|
|
89
|
-
//# sourceMappingURL=loader-
|
|
89
|
+
//# sourceMappingURL=loader-NJCF7DUS.mjs.map
|
|
@@ -4,9 +4,9 @@ import {
|
|
|
4
4
|
evaluateTransitions,
|
|
5
5
|
handleRouting,
|
|
6
6
|
init_routing
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-GLROSEYJ.mjs";
|
|
8
|
+
import "./chunk-FZEQ744M.mjs";
|
|
9
|
+
import "./chunk-PETLPNRA.mjs";
|
|
10
10
|
import "./chunk-JL7JXCET.mjs";
|
|
11
11
|
import "./chunk-ZUEQNCKB.mjs";
|
|
12
12
|
import "./chunk-25IC7KXZ.mjs";
|
|
@@ -22,4 +22,4 @@ export {
|
|
|
22
22
|
evaluateTransitions,
|
|
23
23
|
handleRouting
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=routing-
|
|
25
|
+
//# sourceMappingURL=routing-V3MYZAOH.mjs.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
handleScheduleAction,
|
|
5
5
|
init_schedule_tool,
|
|
6
6
|
isScheduleTool
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-O4H5KZ7Y.mjs";
|
|
8
8
|
import "./chunk-KFKHU6CM.mjs";
|
|
9
9
|
import "./chunk-M3BYMES6.mjs";
|
|
10
10
|
import "./chunk-LG4AUKHB.mjs";
|
|
@@ -12,11 +12,11 @@ import "./chunk-B7BVQM5K.mjs";
|
|
|
12
12
|
import "./chunk-XXAEN5KU.mjs";
|
|
13
13
|
import "./chunk-GEW6LS32.mjs";
|
|
14
14
|
import "./chunk-DNDS7R3N.mjs";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-FYK2DJK6.mjs";
|
|
16
16
|
import "./chunk-NCWIZVOT.mjs";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-GLROSEYJ.mjs";
|
|
18
|
+
import "./chunk-FZEQ744M.mjs";
|
|
19
|
+
import "./chunk-PETLPNRA.mjs";
|
|
20
20
|
import "./chunk-JL7JXCET.mjs";
|
|
21
21
|
import "./chunk-ZUEQNCKB.mjs";
|
|
22
22
|
import "./chunk-25IC7KXZ.mjs";
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
handleScheduleAction,
|
|
33
33
|
isScheduleTool
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=schedule-tool-
|
|
35
|
+
//# sourceMappingURL=schedule-tool-4QDBJV74.mjs.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
handleScheduleAction,
|
|
5
5
|
init_schedule_tool,
|
|
6
6
|
isScheduleTool
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-AADKUA6L.mjs";
|
|
8
8
|
import "./chunk-KFKHU6CM.mjs";
|
|
9
9
|
import "./chunk-M3BYMES6.mjs";
|
|
10
10
|
import "./chunk-LG4AUKHB.mjs";
|
|
@@ -12,11 +12,11 @@ import "./chunk-B7BVQM5K.mjs";
|
|
|
12
12
|
import "./chunk-XXAEN5KU.mjs";
|
|
13
13
|
import "./chunk-GEW6LS32.mjs";
|
|
14
14
|
import "./chunk-DNDS7R3N.mjs";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-FYK2DJK6.mjs";
|
|
16
16
|
import "./chunk-NCWIZVOT.mjs";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-GLROSEYJ.mjs";
|
|
18
|
+
import "./chunk-FZEQ744M.mjs";
|
|
19
|
+
import "./chunk-PETLPNRA.mjs";
|
|
20
20
|
import "./chunk-JL7JXCET.mjs";
|
|
21
21
|
import "./chunk-ZUEQNCKB.mjs";
|
|
22
22
|
import "./chunk-25IC7KXZ.mjs";
|
|
@@ -32,4 +32,4 @@ export {
|
|
|
32
32
|
handleScheduleAction,
|
|
33
33
|
isScheduleTool
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=schedule-tool-
|
|
35
|
+
//# sourceMappingURL=schedule-tool-NYLNJUEW.mjs.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
extractSlackContext,
|
|
7
7
|
init_schedule_tool_handler,
|
|
8
8
|
isScheduleToolCall
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-O4H5KZ7Y.mjs";
|
|
10
10
|
import "./chunk-KFKHU6CM.mjs";
|
|
11
11
|
import "./chunk-M3BYMES6.mjs";
|
|
12
12
|
import "./chunk-LG4AUKHB.mjs";
|
|
@@ -14,11 +14,11 @@ import "./chunk-B7BVQM5K.mjs";
|
|
|
14
14
|
import "./chunk-XXAEN5KU.mjs";
|
|
15
15
|
import "./chunk-GEW6LS32.mjs";
|
|
16
16
|
import "./chunk-DNDS7R3N.mjs";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-FYK2DJK6.mjs";
|
|
18
18
|
import "./chunk-NCWIZVOT.mjs";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-GLROSEYJ.mjs";
|
|
20
|
+
import "./chunk-FZEQ744M.mjs";
|
|
21
|
+
import "./chunk-PETLPNRA.mjs";
|
|
22
22
|
import "./chunk-JL7JXCET.mjs";
|
|
23
23
|
import "./chunk-ZUEQNCKB.mjs";
|
|
24
24
|
import "./chunk-25IC7KXZ.mjs";
|
|
@@ -36,4 +36,4 @@ export {
|
|
|
36
36
|
extractSlackContext,
|
|
37
37
|
isScheduleToolCall
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=schedule-tool-handler-
|
|
39
|
+
//# sourceMappingURL=schedule-tool-handler-27XEVLSY.mjs.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
extractSlackContext,
|
|
7
7
|
init_schedule_tool_handler,
|
|
8
8
|
isScheduleToolCall
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AADKUA6L.mjs";
|
|
10
10
|
import "./chunk-KFKHU6CM.mjs";
|
|
11
11
|
import "./chunk-M3BYMES6.mjs";
|
|
12
12
|
import "./chunk-LG4AUKHB.mjs";
|
|
@@ -14,11 +14,11 @@ import "./chunk-B7BVQM5K.mjs";
|
|
|
14
14
|
import "./chunk-XXAEN5KU.mjs";
|
|
15
15
|
import "./chunk-GEW6LS32.mjs";
|
|
16
16
|
import "./chunk-DNDS7R3N.mjs";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-FYK2DJK6.mjs";
|
|
18
18
|
import "./chunk-NCWIZVOT.mjs";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-GLROSEYJ.mjs";
|
|
20
|
+
import "./chunk-FZEQ744M.mjs";
|
|
21
|
+
import "./chunk-PETLPNRA.mjs";
|
|
22
22
|
import "./chunk-JL7JXCET.mjs";
|
|
23
23
|
import "./chunk-ZUEQNCKB.mjs";
|
|
24
24
|
import "./chunk-25IC7KXZ.mjs";
|
|
@@ -36,4 +36,4 @@ export {
|
|
|
36
36
|
extractSlackContext,
|
|
37
37
|
isScheduleToolCall
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=schedule-tool-handler-
|
|
39
|
+
//# sourceMappingURL=schedule-tool-handler-EFQIYD3W.mjs.map
|
package/dist/sdk/sdk.d.mts
CHANGED
|
@@ -223,7 +223,7 @@ type ConfigCheckType = 'ai' | 'command' | 'script' | 'http' | 'http_input' | 'ht
|
|
|
223
223
|
/**
|
|
224
224
|
* Valid event triggers for checks
|
|
225
225
|
*/
|
|
226
|
-
type EventTrigger = 'pr_opened' | 'pr_updated' | 'pr_closed' | 'issue_opened' | 'issue_comment' | 'manual' | 'schedule' | 'webhook_received';
|
|
226
|
+
type EventTrigger = 'pr_opened' | 'pr_updated' | 'pr_closed' | 'issue_opened' | 'issue_comment' | 'manual' | 'schedule' | 'webhook_received' | 'slack_message';
|
|
227
227
|
/**
|
|
228
228
|
* Valid output formats
|
|
229
229
|
*/
|
|
@@ -1205,6 +1205,41 @@ interface SandboxDefaults {
|
|
|
1205
1205
|
/** Base env var patterns for all sandboxes (replaces hardcoded defaults when set) */
|
|
1206
1206
|
env_passthrough?: string[];
|
|
1207
1207
|
}
|
|
1208
|
+
/**
|
|
1209
|
+
* Slack message trigger for reactive workflow execution
|
|
1210
|
+
* Triggers workflows based on Slack messages matching configured filters
|
|
1211
|
+
*/
|
|
1212
|
+
interface SlackMessageTrigger {
|
|
1213
|
+
/** Channel IDs to monitor (supports wildcard suffix, e.g., "CENG*") */
|
|
1214
|
+
channels?: string[];
|
|
1215
|
+
/** Only trigger on messages from these user IDs */
|
|
1216
|
+
from?: string[];
|
|
1217
|
+
/** Allow bot messages to trigger (default: false) */
|
|
1218
|
+
from_bots?: boolean;
|
|
1219
|
+
/** Keyword match - any keyword triggers (case-insensitive OR) */
|
|
1220
|
+
contains?: string[];
|
|
1221
|
+
/** Regex pattern to match against message text */
|
|
1222
|
+
match?: string;
|
|
1223
|
+
/** Thread scope filter (default: 'any') */
|
|
1224
|
+
threads?: 'root_only' | 'thread_only' | 'any';
|
|
1225
|
+
/** Workflow/check ID to execute */
|
|
1226
|
+
workflow: string;
|
|
1227
|
+
/** Optional workflow inputs */
|
|
1228
|
+
inputs?: Record<string, unknown>;
|
|
1229
|
+
/** Output destination configuration */
|
|
1230
|
+
output?: {
|
|
1231
|
+
/** Output type: slack, github, webhook, or none */
|
|
1232
|
+
type: 'slack' | 'github' | 'webhook' | 'none';
|
|
1233
|
+
/** Target (channel name, repo, URL) */
|
|
1234
|
+
target?: string;
|
|
1235
|
+
/** Thread ID for threaded outputs */
|
|
1236
|
+
thread_id?: string;
|
|
1237
|
+
};
|
|
1238
|
+
/** Description for logging/display */
|
|
1239
|
+
description?: string;
|
|
1240
|
+
/** Enable/disable this trigger (default: true) */
|
|
1241
|
+
enabled?: boolean;
|
|
1242
|
+
}
|
|
1208
1243
|
/**
|
|
1209
1244
|
* Static cron job defined in YAML configuration
|
|
1210
1245
|
* These are always executed by the scheduler daemon
|
|
@@ -1339,6 +1374,8 @@ interface SchedulerConfig {
|
|
|
1339
1374
|
permissions?: SchedulerPermissionsConfig;
|
|
1340
1375
|
/** Static cron jobs defined in configuration (always executed) */
|
|
1341
1376
|
cron?: Record<string, StaticCronJob>;
|
|
1377
|
+
/** Slack message triggers for reactive workflow execution */
|
|
1378
|
+
on_message?: Record<string, SlackMessageTrigger>;
|
|
1342
1379
|
}
|
|
1343
1380
|
/**
|
|
1344
1381
|
* Main Visor configuration
|
package/dist/sdk/sdk.d.ts
CHANGED
|
@@ -223,7 +223,7 @@ type ConfigCheckType = 'ai' | 'command' | 'script' | 'http' | 'http_input' | 'ht
|
|
|
223
223
|
/**
|
|
224
224
|
* Valid event triggers for checks
|
|
225
225
|
*/
|
|
226
|
-
type EventTrigger = 'pr_opened' | 'pr_updated' | 'pr_closed' | 'issue_opened' | 'issue_comment' | 'manual' | 'schedule' | 'webhook_received';
|
|
226
|
+
type EventTrigger = 'pr_opened' | 'pr_updated' | 'pr_closed' | 'issue_opened' | 'issue_comment' | 'manual' | 'schedule' | 'webhook_received' | 'slack_message';
|
|
227
227
|
/**
|
|
228
228
|
* Valid output formats
|
|
229
229
|
*/
|
|
@@ -1205,6 +1205,41 @@ interface SandboxDefaults {
|
|
|
1205
1205
|
/** Base env var patterns for all sandboxes (replaces hardcoded defaults when set) */
|
|
1206
1206
|
env_passthrough?: string[];
|
|
1207
1207
|
}
|
|
1208
|
+
/**
|
|
1209
|
+
* Slack message trigger for reactive workflow execution
|
|
1210
|
+
* Triggers workflows based on Slack messages matching configured filters
|
|
1211
|
+
*/
|
|
1212
|
+
interface SlackMessageTrigger {
|
|
1213
|
+
/** Channel IDs to monitor (supports wildcard suffix, e.g., "CENG*") */
|
|
1214
|
+
channels?: string[];
|
|
1215
|
+
/** Only trigger on messages from these user IDs */
|
|
1216
|
+
from?: string[];
|
|
1217
|
+
/** Allow bot messages to trigger (default: false) */
|
|
1218
|
+
from_bots?: boolean;
|
|
1219
|
+
/** Keyword match - any keyword triggers (case-insensitive OR) */
|
|
1220
|
+
contains?: string[];
|
|
1221
|
+
/** Regex pattern to match against message text */
|
|
1222
|
+
match?: string;
|
|
1223
|
+
/** Thread scope filter (default: 'any') */
|
|
1224
|
+
threads?: 'root_only' | 'thread_only' | 'any';
|
|
1225
|
+
/** Workflow/check ID to execute */
|
|
1226
|
+
workflow: string;
|
|
1227
|
+
/** Optional workflow inputs */
|
|
1228
|
+
inputs?: Record<string, unknown>;
|
|
1229
|
+
/** Output destination configuration */
|
|
1230
|
+
output?: {
|
|
1231
|
+
/** Output type: slack, github, webhook, or none */
|
|
1232
|
+
type: 'slack' | 'github' | 'webhook' | 'none';
|
|
1233
|
+
/** Target (channel name, repo, URL) */
|
|
1234
|
+
target?: string;
|
|
1235
|
+
/** Thread ID for threaded outputs */
|
|
1236
|
+
thread_id?: string;
|
|
1237
|
+
};
|
|
1238
|
+
/** Description for logging/display */
|
|
1239
|
+
description?: string;
|
|
1240
|
+
/** Enable/disable this trigger (default: true) */
|
|
1241
|
+
enabled?: boolean;
|
|
1242
|
+
}
|
|
1208
1243
|
/**
|
|
1209
1244
|
* Static cron job defined in YAML configuration
|
|
1210
1245
|
* These are always executed by the scheduler daemon
|
|
@@ -1339,6 +1374,8 @@ interface SchedulerConfig {
|
|
|
1339
1374
|
permissions?: SchedulerPermissionsConfig;
|
|
1340
1375
|
/** Static cron jobs defined in configuration (always executed) */
|
|
1341
1376
|
cron?: Record<string, StaticCronJob>;
|
|
1377
|
+
/** Slack message triggers for reactive workflow execution */
|
|
1378
|
+
on_message?: Record<string, SlackMessageTrigger>;
|
|
1342
1379
|
}
|
|
1343
1380
|
/**
|
|
1344
1381
|
* Main Visor configuration
|