coregit-wizard 0.1.0

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/dist/index.js ADDED
@@ -0,0 +1,178 @@
1
+ #!/usr/bin/env node
2
+ import * as p from "@clack/prompts";
3
+ import { execSync } from "node:child_process";
4
+ import { mkdirSync, writeFileSync } from "node:fs";
5
+ import { join } from "node:path";
6
+ import { homedir } from "node:os";
7
+ const API_BASE = "https://app.coregit.dev";
8
+ const SKILLS_REPO = "coregit/agent-skills";
9
+ async function main() {
10
+ p.intro("Coregit Setup Wizard");
11
+ // Step 1: Install skill
12
+ const installSkill = await p.confirm({
13
+ message: "Install Coregit skill for all AI agents?",
14
+ initialValue: true,
15
+ });
16
+ if (p.isCancel(installSkill)) {
17
+ p.cancel("Setup cancelled.");
18
+ process.exit(0);
19
+ }
20
+ if (installSkill) {
21
+ const s = p.spinner();
22
+ s.start("Installing skill via npx skills add...");
23
+ try {
24
+ execSync(`npx -y skills add ${SKILLS_REPO} --global --all --yes`, {
25
+ stdio: "pipe",
26
+ });
27
+ s.stop("Skill installed for all detected agents.");
28
+ }
29
+ catch {
30
+ s.stop("Could not install skill (npx skills may not be available). Skipping.");
31
+ }
32
+ }
33
+ // Step 2: Install CLI
34
+ const installCli = await p.confirm({
35
+ message: "Install Coregit CLI (cgt)?",
36
+ initialValue: true,
37
+ });
38
+ if (p.isCancel(installCli)) {
39
+ p.cancel("Setup cancelled.");
40
+ process.exit(0);
41
+ }
42
+ if (installCli) {
43
+ const s = p.spinner();
44
+ s.start("Installing @coregit/cli...");
45
+ try {
46
+ execSync("npm install -g @coregit/cli", { stdio: "pipe" });
47
+ s.stop("CLI installed (cgt).");
48
+ }
49
+ catch {
50
+ s.stop("Could not install CLI globally. You can install manually: npm i -g @coregit/cli");
51
+ }
52
+ }
53
+ // Step 3: Auth
54
+ const doAuth = await p.confirm({
55
+ message: "Authenticate now?",
56
+ initialValue: true,
57
+ });
58
+ if (p.isCancel(doAuth)) {
59
+ p.cancel("Setup cancelled.");
60
+ process.exit(0);
61
+ }
62
+ if (!doAuth) {
63
+ p.outro("Done! Run `cgt auth login` when you're ready to authenticate.");
64
+ return;
65
+ }
66
+ // Check if user already has an API key
67
+ const hasKey = await p.confirm({
68
+ message: "Do you already have a Coregit API key?",
69
+ initialValue: false,
70
+ });
71
+ if (p.isCancel(hasKey)) {
72
+ p.cancel("Setup cancelled.");
73
+ process.exit(0);
74
+ }
75
+ if (hasKey) {
76
+ const apiKey = await p.text({
77
+ message: "Paste your API key:",
78
+ placeholder: "cgk_live_...",
79
+ validate: (v) => v.startsWith("cgk_live_") ? undefined : "Key must start with cgk_live_",
80
+ });
81
+ if (p.isCancel(apiKey)) {
82
+ p.cancel("Setup cancelled.");
83
+ process.exit(0);
84
+ }
85
+ saveKey(apiKey);
86
+ p.outro(summary({ apiKey, email: "", orgSlug: "" }));
87
+ return;
88
+ }
89
+ // OTP signup flow
90
+ const email = await p.text({
91
+ message: "Email address:",
92
+ placeholder: "you@example.com",
93
+ validate: (v) => /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(v) ? undefined : "Invalid email",
94
+ });
95
+ if (p.isCancel(email)) {
96
+ p.cancel("Setup cancelled.");
97
+ process.exit(0);
98
+ }
99
+ const name = await p.text({
100
+ message: "Your name (optional):",
101
+ placeholder: "press enter to skip",
102
+ });
103
+ if (p.isCancel(name)) {
104
+ p.cancel("Setup cancelled.");
105
+ process.exit(0);
106
+ }
107
+ // Send OTP
108
+ const s1 = p.spinner();
109
+ s1.start("Sending verification code...");
110
+ const signupRes = await fetch(`${API_BASE}/api/auth/agent/signup`, {
111
+ method: "POST",
112
+ headers: { "Content-Type": "application/json" },
113
+ body: JSON.stringify({ email, name: name || undefined }),
114
+ });
115
+ const signupData = await signupRes.json();
116
+ if (!signupData.ok) {
117
+ s1.stop(`Error: ${signupData.error || "Failed to send code"}`);
118
+ process.exit(1);
119
+ }
120
+ s1.stop(`Verification code sent to ${email}`);
121
+ // Verify OTP
122
+ const code = await p.text({
123
+ message: "Enter 6-digit code from your email:",
124
+ placeholder: "123456",
125
+ validate: (v) => (/^\d{6}$/.test(v) ? undefined : "Must be 6 digits"),
126
+ });
127
+ if (p.isCancel(code)) {
128
+ p.cancel("Setup cancelled.");
129
+ process.exit(0);
130
+ }
131
+ const s2 = p.spinner();
132
+ s2.start("Verifying...");
133
+ const verifyRes = await fetch(`${API_BASE}/api/auth/agent/verify`, {
134
+ method: "POST",
135
+ headers: { "Content-Type": "application/json" },
136
+ body: JSON.stringify({ email, code, name: name || undefined }),
137
+ });
138
+ const verifyData = await verifyRes.json();
139
+ if (!verifyData.ok) {
140
+ s2.stop(`Error: ${verifyData.error || "Verification failed"}`);
141
+ process.exit(1);
142
+ }
143
+ s2.stop("Verified!");
144
+ saveKey(verifyData.api_key);
145
+ p.outro(summary({
146
+ apiKey: verifyData.api_key,
147
+ email: verifyData.user.email,
148
+ orgSlug: verifyData.org.slug,
149
+ }));
150
+ }
151
+ function saveKey(apiKey) {
152
+ try {
153
+ execSync(`cgt auth login --api-key ${apiKey}`, { stdio: "pipe" });
154
+ }
155
+ catch {
156
+ // CLI not installed — write credentials directly
157
+ const dir = join(homedir(), ".config", "coregit");
158
+ mkdirSync(dir, { recursive: true, mode: 0o700 });
159
+ writeFileSync(join(dir, "credentials.json"), JSON.stringify({ api_key: apiKey, api_base_url: "https://api.coregit.dev", org_slug: "", email: "" }, null, 2) + "\n", { mode: 0o600 });
160
+ }
161
+ }
162
+ function summary(opts) {
163
+ const lines = ["Setup complete!"];
164
+ if (opts.email)
165
+ lines.push(` Account: ${opts.email}`);
166
+ if (opts.orgSlug)
167
+ lines.push(` Org: ${opts.orgSlug}`);
168
+ lines.push(` API key: ${opts.apiKey.slice(0, 16)}...`);
169
+ lines.push("");
170
+ lines.push(" Save your API key — it won't be shown again.");
171
+ lines.push(" Docs: https://docs.coregit.dev");
172
+ return lines.join("\n");
173
+ }
174
+ main().catch((err) => {
175
+ p.cancel(`Error: ${err.message}`);
176
+ process.exit(1);
177
+ });
178
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAC3C,MAAM,WAAW,GAAG,sBAAsB,CAAC;AAE3C,KAAK,UAAU,IAAI;IACjB,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEhC,wBAAwB;IACxB,MAAM,YAAY,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QACnC,OAAO,EAAE,0CAA0C;QACnD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAClD,IAAI,CAAC;YACH,QAAQ,CAAC,qBAAqB,WAAW,uBAAuB,EAAE;gBAChE,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;YACH,CAAC,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,IAAI,CAAC,sEAAsE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QACjC,OAAO,EAAE,4BAA4B;QACrC,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACtC,IAAI,CAAC;YACH,QAAQ,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACP,CAAC,CAAC,IAAI,CAAC,iFAAiF,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,mBAAmB;QAC5B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,CAAC,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACzE,OAAO;IACT,CAAC;IAED,uCAAuC;IACvC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QAC7B,OAAO,EAAE,wCAAwC;QACjD,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;YAC1B,OAAO,EAAE,qBAAqB;YAC9B,WAAW,EAAE,cAAc;YAC3B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,+BAA+B;SAC1E,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACvB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,MAAM,CAAC,CAAC;QAChB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO;IACT,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,gBAAgB;QACzB,WAAW,EAAE,iBAAiB;QAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,4BAA4B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe;KACrE,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,uBAAuB;QAChC,WAAW,EAAE,qBAAqB;KACnC,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,WAAW;IACX,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACvB,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,wBAAwB,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC;KACzD,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,EAAE,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,KAAK,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,EAAE,CAAC,IAAI,CAAC,6BAA6B,KAAK,EAAE,CAAC,CAAC;IAE9C,aAAa;IACb,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;QACxB,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EAAE,QAAQ;QACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC;KACtE,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;QAC7B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACvB,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,GAAG,QAAQ,wBAAwB,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC;KAC/D,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;IAE1C,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,EAAE,CAAC,IAAI,CAAC,UAAU,UAAU,CAAC,KAAK,IAAI,qBAAqB,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAErB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE5B,CAAC,CAAC,KAAK,CACL,OAAO,CAAC;QACN,MAAM,EAAE,UAAU,CAAC,OAAO;QAC1B,KAAK,EAAE,UAAU,CAAC,IAAI,CAAC,KAAK;QAC5B,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI;KAC7B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,IAAI,CAAC;QACH,QAAQ,CAAC,4BAA4B,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,iDAAiD;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAClD,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,aAAa,CACX,IAAI,CAAC,GAAG,EAAE,kBAAkB,CAAC,EAC7B,IAAI,CAAC,SAAS,CACZ,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EACrF,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,EACR,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,IAAwD;IACvE,MAAM,KAAK,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAClC,IAAI,IAAI,CAAC,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,IAAI,IAAI,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACzD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,CAAC,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "coregit-wizard",
3
+ "version": "0.1.0",
4
+ "description": "Setup wizard for Coregit — installs skill, CLI, and authenticates",
5
+ "type": "module",
6
+ "bin": {
7
+ "coregit-wizard": "./dist/index.js"
8
+ },
9
+ "files": [
10
+ "dist"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc -p tsconfig.json"
14
+ },
15
+ "keywords": [
16
+ "coregit",
17
+ "git",
18
+ "wizard",
19
+ "ai",
20
+ "agent",
21
+ "skill"
22
+ ],
23
+ "author": "Strayl",
24
+ "license": "MIT",
25
+ "dependencies": {
26
+ "@clack/prompts": "^0.10.0"
27
+ },
28
+ "devDependencies": {
29
+ "@types/node": "^20",
30
+ "typescript": "^5.8.3"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ }
35
+ }