git-vibe-setup 3.0.0 → 3.0.2
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
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
Local initializer for GitVibe consumer repositories.
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npx
|
|
6
|
+
npx git-vibe-setup setup
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
The command writes `.github` and `.git-vibe` starter files, pins reusable
|
|
9
|
+
The `setup` command writes `.github` and `.git-vibe` starter files, pins reusable
|
|
10
10
|
workflow refs to the latest stable `markhuangai/git-vibe` release, and fails
|
|
11
11
|
before writing if release lookup or target-file validation fails.
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
interface SetupCliRuntime {
|
|
3
|
+
argv?: string[];
|
|
3
4
|
cwd?: string;
|
|
4
5
|
error?: (message: string) => void;
|
|
5
6
|
fetchImpl?: typeof fetch;
|
|
@@ -8,4 +9,5 @@ interface SetupCliRuntime {
|
|
|
8
9
|
}
|
|
9
10
|
export declare function runSetup(runtime?: SetupCliRuntime): Promise<void>;
|
|
10
11
|
export declare function setupCli(runtime?: SetupCliRuntime): Promise<number>;
|
|
12
|
+
export declare function isDirectRun(moduleUrl: string, entrypoint?: string): boolean;
|
|
11
13
|
export {};
|
package/dist/cli.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { realpathSync } from "node:fs";
|
|
2
3
|
import { resolve } from "node:path";
|
|
3
4
|
import { pathToFileURL } from "node:url";
|
|
4
5
|
import { fileURLToPath } from "node:url";
|
|
5
6
|
import { blockingInstallPaths, buildInstallFiles, existingFilesError, installFiles, } from "./install.js";
|
|
6
7
|
import { renderManualSetupInstructions } from "./instructions.js";
|
|
7
8
|
import { latestStableReleaseTag } from "./releases.js";
|
|
9
|
+
const usage = `Usage:
|
|
10
|
+
git-vibe-setup setup
|
|
11
|
+
git-vibe-setup
|
|
12
|
+
|
|
13
|
+
Commands:
|
|
14
|
+
setup Install GitVibe starter files into the current repository.
|
|
15
|
+
|
|
16
|
+
Options:
|
|
17
|
+
-h, --help Show this help message.`;
|
|
8
18
|
export async function runSetup(runtime = {}) {
|
|
9
19
|
const cwd = runtime.cwd || process.cwd();
|
|
10
20
|
const repositoryRoot = runtime.repositoryRoot || packageRoot();
|
|
@@ -17,6 +27,16 @@ export async function runSetup(runtime = {}) {
|
|
|
17
27
|
(runtime.log || console.log)(renderManualSetupInstructions(releaseTag));
|
|
18
28
|
}
|
|
19
29
|
export async function setupCli(runtime = {}) {
|
|
30
|
+
const argv = runtime.argv || process.argv.slice(2);
|
|
31
|
+
const command = argv[0] || "setup";
|
|
32
|
+
if (command === "--help" || command === "-h" || command === "help") {
|
|
33
|
+
(runtime.log || console.log)(usage);
|
|
34
|
+
return 0;
|
|
35
|
+
}
|
|
36
|
+
if (command !== "setup") {
|
|
37
|
+
(runtime.error || console.error)(`Unknown command: ${command}\n\n${usage}`);
|
|
38
|
+
return 1;
|
|
39
|
+
}
|
|
20
40
|
try {
|
|
21
41
|
await runSetup(runtime);
|
|
22
42
|
return 0;
|
|
@@ -36,6 +56,12 @@ if (isDirectRun(import.meta.url)) {
|
|
|
36
56
|
process.exitCode = exitCode;
|
|
37
57
|
}
|
|
38
58
|
/* c8 ignore stop */
|
|
39
|
-
function isDirectRun(moduleUrl, entrypoint = process.argv[1]) {
|
|
40
|
-
|
|
59
|
+
export function isDirectRun(moduleUrl, entrypoint = process.argv[1]) {
|
|
60
|
+
if (!entrypoint)
|
|
61
|
+
return false;
|
|
62
|
+
return (pathToFileURL(realpathSync(resolve(entrypoint))).href ===
|
|
63
|
+
pathToFileURL(modulePath(moduleUrl)).href);
|
|
64
|
+
}
|
|
65
|
+
function modulePath(moduleUrl) {
|
|
66
|
+
return realpathSync(fileURLToPath(moduleUrl));
|
|
41
67
|
}
|
package/package.json
CHANGED
|
@@ -2,67 +2,110 @@
|
|
|
2
2
|
|
|
3
3
|
version: 1
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
permissions:
|
|
6
|
+
# Users with write, maintain, or admin can approve automation.
|
|
7
|
+
approver_roles:
|
|
8
|
+
- write
|
|
9
|
+
- maintain
|
|
10
|
+
- admin
|
|
7
11
|
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
labels:
|
|
13
|
+
story: gvi:story
|
|
14
|
+
needs_discussion: gvi:needs-discussion
|
|
15
|
+
investigate: git-vibe:investigate
|
|
16
|
+
investigating: gvi:investigating
|
|
17
|
+
investigated: gvi:investigated
|
|
18
|
+
ready_for_approval: gvi:ready-for-approval
|
|
19
|
+
approved: git-vibe:approved
|
|
20
|
+
review: git-vibe:review
|
|
21
|
+
reviewing: gvi:reviewing
|
|
22
|
+
in_progress: gvi:in-progress
|
|
23
|
+
blocked: gvi:blocked
|
|
24
|
+
pr_opened: gvi:pr-opened
|
|
25
|
+
pr_approved: gvi:pr-approved
|
|
26
|
+
pr_merged: gvi:pr-merged
|
|
27
|
+
validate: git-vibe:validate
|
|
28
|
+
validating: gvi:validating
|
|
29
|
+
validated: gvi:validated
|
|
30
|
+
|
|
31
|
+
commands:
|
|
32
|
+
prefix: /git-vibe
|
|
33
|
+
allow_external_agent_mentions: false
|
|
34
|
+
|
|
35
|
+
event_delivery:
|
|
36
|
+
# webhook: repository webhook points at the self-hosted GitVibe server.
|
|
37
|
+
# relay: webhook proxy/tunnel such as Smee, Hookdeck, Cloudflare Tunnel, or ngrok.
|
|
38
|
+
# actions: no-server receiver workflows in the consumer repository.
|
|
39
|
+
# polling: local/scheduled worker polls GitHub APIs with cursors/ETags.
|
|
40
|
+
mode: webhook
|
|
41
|
+
relay:
|
|
42
|
+
provider: smee
|
|
43
|
+
# GitHub Actions Secret name. Relay URLs may contain delivery tokens; do not commit the real URL.
|
|
44
|
+
url_secret: GITVIBE_RELAY_URL
|
|
45
|
+
actions_receiver:
|
|
46
|
+
enabled: false
|
|
47
|
+
scheduled_scan: "*/15 * * * *"
|
|
48
|
+
polling:
|
|
49
|
+
enabled: false
|
|
50
|
+
interval_seconds: 300
|
|
10
51
|
|
|
11
52
|
github_auth:
|
|
53
|
+
# Self-hosted default: the GitVibe server uses a fine-grained PAT scoped to this repository.
|
|
12
54
|
mode: webhook-pat
|
|
13
55
|
# GitHub Actions Secret name. Stores the GitHub write token.
|
|
14
56
|
token_secret: GITVIBE_GITHUB_TOKEN
|
|
15
57
|
|
|
58
|
+
tests:
|
|
59
|
+
commands: []
|
|
60
|
+
|
|
16
61
|
ai:
|
|
17
|
-
|
|
62
|
+
security:
|
|
63
|
+
web:
|
|
64
|
+
# Default for public repositories: let AI search current GitHub project material only.
|
|
65
|
+
# Add domains only for websites the repository owner trusts AI to search and fetch.
|
|
66
|
+
allowed_domains: []
|
|
67
|
+
# - github.com
|
|
68
|
+
# - "*.github.com"
|
|
18
69
|
profiles:
|
|
19
70
|
local_proxy:
|
|
20
|
-
enabled: true
|
|
21
71
|
adapter: ai-sdk-agentool
|
|
72
|
+
# Optional: set to the selected model's context window.
|
|
73
|
+
# context_window_tokens: 128000
|
|
22
74
|
provider:
|
|
23
|
-
|
|
75
|
+
# openai, anthropic, or openai-compatible.
|
|
76
|
+
type: openai-compatible
|
|
24
77
|
# Model names are configuration, not credentials.
|
|
25
78
|
model: glm-5
|
|
26
|
-
# Keys inside GITVIBE_AI_ENV_JSON.
|
|
79
|
+
# Keys inside GITVIBE_AI_ENV_JSON. Store provider credentials and endpoints there.
|
|
27
80
|
base_url:
|
|
28
81
|
from_bundle: GITVIBE_AI_BASE_URL
|
|
29
82
|
api_key:
|
|
30
83
|
from_bundle: GITVIBE_AI_API_KEY
|
|
31
84
|
reasoning:
|
|
32
85
|
effort: high
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# context:
|
|
40
|
-
# files:
|
|
41
|
-
# - AGENTS.md
|
|
86
|
+
provider_options:
|
|
87
|
+
openai:
|
|
88
|
+
reasoningEffort: high
|
|
89
|
+
reasoningSummary: concise
|
|
90
|
+
anthropic:
|
|
91
|
+
effort: high
|
|
42
92
|
codex_cli:
|
|
43
|
-
enabled: false
|
|
44
93
|
adapter: cli-codex
|
|
45
|
-
# Key inside GITVIBE_AI_ENV_JSON. Stores
|
|
94
|
+
# Key inside GITVIBE_AI_ENV_JSON. Stores escaped auth.json text from jq -Rs .
|
|
95
|
+
# Requires GITVIBE_GITHUB_TOKEN repository Secrets read/write permission for refresh write-back.
|
|
46
96
|
auth_json:
|
|
47
97
|
from_bundle: CODEX_AUTH_JSON
|
|
48
98
|
model: gpt-5.3-codex
|
|
49
|
-
# context:
|
|
50
|
-
# files:
|
|
51
|
-
# - AGENTS.md
|
|
52
99
|
reasoning:
|
|
53
100
|
effort: high
|
|
54
101
|
summary: concise
|
|
55
102
|
claude_code:
|
|
56
|
-
enabled: false
|
|
57
103
|
adapter: cli-claude-code
|
|
58
104
|
# Key inside GITVIBE_AI_ENV_JSON. Stores the Claude Code OAuth access token.
|
|
59
105
|
env:
|
|
60
106
|
CLAUDE_CODE_OAUTH_TOKEN:
|
|
61
107
|
from_bundle: CLAUDE_OAUTH_TOKEN
|
|
62
108
|
model: opus
|
|
63
|
-
# context:
|
|
64
|
-
# files:
|
|
65
|
-
# - .git-vibe/CLAUDE-extra.md
|
|
66
109
|
reasoning:
|
|
67
110
|
effort: xhigh
|
|
68
111
|
role_groups:
|
|
@@ -78,29 +121,30 @@ ai:
|
|
|
78
121
|
profile: local_proxy
|
|
79
122
|
budgets:
|
|
80
123
|
default_timeout_minutes: 60
|
|
124
|
+
review_timeout_minutes: 60
|
|
81
125
|
implementation_timeout_minutes: 120
|
|
82
126
|
feedback_timeout_minutes: 120
|
|
83
|
-
|
|
127
|
+
create_pr_timeout_minutes: 15
|
|
84
128
|
default_max_turns: 90
|
|
85
|
-
implementation_max_turns:
|
|
129
|
+
implementation_max_turns: 200
|
|
86
130
|
feedback_max_turns: 120
|
|
131
|
+
validation_repair_attempts: 3
|
|
132
|
+
validation_repair_max_turns: 45
|
|
133
|
+
pr_feedback_max_iterations: 3
|
|
134
|
+
request_retry_attempts: 3
|
|
135
|
+
request_retry_delay_seconds: 60
|
|
87
136
|
stages:
|
|
88
137
|
investigate:
|
|
89
138
|
role_group: review_gate
|
|
90
139
|
validate:
|
|
91
140
|
role_group: review_gate
|
|
92
|
-
decompose:
|
|
93
|
-
profile: local_proxy
|
|
94
141
|
materialize:
|
|
95
142
|
profile: local_proxy
|
|
96
|
-
review-matrix:
|
|
97
|
-
role_group: review_gate
|
|
98
143
|
implement:
|
|
99
144
|
profile: local_proxy
|
|
145
|
+
review-matrix:
|
|
146
|
+
role_group: review_gate
|
|
100
147
|
create-pr:
|
|
101
148
|
profile: local_proxy
|
|
102
149
|
address-pr-feedback:
|
|
103
150
|
profile: local_proxy
|
|
104
|
-
|
|
105
|
-
tests:
|
|
106
|
-
commands: []
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
name: GitVibe decompose
|
|
2
|
-
run-name: "[git-vibe][decompose]: Discussion #${{ inputs.discussion-number }}"
|
|
3
|
-
|
|
4
|
-
on:
|
|
5
|
-
workflow_dispatch:
|
|
6
|
-
inputs:
|
|
7
|
-
discussion-number:
|
|
8
|
-
description: Discussion number to decompose.
|
|
9
|
-
required: true
|
|
10
|
-
type: string
|
|
11
|
-
dry-run:
|
|
12
|
-
description: Validate without writing to GitHub.
|
|
13
|
-
required: false
|
|
14
|
-
type: boolean
|
|
15
|
-
default: false
|
|
16
|
-
source-comment:
|
|
17
|
-
description: JSON source comment metadata for replying to command comments.
|
|
18
|
-
required: false
|
|
19
|
-
type: string
|
|
20
|
-
default: ""
|
|
21
|
-
|
|
22
|
-
jobs:
|
|
23
|
-
decompose:
|
|
24
|
-
uses: markhuangai/git-vibe/.github/workflows/decompose.yml@v3
|
|
25
|
-
with:
|
|
26
|
-
discussion-number: ${{ inputs.discussion-number }}
|
|
27
|
-
runner: ubuntu-latest
|
|
28
|
-
timeout_minutes: 60
|
|
29
|
-
max_turns: 90
|
|
30
|
-
dry-run: ${{ inputs.dry-run }}
|
|
31
|
-
source-comment: ${{ inputs.source-comment }}
|
|
32
|
-
secrets:
|
|
33
|
-
GITVIBE_GITHUB_TOKEN: ${{ secrets.GITVIBE_GITHUB_TOKEN }}
|
|
34
|
-
GITVIBE_AI_ENV_JSON: ${{ secrets.GITVIBE_AI_ENV_JSON }}
|