@hung319/opencode-hive 1.6.8 → 1.6.11

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/README.md CHANGED
@@ -41,7 +41,7 @@ export CXXFLAGS="-std=c++20"
41
41
  npm install @hung319/opencode-hive
42
42
  ```
43
43
 
44
- > ⚠️ **Note:** This plugin includes `@ast-grep/napi` which requires C++20 on Node.js v24. If installation fails, try:
44
+ > ⚠️ **Note:** This plugin optionally includes `@ast-grep/napi`, `@sparkleideas/agent-booster`, and `@sparkleideas/memory` which require C++20 on Node.js v24. If installation fails, the plugin still works (these are optional).
45
45
  > ```bash
46
46
  > export CXXFLAGS="-std=c++20"
47
47
  > npm install @hung319/opencode-hive
package/bin/doctor.ts CHANGED
@@ -113,6 +113,7 @@ function exists(cmd: string): boolean {
113
113
  function checkNpmPackage(name: string): CheckResult {
114
114
  const result: CheckResult = { name, installed: false };
115
115
 
116
+ // Check if package is installed
116
117
  try {
117
118
  const output = execSync(`npm list ${name} --depth=0 --json 2>/dev/null`, {
118
119
  encoding: 'utf-8',
@@ -125,6 +126,18 @@ function checkNpmPackage(name: string): CheckResult {
125
126
  }
126
127
  } catch {}
127
128
 
129
+ // Also check if module can be required (actual load test)
130
+ if (result.installed) {
131
+ try {
132
+ require(name);
133
+ result.installed = true;
134
+ } catch {
135
+ // Module installed but failed to load (e.g., native build failed)
136
+ result.installed = false;
137
+ result.version = `${result.version || '?'} (load failed)`;
138
+ }
139
+ }
140
+
128
141
  return result;
129
142
  }
130
143
 
@@ -308,10 +321,11 @@ function runDoctor(autoFix = false): DoctorOutput {
308
321
  }
309
322
  }
310
323
 
311
- // Check optional agent tools
324
+ // Check agent tools (bundled with plugin, externalized at build)
312
325
  const agentToolsList = [
313
326
  { name: '@sparkleideas/agent-booster', desc: '52x faster code editing' },
314
327
  { name: '@sparkleideas/memory', desc: 'Vector memory for semantic search' },
328
+ { name: '@ast-grep/napi', desc: 'AST-based pattern matching' },
315
329
  ];
316
330
 
317
331
  output.checks.agentTools.items = agentToolsList.map(t => checkNpmPackage(t.name));
package/dist/index.js CHANGED
@@ -1,35 +1,5 @@
1
1
  import { createRequire } from "node:module";
2
- var __create = Object.create;
3
- var __getProtoOf = Object.getPrototypeOf;
4
2
  var __defProp = Object.defineProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- function __accessProp(key) {
8
- return this[key];
9
- }
10
- var __toESMCache_node;
11
- var __toESMCache_esm;
12
- var __toESM = (mod, isNodeMode, target) => {
13
- var canCache = mod != null && typeof mod === "object";
14
- if (canCache) {
15
- var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
16
- var cached = cache.get(mod);
17
- if (cached)
18
- return cached;
19
- }
20
- target = mod != null ? __create(__getProtoOf(mod)) : {};
21
- const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
22
- for (let key of __getOwnPropNames(mod))
23
- if (!__hasOwnProp.call(to, key))
24
- __defProp(to, key, {
25
- get: __accessProp.bind(mod, key),
26
- enumerable: true
27
- });
28
- if (canCache)
29
- cache.set(mod, to);
30
- return to;
31
- };
32
- var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
33
3
  var __returnValue = (v) => v;
34
4
  function __exportSetter(name, newValue) {
35
5
  this[name] = __returnValue.bind(null, newValue);
@@ -46,195 +16,6 @@ var __export = (target, all) => {
46
16
  var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
47
17
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
48
18
 
49
- // ../../node_modules/.bun/@sparkleideas+agent-booster@0.2.34/node_modules/@sparkleideas/agent-booster/dist/index.js
50
- var require_dist = __commonJS((exports) => {
51
- var __dirname = "/home/runner/work/agent-hive/agent-hive/node_modules/.bun/@sparkleideas+agent-booster@0.2.34/node_modules/@sparkleideas/agent-booster/dist";
52
- var __createBinding = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) {
53
- if (k2 === undefined)
54
- k2 = k;
55
- var desc = Object.getOwnPropertyDescriptor(m, k);
56
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
57
- desc = { enumerable: true, get: function() {
58
- return m[k];
59
- } };
60
- }
61
- Object.defineProperty(o, k2, desc);
62
- } : function(o, m, k, k2) {
63
- if (k2 === undefined)
64
- k2 = k;
65
- o[k2] = m[k];
66
- });
67
- var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) {
68
- Object.defineProperty(o, "default", { enumerable: true, value: v });
69
- } : function(o, v) {
70
- o["default"] = v;
71
- });
72
- var __importStar = exports && exports.__importStar || function() {
73
- var ownKeys = function(o) {
74
- ownKeys = Object.getOwnPropertyNames || function(o2) {
75
- var ar = [];
76
- for (var k in o2)
77
- if (Object.prototype.hasOwnProperty.call(o2, k))
78
- ar[ar.length] = k;
79
- return ar;
80
- };
81
- return ownKeys(o);
82
- };
83
- return function(mod) {
84
- if (mod && mod.__esModule)
85
- return mod;
86
- var result = {};
87
- if (mod != null) {
88
- for (var k = ownKeys(mod), i = 0;i < k.length; i++)
89
- if (k[i] !== "default")
90
- __createBinding(result, mod, k[i]);
91
- }
92
- __setModuleDefault(result, mod);
93
- return result;
94
- };
95
- }();
96
- Object.defineProperty(exports, "__esModule", { value: true });
97
- exports.AgentBooster = undefined;
98
- exports.apply = apply;
99
- var path4 = __importStar(__require("path"));
100
- var wasmPath = path4.join(__dirname, "../wasm/agent_booster_wasm.js");
101
- var AgentBoosterWasm;
102
- try {
103
- AgentBoosterWasm = __require(wasmPath);
104
- } catch (e) {
105
- throw new Error(`Failed to load WASM module from ${wasmPath}: ${e}`);
106
- }
107
-
108
- class AgentBooster {
109
- constructor(config2 = {}) {
110
- this.config = {
111
- confidenceThreshold: config2.confidenceThreshold || 0.5,
112
- maxChunks: config2.maxChunks || 100
113
- };
114
- this.wasmInstance = new AgentBoosterWasm.AgentBoosterWasm;
115
- }
116
- async apply(request) {
117
- const startTime = Date.now();
118
- try {
119
- if (!request.edit || request.edit.trim().length === 0) {
120
- throw new Error("Edit instruction cannot be empty. Provide specific code snippet or transformation.");
121
- }
122
- const vaguePhrases = [
123
- "make it better",
124
- "improve",
125
- "optimize",
126
- "fix",
127
- "refactor",
128
- "add feature",
129
- "implement",
130
- "create",
131
- "design",
132
- "build",
133
- "handle",
134
- "manage",
135
- "process",
136
- "support"
137
- ];
138
- const isVague = vaguePhrases.some((phrase) => request.edit.toLowerCase().includes(phrase) && !request.edit.includes("{") && !request.edit.includes("function") && !request.edit.includes("const") && !request.edit.includes("class"));
139
- if (isVague) {
140
- throw new Error(`Vague instruction detected: "${request.edit}". Agent Booster requires specific code snippets, not high-level instructions. Use an LLM for vague tasks.`);
141
- }
142
- const result = this.wasmInstance.apply_edit(request.code, request.edit, request.language || "javascript", this.config.confidenceThreshold);
143
- const latency = Date.now() - startTime;
144
- if (process.env.DEBUG_AGENT_BOOSTER) {
145
- console.log("WASM result:", {
146
- type: typeof result,
147
- confidence: result.confidence,
148
- strategy: result.strategy,
149
- merged_code_length: result.merged_code?.length
150
- });
151
- }
152
- const confidence = this.getConfidence(result);
153
- const strategy = this.getStrategy(result);
154
- const mergedCode = this.getMergedCode(result);
155
- const inputTokens = Math.ceil(request.code.length / 4);
156
- const outputTokens = Math.ceil(mergedCode.length / 4);
157
- return {
158
- output: mergedCode,
159
- success: confidence > this.config.confidenceThreshold,
160
- latency,
161
- tokens: {
162
- input: inputTokens,
163
- output: outputTokens
164
- },
165
- confidence,
166
- strategy: this.strategyToString(strategy)
167
- };
168
- } catch (error45) {
169
- const latency = Date.now() - startTime;
170
- if (process.env.DEBUG_AGENT_BOOSTER) {
171
- console.error("Error in apply():", error45.message || error45);
172
- }
173
- return {
174
- output: request.code,
175
- success: false,
176
- latency,
177
- tokens: { input: 0, output: 0 },
178
- confidence: 0,
179
- strategy: "failed"
180
- };
181
- }
182
- }
183
- async batchApply(requests) {
184
- return Promise.all(requests.map((req) => this.apply(req)));
185
- }
186
- getConfidence(result) {
187
- if (typeof result === "object" && result !== null) {
188
- if (typeof result.confidence === "number")
189
- return result.confidence;
190
- if (typeof result.get_confidence === "function")
191
- return result.get_confidence();
192
- }
193
- return 0.5;
194
- }
195
- getStrategy(result) {
196
- if (typeof result === "object" && result !== null) {
197
- if (typeof result.strategy === "number")
198
- return result.strategy;
199
- if (typeof result.strategy === "string")
200
- return result.strategy;
201
- if (typeof result.get_strategy === "function")
202
- return result.get_strategy();
203
- }
204
- return 2;
205
- }
206
- getMergedCode(result) {
207
- if (typeof result === "object" && result !== null) {
208
- if (typeof result.merged_code === "string")
209
- return result.merged_code;
210
- if (typeof result.get_merged_code === "function")
211
- return result.get_merged_code();
212
- if (typeof result.code === "string")
213
- return result.code;
214
- }
215
- return "";
216
- }
217
- strategyToString(strategy) {
218
- if (typeof strategy === "string")
219
- return strategy;
220
- const strategies = {
221
- 0: "exact_replace",
222
- 1: "fuzzy_replace",
223
- 2: "insert_after",
224
- 3: "insert_before",
225
- 4: "append"
226
- };
227
- return strategies[strategy] || "unknown";
228
- }
229
- }
230
- exports.AgentBooster = AgentBooster;
231
- async function apply(request) {
232
- const booster = new AgentBooster;
233
- return booster.apply(request);
234
- }
235
- exports.default = AgentBooster;
236
- });
237
-
238
19
  // src/utils/context-compression.ts
