opencode-ultra 0.8.2 → 0.8.3

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 +14 -9
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -30288,12 +30288,18 @@ var OpenCodeUltra = async (ctx) => {
30288
30288
  })?.catch?.((err) => log("Toast failed", { error: err }));
30289
30289
  }
30290
30290
  pendingKeywords.set(input.sessionID, detected);
30291
+ const appendAnchor = (text) => {
30292
+ const lastText = [...output.parts].reverse().find((p) => p.type === "text");
30293
+ if (lastText) {
30294
+ lastText.text = (lastText.text || "") + text;
30295
+ }
30296
+ };
30291
30297
  const hasEvolve = detected.some((k) => k.type === "evolve");
30292
30298
  const hasEvolveExe = detected.some((k) => k.type === "evolve-exe");
30293
30299
  const hasEvolveScan = detected.some((k) => k.type === "evolve-scan");
30294
30300
  const hasEvolvePublish = detected.some((k) => k.type === "evolve-publish");
30295
30301
  if (hasEvolve) {
30296
- const anchor = `
30302
+ appendAnchor(`
30297
30303
 
30298
30304
  [EVOLVE MODE ACTIVATED \u2014 MANDATORY TOOL USAGE]
30299
30305
  You MUST follow the 5-phase evolve workflow injected in the system prompt.
@@ -30302,20 +30308,19 @@ Phase 2: COMPARE \u2014 Build a feature matrix (opencode-ultra column = Yes/No/P
30302
30308
  Phase 3: PROPOSE \u2014 Write EACH proposal as JSONL to .opencode/evolve-proposals.jsonl using the Write tool.
30303
30309
  Phase 4: SCORE \u2014 Call evolve_score({ markdown: "## Improvement: ...\\n**Priority**: ...\\n**Effort**: ..." }) for EVERY proposal.
30304
30310
  Phase 5: SAVE \u2014 Call ledger_save({ name: "evolve-scan-YYYY-MM-DD", content: "..." }).
30305
- DO NOT skip tools. Text-only output is FORBIDDEN. Every phase requires tool calls.`;
30306
- output.parts.push({ type: "text", text: anchor });
30311
+ DO NOT skip tools. Text-only output is FORBIDDEN. Every phase requires tool calls.`);
30307
30312
  } else if (hasEvolveExe) {
30308
- output.parts.push({ type: "text", text: `
30313
+ appendAnchor(`
30309
30314
 
30310
- [EVOLVE EXE \u2014 CALL THE TOOL NOW. Do not explain, do not research. Call evolve_exe immediately.]` });
30315
+ [EVOLVE EXE \u2014 CALL THE TOOL NOW. Do not explain, do not research. Call evolve_exe immediately.]`);
30311
30316
  } else if (hasEvolveScan) {
30312
- output.parts.push({ type: "text", text: `
30317
+ appendAnchor(`
30313
30318
 
30314
- [EVOLVE SCAN \u2014 CALL THE TOOL NOW. Call evolve_scan({}) immediately and show results.]` });
30319
+ [EVOLVE SCAN \u2014 CALL THE TOOL NOW. Call evolve_scan({}) immediately and show results.]`);
30315
30320
  } else if (hasEvolvePublish) {
30316
- output.parts.push({ type: "text", text: `
30321
+ appendAnchor(`
30317
30322
 
30318
- [EVOLVE PUBLISH \u2014 CALL THE TOOL NOW. Call evolve_publish immediately.]` });
30323
+ [EVOLVE PUBLISH \u2014 CALL THE TOOL NOW. Call evolve_publish immediately.]`);
30319
30324
  }
30320
30325
  if (hasUltrawork) {
30321
30326
  for (const part of output.parts) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-ultra",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Lightweight OpenCode 1.2.x plugin — ultrawork mode, multi-agent orchestration, rules injection",
5
5
  "keywords": [
6
6
  "opencode",