opencode-ultra 0.6.0 → 0.6.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.
Files changed (2) hide show
  1. package/dist/index.js +80 -84
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -14643,66 +14643,50 @@ var BUILTIN_AGENTS = {
14643
14643
  },
14644
14644
  scout: {
14645
14645
  model: "anthropic/claude-sonnet-4-5",
14646
- description: "Plugin ecosystem researcher \u2014 finds, analyzes, and compares OpenCode plugins with trust scoring",
14646
+ description: "Plugin ecosystem researcher \u2014 discovers features and techniques from other OpenCode plugins",
14647
14647
  prompt: `You are Scout, an OpenCode plugin ecosystem researcher.
14648
14648
 
14649
14649
  ## YOUR MISSION
14650
- Search the web (npm, GitHub, OpenCode community) for OpenCode plugins and extensions.
14651
- Collect STRUCTURED METADATA for trust scoring. Compare with opencode-ultra.
14650
+ Search for OpenCode plugins and analyze WHAT THEY DO and HOW THEY DO IT.
14651
+ The goal is to find features and techniques that opencode-ultra can learn from \u2014 NOT to recommend installing them.
14652
14652
 
14653
14653
  ## SEARCH STRATEGY
14654
14654
  1. Search npm for "opencode-plugin", "opencode-ai", "@opencode" packages
14655
14655
  2. Search GitHub for "opencode plugin", "opencode extension", "oh-my-opencode"
14656
14656
  3. Look at package.json dependencies on @opencode-ai/plugin or @opencode-ai/sdk
14657
- 4. Read README files and source code of discovered plugins
14657
+ 4. Read README files and SOURCE CODE of discovered plugins \u2014 understand their implementation
14658
14658
 
14659
- ## CRITICAL: METADATA COLLECTION
14660
- For EACH plugin found, you MUST collect these fields (used for trust scoring):
14661
- - **name**: exact npm package name
14662
- - **version**: latest version string
14663
- - **lastPublished**: ISO date of last npm publish (e.g. "2026-01-15")
14664
- - **weeklyDownloads**: weekly npm download count (number)
14665
- - **stars**: GitHub stars (number, 0 if unknown)
14666
- - **repository**: GitHub/GitLab repo URL
14667
- - **license**: SPDX license identifier (e.g. "MIT", "ISC")
14668
- - **hasReadme**: true/false
14669
- - **maintainerCount**: number of npm maintainers
14670
- - **dependencyCount**: number of production dependencies
14671
- - **description**: one-line description
14672
- - **features**: bullet list of capabilities
14673
- - **uniqueIdeas**: features that opencode-ultra does NOT have
14659
+ ## WHAT TO ANALYZE PER PLUGIN
14660
+ - **name**: package name + repo URL
14661
+ - **description**: what it does
14662
+ - **features**: detailed list of capabilities
14663
+ - **hooks used**: which OpenCode hooks (chat.message, tool.execute.after, etc.)
14664
+ - **tools provided**: custom tools and what they do
14665
+ - **techniques**: interesting implementation patterns (e.g. caching strategies, prompt engineering, API usage)
14666
+ - **unique ideas**: features/approaches NOT in opencode-ultra
14667
+
14668
+ ## WHAT TO SKIP
14669
+ - Auth plugins (opencode-*-auth) \u2014 domain-specific, not relevant
14670
+ - Abandoned/empty repos (no commits in 6+ months, no README)
14671
+ - Trivial wrappers (just re-exports or single-function plugins)
14674
14672
 
14675
14673
  ## OUTPUT FORMAT
14676
- Return a JSON array of plugin objects with the fields above. Example:
14677
- \`\`\`json
14678
- [
14679
- {
14680
- "name": "opencode-supermemory",
14681
- "version": "1.2.0",
14682
- "lastPublished": "2026-02-01",
14683
- "weeklyDownloads": 500,
14684
- "stars": 45,
14685
- "repository": "https://github.com/supermemoryai/opencode-supermemory",
14686
- "license": "MIT",
14687
- "hasReadme": true,
14688
- "maintainerCount": 2,
14689
- "dependencyCount": 5,
14690
- "description": "Persistent memory across OpenCode sessions",
14691
- "features": ["Session memory", "Cross-project recall"],
14692
- "uniqueIdeas": ["Long-term memory that opencode-ultra lacks"]
14693
- }
14694
- ]
14695
- \`\`\`
14674
+ For each INTERESTING plugin (skip the trivial ones):
14696
14675
 
14697
- Also include a text summary with gap analysis after the JSON block.
14676
+ ### [plugin-name]
14677
+ - **What**: one-line description
14678
+ - **Repo**: URL
14679
+ - **Features**: bullet list
14680
+ - **Hooks**: which hooks and how they use them
14681
+ - **Tools**: custom tools and purpose
14682
+ - **Interesting technique**: what they do that's clever or useful
14683
+ - **Applicable to opencode-ultra**: YES/NO + what we could adapt
14698
14684
 
14699
- ## COMPARISON
14700
- After listing plugins, generate:
14701
- - Features others have that opencode-ultra lacks
14702
- - Features opencode-ultra has that others lack (competitive advantages)
14703
- - Improvement priority list (high/medium/low impact)
14685
+ End with a summary section:
14686
+ ## Features opencode-ultra could adopt
14687
+ (Ranked by impact \u2014 high/medium/low)
14704
14688
 
14705
- Be thorough but focused. Skip abandoned or trivial plugins.`,
14689
+ Be thorough but focused on QUALITY over quantity. 5 well-analyzed plugins beats 20 superficial listings.`,
14706
14690
  mode: "subagent",
14707
14691
  maxTokens: 32000
14708
14692
  }
@@ -14940,58 +14924,70 @@ var THINK_MESSAGE = `Extended thinking enabled. Take your time to reason thoroug
14940
14924
  var EVOLVE_MESSAGE = `[evolve-mode] SELF-IMPROVEMENT CYCLE ACTIVATED.
14941
14925
 
14942
14926
  ## MISSION
14943
- Search the OpenCode plugin ecosystem, evaluate trust/quality, identify gaps, and optionally apply improvements.
14927
+ Discover what other OpenCode plugins do well, compare with opencode-ultra's current capabilities, and propose concrete improvements to opencode-ultra itself.
14928
+
14929
+ This is NOT about installing other plugins. This is about LEARNING from the ecosystem and making opencode-ultra better.
14944
14930
 
14945
14931
  ## TOOLS AVAILABLE
14946
14932
  - **spawn_agent** \u2014 run scout + explore agents in parallel for data gathering
14947
- - **evolve_apply** \u2014 apply plugin recommendations to OpenCode config (with trust scoring and backup)
14948
-
14949
- ## STEPS
14950
- 1. **SCOUT** \u2014 Spawn the **scout** agent to search npm/GitHub for OpenCode plugins. Scout MUST return package metadata (lastPublished, weeklyDownloads, stars, repository, license, maintainerCount, dependencyCount) for each plugin found.
14951
- 2. **READ SELF** \u2014 Read opencode-ultra's own capabilities via explore agent
14952
- 3. **SCORE** \u2014 For each discovered plugin, the evolve_apply tool computes a trust score (0-100):
14953
- - 90-100: HIGH trust (safe to auto-install)
14954
- - 70-89: MEDIUM trust (review recommended)
14955
- - 40-69: LOW trust (caution)
14956
- - 0-39: RISKY (blocked from install)
14957
- 4. **COMPARE** \u2014 Generate gap analysis with trust scores
14958
- 5. **PROPOSE** \u2014 Present scored recommendations to the user
14959
- 6. **APPLY** \u2014 If user approves, call evolve_apply to update config:
14933
+ - **ledger_save** \u2014 persist improvement proposals for future implementation
14960
14934
 
14935
+ ## PHASE 1: GATHER (parallel)
14961
14936
  \`\`\`
14962
- evolve_apply({
14963
- plugins: [
14964
- {
14965
- name: "opencode-supermemory",
14966
- version: "latest",
14967
- reason: "Persistent memory across sessions",
14968
- metadata: {name: "opencode-supermemory", lastPublished: "2026-02-01", weeklyDownloads: 500, stars: 45, repository: "https://github.com/...", license: "MIT", maintainerCount: 2}
14969
- }
14970
- ],
14971
- dryRun: true
14937
+ spawn_agent({
14938
+ agents: [
14939
+ {agent: "scout", prompt: "Search npm and GitHub for OpenCode 1.2.x plugins. For EACH plugin, analyze: what features does it provide? What hooks, tools, or techniques does it use? Focus on UNIQUE capabilities that are genuinely useful. Return a structured feature inventory per plugin.", description: "Ecosystem feature scan"},
14940
+ {agent: "explore", prompt: "Read opencode-ultra's source: src/index.ts, src/tools/*.ts, src/hooks/*.ts, src/safety/*.ts, src/agents/index.ts, README.md. Catalog every feature, tool, hook, and capability. Be exhaustive.", description: "Self-analysis"}
14941
+ ]
14972
14942
  })
14973
14943
  \`\`\`
14974
14944
 
14975
- Use dryRun: true FIRST to preview, then dryRun: false after user approval.
14945
+ ## PHASE 2: COMPARE
14946
+ After gathering results, build a structured gap analysis:
14976
14947
 
14977
- 7. **SAVE** \u2014 Save findings to ledger: ledger_save({name: "evolve-scan-YYYY-MM-DD", content: "..."})
14948
+ ### Feature Matrix
14949
+ | Feature | opencode-ultra | Other plugin(s) | Gap? |
14950
+ |---------|---------------|-----------------|------|
14951
+ | (feature) | Yes/No | Which plugin has it | Missing / Partial / Covered |
14952
+
14953
+ Focus on features that are:
14954
+ - **Genuinely useful** (not gimmicks)
14955
+ - **Feasible to implement** (not requiring external infrastructure)
14956
+ - **Complementary** to existing capabilities (not duplicate)
14957
+
14958
+ ### What to IGNORE
14959
+ - Auth plugins (opencode-antigravity-auth etc.) \u2014 domain-specific, not relevant
14960
+ - oh-my-opencode features we already ported \u2014 mark as "Covered"
14961
+ - Trivial wrappers or abandoned projects
14962
+
14963
+ ## PHASE 3: PROPOSE
14964
+ For each identified gap, produce a concrete improvement proposal:
14978
14965
 
14979
- ## EXECUTION
14980
14966
  \`\`\`
14981
- spawn_agent({
14982
- agents: [
14983
- {agent: "scout", prompt: "Search npm and GitHub for OpenCode 1.2.x plugins. For EACH plugin found, collect: name, version, lastPublished date, weeklyDownloads, GitHub stars, repository URL, license, maintainerCount, dependencyCount. Return structured data.", description: "Plugin ecosystem scan + metadata"},
14984
- {agent: "explore", prompt: "Read opencode-ultra's README.md, src/index.ts, src/agents/index.ts to catalog current features", description: "Self-analysis"}
14985
- ]
14986
- })
14967
+ ## Improvement: [Feature Name]
14968
+ **Inspiration**: [Plugin name] \u2014 [what it does]
14969
+ **Why**: [Why opencode-ultra needs this]
14970
+ **How**: [Implementation sketch \u2014 which file to modify, what to add]
14971
+ **Effort**: Low / Medium / High
14972
+ **Priority**: P0 (critical) / P1 (important) / P2 (nice-to-have)
14987
14973
  \`\`\`
14988
14974
 
14989
- After gathering results:
14990
- 1. Call evolve_apply with dryRun: true to preview trust scores
14991
- 2. Present results to user with recommendation
14992
- 3. If approved, call evolve_apply with dryRun: false
14975
+ Sort proposals by Priority then Effort (P0-Low first, P2-High last).
14976
+
14977
+ ## PHASE 4: SAVE
14978
+ Save the full analysis to the continuity ledger:
14979
+ \`\`\`
14980
+ ledger_save({
14981
+ name: "evolve-scan-YYYY-MM-DD",
14982
+ content: "# Evolve Scan Results\\n\\n## Feature Matrix\\n...\\n## Improvement Proposals\\n..."
14983
+ })
14984
+ \`\`\`
14993
14985
 
14994
- **Trust scoring prevents bad plugins from entering your system. Always dry-run first.**`;
14986
+ ## IMPORTANT
14987
+ - The goal is to make opencode-ultra BETTER, not to install other plugins.
14988
+ - Other plugins are REFERENCE MATERIAL \u2014 study their approach, then design our own implementation.
14989
+ - Every proposal must include a concrete "How" section with file paths and implementation direction.
14990
+ - Present the final proposals to the user for approval before any implementation.`;
14995
14991
 
14996
14992
  // src/hooks/rules-injector.ts
14997
14993
  import * as fs2 from "fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ultra",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Lightweight OpenCode 1.2.x plugin — ultrawork mode, multi-agent orchestration, rules injection",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",