Skip to content

Commit 8557379

Browse files
WomB0ComB0claude
andcommitted
feat: migrate grepo CLI from scripts monorepo to standalone package
Production-grade AI-powered GitHub repository management CLI. Generates READMEs (two-phase analysis+generation), topics, descriptions, and analyses using Gemini with Effect-TS service architecture. Includes Mermaid diagram validation with mmdc and auto-fix loop. Replaces Bun-specific APIs with Node.js equivalents for portability. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 51e2be8 commit 8557379

26 files changed

Lines changed: 5221 additions & 327 deletions

cspell.json

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,17 @@
99
"node_modules",
1010
"pnpm-lock.yaml"
1111
],
12-
"words": ["Farmingdale", "Odnis", "bunx", "codegen", "genai", "subdirs"]
12+
"words": [
13+
"Farmingdale",
14+
"Odnis",
15+
"bunx",
16+
"codegen",
17+
"genai",
18+
"gitingest",
19+
"grepo",
20+
"mermaid",
21+
"mmdc",
22+
"subdirs",
23+
"tsdown"
24+
]
1325
}

env.d.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
declare global {
22
namespace NodeJS {
33
interface ProcessEnv {
4-
GEMINI_API_KEY: string;
4+
GEMINI_API_KEY?: string;
5+
GH_TOKEN?: string;
6+
GITHUB_TOKEN?: string;
7+
GOOGLE_API_KEY?: string;
58
}
69
}
710
}

knip.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"$schema": "https://unpkg.com/knip@5.61.2/schema.json",
3-
"entry": ["src/**/*.test.*", "src/index.ts"],
3+
"entry": ["src/**/*.test.*", "src/index.ts", "src/cli.ts"],
44
"ignoreExportsUsedInFile": { "interface": true, "type": true },
55
"project": ["src/**/*.ts"]
66
}

package.json

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11
{
2-
"name": "package-template",
3-
"version": "0.0.0",
4-
"description": "A very lovely package. Hooray!",
2+
"name": "@elysiumoss/grepo",
3+
"version": "0.1.0",
4+
"description": "AI-powered GitHub repository management CLI — generate READMEs, topics, descriptions, and more using Gemini",
5+
"keywords": [
6+
"ai",
7+
"cli",
8+
"documentation",
9+
"gemini",
10+
"github",
11+
"readme",
12+
"repository"
13+
],
514
"repository": {
615
"type": "git",
7-
"url": "git+https://github.com/ElysiumOSS/package-template.git"
16+
"url": "git+https://github.com/ElysiumOSS/grepo.git"
817
},
918
"license": "MIT",
1019
"author": {
11-
"name": "womb0comb0"
20+
"name": "Mike Odnis",
21+
"url": "https://github.com/WomB0ComB0"
1222
},
1323
"type": "module",
1424
"main": "lib/index.js",
25+
"bin": {
26+
"grepo": "lib/cli.js"
27+
},
1528
"files": [
1629
"LICENSE.md",
1730
"README.md",
@@ -20,7 +33,7 @@
2033
],
2134
"scripts": {
2235
"build": "tsdown",
23-
"docs": "pnpm dlx typedoc --en tryPointStrategy Expand src",
36+
"docs": "pnpm dlx typedoc --entryPointStrategy Expand src",
2437
"format": "prettier .",
2538
"lint": "eslint . --max-warnings 0",
2639
"lint:knip": "knip",
@@ -35,9 +48,10 @@
3548
"*": "prettier --ignore-unknown --write"
3649
},
3750
"dependencies": {
51+
"@effect/platform": "^0.94.2",
3852
"@google/genai": "^1.22.0",
39-
"@types/bun": "^1.2.23",
40-
"type-fest": "^5.0.1"
53+
"@mermaid-js/mermaid-cli": "^11.12.0",
54+
"effect": "^3.19.15"
4155
},
4256
"devDependencies": {
4357
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",

0 commit comments

Comments
 (0)