152 Commits

Author SHA1 Message Date
justsisyphus
c2247aec60 refactor(agents): add prometheus agent and normalize agent key lookups
- Add 'prometheus' to BuiltinAgentNameSchema enum
- Update delegate_task parameter names in documentation (agent → subagent_type, background → run_in_background)
- Make agent name comparison case-insensitive in Atlas hook
- Implement case-insensitive agent config lookup in shared utilities
- Relax type signature for disabled agents parameter

🤖 Generated with assistance of OhMyOpenCode
2026-01-24 02:00:17 +09:00
justsisyphus
91060c35ab refactor(agents): use lowercase config keys in utils 2026-01-23 21:27:26 +09:00
justsisyphus
37e1a065d8 feat(agents): add aggressive resume instructions to Atlas prompt 2026-01-23 17:04:14 +09:00
justsisyphus
fc47a7a490 docs: update multimodal-looker model name and fallback chain 2026-01-23 17:02:11 +09:00
justsisyphus
262c7118da docs(agents): update AGENTS.md with current commit hash and line counts 2026-01-23 16:00:38 +09:00
justsisyphus
afbdf69037 fix(model-resolver): use first fallback entry when model cache unavailable
When availableModels is empty (no cache in CI), use the first entry
from fallbackChain directly instead of falling back to systemDefault.
This ensures categories and agents use their configured models even
when the model cache file doesn't exist.

Fixes:
- model-resolution check returning 'warn' instead of 'pass' in CI
- DEFAULT_CATEGORIES not being used when no cache available
- Unstable agent detection failing (models falling back to non-gemini)
2026-01-23 15:39:07 +09:00
justsisyphus
57b10439a4 fix(agents): use resolved variant from fallback chain instead of requirement default
resolveModelWithFallback() returns entry-specific variant but it was being
ignored. Agents like oracle now correctly get variant 'high' from their
fallback chain entry instead of undefined.
2026-01-23 14:44:02 +09:00
justsisyphus
6dfe091a88 refactor(atlas): rewrite prompt with lean orchestrator structure
- Reduce prompt from ~1280 to ~280 lines (78% reduction)
- Apply prompt engineering principles: remove model-already-knows content
- Use clean XML sections: identity, mission, delegation_system, workflow, etc.
- Adopt 6-section delegation format (TASK, EXPECTED OUTCOME, REQUIRED TOOLS, MUST DO, MUST NOT DO, CONTEXT)
- Preserve: identity, category+skills system, notepad protocol, parallelization, project-level QA
- Consolidate critical overrides at end with strong framing
2026-01-23 14:37:52 +09:00
justsisyphus
f4348885f2 fix: model fallback properly falls through to system default
- Remove Step 3 in model-resolver that forced first fallbackChain entry
  even when unavailable, blocking system default fallback
- Add sisyphusJuniorModel option to delegate_task so agents["Sisyphus-Junior"]
  model override is respected in category-based delegation
