{"record":{"id":"f6c18d852c847833","repo":"affaan-m/ECC","slug":"nasiko-installation-requires-explicit-yes-consen","errorCode":null,"errorMessage":"Nasiko installation requires explicit --yes consent.","messagePattern":"Nasiko installation requires explicit --yes consent\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"scripts/lib/nasiko-release.js","lineNumber":260,"sourceCode":"    if (descriptor !== undefined) {\n      try { fileSystem.closeSync(descriptor); } finally { fileSystem.rmSync(lockPath, { force: true }); }\n    }\n    throw error;\n  }\n  return () => {\n    try { fileSystem.closeSync(descriptor); } finally { fileSystem.rmSync(lockPath, { force: true }); }\n  };\n}\n\nasync function installNasiko(options = {}, dependencies = {}) {\n  const version = options.version || 'v0.1.0';\n  const base = getQualifiedRelease(version, dependencies.platform || process.platform, dependencies.arch || process.arch);\n  const release = dependencies.releaseOverride ? { ...base, ...dependencies.releaseOverride } : base;\n  const installDirectory = validateInstallDirectory(options.installDir || defaultInstallDirectory(release, dependencies.environment || process.env, dependencies.homeDirectory || os.homedir()));\n  const destination = path.join(installDirectory, release.binaryName);\n  const plan = { dryRun: Boolean(options.dryRun), version, platform: release.os, architecture: release.arch, manifestDigest: release.manifestDigest, binaryDigest: release.binaryDigest, registryOrigin: REGISTRY_ORIGIN, destination, license: release.license, sourceUrl: release.sourceUrl };\n  if (options.dryRun) return plan;\n  if (!options.yes) throw new Error('Nasiko installation requires explicit --yes consent.');\n  fs.mkdirSync(installDirectory, { recursive: true, mode: 0o755 });\n  assertPrivateInstallDirectory(installDirectory);\n  const releaseLock = acquireLifecycleLock(installDirectory);\n  const metadataPath = metadataPathFor(destination);\n  let destinationOwned = false;\n  let metadataOwned = false;\n  try {\n    const existing = inspectInstalledNasiko(destination);\n    if (existing.installed) {\n      if (existing.qualified && existing.version === version) return { ...plan, dryRun: false, installed: true, reused: true };\n      throw new Error('An unqualified or incompatible Nasiko executable or receipt already exists at the destination.');\n    }\n    const retrieve = dependencies.fetchBytes || fetchBytes;\n    const manifestBytes = await retrieve(`${REGISTRY_ORIGIN}/v2/${REPOSITORY}/manifests/${release.manifestDigest}`, { accept: 'application/vnd.oci.image.manifest.v1+json', maxBytes: MAX_MANIFEST_BYTES });\n    assertDigest(manifestBytes, release.manifestDigest, 'Nasiko manifest');\n    const layer = validateManifest(manifestBytes);\n    const archiveBytes = await retrieve(`${REGISTRY_ORIGIN}/v2/${REPOSITORY}/blobs/${layer.digest}`, { maxBytes: MAX_ARCHIVE_BYTES });\n    if (archiveBytes.length !== layer.size) throw new Error('Nasiko archive size mismatch.');","sourceCodeStart":242,"sourceCodeEnd":278,"githubUrl":"https://github.com/affaan-m/ECC/blob/06c5e118c4d3e6c3b7f9445f973a2194c82de193/scripts/lib/nasiko-release.js#L242-L278","documentation":"installNasiko checked the options object and found no truthy 'yes' flag. Because the installer downloads and places a binary on disk, it requires the explicit --yes consent flag rather than proceeding by default.","triggerScenarios":"Thrown at scripts/lib/nasiko-release.js:260 when the library encounters an invalid state.","commonSituations":"Raised when input validation fails because: Nasiko installation requires explicit --yes consent.. Typically caused by a missing, malformed, or out-of-range argument or configuration value.","solutions":["Provide a value that satisfies the validation: Nasiko installation requires explicit --yes consent.","Check the calling command or configuration for the reported field and correct it, then retry.","Run the command with --help to review the expected input shape and allowed values."],"exampleFix":"Correct the invalid input so that the following holds: Nasiko installation requires explicit --yes consent.","handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"06c5e118c4d3e6c3b7f9445f973a2194c82de193","analyzedAt":"2026-08-18T11:27:13.915Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}