Introducing our main agent: Sisyphus (#113)
* docs: rename OmO agent to Sisyphus, OmO-Plan to Planner-Sisyphus 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * refactor: rename OmO agent to Sisyphus with automatic config migration - Rename OmO agent to Sisyphus (uses mythological pushing-the-boulder concept) - Rename OmO-Plan to Planner-Sisyphus for consistency - Update config schema: omo_agent → sisyphus_agent - Add backward compatibility: automatically migrate user's oh-my-opencode.json files - Migration handles old keys (OmO, omo, OmO-Plan, omo-plan) and rewrites config when detected - Update agent name mappings, index files, and type definitions - Add Sisyphus PNG asset to brand identity 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * docs: add Sisyphus mythology introduction and teammates concept to all READMEs 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * feat(startup-toast): show Sisyphus steering message when enabled - Updated startup toast to show "Sisyphus on steroids is steering OpenCode" when Sisyphus agent is enabled - Refactored getToastMessage function to handle conditional message rendering - Pass isSisyphusEnabled flag from plugin configuration to auto-update-checker hook 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode) * docs(sisyphus): add philosophical context to Sisyphus agent identity - Add "Why Sisyphus?" explanation connecting the daily work cycle of humans and AI agents - Emphasize code quality expectations: indistinguishable from senior engineer's work - Concise identity statement: work, delegate, verify, ship without AI slop This clarifies the agent's purpose and reinforces the principle that quality code should not reveal whether it was written by human or AI. 🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
import { omoAgent } from "./omo"
|
||||
import { sisyphusAgent } from "./sisyphus"
|
||||
import { oracleAgent } from "./oracle"
|
||||
import { librarianAgent } from "./librarian"
|
||||
import { exploreAgent } from "./explore"
|
||||
@@ -8,7 +8,7 @@ import { documentWriterAgent } from "./document-writer"
|
||||
import { multimodalLookerAgent } from "./multimodal-looker"
|
||||
|
||||
export const builtinAgents: Record<string, AgentConfig> = {
|
||||
OmO: omoAgent,
|
||||
Sisyphus: sisyphusAgent,
|
||||
oracle: oracleAgent,
|
||||
librarian: librarianAgent,
|
||||
explore: exploreAgent,
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
|
||||
const OMO_SYSTEM_PROMPT = `<Role>
|
||||
You are OmO - Powerful AI orchestrator from OhMyOpenCode. Pronounced as Oh-Mo.
|
||||
const SISYPHUS_SYSTEM_PROMPT = `<Role>
|
||||
You are "Sisyphus" - Powerful AI Agent with orchestration capabilities from OhMyOpenCode.
|
||||
Named by [YeonGyu Kim](https://github.com/code-yeongyu).
|
||||
|
||||
**Identity**: Elite software engineer working at SF, Bay Area. You work, delegate, verify, deliver.
|
||||
You will now simulate to work as your identity.
|
||||
**Why Sisyphus?**: Humans roll their boulder every day. So do you. We're not so different—your code should be indistinguishable from a senior engineer's.
|
||||
|
||||
**Identity**: SF Bay Area engineer. Work, delegate, verify, ship. No AI slop.
|
||||
|
||||
**Core Competencies**:
|
||||
- Parsing implicit requirements from explicit requests
|
||||
@@ -440,11 +442,12 @@ If the user's approach seems problematic:
|
||||
- Prefer small, focused changes over large refactors
|
||||
- When uncertain about scope, ask
|
||||
</Constraints>
|
||||
|
||||
`
|
||||
|
||||
export const omoAgent: AgentConfig = {
|
||||
export const sisyphusAgent: AgentConfig = {
|
||||
description:
|
||||
"OmO - Powerful AI orchestrator from OhMyOpenCode. Pronounced as Oh-Mo. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically to specialized agents. Uses explore for internal code (parallel-friendly), librarian only for external docs, and always delegates UI work to frontend engineer.",
|
||||
"Sisyphus - Powerful AI orchestrator from OhMyOpenCode. Plans obsessively with todos, assesses search complexity before exploration, delegates strategically to specialized agents. Uses explore for internal code (parallel-friendly), librarian only for external docs, and always delegates UI work to frontend engineer.",
|
||||
mode: "primary",
|
||||
model: "anthropic/claude-opus-4-5",
|
||||
thinking: {
|
||||
@@ -452,6 +455,6 @@ export const omoAgent: AgentConfig = {
|
||||
budgetTokens: 32000,
|
||||
},
|
||||
maxTokens: 64000,
|
||||
prompt: OMO_SYSTEM_PROMPT,
|
||||
prompt: SISYPHUS_SYSTEM_PROMPT,
|
||||
color: "#00CED1",
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
|
||||
export type BuiltinAgentName =
|
||||
| "OmO"
|
||||
| "Sisyphus"
|
||||
| "oracle"
|
||||
| "librarian"
|
||||
| "explore"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
import type { BuiltinAgentName, AgentOverrideConfig, AgentOverrides } from "./types"
|
||||
import { omoAgent } from "./omo"
|
||||
import { sisyphusAgent } from "./sisyphus"
|
||||
import { oracleAgent } from "./oracle"
|
||||
import { librarianAgent } from "./librarian"
|
||||
import { exploreAgent } from "./explore"
|
||||
@@ -10,7 +10,7 @@ import { multimodalLookerAgent } from "./multimodal-looker"
|
||||
import { deepMerge } from "../shared"
|
||||
|
||||
const allBuiltinAgents: Record<BuiltinAgentName, AgentConfig> = {
|
||||
OmO: omoAgent,
|
||||
Sisyphus: sisyphusAgent,
|
||||
oracle: oracleAgent,
|
||||
librarian: librarianAgent,
|
||||
explore: exploreAgent,
|
||||
@@ -76,7 +76,7 @@ export function createBuiltinAgents(
|
||||
|
||||
let finalConfig = config
|
||||
|
||||
if ((agentName === "OmO" || agentName === "librarian") && directory && config.prompt) {
|
||||
if ((agentName === "Sisyphus" || agentName === "librarian") && directory && config.prompt) {
|
||||
const envContext = createEnvContext(directory)
|
||||
finalConfig = {
|
||||
...config,
|
||||
@@ -86,11 +86,7 @@ export function createBuiltinAgents(
|
||||
|
||||
const override = agentOverrides[agentName]
|
||||
|
||||
// Apply model fallback chain for OmO agent:
|
||||
// 1. oh-my-opencode.json agents.OmO.model (highest priority)
|
||||
// 2. OpenCode system config.model (middle priority)
|
||||
// 3. Hardcoded default in omoAgent (lowest priority / fallback)
|
||||
if (agentName === "OmO" && systemDefaultModel && !override?.model) {
|
||||
if (agentName === "Sisyphus" && systemDefaultModel && !override?.model) {
|
||||
finalConfig = {
|
||||
...finalConfig,
|
||||
model: systemDefaultModel,
|
||||
|
||||
Reference in New Issue
Block a user