clud-bug 0.6.34 → 0.7.0-rc.2
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 +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +31 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/prompt-builder.d.ts +164 -0
- package/dist/core/prompt-builder.d.ts.map +1 -0
- package/dist/core/prompt-builder.js +419 -0
- package/dist/core/prompt-builder.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-zod.d.ts +240 -0
- package/dist/core/review-schema-zod.d.ts.map +1 -0
- package/dist/core/review-schema-zod.js +218 -0
- package/dist/core/review-schema-zod.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/review-writeback.d.ts +139 -0
- package/dist/core/review-writeback.d.ts.map +1 -0
- package/dist/core/review-writeback.js +313 -0
- package/dist/core/review-writeback.js.map +1 -0
- package/dist/core/skills.d.ts +122 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +636 -0
- package/dist/core/skills.js.map +1 -0
- package/package.json +30 -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 +155 -0
- package/src/core/prompt-builder.ts +561 -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/src/core/review-schema-zod.ts +262 -0
- package/{lib/review-schema.js → src/core/review-schema.ts} +68 -5
- package/src/core/review-writeback.ts +446 -0
- package/{lib/skills.js → src/core/skills.ts} +339 -342
- 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,122 @@
|
|
|
1
|
+
export declare const API_BASE = "https://skills.sh/api/v1";
|
|
2
|
+
export declare const MAX_SKILLS = 8;
|
|
3
|
+
export interface SkillDescriptor {
|
|
4
|
+
source: string;
|
|
5
|
+
name: string;
|
|
6
|
+
description: string;
|
|
7
|
+
installs: number;
|
|
8
|
+
kind?: string;
|
|
9
|
+
content?: string;
|
|
10
|
+
}
|
|
11
|
+
type RawSkillItem = {
|
|
12
|
+
source?: string;
|
|
13
|
+
repo?: string;
|
|
14
|
+
name?: string;
|
|
15
|
+
slug?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
summary?: string;
|
|
18
|
+
installs?: number;
|
|
19
|
+
installCount?: number;
|
|
20
|
+
};
|
|
21
|
+
type RawSkillListResponse = RawSkillItem[] | {
|
|
22
|
+
skills?: RawSkillItem[];
|
|
23
|
+
results?: RawSkillItem[];
|
|
24
|
+
} | unknown;
|
|
25
|
+
export declare function normalizeList(data: RawSkillListResponse): SkillDescriptor[];
|
|
26
|
+
interface SkillsClientOptions {
|
|
27
|
+
fetch?: typeof globalThis.fetch;
|
|
28
|
+
base?: string;
|
|
29
|
+
userAgent?: string;
|
|
30
|
+
}
|
|
31
|
+
export declare class SkillsClient {
|
|
32
|
+
#private;
|
|
33
|
+
private readonly fetch;
|
|
34
|
+
private readonly base;
|
|
35
|
+
private readonly userAgent;
|
|
36
|
+
constructor({ fetch, base, userAgent }?: SkillsClientOptions);
|
|
37
|
+
search(terms: string[]): Promise<SkillDescriptor[]>;
|
|
38
|
+
curated(): Promise<SkillDescriptor[]>;
|
|
39
|
+
getContent(source: string, name: string): Promise<string>;
|
|
40
|
+
}
|
|
41
|
+
export interface RankableSkill extends SkillDescriptor {
|
|
42
|
+
kind?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function rankAndCap(curated: RankableSkill[], searched: RankableSkill[], baseline: RankableSkill[], cap?: number): RankableSkill[];
|
|
45
|
+
export declare function readReviewMode(skillContent: unknown): 'shared' | 'dedicated';
|
|
46
|
+
export interface AppliesToRule {
|
|
47
|
+
paths: string[];
|
|
48
|
+
extensions: string[];
|
|
49
|
+
}
|
|
50
|
+
export declare function readAppliesTo(skillContent: unknown): AppliesToRule | null;
|
|
51
|
+
export declare function appliesToPr(skillContent: unknown, prPaths: unknown): boolean;
|
|
52
|
+
export interface SkillWithOptionalContent {
|
|
53
|
+
content?: unknown;
|
|
54
|
+
[key: string]: unknown;
|
|
55
|
+
}
|
|
56
|
+
export declare function partitionByReviewMode<T extends SkillWithOptionalContent>(skills: T[]): {
|
|
57
|
+
shared: T[];
|
|
58
|
+
dedicated: T[];
|
|
59
|
+
};
|
|
60
|
+
export declare function extractPerSkillLine(comment: unknown, skillName: unknown): string | null;
|
|
61
|
+
export interface PrComment {
|
|
62
|
+
body?: unknown;
|
|
63
|
+
user?: {
|
|
64
|
+
login?: unknown;
|
|
65
|
+
};
|
|
66
|
+
created_at?: unknown;
|
|
67
|
+
}
|
|
68
|
+
export declare function selectReviewHeader(comments: unknown, botLogin: unknown): string | null;
|
|
69
|
+
export declare function extractFirstReviewHeaderLine(body: unknown): string | null;
|
|
70
|
+
export declare function selectReviewBody(comments: unknown, botLogin: unknown): string | null;
|
|
71
|
+
export interface ReviewStatsHeader {
|
|
72
|
+
important: number;
|
|
73
|
+
nit: number;
|
|
74
|
+
preExisting: number;
|
|
75
|
+
}
|
|
76
|
+
export declare function extractStatsHeader(comment: unknown): ReviewStatsHeader | null;
|
|
77
|
+
export declare function isCriticalReviewHeader(headerLine: unknown): boolean;
|
|
78
|
+
export declare function classifyPerSkillOutcome(outcomeLine: unknown): 'failure' | 'success';
|
|
79
|
+
/** Source provenance for an installed skill (see SPEC §1.10). */
|
|
80
|
+
export type SkillSource = 'manual' | 'logmind-derived' | 'skills-sh' | 'clud-bug-baseline';
|
|
81
|
+
export type SkillReviewMode = 'shared' | 'dedicated';
|
|
82
|
+
/**
|
|
83
|
+
* Parsed SKILL.md frontmatter. The App uses this shape (see
|
|
84
|
+
* `clud-bug-app/lib/skills-loader.ts:40`); the prompt builder's
|
|
85
|
+
* `PromptSkillFrontmatter` is a narrower subset (name + description +
|
|
86
|
+
* applies_to) so we keep the full shape here.
|
|
87
|
+
*/
|
|
88
|
+
export interface SkillFrontmatter {
|
|
89
|
+
name: string;
|
|
90
|
+
description: string;
|
|
91
|
+
source: SkillSource | string;
|
|
92
|
+
review_mode: SkillReviewMode;
|
|
93
|
+
applies_to?: {
|
|
94
|
+
paths?: string[];
|
|
95
|
+
extensions?: string[];
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Minimal YAML frontmatter parser. Handles:
|
|
100
|
+
* - `key: value` (scalar)
|
|
101
|
+
* - `key: [a, b, c]` (inline list)
|
|
102
|
+
* - `key:\n subkey: value` (one-level nesting — applies_to)
|
|
103
|
+
*
|
|
104
|
+
* Throws on malformed input; the App's `loadSkillsFromBaseRef` catches
|
|
105
|
+
* and skips the skill (a bad SKILL.md doesn't take down the whole review).
|
|
106
|
+
*
|
|
107
|
+
* Deliberately NOT a general-purpose YAML parser — SPEC §1.10 fixes the
|
|
108
|
+
* frontmatter schema to a handful of fields. If the schema grows beyond
|
|
109
|
+
* what this hand-rolled parser handles, swap to `js-yaml` — the boundary
|
|
110
|
+
* is this function.
|
|
111
|
+
*/
|
|
112
|
+
export declare function parseFrontmatter(raw: string): SkillFrontmatter;
|
|
113
|
+
/**
|
|
114
|
+
* Strip the leading `---\n...\n---\n` from a SKILL.md file. Returns the
|
|
115
|
+
* markdown body (the part the LLM actually reads).
|
|
116
|
+
*
|
|
117
|
+
* Ported from `clud-bug-app/lib/skills-loader.ts:269` so callers don't have
|
|
118
|
+
* to re-implement the regex.
|
|
119
|
+
*/
|
|
120
|
+
export declare function stripFrontmatter(raw: string): string;
|
|
121
|
+
export {};
|
|
122
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/core/skills.ts"],"names":[],"mappings":"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"}
|