@reinamaccredy/oh-my-opencode 3.0.1-beta.3 → 3.1.0-beta.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.md +28 -0
- package/dist/cli/index.js +74 -42
- package/dist/index.js +174 -51
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -820,6 +820,34 @@ When both `oh-my-opencode.jsonc` and `oh-my-opencode.json` files exist, `.jsonc`
|
|
|
820
820
|
}
|
|
821
821
|
```
|
|
822
822
|
|
|
823
|
+
### ProxyPal Mode (Fork Feature)
|
|
824
|
+
|
|
825
|
+
This fork adds ProxyPal model integration via the `opencode-openai-codex-auth` plugin. Enable ProxyPal mode to use GPT-5.2 and GPT-5.1 models:
|
|
826
|
+
|
|
827
|
+
```json
|
|
828
|
+
{
|
|
829
|
+
"proxypal_mode": true
|
|
830
|
+
}
|
|
831
|
+
```
|
|
832
|
+
|
|
833
|
+
**During Installation:**
|
|
834
|
+
```bash
|
|
835
|
+
bunx @reinamaccredy/oh-my-opencode install --proxypal=yes
|
|
836
|
+
```
|
|
837
|
+
|
|
838
|
+
**ProxyPal Models Available:**
|
|
839
|
+
- **Agent Models**: `proxypal/gpt-5.2-codex`, `proxypal/gpt-5.1-codex`, `proxypal/gpt-5.1-codex-mini`
|
|
840
|
+
- **Category Models**: Used for task delegation with different reasoning effort levels
|
|
841
|
+
|
|
842
|
+
**Requirements:**
|
|
843
|
+
1. Install the ProxyPal auth plugin: `opencode-openai-codex-auth@4.3.0`
|
|
844
|
+
2. Configure provider/models in `opencode.json` (see [Installation > OpenAI](#openai-chatgpt-pluspro))
|
|
845
|
+
3. Authenticate with ChatGPT Plus/Pro subscription
|
|
846
|
+
|
|
847
|
+
**See Also:**
|
|
848
|
+
- [Fork Architecture Documentation](#fork-architecture) (in `AGENTS.md`)
|
|
849
|
+
- [Upstream Sync Strategy](#upstream-sync-strategy) (in `AGENTS.md`)
|
|
850
|
+
|
|
823
851
|
### Google Auth
|
|
824
852
|
|
|
825
853
|
**Recommended**: Use the external [`opencode-antigravity-auth`](https://github.com/NoeFabris/opencode-antigravity-auth) plugin. It provides multi-account load balancing, more models (including Claude via Antigravity), and active maintenance. See [Installation > Google Gemini](#google-gemini-antigravity-oauth).
|
package/dist/cli/index.js
CHANGED
|
@@ -26,6 +26,7 @@ var __export = (target, all) => {
|
|
|
26
26
|
set: (newValue) => all[name] = () => newValue
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
+
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
29
30
|
var __require = import.meta.require;
|
|
30
31
|
|
|
31
32
|
// node_modules/commander/lib/error.js
|
|
@@ -2249,11 +2250,38 @@ var require_picocolors = __commonJS((exports, module) => {
|
|
|
2249
2250
|
module.exports.createColors = createColors;
|
|
2250
2251
|
});
|
|
2251
2252
|
|
|
2253
|
+
// src/fork/proxypal/models.ts
|
|
2254
|
+
var PROXYPAL_AGENT_MODELS, PROXYPAL_CATEGORY_MODELS;
|
|
2255
|
+
var init_models = __esm(() => {
|
|
2256
|
+
PROXYPAL_AGENT_MODELS = {
|
|
2257
|
+
oracle: "proxypal/gpt-5.2-codex",
|
|
2258
|
+
"Momus (Plan Reviewer)": "proxypal/gpt-5.2-codex",
|
|
2259
|
+
"Metis (Plan Consultant)": "proxypal/gemini-claude-opus-4-5-thinking",
|
|
2260
|
+
librarian: "proxypal/gemini-claude-opus-4-5-thinking",
|
|
2261
|
+
explore: "proxypal/gemini-3-flash-preview",
|
|
2262
|
+
"frontend-ui-ux-engineer": "proxypal/gemini-3-pro-preview",
|
|
2263
|
+
"document-writer": "proxypal/gemini-3-flash-preview",
|
|
2264
|
+
"multimodal-looker": "proxypal/gemini-3-flash-preview",
|
|
2265
|
+
Sisyphus: "proxypal/gemini-claude-opus-4-5-thinking",
|
|
2266
|
+
"orchestrator-sisyphus": "proxypal/gemini-claude-sonnet-4-5-thinking",
|
|
2267
|
+
"Sisyphus-Junior": "proxypal/gemini-claude-sonnet-4-5-thinking"
|
|
2268
|
+
};
|
|
2269
|
+
PROXYPAL_CATEGORY_MODELS = {
|
|
2270
|
+
"visual-engineering": "proxypal/gemini-3-pro-preview",
|
|
2271
|
+
ultrabrain: "proxypal/gpt-5.2-codex",
|
|
2272
|
+
artistry: "proxypal/gemini-3-pro-preview",
|
|
2273
|
+
quick: "proxypal/gemini-3-flash-preview",
|
|
2274
|
+
"most-capable": "proxypal/gemini-claude-opus-4-5-thinking",
|
|
2275
|
+
writing: "proxypal/gemini-3-flash-preview",
|
|
2276
|
+
general: "proxypal/gemini-claude-sonnet-4-5-thinking"
|
|
2277
|
+
};
|
|
2278
|
+
});
|
|
2279
|
+
|
|
2252
2280
|
// package.json
|
|
2253
2281
|
var require_package = __commonJS((exports, module) => {
|
|
2254
2282
|
module.exports = {
|
|
2255
2283
|
name: "@reinamaccredy/oh-my-opencode",
|
|
2256
|
-
version: "3.0
|
|
2284
|
+
version: "3.1.0-beta.1",
|
|
2257
2285
|
description: "Fork of oh-my-opencode with Maestro workflow integration - Multi-Model Orchestration, Parallel Background Agents, Design Phases, and TDD Methodology",
|
|
2258
2286
|
main: "dist/index.js",
|
|
2259
2287
|
types: "dist/index.d.ts",
|
|
@@ -2318,7 +2346,7 @@ var require_package = __commonJS((exports, module) => {
|
|
|
2318
2346
|
"@openauthjs/openauth": "^0.4.3",
|
|
2319
2347
|
"@opencode-ai/plugin": "^1.1.1",
|
|
2320
2348
|
"@opencode-ai/sdk": "^1.1.1",
|
|
2321
|
-
"@reinamaccredy/oh-my-opencode": "^3.0.
|
|
2349
|
+
"@reinamaccredy/oh-my-opencode": "^3.0.1-beta.3",
|
|
2322
2350
|
commander: "^14.0.2",
|
|
2323
2351
|
hono: "^4.10.4",
|
|
2324
2352
|
"js-yaml": "^4.1.1",
|
|
@@ -6480,6 +6508,8 @@ function detectConfigFile(basePath) {
|
|
|
6480
6508
|
}
|
|
6481
6509
|
return { format: "none", path: jsonPath };
|
|
6482
6510
|
}
|
|
6511
|
+
// src/shared/migration.ts
|
|
6512
|
+
init_models();
|
|
6483
6513
|
// src/shared/opencode-config-dir.ts
|
|
6484
6514
|
import { existsSync as existsSync2 } from "fs";
|
|
6485
6515
|
import { homedir } from "os";
|
|
@@ -6555,6 +6585,7 @@ function getOpenCodeConfigPaths(options) {
|
|
|
6555
6585
|
// src/shared/opencode-version.ts
|
|
6556
6586
|
var NOT_CACHED = Symbol("NOT_CACHED");
|
|
6557
6587
|
// src/cli/config-manager.ts
|
|
6588
|
+
init_models();
|
|
6558
6589
|
var OPENCODE_BINARIES = ["opencode", "opencode-desktop"];
|
|
6559
6590
|
var configContext = null;
|
|
6560
6591
|
function initConfigContext(binary2, version) {
|
|
@@ -6728,32 +6759,33 @@ function deepMerge(target, source) {
|
|
|
6728
6759
|
}
|
|
6729
6760
|
function generateOmoConfig(installConfig) {
|
|
6730
6761
|
const config = {
|
|
6731
|
-
$schema: "https://raw.githubusercontent.com/ReinaMacCredy/oh-my-opencode/main/assets/oh-my-opencode.schema.json"
|
|
6762
|
+
$schema: "https://raw.githubusercontent.com/ReinaMacCredy/oh-my-opencode/main/assets/oh-my-opencode.schema.json",
|
|
6763
|
+
proxypal_mode: installConfig.hasProxyPal
|
|
6732
6764
|
};
|
|
6733
6765
|
if (installConfig.hasProxyPal || installConfig.hasGemini) {}
|
|
6734
6766
|
const agents = {};
|
|
6735
6767
|
if (installConfig.hasProxyPal) {
|
|
6736
|
-
agents["Sisyphus"] = { model:
|
|
6737
|
-
agents["librarian"] = { model:
|
|
6738
|
-
agents["explore"] = { model:
|
|
6739
|
-
agents["frontend-ui-ux-engineer"] = { model: "
|
|
6740
|
-
agents["document-writer"] = { model: "
|
|
6741
|
-
agents["multimodal-looker"] = { model: "
|
|
6742
|
-
agents["orchestrator-sisyphus"] = { model: "
|
|
6743
|
-
agents["Prometheus (Planner)"] = { model:
|
|
6744
|
-
agents["Metis (Plan Consultant)"] = { model:
|
|
6745
|
-
agents["oracle"] = { model:
|
|
6746
|
-
agents["Momus (Plan Reviewer)"] = { model: "
|
|
6768
|
+
agents["Sisyphus"] = { model: PROXYPAL_AGENT_MODELS.Sisyphus };
|
|
6769
|
+
agents["librarian"] = { model: PROXYPAL_AGENT_MODELS.librarian };
|
|
6770
|
+
agents["explore"] = { model: PROXYPAL_AGENT_MODELS.explore };
|
|
6771
|
+
agents["frontend-ui-ux-engineer"] = { model: PROXYPAL_AGENT_MODELS["frontend-ui-ux-engineer"] };
|
|
6772
|
+
agents["document-writer"] = { model: PROXYPAL_AGENT_MODELS["document-writer"] };
|
|
6773
|
+
agents["multimodal-looker"] = { model: PROXYPAL_AGENT_MODELS["multimodal-looker"] };
|
|
6774
|
+
agents["orchestrator-sisyphus"] = { model: PROXYPAL_AGENT_MODELS["orchestrator-sisyphus"] };
|
|
6775
|
+
agents["Prometheus (Planner)"] = { model: PROXYPAL_AGENT_MODELS.Sisyphus };
|
|
6776
|
+
agents["Metis (Plan Consultant)"] = { model: PROXYPAL_AGENT_MODELS.Sisyphus };
|
|
6777
|
+
agents["oracle"] = { model: PROXYPAL_AGENT_MODELS.oracle };
|
|
6778
|
+
agents["Momus (Plan Reviewer)"] = { model: PROXYPAL_AGENT_MODELS["Momus (Plan Reviewer)"] };
|
|
6747
6779
|
} else if (installConfig.hasGemini) {
|
|
6748
|
-
agents["Sisyphus"] = { model:
|
|
6749
|
-
agents["librarian"] = { model:
|
|
6750
|
-
agents["explore"] = { model:
|
|
6751
|
-
agents["frontend-ui-ux-engineer"] = { model: "
|
|
6752
|
-
agents["document-writer"] = { model: "
|
|
6753
|
-
agents["multimodal-looker"] = { model: "
|
|
6754
|
-
agents["orchestrator-sisyphus"] = { model: "
|
|
6755
|
-
agents["Prometheus (Planner)"] = { model:
|
|
6756
|
-
agents["Metis (Plan Consultant)"] = { model:
|
|
6780
|
+
agents["Sisyphus"] = { model: PROXYPAL_AGENT_MODELS.Sisyphus };
|
|
6781
|
+
agents["librarian"] = { model: PROXYPAL_AGENT_MODELS.librarian };
|
|
6782
|
+
agents["explore"] = { model: PROXYPAL_AGENT_MODELS.explore };
|
|
6783
|
+
agents["frontend-ui-ux-engineer"] = { model: PROXYPAL_AGENT_MODELS["frontend-ui-ux-engineer"] };
|
|
6784
|
+
agents["document-writer"] = { model: PROXYPAL_AGENT_MODELS["document-writer"] };
|
|
6785
|
+
agents["multimodal-looker"] = { model: PROXYPAL_AGENT_MODELS["multimodal-looker"] };
|
|
6786
|
+
agents["orchestrator-sisyphus"] = { model: PROXYPAL_AGENT_MODELS["orchestrator-sisyphus"] };
|
|
6787
|
+
agents["Prometheus (Planner)"] = { model: PROXYPAL_AGENT_MODELS.Sisyphus };
|
|
6788
|
+
agents["Metis (Plan Consultant)"] = { model: PROXYPAL_AGENT_MODELS.Sisyphus };
|
|
6757
6789
|
} else if (installConfig.hasClaude) {
|
|
6758
6790
|
agents["Sisyphus"] = { model: "anthropic/claude-opus-4-5" };
|
|
6759
6791
|
agents["librarian"] = { model: "anthropic/claude-sonnet-4-5" };
|
|
@@ -6771,8 +6803,8 @@ function generateOmoConfig(installConfig) {
|
|
|
6771
6803
|
}
|
|
6772
6804
|
if (!installConfig.hasProxyPal) {
|
|
6773
6805
|
if (installConfig.hasChatGPT) {
|
|
6774
|
-
agents["oracle"] = { model:
|
|
6775
|
-
agents["Momus (Plan Reviewer)"] = { model: "
|
|
6806
|
+
agents["oracle"] = { model: PROXYPAL_AGENT_MODELS.oracle };
|
|
6807
|
+
agents["Momus (Plan Reviewer)"] = { model: PROXYPAL_AGENT_MODELS["Momus (Plan Reviewer)"] };
|
|
6776
6808
|
} else if (installConfig.hasClaude) {
|
|
6777
6809
|
agents["oracle"] = { model: "anthropic/claude-opus-4-5" };
|
|
6778
6810
|
agents["Momus (Plan Reviewer)"] = { model: "anthropic/claude-opus-4-5" };
|
|
@@ -6785,27 +6817,27 @@ function generateOmoConfig(installConfig) {
|
|
|
6785
6817
|
}
|
|
6786
6818
|
if (installConfig.hasProxyPal) {
|
|
6787
6819
|
config.categories = {
|
|
6788
|
-
"visual-engineering": { model: "
|
|
6789
|
-
ultrabrain: { model:
|
|
6790
|
-
artistry: { model:
|
|
6791
|
-
quick: { model:
|
|
6792
|
-
"most-capable": { model: "
|
|
6793
|
-
writing: { model:
|
|
6794
|
-
general: { model:
|
|
6820
|
+
"visual-engineering": { model: PROXYPAL_CATEGORY_MODELS["visual-engineering"] },
|
|
6821
|
+
ultrabrain: { model: PROXYPAL_CATEGORY_MODELS.ultrabrain },
|
|
6822
|
+
artistry: { model: PROXYPAL_CATEGORY_MODELS.artistry },
|
|
6823
|
+
quick: { model: PROXYPAL_CATEGORY_MODELS.quick },
|
|
6824
|
+
"most-capable": { model: PROXYPAL_CATEGORY_MODELS["most-capable"] },
|
|
6825
|
+
writing: { model: PROXYPAL_CATEGORY_MODELS.writing },
|
|
6826
|
+
general: { model: PROXYPAL_CATEGORY_MODELS.general }
|
|
6795
6827
|
};
|
|
6796
6828
|
} else if (installConfig.hasGemini) {
|
|
6797
6829
|
config.categories = {
|
|
6798
|
-
"visual-engineering": { model: "
|
|
6799
|
-
ultrabrain: { model:
|
|
6800
|
-
artistry: { model:
|
|
6801
|
-
quick: { model:
|
|
6802
|
-
"most-capable": { model: "
|
|
6803
|
-
writing: { model:
|
|
6804
|
-
general: { model:
|
|
6830
|
+
"visual-engineering": { model: PROXYPAL_CATEGORY_MODELS["visual-engineering"] },
|
|
6831
|
+
ultrabrain: { model: PROXYPAL_CATEGORY_MODELS.ultrabrain },
|
|
6832
|
+
artistry: { model: PROXYPAL_CATEGORY_MODELS.artistry },
|
|
6833
|
+
quick: { model: PROXYPAL_CATEGORY_MODELS.quick },
|
|
6834
|
+
"most-capable": { model: PROXYPAL_CATEGORY_MODELS["most-capable"] },
|
|
6835
|
+
writing: { model: PROXYPAL_CATEGORY_MODELS.writing },
|
|
6836
|
+
general: { model: PROXYPAL_CATEGORY_MODELS.general }
|
|
6805
6837
|
};
|
|
6806
6838
|
} else if (installConfig.hasChatGPT) {
|
|
6807
6839
|
config.categories = {
|
|
6808
|
-
ultrabrain: { model:
|
|
6840
|
+
ultrabrain: { model: PROXYPAL_CATEGORY_MODELS.ultrabrain }
|
|
6809
6841
|
};
|
|
6810
6842
|
}
|
|
6811
6843
|
return config;
|
|
@@ -7149,7 +7181,7 @@ function detectCurrentConfig() {
|
|
|
7149
7181
|
return result;
|
|
7150
7182
|
}
|
|
7151
7183
|
const agents = omoConfig.agents ?? {};
|
|
7152
|
-
if (agents["Sisyphus"]?.model?.
|
|
7184
|
+
if (agents["Sisyphus"]?.model?.includes("proxypal/") || agents["Sisyphus"]?.model?.includes("openai/")) {
|
|
7153
7185
|
result.hasProxyPal = true;
|
|
7154
7186
|
result.hasClaude = false;
|
|
7155
7187
|
result.isMax20 = false;
|
|
@@ -22329,7 +22361,7 @@ function date4(params) {
|
|
|
22329
22361
|
config(en_default());
|
|
22330
22362
|
// src/config/schema.ts
|
|
22331
22363
|
var McpNameSchema = exports_external.enum(["context7", "grep_app", "websearch"]);
|
|
22332
|
-
var AnyMcpNameSchema = exports_external.union([McpNameSchema, exports_external.string()]);
|
|
22364
|
+
var AnyMcpNameSchema = exports_external.union([McpNameSchema, exports_external.string().min(1)]);
|
|
22333
22365
|
var PermissionValue = exports_external.enum(["ask", "allow", "deny"]);
|
|
22334
22366
|
var BashPermission = exports_external.union([
|
|
22335
22367
|
PermissionValue,
|
package/dist/index.js
CHANGED
|
@@ -43,6 +43,47 @@ var __export = (target, all) => {
|
|
|
43
43
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
44
44
|
var __require = import.meta.require;
|
|
45
45
|
|
|
46
|
+
// src/fork/proxypal/models.ts
|
|
47
|
+
function isProxyPalGptModel(model) {
|
|
48
|
+
return model.startsWith("proxypal/") && model.includes("gpt-");
|
|
49
|
+
}
|
|
50
|
+
function getGptReasoningEffort(model) {
|
|
51
|
+
return isProxyPalGptModel(model) ? "xhigh" : "medium";
|
|
52
|
+
}
|
|
53
|
+
var PROXYPAL_AGENT_MODELS, PROXYPAL_CATEGORY_MODELS, GOOGLE_TO_PROXYPAL_MODEL_MAP;
|
|
54
|
+
var init_models = __esm(() => {
|
|
55
|
+
PROXYPAL_AGENT_MODELS = {
|
|
56
|
+
oracle: "proxypal/gpt-5.2-codex",
|
|
57
|
+
"Momus (Plan Reviewer)": "proxypal/gpt-5.2-codex",
|
|
58
|
+
"Metis (Plan Consultant)": "proxypal/gemini-claude-opus-4-5-thinking",
|
|
59
|
+
librarian: "proxypal/gemini-claude-opus-4-5-thinking",
|
|
60
|
+
explore: "proxypal/gemini-3-flash-preview",
|
|
61
|
+
"frontend-ui-ux-engineer": "proxypal/gemini-3-pro-preview",
|
|
62
|
+
"document-writer": "proxypal/gemini-3-flash-preview",
|
|
63
|
+
"multimodal-looker": "proxypal/gemini-3-flash-preview",
|
|
64
|
+
Sisyphus: "proxypal/gemini-claude-opus-4-5-thinking",
|
|
65
|
+
"orchestrator-sisyphus": "proxypal/gemini-claude-sonnet-4-5-thinking",
|
|
66
|
+
"Sisyphus-Junior": "proxypal/gemini-claude-sonnet-4-5-thinking"
|
|
67
|
+
};
|
|
68
|
+
PROXYPAL_CATEGORY_MODELS = {
|
|
69
|
+
"visual-engineering": "proxypal/gemini-3-pro-preview",
|
|
70
|
+
ultrabrain: "proxypal/gpt-5.2-codex",
|
|
71
|
+
artistry: "proxypal/gemini-3-pro-preview",
|
|
72
|
+
quick: "proxypal/gemini-3-flash-preview",
|
|
73
|
+
"most-capable": "proxypal/gemini-claude-opus-4-5-thinking",
|
|
74
|
+
writing: "proxypal/gemini-3-flash-preview",
|
|
75
|
+
general: "proxypal/gemini-claude-sonnet-4-5-thinking"
|
|
76
|
+
};
|
|
77
|
+
GOOGLE_TO_PROXYPAL_MODEL_MAP = {
|
|
78
|
+
"google/gemini-3-pro-preview": "proxypal/gemini-3-pro-preview",
|
|
79
|
+
"google/gemini-3-flash-preview": "proxypal/gemini-3-flash-preview",
|
|
80
|
+
"google/gemini-3-flash": "proxypal/gemini-3-flash-preview",
|
|
81
|
+
"google/gemini-3-pro": "proxypal/gemini-3-pro-preview",
|
|
82
|
+
"google/gemini-3-pro-high": "proxypal/gemini-3-pro-preview",
|
|
83
|
+
"google/gemini-3-pro-low": "proxypal/gemini-3-pro-preview"
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
|
|
46
87
|
// src/tools/sisyphus-task/constants.ts
|
|
47
88
|
var exports_constants = {};
|
|
48
89
|
__export(exports_constants, {
|
|
@@ -229,33 +270,34 @@ EXPECTED OUTPUT:
|
|
|
229
270
|
The more explicit your prompt, the better the results.
|
|
230
271
|
</Caller_Warning>`, DEFAULT_CATEGORIES, CATEGORY_PROMPT_APPENDS, CATEGORY_DESCRIPTIONS, BUILTIN_CATEGORIES, SISYPHUS_TASK_DESCRIPTION;
|
|
231
272
|
var init_constants = __esm(() => {
|
|
273
|
+
init_models();
|
|
232
274
|
DEFAULT_CATEGORIES = {
|
|
233
275
|
"visual-engineering": {
|
|
234
|
-
model: "
|
|
276
|
+
model: PROXYPAL_CATEGORY_MODELS["visual-engineering"],
|
|
235
277
|
temperature: 0.7
|
|
236
278
|
},
|
|
237
279
|
ultrabrain: {
|
|
238
|
-
model:
|
|
280
|
+
model: PROXYPAL_CATEGORY_MODELS.ultrabrain,
|
|
239
281
|
temperature: 0.1
|
|
240
282
|
},
|
|
241
283
|
artistry: {
|
|
242
|
-
model:
|
|
284
|
+
model: PROXYPAL_CATEGORY_MODELS.artistry,
|
|
243
285
|
temperature: 0.9
|
|
244
286
|
},
|
|
245
287
|
quick: {
|
|
246
|
-
model:
|
|
288
|
+
model: PROXYPAL_CATEGORY_MODELS.quick,
|
|
247
289
|
temperature: 0.3
|
|
248
290
|
},
|
|
249
291
|
"most-capable": {
|
|
250
|
-
model: "
|
|
292
|
+
model: PROXYPAL_CATEGORY_MODELS["most-capable"],
|
|
251
293
|
temperature: 0.1
|
|
252
294
|
},
|
|
253
295
|
writing: {
|
|
254
|
-
model:
|
|
296
|
+
model: PROXYPAL_CATEGORY_MODELS.writing,
|
|
255
297
|
temperature: 0.5
|
|
256
298
|
},
|
|
257
299
|
general: {
|
|
258
|
-
model:
|
|
300
|
+
model: PROXYPAL_CATEGORY_MODELS.general,
|
|
259
301
|
temperature: 0.3
|
|
260
302
|
}
|
|
261
303
|
};
|
|
@@ -9897,6 +9939,7 @@ function detectConfigFile(basePath) {
|
|
|
9897
9939
|
}
|
|
9898
9940
|
// src/shared/migration.ts
|
|
9899
9941
|
import * as fs6 from "fs";
|
|
9942
|
+
init_models();
|
|
9900
9943
|
var AGENT_NAME_MAP = {
|
|
9901
9944
|
omo: "Sisyphus",
|
|
9902
9945
|
OmO: "Sisyphus",
|
|
@@ -9919,17 +9962,10 @@ var AGENT_NAME_MAP = {
|
|
|
9919
9962
|
var HOOK_NAME_MAP = {
|
|
9920
9963
|
"anthropic-auto-compact": "anthropic-context-window-limit-recovery"
|
|
9921
9964
|
};
|
|
9922
|
-
var
|
|
9923
|
-
"google/gemini-3-pro-preview": "proxypal/gemini-3-pro-preview",
|
|
9924
|
-
"google/gemini-3-flash-preview": "proxypal/gemini-3-flash-preview",
|
|
9925
|
-
"google/gemini-3-flash": "proxypal/gemini-3-flash-preview",
|
|
9926
|
-
"google/gemini-3-pro": "proxypal/gemini-3-pro-preview",
|
|
9927
|
-
"google/gemini-3-pro-high": "proxypal/gemini-3-pro-preview",
|
|
9928
|
-
"google/gemini-3-pro-low": "proxypal/gemini-3-pro-preview"
|
|
9929
|
-
};
|
|
9965
|
+
var GOOGLE_TO_PROXYPAL_MODEL_MAP2 = GOOGLE_TO_PROXYPAL_MODEL_MAP;
|
|
9930
9966
|
var MODEL_TO_CATEGORY_MAP = {};
|
|
9931
9967
|
function migrateGoogleToProxypalModel(model) {
|
|
9932
|
-
const proxypalModel =
|
|
9968
|
+
const proxypalModel = GOOGLE_TO_PROXYPAL_MODEL_MAP2[model];
|
|
9933
9969
|
if (proxypalModel) {
|
|
9934
9970
|
return { migrated: proxypalModel, changed: true };
|
|
9935
9971
|
}
|
|
@@ -12531,6 +12567,7 @@ function invalidatePackage(packageName = PACKAGE_NAME) {
|
|
|
12531
12567
|
}
|
|
12532
12568
|
|
|
12533
12569
|
// src/cli/config-manager.ts
|
|
12570
|
+
init_models();
|
|
12534
12571
|
var configContext = null;
|
|
12535
12572
|
function getConfigContext() {
|
|
12536
12573
|
if (!configContext) {
|
|
@@ -15328,14 +15365,14 @@ to resume: sisyphus_task(resume="${sessionId}", prompt="...")`;
|
|
|
15328
15365
|
"tool.execute.after": toolExecuteAfter
|
|
15329
15366
|
};
|
|
15330
15367
|
}
|
|
15331
|
-
// src/features/boulder-state/constants.ts
|
|
15368
|
+
// src/plugins/maestro/features/boulder-state/constants.ts
|
|
15332
15369
|
var BOULDER_DIR = ".sisyphus";
|
|
15333
15370
|
var BOULDER_FILE = "boulder.json";
|
|
15334
15371
|
var BOULDER_STATE_PATH = `${BOULDER_DIR}/${BOULDER_FILE}`;
|
|
15335
15372
|
var NOTEPAD_DIR = "notepads";
|
|
15336
15373
|
var NOTEPAD_BASE_PATH = `${BOULDER_DIR}/${NOTEPAD_DIR}`;
|
|
15337
15374
|
var PROMETHEUS_PLANS_DIR = ".sisyphus/plans";
|
|
15338
|
-
// src/features/boulder-state/storage.ts
|
|
15375
|
+
// src/plugins/maestro/features/boulder-state/storage.ts
|
|
15339
15376
|
import { existsSync as existsSync38, readFileSync as readFileSync25, writeFileSync as writeFileSync15, mkdirSync as mkdirSync11, readdirSync as readdirSync13 } from "fs";
|
|
15340
15377
|
import { dirname as dirname9, join as join46, basename as basename3 } from "path";
|
|
15341
15378
|
function getBoulderFilePath(directory) {
|
|
@@ -15424,7 +15461,7 @@ function createBoulderState(planPath, sessionId) {
|
|
|
15424
15461
|
plan_name: getPlanName(planPath)
|
|
15425
15462
|
};
|
|
15426
15463
|
}
|
|
15427
|
-
// src/features/boulder-state/unified-state.ts
|
|
15464
|
+
// src/plugins/maestro/features/boulder-state/unified-state.ts
|
|
15428
15465
|
import { existsSync as existsSync39, readFileSync as readFileSync26, writeFileSync as writeFileSync16, mkdirSync as mkdirSync12, readdirSync as readdirSync14 } from "fs";
|
|
15429
15466
|
import { join as join47, dirname as dirname10, basename as basename4 } from "path";
|
|
15430
15467
|
var UNIFIED_STATE_FILE = "workflow-state.json";
|
|
@@ -16233,11 +16270,11 @@ ${buildStandaloneVerificationReminder(subagentSessionId)}
|
|
|
16233
16270
|
}
|
|
16234
16271
|
};
|
|
16235
16272
|
}
|
|
16236
|
-
// src/hooks/
|
|
16273
|
+
// src/plugins/maestro/hooks/sisyphus-bridge/index.ts
|
|
16237
16274
|
import { existsSync as existsSync41, readdirSync as readdirSync16, statSync as statSync4, watch } from "fs";
|
|
16238
16275
|
import { join as join49, basename as basename5 } from "path";
|
|
16239
16276
|
|
|
16240
|
-
// src/hooks/
|
|
16277
|
+
// src/plugins/maestro/hooks/sisyphus-bridge/constants.ts
|
|
16241
16278
|
var HOOK_NAME7 = "maestro-sisyphus-bridge";
|
|
16242
16279
|
var PLAN_READY_PROMPT = `
|
|
16243
16280
|
## Plan Ready for Execution
|
|
@@ -16285,7 +16322,7 @@ You are operating within a Maestro workflow at **Phase $PHASE/10**:
|
|
|
16285
16322
|
Respect the current phase constraints. Do not skip ahead.
|
|
16286
16323
|
`;
|
|
16287
16324
|
|
|
16288
|
-
// src/hooks/
|
|
16325
|
+
// src/plugins/maestro/hooks/sisyphus-bridge/index.ts
|
|
16289
16326
|
var emittedPlans = new Set;
|
|
16290
16327
|
var currentDesignPhase = null;
|
|
16291
16328
|
var workflowProgress = null;
|
|
@@ -16425,7 +16462,7 @@ ${workflowProgress.currentTask ? `**Current Task**: ${workflowProgress.currentTa
|
|
|
16425
16462
|
}
|
|
16426
16463
|
};
|
|
16427
16464
|
}
|
|
16428
|
-
// src/hooks/tdd-enforcement/constants.ts
|
|
16465
|
+
// src/plugins/maestro/hooks/tdd-enforcement/constants.ts
|
|
16429
16466
|
var HOOK_NAME8 = "tdd-enforcement";
|
|
16430
16467
|
var TDD_PHASES = {
|
|
16431
16468
|
RED: "red",
|
|
@@ -16512,7 +16549,7 @@ var TEST_FILE_PATTERNS = [
|
|
|
16512
16549
|
"test_"
|
|
16513
16550
|
];
|
|
16514
16551
|
|
|
16515
|
-
// src/hooks/tdd-enforcement/index.ts
|
|
16552
|
+
// src/plugins/maestro/hooks/tdd-enforcement/index.ts
|
|
16516
16553
|
var sessionTddPhase = new Map;
|
|
16517
16554
|
var sessionHasFailingTest = new Map;
|
|
16518
16555
|
var sessionTestsPassing = new Map;
|
|
@@ -33787,6 +33824,7 @@ function initTaskToastManager(client2, concurrencyManager) {
|
|
|
33787
33824
|
return instance;
|
|
33788
33825
|
}
|
|
33789
33826
|
// src/tools/sisyphus-task/tools.ts
|
|
33827
|
+
init_models();
|
|
33790
33828
|
var SISYPHUS_JUNIOR_AGENT = "Sisyphus-Junior";
|
|
33791
33829
|
var CATEGORY_EXAMPLES = Object.keys(DEFAULT_CATEGORIES).map((k) => `'${k}'`).join(", ");
|
|
33792
33830
|
function parseModelString(model) {
|
|
@@ -33830,7 +33868,7 @@ function resolveCategoryConfig(categoryName, userCategories) {
|
|
|
33830
33868
|
const config3 = {
|
|
33831
33869
|
...defaultConfig,
|
|
33832
33870
|
...userConfig,
|
|
33833
|
-
model: userConfig?.model ?? defaultConfig?.model ?? "
|
|
33871
|
+
model: userConfig?.model ?? defaultConfig?.model ?? PROXYPAL_AGENT_MODELS["Sisyphus-Junior"]
|
|
33834
33872
|
};
|
|
33835
33873
|
let promptAppend = defaultPromptAppend;
|
|
33836
33874
|
if (userConfig?.prompt_append) {
|
|
@@ -34969,7 +35007,7 @@ import * as path8 from "path";
|
|
|
34969
35007
|
|
|
34970
35008
|
// src/config/schema.ts
|
|
34971
35009
|
var McpNameSchema = exports_external.enum(["context7", "grep_app", "websearch"]);
|
|
34972
|
-
var AnyMcpNameSchema = exports_external.union([McpNameSchema, exports_external.string()]);
|
|
35010
|
+
var AnyMcpNameSchema = exports_external.union([McpNameSchema, exports_external.string().min(1)]);
|
|
34973
35011
|
var PermissionValue = exports_external.enum(["ask", "allow", "deny"]);
|
|
34974
35012
|
var BashPermission = exports_external.union([
|
|
34975
35013
|
PermissionValue,
|
|
@@ -35343,15 +35381,11 @@ function getModelLimit(state2, providerID, modelID) {
|
|
|
35343
35381
|
}
|
|
35344
35382
|
|
|
35345
35383
|
// src/agents/types.ts
|
|
35384
|
+
init_models();
|
|
35346
35385
|
function isGptModel(model) {
|
|
35347
35386
|
return model.startsWith("openai/") || model.startsWith("github-copilot/gpt-") || model.includes("/gpt-");
|
|
35348
35387
|
}
|
|
35349
|
-
|
|
35350
|
-
return model.startsWith("proxypal/") && model.includes("gpt-");
|
|
35351
|
-
}
|
|
35352
|
-
function getGptReasoningEffort(model) {
|
|
35353
|
-
return isProxyPalGptModel(model) ? "xhigh" : "medium";
|
|
35354
|
-
}
|
|
35388
|
+
var getGptReasoningEffort2 = getGptReasoningEffort;
|
|
35355
35389
|
|
|
35356
35390
|
// src/agents/sisyphus-prompt-builder.ts
|
|
35357
35391
|
function categorizeTools(toolNames) {
|
|
@@ -35601,7 +35635,8 @@ ${patterns.join(`
|
|
|
35601
35635
|
}
|
|
35602
35636
|
|
|
35603
35637
|
// src/agents/sisyphus.ts
|
|
35604
|
-
|
|
35638
|
+
init_models();
|
|
35639
|
+
var DEFAULT_MODEL = PROXYPAL_AGENT_MODELS.Sisyphus;
|
|
35605
35640
|
var SISYPHUS_ROLE_SECTION = `<Role>
|
|
35606
35641
|
You are "Sisyphus" - Powerful AI Agent with orchestration capabilities from OhMyOpenCode.
|
|
35607
35642
|
|
|
@@ -36222,14 +36257,15 @@ function createSisyphusAgent(model = DEFAULT_MODEL, availableAgents, availableTo
|
|
|
36222
36257
|
tools: { call_omo_agent: false }
|
|
36223
36258
|
};
|
|
36224
36259
|
if (isGptModel(model)) {
|
|
36225
|
-
return { ...base, reasoningEffort:
|
|
36260
|
+
return { ...base, reasoningEffort: getGptReasoningEffort2(model) };
|
|
36226
36261
|
}
|
|
36227
36262
|
return { ...base, thinking: { type: "enabled", budgetTokens: 32000 } };
|
|
36228
36263
|
}
|
|
36229
36264
|
var sisyphusAgent = createSisyphusAgent();
|
|
36230
36265
|
|
|
36231
36266
|
// src/agents/oracle.ts
|
|
36232
|
-
|
|
36267
|
+
init_models();
|
|
36268
|
+
var DEFAULT_MODEL2 = PROXYPAL_AGENT_MODELS.oracle;
|
|
36233
36269
|
var ORACLE_PROMPT_METADATA = {
|
|
36234
36270
|
category: "advisor",
|
|
36235
36271
|
cost: "EXPENSIVE",
|
|
@@ -36335,14 +36371,15 @@ function createOracleAgent(model = DEFAULT_MODEL2) {
|
|
|
36335
36371
|
prompt: ORACLE_SYSTEM_PROMPT
|
|
36336
36372
|
};
|
|
36337
36373
|
if (isGptModel(model)) {
|
|
36338
|
-
return { ...base, reasoningEffort:
|
|
36374
|
+
return { ...base, reasoningEffort: getGptReasoningEffort2(model), textVerbosity: "high" };
|
|
36339
36375
|
}
|
|
36340
36376
|
return { ...base, thinking: { type: "enabled", budgetTokens: 32000 } };
|
|
36341
36377
|
}
|
|
36342
36378
|
var oracleAgent = createOracleAgent();
|
|
36343
36379
|
|
|
36344
36380
|
// src/agents/librarian.ts
|
|
36345
|
-
|
|
36381
|
+
init_models();
|
|
36382
|
+
var DEFAULT_MODEL3 = PROXYPAL_AGENT_MODELS.librarian;
|
|
36346
36383
|
var LIBRARIAN_PROMPT_METADATA = {
|
|
36347
36384
|
category: "exploration",
|
|
36348
36385
|
cost: "CHEAP",
|
|
@@ -36775,7 +36812,8 @@ Flood with parallel calls. Cross-validate findings across multiple tools.`
|
|
|
36775
36812
|
var exploreAgent = createExploreAgent();
|
|
36776
36813
|
|
|
36777
36814
|
// src/agents/frontend-ui-ux-engineer.ts
|
|
36778
|
-
|
|
36815
|
+
init_models();
|
|
36816
|
+
var DEFAULT_MODEL5 = PROXYPAL_AGENT_MODELS["frontend-ui-ux-engineer"];
|
|
36779
36817
|
var FRONTEND_PROMPT_METADATA = {
|
|
36780
36818
|
category: "specialist",
|
|
36781
36819
|
cost: "CHEAP",
|
|
@@ -36875,7 +36913,8 @@ Interpret creatively and make unexpected choices that feel genuinely designed fo
|
|
|
36875
36913
|
var frontendUiUxEngineerAgent = createFrontendUiUxEngineerAgent();
|
|
36876
36914
|
|
|
36877
36915
|
// src/agents/document-writer.ts
|
|
36878
|
-
|
|
36916
|
+
init_models();
|
|
36917
|
+
var DEFAULT_MODEL6 = PROXYPAL_AGENT_MODELS["document-writer"];
|
|
36879
36918
|
var DOCUMENT_WRITER_PROMPT_METADATA = {
|
|
36880
36919
|
category: "specialist",
|
|
36881
36920
|
cost: "CHEAP",
|
|
@@ -37090,7 +37129,8 @@ You are a technical writer who creates documentation that developers actually wa
|
|
|
37090
37129
|
var documentWriterAgent = createDocumentWriterAgent();
|
|
37091
37130
|
|
|
37092
37131
|
// src/agents/multimodal-looker.ts
|
|
37093
|
-
|
|
37132
|
+
init_models();
|
|
37133
|
+
var DEFAULT_MODEL7 = PROXYPAL_AGENT_MODELS["multimodal-looker"];
|
|
37094
37134
|
var MULTIMODAL_LOOKER_PROMPT_METADATA = {
|
|
37095
37135
|
category: "utility",
|
|
37096
37136
|
cost: "CHEAP",
|
|
@@ -37146,6 +37186,7 @@ Your output goes straight to the main agent for continued work.`
|
|
|
37146
37186
|
var multimodalLookerAgent = createMultimodalLookerAgent();
|
|
37147
37187
|
|
|
37148
37188
|
// src/agents/metis.ts
|
|
37189
|
+
init_models();
|
|
37149
37190
|
var METIS_SYSTEM_PROMPT = `# Metis - Pre-Planning Consultant
|
|
37150
37191
|
|
|
37151
37192
|
## CONSTRAINTS
|
|
@@ -37406,7 +37447,7 @@ var metisRestrictions = createAgentToolRestrictions([
|
|
|
37406
37447
|
"task",
|
|
37407
37448
|
"sisyphus_task"
|
|
37408
37449
|
]);
|
|
37409
|
-
var DEFAULT_MODEL8 = "
|
|
37450
|
+
var DEFAULT_MODEL8 = PROXYPAL_AGENT_MODELS["Metis (Plan Consultant)"];
|
|
37410
37451
|
function createMetisAgent(model = DEFAULT_MODEL8) {
|
|
37411
37452
|
return {
|
|
37412
37453
|
description: "Pre-planning consultant that analyzes requests to identify hidden intentions, ambiguities, and AI failure points.",
|
|
@@ -37422,6 +37463,7 @@ var metisAgent = createMetisAgent();
|
|
|
37422
37463
|
|
|
37423
37464
|
// src/agents/orchestrator-sisyphus.ts
|
|
37424
37465
|
init_constants();
|
|
37466
|
+
init_models();
|
|
37425
37467
|
function buildAgentSelectionSection(agents) {
|
|
37426
37468
|
if (agents.length === 0) {
|
|
37427
37469
|
return `##### Option B: Use AGENT directly (for specialized experts)
|
|
@@ -38861,7 +38903,7 @@ function buildDynamicOrchestratorPrompt(ctx) {
|
|
|
38861
38903
|
const skillsSection = buildSkillsSection(skills);
|
|
38862
38904
|
return ORCHESTRATOR_SISYPHUS_SYSTEM_PROMPT.replace("{CATEGORY_SECTION}", categorySection).replace("{AGENT_SECTION}", agentSection).replace("{DECISION_MATRIX}", decisionMatrix).replace("{SKILLS_SECTION}", skillsSection);
|
|
38863
38905
|
}
|
|
38864
|
-
var DEFAULT_MODEL9 = "
|
|
38906
|
+
var DEFAULT_MODEL9 = PROXYPAL_AGENT_MODELS["orchestrator-sisyphus"];
|
|
38865
38907
|
function createOrchestratorSisyphusAgent(ctx) {
|
|
38866
38908
|
const restrictions = createAgentToolRestrictions([
|
|
38867
38909
|
"task",
|
|
@@ -38880,7 +38922,8 @@ function createOrchestratorSisyphusAgent(ctx) {
|
|
|
38880
38922
|
var orchestratorSisyphusAgent = createOrchestratorSisyphusAgent();
|
|
38881
38923
|
|
|
38882
38924
|
// src/agents/momus.ts
|
|
38883
|
-
|
|
38925
|
+
init_models();
|
|
38926
|
+
var DEFAULT_MODEL10 = PROXYPAL_AGENT_MODELS["Momus (Plan Reviewer)"];
|
|
38884
38927
|
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.
|
|
38885
38928
|
|
|
38886
38929
|
**CRITICAL FIRST RULE**:
|
|
@@ -39226,7 +39269,7 @@ function createMomusAgent(model = DEFAULT_MODEL10) {
|
|
|
39226
39269
|
prompt: MOMUS_SYSTEM_PROMPT
|
|
39227
39270
|
};
|
|
39228
39271
|
if (isGptModel(model)) {
|
|
39229
|
-
return { ...base, reasoningEffort:
|
|
39272
|
+
return { ...base, reasoningEffort: getGptReasoningEffort2(model), textVerbosity: "high" };
|
|
39230
39273
|
}
|
|
39231
39274
|
return { ...base, thinking: { type: "enabled", budgetTokens: 32000 } };
|
|
39232
39275
|
}
|
|
@@ -39472,7 +39515,7 @@ function createSisyphusJuniorAgent(categoryConfig, promptAppend) {
|
|
|
39472
39515
|
};
|
|
39473
39516
|
}
|
|
39474
39517
|
if (isGptModel(model)) {
|
|
39475
|
-
return { ...base, reasoningEffort:
|
|
39518
|
+
return { ...base, reasoningEffort: getGptReasoningEffort2(model) };
|
|
39476
39519
|
}
|
|
39477
39520
|
return {
|
|
39478
39521
|
...base,
|
|
@@ -41166,6 +41209,9 @@ async function loadAllPluginComponents(options) {
|
|
|
41166
41209
|
errors: errors3
|
|
41167
41210
|
};
|
|
41168
41211
|
}
|
|
41212
|
+
// src/plugin-handlers/config-handler.ts
|
|
41213
|
+
init_models();
|
|
41214
|
+
|
|
41169
41215
|
// src/agents/prometheus-prompt.ts
|
|
41170
41216
|
var PROMETHEUS_SYSTEM_PROMPT = `<system-reminder>
|
|
41171
41217
|
# Prometheus - Strategic Planning Consultant
|
|
@@ -42185,7 +42231,7 @@ function createConfigHandler(deps) {
|
|
|
42185
42231
|
Sisyphus: builtinAgents.Sisyphus
|
|
42186
42232
|
};
|
|
42187
42233
|
agentConfig["Sisyphus-Junior"] = createSisyphusJuniorAgent({
|
|
42188
|
-
model: "
|
|
42234
|
+
model: PROXYPAL_AGENT_MODELS["Sisyphus-Junior"],
|
|
42189
42235
|
temperature: 0.1
|
|
42190
42236
|
});
|
|
42191
42237
|
if (builderEnabled) {
|
|
@@ -42204,7 +42250,7 @@ function createConfigHandler(deps) {
|
|
|
42204
42250
|
const prometheusOverride = pluginConfig.agents?.["Prometheus (Planner)"];
|
|
42205
42251
|
const defaultModel = config3.model;
|
|
42206
42252
|
const prometheusBase = {
|
|
42207
|
-
model: defaultModel ??
|
|
42253
|
+
model: defaultModel ?? PROXYPAL_AGENT_MODELS.Sisyphus,
|
|
42208
42254
|
mode: "primary",
|
|
42209
42255
|
prompt: PROMETHEUS_SYSTEM_PROMPT,
|
|
42210
42256
|
permission: PROMETHEUS_PERMISSION,
|
|
@@ -42325,10 +42371,88 @@ function createConfigHandler(deps) {
|
|
|
42325
42371
|
};
|
|
42326
42372
|
};
|
|
42327
42373
|
}
|
|
42374
|
+
// src/fork/index.ts
|
|
42375
|
+
init_models();
|
|
42376
|
+
|
|
42377
|
+
// src/plugins/maestro/schema.ts
|
|
42378
|
+
var tddGatesConfigSchema = exports_external.object({
|
|
42379
|
+
requireFailingTest: exports_external.boolean().optional().describe("Require failing test before implementation"),
|
|
42380
|
+
requirePassingTest: exports_external.boolean().optional().describe("Require passing test after implementation"),
|
|
42381
|
+
runFullSuiteAfterRefactor: exports_external.boolean().optional().describe("Run full test suite after refactoring")
|
|
42382
|
+
}).strict().partial();
|
|
42383
|
+
var maestroConfigSchema = exports_external.object({
|
|
42384
|
+
enabled: exports_external.boolean().optional().describe("Enable Maestro workflow features"),
|
|
42385
|
+
boulder_state_enabled: exports_external.boolean().optional().describe("Enable boulder state management"),
|
|
42386
|
+
tdd_enforcement_enabled: exports_external.boolean().optional().describe("Enable TDD enforcement"),
|
|
42387
|
+
auto_execute: exports_external.boolean().optional().describe("Auto-execute Sisyphus on plan ready"),
|
|
42388
|
+
tdd_gates: tddGatesConfigSchema.optional().describe("TDD gate configuration")
|
|
42389
|
+
}).strict().partial();
|
|
42390
|
+
|
|
42391
|
+
// src/plugins/maestro/index.ts
|
|
42392
|
+
function createMaestroPlugin(ctx, maestroConfig) {
|
|
42393
|
+
const enabled = maestroConfig?.enabled ?? true;
|
|
42394
|
+
if (!enabled) {
|
|
42395
|
+
return {};
|
|
42396
|
+
}
|
|
42397
|
+
const bridgeHooks = createMaestroSisyphusBridgeHook(ctx, maestroConfig);
|
|
42398
|
+
const tddHooks = createTddEnforcementHook(ctx, maestroConfig);
|
|
42399
|
+
return {
|
|
42400
|
+
...bridgeHooks,
|
|
42401
|
+
...tddHooks
|
|
42402
|
+
};
|
|
42403
|
+
}
|
|
42404
|
+
|
|
42405
|
+
// src/fork/index.ts
|
|
42406
|
+
init_models();
|
|
42407
|
+
|
|
42408
|
+
// src/fork/schema-extensions.ts
|
|
42409
|
+
var proxypalModeSchema = exports_external.boolean().optional().describe("Enable ProxyPal models for all agents (fork-specific)");
|
|
42410
|
+
var forkConfigSchema = exports_external.object({
|
|
42411
|
+
proxypal_mode: proxypalModeSchema
|
|
42412
|
+
}).strict().partial();
|
|
42413
|
+
|
|
42414
|
+
// src/fork/index.ts
|
|
42415
|
+
function initFork(config3) {
|
|
42416
|
+
const proxypalMode = config3.proxypal_mode ?? false;
|
|
42417
|
+
if (!proxypalMode) {
|
|
42418
|
+
return config3;
|
|
42419
|
+
}
|
|
42420
|
+
config3.agents = config3.agents || {};
|
|
42421
|
+
config3.categories = config3.categories || {};
|
|
42422
|
+
Object.assign(config3.agents, {
|
|
42423
|
+
Sisyphus: { ...config3.agents["Sisyphus"], model: PROXYPAL_AGENT_MODELS.Sisyphus },
|
|
42424
|
+
librarian: { ...config3.agents["librarian"], model: PROXYPAL_AGENT_MODELS.librarian },
|
|
42425
|
+
explore: { ...config3.agents["explore"], model: PROXYPAL_AGENT_MODELS.explore },
|
|
42426
|
+
"frontend-ui-ux-engineer": { ...config3.agents["frontend-ui-ux-engineer"], model: PROXYPAL_AGENT_MODELS["frontend-ui-ux-engineer"] },
|
|
42427
|
+
"document-writer": { ...config3.agents["document-writer"], model: PROXYPAL_AGENT_MODELS["document-writer"] },
|
|
42428
|
+
"multimodal-looker": { ...config3.agents["multimodal-looker"], model: PROXYPAL_AGENT_MODELS["multimodal-looker"] },
|
|
42429
|
+
"orchestrator-sisyphus": { ...config3.agents["orchestrator-sisyphus"], model: PROXYPAL_AGENT_MODELS["orchestrator-sisyphus"] },
|
|
42430
|
+
"Prometheus (Planner)": { ...config3.agents["Prometheus (Planner)"], model: PROXYPAL_AGENT_MODELS.Sisyphus },
|
|
42431
|
+
"Metis (Plan Consultant)": { ...config3.agents["Metis (Plan Consultant)"], model: PROXYPAL_AGENT_MODELS.Sisyphus },
|
|
42432
|
+
oracle: { ...config3.agents["oracle"], model: PROXYPAL_AGENT_MODELS.oracle },
|
|
42433
|
+
"Momus (Plan Reviewer)": { ...config3.agents["Momus (Plan Reviewer)"], model: PROXYPAL_AGENT_MODELS["Momus (Plan Reviewer)"] }
|
|
42434
|
+
});
|
|
42435
|
+
Object.assign(config3.categories, {
|
|
42436
|
+
"visual-engineering": { model: PROXYPAL_CATEGORY_MODELS["visual-engineering"] },
|
|
42437
|
+
ultrabrain: { model: PROXYPAL_CATEGORY_MODELS.ultrabrain },
|
|
42438
|
+
artistry: { model: PROXYPAL_CATEGORY_MODELS.artistry },
|
|
42439
|
+
quick: { model: PROXYPAL_CATEGORY_MODELS.quick },
|
|
42440
|
+
"most-capable": { model: PROXYPAL_CATEGORY_MODELS["most-capable"] },
|
|
42441
|
+
writing: { model: PROXYPAL_CATEGORY_MODELS.writing },
|
|
42442
|
+
general: { model: PROXYPAL_CATEGORY_MODELS.general }
|
|
42443
|
+
});
|
|
42444
|
+
return config3;
|
|
42445
|
+
}
|
|
42446
|
+
function initMaestroHooks(ctx, config3) {
|
|
42447
|
+
return createMaestroPlugin(ctx, config3?.maestro);
|
|
42448
|
+
}
|
|
42449
|
+
|
|
42328
42450
|
// src/index.ts
|
|
42329
42451
|
var OhMyOpenCodePlugin = async (ctx) => {
|
|
42330
42452
|
startBackgroundCheck2();
|
|
42331
|
-
|
|
42453
|
+
let pluginConfig = loadPluginConfig(ctx.directory, ctx);
|
|
42454
|
+
pluginConfig = initFork(pluginConfig);
|
|
42455
|
+
const maestroHooks = initMaestroHooks(ctx, pluginConfig);
|
|
42332
42456
|
const disabledHooks = new Set(pluginConfig.disabled_hooks ?? []);
|
|
42333
42457
|
const isHookEnabled = (hookName) => !disabledHooks.has(hookName);
|
|
42334
42458
|
const modelCacheState = createModelCacheState();
|
|
@@ -42391,8 +42515,6 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
42391
42515
|
const editErrorRecovery = isHookEnabled("edit-error-recovery") ? createEditErrorRecoveryHook(ctx) : null;
|
|
42392
42516
|
const startWork = isHookEnabled("start-work") ? createStartWorkHook(ctx) : null;
|
|
42393
42517
|
const sisyphusOrchestrator = isHookEnabled("sisyphus-orchestrator") ? createSisyphusOrchestratorHook(ctx) : null;
|
|
42394
|
-
const tddEnforcement = isHookEnabled("tdd-enforcement") ? createTddEnforcementHook(ctx, pluginConfig.maestro) : null;
|
|
42395
|
-
const maestroSisyphusBridge = isHookEnabled("maestro-sisyphus-bridge") ? createMaestroSisyphusBridgeHook(ctx, pluginConfig.maestro) : null;
|
|
42396
42518
|
const prometheusMdOnly = isHookEnabled("prometheus-md-only") ? createPrometheusMdOnlyHook(ctx) : null;
|
|
42397
42519
|
const taskResumeInfo = createTaskResumeInfoHook();
|
|
42398
42520
|
const backgroundManager = new BackgroundManager(ctx);
|
|
@@ -42543,6 +42665,7 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
42543
42665
|
},
|
|
42544
42666
|
"tool.execute.before": async (input, output) => {
|
|
42545
42667
|
await claudeCodeHooks["tool.execute.before"](input, output);
|
|
42668
|
+
await maestroHooks?.["tool.execute.before"]?.(input, output);
|
|
42546
42669
|
await nonInteractiveEnv?.["tool.execute.before"](input, output);
|
|
42547
42670
|
await commentChecker?.["tool.execute.before"](input, output);
|
|
42548
42671
|
await directoryAgentsInjector?.["tool.execute.before"]?.(input, output);
|
|
@@ -42580,6 +42703,7 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
42580
42703
|
},
|
|
42581
42704
|
"tool.execute.after": async (input, output) => {
|
|
42582
42705
|
await claudeCodeHooks["tool.execute.after"](input, output);
|
|
42706
|
+
await maestroHooks?.["tool.execute.after"]?.(input, output);
|
|
42583
42707
|
await toolOutputTruncator?.["tool.execute.after"](input, output);
|
|
42584
42708
|
await contextWindowMonitor?.["tool.execute.after"](input, output);
|
|
42585
42709
|
await commentChecker?.["tool.execute.after"](input, output);
|
|
@@ -42592,7 +42716,6 @@ var OhMyOpenCodePlugin = async (ctx) => {
|
|
|
42592
42716
|
await editErrorRecovery?.["tool.execute.after"](input, output);
|
|
42593
42717
|
await sisyphusOrchestrator?.["tool.execute.after"]?.(input, output);
|
|
42594
42718
|
await taskResumeInfo["tool.execute.after"](input, output);
|
|
42595
|
-
await backgroundNotificationHook?.["tool.execute.after"]?.(input, output);
|
|
42596
42719
|
}
|
|
42597
42720
|
};
|
|
42598
42721
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reinamaccredy/oh-my-opencode",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0-beta.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",
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
"@openauthjs/openauth": "^0.4.3",
|
|
66
66
|
"@opencode-ai/plugin": "^1.1.1",
|
|
67
67
|
"@opencode-ai/sdk": "^1.1.1",
|
|
68
|
-
"@reinamaccredy/oh-my-opencode": "^3.0.
|
|
68
|
+
"@reinamaccredy/oh-my-opencode": "^3.0.1-beta.3",
|
|
69
69
|
"commander": "^14.0.2",
|
|
70
70
|
"hono": "^4.10.4",
|
|
71
71
|
"js-yaml": "^4.1.1",
|