- Core calculations (Life Path, Expression, Soul Urge, Birthday) - Advanced numbers (Maturity, Personality, Hidden Passion, Karmic Lessons) - Timing cycles and optimal days finder - Compatibility analysis and name optimizer - Telos integration for personal development - Professional PDF report generation - Profile management system - Security fix: Add .claude/ to .gitignore 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
181 lines
6.3 KiB
TypeScript
Executable file
181 lines
6.3 KiB
TypeScript
Executable file
#!/usr/bin/env bun
|
|
|
|
/**
|
|
* Telos Numerology Exporter
|
|
*
|
|
* Generates numerology profile for telos integration
|
|
* Output format matches ~/.claude/context/personal/telos/numerology.md template
|
|
*
|
|
* Usage:
|
|
* bun telos-export.ts --name "Your Name" --birthdate "mm/dd/yyyy" > ~/.claude/context/personal/telos/numerology.md
|
|
*/
|
|
|
|
import { calculate } from './numerology';
|
|
import { lifePath, expression, soulUrge, birthday } from './meanings';
|
|
|
|
function generateTelosFormat(name: string, birthdate: string): string {
|
|
const result = calculate(name, birthdate, true); // Silent mode
|
|
|
|
let output = `# Numerology Profile\n\n`;
|
|
output += `**Generated:** ${new Date().toISOString().split('T')[0]}\n\n`;
|
|
output += `**Name:** ${name} \n`;
|
|
output += `**Birthdate:** ${birthdate}\n\n`;
|
|
|
|
output += `---\n\n`;
|
|
output += `## Core Numbers\n\n`;
|
|
output += `| Number | Value | Keywords |\n`;
|
|
output += `|--------|-------|----------|\n`;
|
|
output += `| Life Path | ${result.lifePath} | ${lifePath[result.lifePath].keywords.join(', ')} |\n`;
|
|
output += `| Expression | ${result.expression} | ${expression[result.expression].keywords.join(', ')} |\n`;
|
|
output += `| Soul Urge | ${result.soulUrge} | ${soulUrge[result.soulUrge].keywords.join(', ')} |\n`;
|
|
output += `| Birthday | ${result.birthday} | ${birthday[result.birthday].keywords.join(', ')} |\n\n`;
|
|
|
|
output += `---\n\n`;
|
|
|
|
// Life Path
|
|
const lp = lifePath[result.lifePath];
|
|
output += `## Life Path ${result.lifePath}\n\n`;
|
|
output += `> *${lp.keywords.join(' • ')}*\n\n`;
|
|
output += `${lp.description}\n\n`;
|
|
output += `### Strengths\n`;
|
|
lp.strengths.forEach(s => output += `- ${s}\n`);
|
|
output += `\n### Challenges\n`;
|
|
lp.challenges.forEach(c => output += `- ${c}\n`);
|
|
if (lp.lifePurpose) {
|
|
output += `\n### Life Purpose\n`;
|
|
output += `${lp.lifePurpose}\n`;
|
|
}
|
|
if (lp.careerPaths && lp.careerPaths.length > 0) {
|
|
output += `\n### Career Paths\n`;
|
|
lp.careerPaths.forEach(c => output += `- ${c}\n`);
|
|
}
|
|
if (lp.relationships) {
|
|
output += `\n### Relationships\n`;
|
|
output += `${lp.relationships}\n`;
|
|
}
|
|
if (lp.spiritualLesson) {
|
|
output += `\n### Spiritual Lesson\n`;
|
|
output += `${lp.spiritualLesson}\n`;
|
|
}
|
|
|
|
output += `\n---\n\n`;
|
|
|
|
// Expression
|
|
const ex = expression[result.expression];
|
|
output += `## Expression ${result.expression}\n\n`;
|
|
output += `> *${ex.keywords.join(' • ')}*\n\n`;
|
|
output += `${ex.description}\n\n`;
|
|
output += `### Strengths\n`;
|
|
ex.strengths.forEach(s => output += `- ${s}\n`);
|
|
output += `\n### Challenges\n`;
|
|
ex.challenges.forEach(c => output += `- ${c}\n`);
|
|
|
|
output += `\n---\n\n`;
|
|
|
|
// Soul Urge
|
|
const su = soulUrge[result.soulUrge];
|
|
output += `## Soul Urge ${result.soulUrge}\n\n`;
|
|
output += `> *${su.keywords.join(' • ')}*\n\n`;
|
|
output += `${su.description}\n\n`;
|
|
output += `### Strengths\n`;
|
|
su.strengths.forEach(s => output += `- ${s}\n`);
|
|
output += `\n### Challenges\n`;
|
|
su.challenges.forEach(c => output += `- ${c}\n`);
|
|
|
|
output += `\n---\n\n`;
|
|
|
|
// Birthday
|
|
const bd = birthday[result.birthday];
|
|
output += `## Birthday ${result.birthday}\n\n`;
|
|
output += `> *${bd.keywords.join(' • ')}*\n\n`;
|
|
output += `${bd.description}\n\n`;
|
|
output += `### Strengths\n`;
|
|
bd.strengths.forEach(s => output += `- ${s}\n`);
|
|
output += `\n### Challenges\n`;
|
|
bd.challenges.forEach(c => output += `- ${c}\n`);
|
|
|
|
output += `\n---\n\n`;
|
|
output += `## Telos Integration\n\n`;
|
|
output += `### How This Relates to Your Goals\n\n`;
|
|
output += `Use the numerology insights above to:\n\n`;
|
|
output += `- **Align goals with your Life Path** - Ensure major goals match your core purpose\n`;
|
|
output += `- **Leverage your Expression strengths** - Use natural talents in projects\n`;
|
|
output += `- **Honor your Soul Urge** - Make sure goals satisfy inner desires\n`;
|
|
output += `- **Utilize Birthday gifts** - Apply special talents to overcome challenges\n\n`;
|
|
|
|
output += `### Current Life Path Alignment Check\n\n`;
|
|
output += `Review your telos goals and ask:\n\n`;
|
|
output += `1. Do my goals align with my Life Path ${result.lifePath} purpose?\n`;
|
|
output += `2. Am I leveraging my Expression ${result.expression} talents?\n`;
|
|
output += `3. Are my pursuits satisfying my Soul Urge ${result.soulUrge} desires?\n`;
|
|
output += `4. Am I using my Birthday ${result.birthday} gifts to their full potential?\n\n`;
|
|
|
|
output += `### Numerology-Based Recommendations\n\n`;
|
|
if (lp.careerPaths && lp.careerPaths.length > 0) {
|
|
output += `**Career Alignment:** Your Life Path ${result.lifePath} suggests careers in: ${lp.careerPaths.join(', ')}\n\n`;
|
|
}
|
|
|
|
output += `**Challenge Awareness:** Watch for ${lp.challenges[0].toLowerCase()} - this is your primary numerological challenge.\n\n`;
|
|
|
|
output += `**Spiritual Growth:** ${lp.spiritualLesson}\n\n`;
|
|
|
|
output += `---\n\n`;
|
|
output += `*This numerology profile is generated to enhance your telos self-understanding. Use it as one lens among many to understand yourself and your path.*\n`;
|
|
|
|
return output;
|
|
}
|
|
|
|
function main() {
|
|
const args = process.argv.slice(2);
|
|
|
|
let name = '';
|
|
let birthdate = '';
|
|
|
|
for (let i = 0; i < args.length; i++) {
|
|
if (args[i] === '--name' && args[i + 1]) {
|
|
name = args[i + 1];
|
|
i++;
|
|
} else if (args[i] === '--birthdate' && args[i + 1]) {
|
|
birthdate = args[i + 1];
|
|
i++;
|
|
} else if (args[i] === '--help' || args[i] === '-h') {
|
|
console.log(`
|
|
Telos Numerology Exporter
|
|
|
|
Generates numerology profile formatted for telos integration.
|
|
|
|
Usage:
|
|
bun telos-export.ts --name "Full Name" --birthdate "mm/dd/yyyy"
|
|
|
|
Output to file:
|
|
bun telos-export.ts --name "Your Name" --birthdate "5/13/1982" > ~/.claude/context/personal/telos/numerology.md
|
|
|
|
Options:
|
|
--name NAME Full name (required)
|
|
--birthdate DATE Birthdate in mm/dd/yyyy format (required)
|
|
--help, -h Show this help message
|
|
`);
|
|
process.exit(0);
|
|
}
|
|
}
|
|
|
|
if (!name || !birthdate) {
|
|
console.error('Error: Both --name and --birthdate are required');
|
|
console.error('Use --help for usage information');
|
|
process.exit(1);
|
|
}
|
|
|
|
try {
|
|
const output = generateTelosFormat(name, birthdate);
|
|
console.log(output);
|
|
} catch (error) {
|
|
console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
if (import.meta.main) {
|
|
main();
|
|
}
|
|
|
|
export { generateTelosFormat };
|