Commit Graph

974 Commits

Author SHA1 Message Date
justsisyphus 458c9ae21b refactor(hooks): rename sisyphus-orchestrator to atlas
- Rename SisyphusOrchestratorHookOptions → AtlasHookOptions
- Rename createSisyphusOrchestratorHook → createAtlasHook
- Update hook name in schema: sisyphus-orchestrator → atlas
- Update all documentation references
- Rename image: orchestrator-sisyphus.png → orchestrator-atlas.png
2026-01-20 16:52:20 +09:00
justsisyphus d6d60924f7 refactor(delegate-task): restructure category system for unbiased model selection
- Remove temperature from all categories
- Consolidate CATEGORY_MODEL_CATALOG into DEFAULT_CATEGORIES
- Replace 'general' and 'most-capable' with 'unspecified-low' and 'unspecified-high'
- Add Selection_Gate to unspecified categories to force deliberate selection
- Update quick category to use claude-haiku-4-5
- Update all references and tests across codebase
2026-01-20 16:22:53 +09:00
justsisyphus 64419e3755 refactor(cli): remove ChatGPT subscription check from installer
- Remove chatgpt option from CLI args and types
- Remove ChatGPT prompt from TUI installer flow
- Update config detection to not include hasChatGPT
- Update related tests
2026-01-20 16:04:50 +09:00
justsisyphus bf59fd5aa9 feat(delegate-task): add category model catalog with default models
- Add CATEGORY_MODEL_CATALOG for category-specific default models
- ultrabrain: openai/gpt-5.2-codex + xhigh
- artistry: google/gemini-3-pro-preview + max
- most-capable: anthropic/claude-opus-4-5 + max
- writing: google/gemini-3-flash-preview
- general: anthropic/claude-sonnet-4-5
2026-01-20 16:04:42 +09:00
justsisyphus bf2dad10d1 docs: update atlas references
Update all documentation files to use 'atlas' instead of 'orchestrator-sisyphus'. AGENTS.md, src/agents/AGENTS.md, docs/features.md, docs/guide/overview.md all updated.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-20 15:57:14 +09:00
justsisyphus a2c3a48cfe refactor(plugin): update atlas references
Update plugin handlers, commands, and integration points to use 'atlas' agent name. Start-work command and config handler now reference 'atlas'.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-20 15:55:09 +09:00
justsisyphus 1224b93f5a refactor(hooks): rename sisyphus-orchestrator to atlas
Hook name is now 'atlas' (not 'atlas-orchestrator'). Directory renamed to src/hooks/atlas/. All references updated.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-20 15:52:13 +09:00
justsisyphus 03efc9d38f refactor(agents): rename orchestrator-sisyphus to atlas
Rename agent file and update all references. Function createOrchestratorSisyphusAgent → createAtlasAgent. Metadata orchestratorSisyphusPromptMetadata → atlasPromptMetadata.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-20 15:40:34 +09:00
justsisyphus 2b2fb39a18 refactor(schema): rename orchestrator-sisyphus to atlas
Update schema definitions, types, and integrations to use 'atlas' instead of 'orchestrator-sisyphus'. Includes schema regeneration and test updates.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-20 15:36:29 +09:00
justsisyphus 9e4908eee4 feat(migration): add orchestrator-sisyphus to atlas mapping 2026-01-20 15:24:31 +09:00
justsisyphus 49b77ef3fc fix(start-work): use updateSessionAgent instead of clearSessionAgent to prevent Prometheus fallback 2026-01-20 15:23:36 +09:00
justsisyphus 6a71ccb27d fix(permission): enable question tool for Sisyphus and Prometheus agents 2026-01-20 15:12:54 +09:00
justsisyphus eeee655ba3 fix(cli/run): add retry mechanism for session creation
The OpenCode server may not be fully initialized even after
reporting 'listening'. Add retry with exponential backoff (3 attempts)
and proper error handling to make session creation more robust.

