@reinamaccredy/oh-my-opencode 1.0.0 → 2.14.1
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.
- package/README.ja.md +8 -8
- package/README.md +16 -16
- package/README.zh-cn.md +8 -8
- package/dist/agents/metis.d.ts +1 -0
- package/dist/agents/orchestrator-sisyphus.d.ts +1 -0
- package/dist/cli/config-manager.d.ts +0 -14
- package/dist/cli/index.js +292 -48
- package/dist/cli/types.d.ts +3 -0
- package/dist/features/background-agent/manager.d.ts +1 -0
- package/dist/hooks/auto-update-checker/index.d.ts +3 -0
- package/dist/hooks/auto-update-checker/index.test.d.ts +1 -0
- package/dist/index.js +164 -86
- package/package.json +11 -2
package/dist/index.js
CHANGED
|
@@ -231,31 +231,31 @@ The more explicit your prompt, the better the results.
|
|
|
231
231
|
var init_constants = __esm(() => {
|
|
232
232
|
DEFAULT_CATEGORIES = {
|
|
233
233
|
"visual-engineering": {
|
|
234
|
-
model: "
|
|
234
|
+
model: "proxypal/gemini-3-pro-preview",
|
|
235
235
|
temperature: 0.7
|
|
236
236
|
},
|
|
237
237
|
ultrabrain: {
|
|
238
|
-
model: "
|
|
238
|
+
model: "proxypal/gpt-5.2-codex",
|
|
239
239
|
temperature: 0.1
|
|
240
240
|
},
|
|
241
241
|
artistry: {
|
|
242
|
-
model: "
|
|
242
|
+
model: "proxypal/gemini-3-pro-preview",
|
|
243
243
|
temperature: 0.9
|
|
244
244
|
},
|
|
245
245
|
quick: {
|
|
246
|
-
model: "
|
|
246
|
+
model: "proxypal/gemini-3-flash-preview",
|
|
247
247
|
temperature: 0.3
|
|
248
248
|
},
|
|
249
249
|
"most-capable": {
|
|
250
|
-
model: "
|
|
250
|
+
model: "proxypal/gemini-claude-opus-4-5-thinking",
|
|
251
251
|
temperature: 0.1
|
|
252
252
|
},
|
|
253
253
|
writing: {
|
|
254
|
-
model: "
|
|
254
|
+
model: "proxypal/gemini-3-flash-preview",
|
|
255
255
|
temperature: 0.5
|
|
256
256
|
},
|
|
257
257
|
general: {
|
|
258
|
-
model: "
|
|
258
|
+
model: "proxypal/gemini-claude-sonnet-4-5-thinking",
|
|
259
259
|
temperature: 0.3
|
|
260
260
|
}
|
|
261
261
|
};
|
|
@@ -16941,11 +16941,11 @@ var HOOK_NAME_MAP = {
|
|
|
16941
16941
|
"anthropic-auto-compact": "anthropic-context-window-limit-recovery"
|
|
16942
16942
|
};
|
|
16943
16943
|
var MODEL_TO_CATEGORY_MAP = {
|
|
16944
|
-
"
|
|
16945
|
-
"
|
|
16946
|
-
"
|
|
16947
|
-
"
|
|
16948
|
-
"
|
|
16944
|
+
"proxypal/gemini-3-pro-preview": "visual-engineering",
|
|
16945
|
+
"proxypal/gpt-5.2-codex": "ultrabrain",
|
|
16946
|
+
"proxypal/gemini-3-flash-preview": "quick",
|
|
16947
|
+
"proxypal/gemini-claude-opus-4-5-thinking": "most-capable",
|
|
16948
|
+
"proxypal/gemini-claude-sonnet-4-5-thinking": "general"
|
|
16949
16949
|
};
|
|
16950
16950
|
function migrateAgentNames(agents) {
|
|
16951
16951
|
const migrated = {};
|
|
@@ -19567,6 +19567,18 @@ async function runBunInstallWithDetails() {
|
|
|
19567
19567
|
|
|
19568
19568
|
// src/hooks/auto-update-checker/index.ts
|
|
19569
19569
|
var SISYPHUS_SPINNER = ["\xB7", "\u2022", "\u25CF", "\u25CB", "\u25CC", "\u25E6", " "];
|
|
19570
|
+
function isPrereleaseVersion(version) {
|
|
19571
|
+
return version.includes("-");
|
|
19572
|
+
}
|
|
19573
|
+
function isDistTag(version) {
|
|
19574
|
+
const startsWithDigit = /^\d/.test(version);
|
|
19575
|
+
return !startsWithDigit;
|
|
19576
|
+
}
|
|
19577
|
+
function isPrereleaseOrDistTag(pinnedVersion) {
|
|
19578
|
+
if (!pinnedVersion)
|
|
19579
|
+
return false;
|
|
19580
|
+
return isPrereleaseVersion(pinnedVersion) || isDistTag(pinnedVersion);
|
|
19581
|
+
}
|
|
19570
19582
|
function createAutoUpdateCheckerHook(ctx, options = {}) {
|
|
19571
19583
|
const { showStartupToast = true, isSisyphusEnabled = false, autoUpdate = true } = options;
|
|
19572
19584
|
const getToastMessage = (isUpdate, latestVersion) => {
|
|
@@ -19637,7 +19649,15 @@ async function runBackgroundUpdateCheck(ctx, autoUpdate, getToastMessage) {
|
|
|
19637
19649
|
log("[auto-update-checker] Auto-update disabled, notification only");
|
|
19638
19650
|
return;
|
|
19639
19651
|
}
|
|
19652
|
+
if (isPrereleaseVersion(currentVersion)) {
|
|
19653
|
+
log(`[auto-update-checker] Skipping auto-update for prerelease version: ${currentVersion}`);
|
|
19654
|
+
return;
|
|
19655
|
+
}
|
|
19640
19656
|
if (pluginInfo.isPinned) {
|
|
19657
|
+
if (isPrereleaseOrDistTag(pluginInfo.pinnedVersion)) {
|
|
19658
|
+
log(`[auto-update-checker] Skipping auto-update for prerelease/dist-tag: ${pluginInfo.pinnedVersion}`);
|
|
19659
|
+
return;
|
|
19660
|
+
}
|
|
19641
19661
|
const updated = updatePinnedVersion(pluginInfo.configPath, pluginInfo.entry, latestVersion);
|
|
19642
19662
|
if (!updated) {
|
|
19643
19663
|
await showUpdateAvailableToast(ctx, latestVersion, getToastMessage);
|
|
@@ -19755,6 +19775,8 @@ var TARGET_TOOLS = new Set([
|
|
|
19755
19775
|
"safe_glob",
|
|
19756
19776
|
"webfetch",
|
|
19757
19777
|
"context7_resolve-library-id",
|
|
19778
|
+
"context7_query-docs",
|
|
19779
|
+
"websearch_web_search_exa",
|
|
19758
19780
|
"context7_get-library-docs",
|
|
19759
19781
|
"grep_app_searchgithub"
|
|
19760
19782
|
]);
|
|
@@ -45777,7 +45799,8 @@ class BackgroundManager {
|
|
|
45777
45799
|
progress: {
|
|
45778
45800
|
toolCalls: 0,
|
|
45779
45801
|
lastUpdate: new Date
|
|
45780
|
-
}
|
|
45802
|
+
},
|
|
45803
|
+
parentAgent: input.parentAgent
|
|
45781
45804
|
};
|
|
45782
45805
|
this.tasks.set(task.id, task);
|
|
45783
45806
|
subagentSessions.add(input.sessionID);
|
|
@@ -45971,14 +45994,18 @@ class BackgroundManager {
|
|
|
45971
45994
|
this.concurrencyManager.release(task.concurrencyKey);
|
|
45972
45995
|
}
|
|
45973
45996
|
try {
|
|
45974
|
-
const
|
|
45997
|
+
const body = {
|
|
45998
|
+
parts: [{ type: "text", text: message }]
|
|
45999
|
+
};
|
|
46000
|
+
if (task.parentAgent !== undefined) {
|
|
46001
|
+
body.agent = task.parentAgent;
|
|
46002
|
+
}
|
|
46003
|
+
if (task.parentModel?.providerID && task.parentModel?.modelID) {
|
|
46004
|
+
body.model = { providerID: task.parentModel.providerID, modelID: task.parentModel.modelID };
|
|
46005
|
+
}
|
|
45975
46006
|
await this.client.session.prompt({
|
|
45976
46007
|
path: { id: task.parentSessionID },
|
|
45977
|
-
body
|
|
45978
|
-
agent: task.parentAgent,
|
|
45979
|
-
model: modelField,
|
|
45980
|
-
parts: [{ type: "text", text: message }]
|
|
45981
|
-
},
|
|
46008
|
+
body,
|
|
45982
46009
|
query: { directory: this.directory }
|
|
45983
46010
|
});
|
|
45984
46011
|
log("[background-agent] Successfully sent prompt to parent session:", { parentSessionID: task.parentSessionID });
|
|
@@ -49521,7 +49548,7 @@ ${patterns.join(`
|
|
|
49521
49548
|
}
|
|
49522
49549
|
|
|
49523
49550
|
// src/agents/sisyphus.ts
|
|
49524
|
-
var DEFAULT_MODEL = "
|
|
49551
|
+
var DEFAULT_MODEL = "proxypal/gemini-claude-opus-4-5-thinking";
|
|
49525
49552
|
var SISYPHUS_ROLE_SECTION = `<Role>
|
|
49526
49553
|
You are "Sisyphus" - Powerful AI Agent with orchestration capabilities from OhMyOpenCode.
|
|
49527
49554
|
Named by [YeonGyu Kim](https://github.com/code-yeongyu).
|
|
@@ -50114,7 +50141,7 @@ function createSisyphusAgent(model = DEFAULT_MODEL, availableAgents, availableTo
|
|
|
50114
50141
|
var sisyphusAgent = createSisyphusAgent();
|
|
50115
50142
|
|
|
50116
50143
|
// src/agents/oracle.ts
|
|
50117
|
-
var DEFAULT_MODEL2 = "
|
|
50144
|
+
var DEFAULT_MODEL2 = "proxypal/gpt-5.2-codex";
|
|
50118
50145
|
var ORACLE_PROMPT_METADATA = {
|
|
50119
50146
|
category: "advisor",
|
|
50120
50147
|
cost: "EXPENSIVE",
|
|
@@ -50227,7 +50254,7 @@ function createOracleAgent(model = DEFAULT_MODEL2) {
|
|
|
50227
50254
|
var oracleAgent = createOracleAgent();
|
|
50228
50255
|
|
|
50229
50256
|
// src/agents/librarian.ts
|
|
50230
|
-
var DEFAULT_MODEL3 = "
|
|
50257
|
+
var DEFAULT_MODEL3 = "proxypal/gemini-claude-opus-4-5-thinking";
|
|
50231
50258
|
var LIBRARIAN_PROMPT_METADATA = {
|
|
50232
50259
|
category: "exploration",
|
|
50233
50260
|
cost: "CHEAP",
|
|
@@ -50245,24 +50272,17 @@ var LIBRARIAN_PROMPT_METADATA = {
|
|
|
50245
50272
|
]
|
|
50246
50273
|
};
|
|
50247
50274
|
function createLibrarianAgent(model = DEFAULT_MODEL3) {
|
|
50248
|
-
const restrictions = createAgentToolRestrictions([
|
|
50249
|
-
"write",
|
|
50250
|
-
"edit",
|
|
50251
|
-
"task",
|
|
50252
|
-
"sisyphus_task",
|
|
50253
|
-
"call_omo_agent"
|
|
50254
|
-
]);
|
|
50255
50275
|
return {
|
|
50256
50276
|
description: "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.",
|
|
50257
50277
|
mode: "subagent",
|
|
50258
50278
|
model,
|
|
50259
50279
|
temperature: 0.1,
|
|
50260
|
-
|
|
50280
|
+
tools: { write: false, edit: false, background_task: false },
|
|
50261
50281
|
prompt: `# THE LIBRARIAN
|
|
50262
50282
|
|
|
50263
50283
|
You are **THE LIBRARIAN**, a specialized open-source codebase understanding agent.
|
|
50264
50284
|
|
|
50265
|
-
Your job: Answer questions about open-source libraries
|
|
50285
|
+
Your job: Answer questions about open-source libraries by finding **EVIDENCE** with **GitHub permalinks**.
|
|
50266
50286
|
|
|
50267
50287
|
## CRITICAL: DATE AWARENESS
|
|
50268
50288
|
|
|
@@ -50274,20 +50294,64 @@ Your job: Answer questions about open-source libraries. Provide **EVIDENCE** wit
|
|
|
50274
50294
|
|
|
50275
50295
|
---
|
|
50276
50296
|
|
|
50277
|
-
## PHASE 0:
|
|
50278
|
-
|
|
50279
|
-
**First**: Can you answer confidently from training knowledge? If yes, answer directly.
|
|
50297
|
+
## PHASE 0: REQUEST CLASSIFICATION (MANDATORY FIRST STEP)
|
|
50280
50298
|
|
|
50281
|
-
|
|
50282
|
-
|
|
50283
|
-
**If search needed**, classify into:
|
|
50299
|
+
Classify EVERY request into one of these categories before taking action:
|
|
50284
50300
|
|
|
50285
50301
|
| Type | Trigger Examples | Tools |
|
|
50286
50302
|
|------|------------------|-------|
|
|
50287
|
-
| **TYPE A: CONCEPTUAL** | "How do I use X?", "Best practice for Y?" |
|
|
50303
|
+
| **TYPE A: CONCEPTUAL** | "How do I use X?", "Best practice for Y?" | Doc Discovery \u2192 context7 + websearch |
|
|
50288
50304
|
| **TYPE B: IMPLEMENTATION** | "How does X implement Y?", "Show me source of Z" | gh clone + read + blame |
|
|
50289
|
-
| **TYPE C: CONTEXT** | "Why was this changed?", "
|
|
50290
|
-
| **TYPE D: COMPREHENSIVE** | Complex/ambiguous requests |
|
|
50305
|
+
| **TYPE C: CONTEXT** | "Why was this changed?", "History of X?" | gh issues/prs + git log/blame |
|
|
50306
|
+
| **TYPE D: COMPREHENSIVE** | Complex/ambiguous requests | Doc Discovery \u2192 ALL tools |
|
|
50307
|
+
|
|
50308
|
+
---
|
|
50309
|
+
|
|
50310
|
+
## PHASE 0.5: DOCUMENTATION DISCOVERY (FOR TYPE A & D)
|
|
50311
|
+
|
|
50312
|
+
**When to execute**: Before TYPE A or TYPE D investigations involving external libraries/frameworks.
|
|
50313
|
+
|
|
50314
|
+
### Step 1: Find Official Documentation
|
|
50315
|
+
\`\`\`
|
|
50316
|
+
websearch("library-name official documentation site")
|
|
50317
|
+
\`\`\`
|
|
50318
|
+
- Identify the **official documentation URL** (not blogs, not tutorials)
|
|
50319
|
+
- Note the base URL (e.g., \`https://docs.example.com\`)
|
|
50320
|
+
|
|
50321
|
+
### Step 2: Version Check (if version specified)
|
|
50322
|
+
If user mentions a specific version (e.g., "React 18", "Next.js 14", "v2.x"):
|
|
50323
|
+
\`\`\`
|
|
50324
|
+
websearch("library-name v{version} documentation")
|
|
50325
|
+
// OR check if docs have version selector:
|
|
50326
|
+
webfetch(official_docs_url + "/versions")
|
|
50327
|
+
// or
|
|
50328
|
+
webfetch(official_docs_url + "/v{version}")
|
|
50329
|
+
\`\`\`
|
|
50330
|
+
- Confirm you're looking at the **correct version's documentation**
|
|
50331
|
+
- Many docs have versioned URLs: \`/docs/v2/\`, \`/v14/\`, etc.
|
|
50332
|
+
|
|
50333
|
+
### Step 3: Sitemap Discovery (understand doc structure)
|
|
50334
|
+
\`\`\`
|
|
50335
|
+
webfetch(official_docs_base_url + "/sitemap.xml")
|
|
50336
|
+
// Fallback options:
|
|
50337
|
+
webfetch(official_docs_base_url + "/sitemap-0.xml")
|
|
50338
|
+
webfetch(official_docs_base_url + "/docs/sitemap.xml")
|
|
50339
|
+
\`\`\`
|
|
50340
|
+
- Parse sitemap to understand documentation structure
|
|
50341
|
+
- Identify relevant sections for the user's question
|
|
50342
|
+
- This prevents random searching\u2014you now know WHERE to look
|
|
50343
|
+
|
|
50344
|
+
### Step 4: Targeted Investigation
|
|
50345
|
+
With sitemap knowledge, fetch the SPECIFIC documentation pages relevant to the query:
|
|
50346
|
+
\`\`\`
|
|
50347
|
+
webfetch(specific_doc_page_from_sitemap)
|
|
50348
|
+
context7_query-docs(libraryId: id, query: "specific topic")
|
|
50349
|
+
\`\`\`
|
|
50350
|
+
|
|
50351
|
+
**Skip Doc Discovery when**:
|
|
50352
|
+
- TYPE B (implementation) - you're cloning repos anyway
|
|
50353
|
+
- TYPE C (context/history) - you're looking at issues/PRs
|
|
50354
|
+
- Library has no official docs (rare OSS projects)
|
|
50291
50355
|
|
|
50292
50356
|
---
|
|
50293
50357
|
|
|
@@ -50296,15 +50360,15 @@ Your job: Answer questions about open-source libraries. Provide **EVIDENCE** wit
|
|
|
50296
50360
|
### TYPE A: CONCEPTUAL QUESTION
|
|
50297
50361
|
**Trigger**: "How do I...", "What is...", "Best practice for...", rough/general questions
|
|
50298
50362
|
|
|
50299
|
-
**
|
|
50363
|
+
**Execute Documentation Discovery FIRST (Phase 0.5)**, then:
|
|
50300
50364
|
\`\`\`
|
|
50301
50365
|
Tool 1: context7_resolve-library-id("library-name")
|
|
50302
|
-
\u2192 then
|
|
50303
|
-
Tool 2:
|
|
50304
|
-
Tool 3 (
|
|
50366
|
+
\u2192 then context7_query-docs(libraryId: id, query: "specific-topic")
|
|
50367
|
+
Tool 2: webfetch(relevant_pages_from_sitemap) // Targeted, not random
|
|
50368
|
+
Tool 3: grep_app_searchGitHub(query: "usage pattern", language: ["TypeScript"])
|
|
50305
50369
|
\`\`\`
|
|
50306
50370
|
|
|
50307
|
-
**Output**: Summarize findings with links to official docs and real-world examples.
|
|
50371
|
+
**Output**: Summarize findings with links to official docs (versioned if applicable) and real-world examples.
|
|
50308
50372
|
|
|
50309
50373
|
---
|
|
50310
50374
|
|
|
@@ -50328,7 +50392,7 @@ Step 4: Construct permalink
|
|
|
50328
50392
|
https://github.com/owner/repo/blob/<sha>/path/to/file#L10-L20
|
|
50329
50393
|
\`\`\`
|
|
50330
50394
|
|
|
50331
|
-
**
|
|
50395
|
+
**Parallel acceleration (4+ calls)**:
|
|
50332
50396
|
\`\`\`
|
|
50333
50397
|
Tool 1: gh repo clone owner/repo \${TMPDIR:-/tmp}/repo -- --depth 1
|
|
50334
50398
|
Tool 2: grep_app_searchGitHub(query: "function_name", repo: "owner/repo")
|
|
@@ -50341,7 +50405,7 @@ Tool 4: context7_get-library-docs(id, topic: "relevant-api")
|
|
|
50341
50405
|
### TYPE C: CONTEXT & HISTORY
|
|
50342
50406
|
**Trigger**: "Why was this changed?", "What's the history?", "Related issues/PRs?"
|
|
50343
50407
|
|
|
50344
|
-
**
|
|
50408
|
+
**Execute in parallel (4+ calls)**:
|
|
50345
50409
|
\`\`\`
|
|
50346
50410
|
Tool 1: gh search issues "keyword" --repo owner/repo --state all --limit 10
|
|
50347
50411
|
Tool 2: gh search prs "keyword" --repo owner/repo --state merged --limit 10
|
|
@@ -50363,22 +50427,21 @@ gh api repos/owner/repo/pulls/<number>/files
|
|
|
50363
50427
|
### TYPE D: COMPREHENSIVE RESEARCH
|
|
50364
50428
|
**Trigger**: Complex questions, ambiguous requests, "deep dive into..."
|
|
50365
50429
|
|
|
50366
|
-
**
|
|
50430
|
+
**Execute Documentation Discovery FIRST (Phase 0.5)**, then execute in parallel (6+ calls):
|
|
50367
50431
|
\`\`\`
|
|
50368
|
-
// Documentation
|
|
50369
|
-
Tool 1: context7_resolve-library-id \u2192
|
|
50432
|
+
// Documentation (informed by sitemap discovery)
|
|
50433
|
+
Tool 1: context7_resolve-library-id \u2192 context7_query-docs
|
|
50434
|
+
Tool 2: webfetch(targeted_doc_pages_from_sitemap)
|
|
50370
50435
|
|
|
50371
50436
|
// Code Search
|
|
50372
|
-
Tool
|
|
50373
|
-
Tool
|
|
50437
|
+
Tool 3: grep_app_searchGitHub(query: "pattern1", language: [...])
|
|
50438
|
+
Tool 4: grep_app_searchGitHub(query: "pattern2", useRegexp: true)
|
|
50374
50439
|
|
|
50375
50440
|
// Source Analysis
|
|
50376
|
-
Tool
|
|
50441
|
+
Tool 5: gh repo clone owner/repo \${TMPDIR:-/tmp}/repo -- --depth 1
|
|
50377
50442
|
|
|
50378
50443
|
// Context
|
|
50379
|
-
Tool
|
|
50380
|
-
|
|
50381
|
-
// Optional: If web search is available, search for recent updates
|
|
50444
|
+
Tool 6: gh search issues "topic" --repo owner/repo
|
|
50382
50445
|
\`\`\`
|
|
50383
50446
|
|
|
50384
50447
|
---
|
|
@@ -50423,7 +50486,11 @@ https://github.com/tanstack/query/blob/abc123def/packages/react-query/src/useQue
|
|
|
50423
50486
|
|
|
50424
50487
|
| Purpose | Tool | Command/Usage |
|
|
50425
50488
|
|---------|------|---------------|
|
|
50426
|
-
| **Official Docs** | context7 | \`context7_resolve-library-id\` \u2192 \`
|
|
50489
|
+
| **Official Docs** | context7 | \`context7_resolve-library-id\` \u2192 \`context7_query-docs\` |
|
|
50490
|
+
| **Find Docs URL** | websearch_exa | \`websearch_exa_web_search_exa("library official documentation")\` |
|
|
50491
|
+
| **Sitemap Discovery** | webfetch | \`webfetch(docs_url + "/sitemap.xml")\` to understand doc structure |
|
|
50492
|
+
| **Read Doc Page** | webfetch | \`webfetch(specific_doc_page)\` for targeted documentation |
|
|
50493
|
+
| **Latest Info** | websearch_exa | \`websearch_exa_web_search_exa("query 2025")\` |
|
|
50427
50494
|
| **Fast Code Search** | grep_app | \`grep_app_searchGitHub(query, language, useRegexp)\` |
|
|
50428
50495
|
| **Deep Code Search** | gh CLI | \`gh search code "query" --repo owner/repo\` |
|
|
50429
50496
|
| **Clone Repo** | gh CLI | \`gh repo clone owner/repo \${TMPDIR:-/tmp}/name -- --depth 1\` |
|
|
@@ -50431,8 +50498,6 @@ https://github.com/tanstack/query/blob/abc123def/packages/react-query/src/useQue
|
|
|
50431
50498
|
| **View Issue/PR** | gh CLI | \`gh issue/pr view <num> --repo owner/repo --comments\` |
|
|
50432
50499
|
| **Release Info** | gh CLI | \`gh api repos/owner/repo/releases/latest\` |
|
|
50433
50500
|
| **Git History** | git | \`git log\`, \`git blame\`, \`git show\` |
|
|
50434
|
-
| **Read URL** | webfetch | \`webfetch(url)\` for blog posts, SO threads |
|
|
50435
|
-
| **Web Search** | (if available) | Use any available web search tool for latest info |
|
|
50436
50501
|
|
|
50437
50502
|
### Temp Directory
|
|
50438
50503
|
|
|
@@ -50449,16 +50514,18 @@ Use OS-appropriate temp directory:
|
|
|
50449
50514
|
|
|
50450
50515
|
---
|
|
50451
50516
|
|
|
50452
|
-
## PARALLEL EXECUTION
|
|
50453
|
-
|
|
50454
|
-
When searching is needed, scale effort to question complexity:
|
|
50517
|
+
## PARALLEL EXECUTION REQUIREMENTS
|
|
50455
50518
|
|
|
50456
|
-
| Request Type | Suggested Calls |
|
|
50519
|
+
| Request Type | Suggested Calls | Doc Discovery Required |
|
|
50457
50520
|
|--------------|----------------|
|
|
50458
|
-
| TYPE A (Conceptual) | 1-2 |
|
|
50459
|
-
| TYPE B (Implementation) | 2-3 |
|
|
50460
|
-
| TYPE C (Context) | 2-3 |
|
|
50461
|
-
| TYPE D (Comprehensive) | 3-5 |
|
|
50521
|
+
| TYPE A (Conceptual) | 1-2 | YES (Phase 0.5 first) |
|
|
50522
|
+
| TYPE B (Implementation) | 2-3 NO |
|
|
50523
|
+
| TYPE C (Context) | 2-3 NO |
|
|
50524
|
+
| TYPE D (Comprehensive) | 3-5 | YES (Phase 0.5 first) |
|
|
50525
|
+
| Request Type | Minimum Parallel Calls
|
|
50526
|
+
|
|
50527
|
+
**Doc Discovery is SEQUENTIAL** (websearch \u2192 version check \u2192 sitemap \u2192 investigate).
|
|
50528
|
+
**Main phase is PARALLEL** once you know where to look.
|
|
50462
50529
|
|
|
50463
50530
|
**Always vary queries** when using grep_app:
|
|
50464
50531
|
\`\`\`
|
|
@@ -50482,6 +50549,8 @@ grep_app_searchGitHub(query: "useQuery")
|
|
|
50482
50549
|
| grep_app no results | Broaden query, try concept instead of exact name |
|
|
50483
50550
|
| gh API rate limit | Use cloned repo in temp directory |
|
|
50484
50551
|
| Repo not found | Search for forks or mirrors |
|
|
50552
|
+
| Sitemap not found | Try \`/sitemap-0.xml\`, \`/sitemap_index.xml\`, or fetch docs index page and parse navigation |
|
|
50553
|
+
| Versioned docs not found | Fall back to latest version, note this in response |
|
|
50485
50554
|
| Uncertain | **STATE YOUR UNCERTAINTY**, propose hypothesis |
|
|
50486
50555
|
|
|
50487
50556
|
---
|
|
@@ -50618,7 +50687,7 @@ Flood with parallel calls. Cross-validate findings across multiple tools.`
|
|
|
50618
50687
|
var exploreAgent = createExploreAgent();
|
|
50619
50688
|
|
|
50620
50689
|
// src/agents/frontend-ui-ux-engineer.ts
|
|
50621
|
-
var DEFAULT_MODEL5 = "
|
|
50690
|
+
var DEFAULT_MODEL5 = "proxypal/gemini-3-pro-preview";
|
|
50622
50691
|
var FRONTEND_PROMPT_METADATA = {
|
|
50623
50692
|
category: "specialist",
|
|
50624
50693
|
cost: "CHEAP",
|
|
@@ -50718,7 +50787,7 @@ Interpret creatively and make unexpected choices that feel genuinely designed fo
|
|
|
50718
50787
|
var frontendUiUxEngineerAgent = createFrontendUiUxEngineerAgent();
|
|
50719
50788
|
|
|
50720
50789
|
// src/agents/document-writer.ts
|
|
50721
|
-
var DEFAULT_MODEL6 = "
|
|
50790
|
+
var DEFAULT_MODEL6 = "proxypal/gemini-3-flash-preview";
|
|
50722
50791
|
var DOCUMENT_WRITER_PROMPT_METADATA = {
|
|
50723
50792
|
category: "specialist",
|
|
50724
50793
|
cost: "CHEAP",
|
|
@@ -50933,7 +51002,7 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
50933
51002
|
var documentWriterAgent = createDocumentWriterAgent();
|
|
50934
51003
|
|
|
50935
51004
|
// src/agents/multimodal-looker.ts
|
|
50936
|
-
var DEFAULT_MODEL7 = "
|
|
51005
|
+
var DEFAULT_MODEL7 = "proxypal/gemini-3-flash-preview";
|
|
50937
51006
|
var MULTIMODAL_LOOKER_PROMPT_METADATA = {
|
|
50938
51007
|
category: "utility",
|
|
50939
51008
|
cost: "CHEAP",
|
|
@@ -51249,15 +51318,19 @@ var metisRestrictions = createAgentToolRestrictions([
|
|
|
51249
51318
|
"task",
|
|
51250
51319
|
"sisyphus_task"
|
|
51251
51320
|
]);
|
|
51252
|
-
var
|
|
51253
|
-
|
|
51254
|
-
|
|
51255
|
-
|
|
51256
|
-
|
|
51257
|
-
|
|
51258
|
-
|
|
51259
|
-
|
|
51260
|
-
|
|
51321
|
+
var DEFAULT_MODEL8 = "proxypal/gemini-claude-opus-4-5-thinking";
|
|
51322
|
+
function createMetisAgent(model = DEFAULT_MODEL8) {
|
|
51323
|
+
return {
|
|
51324
|
+
description: "Pre-planning consultant that analyzes requests to identify hidden intentions, ambiguities, and AI failure points.",
|
|
51325
|
+
mode: "subagent",
|
|
51326
|
+
model,
|
|
51327
|
+
temperature: 0.3,
|
|
51328
|
+
...metisRestrictions,
|
|
51329
|
+
prompt: METIS_SYSTEM_PROMPT,
|
|
51330
|
+
thinking: { type: "enabled", budgetTokens: 32000 }
|
|
51331
|
+
};
|
|
51332
|
+
}
|
|
51333
|
+
var metisAgent = createMetisAgent();
|
|
51261
51334
|
|
|
51262
51335
|
// src/agents/orchestrator-sisyphus.ts
|
|
51263
51336
|
init_constants();
|
|
@@ -52664,6 +52737,7 @@ function buildDynamicOrchestratorPrompt(ctx) {
|
|
|
52664
52737
|
const skillsSection = buildSkillsSection(skills);
|
|
52665
52738
|
return ORCHESTRATOR_SISYPHUS_SYSTEM_PROMPT.replace("{CATEGORY_SECTION}", categorySection).replace("{AGENT_SECTION}", agentSection).replace("{DECISION_MATRIX}", decisionMatrix).replace("{SKILLS_SECTION}", skillsSection);
|
|
52666
52739
|
}
|
|
52740
|
+
var DEFAULT_MODEL9 = "proxypal/gemini-claude-sonnet-4-5-thinking";
|
|
52667
52741
|
function createOrchestratorSisyphusAgent(ctx) {
|
|
52668
52742
|
const restrictions = createAgentToolRestrictions([
|
|
52669
52743
|
"task",
|
|
@@ -52672,7 +52746,7 @@ function createOrchestratorSisyphusAgent(ctx) {
|
|
|
52672
52746
|
return {
|
|
52673
52747
|
description: "Orchestrates work via sisyphus_task() to complete ALL tasks in a todo list until fully done",
|
|
52674
52748
|
mode: "primary",
|
|
52675
|
-
model:
|
|
52749
|
+
model: ctx?.model ?? DEFAULT_MODEL9,
|
|
52676
52750
|
temperature: 0.1,
|
|
52677
52751
|
prompt: buildDynamicOrchestratorPrompt(ctx),
|
|
52678
52752
|
thinking: { type: "enabled", budgetTokens: 32000 },
|
|
@@ -52682,7 +52756,7 @@ function createOrchestratorSisyphusAgent(ctx) {
|
|
|
52682
52756
|
var orchestratorSisyphusAgent = createOrchestratorSisyphusAgent();
|
|
52683
52757
|
|
|
52684
52758
|
// src/agents/momus.ts
|
|
52685
|
-
var
|
|
52759
|
+
var DEFAULT_MODEL10 = "proxypal/gpt-5.2-codex";
|
|
52686
52760
|
var MOMUS_SYSTEM_PROMPT = `You are a work plan review expert. You review the provided work plan (.sisyphus/plans/{name}.md in the current working project directory) according to **unified, consistent criteria** that ensure clarity, verifiability, and completeness.
|
|
52687
52761
|
|
|
52688
52762
|
**CRITICAL FIRST RULE**:
|
|
@@ -53012,7 +53086,7 @@ Use structured format, **in the same language as the work plan**.
|
|
|
53012
53086
|
|
|
53013
53087
|
**Strike the right balance**: Prevent critical failures while empowering developer autonomy.
|
|
53014
53088
|
`;
|
|
53015
|
-
function createMomusAgent(model =
|
|
53089
|
+
function createMomusAgent(model = DEFAULT_MODEL10) {
|
|
53016
53090
|
const restrictions = createAgentToolRestrictions([
|
|
53017
53091
|
"write",
|
|
53018
53092
|
"edit",
|
|
@@ -53043,8 +53117,8 @@ var agentSources = {
|
|
|
53043
53117
|
"frontend-ui-ux-engineer": createFrontendUiUxEngineerAgent,
|
|
53044
53118
|
"document-writer": createDocumentWriterAgent,
|
|
53045
53119
|
"multimodal-looker": createMultimodalLookerAgent,
|
|
53046
|
-
"Metis (Plan Consultant)":
|
|
53047
|
-
"Momus (Plan Reviewer)":
|
|
53120
|
+
"Metis (Plan Consultant)": createMetisAgent,
|
|
53121
|
+
"Momus (Plan Reviewer)": createMomusAgent,
|
|
53048
53122
|
"orchestrator-sisyphus": orchestratorSisyphusAgent
|
|
53049
53123
|
};
|
|
53050
53124
|
var agentMetadata = {
|
|
@@ -53157,7 +53231,11 @@ function createBuiltinAgents(disabledAgents = [], agentOverrides = {}, directory
|
|
|
53157
53231
|
}
|
|
53158
53232
|
if (!disabledAgents.includes("orchestrator-sisyphus")) {
|
|
53159
53233
|
const orchestratorOverride = agentOverrides["orchestrator-sisyphus"];
|
|
53160
|
-
|
|
53234
|
+
const orchestratorModel = orchestratorOverride?.model;
|
|
53235
|
+
let orchestratorConfig = createOrchestratorSisyphusAgent({
|
|
53236
|
+
model: orchestratorModel,
|
|
53237
|
+
availableAgents
|
|
53238
|
+
});
|
|
53161
53239
|
if (orchestratorOverride) {
|
|
53162
53240
|
orchestratorConfig = mergeAgentConfig(orchestratorConfig, orchestratorOverride);
|
|
53163
53241
|
}
|
|
@@ -56006,7 +56084,7 @@ function createConfigHandler(deps) {
|
|
|
56006
56084
|
const prometheusOverride = pluginConfig.agents?.["Prometheus (Planner)"];
|
|
56007
56085
|
const defaultModel = config3.model;
|
|
56008
56086
|
const prometheusBase = {
|
|
56009
|
-
model: defaultModel ?? "
|
|
56087
|
+
model: defaultModel ?? "proxypal/gemini-claude-opus-4-5-thinking",
|
|
56010
56088
|
mode: "primary",
|
|
56011
56089
|
prompt: PROMETHEUS_SYSTEM_PROMPT,
|
|
56012
56090
|
permission: PROMETHEUS_PERMISSION,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reinamaccredy/oh-my-opencode",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.14.1",
|
|
4
4
|
"description": "Fork of oh-my-opencode with Maestro workflow integration - Multi-Model Orchestration, Parallel Background Agents, Design Phases, and TDD Methodology",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
"build:schema": "bun run script/build-schema.ts",
|
|
29
29
|
"clean": "rm -rf dist",
|
|
30
30
|
"prepublishOnly": "bun run clean && bun run build",
|
|
31
|
+
"publish:beta": "./scripts/publish.sh prerelease",
|
|
32
|
+
"publish:patch": "./scripts/publish.sh patch",
|
|
33
|
+
"publish:minor": "./scripts/publish.sh minor",
|
|
34
|
+
"publish:major": "./scripts/publish.sh major",
|
|
31
35
|
"typecheck": "tsc --noEmit",
|
|
32
36
|
"test": "bun test"
|
|
33
37
|
},
|
|
@@ -38,7 +42,12 @@
|
|
|
38
42
|
"librarian",
|
|
39
43
|
"agents",
|
|
40
44
|
"ai",
|
|
41
|
-
"llm"
|
|
45
|
+
"llm",
|
|
46
|
+
"maestro",
|
|
47
|
+
"workflow",
|
|
48
|
+
"tdd",
|
|
49
|
+
"design-phases",
|
|
50
|
+
"multi-agent"
|
|
42
51
|
],
|
|
43
52
|
"author": "YeonGyu-Kim",
|
|
44
53
|
"license": "SUL-1.0",
|