@probelabs/visor 0.1.1 → 0.1.4
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 +144 -11
- package/action.yml +11 -1
- package/defaults/.visor.yaml +178 -42
- package/dist/action-cli-bridge.d.ts +2 -0
- package/dist/action-cli-bridge.d.ts.map +1 -1
- package/dist/action-cli-bridge.js +8 -0
- package/dist/action-cli-bridge.js.map +1 -1
- package/dist/ai-review-service.d.ts +24 -2
- package/dist/ai-review-service.d.ts.map +1 -1
- package/dist/ai-review-service.js +209 -98
- package/dist/ai-review-service.js.map +1 -1
- package/dist/check-execution-engine.d.ts +11 -1
- package/dist/check-execution-engine.d.ts.map +1 -1
- package/dist/check-execution-engine.js +216 -25
- package/dist/check-execution-engine.js.map +1 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +2 -0
- package/dist/cli-main.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -3
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +54 -2
- package/dist/config.js.map +1 -1
- package/dist/event-mapper.d.ts +15 -0
- package/dist/event-mapper.d.ts.map +1 -1
- package/dist/event-mapper.js +9 -2
- package/dist/event-mapper.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/providers/ai-check-provider.d.ts +4 -1
- package/dist/providers/ai-check-provider.d.ts.map +1 -1
- package/dist/providers/ai-check-provider.js +22 -5
- package/dist/providers/ai-check-provider.js.map +1 -1
- package/dist/providers/check-provider.interface.d.ts +9 -1
- package/dist/providers/check-provider.interface.d.ts.map +1 -1
- package/dist/providers/check-provider.interface.js.map +1 -1
- package/dist/providers/script-check-provider.d.ts +4 -1
- package/dist/providers/script-check-provider.d.ts.map +1 -1
- package/dist/providers/script-check-provider.js +1 -1
- package/dist/providers/script-check-provider.js.map +1 -1
- package/dist/providers/tool-check-provider.d.ts +4 -1
- package/dist/providers/tool-check-provider.d.ts.map +1 -1
- package/dist/providers/tool-check-provider.js +1 -1
- package/dist/providers/tool-check-provider.js.map +1 -1
- package/dist/providers/webhook-check-provider.d.ts +4 -1
- package/dist/providers/webhook-check-provider.d.ts.map +1 -1
- package/dist/providers/webhook-check-provider.js +1 -1
- package/dist/providers/webhook-check-provider.js.map +1 -1
- package/dist/reviewer.d.ts.map +1 -1
- package/dist/reviewer.js +28 -17
- package/dist/reviewer.js.map +1 -1
- package/dist/session-registry.d.ts +38 -0
- package/dist/session-registry.d.ts.map +1 -0
- package/dist/session-registry.js +67 -0
- package/dist/session-registry.js.map +1 -0
- package/dist/types/cli.d.ts +2 -0
- package/dist/types/cli.d.ts.map +1 -1
- package/dist/types/config.d.ts +7 -1
- package/dist/types/config.d.ts.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -76,6 +76,29 @@ jobs:
|
|
|
76
76
|
|
|
77
77
|
That's it! Visor will automatically review your PRs with AI-powered analysis.
|
|
78
78
|
|
|
79
|
+
#### Advanced Configuration Options
|
|
80
|
+
|
|
81
|
+
For more control over execution behavior:
|
|
82
|
+
|
|
83
|
+
```yaml
|
|
84
|
+
name: Code Review with Performance Tuning
|
|
85
|
+
on: pull_request
|
|
86
|
+
|
|
87
|
+
jobs:
|
|
88
|
+
review:
|
|
89
|
+
runs-on: ubuntu-latest
|
|
90
|
+
steps:
|
|
91
|
+
- uses: actions/checkout@v4
|
|
92
|
+
- uses: ./ # or: gates-ai/visor-action@v1
|
|
93
|
+
with:
|
|
94
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
95
|
+
max-parallelism: '5' # Run up to 5 checks in parallel
|
|
96
|
+
fail-fast: 'true' # Stop on first failure
|
|
97
|
+
checks: 'security,performance' # Run specific checks only
|
|
98
|
+
env:
|
|
99
|
+
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
|
|
100
|
+
```
|
|
101
|
+
|
|
79
102
|
### As CLI Tool
|
|
80
103
|
|
|
81
104
|
```bash
|
|
@@ -119,19 +142,29 @@ Add comments to your PR to trigger Visor:
|
|
|
119
142
|
visor [options]
|
|
120
143
|
|
|
121
144
|
Options:
|
|
122
|
-
-c, --check <type>
|
|
123
|
-
|
|
124
|
-
-o, --output <format>
|
|
125
|
-
|
|
126
|
-
--config <path>
|
|
127
|
-
|
|
128
|
-
--
|
|
129
|
-
|
|
145
|
+
-c, --check <type> Check type: security, performance, style, architecture, all
|
|
146
|
+
Can be used multiple times: --check security --check style
|
|
147
|
+
-o, --output <format> Output format: table, json, markdown, sarif
|
|
148
|
+
Default: table
|
|
149
|
+
--config <path> Path to configuration file
|
|
150
|
+
Default: visor.config.yaml
|
|
151
|
+
--max-parallelism <count> Maximum number of checks to run in parallel
|
|
152
|
+
Default: 3
|
|
153
|
+
--fail-fast Stop execution when any check fails
|
|
154
|
+
Default: false
|
|
155
|
+
--timeout <ms> Timeout for check operations in milliseconds
|
|
156
|
+
Default: 600000ms (10 minutes)
|
|
157
|
+
--debug Enable debug mode for detailed output
|
|
158
|
+
--version Show version
|
|
159
|
+
--help Show help
|
|
130
160
|
|
|
131
161
|
Examples:
|
|
132
|
-
visor --check all
|
|
133
|
-
visor --check security --output json
|
|
134
|
-
visor --check style --check performance
|
|
162
|
+
visor --check all # Run all checks
|
|
163
|
+
visor --check security --output json # Security check with JSON output
|
|
164
|
+
visor --check style --check performance # Multiple specific checks
|
|
165
|
+
visor --check all --max-parallelism 5 # Run up to 5 checks in parallel
|
|
166
|
+
visor --check all --fail-fast # Stop on first failure
|
|
167
|
+
visor --check all --timeout 300000 --debug # 5 minute timeout with debug output
|
|
135
168
|
```
|
|
136
169
|
|
|
137
170
|
## 🤖 AI Configuration
|
|
@@ -324,6 +357,104 @@ checks:
|
|
|
324
357
|
- **Graceful Failures**: Failed checks don't prevent independent checks from running
|
|
325
358
|
- **Dependency Results**: Results from dependency checks are available to dependent checks
|
|
326
359
|
|
|
360
|
+
## 🔄 AI Session Reuse
|
|
361
|
+
|
|
362
|
+
Visor supports AI session reuse for dependent checks, allowing follow-up analysis to maintain conversation context with the AI. This creates more intelligent, contextual analysis workflows.
|
|
363
|
+
|
|
364
|
+
### How It Works
|
|
365
|
+
|
|
366
|
+
When `reuse_ai_session: true` is set on a dependent check, Visor:
|
|
367
|
+
1. **Reuses the ProbeAgent session** from the parent check
|
|
368
|
+
2. **Maintains conversation context** - the AI remembers the previous discussion
|
|
369
|
+
3. **Forces sequential execution** - dependent checks with session reuse run sequentially to preserve context
|
|
370
|
+
4. **Provides intelligent follow-ups** - the AI can reference previous findings
|
|
371
|
+
|
|
372
|
+
### Configuration
|
|
373
|
+
|
|
374
|
+
```yaml
|
|
375
|
+
version: "1.0"
|
|
376
|
+
|
|
377
|
+
checks:
|
|
378
|
+
security:
|
|
379
|
+
type: ai
|
|
380
|
+
group: review
|
|
381
|
+
schema: code-review
|
|
382
|
+
prompt: "Analyze code for security vulnerabilities..."
|
|
383
|
+
on: [pr_opened, pr_updated]
|
|
384
|
+
|
|
385
|
+
security-remediation:
|
|
386
|
+
type: ai
|
|
387
|
+
group: review
|
|
388
|
+
schema: code-review
|
|
389
|
+
prompt: |
|
|
390
|
+
Based on our previous security analysis discussion,
|
|
391
|
+
provide detailed remediation guidance for the issues we identified.
|
|
392
|
+
depends_on: [security]
|
|
393
|
+
reuse_ai_session: true # 🔄 Reuses security check's AI session
|
|
394
|
+
on: [pr_opened, pr_updated]
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### Key Benefits
|
|
398
|
+
|
|
399
|
+
- **Context Continuity**: AI remembers previous analysis and can reference it
|
|
400
|
+
- **Cost Efficiency**: Reuses existing AI sessions instead of creating new ones
|
|
401
|
+
- **Better Analysis**: Follow-up prompts build on previous discussion
|
|
402
|
+
- **Natural Conversation Flow**: Creates multi-turn conversations with AI
|
|
403
|
+
|
|
404
|
+
### Validation Rules
|
|
405
|
+
|
|
406
|
+
- **Requires Dependencies**: `reuse_ai_session: true` can only be used with `depends_on`
|
|
407
|
+
- **Sequential Execution**: Checks with session reuse are automatically scheduled sequentially
|
|
408
|
+
- **AI Checks Only**: Only works with `type: ai` checks
|
|
409
|
+
- **Clear Error Messages**: Invalid configurations provide helpful guidance
|
|
410
|
+
|
|
411
|
+
### Example Use Cases
|
|
412
|
+
|
|
413
|
+
#### Security Analysis + Remediation
|
|
414
|
+
```yaml
|
|
415
|
+
security:
|
|
416
|
+
type: ai
|
|
417
|
+
prompt: "Identify security vulnerabilities..."
|
|
418
|
+
|
|
419
|
+
security-fixes:
|
|
420
|
+
type: ai
|
|
421
|
+
prompt: "Based on our security discussion, provide step-by-step fix instructions..."
|
|
422
|
+
depends_on: [security]
|
|
423
|
+
reuse_ai_session: true
|
|
424
|
+
```
|
|
425
|
+
|
|
426
|
+
#### Performance Analysis + Optimization
|
|
427
|
+
```yaml
|
|
428
|
+
performance:
|
|
429
|
+
type: ai
|
|
430
|
+
prompt: "Analyze performance issues..."
|
|
431
|
+
|
|
432
|
+
performance-optimization:
|
|
433
|
+
type: ai
|
|
434
|
+
prompt: "Building on our performance analysis, create an optimization roadmap..."
|
|
435
|
+
depends_on: [performance]
|
|
436
|
+
reuse_ai_session: true
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
#### Multi-step Code Review
|
|
440
|
+
```yaml
|
|
441
|
+
initial-review:
|
|
442
|
+
type: ai
|
|
443
|
+
prompt: "Perform comprehensive code review..."
|
|
444
|
+
|
|
445
|
+
clarification:
|
|
446
|
+
type: ai
|
|
447
|
+
prompt: "Let's dive deeper into the most critical issues we identified..."
|
|
448
|
+
depends_on: [initial-review]
|
|
449
|
+
reuse_ai_session: true
|
|
450
|
+
|
|
451
|
+
final-recommendations:
|
|
452
|
+
type: ai
|
|
453
|
+
prompt: "Summarize our discussion with prioritized action items..."
|
|
454
|
+
depends_on: [clarification]
|
|
455
|
+
reuse_ai_session: true
|
|
456
|
+
```
|
|
457
|
+
|
|
327
458
|
## 📋 Schema-Template System
|
|
328
459
|
|
|
329
460
|
Visor's new schema-template system provides structured output validation and customizable rendering, replacing the previous category-based approach with a more flexible, configuration-driven system.
|
|
@@ -1040,6 +1171,8 @@ reporting:
|
|
|
1040
1171
|
| `checks` | Checks to run (comma-separated) | `all` | No |
|
|
1041
1172
|
| `output-format` | Output format | `markdown` | No |
|
|
1042
1173
|
| `config-path` | Path to config file | `visor.config.yaml` | No |
|
|
1174
|
+
| `max-parallelism` | Maximum number of checks to run in parallel | `3` | No |
|
|
1175
|
+
| `fail-fast` | Stop execution when any check fails | `false` | No |
|
|
1043
1176
|
| `comment-on-pr` | Post review as PR comment | `true` | No |
|
|
1044
1177
|
| `create-check` | Create GitHub check run | `true` | No |
|
|
1045
1178
|
| `add-labels` | Add quality labels to PR | `true` | No |
|
package/action.yml
CHANGED
|
@@ -78,11 +78,21 @@ inputs:
|
|
|
78
78
|
required: false
|
|
79
79
|
default: 'false'
|
|
80
80
|
|
|
81
|
+
max-parallelism:
|
|
82
|
+
description: 'Maximum number of checks to run in parallel (default: 1)'
|
|
83
|
+
required: false
|
|
84
|
+
default: '1'
|
|
85
|
+
|
|
86
|
+
fail-fast:
|
|
87
|
+
description: 'Stop execution when any check fails (default: false)'
|
|
88
|
+
required: false
|
|
89
|
+
default: 'false'
|
|
90
|
+
|
|
81
91
|
debug:
|
|
82
92
|
description: 'Enable debug mode for detailed output in comments'
|
|
83
93
|
required: false
|
|
84
94
|
default: 'false'
|
|
85
|
-
|
|
95
|
+
|
|
86
96
|
# Legacy inputs for backward compatibility
|
|
87
97
|
owner:
|
|
88
98
|
description: 'Repository owner (legacy)'
|
package/defaults/.visor.yaml
CHANGED
|
@@ -4,21 +4,77 @@ version: "1.0"
|
|
|
4
4
|
# Uses mock provider for CI compatibility when no AI API keys are configured
|
|
5
5
|
# Users can override this by creating their own .visor.yaml in their project root
|
|
6
6
|
|
|
7
|
-
# Global AI provider settings -
|
|
8
|
-
|
|
7
|
+
# Global AI provider settings - users should configure their preferred provider
|
|
8
|
+
# For CI testing, use --provider mock CLI flag instead
|
|
9
|
+
|
|
10
|
+
# Run checks sequentially to ensure session reuse works correctly
|
|
11
|
+
max_parallelism: 1
|
|
12
|
+
|
|
13
|
+
# 🔄 AI Session Reuse Feature:
|
|
14
|
+
# This configuration demonstrates the new 'reuse_ai_session' feature that allows
|
|
15
|
+
# dependent checks to continue conversations with the same AI session, providing
|
|
16
|
+
# context continuity and more intelligent follow-up analysis.
|
|
17
|
+
#
|
|
18
|
+
# Example: security-remediation reuses the session from the security check,
|
|
19
|
+
# allowing the AI to reference the previous security analysis discussion.
|
|
9
20
|
|
|
10
21
|
# Global fail condition - fail if critical issues are found
|
|
11
22
|
fail_if: "output.issues && output.issues.some(i => i.severity === 'critical')"
|
|
12
23
|
|
|
13
24
|
checks:
|
|
25
|
+
# PR overview with intelligent analysis - runs first to establish context
|
|
26
|
+
overview:
|
|
27
|
+
type: ai
|
|
28
|
+
group: overview
|
|
29
|
+
prompt: |
|
|
30
|
+
# 📋 Pull Request Overview: {{ pr.title }}
|
|
31
|
+
|
|
32
|
+
{% if pr.body %}
|
|
33
|
+
## Description
|
|
34
|
+
{{ pr.body }}
|
|
35
|
+
{% endif %}
|
|
36
|
+
|
|
37
|
+
## Files Changed Analysis
|
|
38
|
+
|
|
39
|
+
| File | Type | Status | Changes | Impact |
|
|
40
|
+
|------|------|--------|---------|--------|
|
|
41
|
+
{% for file in files %}
|
|
42
|
+
| `{{ file.filename }}` | {{ file.filename | split: "." | last | upcase }} | {{ file.status | capitalize }} | +{{ file.additions }}/-{{ file.deletions }} | {% if file.changes > 50 %}High{% elsif file.changes > 20 %}Medium{% else %}Low{% endif %} |
|
|
43
|
+
{% endfor %}
|
|
44
|
+
|
|
45
|
+
## Architecture & Impact Assessment
|
|
46
|
+
|
|
47
|
+
Please generate a comprehensive overview and analysis of this pull request.
|
|
48
|
+
|
|
49
|
+
Follow these instructions to create a thorough assessment:
|
|
50
|
+
|
|
51
|
+
1. **Change Impact Analysis**
|
|
52
|
+
- What this PR accomplishes
|
|
53
|
+
- Key technical changes introduced
|
|
54
|
+
- Affected system components
|
|
55
|
+
|
|
56
|
+
2. **Architecture Visualization**
|
|
57
|
+
- Create appropriate mermaid diagram(s) showing:
|
|
58
|
+
- Component relationships (use `graph TD/LR`)
|
|
59
|
+
- Process flows (use `flowchart` or `sequenceDiagram`)
|
|
60
|
+
- Data flow between modified components
|
|
61
|
+
|
|
62
|
+
**Guidelines for diagrams:**
|
|
63
|
+
- Use multiple diagrams if there are distinct architectural aspects
|
|
64
|
+
- Choose the most appropriate diagram type for each concept
|
|
65
|
+
- Focus on modified components and their relationships
|
|
66
|
+
- Keep diagrams clean and informative
|
|
67
|
+
|
|
68
|
+
Provide a balanced technical assessment suitable for both developers and stakeholders.
|
|
69
|
+
on: [pr_opened, pr_updated]
|
|
70
|
+
|
|
14
71
|
# Security analysis - Critical for all projects
|
|
15
72
|
security:
|
|
16
73
|
type: ai
|
|
17
74
|
group: review
|
|
18
75
|
schema: code-review
|
|
19
|
-
ai_provider: "mock"
|
|
20
76
|
prompt: |
|
|
21
|
-
|
|
77
|
+
Based on our overview discussion, please perform a comprehensive security analysis of the code changes in this pull request.
|
|
22
78
|
|
|
23
79
|
## Files Changed
|
|
24
80
|
{% for file in files %}
|
|
@@ -53,6 +109,8 @@ checks:
|
|
|
53
109
|
- Resource exhaustion vulnerabilities
|
|
54
110
|
|
|
55
111
|
Provide specific findings with clear explanations and actionable remediation steps.
|
|
112
|
+
depends_on: [overview]
|
|
113
|
+
reuse_ai_session: true # 🔄 Reuses the overview check's AI session for context continuity
|
|
56
114
|
on: [pr_opened, pr_updated]
|
|
57
115
|
|
|
58
116
|
# Performance analysis - Important for all applications
|
|
@@ -60,9 +118,8 @@ checks:
|
|
|
60
118
|
type: ai
|
|
61
119
|
group: review
|
|
62
120
|
schema: code-review
|
|
63
|
-
ai_provider: "mock"
|
|
64
121
|
prompt: |
|
|
65
|
-
|
|
122
|
+
Building on our overview and security analysis, now review the code changes for performance issues:
|
|
66
123
|
|
|
67
124
|
## Files to Analyze
|
|
68
125
|
{% for file in files %}
|
|
@@ -93,7 +150,9 @@ checks:
|
|
|
93
150
|
- Race conditions and deadlocks
|
|
94
151
|
- Inefficient parallel processing
|
|
95
152
|
|
|
96
|
-
|
|
153
|
+
Building on our overview and security analysis, identify performance issues and provide optimization recommendations that complement our previous findings.
|
|
154
|
+
depends_on: [security]
|
|
155
|
+
reuse_ai_session: true # 🔄 Reuses the security check's AI session for context continuity
|
|
97
156
|
on: [pr_opened, pr_updated]
|
|
98
157
|
|
|
99
158
|
# Code quality and maintainability
|
|
@@ -101,9 +160,8 @@ checks:
|
|
|
101
160
|
type: ai
|
|
102
161
|
group: review
|
|
103
162
|
schema: code-review
|
|
104
|
-
ai_provider: "mock"
|
|
105
163
|
prompt: |
|
|
106
|
-
|
|
164
|
+
Building on our overview, security, and performance discussions, evaluate the code quality and maintainability:
|
|
107
165
|
|
|
108
166
|
## Quality Assessment Areas
|
|
109
167
|
**Code Structure & Design:**
|
|
@@ -135,46 +193,124 @@ checks:
|
|
|
135
193
|
- Framework/library best practices
|
|
136
194
|
- Type safety (if applicable)
|
|
137
195
|
|
|
138
|
-
Focus on actionable improvements that enhance code maintainability.
|
|
196
|
+
Focus on actionable improvements that enhance code maintainability while considering the overview, security, and performance findings we've already discussed.
|
|
197
|
+
depends_on: [performance]
|
|
198
|
+
reuse_ai_session: true # 🔄 Reuses the performance check's AI session for context continuity
|
|
139
199
|
on: [pr_opened, pr_updated]
|
|
140
200
|
|
|
141
|
-
#
|
|
142
|
-
|
|
201
|
+
# Intelligent Issue Assistant - provides sophisticated issue triage and assistance
|
|
202
|
+
issue-assistant:
|
|
143
203
|
type: ai
|
|
144
|
-
group:
|
|
145
|
-
schema: plain
|
|
146
|
-
ai_provider: "mock"
|
|
204
|
+
group: issue-support
|
|
147
205
|
prompt: |
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
{
|
|
153
|
-
{
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
{
|
|
160
|
-
|
|
161
|
-
{% endfor %}
|
|
206
|
+
You are an intelligent GitHub issue assistant for the {{ event.repository.fullName }} repository. Your role is to provide professional, knowledgeable assistance based on the trigger event.
|
|
207
|
+
|
|
208
|
+
## Event Context
|
|
209
|
+
**Event Type**: {{ event.name }} - {{ event.action }}
|
|
210
|
+
{% if event.issue -%}
|
|
211
|
+
**Issue #{{ event.issue.number }}**: {{ event.issue.title }}
|
|
212
|
+
**Author**: {{ event.issue.author }}
|
|
213
|
+
**State**: {{ event.issue.state }}
|
|
214
|
+
**Created**: {{ event.issue.createdAt }}
|
|
215
|
+
{%- if event.issue.labels.size > 0 %}
|
|
216
|
+
**Labels**: {% for label in event.issue.labels %}{{ label.name }}{% unless forloop.last %}, {% endunless %}{% endfor %}
|
|
217
|
+
{%- endif %}
|
|
218
|
+
{%- if event.issue.assignees.size > 0 %}
|
|
219
|
+
**Assignees**: {% for assignee in event.issue.assignees %}{{ assignee }}{% unless forloop.last %}, {% endunless %}{% endfor %}
|
|
220
|
+
{%- endif %}
|
|
221
|
+
{%- endif %}
|
|
222
|
+
{%- if event.comment %}
|
|
223
|
+
**Comment by**: {{ event.comment.author }}
|
|
224
|
+
{%- endif %}
|
|
225
|
+
|
|
226
|
+
## Repository Analysis Context
|
|
227
|
+
{%- if pr.title %}
|
|
228
|
+
**Recent PR Activity**: {{ pr.title }}
|
|
229
|
+
{%- endif %}
|
|
230
|
+
{%- if utils.totalFiles > 0 %}
|
|
231
|
+
**Project Size**: {{ utils.totalFiles }} files
|
|
232
|
+
**Technologies**: {% for ext in utils.filesByExtension %}{{ ext[0] }}{% unless forloop.last %}, {% endunless %}{% endfor %}
|
|
233
|
+
{%- endif %}
|
|
162
234
|
|
|
163
235
|
## Instructions
|
|
164
|
-
Generate a comprehensive overview and analysis of this pull request:
|
|
165
236
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
237
|
+
{%- if event.name == 'issues' and event.action == 'opened' %}
|
|
238
|
+
|
|
239
|
+
**ISSUE TRIAGE MODE**
|
|
240
|
+
|
|
241
|
+
Analyze this new issue and provide intelligent triage:
|
|
242
|
+
|
|
243
|
+
### Issue Content
|
|
244
|
+
{{ event.issue.body }}
|
|
245
|
+
|
|
246
|
+
### Analysis Tasks
|
|
247
|
+
1. **Categorize** the issue (bug/feature/documentation/question/enhancement/maintenance)
|
|
248
|
+
2. **Assess priority** (low/medium/high/urgent) based on:
|
|
249
|
+
- Impact on users/system
|
|
250
|
+
- Security implications
|
|
251
|
+
- Blocking nature
|
|
252
|
+
- Community interest
|
|
253
|
+
3. **Estimate complexity** (trivial/simple/moderate/complex)
|
|
254
|
+
4. **Suggest timeline** for resolution
|
|
255
|
+
5. **Recommend labels** that would help with organization
|
|
256
|
+
6. **Identify stakeholders** who should be involved or assignees
|
|
257
|
+
7. **Provide initial response** to the issue author
|
|
258
|
+
|
|
259
|
+
### Response Requirements
|
|
260
|
+
- Be professional and welcoming
|
|
261
|
+
- Show you understand the request
|
|
262
|
+
- Provide clear next steps
|
|
263
|
+
- Ask clarifying questions if needed
|
|
264
|
+
- Include technical insights where appropriate
|
|
265
|
+
|
|
266
|
+
{%- elsif event.name == 'issue_comment' %}
|
|
267
|
+
|
|
268
|
+
**ASSISTANCE MODE**
|
|
269
|
+
|
|
270
|
+
A user has asked a question or provided additional information. Provide helpful technical assistance:
|
|
271
|
+
|
|
272
|
+
### Original Issue
|
|
273
|
+
{%- if event.issue.title %}
|
|
274
|
+
**Title**: {{ event.issue.title }}
|
|
275
|
+
{%- endif %}
|
|
276
|
+
{%- if event.issue.body %}
|
|
277
|
+
**Description**: {{ event.issue.body }}
|
|
278
|
+
{%- endif %}
|
|
279
|
+
|
|
280
|
+
### Latest Comment
|
|
281
|
+
{{ event.comment.body }}
|
|
282
|
+
|
|
283
|
+
### Analysis Tasks
|
|
284
|
+
1. **Understand the context** of their question/comment
|
|
285
|
+
2. **Provide technical guidance** based on project knowledge
|
|
286
|
+
3. **Reference relevant code/files** if applicable
|
|
287
|
+
4. **Suggest implementation approaches** for feature requests
|
|
288
|
+
5. **Provide debugging steps** for bug reports
|
|
289
|
+
6. **Link to documentation** or similar issues if helpful
|
|
290
|
+
7. **Offer code examples** when appropriate
|
|
291
|
+
|
|
292
|
+
### Response Requirements
|
|
293
|
+
- Address their specific question directly
|
|
294
|
+
- Provide actionable guidance
|
|
295
|
+
- Be encouraging and supportive
|
|
296
|
+
- Use technical language appropriate to their level
|
|
297
|
+
- Include code examples where helpful
|
|
298
|
+
- Reference project conventions and patterns
|
|
299
|
+
|
|
300
|
+
{%- endif %}
|
|
301
|
+
|
|
302
|
+
### Special Instructions
|
|
303
|
+
- Always be professional, helpful, and encouraging
|
|
304
|
+
- Focus on actionable advice and clear next steps
|
|
305
|
+
- Use markdown formatting for better readability
|
|
306
|
+
- Include relevant code examples when helpful
|
|
307
|
+
- Reference project context and patterns when applicable
|
|
308
|
+
- If dealing with `/visor` commands in comments, acknowledge and provide assistance
|
|
309
|
+
- Maintain consistency with project tone and contributor guidelines
|
|
310
|
+
|
|
311
|
+
### Response Format
|
|
312
|
+
Provide a well-structured markdown response with clear sections and helpful guidance.
|
|
313
|
+
on: [issue_opened, issue_comment]
|
|
178
314
|
|
|
179
315
|
# Output configuration
|
|
180
316
|
output:
|
|
@@ -15,6 +15,8 @@ export interface GitHubActionInputs {
|
|
|
15
15
|
'fail-on-critical'?: string;
|
|
16
16
|
'fail-on-api-error'?: string;
|
|
17
17
|
'min-score'?: string;
|
|
18
|
+
'max-parallelism'?: string;
|
|
19
|
+
'fail-fast'?: string;
|
|
18
20
|
debug?: string;
|
|
19
21
|
'visor-config-path'?: string;
|
|
20
22
|
'visor-checks'?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-cli-bridge.d.ts","sourceRoot":"","sources":["../src/action-cli-bridge.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,KAAK,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACzB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAgB;gBAEnB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa;IAKvD;;OAEG;IACI,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO;IAS1D;;OAEG;IACI,0BAA0B,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"action-cli-bridge.d.ts","sourceRoot":"","sources":["../src/action-cli-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,6 +96,14 @@ class ActionCliBridge {
|
|
|
96
96
|
if (inputs.debug === 'true') {
|
|
97
97
|
args.push('--debug');
|
|
98
98
|
}
|
|
99
|
+
// Add max parallelism if specified
|
|
100
|
+
if (inputs['max-parallelism']) {
|
|
101
|
+
args.push('--max-parallelism', inputs['max-parallelism']);
|
|
102
|
+
}
|
|
103
|
+
// Add fail-fast flag if enabled
|
|
104
|
+
if (inputs['fail-fast'] === 'true') {
|
|
105
|
+
args.push('--fail-fast');
|
|
106
|
+
}
|
|
99
107
|
return args;
|
|
100
108
|
}
|
|
101
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"action-cli-bridge.js","sourceRoot":"","sources":["../src/action-cli-bridge.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAoD;AACpD,2BAAoC;AACpC,2CAA6B;
|
|
1
|
+
{"version":3,"file":"action-cli-bridge.js","sourceRoot":"","sources":["../src/action-cli-bridge.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ProbeAgent } from '@probelabs/probe';
|
|
1
2
|
import { PRInfo } from './pr-analyzer';
|
|
2
3
|
import { ReviewSummary } from './reviewer';
|
|
3
4
|
export interface AIReviewConfig {
|
|
@@ -28,6 +29,10 @@ export interface AIDebugInfo {
|
|
|
28
29
|
errors?: string[];
|
|
29
30
|
/** Whether JSON parsing succeeded */
|
|
30
31
|
jsonParseSuccess: boolean;
|
|
32
|
+
/** Schema used for response validation */
|
|
33
|
+
schema?: string;
|
|
34
|
+
/** Schema name/type requested */
|
|
35
|
+
schemaName?: string;
|
|
31
36
|
/** Timestamp when request was made */
|
|
32
37
|
timestamp: string;
|
|
33
38
|
/** Total API calls made */
|
|
@@ -43,11 +48,24 @@ export interface AIDebugInfo {
|
|
|
43
48
|
}
|
|
44
49
|
export declare class AIReviewService {
|
|
45
50
|
private config;
|
|
51
|
+
private sessionRegistry;
|
|
46
52
|
constructor(config?: AIReviewConfig);
|
|
47
53
|
/**
|
|
48
54
|
* Execute AI review using probe agent
|
|
49
55
|
*/
|
|
50
|
-
executeReview(prInfo: PRInfo, customPrompt: string, schema?: string): Promise<ReviewSummary>;
|
|
56
|
+
executeReview(prInfo: PRInfo, customPrompt: string, schema?: string, _checkName?: string, sessionId?: string): Promise<ReviewSummary>;
|
|
57
|
+
/**
|
|
58
|
+
* Execute AI review using session reuse - reuses an existing ProbeAgent session
|
|
59
|
+
*/
|
|
60
|
+
executeReviewWithSessionReuse(prInfo: PRInfo, customPrompt: string, parentSessionId: string, schema?: string, checkName?: string): Promise<ReviewSummary>;
|
|
61
|
+
/**
|
|
62
|
+
* Register a new AI session in the session registry
|
|
63
|
+
*/
|
|
64
|
+
registerSession(sessionId: string, agent: ProbeAgent): void;
|
|
65
|
+
/**
|
|
66
|
+
* Cleanup a session from the registry
|
|
67
|
+
*/
|
|
68
|
+
cleanupSession(sessionId: string): void;
|
|
51
69
|
/**
|
|
52
70
|
* Build a custom prompt for AI review with XML-formatted data
|
|
53
71
|
*/
|
|
@@ -57,9 +75,13 @@ export declare class AIReviewService {
|
|
|
57
75
|
*/
|
|
58
76
|
private formatPRContext;
|
|
59
77
|
/**
|
|
60
|
-
*
|
|
78
|
+
* No longer escaping XML - returning text as-is
|
|
61
79
|
*/
|
|
62
80
|
private escapeXml;
|
|
81
|
+
/**
|
|
82
|
+
* Call ProbeAgent with an existing session
|
|
83
|
+
*/
|
|
84
|
+
private callProbeAgentWithExistingSession;
|
|
63
85
|
/**
|
|
64
86
|
* Call ProbeAgent SDK with built-in schema validation
|
|
65
87
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ai-review-service.d.ts","sourceRoot":"","sources":["../src/ai-review-service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ai-review-service.d.ts","sourceRoot":"","sources":["../src/ai-review-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,aAAa,EAAe,MAAM,YAAY,CAAC;AAcxD,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,cAAc,EAAE,MAAM,CAAC;IACvB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,qCAAqC;IACrC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,cAAc,CAAC,EAAE,KAAK,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;CACJ;AAoBD,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,eAAe,CAAkB;gBAE7B,MAAM,GAAE,cAAmB;IA4BvC;;OAEG;IACG,aAAa,CACjB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IA6GzB;;OAEG;IACG,6BAA6B,CACjC,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,EACvB,MAAM,CAAC,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,aAAa,CAAC;IAyFzB;;OAEG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,IAAI;IAI3D;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIvC;;OAEG;YACW,iBAAiB;IA8C/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoEvB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;YACW,iCAAiC;IAiE/C;;OAEG;YACW,cAAc;IA0J5B;;OAEG;YACW,iBAAiB;IAwB/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAuMvB;;OAEG;YACW,oBAAoB;IAgDlC;;OAEG;IACH,OAAO,CAAC,eAAe;CAYxB"}
|