This fixes CI failures where session.create() fails immediately
after server startup.

Fixes #935 (CI failure)
2026-01-20 14:37:10 +09:00
luojiyin 07e95533fc fix: correct spelling errors (IDEALY→IDEALLY, EXPLICITELY→EXPLICITLY) 2026-01-20 13:31:37 +08:00
Bo Li ed2fd05369 feat: add current date to omo-env context 2026-01-20 08:18:45 +08:00
Kenny ff9595b768 Merge pull request #907 from vsumner/pr-skill-cleanup
test: stabilize non-interactive env hook
2026-01-19 19:14:55 -05:00
Kenny a8d25d7ee6 Merge pull request #883 from code-yeongyu/fix/remove-hardcoded-model-defaults
fix: remove hardcoded model defaults from categories and agents
2026-01-19 08:47:37 -05:00
justsisyphus c7b59bcee8 mcp 2026-01-19 20:18:26 +09:00
carlory e524cf73cd fix(doctor): handle file:// protocol for local dev plugin detection 2026-01-19 16:09:46 +08:00
justsisyphus 1d0a3066ea plan writing 2026-01-19 14:58:13 +09:00
justsisyphus 692603776a fix(background-agent): prevent premature task completion when agent still running
- Add session.status re-check in stability detection before completing
- Reset stablePolls if session is not idle (agent still working)
- Fix statusText to show CANCELLED instead of COMPLETED for non-completed tasks
2026-01-19 14:58:13 +09:00
justsisyphus ab19ca585c feat(ultrawork): add mandatory certainty and no-compromise clauses to ultrawork prompt 2026-01-19 14:58:13 +09:00
gilbrotheraway 8028b9ca6a fix(skill-mcp): allow object args and strip quotes 2026-01-19 02:14:01 -03:00
Kenny fc669bfea5 fix: correct config.data.model access pattern and use dynamic config paths
- Fixed delegate-task/tools.ts to access openCodeConfig.data.model instead of openCodeConfig.model
- Updated error messages to use getOpenCodeConfigPaths() for cross-platform paths
- Fixed 12 test mocks to use correct { data: { model: ... } } structure
- Fixes delegation failing with 'requires a default model' even when model is configured
2026-01-18 22:08:27 -05:00
justsisyphus 1fb772f990 refactor(agents): remove unused createSisyphusJuniorAgent function
Remove dead code that was never called anywhere in the codebase. Also removes the unused CategoryConfig import.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-19 10:57:31 +09:00
Victor Sumner 6eda8d3664 test: stabilize non-interactive env hook
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-18 20:39:02 -05:00
justsisyphus 512792f00e fix(types): add null checks for optional sessionID and startedAt fields 2026-01-19 10:35:47 +09:00
justsisyphus 66e1a15ebd test(background-agent): add non-blocking queue tests 2026-01-19 10:27:50 +09:00
justsisyphus a4488a765e feat(ui): show pending/queued status in toast and background_output 2026-01-19 10:22:34 +09:00
justsisyphus 7fefbe5f3a fix(background-agent): use queuedAt for pending task TTL 2026-01-19 10:19:48 +09:00
justsisyphus b70b94b39f feat(background-agent): support cancelling pending tasks 2026-01-19 10:18:10 +09:00
justsisyphus ca55f4b0a9 fix(background-agent): track pending tasks in pendingByParent 2026-01-19 10:16:02 +09:00
justsisyphus 4093838806 feat(background-agent): implement per-key queue processor 2026-01-19 10:16:02 +09:00
justsisyphus a9d160fa39 feat(background-agent): make launch() non-blocking 2026-01-19 10:16:02 +09:00
justsisyphus 500d896344 feat(background-agent): add per-key queue structure 2026-01-19 10:16:02 +09:00
justsisyphus e4f92ce425 feat(background-agent): add pending status and queuedAt field 2026-01-19 10:16:02 +09:00
Kenny 64117a368f fix: correct error message for missing model config 2026-01-18 08:16:20 -05:00
Kenny 3284371467 restore gitignore 2026-01-17 20:40:55 -05:00
Kenny 76508cfc7d fix: remove hardcoded model defaults from categories and agents
BREAKING CHANGE: Model resolution overhauled

