providers.js

 1/**
 2 * Provider configurations for the transformer factory.
 3 *
 4 * Each config specifies:
 5 * - provider: key into PROVIDER_PLACEHOLDERS (e.g. 'claude-code')
 6 * - configDir: dot-directory name (e.g. '.claude')
 7 * - displayName: human-readable name for log output (e.g. 'Claude Code')
 8 * - frontmatterFields: which optional fields to emit beyond name + description
 9 * - bodyTransform: optional function (body, skill) => transformed body
10 */
11export const PROVIDERS = {
12  cursor: {
13    provider: 'cursor',
14    configDir: '.cursor',
15    displayName: 'Cursor',
16    frontmatterFields: ['license', 'compatibility', 'metadata'],
17  },
18  'claude-code': {
19    provider: 'claude-code',
20    configDir: '.claude',
21    displayName: 'Claude Code',
22    frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata', 'allowed-tools'],
23  },
24  gemini: {
25    provider: 'gemini',
26    configDir: '.gemini',
27    displayName: 'Gemini',
28    frontmatterFields: [],
29  },
30  codex: {
31    provider: 'codex',
32    configDir: '.codex',
33    displayName: 'Codex',
34    frontmatterFields: ['argument-hint', 'license'],
35  },
36  agents: {
37    provider: 'agents',
38    configDir: '.agents',
39    displayName: 'Agents',
40    frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata'],
41  },
42  kiro: {
43    provider: 'kiro',
44    configDir: '.kiro',
45    displayName: 'Kiro',
46    frontmatterFields: ['license', 'compatibility', 'metadata'],
47  },
48  opencode: {
49    provider: 'opencode',
50    configDir: '.opencode',
51    displayName: 'OpenCode',
52    frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata', 'allowed-tools'],
53  },
54  pi: {
55    provider: 'pi',
56    configDir: '.pi',
57    displayName: 'Pi',
58    frontmatterFields: ['license', 'compatibility', 'metadata', 'allowed-tools'],
59  },
60  'trae-cn': {
61    provider: 'trae-cn',
62    configDir: '.trae-cn',
63    displayName: 'Trae China',
64    placeholderProvider: 'trae',
65    frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata'],
66  },
67  trae: {
68    provider: 'trae',
69    configDir: '.trae',
70    displayName: 'Trae',
71    frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata'],
72  },
73  'rovo-dev': {
74    provider: 'rovo-dev',
75    configDir: '.rovodev',
76    displayName: 'Rovo Dev',
77    frontmatterFields: ['user-invocable', 'argument-hint', 'license', 'compatibility', 'metadata', 'allowed-tools'],
78  },
79};