opencode-ultra 0.9.0 → 0.9.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/dist/config.d.ts CHANGED
@@ -79,6 +79,8 @@ declare const PluginConfigSchema: z.ZodObject<{
79
79
  totalTimeoutMs: z.ZodOptional<z.ZodNumber>;
80
80
  skipReview: z.ZodOptional<z.ZodBoolean>;
81
81
  skipTests: z.ZodOptional<z.ZodBoolean>;
82
+ implementAgent: z.ZodOptional<z.ZodString>;
83
+ reviewAgent: z.ZodOptional<z.ZodString>;
82
84
  }, z.core.$strip>>;
83
85
  }, z.core.$loose>;
84
86
  export type PluginConfig = z.infer<typeof PluginConfigSchema>;
package/dist/index.js CHANGED
@@ -14700,7 +14700,9 @@ var PluginConfigSchema = exports_external.object({
14700
14700
  iterationTimeoutMs: exports_external.number().min(1e4).optional(),
14701
14701
  totalTimeoutMs: exports_external.number().min(60000).optional(),
14702
14702
  skipReview: exports_external.boolean().optional(),
14703
- skipTests: exports_external.boolean().optional()
14703
+ skipTests: exports_external.boolean().optional(),
14704
+ implementAgent: exports_external.string().optional(),
14705
+ reviewAgent: exports_external.string().optional()
14704
14706
  }).optional()
14705
14707
  }).passthrough();
14706
14708
  function parsePluginConfig(raw) {
@@ -14814,7 +14816,7 @@ var BUILTIN_AGENTS = {
14814
14816
  }
14815
14817
  },