- Created centralized model-resolver.ts with priority chain:
  userModel → inheritedModel → systemDefaultModel
- Removed model field from all 7 DEFAULT_CATEGORIES entries
- Removed DEFAULT_MODEL constants from 10 agents
- Removed singleton agent exports (use factories instead)
- Made CategoryConfigSchema.model optional
- CLI no longer generates model overrides
- Empty strings treated as unset (uses fallback)

Users must now:
1. Use factory functions (createOracleAgent, etc.) instead of singletons
2. Provide model explicitly or use systemDefaultModel
3. Configure category models explicitly if needed

Fixes model fallback bug where hardcoded defaults overrode
user's OpenCode configured model.
2026-01-17 12:51:03 -05:00
Kenny be1af6d980 Merge pull request #870 from qwertystars/fix/mcp-oauth-autodetect
fix(mcp): disable OAuth auto-detection for built-in MCPs
2026-01-17 09:39:03 -05:00
justsisyphus 24f46c1638 refactor(orchestrator): enable parallel delegation by default
Remove overly restrictive parallel execution constraints that were
preventing orchestrator from using background agents effectively.

- Change from 'RARELY NEEDED' to 'DEFAULT behavior'
- Remove 5+ query requirement for background agents
- Remove anti-pattern warnings that discouraged delegation
- Align with sisyphus.ts parallel execution philosophy
2026-01-17 22:04:55 +09:00
justsisyphus f1393d3e85 docs: regenerate hierarchical AGENTS.md with deep investigation
- Root: 181 lines with agent models, complexity hotspots, CI pipeline
- Hooks: 31 lifecycle hooks, execution order, patterns
- Tools: 20+ tools, LSP/AST-Grep specifics, registration
- Features: Background agents, Claude Code compat, skill MCP
- Agents: 10 agents with models, tool restrictions
- Shared: 43 utilities with usage patterns
- CLI: Commander.js entry, doctor checks, TUI framework

Generated via /init-deep with 12 parallel explore agents
2026-01-17 22:01:56 +09:00
justsisyphus 86af550056 refactor(delegate-task): use empty array instead of null for skills parameter
- Change skills type from string[] | null to string[]
- Allow skills=[] for no skills, reject skills=null
- Remove emojis from error messages and prompts
- Update tests accordingly
2026-01-17 21:25:02 +09:00
justsisyphus a104a05287 fix(momus): constrain reviewer to evaluate documentation, not design direction
Momus was rejecting plans by questioning implementation approaches instead
of reviewing documentation quality. Added explicit constraints:

