ted-mosby 1.0.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.
Files changed (59) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +238 -0
  3. package/dist/agent.d.ts +37 -0
  4. package/dist/agent.d.ts.map +1 -0
  5. package/dist/agent.js +247 -0
  6. package/dist/agent.js.map +1 -0
  7. package/dist/claude-config.d.ts +58 -0
  8. package/dist/claude-config.d.ts.map +1 -0
  9. package/dist/claude-config.js +169 -0
  10. package/dist/claude-config.js.map +1 -0
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +1379 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/config.d.ts +13 -0
  16. package/dist/config.d.ts.map +1 -0
  17. package/dist/config.js +42 -0
  18. package/dist/config.js.map +1 -0
  19. package/dist/mcp-config.d.ts +45 -0
  20. package/dist/mcp-config.d.ts.map +1 -0
  21. package/dist/mcp-config.js +111 -0
  22. package/dist/mcp-config.js.map +1 -0
  23. package/dist/permissions.d.ts +32 -0
  24. package/dist/permissions.d.ts.map +1 -0
  25. package/dist/permissions.js +165 -0
  26. package/dist/permissions.js.map +1 -0
  27. package/dist/planner.d.ts +42 -0
  28. package/dist/planner.d.ts.map +1 -0
  29. package/dist/planner.js +232 -0
  30. package/dist/planner.js.map +1 -0
  31. package/dist/prompts/wiki-system.d.ts +8 -0
  32. package/dist/prompts/wiki-system.d.ts.map +1 -0
  33. package/dist/prompts/wiki-system.js +249 -0
  34. package/dist/prompts/wiki-system.js.map +1 -0
  35. package/dist/rag/index.d.ts +84 -0
  36. package/dist/rag/index.d.ts.map +1 -0
  37. package/dist/rag/index.js +446 -0
  38. package/dist/rag/index.js.map +1 -0
  39. package/dist/tools/command-runner.d.ts +21 -0
  40. package/dist/tools/command-runner.d.ts.map +1 -0
  41. package/dist/tools/command-runner.js +67 -0
  42. package/dist/tools/command-runner.js.map +1 -0
  43. package/dist/tools/file-operations.d.ts +22 -0
  44. package/dist/tools/file-operations.d.ts.map +1 -0
  45. package/dist/tools/file-operations.js +119 -0
  46. package/dist/tools/file-operations.js.map +1 -0
  47. package/dist/tools/web-tools.d.ts +17 -0
  48. package/dist/tools/web-tools.d.ts.map +1 -0
  49. package/dist/tools/web-tools.js +122 -0
  50. package/dist/tools/web-tools.js.map +1 -0
  51. package/dist/wiki-agent.d.ts +81 -0
  52. package/dist/wiki-agent.d.ts.map +1 -0
  53. package/dist/wiki-agent.js +552 -0
  54. package/dist/wiki-agent.js.map +1 -0
  55. package/dist/workflows.d.ts +53 -0
  56. package/dist/workflows.d.ts.map +1 -0
  57. package/dist/workflows.js +169 -0
  58. package/dist/workflows.js.map +1 -0
  59. package/package.json +67 -0
