@hung319/opencode-hive 1.6.8 → 1.6.10
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 +1 -1
- package/bin/doctor.ts +15 -1
- package/dist/index.js +143 -259
- package/package.json +4 -4
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
|
|
44
|
+
> ⚠️ **Note:** This plugin includes `@ast-grep/napi`, `@sparkleideas/agent-booster`, and `@sparkleideas/memory` which require C++20 on Node.js v24. If installation fails, try:
|
|
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
|
|
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 =
|
|
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
|
|
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 = (
|
|
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
|
|
19842
|
-
var
|
|
19622
|
+
var __create = Object.create;
|
|
19623
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
19843
19624
|
var __defProp2 = Object.defineProperty;
|
|
19844
|
-
var
|
|
19845
|
-
var
|
|
19846
|
-
function
|
|
19625
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
19626
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
19627
|
+
function __accessProp(key) {
|
|
19847
19628
|
return this[key];
|
|
19848
19629
|
}
|
|
19849
|
-
var
|
|
19850
|
-
var
|
|
19851
|
-
var
|
|
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 ?
|
|
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 ?
|
|
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
|
|
19862
|
-
if (!
|
|
19642
|
+
for (let key of __getOwnPropNames(mod))
|
|
19643
|
+
if (!__hasOwnProp.call(to, key))
|
|
19863
19644
|
__defProp2(to, key, {
|
|
19864
|
-
get:
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
21686
|
-
var import_debug =
|
|
21687
|
-
var import_promise_deferred =
|
|
21688
|
-
var import_promise_deferred2 =
|
|
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
|
|
21692
|
-
var
|
|
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[
|
|
21578
|
+
return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;
|
|
21695
21579
|
};
|
|
21696
|
-
var
|
|
21697
|
-
return mod || (0, cb[
|
|
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
|
|
21706
|
-
if (!
|
|
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 =
|
|
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.
|
|
3
|
+
"version": "1.6.10",
|
|
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
|
},
|
|
@@ -40,14 +40,14 @@
|
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@ast-grep/napi": "^0.41.1",
|
|
43
|
+
"@sparkleideas/agent-booster": "^0.2.3",
|
|
43
44
|
"simple-git": "^3.27.0"
|
|
44
45
|
},
|
|
45
46
|
"optionalDependencies": {
|
|
47
|
+
"@sparkleideas/memory": "^3.0.0-alpha.11",
|
|
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",
|