refactor(agents): streamline sisyphus prompt and remove generator script
Simplify sisyphus prompt by removing redundant sections and inline generation. Delete generate-sisyphus-prompt.ts as prompts are now managed directly in the agent definition. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -1,105 +0,0 @@
|
||||
#!/usr/bin/env bun
|
||||
/**
|
||||
* Generate the full Sisyphus system prompt and output to sisyphus-prompt.md
|
||||
*
|
||||
* Usage:
|
||||
* bun run script/generate-sisyphus-prompt.ts
|
||||
*/
|
||||
|
||||
import { createSisyphusAgent } from "../src/agents/sisyphus"
|
||||
import { ORACLE_PROMPT_METADATA } from "../src/agents/oracle"
|
||||
import { LIBRARIAN_PROMPT_METADATA } from "../src/agents/librarian"
|
||||
import { EXPLORE_PROMPT_METADATA } from "../src/agents/explore"
|
||||
import { MULTIMODAL_LOOKER_PROMPT_METADATA } from "../src/agents/multimodal-looker"
|
||||
import { createBuiltinSkills } from "../src/features/builtin-skills"
|
||||
import { DEFAULT_CATEGORIES, CATEGORY_DESCRIPTIONS } from "../src/tools/delegate-task/constants"
|
||||
import type { AvailableAgent, AvailableCategory, AvailableSkill } from "../src/agents/dynamic-agent-prompt-builder"
|
||||
import type { BuiltinAgentName, AgentPromptMetadata } from "../src/agents/types"
|
||||
import { writeFileSync } from "node:fs"
|
||||
import { join } from "node:path"
|
||||
|
||||
// Build available agents (same logic as utils.ts)
|
||||
const agentMetadata: Record<string, AgentPromptMetadata> = {
|
||||
oracle: ORACLE_PROMPT_METADATA,
|
||||
librarian: LIBRARIAN_PROMPT_METADATA,
|
||||
explore: EXPLORE_PROMPT_METADATA,
|
||||
"multimodal-looker": MULTIMODAL_LOOKER_PROMPT_METADATA,
|
||||
}
|
||||
|
||||
const agentDescriptions: Record<string, string> = {
|
||||
oracle: "Read-only consultation agent. High-IQ reasoning specialist for debugging hard problems and high-difficulty architecture design.",
|
||||
librarian: "Specialized codebase understanding agent for multi-repository analysis, searching remote codebases, retrieving official documentation, and finding implementation examples using GitHub CLI, Context7, and Web Search. MUST BE USED when users ask to look up code in remote repositories, explain library internals, or find usage examples in open source.",
|
||||
explore: 'Contextual grep for codebases. Answers "Where is X?", "Which file has Y?", "Find the code that does Z". Fire multiple in parallel for broad searches. Specify thoroughness: "quick" for basic, "medium" for moderate, "very thorough" for comprehensive analysis.',
|
||||
"multimodal-looker": "Analyze media files (PDFs, images, diagrams) that require interpretation beyond raw text. Extracts specific information or summaries from documents, describes visual content. Use when you need analyzed/extracted data rather than literal file contents.",
|
||||
}
|
||||
|
||||
const availableAgents: AvailableAgent[] = Object.entries(agentMetadata).map(([name, metadata]) => ({
|
||||
name: name as BuiltinAgentName,
|
||||
description: agentDescriptions[name] ?? "",
|
||||
metadata,
|
||||
}))
|
||||
|
||||
// Build available categories
|
||||
const availableCategories: AvailableCategory[] = Object.entries(DEFAULT_CATEGORIES).map(([name]) => ({
|
||||
name,
|
||||
description: CATEGORY_DESCRIPTIONS[name] ?? "General tasks",
|
||||
}))
|
||||
|
||||
// Build available skills
|
||||
const builtinSkills = createBuiltinSkills()
|
||||
const availableSkills: AvailableSkill[] = builtinSkills.map((skill) => ({
|
||||
name: skill.name,
|
||||
description: skill.description,
|
||||
location: "plugin" as const,
|
||||
}))
|
||||
|
||||
// Generate the agent config
|
||||
const model = "anthropic/claude-opus-4-5"
|
||||
const sisyphusConfig = createSisyphusAgent(
|
||||
model,
|
||||
availableAgents,
|
||||
undefined, // no tool names
|
||||
availableSkills,
|
||||
availableCategories
|
||||
)
|
||||
|
||||
// Output to file
|
||||
const outputPath = join(import.meta.dirname, "..", "sisyphus-prompt.md")
|
||||
const content = `# Sisyphus System Prompt
|
||||
|
||||
> Auto-generated by \`script/generate-sisyphus-prompt.ts\`
|
||||
> Generated at: ${new Date().toISOString()}
|
||||
|
||||
## Configuration
|
||||
|
||||
| Field | Value |
|
||||
|-------|-------|
|
||||
| Model | \`${model}\` |
|
||||
| Max Tokens | \`${sisyphusConfig.maxTokens}\` |
|
||||
| Mode | \`${sisyphusConfig.mode}\` |
|
||||
| Thinking | ${sisyphusConfig.thinking ? `Budget: ${sisyphusConfig.thinking.budgetTokens}` : "N/A"} |
|
||||
|
||||
## Available Agents
|
||||
|
||||
${availableAgents.map((a) => `- **${a.name}**: ${a.description.split(".")[0]}`).join("\n")}
|
||||
|
||||
## Available Categories
|
||||
|
||||
${availableCategories.map((c) => `- **${c.name}**: ${c.description}`).join("\n")}
|
||||
|
||||
## Available Skills
|
||||
|
||||
${availableSkills.map((s) => `- **${s.name}**: ${s.description.split(".")[0]}`).join("\n")}
|
||||
|
||||
---
|
||||
|
||||
## Full System Prompt
|
||||
|
||||
\`\`\`markdown
|
||||
${sisyphusConfig.prompt}
|
||||
\`\`\`
|
||||
`
|
||||
|
||||
writeFileSync(outputPath, content)
|
||||
console.log(`Generated: ${outputPath}`)
|
||||
console.log(`Prompt length: ${sisyphusConfig.prompt?.length ?? 0} characters`)
|
||||
Reference in New Issue
Block a user