@rely-ai/caliber 1.12.5 → 1.12.7
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/bin.js +20 -9
- package/package.json +5 -5
package/dist/bin.js
CHANGED
|
@@ -1560,7 +1560,7 @@ Existence (25 pts):
|
|
|
1560
1560
|
|
|
1561
1561
|
Quality (25 pts):
|
|
1562
1562
|
- Build/test/lint commands documented (8 pts) \u2014 include actual commands from the project
|
|
1563
|
-
- Concise context files (6 pts) \u2014 keep CLAUDE.md under
|
|
1563
|
+
- Concise context files (6 pts) \u2014 keep CLAUDE.md under 150 lines for full points (200=4pts, 300=3pts, 500+=0pts)
|
|
1564
1564
|
- No vague instructions (4 pts) \u2014 avoid "follow best practices", "write clean code", "ensure quality"
|
|
1565
1565
|
- No directory tree listings (3 pts) \u2014 do NOT include tree-style file listings in code blocks
|
|
1566
1566
|
- No contradictions (2 pts) \u2014 consistent tool/style recommendations
|
|
@@ -1587,7 +1587,7 @@ Bonus (5 pts):
|
|
|
1587
1587
|
- Hooks configured (2 pts), AGENTS.md (1 pt), OpenSkills format (2 pts) \u2014 handled by caliber
|
|
1588
1588
|
|
|
1589
1589
|
OUTPUT SIZE CONSTRAINTS \u2014 these are critical:
|
|
1590
|
-
- CLAUDE.md / AGENTS.md: MUST be under
|
|
1590
|
+
- CLAUDE.md / AGENTS.md: MUST be under 150 lines for maximum score. Aim for 100-140 lines. Be concise \u2014 commands, architecture overview, and key conventions. Use bullet points and tables, not prose.
|
|
1591
1591
|
- Skills: generate 3-6 skills per target platform based on project complexity. Each skill should cover a distinct tool, workflow, or domain \u2014 don't pad with generic skills.
|
|
1592
1592
|
- Each skill content: max 150 lines. Focus on patterns and examples, not exhaustive docs.
|
|
1593
1593
|
- Cursor rules: max 5 .mdc files.
|
|
@@ -1685,7 +1685,7 @@ Freshness & Safety (10 pts):
|
|
|
1685
1685
|
Bonus (5 pts): Hooks (2 pts), AGENTS.md (1 pt), OpenSkills format (2 pts) \u2014 handled by caliber
|
|
1686
1686
|
|
|
1687
1687
|
OUTPUT SIZE CONSTRAINTS:
|
|
1688
|
-
- CLAUDE.md / AGENTS.md: MUST be under
|
|
1688
|
+
- CLAUDE.md / AGENTS.md: MUST be under 150 lines. Aim for 100-140 lines.
|
|
1689
1689
|
- Cursor rules: max 5 .mdc files.
|
|
1690
1690
|
- Skill topics: 3-6 per platform based on project complexity (name + description only, no content).`;
|
|
1691
1691
|
var SKILL_GENERATION_PROMPT = `You generate a single skill file for a coding agent (Claude Code, Cursor, or Codex).
|
|
@@ -1843,8 +1843,9 @@ Only include items you're confident about. Return ONLY the JSON object.`;
|
|
|
1843
1843
|
async function detectProjectStack(fileTree, fileContents) {
|
|
1844
1844
|
const parts = ["Analyze this project and detect languages, frameworks, and external tools/services.\n"];
|
|
1845
1845
|
if (fileTree.length > 0) {
|
|
1846
|
-
|
|
1847
|
-
parts.push(fileTree.
|
|
1846
|
+
const cappedTree = fileTree.slice(0, 500);
|
|
1847
|
+
parts.push(`File tree (${cappedTree.length}/${fileTree.length} entries):`);
|
|
1848
|
+
parts.push(cappedTree.join("\n"));
|
|
1848
1849
|
}
|
|
1849
1850
|
if (Object.keys(fileContents).length > 0) {
|
|
1850
1851
|
parts.push("\nDependency file contents:");
|
|
@@ -3207,8 +3208,6 @@ This project uses AI coding agents configured by [Caliber](https://github.com/re
|
|
|
3207
3208
|
${agentRefs.join(" ")}
|
|
3208
3209
|
`;
|
|
3209
3210
|
files.push({ path: "AGENTS.md", content: stubContent });
|
|
3210
|
-
if (!setup.codex) setup.codex = {};
|
|
3211
|
-
setup.codex.agentsMd = stubContent;
|
|
3212
3211
|
}
|
|
3213
3212
|
return files;
|
|
3214
3213
|
}
|
|
@@ -3717,7 +3716,7 @@ var POINTS_HOOKS = 2;
|
|
|
3717
3716
|
var POINTS_AGENTS_MD = 1;
|
|
3718
3717
|
var POINTS_OPEN_SKILLS_FORMAT = 2;
|
|
3719
3718
|
var BLOAT_THRESHOLDS = [
|
|
3720
|
-
{ maxLines:
|
|
3719
|
+
{ maxLines: 150, points: 6 },
|
|
3721
3720
|
{ maxLines: 200, points: 4 },
|
|
3722
3721
|
{ maxLines: 300, points: 3 },
|
|
3723
3722
|
{ maxLines: 500, points: 1 }
|
|
@@ -4148,7 +4147,7 @@ function checkQuality(dir) {
|
|
|
4148
4147
|
earnedPoints: bloatPoints,
|
|
4149
4148
|
passed: bloatPoints >= 6,
|
|
4150
4149
|
detail: primaryName ? `${primaryName}: ${lineCount} lines` : "No context files to measure",
|
|
4151
|
-
suggestion: bloatPoints < POINTS_NOT_BLOATED && primaryName ? `${primaryName} is ${lineCount} lines \u2014 must be \
|
|
4150
|
+
suggestion: bloatPoints < POINTS_NOT_BLOATED && primaryName ? `${primaryName} is ${lineCount} lines \u2014 must be \u2264150 lines for full points (currently losing ${POINTS_NOT_BLOATED - bloatPoints} pts)` : void 0
|
|
4152
4151
|
});
|
|
4153
4152
|
const vagueMatches = [];
|
|
4154
4153
|
if (combinedContent) {
|
|
@@ -4342,6 +4341,7 @@ function validateDocumentedPaths(dir) {
|
|
|
4342
4341
|
const filePath = match[1];
|
|
4343
4342
|
if (seen.has(filePath)) continue;
|
|
4344
4343
|
seen.add(filePath);
|
|
4344
|
+
if (/\/path\/to\/|\/example[s]?\/|\/your[_-]|\/foo\/|\/bar\//.test(filePath)) continue;
|
|
4345
4345
|
if (existsSync5(join5(dir, filePath))) {
|
|
4346
4346
|
valid.push(filePath);
|
|
4347
4347
|
} else {
|
|
@@ -6143,6 +6143,17 @@ async function initCommand(options) {
|
|
|
6143
6143
|
}
|
|
6144
6144
|
const writeSpinner = ora2("Writing config files...").start();
|
|
6145
6145
|
try {
|
|
6146
|
+
if (!fs24.existsSync("AGENTS.md") && !generatedSetup.codex) {
|
|
6147
|
+
const setupFiles2 = collectSetupFiles(generatedSetup);
|
|
6148
|
+
const agentsStub = setupFiles2.find((f) => f.path === "AGENTS.md");
|
|
6149
|
+
if (agentsStub) {
|
|
6150
|
+
const setup = generatedSetup;
|
|
6151
|
+
setup.codex = { agentsMd: agentsStub.content };
|
|
6152
|
+
if (!setup.targetAgent || !setup.targetAgent.includes("codex")) {
|
|
6153
|
+
setup.targetAgent.push("codex");
|
|
6154
|
+
}
|
|
6155
|
+
}
|
|
6156
|
+
}
|
|
6146
6157
|
const result = writeSetup(generatedSetup);
|
|
6147
6158
|
writeSpinner.succeed("Config files written");
|
|
6148
6159
|
trackInitFilesWritten(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rely-ai/caliber",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.7",
|
|
4
4
|
"description": "Analyze your codebase and generate optimized AI agent configs (CLAUDE.md, .cursorrules, skills) — no API key needed",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
"test:coverage": "vitest run --coverage"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@anthropic-ai/sdk": "^0.
|
|
18
|
-
"@anthropic-ai/vertex-sdk": "^0.
|
|
17
|
+
"@anthropic-ai/sdk": "^0.78.0",
|
|
18
|
+
"@anthropic-ai/vertex-sdk": "^0.14.4",
|
|
19
19
|
"@inquirer/checkbox": "^5.1.0",
|
|
20
20
|
"@inquirer/confirm": "^6.0.8",
|
|
21
21
|
"@inquirer/select": "^5.1.0",
|
|
22
22
|
"chalk": "^5.4.0",
|
|
23
23
|
"commander": "^13.0.0",
|
|
24
24
|
"diff": "^8.0.3",
|
|
25
|
-
"glob": "^
|
|
25
|
+
"glob": "^13.0.6",
|
|
26
26
|
"google-auth-library": "^9.0.0",
|
|
27
|
-
"openai": "^
|
|
27
|
+
"openai": "^6.29.0",
|
|
28
28
|
"ora": "^8.1.0",
|
|
29
29
|
"posthog-node": "^5.28.2"
|
|
30
30
|
},
|