239
20
  var exports_context_compression = {};
240
21
  __export(exports_context_compression, {
@@ -17209,7 +16990,7 @@ async function initBooster() {
17209
16990
  }
17210
16991
  boosterInitPromise = (async () => {
17211
16992
  try {
17212
- const booster = require_dist();
16993
+ const booster = __require("@sparkleideas/agent-booster");
17213
16994
  if (booster && typeof booster.init === "function") {
17214
16995
  await booster.init();
17215
16996
  boosterInstance = booster;
@@ -17326,7 +17107,7 @@ async function getBoosterStatus() {
17326
17107
  return { available: false };
17327
17108
  }
17328
17109
  try {
17329
- const booster = await Promise.resolve().then(() => __toESM(require_dist(), 1));
17110
+ const booster = await import("@sparkleideas/agent-booster");
17330
17111
  return {
17331
17112
  available: true,
17332
17113
  version: booster.version || "unknown"
@@ -17467,7 +17248,7 @@ async function initMemory(options) {
17467
17248
  }
17468
17249
  memoryInitPromise = (async () => {
17469
17250
  try {
17470
- const memory = (()=>{throw new Error("Cannot require module "+"@sparkleideas/memory");})();
17251
+ const memory = __require("@sparkleideas/memory");
17471
17252
  const indexPath = options?.indexPath || path5.join(os2.homedir(), ".config", "opencode", "hive", "vector-index");
17472
17253
  const dimensions = options?.dimensions || 384;
17473
17254
  fs4.mkdirSync(indexPath, { recursive: true });
@@ -19838,39 +19619,39 @@ import * as path8 from "path";
19838
19619
  import { existsSync as existsSync52 } from "fs";
19839
19620
  import { join as join92, sep } from "path";
19840
19621
  import { execSync as execSync5 } from "child_process";
19841
- var __create2 = Object.create;
19842
- var __getProtoOf2 = Object.getPrototypeOf;
19622
+ var __create = Object.create;
19623
+ var __getProtoOf = Object.getPrototypeOf;
19843
19624
  var __defProp2 = Object.defineProperty;
19844
- var __getOwnPropNames2 = Object.getOwnPropertyNames;
19845
- var __hasOwnProp2 = Object.prototype.hasOwnProperty;
19846
- function __accessProp2(key) {
19625
+ var __getOwnPropNames = Object.getOwnPropertyNames;
19626
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
19627
+ function __accessProp(key) {
19847
19628
  return this[key];
19848
19629
  }
19849
- var __toESMCache_node2;
19850
- var __toESMCache_esm2;
19851
- var __toESM2 = (mod, isNodeMode, target) => {
19630
+ var __toESMCache_node;
19631
+ var __toESMCache_esm;
19632
+ var __toESM = (mod, isNodeMode, target) => {
19852
19633
  var canCache = mod != null && typeof mod === "object";
19853
19634
  if (canCache) {
19854
- var cache = isNodeMode ? __toESMCache_node2 ??= new WeakMap : __toESMCache_esm2 ??= new WeakMap;
19635
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
19855
19636
  var cached2 = cache.get(mod);
19856
19637
  if (cached2)
19857
19638
  return cached2;
19858
19639
  }
19859
- target = mod != null ? __create2(__getProtoOf2(mod)) : {};
19640
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
19860
19641
  const to = isNodeMode || !mod || !mod.__esModule ? __defProp2(target, "default", { value: mod, enumerable: true }) : target;
19861
- for (let key of __getOwnPropNames2(mod))
19862
- if (!__hasOwnProp2.call(to, key))
19642
+ for (let key of __getOwnPropNames(mod))
19643
+ if (!__hasOwnProp.call(to, key))
19863
19644
  __defProp2(to, key, {
19864
- get: __accessProp2.bind(mod, key),
19645
+ get: __accessProp.bind(mod, key),
19865
19646
  enumerable: true
19866
19647
  });
19867
19648
  if (canCache)
19868
19649
  cache.set(mod, to);
19869
19650
  return to;
19870
19651
  };
19871
- var __commonJS2 = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
19652
+ var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
19872
19653
  var __require2 = /* @__PURE__ */ createRequire2(import.meta.url);
19873
- var require_ms = __commonJS2((exports, module) => {
19654
+ var require_ms = __commonJS((exports, module) => {
19874
19655
  var s = 1000;
19875
19656
  var m = s * 60;
19876
19657
  var h = m * 60;
@@ -19978,7 +19759,7 @@ var require_ms = __commonJS2((exports, module) => {
19978
19759
  return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
19979
19760
  }
19980
19761
  });
19981
- var require_common = __commonJS2((exports, module) => {
19762
+ var require_common = __commonJS((exports, module) => {
19982
19763
  function setup(env) {
19983
19764
  createDebug.debug = createDebug;
19984
19765
  createDebug.default = createDebug;
@@ -20151,7 +19932,7 @@ var require_common = __commonJS2((exports, module) => {
20151
19932
  }
20152
19933
  module.exports = setup;
20153
19934
  });
20154
- var require_browser = __commonJS2((exports, module) => {
19935
+ var require_browser = __commonJS((exports, module) => {
20155
19936
  exports.formatArgs = formatArgs;
20156
19937
  exports.save = save;
20157
19938
  exports.load = load;
@@ -20309,7 +20090,112 @@ var require_browser = __commonJS2((exports, module) => {
20309
20090
  }
20310
20091
  };
20311
20092
  });
20312
- var require_node = __commonJS2((exports, module) => {
20093
+ var require_has_flag = __commonJS((exports, module) => {
20094
+ module.exports = (flag, argv = process.argv) => {
20095
+ const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--";
20096
+ const position = argv.indexOf(prefix + flag);
20097
+ const terminatorPosition = argv.indexOf("--");
20098
+ return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);
20099
+ };
20100
+ });
20101
+ var require_supports_color = __commonJS((exports, module) => {
20102
+ var os22 = __require2("os");
20103
+ var tty = __require2("tty");
20104
+ var hasFlag = require_has_flag();
20105
+ var { env } = process;
20106
+ var forceColor;
20107
+ if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) {
20108
+ forceColor = 0;
20109
+ } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) {
20110
+ forceColor = 1;
20111
+ }
20112
+ if ("FORCE_COLOR" in env) {
20113
+ if (env.FORCE_COLOR === "true") {
20114
+ forceColor = 1;
20115
+ } else if (env.FORCE_COLOR === "false") {
20116
+ forceColor = 0;
20117
+ } else {
20118
+ forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);
20119
+ }
20120
+ }
20121
+ function translateLevel(level) {
20122
+ if (level === 0) {
20123
+ return false;
20124
+ }
20125
+ return {
20126
+ level,
20127
+ hasBasic: true,
20128
+ has256: level >= 2,
20129
+ has16m: level >= 3
20130
+ };
20131
+ }
20132
+ function supportsColor(haveStream, streamIsTTY) {
20133
+ if (forceColor === 0) {
20134
+ return 0;
20135
+ }
20136
+ if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) {
20137
+ return 3;
20138
+ }
20139
+ if (hasFlag("color=256")) {
20140
+ return 2;
20141
+ }
20142
+ if (haveStream && !streamIsTTY && forceColor === undefined) {
20143
+ return 0;
20144
+ }
20145
+ const min = forceColor || 0;
20146
+ if (env.TERM === "dumb") {
20147
+ return min;
20148
+ }
20149
+ if (process.platform === "win32") {
20150
+ const osRelease = os22.release().split(".");
20151
+ if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
20152
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
20153
+ }
20154
+ return 1;
20155
+ }
20156
+ if ("CI" in env) {
20157
+ if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => (sign in env)) || env.CI_NAME === "codeship") {
20158
+ return 1;
20159
+ }
20160
+ return min;
20161
+ }
20162
+ if ("TEAMCITY_VERSION" in env) {
20163
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
20164
+ }
20165
+ if (env.COLORTERM === "truecolor") {
20166
+ return 3;
20167
+ }
20168
+ if ("TERM_PROGRAM" in env) {
20169
+ const version2 = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10);
20170
+ switch (env.TERM_PROGRAM) {
20171
+ case "iTerm.app":
20172
+ return version2 >= 3 ? 3 : 2;
20173
+ case "Apple_Terminal":
20174
+ return 2;
20175
+ }
20176
+ }
20177
+ if (/-256(color)?$/i.test(env.TERM)) {
20178
+ return 2;
20179
+ }
20180
+ if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
20181
+ return 1;
20182
+ }
20183
+ if ("COLORTERM" in env) {
20184
+ return 1;
20185
+ }
20186
+ return min;
20187
+ }
20188
+ function getSupportLevel(stream) {
20189
+ const level = supportsColor(stream, stream && stream.isTTY);
20190
+ return translateLevel(level);
20191
+ }
20192
+ module.exports = {
20193
+ supportsColor: getSupportLevel,
20194
+ stdout: translateLevel(supportsColor(true, tty.isatty(1))),
20195
+ stderr: translateLevel(supportsColor(true, tty.isatty(2)))
20196
+ };
20197
+ });
20198
+ var require_node = __commonJS((exports, module) => {
20313
20199
  var tty = __require2("tty");
20314
20200
  var util = __require2("util");
20315
20201
  exports.init = init;
@@ -20321,9 +20207,7 @@ var require_node = __commonJS2((exports, module) => {
20321
20207
  exports.destroy = util.deprecate(() => {}, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
20322
20208
  exports.colors = [6, 2, 3, 4, 5, 1];
20323
20209
  try {
20324
- const supportsColor = (() => {
20325
- throw new Error("Cannot require module " + "supports-color");
20326
- })();
20210
+ const supportsColor = require_supports_color();
20327
20211
  if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
20328
20212
  exports.colors = [
20329
20213
  20,
@@ -20480,14 +20364,14 @@ var require_node = __commonJS2((exports, module) => {
20480
20364
  return util.inspect(v, this.inspectOpts);
20481
20365
  };
20482
20366
  });
20483
- var require_src = __commonJS2((exports, module) => {
20367
+ var require_src = __commonJS((exports, module) => {
20484
20368
  if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
20485
20369
  module.exports = require_browser();
20486
20370
  } else {
20487
20371
  module.exports = require_node();
20488
20372
  }
20489
20373
  });
20490
- var require_src2 = __commonJS2((exports) => {
20374
+ var require_src2 = __commonJS((exports) => {
20491
20375
  var __importDefault = exports && exports.__importDefault || function(mod) {
20492
20376
  return mod && mod.__esModule ? mod : { default: mod };
20493
20377
  };
@@ -20526,7 +20410,7 @@ var require_src2 = __commonJS2((exports) => {
20526
20410
  exports.FOLDER = 2;
20527
20411
  exports.READABLE = exports.FILE + exports.FOLDER;
20528
20412
  });
20529
- var require_dist2 = __commonJS2((exports) => {
20413
+ var require_dist = __commonJS((exports) => {
20530
20414
  function __export2(m) {
20531
20415
  for (var p in m)
20532
20416
  if (!exports.hasOwnProperty(p))
@@ -20535,7 +20419,7 @@ var require_dist2 = __commonJS2((exports) => {
20535
20419
  Object.defineProperty(exports, "__esModule", { value: true });
20536
20420
  __export2(require_src2());
20537
20421
  });
20538
- var require_dist22 = __commonJS2((exports) => {
20422
+ var require_dist2 = __commonJS((exports) => {
20539
20423
  Object.defineProperty(exports, "__esModule", { value: true });
20540
20424
  exports.createDeferred = exports.deferred = undefined;
20541
20425
  function deferred() {
@@ -21682,19 +21566,19 @@ _Add detailed instructions here_
21682
21566
  return name.toLowerCase().replace(/\s+/g, "-").replace(/[^a-z0-9-]/g, "");
21683
21567
  }
21684
21568
  }
21685
- var import_file_exists = __toESM2(require_dist2(), 1);
21686
- var import_debug = __toESM2(require_src(), 1);
21687
- var import_promise_deferred = __toESM2(require_dist22(), 1);
21688
- var import_promise_deferred2 = __toESM2(require_dist22(), 1);
21569
+ var import_file_exists = __toESM(require_dist(), 1);
21570
+ var import_debug = __toESM(require_src(), 1);
21571
+ var import_promise_deferred = __toESM(require_dist2(), 1);
21572
+ var import_promise_deferred2 = __toESM(require_dist2(), 1);
21689
21573
  var __defProp22 = Object.defineProperty;
21690
21574
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
21691
- var __getOwnPropNames22 = Object.getOwnPropertyNames;
21692
- var __hasOwnProp22 = Object.prototype.hasOwnProperty;
21575
+ var __getOwnPropNames2 = Object.getOwnPropertyNames;
21576
+ var __hasOwnProp2 = Object.prototype.hasOwnProperty;
21693
21577
  var __esm2 = (fn, res) => function __init() {
21694
- return fn && (res = (0, fn[__getOwnPropNames22(fn)[0]])(fn = 0)), res;
21578
+ return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;
21695
21579
  };
21696
- var __commonJS22 = (cb, mod) => function __require22() {
21697
- return mod || (0, cb[__getOwnPropNames22(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
21580
+ var __commonJS2 = (cb, mod) => function __require22() {
21581
+ return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
21698
21582
  };
21699
21583
  var __export2 = (target, all) => {
21700
21584
  for (var name in all)
@@ -21702,8 +21586,8 @@ var __export2 = (target, all) => {
21702
21586
  };
21703
21587
  var __copyProps = (to, from, except, desc) => {
21704
21588
  if (from && typeof from === "object" || typeof from === "function") {
21705
- for (let key of __getOwnPropNames22(from))
21706
- if (!__hasOwnProp22.call(to, key) && key !== except)
21589
+ for (let key of __getOwnPropNames2(from))
21590
+ if (!__hasOwnProp2.call(to, key) && key !== except)
21707
21591
  __defProp22(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21708
21592
  }
21709
21593
  return to;
@@ -25040,7 +24924,7 @@ var init_tag = __esm2({
25040
24924
  init_TagList();
25041
24925
  }
25042
24926
  });
25043
- var require_git = __commonJS22({
24927
+ var require_git = __commonJS2({
25044
24928
  "src/git.js"(exports, module) {
25045
24929
  var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports));
25046
24930
  var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hung319/opencode-hive",
3
- "version": "1.6.8",
3
+ "version": "1.6.11",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Agent Hive - from vibe coding to hive coding",
6
6
  "license": "MIT WITH Commons-Clause",
@@ -31,7 +31,7 @@
31
31
  "scripts": {
32
32
  "clean": "rm -rf dist",
33
33
  "generate-skills": "bun run scripts/generate-skills.ts",
34
- "build": "npm run clean && npm run generate-skills && bun build src/index.ts --outdir dist --target node --format esm --packages=bundle --external @ast-grep/napi && tsc --emitDeclarationOnly",
34
+ "build": "npm run clean && npm run generate-skills && bun build src/index.ts --outdir dist --target node --format esm --packages=bundle --external @ast-grep/napi --external @sparkleideas/agent-booster --external @sparkleideas/memory --external simple-git && tsc --emitDeclarationOnly",
35
35
  "dev": "opencode plugin dev",
36
36
  "test": "bun test"
37
37
  },
@@ -39,15 +39,15 @@
39
39
  "@opencode-ai/plugin": ">=0.13.7"
40
40
  },
41
41
  "dependencies": {
42
- "@ast-grep/napi": "^0.41.1",
42
+ "@sparkleideas/agent-booster": "^0.2.3",
43
43
  "simple-git": "^3.27.0"
44
44
  },
45
45
  "optionalDependencies": {
46
+ "@ast-grep/napi": "^0.41.1",
47
+ "@sparkleideas/memory": "3.0.0-alpha.11-patch.30",
46
48
  "grep-mcp": "^1.1.0",
47
49
  "@upstash/context7-mcp": "^2.1.0",
48
50
  "exa-mcp-server": "^3.1.5",
49
- "@sparkleideas/agent-booster": "^0.2.3",
50
- "@sparkleideas/memory": "^3.5.2",
51
51
  "@paretools/search": "^0.15.0",
52
52
  "@ushiradineth/veil": "^0.4.1",
53
53
  "@butttons/dora": "^0.1.0",