combine to /src/utils/profiles.js; add codex and claude code profiles
This commit is contained in:
62
scripts/profiles/claude.js
Normal file
62
scripts/profiles/claude.js
Normal file
@@ -0,0 +1,62 @@
|
||||
// Claude Code profile for rule-transformer
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import { isSilentMode, log } from '../modules/utils.js';
|
||||
|
||||
// Lifecycle functions for Claude Code profile
|
||||
function onAddRulesProfile(targetDir) {
|
||||
const sourceFile = path.join(process.cwd(), 'assets', 'AGENTS.md');
|
||||
const destFile = path.join(targetDir, 'CLAUDE.md');
|
||||
|
||||
if (fs.existsSync(sourceFile)) {
|
||||
try {
|
||||
fs.copyFileSync(sourceFile, destFile);
|
||||
log('debug', `[Claude] Copied AGENTS.md to ${destFile}`);
|
||||
} catch (err) {
|
||||
log('debug', `[Claude] Failed to copy AGENTS.md: ${err.message}`);
|
||||
}
|
||||
} else {
|
||||
log('debug', `[Claude] AGENTS.md not found at ${sourceFile}`);
|
||||
}
|
||||
}
|
||||
|
||||
function onRemoveRulesProfile(targetDir) {
|
||||
log('debug', `[Claude] onRemoveRulesProfile called for ${targetDir}`);
|
||||
const claudeFile = path.join(targetDir, 'CLAUDE.md');
|
||||
if (fs.existsSync(claudeFile)) {
|
||||
try {
|
||||
fs.rmSync(claudeFile, { force: true });
|
||||
log('debug', `[Claude] Removed CLAUDE.md from ${targetDir}`);
|
||||
} catch (err) {
|
||||
log('debug', `[Claude] Failed to remove CLAUDE.md: ${err.message}`);
|
||||
}
|
||||
}
|
||||
log('debug', `[Claude] onRemoveRulesProfile completed for ${targetDir}`);
|
||||
}
|
||||
|
||||
function onPostConvertRulesProfile(targetDir) {
|
||||
onAddRulesProfile(targetDir);
|
||||
}
|
||||
|
||||
// Simple filename function
|
||||
function getTargetRuleFilename(sourceFilename) {
|
||||
return sourceFilename;
|
||||
}
|
||||
|
||||
// Simple profile configuration - bypasses base-profile system
|
||||
export const claudeProfile = {
|
||||
profileName: 'claude',
|
||||
displayName: 'Claude Code',
|
||||
profileDir: '.', // Root directory
|
||||
rulesDir: '.', // No rules directory needed
|
||||
mcpConfig: false, // No MCP config needed
|
||||
mcpConfigName: null,
|
||||
mcpConfigPath: null,
|
||||
conversionConfig: {},
|
||||
fileMap: {},
|
||||
globalReplacements: [],
|
||||
getTargetRuleFilename,
|
||||
onAddRulesProfile,
|
||||
onRemoveRulesProfile,
|
||||
onPostConvertRulesProfile
|
||||
};
|
||||
62
scripts/profiles/codex.js
Normal file
62
scripts/profiles/codex.js
Normal file
@@ -0,0 +1,62 @@
|
||||
// Codex profile for rule-transformer
|
||||
import path from 'path';
|
||||
import fs from 'fs';
|
||||
import { isSilentMode, log } from '../modules/utils.js';
|
||||
|
||||
// Lifecycle functions for Codex profile
|
||||
function onAddRulesProfile(targetDir) {
|
||||
const sourceFile = path.join(process.cwd(), 'assets', 'AGENTS.md');
|
||||
const destFile = path.join(targetDir, 'AGENTS.md');
|
||||
|
||||
if (fs.existsSync(sourceFile)) {
|
||||
try {
|
||||
fs.copyFileSync(sourceFile, destFile);
|
||||
log('debug', `[Codex] Copied AGENTS.md to ${destFile}`);
|
||||
} catch (err) {
|
||||
log('debug', `[Codex] Failed to copy AGENTS.md: ${err.message}`);
|
||||
}
|
||||
} else {
|
||||
log('debug', `[Codex] AGENTS.md not found at ${sourceFile}`);
|
||||
}
|
||||
}
|
||||
|
||||
function onRemoveRulesProfile(targetDir) {
|
||||
log('debug', `[Codex] onRemoveRulesProfile called for ${targetDir}`);
|
||||
const agentsFile = path.join(targetDir, 'AGENTS.md');
|
||||
if (fs.existsSync(agentsFile)) {
|
||||
try {
|
||||
fs.rmSync(agentsFile, { force: true });
|
||||
log('debug', `[Codex] Removed AGENTS.md from ${targetDir}`);
|
||||
} catch (err) {
|
||||
log('debug', `[Codex] Failed to remove AGENTS.md: ${err.message}`);
|
||||
}
|
||||
}
|
||||
log('debug', `[Codex] onRemoveRulesProfile completed for ${targetDir}`);
|
||||
}
|
||||
|
||||
function onPostConvertRulesProfile(targetDir) {
|
||||
onAddRulesProfile(targetDir);
|
||||
}
|
||||
|
||||
// Simple filename function
|
||||
function getTargetRuleFilename(sourceFilename) {
|
||||
return sourceFilename;
|
||||
}
|
||||
|
||||
// Simple profile configuration - bypasses base-profile system
|
||||
export const codexProfile = {
|
||||
profileName: 'codex',
|
||||
displayName: 'Codex',
|
||||
profileDir: '.', // Root directory
|
||||
rulesDir: '.', // No rules directory needed
|
||||
mcpConfig: false, // No MCP config needed
|
||||
mcpConfigName: null,
|
||||
mcpConfigPath: null,
|
||||
conversionConfig: {},
|
||||
fileMap: {},
|
||||
globalReplacements: [],
|
||||
getTargetRuleFilename,
|
||||
onAddRulesProfile,
|
||||
onRemoveRulesProfile,
|
||||
onPostConvertRulesProfile
|
||||
};
|
||||
@@ -1,6 +1,8 @@
|
||||
// Profile exports for centralized importing
|
||||
export * as clineProfile from './cline.js';
|
||||
export * as cursorProfile from './cursor.js';
|
||||
export * as rooProfile from './roo.js';
|
||||
export * as traeProfile from './trae.js';
|
||||
export * as windsurfProfile from './windsurf.js';
|
||||
export { claudeProfile } from './claude.js';
|
||||
export { clineProfile } from './cline.js';
|
||||
export { codexProfile } from './codex.js';
|
||||
export { cursorProfile } from './cursor.js';
|
||||
export { rooProfile } from './roo.js';
|
||||
export { traeProfile } from './trae.js';
|
||||
export { windsurfProfile } from './windsurf.js';
|
||||
|
||||
Reference in New Issue
Block a user