- Update tests to reflect new fallback behavior
2026-01-23 10:56:31 +09:00
justsisyphus
aa6355cc46 refactor(atlas): improve delegation guidance in validation step 2026-01-23 02:59:03 +09:00
justsisyphus
6e84a14f20 fix(model-resolver): return variant from fallback chain, handle model name normalization
- Add variant to ModelResolutionResult return type
- Return variant from matched fallback entry
- Add normalizeModelName() for Claude model hyphen/period differences
- Add transformModelForProvider() for github-copilot model names
- Update delegate-task to use resolved variant (user config takes priority)
- Fix test expectations for new fallback behavior
2026-01-23 02:20:32 +09:00
justsisyphus
7de376e24f docs: regenerate all AGENTS.md files with updated structure 2026-01-23 02:14:08 +09:00
justsisyphus
45b2782d55 refactor: use case-insensitive matching for agent names
Apply case-insensitive utilities across agents, delegation, and tool
restrictions. Removes duplicate implementations from agents/utils.ts.
Agent validation now normalizes input to canonical names.
2026-01-23 00:55:01 +09:00
justsisyphus
83bcf70bdd docs: sync category names with code and add missing schema fields
- Update category tables to match DEFAULT_CATEGORIES in constants.ts
- Remove non-existent 'most-capable' and 'general' categories
- Add 'unspecified-low' and 'unspecified-high' categories
- Update model names to full paths (e.g., openai/gpt-5.2-codex)
- Add new CategoryConfig schema fields: description, variant, top_p, etc.
- Fix atlas.ts prompt examples with correct category names
2026-01-23 00:13:42 +09:00
justsisyphus
638a314f6d docs: update AGENTS.md files and configuration docs
Refresh documentation across all AGENTS.md files and update configuration documentation with latest features.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-22 22:48:50 +09:00
justsisyphus
4ffb9b1c93 refactor(agents): simplify dynamic agent prompt builder
Reduce complexity in prompt builder by removing redundant helper functions and streamlining category/skill/agent description generation.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-22 22:45:41 +09:00
justsisyphus
0610ef8c77 refactor(agents): update atlas, prometheus, sisyphus-junior prompts
Align agent prompts with new architecture. Simplify atlas prompt structure, update prometheus for cleaner flow, and minor sisyphus-junior adjustments.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-22 22:45:25 +09:00
justsisyphus
5e27ceeb81 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>
2026-01-22 22:45:05 +09:00
justsisyphus
de3a6aae11 refactor(agents): make agent creation async with model resolution
Convert createBuiltinAgents to async function that fetches available models at plugin init time. Add case-insensitive matching helpers and integrate discovered skills from both builtin and user sources.

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

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-01-22 22:44:43 +09:00
luojiyin
e3cc4c8cef Merge branch 'dev' into fix/typos 2026-01-22 10:51:45 +08:00
justsisyphus
6865995227 fix(sisyphus): restore parallel background explore/librarian prompts
- Add 'CORRECT: Background Exploration' example with run_in_background=true
- Update PARALLEL_EXECUTION examples with correct params (subagent_type, run_in_background, skills)
- Ensures agents fire explore/librarian in parallel as background tasks
2026-01-21 11:19:00 +09:00
justsisyphus
d419bc302c refactor: rename atlas agent to Atlas for naming consistency
- Rename agent name from 'atlas' to 'Atlas' (PascalCase like Sisyphus, Metis, Momus)
- Add migration for lowercase 'atlas' -> 'Atlas' for backward compatibility
- Keep hook name as 'atlas' (lowercase) to match other hook naming conventions
- Update all references in types, schema, hooks, commands, and tests
2026-01-21 11:19:00 +09:00
justsisyphus
29e7595fc9 docs: update AGENTS.md with latest stats and commit hash
Auto-generated documentation update reflecting recent changes.
2026-01-20 18:55:18 +09:00
justsisyphus
824da626d7 fix(agents): pass categories and skills to Sisyphus/Atlas prompts
Sisyphus and Atlas prompts were missing delegation guide because
availableCategories and availableSkills were not being passed to
createSisyphusAgent() and createAtlasAgent() in utils.ts.

This caused buildCategorySkillsDelegationGuide() to return empty string,
resulting in agents not knowing when/how to delegate to explore, librarian,
or use category+skills based delegation.
2026-01-20 18:15:58 +09:00
justsisyphus
3d3d3e493b fix(delegate-task): category built-in model takes precedence over inherited model
Previously, when using categories like 'quick', the parent session's model
(e.g., Opus 4.5) would override the category's built-in model (e.g., Haiku).

Fixed priority: userConfig.model → category built-in → systemDefault

The inherited model from parent session no longer affects category-based
delegation - categories have their own explicit models.
2026-01-20 17:05:17 +09:00
justsisyphus
3e5265700b refactor(agents): remove frontend-ui-ux-engineer and rename prompt builder
- Delete frontend-ui-ux-engineer.ts (use category="visual-engineering" + skills instead)
- Rename sisyphus-prompt-builder.ts → dynamic-agent-prompt-builder.ts
- Update sisyphus.ts imports for renamed module

Frontend UI/UX work now handled via delegate_task with
category="visual-engineering" and skills=["frontend-ui-ux"].
2026-01-20 16:53:46 +09:00
justsisyphus
f1887327ee refactor(agents): remove document-writer agent in favor of writing category
- Delete document-writer.ts agent file
- Remove from types, schema, utils, index exports
- Remove tool restrictions entry
- Remove migration mappings
- Update atlas.ts to use category="writing" instead of agent="document-writer"
- Update init-deep command template
- Update all documentation (AGENTS.md, README.*, docs/)
- Regenerate schema.json

