@jvittechs/j 1.0.59 → 1.0.60
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/{chunk-SDYQQ4ZY.js → chunk-22FXNN76.js} +14 -84
- package/dist/chunk-22FXNN76.js.map +1 -0
- package/dist/{chunk-3MKBSVAL.js → chunk-5RDBJYO2.js} +31 -3
- package/dist/chunk-5RDBJYO2.js.map +1 -0
- package/dist/{chunk-BMDRQFY7.js → chunk-OJYJGHQX.js} +78 -7
- package/dist/chunk-OJYJGHQX.js.map +1 -0
- package/dist/cli.js +123 -40
- package/dist/cli.js.map +1 -1
- package/dist/show-LDL5KXZ6.js +8 -0
- package/dist/{summary-FIUGSB65.js → summary-4ZVFN4XV.js} +3 -3
- package/package.json +1 -1
- package/dist/chunk-3MKBSVAL.js.map +0 -1
- package/dist/chunk-BMDRQFY7.js.map +0 -1
- package/dist/chunk-SDYQQ4ZY.js.map +0 -1
- package/dist/show-FGCDTIU7.js +0 -8
- /package/dist/{show-FGCDTIU7.js.map → show-LDL5KXZ6.js.map} +0 -0
- /package/dist/{summary-FIUGSB65.js.map → summary-4ZVFN4XV.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -8,19 +8,19 @@ import {
|
|
|
8
8
|
} from "./chunk-XZ7VS36G.js";
|
|
9
9
|
import {
|
|
10
10
|
createSettingsShowCommand
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-5RDBJYO2.js";
|
|
12
12
|
import {
|
|
13
13
|
BLOCKED_ICON,
|
|
14
|
-
ConfigService,
|
|
15
14
|
PRIORITY_ICONS,
|
|
16
15
|
PRIORITY_LABELS,
|
|
17
16
|
STATUS_ICONS,
|
|
18
17
|
TaskService,
|
|
19
18
|
createTaskSummaryCommand
|
|
20
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-22FXNN76.js";
|
|
21
20
|
import {
|
|
21
|
+
ConfigService,
|
|
22
22
|
SettingsService
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-OJYJGHQX.js";
|
|
24
24
|
|
|
25
25
|
// src/utils/node-version-check.ts
|
|
26
26
|
import chalk from "chalk";
|
|
@@ -156,7 +156,7 @@ import { basename as basename5 } from "path";
|
|
|
156
156
|
// package.json
|
|
157
157
|
var package_default = {
|
|
158
158
|
name: "@jvittechs/j",
|
|
159
|
-
version: "1.0.
|
|
159
|
+
version: "1.0.60",
|
|
160
160
|
description: "A unified CLI tool for JV-IT TECHS developers to manage Jai1 Framework. Supports both `j` and `jai1` commands. Please contact TeamAI for usage instructions.",
|
|
161
161
|
type: "module",
|
|
162
162
|
bin: {
|
|
@@ -11361,17 +11361,85 @@ import { Command as Command61 } from "commander";
|
|
|
11361
11361
|
// src/commands/settings/init.ts
|
|
11362
11362
|
import { Command as Command58 } from "commander";
|
|
11363
11363
|
import chalk31 from "chalk";
|
|
11364
|
+
import { confirm as confirm11 } from "@inquirer/prompts";
|
|
11365
|
+
async function checkAuthStatus() {
|
|
11366
|
+
try {
|
|
11367
|
+
const config = await new ConfigService().load();
|
|
11368
|
+
if (config?.apiUrl && config?.accessKey) {
|
|
11369
|
+
return { ok: true, apiUrl: config.apiUrl, accessKey: config.accessKey };
|
|
11370
|
+
}
|
|
11371
|
+
return { ok: false };
|
|
11372
|
+
} catch {
|
|
11373
|
+
return { ok: false };
|
|
11374
|
+
}
|
|
11375
|
+
}
|
|
11364
11376
|
function createSettingsInitCommand() {
|
|
11365
|
-
return new Command58("init").description("
|
|
11377
|
+
return new Command58("init").description("Kh\u1EDFi t\u1EA1o .jai1/settings.yaml").option("-f, --force", "Ghi \u0111\xE8 file c\u0169 n\u1EBFu \u0111\xE3 t\u1ED3n t\u1EA1i").option("--cloud", "Enable cloud task sync (non-interactive)").option("--no-interactive", "Kh\xF4ng h\u1ECFi, d\xF9ng flags/defaults").option("-j, --json", "Output JSON").action(async (options) => {
|
|
11366
11378
|
try {
|
|
11367
11379
|
const service = new SettingsService();
|
|
11368
|
-
|
|
11380
|
+
if (service.exists() && !options.force) {
|
|
11381
|
+
throw new Error("Settings file \u0111\xE3 t\u1ED3n t\u1EA1i. D\xF9ng --force \u0111\u1EC3 ghi \u0111\xE8.");
|
|
11382
|
+
}
|
|
11383
|
+
let enableCloud = options.cloud || false;
|
|
11384
|
+
if (options.interactive !== false && !options.json) {
|
|
11385
|
+
const repoUrl = service.resolveGitRepoUrl();
|
|
11386
|
+
console.log(chalk31.bold("\u{1F4CB} Kh\u1EDFi t\u1EA1o Project Settings"));
|
|
11387
|
+
console.log("");
|
|
11388
|
+
if (repoUrl) {
|
|
11389
|
+
console.log(` ${chalk31.dim("Repo:")} ${repoUrl}`);
|
|
11390
|
+
console.log("");
|
|
11391
|
+
}
|
|
11392
|
+
enableCloud = await confirm11({
|
|
11393
|
+
message: "B\u1EADt cloud task sync? (\u0111\u1ED3ng b\u1ED9 tasks qua server)",
|
|
11394
|
+
default: false
|
|
11395
|
+
});
|
|
11396
|
+
if (enableCloud) {
|
|
11397
|
+
const auth = await checkAuthStatus();
|
|
11398
|
+
if (!auth.ok) {
|
|
11399
|
+
console.log("");
|
|
11400
|
+
console.log(chalk31.yellow("\u26A0\uFE0F Ch\u01B0a \u0111\u0103ng nh\u1EADp Jai1."));
|
|
11401
|
+
console.log(chalk31.dim(" Ch\u1EA1y: j auth"));
|
|
11402
|
+
console.log("");
|
|
11403
|
+
const proceed = await confirm11({
|
|
11404
|
+
message: "V\u1EABn b\u1EADt cloud? (c\u1EA7n j auth tr\u01B0\u1EDBc khi d\xF9ng tasks)",
|
|
11405
|
+
default: false
|
|
11406
|
+
});
|
|
11407
|
+
if (!proceed) enableCloud = false;
|
|
11408
|
+
} else {
|
|
11409
|
+
console.log(chalk31.green(" \u2713 Auth OK"));
|
|
11410
|
+
}
|
|
11411
|
+
}
|
|
11412
|
+
} else if (enableCloud && !options.json) {
|
|
11413
|
+
const auth = await checkAuthStatus();
|
|
11414
|
+
if (!auth.ok) {
|
|
11415
|
+
console.log(chalk31.yellow("\u26A0\uFE0F Ch\u01B0a \u0111\u0103ng nh\u1EADp. Ch\u1EA1y j auth tr\u01B0\u1EDBc khi d\xF9ng cloud tasks."));
|
|
11416
|
+
}
|
|
11417
|
+
}
|
|
11418
|
+
const settings = await service.init(true);
|
|
11419
|
+
if (enableCloud) {
|
|
11420
|
+
await service.set("tasks.cloud", true);
|
|
11421
|
+
}
|
|
11422
|
+
const finalSettings = service.load();
|
|
11369
11423
|
if (options.json) {
|
|
11370
|
-
console.log(JSON.stringify({
|
|
11424
|
+
console.log(JSON.stringify({
|
|
11425
|
+
success: true,
|
|
11426
|
+
path: service.getSettingsPath(),
|
|
11427
|
+
settings: finalSettings
|
|
11428
|
+
}, null, 2));
|
|
11371
11429
|
return;
|
|
11372
11430
|
}
|
|
11431
|
+
console.log("");
|
|
11373
11432
|
console.log(chalk31.green("\u2705 Settings initialized"));
|
|
11374
11433
|
console.log(` ${chalk31.dim("Path:")} ${service.getSettingsPath()}`);
|
|
11434
|
+
console.log(` ${chalk31.dim("Cloud:")} ${enableCloud ? chalk31.green("enabled") : chalk31.dim("disabled")}`);
|
|
11435
|
+
if (enableCloud) {
|
|
11436
|
+
const projectId = service.getProjectId();
|
|
11437
|
+
if (projectId) {
|
|
11438
|
+
console.log(` ${chalk31.dim("Project ID:")} ${projectId}`);
|
|
11439
|
+
}
|
|
11440
|
+
console.log("");
|
|
11441
|
+
console.log(chalk31.dim(" Cloud tasks s\u1EBD t\u1EF1 \u0111\u0103ng k\xFD project khi ch\u1EA1y l\u1EC7nh task \u0111\u1EA7u ti\xEAn."));
|
|
11442
|
+
}
|
|
11375
11443
|
} catch (error) {
|
|
11376
11444
|
if (options.json) {
|
|
11377
11445
|
console.log(JSON.stringify({ success: false, error: error instanceof Error ? error.message : String(error) }));
|
|
@@ -11391,7 +11459,10 @@ function createSettingsSetCommand() {
|
|
|
11391
11459
|
try {
|
|
11392
11460
|
const service = new SettingsService();
|
|
11393
11461
|
if (!service.exists()) {
|
|
11394
|
-
|
|
11462
|
+
await service.init(false);
|
|
11463
|
+
if (!options.json) {
|
|
11464
|
+
console.log(chalk32.dim("\u{1F4CB} Auto-created settings.yaml"));
|
|
11465
|
+
}
|
|
11395
11466
|
}
|
|
11396
11467
|
const settings = await service.set(key, value);
|
|
11397
11468
|
if (options.json) {
|
|
@@ -11399,6 +11470,18 @@ function createSettingsSetCommand() {
|
|
|
11399
11470
|
return;
|
|
11400
11471
|
}
|
|
11401
11472
|
console.log(chalk32.green(`\u2705 ${key} = ${JSON.stringify(service.get(key))}`));
|
|
11473
|
+
if (key === "tasks.cloud" && service.get(key) === true) {
|
|
11474
|
+
const config = await new ConfigService().load();
|
|
11475
|
+
if (!config?.apiUrl || !config?.accessKey) {
|
|
11476
|
+
console.log(chalk32.yellow("\u26A0\uFE0F Ch\u01B0a \u0111\u0103ng nh\u1EADp. Ch\u1EA1y j auth tr\u01B0\u1EDBc khi d\xF9ng cloud tasks."));
|
|
11477
|
+
} else {
|
|
11478
|
+
console.log(chalk32.dim(" Auth: \u2713 OK"));
|
|
11479
|
+
const projectId = service.getProjectId();
|
|
11480
|
+
if (projectId) {
|
|
11481
|
+
console.log(chalk32.dim(` Project: ${projectId}`));
|
|
11482
|
+
}
|
|
11483
|
+
}
|
|
11484
|
+
}
|
|
11402
11485
|
} catch (error) {
|
|
11403
11486
|
if (options.json) {
|
|
11404
11487
|
console.log(JSON.stringify({ success: false, error: error instanceof Error ? error.message : String(error) }));
|
|
@@ -11446,7 +11529,7 @@ function createSettingsCommand() {
|
|
|
11446
11529
|
cmd.addCommand(createSettingsSetCommand());
|
|
11447
11530
|
cmd.addCommand(createSettingsGetCommand());
|
|
11448
11531
|
cmd.action(async () => {
|
|
11449
|
-
const { createSettingsShowCommand: showCmd } = await import("./show-
|
|
11532
|
+
const { createSettingsShowCommand: showCmd } = await import("./show-LDL5KXZ6.js");
|
|
11450
11533
|
const show = showCmd();
|
|
11451
11534
|
await show.parseAsync([], { from: "user" });
|
|
11452
11535
|
});
|
|
@@ -11711,7 +11794,7 @@ function createTaskShowCommand() {
|
|
|
11711
11794
|
// src/commands/tasks/pick.ts
|
|
11712
11795
|
import { Command as Command67 } from "commander";
|
|
11713
11796
|
import chalk39 from "chalk";
|
|
11714
|
-
import { confirm as
|
|
11797
|
+
import { confirm as confirm12 } from "@inquirer/prompts";
|
|
11715
11798
|
function createTaskPickCommand() {
|
|
11716
11799
|
return new Command67("pick").description("Claim the next available task").option("-j, --json", "Output JSON").action(async (options) => {
|
|
11717
11800
|
const service = new TaskService();
|
|
@@ -11741,7 +11824,7 @@ function createTaskPickCommand() {
|
|
|
11741
11824
|
console.log(chalk39.dim(`
|
|
11742
11825
|
+${ready.length - 1} more tasks ready`));
|
|
11743
11826
|
}
|
|
11744
|
-
const proceed = await
|
|
11827
|
+
const proceed = await confirm12({
|
|
11745
11828
|
message: "Claim this task?",
|
|
11746
11829
|
default: true
|
|
11747
11830
|
});
|
|
@@ -12035,7 +12118,7 @@ function createTaskParentsCommand() {
|
|
|
12035
12118
|
// src/commands/tasks/cancel.ts
|
|
12036
12119
|
import { Command as Command73 } from "commander";
|
|
12037
12120
|
import chalk45 from "chalk";
|
|
12038
|
-
import { confirm as
|
|
12121
|
+
import { confirm as confirm13 } from "@inquirer/prompts";
|
|
12039
12122
|
function createTaskCancelCommand() {
|
|
12040
12123
|
return new Command73("cancel").description("Cancel a task (with dependency impact check)").argument("<id>", "Task ID (e.g. T-001)").option("-y, --yes", "Skip confirmation").option("-j, --json", "Output JSON").action(async (id, options) => {
|
|
12041
12124
|
const service = new TaskService();
|
|
@@ -12076,7 +12159,7 @@ function createTaskCancelCommand() {
|
|
|
12076
12159
|
console.log();
|
|
12077
12160
|
}
|
|
12078
12161
|
if (!options.yes) {
|
|
12079
|
-
const proceed = await
|
|
12162
|
+
const proceed = await confirm13({
|
|
12080
12163
|
message: `Cancel task ${id}?`,
|
|
12081
12164
|
default: false
|
|
12082
12165
|
});
|
|
@@ -12103,7 +12186,7 @@ function createTaskCancelCommand() {
|
|
|
12103
12186
|
// src/commands/tasks/delete.ts
|
|
12104
12187
|
import { Command as Command74 } from "commander";
|
|
12105
12188
|
import chalk46 from "chalk";
|
|
12106
|
-
import { confirm as
|
|
12189
|
+
import { confirm as confirm14 } from "@inquirer/prompts";
|
|
12107
12190
|
function printTaskList(tasks, indent = " ") {
|
|
12108
12191
|
for (const t of tasks) {
|
|
12109
12192
|
const icon = STATUS_ICONS[t.status] || "\u{1F4CB}";
|
|
@@ -12199,7 +12282,7 @@ function createTaskDeleteCommand() {
|
|
|
12199
12282
|
printImpactSummary(tasksToDelete, allDependents);
|
|
12200
12283
|
if (!options.yes) {
|
|
12201
12284
|
const label = options.group ? `Xo\xE1 v\u0129nh vi\u1EC5n group "${options.group}" (${tasksToDelete.length} tasks)?` : tasksToDelete.length === 1 ? `Xo\xE1 v\u0129nh vi\u1EC5n task ${tasksToDelete[0].id}?` : `Xo\xE1 v\u0129nh vi\u1EC5n ${tasksToDelete.length} task(s)?`;
|
|
12202
|
-
const proceed = await
|
|
12285
|
+
const proceed = await confirm14({
|
|
12203
12286
|
message: label,
|
|
12204
12287
|
default: false
|
|
12205
12288
|
});
|
|
@@ -12264,7 +12347,7 @@ function createTasksCommand() {
|
|
|
12264
12347
|
cmd.addCommand(createTaskDeleteCommand());
|
|
12265
12348
|
cmd.addCommand(createTaskGuideCommand());
|
|
12266
12349
|
cmd.action(async () => {
|
|
12267
|
-
const { handleTaskSummary } = await import("./summary-
|
|
12350
|
+
const { handleTaskSummary } = await import("./summary-4ZVFN4XV.js");
|
|
12268
12351
|
await handleTaskSummary({ json: false });
|
|
12269
12352
|
});
|
|
12270
12353
|
return cmd;
|
|
@@ -12788,7 +12871,7 @@ function createRulesListCommand() {
|
|
|
12788
12871
|
import { Command as Command81 } from "commander";
|
|
12789
12872
|
import { promises as fs21 } from "fs";
|
|
12790
12873
|
import { join as join12 } from "path";
|
|
12791
|
-
import { select as select4, confirm as
|
|
12874
|
+
import { select as select4, confirm as confirm15 } from "@inquirer/prompts";
|
|
12792
12875
|
|
|
12793
12876
|
// src/services/project-config.service.ts
|
|
12794
12877
|
import { promises as fs20 } from "fs";
|
|
@@ -12972,7 +13055,7 @@ function createRulesInitCommand() {
|
|
|
12972
13055
|
});
|
|
12973
13056
|
}
|
|
12974
13057
|
if (!options.yes) {
|
|
12975
|
-
const proceed = await
|
|
13058
|
+
const proceed = await confirm15({
|
|
12976
13059
|
message: `Apply preset '${bundle.preset.name}' to current directory?`,
|
|
12977
13060
|
default: true
|
|
12978
13061
|
});
|
|
@@ -13045,7 +13128,7 @@ async function applyAgentsMdFormat(bundle) {
|
|
|
13045
13128
|
import { Command as Command82 } from "commander";
|
|
13046
13129
|
import { promises as fs23 } from "fs";
|
|
13047
13130
|
import { join as join14 } from "path";
|
|
13048
|
-
import { search, confirm as
|
|
13131
|
+
import { search, confirm as confirm16, checkbox as checkbox5 } from "@inquirer/prompts";
|
|
13049
13132
|
|
|
13050
13133
|
// src/services/rules-generator.service.ts
|
|
13051
13134
|
var RulesGeneratorService = class {
|
|
@@ -13712,7 +13795,7 @@ function createRulesApplyCommand() {
|
|
|
13712
13795
|
if (backupPath) {
|
|
13713
13796
|
console.log(` Backup: ${backupPath}`);
|
|
13714
13797
|
}
|
|
13715
|
-
const proceed = await
|
|
13798
|
+
const proceed = await confirm16({
|
|
13716
13799
|
message: "Apply these rules to the current directory?",
|
|
13717
13800
|
default: true
|
|
13718
13801
|
});
|
|
@@ -13853,7 +13936,7 @@ function createRulesApplyCommand() {
|
|
|
13853
13936
|
// src/commands/rules/restore.ts
|
|
13854
13937
|
import { Command as Command83 } from "commander";
|
|
13855
13938
|
import { join as join15 } from "path";
|
|
13856
|
-
import { select as select5, confirm as
|
|
13939
|
+
import { select as select5, confirm as confirm17 } from "@inquirer/prompts";
|
|
13857
13940
|
function createRulesRestoreCommand() {
|
|
13858
13941
|
return new Command83("restore").description("Restore rules from a backup").option("--latest", "Restore the most recent backup").option("-y, --yes", "Skip confirmation").action(async (options) => {
|
|
13859
13942
|
const backupService = new BackupService();
|
|
@@ -13888,7 +13971,7 @@ function createRulesRestoreCommand() {
|
|
|
13888
13971
|
console.log(` IDEs: ${selectedBackup.ides.join(", ")}`);
|
|
13889
13972
|
console.log(` Files: ${selectedBackup.files.length}`);
|
|
13890
13973
|
if (!options.yes) {
|
|
13891
|
-
const proceed = await
|
|
13974
|
+
const proceed = await confirm17({
|
|
13892
13975
|
message: "This will overwrite current rules. Continue?",
|
|
13893
13976
|
default: false
|
|
13894
13977
|
});
|
|
@@ -13927,7 +14010,7 @@ function formatTimestamp(timestamp) {
|
|
|
13927
14010
|
import { Command as Command84 } from "commander";
|
|
13928
14011
|
import { promises as fs24 } from "fs";
|
|
13929
14012
|
import { join as join16 } from "path";
|
|
13930
|
-
import { checkbox as checkbox6, confirm as
|
|
14013
|
+
import { checkbox as checkbox6, confirm as confirm18, Separator } from "@inquirer/prompts";
|
|
13931
14014
|
function createRulesSyncCommand() {
|
|
13932
14015
|
return new Command84("sync").description("Regenerate rule outputs for all configured IDEs").option("--ides <ides>", "Comma-separated list of IDEs to sync (default: all configured)").option("--detect", "Auto-detect active IDEs instead of using config").option("-y, --yes", "Skip confirmations").action(async (options) => {
|
|
13933
14016
|
const rulePresetDir = join16(process.cwd(), ".jai1", "rule-preset");
|
|
@@ -13978,7 +14061,7 @@ Detected ${detected.length} active IDE(s):
|
|
|
13978
14061
|
console.log(` ${confidence} ${d.name} - ${d.ruleCount} rules`);
|
|
13979
14062
|
});
|
|
13980
14063
|
if (!options.yes) {
|
|
13981
|
-
const proceed = await
|
|
14064
|
+
const proceed = await confirm18({
|
|
13982
14065
|
message: "\nSync these detected IDEs?",
|
|
13983
14066
|
default: true
|
|
13984
14067
|
});
|
|
@@ -14860,7 +14943,7 @@ function createSkillsInfoCommand() {
|
|
|
14860
14943
|
// src/commands/skills/sync.ts
|
|
14861
14944
|
import { Command as Command91 } from "commander";
|
|
14862
14945
|
import chalk55 from "chalk";
|
|
14863
|
-
import { confirm as
|
|
14946
|
+
import { confirm as confirm20, checkbox as checkbox8 } from "@inquirer/prompts";
|
|
14864
14947
|
function createSkillsSyncCommand() {
|
|
14865
14948
|
return new Command91("sync").description("Sync skills from .jai1/skills/ to IDE directories").option("--ides <ides...>", "Target IDEs (cursor, windsurf, antigravity, claudecode, opencode)").option("--skills <skills...>", "Specific skill slugs to sync (default: all)").option("--all", "Select all available IDEs").option("--dry-run", "Preview changes without writing files").option("-y, --yes", "Headless mode (skip all prompts)").action(async (options) => {
|
|
14866
14949
|
const skillsService = new SkillsService();
|
|
@@ -14921,7 +15004,7 @@ function createSkillsSyncCommand() {
|
|
|
14921
15004
|
return;
|
|
14922
15005
|
}
|
|
14923
15006
|
if (!headless) {
|
|
14924
|
-
const confirmed = await
|
|
15007
|
+
const confirmed = await confirm20({
|
|
14925
15008
|
message: "Ti\u1EBFp t\u1EE5c sync?",
|
|
14926
15009
|
default: true
|
|
14927
15010
|
});
|
|
@@ -14990,7 +15073,7 @@ function createSkillsCommand() {
|
|
|
14990
15073
|
|
|
14991
15074
|
// src/commands/upgrade.ts
|
|
14992
15075
|
import { Command as Command93 } from "commander";
|
|
14993
|
-
import { confirm as
|
|
15076
|
+
import { confirm as confirm21 } from "@inquirer/prompts";
|
|
14994
15077
|
import { execSync as execSync5 } from "child_process";
|
|
14995
15078
|
var colors2 = {
|
|
14996
15079
|
yellow: "\x1B[33m",
|
|
@@ -15050,7 +15133,7 @@ ${colors2.bold}Current version:${colors2.reset} ${currentVersion}`);
|
|
|
15050
15133
|
return;
|
|
15051
15134
|
}
|
|
15052
15135
|
if (!options.force) {
|
|
15053
|
-
const shouldUpdate = await
|
|
15136
|
+
const shouldUpdate = await confirm21({
|
|
15054
15137
|
message: "Update to the latest version now?",
|
|
15055
15138
|
default: true
|
|
15056
15139
|
});
|
|
@@ -15155,7 +15238,7 @@ function getInstallCommand(packageManager2) {
|
|
|
15155
15238
|
|
|
15156
15239
|
// src/commands/clean.ts
|
|
15157
15240
|
import { Command as Command94 } from "commander";
|
|
15158
|
-
import { confirm as
|
|
15241
|
+
import { confirm as confirm22, select as select6 } from "@inquirer/prompts";
|
|
15159
15242
|
import { promises as fs27 } from "fs";
|
|
15160
15243
|
import { join as join20 } from "path";
|
|
15161
15244
|
import { existsSync as existsSync4 } from "fs";
|
|
@@ -15302,7 +15385,7 @@ async function cleanTarget(target, skipConfirm) {
|
|
|
15302
15385
|
}
|
|
15303
15386
|
const countStr = info.count ? ` (${info.count} items)` : "";
|
|
15304
15387
|
if (!skipConfirm) {
|
|
15305
|
-
const confirmed = await
|
|
15388
|
+
const confirmed = await confirm22({
|
|
15306
15389
|
message: `Delete ${target.name}${countStr}?`,
|
|
15307
15390
|
default: false
|
|
15308
15391
|
});
|
|
@@ -16270,7 +16353,7 @@ async function getProjectStatus2() {
|
|
|
16270
16353
|
|
|
16271
16354
|
// src/commands/self-update.ts
|
|
16272
16355
|
import { Command as Command99 } from "commander";
|
|
16273
|
-
import { confirm as
|
|
16356
|
+
import { confirm as confirm23 } from "@inquirer/prompts";
|
|
16274
16357
|
import { execSync as execSync6 } from "child_process";
|
|
16275
16358
|
var colors3 = {
|
|
16276
16359
|
yellow: "\x1B[33m",
|
|
@@ -16325,7 +16408,7 @@ ${colors3.bold}Current version:${colors3.reset} ${currentVersion}`);
|
|
|
16325
16408
|
return;
|
|
16326
16409
|
}
|
|
16327
16410
|
if (!options.force) {
|
|
16328
|
-
const shouldUpdate = await
|
|
16411
|
+
const shouldUpdate = await confirm23({
|
|
16329
16412
|
message: "Update to the latest version now?",
|
|
16330
16413
|
default: true
|
|
16331
16414
|
});
|
|
@@ -16422,7 +16505,7 @@ function getInstallCommand2(packageManager2) {
|
|
|
16422
16505
|
|
|
16423
16506
|
// src/commands/clear-backups.ts
|
|
16424
16507
|
import { Command as Command100 } from "commander";
|
|
16425
|
-
import { confirm as
|
|
16508
|
+
import { confirm as confirm24 } from "@inquirer/prompts";
|
|
16426
16509
|
function createClearBackupsCommand() {
|
|
16427
16510
|
return new Command100("clear-backups").description("Clear backup files").option("-y, --yes", "Skip confirmation").action(async (options) => {
|
|
16428
16511
|
const service = new ComponentsService();
|
|
@@ -16440,7 +16523,7 @@ function createClearBackupsCommand() {
|
|
|
16440
16523
|
}
|
|
16441
16524
|
console.log();
|
|
16442
16525
|
if (!options.yes) {
|
|
16443
|
-
const ok = await
|
|
16526
|
+
const ok = await confirm24({ message: "Delete all backups?", default: false });
|
|
16444
16527
|
if (!ok) return;
|
|
16445
16528
|
}
|
|
16446
16529
|
await service.clearBackups(process.cwd());
|
|
@@ -16450,7 +16533,7 @@ function createClearBackupsCommand() {
|
|
|
16450
16533
|
|
|
16451
16534
|
// src/commands/vscode/index.ts
|
|
16452
16535
|
import { Command as Command101 } from "commander";
|
|
16453
|
-
import { checkbox as checkbox9, confirm as
|
|
16536
|
+
import { checkbox as checkbox9, confirm as confirm25, select as select7 } from "@inquirer/prompts";
|
|
16454
16537
|
import fs29 from "fs/promises";
|
|
16455
16538
|
import path12 from "path";
|
|
16456
16539
|
import { existsSync as existsSync5 } from "fs";
|
|
@@ -16695,7 +16778,7 @@ async function applyGroups2(groupKeys, action) {
|
|
|
16695
16778
|
console.log("\u{1F4C4} \u0110\xE3 \u0111\u1ECDc c\xE0i \u0111\u1EB7t hi\u1EC7n t\u1EA1i t\u1EEB settings.json");
|
|
16696
16779
|
} catch {
|
|
16697
16780
|
console.warn("\u26A0\uFE0F Kh\xF4ng th\u1EC3 \u0111\u1ECDc settings.json (c\xF3 th\u1EC3 ch\u1EE9a comments).");
|
|
16698
|
-
const confirmOverwrite = await
|
|
16781
|
+
const confirmOverwrite = await confirm25({
|
|
16699
16782
|
message: "Ghi \u0111\xE8 file settings.json hi\u1EC7n t\u1EA1i?",
|
|
16700
16783
|
default: false
|
|
16701
16784
|
});
|
|
@@ -16742,7 +16825,7 @@ async function resetSettings2(groupKeys) {
|
|
|
16742
16825
|
console.log("\n\u26A0\uFE0F Kh\xF4ng t\xECm th\u1EA5y file settings.json");
|
|
16743
16826
|
return;
|
|
16744
16827
|
}
|
|
16745
|
-
const confirmReset = await
|
|
16828
|
+
const confirmReset = await confirm25({
|
|
16746
16829
|
message: groupKeys.length === 0 ? "Reset T\u1EA4T C\u1EA2 settings v\u1EC1 m\u1EB7c \u0111\u1ECBnh (x\xF3a to\xE0n b\u1ED9 file)?" : `Reset c\xE1c nh\xF3m: ${groupKeys.join(", ")}?`,
|
|
16747
16830
|
default: false
|
|
16748
16831
|
});
|
|
@@ -16761,7 +16844,7 @@ async function resetSettings2(groupKeys) {
|
|
|
16761
16844
|
|
|
16762
16845
|
// src/commands/migrate-ide.ts
|
|
16763
16846
|
import { Command as Command102 } from "commander";
|
|
16764
|
-
import { checkbox as checkbox10, confirm as
|
|
16847
|
+
import { checkbox as checkbox10, confirm as confirm26 } from "@inquirer/prompts";
|
|
16765
16848
|
function createMigrateIdeCommand() {
|
|
16766
16849
|
const cmd = new Command102("migrate-ide").description("Migrate .jai1 rules v\xE0 workflows sang IDEs (Cursor, Windsurf, Claude Code, etc.)").option("--ide <ides...>", "Target IDEs (cursor, windsurf, antigravity, claudecode, opencode)").option("--type <types...>", "Content types (rules, workflows, commands)").option("--dry-run", "Preview changes without writing files").action(async (options) => {
|
|
16767
16850
|
await runMigrateIde(options);
|
|
@@ -16834,7 +16917,7 @@ async function runMigrateIde(options) {
|
|
|
16834
16917
|
if (options.dryRun) {
|
|
16835
16918
|
console.log("\u{1F50D} DRY RUN - No files will be written\n");
|
|
16836
16919
|
}
|
|
16837
|
-
const confirmed = await
|
|
16920
|
+
const confirmed = await confirm26({
|
|
16838
16921
|
message: "Proceed with migration?",
|
|
16839
16922
|
default: true
|
|
16840
16923
|
});
|