opencode-swarm 7.78.2 → 7.78.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.
package/dist/cli/index.js CHANGED
@@ -52,7 +52,7 @@ var package_default;
52
52
  var init_package = __esm(() => {
53
53
  package_default = {
54
54
  name: "opencode-swarm",
55
- version: "7.78.2",
55
+ version: "7.78.3",
56
56
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
57
57
  main: "dist/index.js",
58
58
  types: "dist/index.d.ts",
@@ -38738,14 +38738,14 @@ async function computeLearningMetrics(directory, options) {
38738
38738
  const now = options?.now ?? new Date;
38739
38739
  const nowMs = now.getTime();
38740
38740
  const phasesThreshold = options?.currentPhase ?? DEFAULT_PHASES_ALIVE_THRESHOLD;
38741
- const [events, entries] = await Promise.all([
38741
+ const [events, entries, rollups] = await Promise.all([
38742
38742
  readKnowledgeEvents(directory),
38743
- readKnowledge(resolveSwarmKnowledgePath(directory))
38743
+ readKnowledge(resolveSwarmKnowledgePath(directory)),
38744
+ readKnowledgeCounterRollups(directory)
38744
38745
  ]);
38745
38746
  if (events.length === 0 && entries.length === 0) {
38746
38747
  return emptyMetrics();
38747
38748
  }
38748
- const rollups = recomputeCounters(events);
38749
38749
  const entryMap = new Map;
38750
38750
  for (const entry of entries) {
38751
38751
  entryMap.set(entry.id, entry);
package/dist/index.js CHANGED
@@ -69,7 +69,7 @@ var package_default;
69
69
  var init_package = __esm(() => {
70
70
  package_default = {
71
71
  name: "opencode-swarm",
72
- version: "7.78.2",
72
+ version: "7.78.3",
73
73
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
74
74
  main: "dist/index.js",
75
75
  types: "dist/index.d.ts",
@@ -60990,14 +60990,14 @@ async function computeLearningMetrics(directory, options) {
60990
60990
  const now = options?.now ?? new Date;
60991
60991
  const nowMs = now.getTime();
60992
60992
  const phasesThreshold = options?.currentPhase ?? DEFAULT_PHASES_ALIVE_THRESHOLD;
60993
- const [events, entries] = await Promise.all([
60993
+ const [events, entries, rollups] = await Promise.all([
60994
60994
  readKnowledgeEvents(directory),
60995
- readKnowledge(resolveSwarmKnowledgePath(directory))
60995
+ readKnowledge(resolveSwarmKnowledgePath(directory)),
60996
+ readKnowledgeCounterRollups(directory)
60996
60997
  ]);
60997
60998
  if (events.length === 0 && entries.length === 0) {
60998
60999
  return emptyMetrics();
60999
61000
  }
61000
- const rollups = recomputeCounters(events);
61001
61001
  const entryMap = new Map;
61002
61002
  for (const entry of entries) {
61003
61003
  entryMap.set(entry.id, entry);
@@ -103182,12 +103182,14 @@ async function searchKnowledge(params) {
103182
103182
  const triggerRecallBoost = triggerRecallHit ? TRIGGER_RECALL_BOOST : 0;
103183
103183
  const finalScore = Math.min(1, Math.max(0, textWeight * textScore + metaWeight * metaScore + ds.score + confBoost + generatedSkillBoost + outcomeBoost + coldStartBonus + synonymBoost + triggerRecallBoost + (hasQuery ? statusBoost(entry.status) : 0)));
103184
103184
  const isCritical = entry.directive_priority === "critical" && (ds.triggerHit || ds.actionHit || ds.agentHit);
103185
+ const isForceHive = forceReadHive && entry.tier === "hive";
103185
103186
  return {
103186
103187
  ...entry,
103187
103188
  retrieval_outcomes: retrievalOutcomes,
103188
103189
  finalScore,
103189
103190
  coldStartBoost: coldStartBonus,
103190
- __critical: isCritical
103191
+ __critical: isCritical,
103192
+ __forceHive: isForceHive
103191
103193
  };
103192
103194
  });
103193
103195
  scored.sort((a, b) => {
@@ -103206,6 +103208,14 @@ async function searchKnowledge(params) {
103206
103208
  seen.add(e.id);
103207
103209
  }
103208
103210
  }
103211
+ for (const e of scored) {
103212
+ if (top.length >= max)
103213
+ break;
103214
+ if (e.__forceHive && !seen.has(e.id)) {
103215
+ top.push(e);
103216
+ seen.add(e.id);
103217
+ }
103218
+ }
103209
103219
  const lambda = clampLambda(config3.retrieval?.mmr_lambda);
103210
103220
  const remaining = scored.filter((e) => !seen.has(e.id));
103211
103221
  const selected = mmrRerank(remaining, top, max, lambda);
@@ -103217,7 +103227,7 @@ async function searchKnowledge(params) {
103217
103227
  seen.add(e.id);
103218
103228
  }
103219
103229
  }
103220
- results = top.map(({ __critical: _c, ...rest }) => rest);
103230
+ results = top.map(({ __critical: _c, __forceHive: _f, ...rest }) => rest);
103221
103231
  } catch (err2) {
103222
103232
  warn(`[search-knowledge] retrieval failed: ${err2 instanceof Error ? err2.message : String(err2)}`);
103223
103233
  results = [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm",
3
- "version": "7.78.2",
3
+ "version": "7.78.3",
4
4
  "description": "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",