@serdaraytac/agentsitter 1.0.4

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.
@@ -0,0 +1,143 @@
1
+ const PROFILES = {
2
+ claude: {
3
+ displayName: "Claude Code",
4
+ primaryModel: "claude-sonnet-4-6",
5
+ contextWindowTokens: 200_000,
6
+ costPerMillion: 3.0,
7
+ subscriptionBased: false,
8
+ expectedSections: ["commands", "architecture", "rules", "style"],
9
+ vaguenessSensitivity: 1.0,
10
+ },
11
+ cursor: {
12
+ displayName: "Cursor",
13
+ primaryModel: "claude-sonnet / gpt-4o (auto)",
14
+ contextWindowTokens: 200_000,
15
+ costPerMillion: 1.25,
16
+ subscriptionBased: false,
17
+ // GPT-4.1 follows instructions more literally — vagueness has higher cost
18
+ expectedSections: ["rules", "style", "context"],
19
+ vaguenessSensitivity: 1.2,
20
+ },
21
+ cline: {
22
+ displayName: "Cline",
23
+ primaryModel: "configurable (Claude Sonnet default)",
24
+ contextWindowTokens: 200_000,
25
+ costPerMillion: 3.0,
26
+ subscriptionBased: false,
27
+ expectedSections: ["rules", "context", "style"],
28
+ vaguenessSensitivity: 1.0,
29
+ },
30
+ codex: {
31
+ displayName: "Codex (OpenAI)",
32
+ primaryModel: "codex-1 / gpt-4.1",
33
+ contextWindowTokens: 200_000,
34
+ costPerMillion: 0,
35
+ subscriptionBased: true,
36
+ // codex-1 / GPT-4.1 is the most literal instruction follower — highest sensitivity
37
+ expectedSections: ["conventions", "testing", "architecture", "pr-instructions"],
38
+ vaguenessSensitivity: 1.3,
39
+ },
40
+ gemini: {
41
+ displayName: "Gemini CLI",
42
+ primaryModel: "gemini-2.5-pro",
43
+ contextWindowTokens: 1_000_000,
44
+ costPerMillion: 1.25,
45
+ subscriptionBased: false,
46
+ // Gemini docs recommend context-first, query-last ordering
47
+ expectedSections: ["instructions", "context", "constraints"],
48
+ vaguenessSensitivity: 1.0,
49
+ },
50
+ copilot: {
51
+ displayName: "GitHub Copilot",
52
+ primaryModel: "gpt-4o",
53
+ contextWindowTokens: 192_000,
54
+ costPerMillion: 0,
55
+ subscriptionBased: true,
56
+ expectedSections: ["instructions", "style"],
57
+ vaguenessSensitivity: 1.2,
58
+ },
59
+ windsurf: {
60
+ displayName: "Windsurf",
61
+ primaryModel: "claude-sonnet",
62
+ contextWindowTokens: 1_000_000,
63
+ costPerMillion: 0,
64
+ subscriptionBased: true,
65
+ expectedSections: ["rules", "style"],
66
+ vaguenessSensitivity: 1.0,
67
+ },
68
+ amp: {
69
+ displayName: "Amp",
70
+ primaryModel: "claude-opus-4-7",
71
+ contextWindowTokens: 1_000_000,
72
+ costPerMillion: 5.0,
73
+ subscriptionBased: false,
74
+ // Source: ampcode.com/manual — recommended content: architecture, build/test, conventions, review procedures
75
+ expectedSections: ["conventions", "testing", "architecture"],
76
+ vaguenessSensitivity: 1.0,
77
+ },
78
+ opencode: {
79
+ displayName: "OpenCode",
80
+ primaryModel: "configurable",
81
+ contextWindowTokens: 131_072,
82
+ costPerMillion: 3.0,
83
+ subscriptionBased: false,
84
+ // Source: opencode.ai/docs/rules — recommended: build/lint/test commands, architecture, conventions
85
+ expectedSections: ["rules", "commands", "architecture"],
86
+ vaguenessSensitivity: 1.1,
87
+ },
88
+ warp: {
89
+ displayName: "Warp",
90
+ primaryModel: "configurable",
91
+ contextWindowTokens: 200_000,
92
+ costPerMillion: 0,
93
+ subscriptionBased: true,
94
+ expectedSections: ["rules"],
95
+ vaguenessSensitivity: 1.1,
96
+ },
97
+ kimi: {
98
+ displayName: "Kimi Code CLI",
99
+ primaryModel: "kimi-k2",
100
+ contextWindowTokens: 200_000,
101
+ costPerMillion: 0.5,
102
+ subscriptionBased: false,
103
+ expectedSections: ["rules"],
104
+ vaguenessSensitivity: 1.1,
105
+ },
106
+ antigravity: {
107
+ displayName: "Antigravity",
108
+ primaryModel: "gemini-based",
109
+ contextWindowTokens: 1_000_000,
110
+ costPerMillion: 0,
111
+ subscriptionBased: true,
112
+ expectedSections: ["rules"],
113
+ vaguenessSensitivity: 1.0,
114
+ },
115
+ firebender: {
116
+ displayName: "Firebender",
117
+ primaryModel: "unknown",
118
+ contextWindowTokens: 200_000,
119
+ costPerMillion: 0,
120
+ subscriptionBased: true,
121
+ expectedSections: ["rules"],
122
+ vaguenessSensitivity: 1.1,
123
+ },
124
+ // Fallback for any platform not explicitly profiled.
125
+ // Uses the most conservative values across known platforms:
126
+ // - vaguenessSensitivity: mirrors Codex (1.3) — highest known value, safest assumption
127
+ // - contextWindowTokens: 128k — smallest sensible modern window, strictest token-efficiency threshold
128
+ // - costPerMillion: Claude Sonnet rate ($3/M) — non-zero so cost warnings still surface
129
+ // - expectedSections: minimal ["rules"] — avoids false positives on unknown formats
130
+ unknown: {
131
+ displayName: "Unknown Platform",
132
+ primaryModel: "unknown",
133
+ contextWindowTokens: 128_000,
134
+ costPerMillion: 3.0,
135
+ subscriptionBased: false,
136
+ expectedSections: ["rules"],
137
+ vaguenessSensitivity: 1.3,
138
+ },
139
+ };
140
+ export function getProfile(platform) {
141
+ return PROFILES[platform];
142
+ }
143
+ //# sourceMappingURL=platforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platforms.js","sourceRoot":"","sources":["../src/platforms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { AnalysisResult } from "./analyzer.js";
2
+ export interface CategoryScores {
3
+ clarity: number;
4
+ structure: number;
5
+ tokenEfficiency: number;
6
+ coverage: number;
7
+ }
8
+ export interface ScoreResult {
9
+ overall: number;
10
+ categories: CategoryScores;
11
+ grade: "A" | "B" | "C" | "D" | "F";
12
+ }
13
+ export declare function score(result: AnalysisResult): ScoreResult;
14
+ //# sourceMappingURL=scorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scorer.d.ts","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;CACpC;AAmHD,wBAAgB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,WAAW,CAazD"}
package/dist/scorer.js ADDED
@@ -0,0 +1,124 @@
1
+ import { getProfile } from "./platforms.js";
2
+ // Each category is worth 25 points; penalties accumulate within each.
3
+ function clamp(value, min = 0, max = 100) {
4
+ return Math.max(min, Math.min(max, value));
5
+ }
6
+ // Penalty weights per category, calibrated against:
7
+ // - AMBIG-SWE (arXiv:2502.13069): informational gaps hurt most
8
+ // - Passive voice study (arXiv:2402.10800): passive voice less harmful than assumed
9
+ const CATEGORY_PENALTIES = {
10
+ "false-shared-context": 7, // model fills gaps with its own assumptions
11
+ "outcome-without-criterion": 6, // no success definition → unverifiable output
12
+ "unmeasurable-quality": 5, // subjective → inconsistent output
13
+ "passive-voice": 5, // harmful but less than assumed (arXiv:2402.10800)
14
+ "comparative-without-baseline": 4, // directional but no target
15
+ "vague-condition": 3, // trigger unclear; agent can partially recover
16
+ "weak-obligation": 2, // least harmful — model likely complies anyway
17
+ };
18
+ function scoreClarity(result) {
19
+ const { vaguenessSensitivity } = getProfile(result.platform);
20
+ let penalty = 0;
21
+ for (const { category } of result.checks.vagueRules.vagueLines) {
22
+ penalty += (CATEGORY_PENALTIES[category] ?? 5) * vaguenessSensitivity;
23
+ }
24
+ return clamp(25 - Math.min(Math.round(penalty), 25));
25
+ }
26
+ function scoreStructure(result) {
27
+ const { hasHeadings, headingCount, longParagraphLines, unorganizedRuleCount } = result.checks.structure;
28
+ let score = 25;
29
+ if (!hasHeadings)
30
+ score -= 15;
31
+ else if (headingCount < 2)
32
+ score -= 5;
33
+ score -= Math.min(10, longParagraphLines.length * 2);
34
+ score -= Math.min(5, Math.floor(unorganizedRuleCount / 2));
35
+ // Platform-specific format compliance penalties
36
+ for (const issue of result.checks.formatCompliance.issues) {
37
+ if (issue.severity === "critical")
38
+ score -= 10;
39
+ else if (issue.severity === "warning")
40
+ score -= 5;
41
+ else
42
+ score -= 2;
43
+ }
44
+ return clamp(score);
45
+ }
46
+ function scoreTokenEfficiency(result) {
47
+ const { tokenCount } = result.checks.tokenCost;
48
+ const { duplicatePhrases } = result.checks.duplicates;
49
+ const { contextWindowTokens } = getProfile(result.platform);
50
+ let score = 25;
51
+ // DETAIL (arXiv:2512.02246): specific prompts avg 124 tokens, vague ones avg 57.
52
+ // "Too long" thresholds scale proportionally with the platform's context window.
53
+ const scaleFactor = Math.min(contextWindowTokens / 200_000, 5);
54
+ const thresholdModerate = Math.round(1_000 * scaleFactor);
55
+ const thresholdHeavy = Math.round(2_000 * scaleFactor);
56
+ const thresholdBloated = Math.round(4_000 * scaleFactor);
57
+ // Short-file penalties are independent of window size — a 50-token config is useless everywhere.
58
+ if (tokenCount < 50)
59
+ score -= 10;
60
+ else if (tokenCount < 150)
61
+ score -= 3;
62
+ else if (tokenCount > thresholdBloated)
63
+ score -= 15;
64
+ else if (tokenCount > thresholdHeavy)
65
+ score -= 7;
66
+ else if (tokenCount > thresholdModerate)
67
+ score -= 3;
68
+ score -= Math.min(10, duplicatePhrases.length * 3);
69
+ // Codex enforces a hard 32 KiB (≈8,192 token) truncation limit — content beyond it is silently
70
+ // dropped. This is qualitatively different from soft verbosity: the agent never sees the rules.
71
+ // Penalize separately from the generic window scaling above.
72
+ if (result.platform === "codex") {
73
+ const CODEX_HARD_LIMIT_TOKENS = 8_192; // 32,768 bytes / 4 chars per token
74
+ if (tokenCount > CODEX_HARD_LIMIT_TOKENS)
75
+ score -= 10;
76
+ else if (tokenCount > CODEX_HARD_LIMIT_TOKENS * 0.8)
77
+ score -= 5;
78
+ }
79
+ return clamp(score);
80
+ }
81
+ function scoreCoverage(result) {
82
+ const { missing, present } = result.checks.missingSections;
83
+ const total = missing.length + present.length;
84
+ if (total === 0)
85
+ return 25;
86
+ const coveredRatio = present.length / total;
87
+ let score = Math.round(25 * coveredRatio);
88
+ // Bonus for having critical content placed well
89
+ const { criticalInHead, criticalInTail } = result.checks.attentionPlacement;
90
+ if (criticalInHead || criticalInTail)
91
+ score = Math.min(25, score + 3);
92
+ // Claude Code: runnable commands are the highest-value content in CLAUDE.md — without them
93
+ // Claude must spend tokens discovering build/test/lint commands on every session.
94
+ if (result.platform === "claude") {
95
+ const missingBuildCommands = result.checks.formatCompliance.issues.some((i) => i.code === "CLAUDE_MISSING_BUILD_COMMANDS");
96
+ if (missingBuildCommands)
97
+ score -= 5;
98
+ }
99
+ return clamp(score);
100
+ }
101
+ function toGrade(overall) {
102
+ if (overall >= 90)
103
+ return "A";
104
+ if (overall >= 75)
105
+ return "B";
106
+ if (overall >= 60)
107
+ return "C";
108
+ if (overall >= 40)
109
+ return "D";
110
+ return "F";
111
+ }
112
+ export function score(result) {
113
+ const clarity = scoreClarity(result);
114
+ const structure = scoreStructure(result);
115
+ const tokenEfficiency = scoreTokenEfficiency(result);
116
+ const coverage = scoreCoverage(result);
117
+ const overall = clamp(clarity + structure + tokenEfficiency + coverage);
118
+ return {
119
+ overall,
120
+ categories: { clarity, structure, tokenEfficiency, coverage },
121
+ grade: toGrade(overall),
122
+ };
123
+ }
124
+ //# sourceMappingURL=scorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scorer.js","sourceRoot":"","sources":["../src/scorer.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@serdaraytac/agentsitter",
3
+ "version": "1.0.4",
4
+ "description": "Analyze, score, and optimize AI coding agent config files",
5
+ "main": "dist/mcp-server.js",
6
+ "bin": {
7
+ "agentsitter": "dist/mcp-server.js"
8
+ },
9
+ "scripts": {
10
+ "prepare": "npm run build",
11
+ "build": "tsc",
12
+ "build:web": "esbuild src/browser.ts --bundle --platform=browser --format=iife --global-name=ConfigMode --outfile=web/bundle.js --minify",
13
+ "dev": "tsx src/mcp-server.ts",
14
+ "test": "vitest run",
15
+ "test:watch": "vitest"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "claude",
20
+ "cursor",
21
+ "ai-agent",
22
+ "config",
23
+ "analyzer",
24
+ "llm",
25
+ "coding-agent"
26
+ ],
27
+ "author": "serdaraytac",
28
+ "license": "Elastic-2.0",
29
+ "type": "module",
30
+ "files": [
31
+ "dist",
32
+ "LICENSE",
33
+ "README.md"
34
+ ],
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "git+https://github.com/serdaraytac/agentsitter.git"
38
+ },
39
+ "homepage": "https://github.com/serdaraytac/agentsitter#readme",
40
+ "bugs": {
41
+ "url": "https://github.com/serdaraytac/agentsitter/issues"
42
+ },
43
+ "engines": {
44
+ "node": ">=22"
45
+ },
46
+ "dependencies": {
47
+ "@modelcontextprotocol/sdk": "^1.29.0"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^25.7.0",
51
+ "esbuild": "^0.25.12",
52
+ "tsx": "^4.21.0",
53
+ "typescript": "^6.0.3",
54
+ "vitest": "^4.1.6"
55
+ }
56
+ }