@@ -0,0 +1,169 @@
1
+ /**
2
+ * Claude Config Loader
3
+ *
4
+ * Loads Claude Code configuration files at runtime:
5
+ * - CLAUDE.md (project memory/context)
6
+ * - .claude/skills/*.md (model-invoked skills)
7
+ * - .claude/commands/*.md (slash commands)
8
+ * - .claude/agents/*.md (subagents)
9
+ */
10
+ import * as fs from 'fs';
11
+ import * as path from 'path';
12
+ /**
13
+ * Parse YAML-like frontmatter from a markdown file
14
+ */
15
+ function parseFrontmatter(content) {
16
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
17
+ if (!frontmatterMatch) {
18
+ return { frontmatter: {}, body: content };
19
+ }
20
+ const frontmatterRaw = frontmatterMatch[1];
21
+ const body = frontmatterMatch[2].trim();
22
+ const frontmatter = {};
23
+ for (const line of frontmatterRaw.split('\n')) {
24
+ const colonIndex = line.indexOf(':');
25
+ if (colonIndex > 0) {
26
+ const key = line.slice(0, colonIndex).trim();
27
+ const value = line.slice(colonIndex + 1).trim();
28
+ frontmatter[key] = value;
29
+ }
30
+ }
31
+ return { frontmatter, body };
32
+ }
33
+ /**
34
+ * Load all Claude Code configuration from the working directory
35
+ */
36
+ export function loadClaudeConfig(workingDir = process.cwd()) {
37
+ const config = {
38
+ memory: null,
39
+ skills: [],
40
+ commands: [],
41
+ subagents: []
42
+ };
43
+ // 1. Load CLAUDE.md (memory)
44
+ const claudeMdPath = path.join(workingDir, 'CLAUDE.md');
45
+ if (fs.existsSync(claudeMdPath)) {
46
+ try {
47
+ config.memory = fs.readFileSync(claudeMdPath, 'utf-8');
48
+ }
49
+ catch (e) {
50
+ console.warn('Warning: Could not read CLAUDE.md:', e);
51
+ }
52
+ }
53
+ // 2. Load skills from .claude/skills/*/SKILL.md
54
+ const skillsDir = path.join(workingDir, '.claude', 'skills');
55
+ if (fs.existsSync(skillsDir)) {
56
+ try {
57
+ const skillFolders = fs.readdirSync(skillsDir, { withFileTypes: true })
58
+ .filter(d => d.isDirectory())
59
+ .map(d => d.name);
60
+ for (const folder of skillFolders) {
61
+ const skillFile = path.join(skillsDir, folder, 'SKILL.md');
62
+ if (fs.existsSync(skillFile)) {
63
+ const content = fs.readFileSync(skillFile, 'utf-8');
64
+ const { frontmatter, body } = parseFrontmatter(content);
65
+ config.skills.push({
66
+ name: frontmatter.name || folder,
67
+ description: frontmatter.description || '',
68
+ tools: frontmatter.tools ? frontmatter.tools.split(',').map(t => t.trim()) : [],
69
+ instructions: body,
70
+ filePath: skillFile
71
+ });
72
+ }
73
+ }
74
+ }
75
+ catch (e) {
76
+ console.warn('Warning: Could not load skills:', e);
77
+ }
78
+ }
79
+ // 3. Load commands from .claude/commands/*.md
80
+ const commandsDir = path.join(workingDir, '.claude', 'commands');
81
+ if (fs.existsSync(commandsDir)) {
82
+ try {
83
+ const commandFiles = fs.readdirSync(commandsDir)
84
+ .filter(f => f.endsWith('.md'));
85
+ for (const file of commandFiles) {
86
+ const filePath = path.join(commandsDir, file);
87
+ const content = fs.readFileSync(filePath, 'utf-8');
88
+ const name = file.replace('.md', '');
89
+ config.commands.push({
90
+ name,
91
+ template: content,
92
+ filePath
93
+ });
94
+ }
95
+ }
96
+ catch (e) {
97
+ console.warn('Warning: Could not load commands:', e);
98
+ }
99
+ }
100
+ // 4. Load subagents from .claude/agents/*.md
101
+ const agentsDir = path.join(workingDir, '.claude', 'agents');
102
+ if (fs.existsSync(agentsDir)) {
103
+ try {
104
+ const agentFiles = fs.readdirSync(agentsDir)
105
+ .filter(f => f.endsWith('.md'));
106
+ for (const file of agentFiles) {
107
+ const filePath = path.join(agentsDir, file);
108
+ const content = fs.readFileSync(filePath, 'utf-8');
109
+ const { frontmatter, body } = parseFrontmatter(content);
110
+ const name = frontmatter.name || file.replace('.md', '');
111
+ config.subagents.push({
112
+ name,
113
+ description: frontmatter.description || '',
114
+ tools: frontmatter.tools ? frontmatter.tools.split(',').map(t => t.trim()) : [],
115
+ model: frontmatter.model || 'sonnet',
116
+ permissionMode: frontmatter.permissionMode,
117
+ systemPrompt: body,
118
+ filePath
119
+ });
120
+ }
121
+ }
122
+ catch (e) {
123
+ console.warn('Warning: Could not load subagents:', e);
124
+ }
125
+ }
126
+ return config;
127
+ }
128
+ /**
129
+ * Format skills as a system prompt section
130
+ */
131
+ export function formatSkillsForPrompt(skills) {
132
+ if (skills.length === 0)
133
+ return '';
134
+ let prompt = '\n\n## Available Skills\n\n';
135
+ prompt += 'You have access to the following specialized skills. When the user\'s request matches a skill\'s purpose, you should apply that skill\'s instructions.\n\n';
136
+ for (const skill of skills) {
137
+ prompt += `### Skill: ${skill.name}\n`;
138
+ prompt += `**When to use:** ${skill.description}\n\n`;
139
+ prompt += `**Instructions:**\n${skill.instructions}\n\n`;
140
+ }
141
+ return prompt;
142
+ }
143
+ /**
144
+ * Format commands for display/autocomplete
145
+ */
146
+ export function formatCommandsForDisplay(commands) {
147
+ return commands.map(cmd => `/${cmd.name}`);
148
+ }
149
+ /**
150
+ * Get a specific command by name
151
+ */
152
+ export function getCommand(commands, name) {
153
+ return commands.find(cmd => cmd.name === name || cmd.name === name.replace(/^\//, ''));
154
+ }
155
+ /**
156
+ * Expand a command template with arguments
157
+ */
158
+ export function expandCommand(command, args) {
159
+ let expanded = command.template;
160
+ // Replace $ARGUMENTS with the full args string
161
+ expanded = expanded.replace(/\$ARGUMENTS/g, args);
162
+ // Replace $1, $2, etc. with positional args
163
+ const argParts = args.split(/\s+/).filter(Boolean);
164
+ for (let i = 0; i < argParts.length; i++) {
165
+ expanded = expanded.replace(new RegExp(`\\$${i + 1}`, 'g'), argParts[i]);
166
+ }
167
+ return expanded;
168
+ }
169
+ //# sourceMappingURL=claude-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-config.js","sourceRoot":"","sources":["../src/claude-config.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}