14816
14818
  oracle: {
14817
- model: "openai/gpt-5.2",
14819
+ model: "openai-codex/gpt-5.3-codex",
14818
14820
  description: "Design architect and debugger \u2014 conventional problem solving, architecture review",
14819
14821
  prompt: "You are Oracle, a design architect and debugging specialist. Focus on architecture decisions, debugging complex issues, and providing well-reasoned technical solutions.",
14820
14822
  mode: "subagent",
@@ -14864,7 +14866,7 @@ var BUILTIN_AGENTS = {
14864
14866
  maxTokens: 32000
14865
14867
  },
14866
14868
  hephaestus: {
14867
- model: "openai/gpt-5.2",
14869
+ model: "openai-codex/gpt-5.3-codex",
14868
14870
  description: "Deep autonomous worker \u2014 handles complex implementation tasks independently",
14869
14871
  prompt: "You are Hephaestus, an autonomous implementation specialist. Handle complex coding tasks independently with high precision. Write clean, well-tested code that follows existing patterns.",
14870
14872
  mode: "subagent",
@@ -29575,9 +29577,11 @@ function createEvolveExeTool(ctx, internalSessions, deps = {}) {
29575
29577
  const totalTimeoutMs = deps.evolveExeConfig?.totalTimeoutMs ?? DEFAULT_TOTAL_TIMEOUT_MS;
29576
29578
  const configSkipReview = deps.evolveExeConfig?.skipReview ?? false;
29577
29579
  const configSkipTests = deps.evolveExeConfig?.skipTests ?? false;
29580
+ const implementAgent = deps.evolveExeConfig?.implementAgent ?? "hephaestus";
29581
+ const reviewAgent = deps.evolveExeConfig?.reviewAgent ?? "momus";
29578
29582
  return tool({
29579
29583
  description: `Execute evolve proposals autonomously. For each proposal:
29580
- GIT BRANCH \u2192 IMPLEMENT (hephaestus) \u2192 TEST \u2192 BUILD \u2192 REVIEW (momus) \u2192 MERGE/ROLLBACK.
29584
+ GIT BRANCH \u2192 IMPLEMENT (${implementAgent}) \u2192 TEST \u2192 BUILD \u2192 REVIEW (${reviewAgent}) \u2192 MERGE/ROLLBACK.
29581
29585
 
29582
29586
  Proposals are identified by their JSONL line number (1-based) from .opencode/evolve-proposals.jsonl.
29583
29587
  Use evolve_scan first to see numbered proposals.
@@ -29665,6 +29669,8 @@ Failed to determine current git branch. Is this a git repository?`;
29665
29669
  maxIterations,
29666
29670
  iterationTimeoutMs,
29667
29671
  totalTimeoutMs,
29672
+ implementAgent,
29673
+ reviewAgent,
29668
29674
  progressLabel: `[${i + 1}/${selected.length}]`
29669
29675
  });
29670
29676
  results.push(result);
@@ -29710,6 +29716,8 @@ async function executeProposal(args) {
29710
29716
  maxIterations,
29711
29717
  iterationTimeoutMs,
29712
29718
  totalTimeoutMs,
29719
+ implementAgent,
29720
+ reviewAgent,
29713
29721
  progressLabel
29714
29722
  } = args;
29715
29723
  const slug = slugify2(proposal.title);
@@ -29738,6 +29746,7 @@ async function executeProposal(args) {
29738
29746
  maxIterations,
29739
29747
  iterationTimeoutMs,
29740
29748
  totalTimeoutMs,
29749
+ implementAgent,
29741
29750
  toolCtx,
29742
29751
  progressLabel
29743
29752
  });
@@ -29775,7 +29784,8 @@ async function executeProposal(args) {
29775
29784
  proposal,
29776
29785
  diff: diff.stdout,
29777
29786
  testOutput: result.testOutput ?? "(tests skipped)",
29778
- iterationTimeoutMs
29787
+ iterationTimeoutMs,
29788
+ reviewAgent
29779
29789
  });
29780
29790
  result.reviewOutput = reviewResult.output;
29781
29791
  if (reviewResult.blocked) {
@@ -29807,7 +29817,7 @@ async function rollback(cwd, originalBranch, branchName) {
29807
29817
  log(`evolve_exe: rolled back branch ${branchName}`);
29808
29818
  }
29809
29819
  async function runImplementation(args) {
29810
- const { ctx, internalSessions, proposal, projectInfo, maxIterations, iterationTimeoutMs, totalTimeoutMs, toolCtx, progressLabel } = args;
29820
+ const { ctx, internalSessions, proposal, projectInfo, maxIterations, iterationTimeoutMs, totalTimeoutMs, implementAgent, toolCtx, progressLabel } = args;
29811
29821
  const pipelineStart = Date.now();
29812
29822
  const sessionResp = await ctx.client.session.create({
29813
29823
  body: {},
@@ -29838,7 +29848,7 @@ async function runImplementation(args) {
29838
29848
  path: { id: sessionID },
29839
29849
  body: {
29840
29850
  parts: [{ type: "text", text: prompt }],
29841
- agent: "hephaestus"
29851
+ agent: implementAgent
29842
29852
  },
29843
29853
  query: { directory: ctx.directory }
29844
29854
  }), effectiveTimeout, `evolve_exe implementation iteration ${i + 1}`);
@@ -29892,7 +29902,7 @@ async function runImplementation(args) {
29892
29902
  }
29893
29903
  }
29894
29904
  async function runReview(args) {
29895
- const { ctx, internalSessions, proposal, diff, testOutput, iterationTimeoutMs } = args;
29905
+ const { ctx, internalSessions, proposal, diff, testOutput, iterationTimeoutMs, reviewAgent } = args;
29896
29906
  const sessionResp = await ctx.client.session.create({
29897
29907
  body: {},
29898
29908
  query: { directory: ctx.directory }
@@ -29907,7 +29917,7 @@ async function runReview(args) {
29907
29917
  path: { id: sessionID },
29908
29918
  body: {
29909
29919
  parts: [{ type: "text", text: prompt }],
29910
- agent: "momus"
29920
+ agent: reviewAgent
29911
29921
  },
29912
29922
  query: { directory: ctx.directory }
29913
29923
  }), iterationTimeoutMs, "evolve_exe review");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ultra",
3
- "version": "0.9.0",
3
+ "version": "0.9.1",
4
4
  "description": "Lightweight OpenCode 1.2.x plugin — ultrawork mode, multi-agent orchestration, rules injection",
5
5
  "keywords": [
6
6
  "opencode",