@qlucent/fishi 0.14.5 → 0.14.6
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/index.js +32 -3
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1017,8 +1017,37 @@ async function initCommand(description, options) {
|
|
|
1017
1017
|
}]);
|
|
1018
1018
|
sandboxMode = useSandbox ? "docker" : "process";
|
|
1019
1019
|
} else {
|
|
1020
|
-
console.log(chalk.yellow(" Docker not found.
|
|
1021
|
-
console.log(chalk.gray("
|
|
1020
|
+
console.log(chalk.yellow(" Docker not found."));
|
|
1021
|
+
console.log(chalk.gray(" Docker provides full agent isolation (recommended for security)."));
|
|
1022
|
+
console.log("");
|
|
1023
|
+
const { installDocker } = await inquirer.prompt([{
|
|
1024
|
+
type: "list",
|
|
1025
|
+
name: "installDocker",
|
|
1026
|
+
message: "How would you like to proceed?",
|
|
1027
|
+
choices: [
|
|
1028
|
+
{ name: "Install Docker (opens install page \u2014 recommended)", value: "install" },
|
|
1029
|
+
{ name: "Continue without Docker (process-level isolation only)", value: "skip" }
|
|
1030
|
+
],
|
|
1031
|
+
default: "install"
|
|
1032
|
+
}]);
|
|
1033
|
+
if (installDocker === "install") {
|
|
1034
|
+
const dockerUrl = "https://docs.docker.com/get-docker/";
|
|
1035
|
+
console.log("");
|
|
1036
|
+
console.log(chalk.cyan(` Opening: ${dockerUrl}`));
|
|
1037
|
+
console.log(chalk.gray(" Install Docker, then run `fishi init` again."));
|
|
1038
|
+
console.log("");
|
|
1039
|
+
try {
|
|
1040
|
+
const { execSync: execSyncOpen } = await import("child_process");
|
|
1041
|
+
const platform = process.platform;
|
|
1042
|
+
if (platform === "win32") execSyncOpen(`start ${dockerUrl}`, { stdio: "ignore" });
|
|
1043
|
+
else if (platform === "darwin") execSyncOpen(`open ${dockerUrl}`, { stdio: "ignore" });
|
|
1044
|
+
else execSyncOpen(`xdg-open ${dockerUrl}`, { stdio: "ignore" });
|
|
1045
|
+
} catch {
|
|
1046
|
+
console.log(chalk.gray(` Visit: ${dockerUrl}`));
|
|
1047
|
+
}
|
|
1048
|
+
return;
|
|
1049
|
+
}
|
|
1050
|
+
console.log(chalk.gray(" Continuing with process-level sandbox (limited isolation)."));
|
|
1022
1051
|
console.log("");
|
|
1023
1052
|
}
|
|
1024
1053
|
}
|
|
@@ -2608,7 +2637,7 @@ async function upgradeCommand() {
|
|
|
2608
2637
|
var program = new Command();
|
|
2609
2638
|
program.name("fishi").description(
|
|
2610
2639
|
chalk15.cyan("\u{1F41F} FISHI") + " \u2014 AI-Powered Software Delivery Pipeline\n Autonomous AI development with human governance"
|
|
2611
|
-
).version("0.14.
|
|
2640
|
+
).version("0.14.5");
|
|
2612
2641
|
program.command("init").description("Initialize FISHI in the current directory").argument("[description]", "Project description (skip wizard with zero-config)").option("-l, --language <lang>", "Primary language (e.g., typescript, python)").option("-f, --framework <framework>", "Framework (e.g., nextjs, express, django)").option(
|
|
2613
2642
|
"-c, --cost-mode <mode>",
|
|
2614
2643
|
"Cost mode: performance | balanced | economy",
|