opencode-ultra 0.7.4 → 0.7.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.
Files changed (2) hide show
  1. package/dist/index.js +32 -30
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14926,7 +14926,7 @@ function buildEvolveMessage(ctx) {
14926
14926
  return `[evolve-mode] SELF-IMPROVEMENT CYCLE ACTIVATED.
14927
14927
 
14928
14928
  ## MISSION
14929
- Compare opencode-ultra's current capabilities with other OpenCode plugins, then propose concrete improvements.
14929
+ Compare opencode-ultra's current capabilities with other OpenCode plugins, then propose concrete, implementation-ready improvements.
14930
14930
  This is NOT about installing other plugins. This is about LEARNING from the ecosystem and making opencode-ultra better.
14931
14931
 
14932
14932
  ## opencode-ultra CURRENT CAPABILITIES (auto-generated from source)
@@ -14934,21 +14934,15 @@ ${inventory}
14934
14934
 
14935
14935
  You already have the full capability list above. Do NOT try to read opencode-ultra source files \u2014 this inventory IS the source of truth.
14936
14936
 
14937
- ## PHASE 1: ECOSYSTEM RESEARCH (spawn_agent)
14937
+ ## PHASE 1: ECOSYSTEM RESEARCH
14938
14938
 
14939
- Research what other plugins offer:
14940
- \`\`\`
14941
- spawn_agent({
14942
- agents: [
14943
- {agent: "scout", prompt: "Search npm and GitHub for OpenCode 1.2.x plugins. For EACH interesting plugin: what features does it provide? What hooks, tools, or techniques does it use? Focus on UNIQUE capabilities. Return a structured feature inventory per plugin.", description: "Ecosystem scan"},
14944
- {agent: "librarian", prompt: "Search for OpenCode plugin best practices, architectural patterns, and advanced techniques. Look at oh-my-opencode, opencode-supermemory, opencode-dcp, opencode-rate-limit-fallback, opencode-worktree, opencode-mad. What patterns do they share? What's unique?", description: "Plugin patterns research"}
14945
- ]
14946
- })
14947
- \`\`\`
14939
+ Search npm and GitHub for OpenCode 1.2.x plugins. Use google_search, webfetch, or spawn_agent with scout/librarian agents.
14940
+ For EACH interesting plugin: what features does it provide? What hooks, tools, or techniques does it use?
14941
+ Focus on UNIQUE capabilities not already in the inventory above.
14948
14942
 
14949
14943
  ## PHASE 2: COMPARE
14950
14944
 
14951
- Build a Feature Matrix using the capability list above and agent results.
14945
+ Build a Feature Matrix using the capability list above and research results.
14952
14946
 
14953
14947
  **RULE**: The "opencode-ultra" column MUST be Yes/No/Partial based on the inventory above. NEVER write "TBD", "unknown", or "\u4E0D\u660E".
14954
14948
 
@@ -14956,34 +14950,43 @@ Build a Feature Matrix using the capability list above and agent results.
14956
14950
  |---------|---------------|-----------------|------|
14957
14951
  | (feature) | Yes \u2014 (tool/hook name) | Which plugin | Covered / Missing / Partial |
14958
14952
 
14959
- Focus on genuinely useful, feasible, complementary features.
14960
-
14961
14953
  ## PHASE 3: PROPOSE
14962
14954
 
14963
- For each Missing or Partial gap:
14955
+ For each Missing or Partial gap, write a structured proposal. Each proposal MUST include:
14964
14956
 
14965
- ## Improvement: [Feature Name]
14966
- **Inspiration**: [Plugin name] \u2014 [what it does]
14967
- **Current state**: [what opencode-ultra has now from the inventory]
14968
- **Why**: [concrete benefit]
14969
- **How**: [which file to modify, what to add]
14970
- **Effort**: Low / Medium / High
14971
- **Priority**: P0 / P1 / P2
14957
+ - **\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB\u3068\u95A2\u6570\u540D**: Which source file(s) and function(s) to modify or create
14958
+ - **\u73FE\u72B6\u306E\u554F\u984C\u70B9**: What's missing or broken, citing specific tools/hooks from the inventory
14959
+ - **\u5177\u4F53\u7684\u306A\u5909\u66F4\u5185\u5BB9**: What to add/modify (specific enough to implement in one session)
14960
+ - **\u671F\u5F85\u3055\u308C\u308B\u52B9\u679C**: Concrete benefit to the user
14961
+ - **Priority**: P0 (critical gap) / P1 (valuable) / P2 (nice-to-have)
14962
+ - **Effort**: Low (< 1 file) / Medium (2-4 files) / High (5+ files or new subsystem)
14963
+
14964
+ Write each proposal as a JSONL line to \`.opencode/evolve-proposals.jsonl\`:
14965
+ \`\`\`
14966
+ {"title":"\u6A5F\u80FD\u540D","priority":"P0","effort":"Medium","inspiration":"\u53C2\u8003\u30D7\u30E9\u30B0\u30A4\u30F3","current_state":"\u73FE\u72B6\u306E\u554F\u984C","why":"\u671F\u5F85\u52B9\u679C","how":"\u5BFE\u8C61\u30D5\u30A1\u30A4\u30EB:\u95A2\u6570\u540D \u2014 \u5909\u66F4\u5185\u5BB9"}
14967
+ \`\`\`
14972
14968
 
14973
- Sort by Priority then Effort.
14969
+ ## PHASE 4: SCORE
14974
14970
 
14975
- ## PHASE 4: SAVE
14971
+ Use the \`evolve_score\` tool to score and rank ALL proposals:
14972
+ \`\`\`
14973
+ evolve_score({ markdown: "## Improvement: ...\\n**Priority**: ...\\n**Effort**: ...\\n**Why**: ..." })
14974
+ \`\`\`
14975
+ Include the score results and reasoning in the final output.
14976
+
14977
+ ## PHASE 5: SAVE
14976
14978
  \`\`\`
14977
14979
  ledger_save({
14978
14980
  name: "evolve-scan-YYYY-MM-DD",
14979
- content: "# Evolve Scan Results\\n\\n## Feature Matrix\\n...\\n## Proposals\\n..."
14981
+ content: "# Evolve Scan Results\\n\\n## Feature Matrix\\n...\\n## Scored Proposals\\n..."
14980
14982
  })
14981
14983
  \`\`\`
14982
14984
 
14983
14985
  ## RULES
14984
- - Use the capability inventory above as ground truth. No file reading needed.
14985
- - Proposals must cite specific tools/hooks from the inventory for "Current state".
14986
- - Present proposals to user for approval before implementation.`;
14986
+ - Use the capability inventory above as ground truth.
14987
+ - Do NOT use evolve_apply. Proposals only. Humans decide what to implement.
14988
+ - Sort final proposals by score descending.
14989
+ - Each proposal must be specific enough to implement in one coding session.`;
14987
14990
  }
14988
14991
  function buildSelfInventory(ctx) {
14989
14992
  const lines = [];
@@ -14999,8 +15002,7 @@ function buildSelfInventory(ctx) {
14999
15002
  lines.push("");
15000
15003
  lines.push("### Agents");
15001
15004
  for (const [name, def] of Object.entries(ctx.agents)) {
15002
- const shortModel = def.model.split("/").pop() ?? def.model;
15003
- lines.push(`- **${name}** (${shortModel}) \u2014 ${def.description}`);
15005
+ lines.push(`- **${name}** \u2014 ${def.description}`);
15004
15006
  }
15005
15007
  lines.push("");
15006
15008
  lines.push("### Additional Features");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ultra",
3
- "version": "0.7.4",
3
+ "version": "0.7.5",
4
4
  "description": "Lightweight OpenCode 1.2.x plugin — ultrawork mode, multi-agent orchestration, rules injection",
5
5
  "keywords": [
6
6
  "opencode",