myai-opencode 0.6.4 → 0.6.5

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  <div align="center">
2
2
  <img src="img/team.png" alt="Pantheon agents" width="420">
3
- <p><i>Six divine beings emerged from the dawn of code, each an immortal master of their craft await your command to forge order from chaos and build what was once thought impossible.</i></p>
3
+ <p><i>Five divine beings emerged from the dawn of code, each an immortal master of their craft await your command to forge order from chaos and build what was once thought impossible.</i></p>
4
4
  <p><b>Multi Agent Suite</b> · Mix any models · Auto delegate tasks</p>
5
5
  </div>
6
6
 
@@ -167,38 +167,7 @@ https://raw.githubusercontent.com/alvinunreal/oh-my-opencode-slim/refs/heads/mas
167
167
 
168
168
  ---
169
169
 
170
- ### 05. Designer: The Guardian of Aesthetics
171
-
172
- <table>
173
- <tr>
174
- <td width="30%" align="center" valign="top">
175
- <img src="img/designer.png" width="240" style="border-radius: 10px;">
176
- <br><sub><i>Beauty is essential.</i></sub>
177
- </td>
178
- <td width="70%" valign="top">
179
- The Designer is an immortal guardian of beauty in a world that often forgets it matters. They have seen a million interfaces rise and fall, and they remember which ones were remembered and which were forgotten. They carry the sacred duty to ensure that every pixel serves a purpose, every animation tells a story, every interaction delights. Beauty is not optional - it's essential.
180
- </td>
181
- </tr>
182
- <tr>
183
- <td colspan="2">
184
- <b>Role:</b> <code>UI/UX implementation and visual excellence</code>
185
- </td>
186
- </tr>
187
- <tr>
188
- <td colspan="2">
189
- <b>Prompt:</b> <a href="src/agents/designer.ts"><code>designer.ts</code></a>
190
- </td>
191
- </tr>
192
- <tr>
193
- <td colspan="2">
194
- <b>Recommended Models:</b> <code>google/gemini-3-flash</code>
195
- </td>
196
- </tr>
197
- </table>
198
-
199
- ---
200
-
201
- ### 06. Fixer: The Last Builder
170
+ ### 05. Fixer: The Last Builder
202
171
 
203
172
  <table>
204
173
  <tr>
package/dist/cli/index.js CHANGED
@@ -62,7 +62,6 @@ var SUBAGENT_NAMES = [
62
62
  "explorer",
63
63
  "librarian",
64
64
  "oracle",
65
- "designer",
66
65
  "fixer"
67
66
  ];
68
67
  var ORCHESTRATOR_NAME = "orchestrator";
