harness-bujang 0.7.0 → 0.7.2
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.
|
@@ -216,7 +216,7 @@ async function runInit(args) {
|
|
|
216
216
|
opts = await promptInteractive(opts, scan);
|
|
217
217
|
if (await isExistingInstall(opts.target)) {
|
|
218
218
|
const overwrite = await confirm({
|
|
219
|
-
message: "
|
|
219
|
+
message: "\uAE30\uC874 \uD558\uB124\uC2A4 \uC124\uCE58\uAC00 \uAC10\uC9C0\uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uC120\uD0DD\uD55C \uC124\uC815\uC744 \uC801\uC6A9\uD558\uAE30 \uC704\uD574 \uBAA8\uB4E0 \uD30C\uC77C\uC744 \uB36E\uC5B4\uC4F8\uAE4C\uC694?",
|
|
220
220
|
default: false
|
|
221
221
|
});
|
|
222
222
|
if (overwrite) opts.yes = true;
|
|
@@ -241,7 +241,7 @@ async function runInit(args) {
|
|
|
241
241
|
console.log();
|
|
242
242
|
if (interactive) {
|
|
243
243
|
try {
|
|
244
|
-
const proceed = await confirm({ message: "
|
|
244
|
+
const proceed = await confirm({ message: "\uC774 \uC124\uC815\uC73C\uB85C \uC9C4\uD589\uD560\uAE4C\uC694?", default: true });
|
|
245
245
|
if (!proceed) {
|
|
246
246
|
console.log(c.dim(" (aborted)"));
|
|
247
247
|
return;
|
|
@@ -453,25 +453,26 @@ function printRestartReminder(lang) {
|
|
|
453
453
|
}
|
|
454
454
|
async function promptInteractive(opts, scan) {
|
|
455
455
|
const lang = await select({
|
|
456
|
-
message: "
|
|
456
|
+
message: "\uC5D0\uC774\uC804\uD2B8 \uC5B8\uC5B4 / Agent language",
|
|
457
457
|
choices: [
|
|
458
|
-
{ name: "\uD55C\uAD6D\uC5B4 \u2014
|
|
459
|
-
{ name: "English", value: "en" }
|
|
458
|
+
{ name: "\uD55C\uAD6D\uC5B4 \u2014 \uBD80\uC7A5 \uD398\uB974\uC18C\uB098 \uD480 (Korean)", value: "ko" },
|
|
459
|
+
{ name: "English \u2014 Director persona", value: "en" }
|
|
460
460
|
],
|
|
461
461
|
default: opts.lang
|
|
462
462
|
});
|
|
463
463
|
const chatBackend = await select({
|
|
464
|
-
message: "
|
|
464
|
+
message: "\uD1A1\uBC29 \uBC31\uC5D4\uB4DC",
|
|
465
465
|
choices: [
|
|
466
|
-
{ name: "SQLite \u2014
|
|
467
|
-
{ name: "Supabase \u2014
|
|
466
|
+
{ name: "SQLite \u2014 \uB85C\uCEEC \uD30C\uC77C, \uC14B\uC5C5 \uBD88\uD544\uC694 (\uCD94\uCC9C)", value: "sqlite" },
|
|
467
|
+
{ name: "Supabase \u2014 \uD074\uB77C\uC6B0\uB4DC Postgres (\uD300 \uACF5\uC720\uC6A9)", value: "supabase" }
|
|
468
468
|
],
|
|
469
469
|
default: opts.chatBackend
|
|
470
470
|
});
|
|
471
471
|
const isPreset = (t) => opts.adapters.includes(t);
|
|
472
|
-
const
|
|
473
|
-
message: "
|
|
472
|
+
const adaptersRaw = await checkbox({
|
|
473
|
+
message: "\uB3C4\uAD6C \uC120\uD0DD \u2014 Claude Code \uB294 \uC790\uB3D9 \uC124\uCE58 (\uD544\uC218). \uCD94\uAC00 \uB3C4\uAD6C \uC5C6\uC73C\uBA74 \uADF8\uB0E5 Enter.",
|
|
474
474
|
choices: [
|
|
475
|
+
{ name: "Claude Code (.claude/agents/) \u2014 \uC790\uB3D9 \uC124\uCE58 (\uD544\uC218)", value: "claude", checked: true, disabled: "(\uC790\uB3D9)" },
|
|
475
476
|
{ name: "Cursor (.cursor/rules/bujang-*.mdc)", value: "cursor", checked: isPreset("cursor") },
|
|
476
477
|
{ name: "Codex / Copilot (AGENTS.md)", value: "codex", checked: isPreset("codex") },
|
|
477
478
|
{ name: "Cline (.clinerules/bujang-*.md)", value: "cline", checked: isPreset("cline") },
|
|
@@ -480,14 +481,15 @@ async function promptInteractive(opts, scan) {
|
|
|
480
481
|
],
|
|
481
482
|
required: false
|
|
482
483
|
});
|
|
484
|
+
const adapters = adaptersRaw.filter((t) => t !== "claude");
|
|
483
485
|
const preset = await select({
|
|
484
|
-
message: "
|
|
486
|
+
message: "\uC5D0\uC774\uC804\uD2B8\uBCC4 Claude \uBAA8\uB378? (.claude/agents/ \uC5D0\uB9CC \uC801\uC6A9 \u2014 \uB2E4\uB978 \uB3C4\uAD6C\uB294 \uC790\uCCB4 \uBAA8\uB378 \uAD00\uB9AC)",
|
|
485
487
|
choices: [
|
|
486
|
-
{ name: "balanced \u2014 opus / sonnet / haiku
|
|
487
|
-
{ name: "keep \u2014
|
|
488
|
-
{ name: "cost \u2014
|
|
489
|
-
{ name: "quality \u2014
|
|
490
|
-
{ name: "custom \u2014
|
|
488
|
+
{ name: "balanced \u2014 opus / sonnet / haiku \uADE0\uD615 \uB9E4\uD551 (\uCD94\uCC9C, \uBE44\uC6A9 ~60% \uC808\uAC10)", value: "balanced" },
|
|
489
|
+
{ name: "keep \u2014 \uAC01 \uC5D0\uC774\uC804\uD2B8 \uAE30\uBCF8 \uBAA8\uB378 \uADF8\uB300\uB85C", value: "keep" },
|
|
490
|
+
{ name: "cost \u2014 \uC804\uBD80 haiku (\uAC00\uC7A5 \uC800\uB834, \uBE60\uB984)", value: "cost" },
|
|
491
|
+
{ name: "quality \u2014 \uC804\uBD80 opus (\uAC00\uC7A5 \uBE44\uC2F8\uACE0, \uD488\uC9C8 \uCD5C\uC0C1)", value: "quality" },
|
|
492
|
+
{ name: "custom \u2014 \uC5D0\uC774\uC804\uD2B8\uBCC4 \uC9C1\uC811 \uC120\uD0DD (18\uAC1C prompt)", value: "custom" }
|
|
491
493
|
],
|
|
492
494
|
default: "balanced"
|
|
493
495
|
});
|
|
@@ -500,7 +502,7 @@ async function promptInteractive(opts, scan) {
|
|
|
500
502
|
let installTemplate = opts.installTemplate;
|
|
501
503
|
if (scan.framework.startsWith("Next.js") && opts.installTemplate) {
|
|
502
504
|
installTemplate = await confirm({
|
|
503
|
-
message: "
|
|
505
|
+
message: "\uD1A1\uBC29 UI \uC124\uCE58? (Next.js admin \uB77C\uC6B0\uD2B8 /admin/harness)",
|
|
504
506
|
default: true
|
|
505
507
|
});
|
|
506
508
|
}
|
|
@@ -510,14 +512,14 @@ async function promptCustomModelMap() {
|
|
|
510
512
|
const out = {};
|
|
511
513
|
const slugs = Object.keys(BALANCED_MAPPING);
|
|
512
514
|
console.log();
|
|
513
|
-
console.log(c.dim(` Custom
|
|
515
|
+
console.log(c.dim(` Custom \uB9E4\uD551 \u2014 ${slugs.length}\uAC1C \uC5D0\uC774\uC804\uD2B8\uB9C8\uB2E4 \uBAA8\uB378\uC744 \uC120\uD0DD\uD574\uC8FC\uC138\uC694.`));
|
|
514
516
|
for (const slug of slugs) {
|
|
515
517
|
const tier = await select({
|
|
516
518
|
message: `${slug.padEnd(20)}`,
|
|
517
519
|
choices: [
|
|
518
|
-
{ name: "opus (
|
|
519
|
-
{ name: "sonnet (
|
|
520
|
-
{ name: "haiku (
|
|
520
|
+
{ name: "opus (\uAC00\uC7A5 \uB611\uB611, \uBE44\uC2FC)", value: "opus" },
|
|
521
|
+
{ name: "sonnet (\uADE0\uD615)", value: "sonnet" },
|
|
522
|
+
{ name: "haiku (\uAC00\uC7A5 \uBE60\uB974\uACE0 \uC800\uB834)", value: "haiku" }
|
|
521
523
|
],
|
|
522
524
|
default: BALANCED_MAPPING[slug] ?? "sonnet"
|
|
523
525
|
});
|
package/dist/index.js
CHANGED
|
@@ -189,7 +189,7 @@ async function main() {
|
|
|
189
189
|
const command = args[0];
|
|
190
190
|
switch (command) {
|
|
191
191
|
case "init":
|
|
192
|
-
await (await import("./init-
|
|
192
|
+
await (await import("./init-3SFH5G3M.js")).runInit(args.slice(1));
|
|
193
193
|
break;
|
|
194
194
|
case "status":
|
|
195
195
|
await (await import("./status-UE2TQQPU.js")).runStatus(args.slice(1));
|
|
@@ -201,7 +201,7 @@ async function main() {
|
|
|
201
201
|
await (await import("./adapt-VPWOYF6W.js")).runAdapt(args.slice(1));
|
|
202
202
|
break;
|
|
203
203
|
case "update":
|
|
204
|
-
await (await import("./update-
|
|
204
|
+
await (await import("./update-JX4Z2MJG.js")).runUpdate(args.slice(1));
|
|
205
205
|
break;
|
|
206
206
|
case "migrate":
|
|
207
207
|
await (await import("./migrate-PISZFX6C.js")).runMigrate(args.slice(1));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harness-bujang",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.2",
|
|
4
4
|
"description": "Install the Harness-Bujang multi-agent harness into any project — Director, 7 specialist teams, real-time chat-room UI. Korean and English personas. Works with Claude Code, Cursor, Cline, Aider, or any tool that reads .claude/agents/.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|