document-writer functionality is now handled via delegate_task with
category="writing" which uses the writing category's model config.
2026-01-20 16:52:31 +09:00
justsisyphus
8cc995891e 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
59d663dce7 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
96bcd9788a 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
e05ac04e66 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
luojiyin
d61817bc76
fix: correct spelling errors (IDEALY→IDEALLY, EXPLICITELY→EXPLICITLY) 2026-01-20 13:31:37 +08:00
Bo Li
193c176130
feat: add current date to omo-env context 2026-01-20 08:18:45 +08:00
Kenny
c910820cdb restore gitignore 2026-01-17 20:40:55 -05:00
Kenny
c698a5b888 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
justsisyphus
753fd809b5 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
6d99b5c1fc 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
2206d68523 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
b643dd4f19
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
justsisyphus
36b665ed89 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
a2f64e18f3 chore(release): bump platform packages to 3.0.0-beta.9
🤖 Generated with OhMyOpenCode assistance
2026-01-17 17:58:54 +09:00
Kenny
cf7b23be5e
Merge pull request #847 from minkichoe-lbox/fix/dynamic-year
fix(librarian): use dynamic year instead of hardcoded 2024/2025
2026-01-16 07:14:58 -05:00
justsisyphus
188bbef018 refactor: rename sisyphus_task to delegate_task
- Rename directories: sisyphus-task → delegate-task
- Rename types: SisyphusTaskArgs → DelegateTaskArgs, etc.
- Rename functions: createSisyphusTask → createDelegateTask
- Rename constants: SISYPHUS_TASK_* → DELEGATE_TASK_*
- Update tool name: sisyphus_task → delegate_task
- Update all prompts, docs, and tests
2026-01-16 18:31:08 +09:00
justsisyphus
6008388a4e feat(prometheus): auto-generate plan workflow with self-review
- Remove intermediate questions before plan generation
- Auto-proceed with Metis consultation
- Generate plan immediately after Metis review
- Add Post-Plan Self-Review with gap classification:
  - CRITICAL: requires user input
  - MINOR: auto-resolve silently
  - AMBIGUOUS: apply default and disclose
- Present summary with auto-resolved items and decisions needed
- Ask high accuracy question after summary
2026-01-16 18:31:08 +09:00
minkichoe
47e64a4a92
fix(librarian): use dynamic year instead of hardcoded 2024/2025 2026-01-16 18:14:00 +09:00
justsisyphus
83cbc56709 refactor: remove legacy tools format, use permission only
BREAKING: Requires OpenCode 1.1.1+

- Remove supportsNewPermissionSystem/usesLegacyToolsSystem checks
- Simplify permission-compat.ts to permission format only
- Unify explore/librarian deny lists: write, edit, task, sisyphus_task, call_omo_agent
- Add sisyphus_task to oracle deny list
- Update agent-tool-restrictions.ts with correct per-agent restrictions
- Clean config-handler.ts conditional version checks
- Update tests for simplified API
2026-01-16 17:11:34 +09:00
justsisyphus
ede9abceb3 feat(multimodal-looker): restrict to read-only tool access
Use createAgentToolAllowlist to allow only 'read' tool for multimodal-looker agent.
Previously denied write/edit/bash but allowed other tools.
Now uses wildcard deny pattern (*: deny) with explicit read allow.

- Add createAgentToolAllowlist function for allowlist-based restrictions
- Support legacy fallback for older OpenCode versions
- Add 4 test cases covering both permission systems
2026-01-16 15:02:55 +09:00
justsisyphus
27ef9fa8df feat(orchestrator): emphasize project-level lsp_diagnostics and QA verification
- Add mandatory PROJECT-LEVEL code checks (lsp_diagnostics at src/ or . level)
- Strengthen verification duties with explicit QA checklist
- Add 'SUBAGENTS LIE - VERIFY EVERYTHING' reminders throughout
- Emphasize that only orchestrator sees full picture of cross-file impacts
2026-01-16 14:11:56 +09:00
justsisyphus
333db56172 refactor(agents): remove lsp_diagnostics from Sisyphus and Sisyphus-Junior prompts
Orchestrator Sisyphus will handle project-level code validation instead of
having each subagent run file-level lsp_diagnostics.
2026-01-16 14:09:28 +09:00
justsisyphus
e737477fbe feat(prometheus): strengthen plan-mode constraints with constraint-first architecture
- Move Turn Termination Rules inside <system-reminder> block (from line 488 to ~186)
- Add Final Constraint Reminder at end of prompt (constraint sandwich pattern)
- Preserve all existing interview mode detail and strategies

Applies OpenCode's effective constraint patterns to prevent plan-mode agents
from offering to implement work instead of staying in consultation mode.
2026-01-16 13:36:46 +09:00