clud-bug 0.6.33 → 0.7.0-rc.1
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/bin/clud-bug.js +10 -1353
- package/dist/cli/agents-md.d.ts +16 -0
- package/dist/cli/agents-md.d.ts.map +1 -0
- package/dist/cli/agents-md.js +226 -0
- package/dist/cli/agents-md.js.map +1 -0
- package/dist/cli/audit.d.ts +13 -0
- package/dist/cli/audit.d.ts.map +1 -0
- package/dist/cli/audit.js +90 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/branch-protection.d.ts +57 -0
- package/dist/cli/branch-protection.d.ts.map +1 -0
- package/dist/cli/branch-protection.js +118 -0
- package/dist/cli/branch-protection.js.map +1 -0
- package/dist/cli/edit-workflow.d.ts +18 -0
- package/dist/cli/edit-workflow.d.ts.map +1 -0
- package/dist/cli/edit-workflow.js +43 -0
- package/dist/cli/edit-workflow.js.map +1 -0
- package/dist/cli/index.d.ts +8 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +18 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/main.d.ts +3 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +1336 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/cli/skill-usage.d.ts +109 -0
- package/dist/cli/skill-usage.d.ts.map +1 -0
- package/dist/cli/skill-usage.js +380 -0
- package/dist/cli/skill-usage.js.map +1 -0
- package/dist/cli/skills.d.ts +56 -0
- package/dist/cli/skills.d.ts.map +1 -0
- package/dist/cli/skills.js +292 -0
- package/dist/cli/skills.js.map +1 -0
- package/dist/cli/update.d.ts +29 -0
- package/dist/cli/update.d.ts.map +1 -0
- package/dist/cli/update.js +186 -0
- package/dist/cli/update.js.map +1 -0
- package/dist/cli/usage.d.ts +142 -0
- package/dist/cli/usage.d.ts.map +1 -0
- package/dist/cli/usage.js +348 -0
- package/dist/cli/usage.js.map +1 -0
- package/dist/core/audit.d.ts +8 -0
- package/dist/core/audit.d.ts.map +1 -0
- package/dist/core/audit.js +47 -0
- package/dist/core/audit.js.map +1 -0
- package/dist/core/detect.d.ts +77 -0
- package/dist/core/detect.d.ts.map +1 -0
- package/dist/core/detect.js +262 -0
- package/dist/core/detect.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +14 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/prompts.d.ts +9 -0
- package/dist/core/prompts.d.ts.map +1 -0
- package/dist/core/prompts.js +401 -0
- package/dist/core/prompts.js.map +1 -0
- package/dist/core/render-review.d.ts +6 -0
- package/dist/core/render-review.d.ts.map +1 -0
- package/dist/core/render-review.js +219 -0
- package/dist/core/render-review.js.map +1 -0
- package/dist/core/render.d.ts +13 -0
- package/dist/core/render.d.ts.map +1 -0
- package/dist/core/render.js +80 -0
- package/dist/core/render.js.map +1 -0
- package/dist/core/review-schema.d.ts +42 -0
- package/dist/core/review-schema.d.ts.map +1 -0
- package/dist/core/review-schema.js +156 -0
- package/dist/core/review-schema.js.map +1 -0
- package/dist/core/skills.d.ts +80 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +510 -0
- package/dist/core/skills.js.map +1 -0
- package/package.json +27 -4
- package/{lib/agents-md.js → src/cli/agents-md.ts} +25 -14
- package/{lib/audit.js → src/cli/audit.ts} +37 -44
- package/{lib/branch-protection.js → src/cli/branch-protection.ts} +75 -11
- package/{lib/edit-workflow.js → src/cli/edit-workflow.ts} +32 -11
- package/src/cli/index.ts +101 -0
- package/src/cli/main.ts +1376 -0
- package/{lib/skill-usage.js → src/cli/skill-usage.ts} +168 -94
- package/src/cli/skills.ts +386 -0
- package/{lib/update.js → src/cli/update.ts} +68 -27
- package/{lib/usage.js → src/cli/usage.ts} +167 -76
- package/src/core/audit.ts +53 -0
- package/{lib/detect.js → src/core/detect.ts} +100 -47
- package/src/core/index.ts +70 -0
- package/{lib/prompts.js → src/core/prompts.ts} +16 -2
- package/{lib/render-review.js → src/core/render-review.ts} +57 -25
- package/{lib/render.js → src/core/render.ts} +36 -10
- package/{lib/review-schema.js → src/core/review-schema.ts} +68 -5
- package/{lib/skills.js → src/core/skills.ts} +172 -343
- package/templates/workflow-py.yml.tmpl +2 -2
- package/templates/workflow-ts.yml.tmpl +2 -2
- package/templates/workflow.yml.tmpl +17 -8
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
import { readFile, readdir, stat } from 'node:fs/promises';
|
|
2
|
+
import { join, extname } from 'node:path';
|
|
3
|
+
// Lookup tables for the project-shape detectors. Each map is `as const` so
|
|
4
|
+
// downstream consumers can rely on the value types narrowing to the literal
|
|
5
|
+
// strings rather than `string` — `_internal.EXT_TO_LANG['.ts']` resolves to
|
|
6
|
+
// `'typescript'` for IDE navigation, not just `string`.
|
|
7
|
+
export const EXT_TO_LANG = {
|
|
8
|
+
'.ts': 'typescript', '.tsx': 'typescript',
|
|
9
|
+
'.js': 'javascript', '.jsx': 'javascript', '.mjs': 'javascript', '.cjs': 'javascript',
|
|
10
|
+
'.py': 'python',
|
|
11
|
+
'.go': 'go',
|
|
12
|
+
'.rs': 'rust',
|
|
13
|
+
'.rb': 'ruby',
|
|
14
|
+
'.java': 'java', '.kt': 'kotlin',
|
|
15
|
+
'.swift': 'swift',
|
|
16
|
+
'.php': 'php',
|
|
17
|
+
'.cs': 'csharp',
|
|
18
|
+
'.c': 'c', '.h': 'c',
|
|
19
|
+
'.cpp': 'cpp', '.cc': 'cpp', '.hpp': 'cpp',
|
|
20
|
+
};
|
|
21
|
+
// Dependency name → search term hint passed to skills.sh.
|
|
22
|
+
// Only well-known frameworks; obscure packages get filtered out so the
|
|
23
|
+
// skills.sh query doesn't get drowned in noise.
|
|
24
|
+
export const DEP_TO_TERM = {
|
|
25
|
+
'next': 'nextjs', 'react': 'react', 'vue': 'vue', 'svelte': 'svelte',
|
|
26
|
+
'@angular/core': 'angular', 'solid-js': 'solid',
|
|
27
|
+
'express': 'express', 'fastify': 'fastify', 'koa': 'koa', 'hono': 'hono',
|
|
28
|
+
'prisma': 'prisma', '@prisma/client': 'prisma', 'drizzle-orm': 'drizzle',
|
|
29
|
+
'mongoose': 'mongodb', 'mongodb': 'mongodb',
|
|
30
|
+
'tailwindcss': 'tailwind',
|
|
31
|
+
'vitest': 'vitest', 'jest': 'jest', 'playwright': 'playwright',
|
|
32
|
+
'@playwright/test': 'playwright',
|
|
33
|
+
'typescript': 'typescript',
|
|
34
|
+
};
|
|
35
|
+
export const PY_DEP_TO_TERM = {
|
|
36
|
+
'django': 'django', 'flask': 'flask', 'fastapi': 'fastapi',
|
|
37
|
+
'click': 'click', 'typer': 'typer',
|
|
38
|
+
'pytest': 'pytest', 'sqlalchemy': 'sqlalchemy',
|
|
39
|
+
'pydantic': 'pydantic', 'numpy': 'numpy', 'pandas': 'pandas',
|
|
40
|
+
};
|
|
41
|
+
async function fileExists(path) {
|
|
42
|
+
try {
|
|
43
|
+
await stat(path);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function readJsonSafe(path) {
|
|
51
|
+
try {
|
|
52
|
+
return JSON.parse(await readFile(path, 'utf8'));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async function readTextSafe(path) {
|
|
59
|
+
try {
|
|
60
|
+
return await readFile(path, 'utf8');
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function detectFromPackageJson(root) {
|
|
67
|
+
const pkg = await readJsonSafe(join(root, 'package.json'));
|
|
68
|
+
if (!pkg)
|
|
69
|
+
return null;
|
|
70
|
+
const deps = { ...(pkg.dependencies || {}), ...(pkg.devDependencies || {}) };
|
|
71
|
+
const terms = new Set();
|
|
72
|
+
for (const dep of Object.keys(deps)) {
|
|
73
|
+
const term = DEP_TO_TERM[dep];
|
|
74
|
+
if (term)
|
|
75
|
+
terms.add(term);
|
|
76
|
+
}
|
|
77
|
+
return {
|
|
78
|
+
name: pkg.name ?? null,
|
|
79
|
+
description: pkg.description || null,
|
|
80
|
+
languages: ['javascript', ...(deps.typescript || pkg.devDependencies?.typescript ? ['typescript'] : [])],
|
|
81
|
+
terms: [...terms],
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async function detectFromPyproject(root) {
|
|
85
|
+
const text = await readTextSafe(join(root, 'pyproject.toml'));
|
|
86
|
+
if (!text)
|
|
87
|
+
return null;
|
|
88
|
+
const terms = new Set();
|
|
89
|
+
for (const [dep, term] of Object.entries(PY_DEP_TO_TERM)) {
|
|
90
|
+
// crude but adequate match — full TOML parse would be overkill for the
|
|
91
|
+
// dependency-name lookup we actually need
|
|
92
|
+
if (new RegExp(`["']${dep}[><=~ "']`, 'i').test(text))
|
|
93
|
+
terms.add(term);
|
|
94
|
+
}
|
|
95
|
+
const nameMatch = text.match(/^\s*name\s*=\s*["']([^"']+)["']/m);
|
|
96
|
+
const descMatch = text.match(/^\s*description\s*=\s*["']([^"']+)["']/m);
|
|
97
|
+
return {
|
|
98
|
+
name: nameMatch?.[1] ?? null,
|
|
99
|
+
description: descMatch?.[1] ?? null,
|
|
100
|
+
languages: ['python'],
|
|
101
|
+
terms: [...terms],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
async function detectFromRequirements(root) {
|
|
105
|
+
const text = await readTextSafe(join(root, 'requirements.txt'));
|
|
106
|
+
if (!text)
|
|
107
|
+
return null;
|
|
108
|
+
const terms = new Set();
|
|
109
|
+
for (const line of text.split('\n')) {
|
|
110
|
+
const dep = (line.split(/[<>=~ #]/)[0] ?? '').trim().toLowerCase();
|
|
111
|
+
const term = PY_DEP_TO_TERM[dep];
|
|
112
|
+
if (term)
|
|
113
|
+
terms.add(term);
|
|
114
|
+
}
|
|
115
|
+
return { name: null, description: null, languages: ['python'], terms: [...terms] };
|
|
116
|
+
}
|
|
117
|
+
async function detectFromGoMod(root) {
|
|
118
|
+
const text = await readTextSafe(join(root, 'go.mod'));
|
|
119
|
+
if (!text)
|
|
120
|
+
return null;
|
|
121
|
+
const moduleMatch = text.match(/^module\s+(\S+)/m);
|
|
122
|
+
return {
|
|
123
|
+
name: moduleMatch?.[1]?.split('/').pop() ?? null,
|
|
124
|
+
description: null,
|
|
125
|
+
languages: ['go'],
|
|
126
|
+
terms: [],
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
async function detectFromCargo(root) {
|
|
130
|
+
const text = await readTextSafe(join(root, 'Cargo.toml'));
|
|
131
|
+
if (!text)
|
|
132
|
+
return null;
|
|
133
|
+
const nameMatch = text.match(/^\s*name\s*=\s*["']([^"']+)["']/m);
|
|
134
|
+
const descMatch = text.match(/^\s*description\s*=\s*["']([^"']+)["']/m);
|
|
135
|
+
return {
|
|
136
|
+
name: nameMatch?.[1] ?? null,
|
|
137
|
+
description: descMatch?.[1] ?? null,
|
|
138
|
+
languages: ['rust'],
|
|
139
|
+
terms: [],
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
async function detectFromGemfile(root) {
|
|
143
|
+
const text = await readTextSafe(join(root, 'Gemfile'));
|
|
144
|
+
if (!text)
|
|
145
|
+
return null;
|
|
146
|
+
return { name: null, description: null, languages: ['ruby'], terms: [] };
|
|
147
|
+
}
|
|
148
|
+
async function fileHistogram(root) {
|
|
149
|
+
const counts = {};
|
|
150
|
+
async function walk(dir, depth) {
|
|
151
|
+
if (depth > 3)
|
|
152
|
+
return;
|
|
153
|
+
let entries;
|
|
154
|
+
try {
|
|
155
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
for (const entry of entries) {
|
|
161
|
+
if (entry.name.startsWith('.') || entry.name === 'node_modules' ||
|
|
162
|
+
entry.name === 'dist' || entry.name === 'build' ||
|
|
163
|
+
entry.name === '__pycache__' || entry.name === 'target')
|
|
164
|
+
continue;
|
|
165
|
+
const full = join(dir, entry.name);
|
|
166
|
+
if (entry.isDirectory()) {
|
|
167
|
+
await walk(full, depth + 1);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
const lang = EXT_TO_LANG[extname(entry.name)];
|
|
171
|
+
if (lang)
|
|
172
|
+
counts[lang] = (counts[lang] || 0) + 1;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
await walk(root, 0);
|
|
177
|
+
return counts;
|
|
178
|
+
}
|
|
179
|
+
function firstParagraph(readme) {
|
|
180
|
+
if (!readme)
|
|
181
|
+
return null;
|
|
182
|
+
const lines = readme.split('\n').slice(0, 200);
|
|
183
|
+
const paragraphs = lines.join('\n').split(/\n\s*\n/);
|
|
184
|
+
for (const p of paragraphs) {
|
|
185
|
+
const cleaned = p.replace(/^#+\s*/, '').replace(/[*_`]/g, '').trim();
|
|
186
|
+
if (cleaned.length > 40)
|
|
187
|
+
return cleaned.slice(0, 500);
|
|
188
|
+
}
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
export async function detect(root) {
|
|
192
|
+
const detectors = [
|
|
193
|
+
detectFromPackageJson, detectFromPyproject, detectFromRequirements,
|
|
194
|
+
detectFromGoMod, detectFromCargo, detectFromGemfile,
|
|
195
|
+
];
|
|
196
|
+
const results = (await Promise.all(detectors.map(d => d(root)))).filter((r) => r !== null);
|
|
197
|
+
const histogram = await fileHistogram(root);
|
|
198
|
+
const readme = await readTextSafe(join(root, 'README.md'))
|
|
199
|
+
|| await readTextSafe(join(root, 'README'));
|
|
200
|
+
const languages = new Set();
|
|
201
|
+
const terms = new Set();
|
|
202
|
+
let name = null;
|
|
203
|
+
let description = null;
|
|
204
|
+
for (const r of results) {
|
|
205
|
+
for (const lang of r.languages)
|
|
206
|
+
languages.add(lang);
|
|
207
|
+
for (const term of r.terms)
|
|
208
|
+
terms.add(term);
|
|
209
|
+
if (!name && r.name)
|
|
210
|
+
name = r.name;
|
|
211
|
+
if (!description && r.description)
|
|
212
|
+
description = r.description;
|
|
213
|
+
}
|
|
214
|
+
for (const lang of Object.keys(histogram))
|
|
215
|
+
languages.add(lang);
|
|
216
|
+
if (!description)
|
|
217
|
+
description = firstParagraph(readme);
|
|
218
|
+
// Prefer the language with the most files when picking a primary
|
|
219
|
+
const sortedLangs = [...languages].sort((a, b) => (histogram[b] || 0) - (histogram[a] || 0));
|
|
220
|
+
return {
|
|
221
|
+
name,
|
|
222
|
+
description,
|
|
223
|
+
languages: sortedLangs,
|
|
224
|
+
histogram,
|
|
225
|
+
searchTerms: [...new Set([...terms, ...sortedLangs.slice(0, 2)])],
|
|
226
|
+
primaryLanguage: sortedLangs[0] ?? null,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
export function buildDescriptionLine(signals) {
|
|
230
|
+
const parts = [];
|
|
231
|
+
if (signals.name)
|
|
232
|
+
parts.push(`This project is "${signals.name}".`);
|
|
233
|
+
if (signals.description) {
|
|
234
|
+
// v0.6.25 / issue #89: when signals.description comes from a
|
|
235
|
+
// README first paragraph or similar multi-paragraph source, the
|
|
236
|
+
// raw `\n` characters survive into the rendered YAML's
|
|
237
|
+
// APPEND_SYSTEM_PROMPT value. The renderer's indent-aware
|
|
238
|
+
// substitution preserves layout but a literal `\n` inside a YAML
|
|
239
|
+
// double-quoted string is interpreted as a newline, breaking
|
|
240
|
+
// the YAML. Collapse any whitespace run (including newlines + tabs)
|
|
241
|
+
// to a single space before further processing.
|
|
242
|
+
const desc = signals.description.replace(/\s+/g, ' ').trim();
|
|
243
|
+
parts.push(/[.!?]$/.test(desc) ? desc : `${desc}.`);
|
|
244
|
+
}
|
|
245
|
+
if (signals.primaryLanguage) {
|
|
246
|
+
const frameworks = [...new Set(signals.searchTerms || [])].filter((t) => !['typescript', 'javascript', 'python', 'go', 'rust', 'ruby'].includes(t));
|
|
247
|
+
const frameworkPart = frameworks.length ? ` using ${frameworks.join(', ')}` : '';
|
|
248
|
+
parts.push(`It's primarily ${signals.primaryLanguage}${frameworkPart}.`);
|
|
249
|
+
}
|
|
250
|
+
if (parts.length === 0)
|
|
251
|
+
return 'Project context unavailable — review on the merits of the diff alone.';
|
|
252
|
+
return parts.join(' ');
|
|
253
|
+
}
|
|
254
|
+
// Architect's anti-pattern fix (Phase 2): the JS source used a single
|
|
255
|
+
// `export const _internal = { … }` namespace as a test seam. The TS port
|
|
256
|
+
// promotes the table exports (EXT_TO_LANG, DEP_TO_TERM, PY_DEP_TO_TERM)
|
|
257
|
+
// to direct top-level exports, and exposes the two helper functions
|
|
258
|
+
// fileHistogram + firstParagraph as direct named exports too. Tests now
|
|
259
|
+
// import each symbol by name. No `_internal` re-export — that pattern is
|
|
260
|
+
// gone.
|
|
261
|
+
export { fileHistogram, firstParagraph };
|
|
262
|
+
//# sourceMappingURL=detect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect.js","sourceRoot":"","sources":["../../src/core/detect.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { reviewPrompt, type ReviewPromptOptions, type ReviewPromptLanguage } from './prompts.js';
|
|
2
|
+
export { REVIEW_SCHEMA, serializedReviewSchema, type ReviewData, type ReviewFinding, type ReviewSummaryCounts, type ReviewStatusHeader, type FindingSeverity, type PerSkillScanItem, type DedicatedSection, } from './review-schema.js';
|
|
3
|
+
export { renderReview, SEVERITY_LABEL } from './render-review.js';
|
|
4
|
+
export { detect, buildDescriptionLine, EXT_TO_LANG, DEP_TO_TERM, PY_DEP_TO_TERM, fileHistogram, firstParagraph, type DetectedSignals, type DescriptionLineSignals, } from './detect.js';
|
|
5
|
+
export { render, renderFile, pickTemplate, templateLanguage, DEFAULTS, type RenderDefaults, type RenderVars, type TemplateLanguage, } from './render.js';
|
|
6
|
+
export { durationToGitSince, renderAuditHeader, type AuditHeaderInput, } from './audit.js';
|
|
7
|
+
export { API_BASE, MAX_SKILLS, SkillsClient, normalizeList, rankAndCap, readReviewMode, readAppliesTo, appliesToPr, partitionByReviewMode, extractPerSkillLine, selectReviewHeader, extractFirstReviewHeaderLine, selectReviewBody, extractStatsHeader, isCriticalReviewHeader, classifyPerSkillOutcome, type SkillDescriptor, type RankableSkill, type AppliesToRule, type SkillWithOptionalContent, type PrComment, type ReviewStatsHeader, } from './skills.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,sBAAsB,GAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,gBAAgB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,SAAS,EACd,KAAK,iBAAiB,GACvB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Public API surface for `clud-bug/core` (consumed via the package's
|
|
2
|
+
// `./core` exports map → `dist/core/index.js`).
|
|
3
|
+
//
|
|
4
|
+
// Each line re-exports one core module's public symbols. Modules are
|
|
5
|
+
// added incrementally as the v0.7.0 TypeScript migration converts each
|
|
6
|
+
// lib/* JS file.
|
|
7
|
+
export { reviewPrompt } from './prompts.js';
|
|
8
|
+
export { REVIEW_SCHEMA, serializedReviewSchema, } from './review-schema.js';
|
|
9
|
+
export { renderReview, SEVERITY_LABEL } from './render-review.js';
|
|
10
|
+
export { detect, buildDescriptionLine, EXT_TO_LANG, DEP_TO_TERM, PY_DEP_TO_TERM, fileHistogram, firstParagraph, } from './detect.js';
|
|
11
|
+
export { render, renderFile, pickTemplate, templateLanguage, DEFAULTS, } from './render.js';
|
|
12
|
+
export { durationToGitSince, renderAuditHeader, } from './audit.js';
|
|
13
|
+
export { API_BASE, MAX_SKILLS, SkillsClient, normalizeList, rankAndCap, readReviewMode, readAppliesTo, appliesToPr, partitionByReviewMode, extractPerSkillLine, selectReviewHeader, extractFirstReviewHeaderLine, selectReviewBody, extractStatsHeader, isCriticalReviewHeader, classifyPerSkillOutcome, } from './skills.js';
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,gDAAgD;AAChD,EAAE;AACF,qEAAqE;AACrE,uEAAuE;AACvE,iBAAiB;AAEjB,OAAO,EAAE,YAAY,EAAuD,MAAM,cAAc,CAAC;AACjG,OAAO,EACL,aAAa,EACb,sBAAsB,GAQvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,MAAM,EACN,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,MAAM,EACN,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,QAAQ,GAIT,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAElB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,cAAc,EACd,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,4BAA4B,EAC5B,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,GAOxB,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type ReviewPromptLanguage = 'generic' | 'ts' | 'py';
|
|
2
|
+
export interface ReviewPromptOptions {
|
|
3
|
+
projectDescription: string;
|
|
4
|
+
language?: ReviewPromptLanguage;
|
|
5
|
+
}
|
|
6
|
+
type ReviewPromptInput = Partial<ReviewPromptOptions>;
|
|
7
|
+
export declare function reviewPrompt(options?: ReviewPromptInput): string;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/core/prompts.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3D,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAMD,KAAK,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AA6BtD,wBAAgB,YAAY,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CA+WpE"}
|