@prave/shared 1.2.2 → 1.3.0

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,54 @@
1
+ import type { AgentType } from '../types/intelligence.js';
2
+ /**
3
+ * compileSkill — convert a single canonical `SKILL.md` body into the
4
+ * exact file shape each supported agent expects.
5
+ *
6
+ * Why this lives in `@prave/shared`:
7
+ * - The CLI's `prave deploy` writes the converted file straight to
8
+ * the agent's local directory.
9
+ * - The SaaS `/dashboard/compile` page bundles converted files into
10
+ * a zip download.
11
+ * - Both need byte-identical output, otherwise users see drift
12
+ * between "what `prave deploy` puts on disk" and "what the
13
+ * compile page generates". Putting the converters in a shared
14
+ * package is the only way to guarantee that.
15
+ *
16
+ * Per-agent conversion rules (current 6 supported, others stubbed):
17
+ *
18
+ * claude / cline / amp / gemini / codex
19
+ * Identity transform. The canonical SKILL.md format IS the
20
+ * Anthropic skill format; these agents either use it natively or
21
+ * accept it via a `~/.<agent>/skills/<slug>/SKILL.md` directory
22
+ * convention. Returned `relPath`s mirror that layout.
23
+ *
24
+ * cursor
25
+ * Cursor's rules format is `.cursor/rules/<slug>.mdc` with
26
+ * frontmatter `globs:` instead of `triggers:`. We rename the key
27
+ * when frontmatter is present; when absent, we synthesize a
28
+ * minimal frontmatter block so the .mdc file parses cleanly. The
29
+ * body is left untouched.
30
+ *
31
+ * The `path` returned is a **POSIX-style relative path** rooted at the
32
+ * agent's install dir. The CLI joins it onto the expanded `basePath`
33
+ * (e.g. `~/.claude/skills/`); the web zip uses it as the in-archive
34
+ * path. Never absolute, never platform-specific separators — that's
35
+ * the caller's job.
36
+ */
37
+ export interface CompiledArtifact {
38
+ agent: AgentType;
39
+ /** Relative path within the agent's install root. POSIX separators. */
40
+ path: string;
41
+ /** File body to write at `path`. UTF-8 text. */
42
+ content: string;
43
+ /**
44
+ * `true` when the body was rewritten (frontmatter rename, key
45
+ * synthesis, format mutation). UI surfaces this as a small
46
+ * "converted" badge so users know the agent gets a non-canonical
47
+ * shape. `false` for identity-transformed agents.
48
+ */
49
+ converted: boolean;
50
+ }
51
+ export declare function compileSkill(content: string, slug: string, agent: AgentType): CompiledArtifact;
52
+ /** Bundle helper — compile a skill for many agents in one pass. */
53
+ export declare function compileSkillBundle(content: string, slug: string, agents: ReadonlyArray<AgentType>): CompiledArtifact[];
54
+ //# sourceMappingURL=compile-skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compile-skill.d.ts","sourceRoot":"","sources":["../../src/lib/compile-skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,SAAS,CAAA;IAChB,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAA;IACf;;;;;OAKG;IACH,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,GACf,gBAAgB,CAWlB;AAED,mEAAmE;AACnE,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAC/B,gBAAgB,EAAE,CAEpB"}
@@ -0,0 +1,52 @@
1
+ export function compileSkill(content, slug, agent) {
2
+ switch (agent) {
3
+ case 'cursor':
4
+ return compileCursor(content, slug);
5
+ case 'claude':
6
+ case 'codex':
7
+ case 'gemini':
8
+ case 'cline':
9
+ case 'amp':
10
+ return compileIdentity(content, slug, agent);
11
+ }
12
+ }
13
+ /** Bundle helper — compile a skill for many agents in one pass. */
14
+ export function compileSkillBundle(content, slug, agents) {
15
+ return agents.map((a) => compileSkill(content, slug, a));
16
+ }
17
+ /* ─── per-agent converters ─────────────────────────────────────── */
18
+ function compileIdentity(content, slug, agent) {
19
+ return {
20
+ agent,
21
+ path: `${slug}/SKILL.md`,
22
+ content,
23
+ converted: false,
24
+ };
25
+ }
26
+ function compileCursor(content, slug) {
27
+ const fmMatch = content.match(/^---\n([\s\S]*?)\n---\n?/);
28
+ let out;
29
+ if (fmMatch && fmMatch[1] !== undefined) {
30
+ const body = content.slice(fmMatch[0].length);
31
+ // Cursor's spec uses `globs:` not `triggers:`. Other fields
32
+ // (name, description, tags) pass through unchanged. We rename
33
+ // line-anchored so a `triggers:` substring inside an example
34
+ // code block in the body isn't accidentally rewritten.
35
+ const fmInner = fmMatch[1].replace(/(^|\n)triggers:/g, '$1globs:');
36
+ out = `---\n${fmInner}\n---\n${body}`;
37
+ }
38
+ else {
39
+ // No frontmatter at all — synthesize a minimal one from the slug
40
+ // and the first non-blank line of the body. Cursor refuses .mdc
41
+ // files without frontmatter, so this is the difference between
42
+ // a working rule and a broken one.
43
+ const firstLine = content.trim().replace(/\s+/g, ' ').slice(0, 200);
44
+ out = `---\nname: ${slug}\ndescription: ${firstLine}\n---\n${content}`;
45
+ }
46
+ return {
47
+ agent: 'cursor',
48
+ path: `.cursor/rules/${slug}.mdc`,
49
+ content: out,
50
+ converted: true,
51
+ };
52
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './classify.js';
2
+ export * from './compile-skill.js';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,oBAAoB,CAAA"}
package/dist/lib/index.js CHANGED
@@ -1 +1,2 @@
1
1
  export * from './classify.js';
2
+ export * from './compile-skill.js';
@@ -457,4 +457,55 @@ export declare const mySkillsQuerySchema: z.ZodObject<{
457
457
  offset?: number | undefined;
458
458
  }>;
459
459
  export type MySkillsQuery = z.infer<typeof mySkillsQuerySchema>;
460
+ /**
461
+ * Auto-Skill — user can shape the generation via three optional
462
+ * wizard fields. None are required (the URL alone gives a working
463
+ * skill), but every one of them dramatically tightens the output to
464
+ * the user's actual codebase + workflow.
465
+ */
466
+ export declare const autoSkillFromRepoRequestSchema: z.ZodObject<{
467
+ repo_url: z.ZodEffects<z.ZodString, string, string>;
468
+ /**
469
+ * Optional category tag. UI auto-detects a default from the repo's
470
+ * primary language; user can override at wizard-step 1.
471
+ */
472
+ category: z.ZodOptional<z.ZodString>;
473
+ /**
474
+ * Wizard step 2 — free-form "what should this skill help with?".
475
+ * Examples: "writing tests with vitest + RTL", "auth flow only",
476
+ * "infrastructure / deploy scripts". Feeds the Claude prompt as
477
+ * an explicit `focus:` clause so the body of the generated
478
+ * SKILL.md is scoped tight rather than trying to cover the whole
479
+ * codebase.
480
+ */
481
+ focus: z.ZodOptional<z.ZodString>;
482
+ /**
483
+ * Wizard step 3 — when should Claude auto-load this skill? User
484
+ * can list file patterns (glob-style) or intent phrases ("when
485
+ * debugging auth", "in CI failure reviews"). If empty, Claude
486
+ * infers triggers from the repo file tree.
487
+ */
488
+ triggers: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
489
+ /**
490
+ * Wizard step 4 — power-user prompt augmentation. Free-form text
491
+ * appended to the Claude system prompt for the generation. Use
492
+ * for project-specific quirks ("never recommend pnpm", "follow
493
+ * the repo's existing import ordering conventions"). Hidden
494
+ * behind an "Advanced" disclosure in the wizard.
495
+ */
496
+ custom_instructions: z.ZodOptional<z.ZodString>;
497
+ }, "strip", z.ZodTypeAny, {
498
+ repo_url: string;
499
+ category?: string | undefined;
500
+ focus?: string | undefined;
501
+ triggers?: string[] | undefined;
502
+ custom_instructions?: string | undefined;
503
+ }, {
504
+ repo_url: string;
505
+ category?: string | undefined;
506
+ focus?: string | undefined;
507
+ triggers?: string[] | undefined;
508
+ custom_instructions?: string | undefined;
509
+ }>;
510
+ export type AutoSkillFromRepoRequest = z.infer<typeof autoSkillFromRepoRequestSchema>;
460
511
  //# sourceMappingURL=skill.schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,qBAAqB,kCAAgC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;IAsBtB;;;;;OAKG;;;;IAIH,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;IAElE,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE7D,6EAA6E;;IAE7E,mEAAmE;;IAEnE,+EAA+E;;IAE/E,gGAAgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchG,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;IA4B/B,2EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3E,CAAA;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,eAAe,2DAAyD,CAAA;AACrF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA"}
1
+ {"version":3,"file":"skill.schema.d.ts","sourceRoot":"","sources":["../../src/schemas/skill.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,qBAAqB,kCAAgC,CAAA;AAClE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS1B,CAAA;AACF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,iFAAiF;AACjF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;EAO5B,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAA;AAE3D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;IAsBtB;;;;;OAKG;;;;IAIH,kEAAkE;;;;;;;;;;;;;;;;;;;;;;;IAElE,6DAA6D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAE7D,6EAA6E;;IAE7E,mEAAmE;;IAEnE,+EAA+E;;IAE/E,gGAAgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAchG,CAAA;AACF,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;IA4B/B,2EAA2E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAW3E,CAAA;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,eAAe,2DAAyD,CAAA;AACrF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAEvD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAOjC,CAAA;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAA;AAErE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;EAE9B,CAAA;AACF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAI/D;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;IAQzC;;;OAGG;;IAEH;;;;;;;OAOG;;IAEH;;;;;OAKG;;IAEH;;;;;;OAMG;;;;;;;;;;;;;;EAEH,CAAA;AACF,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAA"}
@@ -131,3 +131,45 @@ export const skillSearchQuerySchema = z.object({
131
131
  export const mySkillsQuerySchema = skillSearchQuerySchema.extend({
132
132
  visibility: z.enum(['public', 'private']).optional(),
133
133
  });
134
+ /* ─── Auto-Skill from Repo ──────────────────────────────────────── */
135
+ /**
136
+ * Auto-Skill — user can shape the generation via three optional
137
+ * wizard fields. None are required (the URL alone gives a working
138
+ * skill), but every one of them dramatically tightens the output to
139
+ * the user's actual codebase + workflow.
140
+ */
141
+ export const autoSkillFromRepoRequestSchema = z.object({
142
+ repo_url: z
143
+ .string()
144
+ .url()
145
+ .refine((s) => /^https?:\/\/(www\.)?github\.com\//i.test(s), 'Only GitHub repository URLs are supported'),
146
+ /**
147
+ * Optional category tag. UI auto-detects a default from the repo's
148
+ * primary language; user can override at wizard-step 1.
149
+ */
150
+ category: z.string().min(1).max(64).optional(),
151
+ /**
152
+ * Wizard step 2 — free-form "what should this skill help with?".
153
+ * Examples: "writing tests with vitest + RTL", "auth flow only",
154
+ * "infrastructure / deploy scripts". Feeds the Claude prompt as
155
+ * an explicit `focus:` clause so the body of the generated
156
+ * SKILL.md is scoped tight rather than trying to cover the whole
157
+ * codebase.
158
+ */
159
+ focus: z.string().min(1).max(400).optional(),
160
+ /**
161
+ * Wizard step 3 — when should Claude auto-load this skill? User
162
+ * can list file patterns (glob-style) or intent phrases ("when
163
+ * debugging auth", "in CI failure reviews"). If empty, Claude
164
+ * infers triggers from the repo file tree.
165
+ */
166
+ triggers: z.array(z.string().min(1).max(120)).max(10).optional(),
167
+ /**
168
+ * Wizard step 4 — power-user prompt augmentation. Free-form text
169
+ * appended to the Claude system prompt for the generation. Use
170
+ * for project-specific quirks ("never recommend pnpm", "follow
171
+ * the repo's existing import ordering conventions"). Hidden
172
+ * behind an "Advanced" disclosure in the wizard.
173
+ */
174
+ custom_instructions: z.string().min(1).max(800).optional(),
175
+ });
@@ -92,6 +92,13 @@ export interface PlanLimits {
92
92
  * but don't appear in conflict/optimizer outputs.
93
93
  */
94
94
  intelligence_indexed_max: number | null;
95
+ /**
96
+ * Monthly cap on Auto-Skill-from-Repo generations (server-side
97
+ * Anthropic-API-backed). `null` = unlimited. Free: 3, Pro: 30,
98
+ * Max: unlimited. Counter resets on month rollover via the
99
+ * `tick_auto_skill_quota` RPC.
100
+ */
101
+ auto_skill_monthly_limit: number | null;
95
102
  /** "Apply all suggestions" batch run on the editor. */
96
103
  can_apply_all: boolean;
97
104
  /** Hook + scanner usage tracking. */
@@ -1 +1 @@
1
- {"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../../src/types/plan-limits.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-limits.d.ts","sourceRoot":"","sources":["../../src/types/plan-limits.ts"],"names":[],"mappings":"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"}
@@ -32,6 +32,7 @@ export const PLAN_LIMITS = {
32
32
  can_byo_tester_key: false,
33
33
  can_intelligence: false,
34
34
  intelligence_indexed_max: 0,
35
+ auto_skill_monthly_limit: 3,
35
36
  can_apply_all: false,
36
37
  can_usage_tracking: false,
37
38
  usage_history_days: 0,
@@ -77,6 +78,7 @@ export const PLAN_LIMITS = {
77
78
  can_byo_tester_key: false,
78
79
  can_intelligence: true,
79
80
  intelligence_indexed_max: 25,
81
+ auto_skill_monthly_limit: 30,
80
82
  can_apply_all: false,
81
83
  can_usage_tracking: true,
82
84
  usage_history_days: 30,
@@ -120,6 +122,7 @@ export const PLAN_LIMITS = {
120
122
  can_byo_tester_key: true,
121
123
  can_intelligence: true,
122
124
  intelligence_indexed_max: null,
125
+ auto_skill_monthly_limit: null,
123
126
  can_apply_all: true,
124
127
  can_usage_tracking: true,
125
128
  usage_history_days: null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prave/shared",
3
- "version": "1.2.2",
3
+ "version": "1.3.0",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public"