@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.
- package/dist/lib/compile-skill.d.ts +54 -0
- package/dist/lib/compile-skill.d.ts.map +1 -0
- package/dist/lib/compile-skill.js +52 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/schemas/skill.schema.d.ts +51 -0
- package/dist/schemas/skill.schema.d.ts.map +1 -1
- package/dist/schemas/skill.schema.js +42 -0
- package/dist/types/plan-limits.d.ts +7 -0
- package/dist/types/plan-limits.d.ts.map +1 -1
- package/dist/types/plan-limits.js +3 -0
- package/package.json +1 -1
|
@@ -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
|
+
}
|
package/dist/lib/index.d.ts
CHANGED
package/dist/lib/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -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":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAA;AAExD;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,UAAU;IACzB,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAA;IACb,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,iBAAiB,EAAE,MAAM,CAAA;IACzB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,0DAA0D;IAC1D,SAAS,EAAE,OAAO,CAAA;IAGlB,+EAA+E;IAC/E,YAAY,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,YAAY,EAAE,OAAO,CAAA;IACrB;;;;;;;;OAQG;IACH,mBAAmB,EAAE,OAAO,CAAA;IAG5B;;;OAGG;IACH,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAA;IACpC,mEAAmE;IACnE,mBAAmB,EAAE,aAAa,CAAC,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC,CAAA;IAC9F,4BAA4B;IAC5B,YAAY,EAAE,OAAO,CAAA;IACrB,wDAAwD;IACxD,cAAc,EAAE,OAAO,CAAA;IACvB,yCAAyC;IACzC,sBAAsB,EAAE,OAAO,CAAA;IAG/B,0CAA0C;IAC1C,oBAAoB,EAAE,OAAO,CAAA;IAC7B,0CAA0C;IAC1C,qBAAqB,EAAE,OAAO,CAAA;IAC9B;;OAEG;IACH,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAA;IACnC,4BAA4B;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,oDAAoD;IACpD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,+CAA+C;IAC/C,iBAAiB,EAAE,OAAO,CAAA;IAG1B;;;;OAIG;IACH,sBAAsB,EAAE,MAAM,CAAA;IAC9B,gDAAgD;IAChD,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;;OAGG;IACH,uBAAuB,EAAE,MAAM,CAAA;IAC/B,6EAA6E;IAC7E,kBAAkB,EAAE,OAAO,CAAA;IAG3B,gDAAgD;IAChD,gBAAgB,EAAE,OAAO,CAAA;IACzB;;;;;OAKG;IACH,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAA;IACvC,uDAAuD;IACvD,aAAa,EAAE,OAAO,CAAA;IACtB,qCAAqC;IACrC,kBAAkB,EAAE,OAAO,CAAA;IAC3B;;;OAGG;IACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,mCAAmC;IACnC,gBAAgB,EAAE,OAAO,CAAA;IAGzB,8CAA8C;IAC9C,kBAAkB,EAAE,OAAO,CAAA;IAC3B;;;OAGG;IACH,oBAAoB,EAAE,OAAO,CAAA;IAC7B,oDAAoD;IACpD,kBAAkB,EAAE,OAAO,CAAA;IAC3B,mEAAmE;IACnE,kBAAkB,EAAE,OAAO,CAAA;IAG3B,6CAA6C;IAC7C,oBAAoB,EAAE,OAAO,CAAA;IAC7B,+CAA+C;IAC/C,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAID,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,
|
|
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,
|