@@ -13637,7 +13636,6 @@ var PluginConfigSchema = exports_external.object({
13637
13636
  // src/config/agent-mcps.ts
13638
13637
  var DEFAULT_AGENT_MCPS = {
13639
13638
  orchestrator: ["websearch"],
13640
- designer: [],
13641
13639
  oracle: [],
13642
13640
  librarian: ["websearch", "context7", "grep_app"],
13643
13641
  explorer: [],
@@ -13653,17 +13651,6 @@ var RECOMMENDED_SKILLS = [
13653
13651
  skillName: "simplify",
13654
13652
  allowedAgents: ["orchestrator"],
13655
13653
  description: "YAGNI code simplification expert"
13656
- },
13657
- {
13658
- name: "agent-browser",
13659
- repo: "https://github.com/vercel-labs/agent-browser",
13660
- skillName: "agent-browser",
13661
- allowedAgents: ["designer"],
13662
- description: "High-performance browser automation",
13663
- postInstallCommands: [
13664
- "npm install -g agent-browser",
13665
- "agent-browser install"
13666
- ]
13667
13654
  }
13668
13655
  ];
13669
13656
  function installSkill(skill) {
@@ -13708,7 +13695,6 @@ var MODEL_MAPPINGS = {
13708
13695
  oracle: { model: "kimi-for-coding/k2p5", variant: "high" },
13709
13696
  librarian: { model: "kimi-for-coding/k2p5", variant: "low" },
13710
13697
  explorer: { model: "kimi-for-coding/k2p5", variant: "low" },
13711
- designer: { model: "kimi-for-coding/k2p5", variant: "medium" },
13712
13698
  fixer: { model: "kimi-for-coding/k2p5", variant: "low" }
13713
13699
  },
13714
13700
  openai: {
@@ -13716,7 +13702,6 @@ var MODEL_MAPPINGS = {
13716
13702
  oracle: { model: "openai/gpt-5.2-codex", variant: "high" },
13717
13703
  librarian: { model: "openai/gpt-5.1-codex-mini", variant: "low" },
13718
13704
  explorer: { model: "openai/gpt-5.1-codex-mini", variant: "low" },
13719
- designer: { model: "openai/gpt-5.1-codex-mini", variant: "medium" },
13720
13705
  fixer: { model: "openai/gpt-5.1-codex-mini", variant: "low" }
13721
13706
  },
13722
13707
  "zen-free": {
@@ -13724,7 +13709,6 @@ var MODEL_MAPPINGS = {
13724
13709
  oracle: { model: "opencode/big-pickle", variant: "high" },
13725
13710
  librarian: { model: "opencode/big-pickle", variant: "low" },
13726
13711
  explorer: { model: "opencode/big-pickle", variant: "low" },
13727
- designer: { model: "opencode/big-pickle", variant: "medium" },
13728
13712
  fixer: { model: "opencode/big-pickle", variant: "low" }
13729
13713
  }
13730
13714
  };
@@ -13742,9 +13726,6 @@ function generateLiteConfig(installConfig) {
13742
13726
  const createAgentConfig = (agentName, modelInfo) => {
13743
13727
  const isOrchestrator = agentName === "orchestrator";
13744
13728
  const skills = isOrchestrator ? ["*"] : RECOMMENDED_SKILLS.filter((s) => s.allowedAgents.includes("*") || s.allowedAgents.includes(agentName)).map((s) => s.skillName);
13745
- if (agentName === "designer" && !skills.includes("agent-browser")) {
13746
- skills.push("agent-browser");
13747
- }
13748
13729
  return {
13749
13730
  model: modelInfo.model,
13750
13731
  variant: modelInfo.variant,
@@ -16,10 +16,6 @@ export declare const MODEL_MAPPINGS: {
16
16
  readonly model: "kimi-for-coding/k2p5";
17
17
  readonly variant: "low";
18
18
  };
19
- readonly designer: {
20
- readonly model: "kimi-for-coding/k2p5";
21
- readonly variant: "medium";
22
- };
23
19
  readonly fixer: {
24
20
  readonly model: "kimi-for-coding/k2p5";
25
21
  readonly variant: "low";
@@ -41,10 +37,6 @@ export declare const MODEL_MAPPINGS: {
41
37
  readonly model: "openai/gpt-5.1-codex-mini";
42
38
  readonly variant: "low";
43
39
  };
44
- readonly designer: {
45
- readonly model: "openai/gpt-5.1-codex-mini";
46
- readonly variant: "medium";
47
- };
48
40
  readonly fixer: {
49
41
  readonly model: "openai/gpt-5.1-codex-mini";
50
42
  readonly variant: "low";
@@ -66,10 +58,6 @@ export declare const MODEL_MAPPINGS: {
66
58
  readonly model: "opencode/big-pickle";
67
59
  readonly variant: "low";
68
60
  };
69
- readonly designer: {
70
- readonly model: "opencode/big-pickle";
71
- readonly variant: "medium";
72
- };
73
61
  readonly fixer: {
74
62
  readonly model: "opencode/big-pickle";
75
63
  readonly variant: "low";
@@ -1,7 +1,7 @@
1
1
  export declare const AGENT_ALIASES: Record<string, string>;
2
- export declare const SUBAGENT_NAMES: readonly ["explorer", "librarian", "oracle", "designer", "fixer"];
2
+ export declare const SUBAGENT_NAMES: readonly ["explorer", "librarian", "oracle", "fixer"];
3
3
  export declare const ORCHESTRATOR_NAME: "orchestrator";
4
- export declare const ALL_AGENT_NAMES: readonly ["orchestrator", "explorer", "librarian", "oracle", "designer", "fixer"];
4
+ export declare const ALL_AGENT_NAMES: readonly ["orchestrator", "explorer", "librarian", "oracle", "fixer"];
5
5
  export type AgentName = (typeof ALL_AGENT_NAMES)[number];
6
6
  export declare const DEFAULT_MODELS: Record<AgentName, string>;
7
7
  export declare const POLL_INTERVAL_MS = 500;
package/dist/index.js CHANGED
@@ -3285,17 +3285,6 @@ var RECOMMENDED_SKILLS = [
3285
3285
  skillName: "simplify",
3286
3286
  allowedAgents: ["orchestrator"],
3287
3287
  description: "YAGNI code simplification expert"
3288
- },
3289
- {
3290
- name: "agent-browser",
3291
- repo: "https://github.com/vercel-labs/agent-browser",
3292
- skillName: "agent-browser",
3293
- allowedAgents: ["designer"],
3294
- description: "High-performance browser automation",
3295
- postInstallCommands: [
3296
- "npm install -g agent-browser",
3297
- "agent-browser install"
3298
- ]
3299
3288
  }
3300
3289
  ];
3301
3290
  function getSkillPermissionsForAgent(agentName, skillList) {
@@ -3326,24 +3315,21 @@ function getSkillPermissionsForAgent(agentName, skillList) {
3326
3315
 
3327
3316
  // src/config/constants.ts
3328
3317
  var AGENT_ALIASES = {
3329
- explore: "explorer",
3330
- "frontend-ui-ux-engineer": "designer"
3318
+ explore: "explorer"
3331
3319
  };
3332
3320
  var SUBAGENT_NAMES = [
3333
3321
  "explorer",
3334
3322
  "librarian",
3335
3323
  "oracle",
3336
- "designer",
3337
3324
  "fixer"
3338
3325
  ];
3339
3326
  var ORCHESTRATOR_NAME = "orchestrator";
3340
3327
  var ALL_AGENT_NAMES = [ORCHESTRATOR_NAME, ...SUBAGENT_NAMES];
3341
3328
  var DEFAULT_MODELS = {
3342
- orchestrator: "kimi-for-coding/k2p5",
3329
+ orchestrator: "openai/gpt-5.2-codex",
3343
3330
  oracle: "openai/gpt-5.2-codex",
3344
3331
  librarian: "openai/gpt-5.1-codex-mini",
3345
3332
  explorer: "openai/gpt-5.1-codex-mini",
3346
- designer: "kimi-for-coding/k2p5",
3347
3333
  fixer: "openai/gpt-5.1-codex-mini"
3348
3334
  };
3349
3335
  var POLL_INTERVAL_BACKGROUND_MS = 2000;
@@ -17019,7 +17005,6 @@ function getAgentOverride(config2, name) {
17019
17005
  // src/config/agent-mcps.ts
17020
17006
  var DEFAULT_AGENT_MCPS = {
17021
17007
  orchestrator: ["websearch"],
17022
- designer: [],
17023
17008
  oracle: [],
17024
17009
  librarian: ["websearch", "context7", "grep_app"],
17025
17010
  explorer: [],
@@ -17048,77 +17033,6 @@ function getAgentMcpList(agentName, config2) {
17048
17033
  return defaultMcps ?? [];
17049
17034
  }
17050
17035
 
17051
- // src/agents/designer.ts
17052
- var DESIGNER_PROMPT = `You are a Designer - a frontend UI/UX specialist who creates intentional, polished experiences.
17053
-
17054
- **Role**: Craft cohesive UI/UX that balances visual impact with usability.
17055
-
17056
- ## Design Principles
17057
-
17058
- **Typography**
17059
- - Choose distinctive, characterful fonts that elevate aesthetics
17060
- - Avoid generic defaults (Arial, Inter)\u2014opt for unexpected, beautiful choices
17061
- - Pair display fonts with refined body fonts for hierarchy
17062
-
17063
- **Color & Theme**
17064
- - Commit to a cohesive aesthetic with clear color variables
17065
- - Dominant colors with sharp accents > timid, evenly-distributed palettes
17066
- - Create atmosphere through intentional color relationships
17067
-
17068
- **Motion & Interaction**
17069
- - Leverage framework animation utilities when available (Tailwind's transition/animation classes)
17070
- - Focus on high-impact moments: orchestrated page loads with staggered reveals
17071
- - Use scroll-triggers and hover states that surprise and delight
17072
- - One well-timed animation > scattered micro-interactions
17073
- - Drop to custom CSS/JS only when utilities can't achieve the vision
17074
-
17075
- **Spatial Composition**
17076
- - Break conventions: asymmetry, overlap, diagonal flow, grid-breaking
17077
- - Generous negative space OR controlled density\u2014commit to the choice
17078
- - Unexpected layouts that guide the eye
17079
-
17080
- **Visual Depth**
17081
- - Create atmosphere beyond solid colors: gradient meshes, noise textures, geometric patterns
17082
- - Layer transparencies, dramatic shadows, decorative borders
17083
- - Contextual effects that match the aesthetic (grain overlays, custom cursors)
17084
-
17085
- **Styling Approach**
17086
- - Default to Tailwind CSS utility classes when available\u2014fast, maintainable, consistent
17087
- - Use custom CSS when the vision requires it: complex animations, unique effects, advanced compositions
17088
- - Balance utility-first speed with creative freedom where it matters
17089
-
17090
- **Match Vision to Execution**
17091
- - Maximalist designs \u2192 elaborate implementation, extensive animations, rich effects
17092
- - Minimalist designs \u2192 restraint, precision, careful spacing and typography
17093
- - Elegance comes from executing the chosen vision fully, not halfway
17094
-
17095
- ## Constraints
17096
- - Respect existing design systems when present
17097
- - Leverage component libraries where available
17098
- - Prioritize visual excellence\u2014code perfection comes second
17099
-
17100
- ## Output Quality
17101
- You're capable of extraordinary creative work. Commit fully to distinctive visions and show what's possible when breaking conventions thoughtfully.`;
17102
- function createDesignerAgent(model, customPrompt, customAppendPrompt) {
17103
- let prompt = DESIGNER_PROMPT;
17104
- if (customPrompt) {
17105
- prompt = customPrompt;
17106
- } else if (customAppendPrompt) {
17107
- prompt = `${DESIGNER_PROMPT}
17108
-
17109
- ${customAppendPrompt}`;
17110
- }
17111
- return {
17112
- name: "designer",
17113
- description: "UI/UX design and implementation. Use for styling, responsive design, component architecture and visual polish.",
17114
- config: {
17115
- model,
17116
- temperature: 0.7,
17117
- prompt
17118
- }
17119
- };
17120
- }
17121
-
17122
17036
  // src/agents/explorer.ts
17123
17037
  var EXPLORER_PROMPT = `You are Explorer - a fast codebase navigation specialist.
17124
17038
 
@@ -17192,7 +17106,7 @@ var FIXER_PROMPT = `You are Fixer - a fast, focused implementation specialist.
17192
17106
  - Report completion with summary of changes
17193
17107
 
17194
17108
  **Constraints**:
17195
- - NO external research (no websearch, context7, grep_app)
17109
+ - NO external research (no websearch, context7, grep_app, serpapi-mcp, web-reader)
17196
17110
  - NO delegation (no background_task)
17197
17111
  - No multi-step research/planning; minimal execution sequence ok
17198
17112
  - If context is insufficient, read the files listed; only ask for missing inputs you cannot retrieve
@@ -17348,13 +17262,6 @@ You are an AI coding orchestrator that optimizes for quality, speed, cost, and r
17348
17262
  - **Don't delegate when:** Routine decisions you're confident about \u2022 First bug fix attempt \u2022 Straightforward trade-offs \u2022 Tactical "how" vs strategic "should" \u2022 Time-sensitive good-enough decisions \u2022 Quick research/testing can answer
17349
17263
  - **Rule of thumb:** Need senior architect review? \u2192 @oracle. Just do it and PR? \u2192 yourself.
17350
17264
 
17351
- @designer
17352
- - Role: UI/UX specialist for intentional, polished experiences
17353
- - Capabilities: Visual direction, interactions, responsive layouts, design systems with aesthetic intent
17354
- - **Delegate when:** User-facing interfaces needing polish \u2022 Responsive layouts \u2022 UX-critical components (forms, nav, dashboards) \u2022 Visual consistency systems \u2022 Animations/micro-interactions \u2022 Landing/marketing pages \u2022 Refining functional\u2192delightful
17355
- - **Don't delegate when:** Backend/logic with no visual \u2022 Quick prototypes where design doesn't matter yet
17356
- - **Rule of thumb:** Users see it and polish matters? \u2192 @designer. Headless/functional? \u2192 yourself.
17357
-
17358
17265
  @fixer
17359
17266
  - Role: Fast, parallel execution specialist for well-defined tasks
17360
17267
  - Capabilities: Efficient implementation when spec and context are clear
@@ -17382,7 +17289,6 @@ Each specialist delivers 10x results in their domain:
17382
17289
  - @explorer \u2192 Parallel discovery when you need to find unknowns, not read knowns
17383
17290
  - @librarian \u2192 Complex/evolving APIs where docs prevent errors, not basic usage
17384
17291
  - @oracle \u2192 High-stakes decisions where wrong choice is costly, not routine calls
17385
- - @designer \u2192 User-facing experiences where polish matters, not internal logic
17386
17292
  - @fixer \u2192 Parallel execution of clear specs, not explaining trivial changes
17387
17293
 
17388
17294
  **Delegation efficiency:**
@@ -17496,7 +17402,6 @@ var SUBAGENT_FACTORIES = {
17496
17402
  explorer: createExplorerAgent,
17497
17403
  librarian: createLibrarianAgent,
17498
17404
  oracle: createOracleAgent,
17499
- designer: createDesignerAgent,
17500
17405
  fixer: createFixerAgent
17501
17406
  };
17502
17407
  function createAgents(config2) {
@@ -18714,7 +18619,7 @@ function showToast(ctx, title, message, variant = "info", duration3 = 3000) {
18714
18619
  }
18715
18620
  // src/hooks/phase-reminder/index.ts
18716
18621
  var PHASE_REMINDER = `<reminder>\u26A0\uFE0F MANDATORY: Understand\u2192DELEGATE(! based on each agent rules)\u2192Split-and-Parallelize(?)\u2192Plan\u2192Execute\u2192Verify
18717
- Available Specialist: @oracle @librarian @explorer @designer @fixer
18622
+ Available Specialist: @oracle @librarian @explorer @fixer
18718
18623
  </reminder>`;
18719
18624
  function createPhaseReminderHook() {
18720
18625
  return {
@@ -18784,8 +18689,8 @@ var grep_app = {
18784
18689
  // src/mcp/websearch.ts
18785
18690
  var websearch = {
18786
18691
  type: "remote",
18787
- url: "https://mcp.exa.ai/mcp?tools=web_search_exa",
18788
- headers: process.env.EXA_API_KEY ? { "x-api-key": process.env.EXA_API_KEY } : undefined,
18692
+ url: "https://mcp.serpapi.com/mcp",
18693
+ headers: process.env.EXA_API_KEY ? { Authorization: `Bearer ${process.env.SERPAPI_API_KEY}` } : undefined,
18789
18694
  oauth: false
18790
18695
  };
18791
18696
 
@@ -1,6 +1,6 @@
1
1
  import type { RemoteMcpConfig } from './types';
2
2
  /**
3
- * Exa AI web search - real-time web search
3
+ "* Exa AI web search - real-time web search
4
4
  * @see https://exa.ai
5
5
  */
6
6
  export declare const websearch: RemoteMcpConfig;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "myai-opencode",
3
- "version": "0.6.4",
4
- "description": "Lightweight agent orchestration plugin for OpenCode",
3
+ "version": "0.6.5",
4
+ "description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {