@kleber.mottajr/juninho 1.0.0-alpha.2 → 1.0.0-alpha.3
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/installer.d.ts.map +1 -1
- package/dist/installer.js +48 -5
- package/dist/installer.js.map +1 -1
- package/dist/templates/agents.d.ts.map +1 -1
- package/dist/templates/agents.js +650 -234
- package/dist/templates/agents.js.map +1 -1
- package/dist/templates/commands.d.ts.map +1 -1
- package/dist/templates/commands.js +222 -18
- package/dist/templates/commands.js.map +1 -1
- package/dist/templates/docs.d.ts.map +1 -1
- package/dist/templates/docs.js +213 -164
- package/dist/templates/docs.js.map +1 -1
- package/dist/templates/plugins.d.ts.map +1 -1
- package/dist/templates/plugins.js +419 -263
- package/dist/templates/plugins.js.map +1 -1
- package/dist/templates/skills.js +5 -0
- package/dist/templates/skills.js.map +1 -1
- package/dist/templates/state.d.ts.map +1 -1
- package/dist/templates/state.js +81 -0
- package/dist/templates/state.js.map +1 -1
- package/dist/templates/tools.js +44 -0
- package/dist/templates/tools.js.map +1 -1
- package/package.json +39 -28
package/dist/installer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wBAAsB,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyD5F"}
|
package/dist/installer.js
CHANGED
|
@@ -26,19 +26,19 @@ async function runSetup(projectDir, options = {}) {
|
|
|
26
26
|
console.log("[juninho] ✓ Directories created");
|
|
27
27
|
// Step 2: Write agents
|
|
28
28
|
(0, agents_js_1.writeAgents)(projectDir);
|
|
29
|
-
console.log("[juninho] ✓ Agents created (
|
|
29
|
+
console.log("[juninho] ✓ Agents created (9)");
|
|
30
30
|
// Step 3: Write skills
|
|
31
31
|
(0, skills_js_1.writeSkills)(projectDir);
|
|
32
32
|
console.log("[juninho] ✓ Skills created (5)");
|
|
33
33
|
// Step 4: Write plugins
|
|
34
34
|
(0, plugins_js_1.writePlugins)(projectDir);
|
|
35
|
-
console.log("[juninho] ✓ Plugins created (
|
|
35
|
+
console.log("[juninho] ✓ Plugins created (11)");
|
|
36
36
|
// Step 5: Write tools
|
|
37
37
|
(0, tools_js_1.writeTools)(projectDir);
|
|
38
38
|
console.log("[juninho] ✓ Tools created (4)");
|
|
39
39
|
// Step 6: Write commands
|
|
40
40
|
(0, commands_js_1.writeCommands)(projectDir);
|
|
41
|
-
console.log("[juninho] ✓ Commands created (
|
|
41
|
+
console.log("[juninho] ✓ Commands created (13)");
|
|
42
42
|
// Step 7: Write state files
|
|
43
43
|
(0, state_js_1.writeState)(projectDir);
|
|
44
44
|
console.log("[juninho] ✓ State files created");
|
|
@@ -48,12 +48,55 @@ async function runSetup(projectDir, options = {}) {
|
|
|
48
48
|
// Step 9: Patch opencode.json
|
|
49
49
|
(0, docs_js_1.patchOpencodeJson)(projectDir);
|
|
50
50
|
console.log("[juninho] ✓ opencode.json patched");
|
|
51
|
-
// Step 10:
|
|
51
|
+
// Step 10: Install pre-commit hook (outer validation loop)
|
|
52
|
+
writePreCommitHook(projectDir);
|
|
53
|
+
// Step 11: Write marker
|
|
52
54
|
(0, fs_1.writeFileSync)(marker, new Date().toISOString());
|
|
53
55
|
console.log("");
|
|
54
56
|
console.log("[juninho] ✓ Framework installed successfully!");
|
|
55
57
|
console.log("[juninho] Open OpenCode — /plan, /spec and /implement are ready.");
|
|
56
|
-
console.log("[juninho] Agents
|
|
58
|
+
console.log("[juninho] Agents: @planner, @spec-writer, @implementer, @validator, @reviewer, @unify, @explore, @librarian");
|
|
59
|
+
}
|
|
60
|
+
function writePreCommitHook(projectDir) {
|
|
61
|
+
const gitHooksDir = path_1.default.join(projectDir, ".git", "hooks");
|
|
62
|
+
if (!(0, fs_1.existsSync)(gitHooksDir)) {
|
|
63
|
+
// Not a git repo or hooks dir doesn't exist — skip silently
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const hookPath = path_1.default.join(gitHooksDir, "pre-commit");
|
|
67
|
+
if ((0, fs_1.existsSync)(hookPath)) {
|
|
68
|
+
const existing = (0, fs_1.readFileSync)(hookPath, "utf-8");
|
|
69
|
+
if (!existing.includes("installed by juninho")) {
|
|
70
|
+
// Preserve existing hook — do not overwrite
|
|
71
|
+
console.log("[juninho] ⚠ pre-commit hook already exists — skipping (not installed by juninho)");
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const hookContent = `#!/bin/sh
|
|
76
|
+
# Deterministic outer validation loop — installed by juninho
|
|
77
|
+
# Runs typecheck + lint + tests before every commit.
|
|
78
|
+
# Do not bypass with --no-verify.
|
|
79
|
+
set -e
|
|
80
|
+
|
|
81
|
+
echo "[pre-commit] Running typecheck..."
|
|
82
|
+
npx tsc --noEmit 2>&1 || { echo "[pre-commit] FAIL: TypeScript errors"; exit 1; }
|
|
83
|
+
|
|
84
|
+
echo "[pre-commit] Running lint..."
|
|
85
|
+
npx eslint . --max-warnings=0 2>&1 || { echo "[pre-commit] FAIL: Lint errors"; exit 1; }
|
|
86
|
+
|
|
87
|
+
echo "[pre-commit] Running tests..."
|
|
88
|
+
npx jest --passWithNoTests 2>&1 || { echo "[pre-commit] FAIL: Tests failed"; exit 1; }
|
|
89
|
+
|
|
90
|
+
echo "[pre-commit] All checks passed"
|
|
91
|
+
`;
|
|
92
|
+
(0, fs_1.writeFileSync)(hookPath, hookContent);
|
|
93
|
+
try {
|
|
94
|
+
(0, fs_1.chmodSync)(hookPath, 0o755);
|
|
95
|
+
console.log("[juninho] ✓ pre-commit hook installed");
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
console.log("[juninho] ✓ pre-commit hook written (chmod not supported on this platform — make it executable manually)");
|
|
99
|
+
}
|
|
57
100
|
}
|
|
58
101
|
function createDirectories(projectDir) {
|
|
59
102
|
const dirs = [
|
package/dist/installer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":";;;;;AAcA,
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../src/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../../src/templates/agents.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAYpD"}
|