@atlashub/smartstack-cli 4.73.0 → 4.75.0
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 +111 -36
- package/dist/index.js.map +1 -1
- package/dist/mcp-entry.mjs +14 -3
- package/dist/mcp-entry.mjs.map +1 -1
- package/package.json +1 -1
- package/templates/agents/ba-reader.md +17 -15
- package/templates/agents/ba-writer.md +49 -51
- package/templates/project/Dockerfile.backend.template +2 -2
- package/templates/project/docker-compose.yml.template +20 -0
- package/templates/skills/apex/_shared.md +1 -1
- package/templates/skills/apex/references/checks/backend-checks.sh +21 -7
- package/templates/skills/apex/references/checks/infrastructure-checks.sh +47 -10
- package/templates/skills/apex/references/frontend-route-wiring-app-tsx.md +3 -0
- package/templates/skills/apex/references/post-checks.md +5 -2
- package/templates/skills/apex/references/smartstack-frontend.md +53 -7
- package/templates/skills/apex/steps/step-00-init.md +74 -0
- package/templates/skills/apex/steps/step-03-execute.md +16 -4
- package/templates/skills/apex/steps/step-03b-layer1-seed.md +39 -6
- package/templates/skills/apex/steps/step-03c-layer2-backend.md +50 -5
- package/templates/skills/apex/steps/step-03d-layer3-frontend.md +102 -2
- package/templates/skills/application/references/frontend-route-wiring-app-tsx.md +3 -0
- package/templates/skills/business-analyse/SKILL.md +14 -0
- package/templates/skills/business-analyse/_shared.md +27 -0
- package/templates/skills/business-analyse/patterns/suggestion-catalog.md +34 -26
- package/templates/skills/business-analyse/questionnaire/01-context.md +13 -9
- package/templates/skills/business-analyse/questionnaire/02-stakeholders-scope.md +20 -27
- package/templates/skills/business-analyse/questionnaire.md +86 -9
- package/templates/skills/business-analyse/references/03-json-schemas.md +213 -0
- package/templates/skills/business-analyse/references/03-post-check-validation.md +144 -0
- package/templates/skills/business-analyse/references/03-smartstack-entity-guards.md +32 -0
- package/templates/skills/business-analyse/references/04-cross-module-validation.md +95 -0
- package/templates/skills/business-analyse/references/04-file-allocation.md +162 -0
- package/templates/skills/business-analyse/references/04-naming-audit-checks.md +174 -0
- package/templates/skills/business-analyse/references/04-semantic-validation-matrix.md +118 -0
- package/templates/skills/business-analyse/references/domain-research-playbook.md +234 -0
- package/templates/skills/business-analyse/references/entity-sourcing-presentation.md +166 -0
- package/templates/skills/business-analyse/references/init-resume-logic.md +70 -0
- package/templates/skills/business-analyse/references/module-completeness-challenge.md +174 -0
- package/templates/skills/business-analyse/references/multi-app-detection.md +149 -0
- package/templates/skills/business-analyse/references/portal-classification.md +52 -0
- package/templates/skills/business-analyse/references/validation-checklist.md +30 -1
- package/templates/skills/business-analyse/schemas/sections/analysis-schema.json +37 -4
- package/templates/skills/business-analyse/steps/step-00-init.md +22 -190
- package/templates/skills/business-analyse/steps/step-01-cadrage.md +365 -269
- package/templates/skills/business-analyse/steps/step-02-structure.md +98 -20
- package/templates/skills/business-analyse/steps/step-03-specify.md +652 -229
- package/templates/skills/business-analyse/steps/step-04-consolidate.md +308 -287
- package/templates/skills/business-analyse-design/SKILL.md +10 -0
- package/templates/skills/business-analyse-design/references/screens-post-check.md +221 -0
- package/templates/skills/business-analyse-design/references/screens-type-mapping.md +138 -0
- package/templates/skills/business-analyse-design/references/smartcomponents-templates.md +225 -0
- package/templates/skills/{business-analyse → business-analyse-design}/references/spec-auto-inference.md +117 -117
- package/templates/skills/business-analyse-design/steps/step-01-screens.md +36 -162
- package/templates/skills/business-analyse-design/steps/step-02-wireframes.md +8 -7
- package/templates/skills/business-analyse-design/steps/step-03-navigation.md +89 -42
- package/templates/skills/business-analyse-develop/references/compact-loop.md +9 -0
- package/templates/skills/business-analyse-develop/references/handoff-quality-gate.md +132 -0
- package/templates/skills/business-analyse-develop/references/prd-v3-transformation.md +326 -0
- package/templates/skills/business-analyse-develop/references/report-reconciliation.md +140 -0
- package/templates/skills/business-analyse-develop/references/report-template.md +142 -0
- package/templates/skills/business-analyse-develop/steps/step-01-task.md +5 -177
- package/templates/skills/business-analyse-develop/steps/step-02-execute.md +17 -4
- package/templates/skills/business-analyse-develop/steps/step-03-commit.md +6 -2
- package/templates/skills/business-analyse-develop/steps/step-04-check.md +6 -0
- package/templates/skills/business-analyse-develop/steps/step-05-report.md +3 -269
- package/templates/skills/business-analyse-handoff/SKILL.md +10 -0
- package/templates/skills/business-analyse-handoff/references/agent-handoff-transform-prompt.md +208 -0
- package/templates/skills/business-analyse-handoff/references/context-isolation-pattern.md +47 -0
- package/templates/skills/business-analyse-handoff/references/handoff-file-inventory.md +49 -0
- package/templates/skills/business-analyse-handoff/references/handoff-global-validation.md +142 -0
- package/templates/skills/business-analyse-handoff/references/prd-validation-checks.md +125 -0
- package/templates/skills/business-analyse-handoff/references/project-index-update.md +98 -0
- package/templates/skills/business-analyse-handoff/steps/step-01-transform.md +9 -160
- package/templates/skills/business-analyse-handoff/steps/step-02-export.md +10 -99
- package/templates/skills/business-analyse-html/SKILL.md +10 -0
- package/templates/skills/business-analyse-html/html/ba-interactive.html +306 -81
- package/templates/skills/business-analyse-html/html/src/scripts/01-data-init.js +15 -2
- package/templates/skills/business-analyse-html/html/src/scripts/02-navigation.js +6 -46
- package/templates/skills/business-analyse-html/html/src/scripts/06-render-mockups.js +88 -33
- package/templates/skills/business-analyse-html/html/src/scripts/12-render-diagrams.js +116 -0
- package/templates/skills/business-analyse-html/html/src/styles/10-diagrams.css +73 -0
- package/templates/skills/business-analyse-html/html/src/template.html +2 -0
- package/templates/skills/business-analyse-html/references/02-embedded-artifacts-building.md +144 -0
- package/templates/skills/business-analyse-html/references/02-feature-data-building.md +141 -0
- package/templates/skills/business-analyse-html/references/02-mapping-tables.md +442 -0
- package/templates/skills/business-analyse-html/references/02-normalization-helpers.md +139 -0
- package/templates/skills/business-analyse-html/references/02-screen-format-detection.md +283 -0
- package/templates/skills/business-analyse-html/references/02-self-check-validation.md +199 -0
- package/templates/skills/business-analyse-html/references/data-build.md +22 -1
- package/templates/skills/business-analyse-html/references/data-mapping.md +40 -5
- package/templates/skills/business-analyse-html/steps/step-02-build-data.md +12 -555
- package/templates/skills/business-analyse-review/SKILL.md +10 -0
- package/templates/skills/business-analyse-status/SKILL.md +8 -0
- package/templates/skills/dev-start/SKILL.md +143 -307
- package/templates/skills/efcore/SKILL.md +13 -0
package/dist/index.js
CHANGED
|
@@ -127614,7 +127614,7 @@ function resolvePodmanCmd() {
|
|
|
127614
127614
|
(0, import_path13.join)(process.env.LOCALAPPDATA || "", "RedHat", "Podman", "podman.exe")
|
|
127615
127615
|
];
|
|
127616
127616
|
for (const p of knownPaths) {
|
|
127617
|
-
if (require("fs").existsSync(p)) return
|
|
127617
|
+
if (require("fs").existsSync(p)) return p;
|
|
127618
127618
|
}
|
|
127619
127619
|
}
|
|
127620
127620
|
return "podman";
|
|
@@ -127649,6 +127649,22 @@ function getContainerEngineStatus() {
|
|
|
127649
127649
|
}
|
|
127650
127650
|
return null;
|
|
127651
127651
|
}
|
|
127652
|
+
function checkWindowsVirt() {
|
|
127653
|
+
try {
|
|
127654
|
+
(0, import_child_process8.execSync)("wsl --status", { encoding: "utf-8", timeout: 5e3, stdio: "pipe" });
|
|
127655
|
+
} catch {
|
|
127656
|
+
return "wsl-missing";
|
|
127657
|
+
}
|
|
127658
|
+
try {
|
|
127659
|
+
const state = (0, import_child_process8.execSync)(
|
|
127660
|
+
'powershell -NoProfile -Command "(Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform).State"',
|
|
127661
|
+
{ encoding: "utf-8", timeout: 1e4, stdio: "pipe" }
|
|
127662
|
+
).trim();
|
|
127663
|
+
if (state === "Disabled") return "hyperv-disabled";
|
|
127664
|
+
} catch {
|
|
127665
|
+
}
|
|
127666
|
+
return null;
|
|
127667
|
+
}
|
|
127652
127668
|
function getNodeVersion() {
|
|
127653
127669
|
return process.version;
|
|
127654
127670
|
}
|
|
@@ -127812,19 +127828,15 @@ var doctorCommand = new Command("doctor").description("Run diagnostics and check
|
|
|
127812
127828
|
});
|
|
127813
127829
|
} else if (containerEngine && !containerEngine.running) {
|
|
127814
127830
|
const isPodman = containerEngine.name === "Podman";
|
|
127815
|
-
const
|
|
127816
|
-
|
|
127817
|
-
|
|
127818
|
-
} catch {
|
|
127819
|
-
return true;
|
|
127820
|
-
}
|
|
127821
|
-
})();
|
|
127831
|
+
const virtIssue = isPodman && process.platform === "win32" ? checkWindowsVirt() : null;
|
|
127832
|
+
const virtMessage = virtIssue === "wsl-missing" ? "Podman installed but WSL2 is missing" : virtIssue === "hyperv-disabled" ? "Podman installed but hardware virtualization is not enabled" : `${containerEngine.name} installed but ${isPodman ? "machine" : "daemon"} not running`;
|
|
127833
|
+
const virtFix = virtIssue === "wsl-missing" ? "Run as Admin: wsl --install, restart PC, then: podman machine init && podman machine start" : virtIssue === "hyperv-disabled" ? "Enable VT-x/SVM in BIOS, then run as Admin: wsl --install --no-distribution, restart, then: podman machine init && podman machine start" : isPodman ? "Run: podman machine init && podman machine start" : "Start Docker Desktop, or run: podman machine init && podman machine start";
|
|
127822
127834
|
diagnostics.push({
|
|
127823
127835
|
name: "Container Engine",
|
|
127824
127836
|
status: "warning",
|
|
127825
|
-
message:
|
|
127826
|
-
fix:
|
|
127827
|
-
installCmd:
|
|
127837
|
+
message: virtMessage,
|
|
127838
|
+
fix: virtFix,
|
|
127839
|
+
installCmd: virtIssue === "wsl-missing" ? process.platform === "win32" ? "wsl --install" : void 0 : void 0
|
|
127828
127840
|
});
|
|
127829
127841
|
} else {
|
|
127830
127842
|
diagnostics.push({
|
|
@@ -128050,6 +128062,7 @@ var import_bcryptjs = __toESM(require_bcryptjs());
|
|
|
128050
128062
|
var import_fs4 = require("fs");
|
|
128051
128063
|
var import_path14 = require("path");
|
|
128052
128064
|
var import_os6 = require("os");
|
|
128065
|
+
var import_crypto8 = require("crypto");
|
|
128053
128066
|
var import_child_process9 = require("child_process");
|
|
128054
128067
|
function tryLoadNativeDriver() {
|
|
128055
128068
|
try {
|
|
@@ -128066,11 +128079,25 @@ var DEFAULT_CONFIG = {
|
|
|
128066
128079
|
var PASSWORD_CHARS = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789!@#$%&*";
|
|
128067
128080
|
var PASSWORD_LENGTH = 16;
|
|
128068
128081
|
function generatePassword() {
|
|
128069
|
-
|
|
128082
|
+
const bytes = (0, import_crypto8.randomBytes)(PASSWORD_LENGTH);
|
|
128083
|
+
const chars = [];
|
|
128070
128084
|
for (let i = 0; i < PASSWORD_LENGTH; i++) {
|
|
128071
|
-
|
|
128072
|
-
}
|
|
128073
|
-
|
|
128085
|
+
chars.push(PASSWORD_CHARS.charAt(bytes[i] % PASSWORD_CHARS.length));
|
|
128086
|
+
}
|
|
128087
|
+
let hasLower = false, hasUpper = false, hasDigit = false, hasSpecial = false;
|
|
128088
|
+
for (const c of chars) {
|
|
128089
|
+
if (c >= "a" && c <= "z") hasLower = true;
|
|
128090
|
+
else if (c >= "A" && c <= "Z") hasUpper = true;
|
|
128091
|
+
else if (c >= "0" && c <= "9") hasDigit = true;
|
|
128092
|
+
else hasSpecial = true;
|
|
128093
|
+
}
|
|
128094
|
+
const extra = (0, import_crypto8.randomBytes)(4);
|
|
128095
|
+
let pos = 0;
|
|
128096
|
+
if (!hasLower) chars[pos++] = "abcdefghjkmnpqrstuvwxyz"[extra[0] % 23];
|
|
128097
|
+
if (!hasUpper) chars[pos++] = "ABCDEFGHJKLMNPQRSTUVWXYZ"[extra[1] % 24];
|
|
128098
|
+
if (!hasDigit) chars[pos++] = "23456789"[extra[2] % 8];
|
|
128099
|
+
if (!hasSpecial) chars[pos] = "!@#$%&*"[extra[3] % 7];
|
|
128100
|
+
return chars.join("");
|
|
128074
128101
|
}
|
|
128075
128102
|
function findAppSettings(apiFolder) {
|
|
128076
128103
|
if (!(0, import_fs4.existsSync)(apiFolder)) {
|
|
@@ -128260,11 +128287,23 @@ adminCommand.command("reset").description("Reset the localAdmin account password
|
|
|
128260
128287
|
spinner.text = "Generating new password...";
|
|
128261
128288
|
const newPassword = generatePassword();
|
|
128262
128289
|
const passwordHash = await import_bcryptjs.default.hash(newPassword, 12);
|
|
128263
|
-
spinner.text = "Updating password...";
|
|
128264
|
-
const
|
|
128290
|
+
spinner.text = "Updating password and unlocking account...";
|
|
128291
|
+
const userId = executeSqlCmd(
|
|
128292
|
+
connInfo.server,
|
|
128293
|
+
connInfo.database,
|
|
128294
|
+
`SELECT CAST(Id AS NVARCHAR(36)) FROM [core].[auth_Users] WHERE Email = '${adminEmail}'`,
|
|
128295
|
+
sqlAuth
|
|
128296
|
+
).trim();
|
|
128297
|
+
const updateQuery = `UPDATE [core].[auth_Users] SET PasswordHash = '${passwordHash}', MustChangePassword = 0, IsLocked = 0, LockoutEnd = NULL, UpdatedAt = GETUTCDATE() WHERE Email = '${adminEmail}'`;
|
|
128265
128298
|
executeSqlCmd(connInfo.server, connInfo.database, updateQuery, sqlAuth);
|
|
128266
|
-
|
|
128299
|
+
const deleteSessionsQuery = `DELETE FROM [core].[auth_Sessions] WHERE UserId = '${userId}' AND IsSuccessful = 0`;
|
|
128300
|
+
try {
|
|
128301
|
+
executeSqlCmd(connInfo.server, connInfo.database, deleteSessionsQuery, sqlAuth);
|
|
128302
|
+
} catch {
|
|
128303
|
+
}
|
|
128304
|
+
spinner.succeed("Password reset and account unlocked!");
|
|
128267
128305
|
displayPasswordResult(adminEmail, newPassword);
|
|
128306
|
+
spinner.stop();
|
|
128268
128307
|
};
|
|
128269
128308
|
const displayPasswordResult = (email, password) => {
|
|
128270
128309
|
if (options.json) {
|
|
@@ -128308,17 +128347,28 @@ adminCommand.command("reset").description("Reset the localAdmin account password
|
|
|
128308
128347
|
spinner.text = "Generating new password...";
|
|
128309
128348
|
const newPassword = generatePassword();
|
|
128310
128349
|
const passwordHash = await import_bcryptjs.default.hash(newPassword, 12);
|
|
128311
|
-
spinner.text = "Updating password...";
|
|
128350
|
+
spinner.text = "Updating password and unlocking account...";
|
|
128312
128351
|
await sqlModule.query`
|
|
128313
128352
|
UPDATE [core].[auth_Users]
|
|
128314
128353
|
SET PasswordHash = ${passwordHash},
|
|
128315
128354
|
MustChangePassword = ${false},
|
|
128355
|
+
IsLocked = ${false},
|
|
128356
|
+
LockoutEnd = ${null},
|
|
128316
128357
|
UpdatedAt = ${/* @__PURE__ */ new Date()}
|
|
128317
128358
|
WHERE Email = ${adminEmail}
|
|
128318
128359
|
`;
|
|
128360
|
+
try {
|
|
128361
|
+
await sqlModule.query`
|
|
128362
|
+
DELETE FROM [core].[auth_Sessions]
|
|
128363
|
+
WHERE UserId = (SELECT Id FROM [core].[auth_Users] WHERE Email = ${adminEmail})
|
|
128364
|
+
AND IsSuccessful = ${false}
|
|
128365
|
+
`;
|
|
128366
|
+
} catch {
|
|
128367
|
+
}
|
|
128319
128368
|
await sqlModule.close();
|
|
128320
|
-
spinner.succeed("Password reset
|
|
128369
|
+
spinner.succeed("Password reset and account unlocked!");
|
|
128321
128370
|
displayPasswordResult(adminEmail, newPassword);
|
|
128371
|
+
spinner.stop();
|
|
128322
128372
|
};
|
|
128323
128373
|
const tryWithSqlCmd = async () => {
|
|
128324
128374
|
try {
|
|
@@ -130294,7 +130344,6 @@ function resolveEngineCmd(name) {
|
|
|
130294
130344
|
try {
|
|
130295
130345
|
const result = (0, import_child_process12.spawnSync)(name, ["--version"], {
|
|
130296
130346
|
encoding: "utf-8",
|
|
130297
|
-
shell: true,
|
|
130298
130347
|
timeout: 5e3,
|
|
130299
130348
|
stdio: "pipe"
|
|
130300
130349
|
});
|
|
@@ -130309,13 +130358,12 @@ function resolveEngineCmd(name) {
|
|
|
130309
130358
|
for (const p of knownPaths) {
|
|
130310
130359
|
if (import_fs_extra16.default.existsSync(p)) {
|
|
130311
130360
|
try {
|
|
130312
|
-
const result = (0, import_child_process12.spawnSync)(
|
|
130361
|
+
const result = (0, import_child_process12.spawnSync)(p, ["--version"], {
|
|
130313
130362
|
encoding: "utf-8",
|
|
130314
|
-
shell: true,
|
|
130315
130363
|
timeout: 5e3,
|
|
130316
130364
|
stdio: "pipe"
|
|
130317
130365
|
});
|
|
130318
|
-
if (result.status === 0) return
|
|
130366
|
+
if (result.status === 0) return p;
|
|
130319
130367
|
} catch {
|
|
130320
130368
|
}
|
|
130321
130369
|
}
|
|
@@ -130328,7 +130376,6 @@ function checkEngine(name) {
|
|
|
130328
130376
|
try {
|
|
130329
130377
|
const version2 = (0, import_child_process12.spawnSync)(cmd, ["--version"], {
|
|
130330
130378
|
encoding: "utf-8",
|
|
130331
|
-
shell: true,
|
|
130332
130379
|
timeout: 5e3,
|
|
130333
130380
|
stdio: "pipe"
|
|
130334
130381
|
});
|
|
@@ -130337,7 +130384,6 @@ function checkEngine(name) {
|
|
|
130337
130384
|
}
|
|
130338
130385
|
const info = (0, import_child_process12.spawnSync)(cmd, ["info"], {
|
|
130339
130386
|
encoding: "utf-8",
|
|
130340
|
-
shell: true,
|
|
130341
130387
|
timeout: 1e4,
|
|
130342
130388
|
stdio: "pipe"
|
|
130343
130389
|
});
|
|
@@ -130346,6 +130392,33 @@ function checkEngine(name) {
|
|
|
130346
130392
|
return { name, installed: false, running: false, cmd };
|
|
130347
130393
|
}
|
|
130348
130394
|
}
|
|
130395
|
+
function checkWindowsVirtualization() {
|
|
130396
|
+
try {
|
|
130397
|
+
const r = (0, import_child_process12.spawnSync)("wsl", ["--status"], { encoding: "utf-8", timeout: 5e3, stdio: "pipe" });
|
|
130398
|
+
if (r.status !== 0) return "wsl-missing";
|
|
130399
|
+
} catch {
|
|
130400
|
+
return "wsl-missing";
|
|
130401
|
+
}
|
|
130402
|
+
try {
|
|
130403
|
+
const r = (0, import_child_process12.spawnSync)("wsl", ["--list", "--quiet"], { encoding: "utf-8", timeout: 5e3, stdio: "pipe" });
|
|
130404
|
+
const output = ((r.stdout || "") + (r.stderr || "")).toLowerCase();
|
|
130405
|
+
if (/virtual machine platform|hypervisor/i.test(output) && r.status !== 0) {
|
|
130406
|
+
return "hyperv-disabled";
|
|
130407
|
+
}
|
|
130408
|
+
} catch {
|
|
130409
|
+
}
|
|
130410
|
+
try {
|
|
130411
|
+
const r = (0, import_child_process12.spawnSync)("powershell", [
|
|
130412
|
+
"-NoProfile",
|
|
130413
|
+
"-Command",
|
|
130414
|
+
"(Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform).State"
|
|
130415
|
+
], { encoding: "utf-8", timeout: 1e4, stdio: "pipe" });
|
|
130416
|
+
const state = (r.stdout || "").trim();
|
|
130417
|
+
if (state === "Disabled") return "hyperv-disabled";
|
|
130418
|
+
} catch {
|
|
130419
|
+
}
|
|
130420
|
+
return null;
|
|
130421
|
+
}
|
|
130349
130422
|
function detectEngine() {
|
|
130350
130423
|
const docker = checkEngine("docker");
|
|
130351
130424
|
if (docker.installed && docker.running) return docker;
|
|
@@ -130355,15 +130428,8 @@ function detectEngine() {
|
|
|
130355
130428
|
return podman;
|
|
130356
130429
|
}
|
|
130357
130430
|
if (podman.installed && !podman.running) {
|
|
130358
|
-
const
|
|
130359
|
-
|
|
130360
|
-
const r = (0, import_child_process12.spawnSync)("wsl", ["--status"], { encoding: "utf-8", shell: true, timeout: 5e3, stdio: "pipe" });
|
|
130361
|
-
return r.status !== 0;
|
|
130362
|
-
} catch {
|
|
130363
|
-
return true;
|
|
130364
|
-
}
|
|
130365
|
-
})();
|
|
130366
|
-
if (wslMissing) {
|
|
130431
|
+
const virtIssue = process.platform === "win32" ? checkWindowsVirtualization() : null;
|
|
130432
|
+
if (virtIssue === "wsl-missing") {
|
|
130367
130433
|
logger.error("WSL2 is required by Podman but is not installed.");
|
|
130368
130434
|
console.log();
|
|
130369
130435
|
console.log(` Install WSL2 first (run as Administrator):`);
|
|
@@ -130371,6 +130437,16 @@ function detectEngine() {
|
|
|
130371
130437
|
console.log(` Restart your PC, then:`);
|
|
130372
130438
|
console.log(` ${source_default.cyan("podman machine init")}`);
|
|
130373
130439
|
console.log(` ${source_default.cyan("podman machine start")}`);
|
|
130440
|
+
} else if (virtIssue === "hyperv-disabled") {
|
|
130441
|
+
logger.error("Hardware virtualization is not enabled.");
|
|
130442
|
+
console.log();
|
|
130443
|
+
console.log(` To build Docker images, you need to enable virtualization:`);
|
|
130444
|
+
console.log(` 1. Enable VT-x (Intel) or SVM (AMD) in your BIOS/UEFI settings`);
|
|
130445
|
+
console.log(` 2. Then run as Administrator:`);
|
|
130446
|
+
console.log(` ${source_default.cyan("wsl --install --no-distribution")}`);
|
|
130447
|
+
console.log(` 3. Restart your PC, then:`);
|
|
130448
|
+
console.log(` ${source_default.cyan("podman machine init")}`);
|
|
130449
|
+
console.log(` ${source_default.cyan("podman machine start")}`);
|
|
130374
130450
|
} else {
|
|
130375
130451
|
logger.error("Podman is installed but the machine is not running.");
|
|
130376
130452
|
console.log();
|
|
@@ -130449,7 +130525,6 @@ function runCompose(engine, composePath, args) {
|
|
|
130449
130525
|
}
|
|
130450
130526
|
const result = (0, import_child_process12.spawnSync)(engine.cmd, ["compose", "-f", composePath, ...args], {
|
|
130451
130527
|
encoding: "utf-8",
|
|
130452
|
-
shell: true,
|
|
130453
130528
|
stdio: "pipe",
|
|
130454
130529
|
cwd: process.cwd(),
|
|
130455
130530
|
env: { ...process.env, ...extraEnv }
|