- ABSOLUTE CONSTRAINT section: reviewer role, not designer
- MUST NOT question architecture/approach choices
- Self-check prompts to detect overstepping
- NOT Valid REJECT Reasons section
- Reinforced throughout: documentation quality vs design decisions
2026-01-17 21:25:02 +09:00
justsisyphus db41a6fb01 chore: remove 1,152 lines of verified dead code (#874)
* chore(deps): remove unused dependencies

Removed @openauthjs/openauth, hono, open, and xdg-basedir - none are imported in src/

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* chore(cleanup): remove unused agent prompts and tool files

Deleted:
- src/agents/build-prompt.ts (exports never imported)
- src/agents/plan-prompt.ts (exports never imported)
- src/tools/ast-grep/napi.ts (never imported)
- src/tools/interactive-bash/types.ts (never imported)

Verified by: LSP FindReferences + explore agents

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* chore(hooks): remove unused comment-checker filters

Deleted entire filters/ directory:
- filters/bdd.ts
- filters/directive.ts
- filters/docstring.ts
- filters/shebang.ts
- filters/index.ts

Not used by main hook (cli.ts uses external binary instead)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* chore(hooks): remove unused comment-checker output and constants

Deleted:
- output/formatter.ts
- output/xml-builder.ts
- output/index.ts
- constants.ts

All 0 external imports - migrated to external binary

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* chore(hooks): remove unused pruning subsystem

Deleted pruning subsystem (dependency order):
- pruning-purge-errors.ts
- pruning-storage.ts
- pruning-supersede.ts
- pruning-executor.ts

Not imported by main recovery hook

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* chore(hooks): remove unused createBackgroundCompactionHook export

Removed export from index.ts - never imported in src/index.ts

Verified by: LSP FindReferences (only 2 refs: definition + barrel export)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

---------

Co-authored-by: justsisyphus <sisyphus-dev-ai@users.noreply.github.com>
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-17 21:12:55 +09:00
qwertystars 2940c483f4 fix(mcp): disable OAuth auto-detection for built-in MCPs
OpenCode's OAuth auto-detection was causing context7 and grep_app MCPs
to be disabled despite having enabled: true. Only websearch was working.

Root cause: Remote MCP servers trigger OAuth detection by default in
OpenCode, which can mark MCPs as 'needs_auth' or 'disabled' status
even when they don't require OAuth.

Fix: Add oauth: false to all 3 built-in MCP configs to explicitly
disable OAuth auto-detection. These MCPs either:
- Use no auth (context7, grep_app)
- Use API key header auth (websearch with EXA_API_KEY)
2026-01-17 16:36:23 +05:30
YeonGyu-Kim 3afc8e777f Add /ulw-loop command for ultrawork mode loop (#867)
* feat(ralph-loop): add ultrawork field to RalphLoopState

* feat(ralph-loop): persist ultrawork field in storage

* feat(ralph-loop): accept ultrawork option in startLoop

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* feat(ralph-loop): prepend ultrawork keyword when mode active

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>

* feat(ralph-loop): custom toast for ultrawork mode

* feat(ralph-loop): add /ulw-loop command for ultrawork mode

* fix(ralph-loop): add non-null assertion for type safety

* fix(ralph-loop): mirror argument parsing in ulw-loop handler

- Parse quoted prompts and strip flags from task text
- Support --max-iterations and --completion-promise options
- Add default prompt for empty input
- Fixes behavior inconsistency with /ralph-loop

---------

Co-authored-by: justsisyphus <sisyphus-dev-ai@users.noreply.github.com>
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-17 19:56:50 +09:00
justsisyphus 825d636bf2 docs(agents): regenerate hierarchical AGENTS.md with init-deep
- Root AGENTS.md: Updated timestamp, commit hash, line counts
- src/agents/AGENTS.md: Updated to 50 lines, current structure
- src/cli/AGENTS.md: Updated to 57 lines, current structure
- src/features/AGENTS.md: Updated to 65 lines, current structure
- src/hooks/AGENTS.md: Updated to 53 lines, current structure
- src/shared/AGENTS.md: Updated to 52 lines, core utilities
- src/tools/AGENTS.md: Updated to 50 lines, tool categories

🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
2026-01-17 19:16:49 +09:00
justsisyphus 98e91e508c fix(lsp): display diagnostics errors as error blocks in TUI
- Changed lsp_diagnostics error handling to throw errors instead of returning strings
- Line 211: Changed from `return output` to `throw new Error(output)`
- Makes errors display as proper error blocks in TUI

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-17 18:14:50 +09:00
justsisyphus 9d815a5697 feat(skill-mcp): add auto-reconnect retry on "Not connected" errors
- Added withOperationRetry<T>() helper method that retries operations up to 3 times
- Catches "Not connected" errors (case-insensitive)
- Cleans up stale client before retry
- Modified callTool, readResource, getPrompt to use retry logic
- Added tests for retry behavior (3 new test cases)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-17 18:14:48 +09:00