{"record":{"id":"ac3a9d52d14302c8","repo":"paperclipai/paperclip","slug":"version-is-only-supported-for-npm-package-instal","errorCode":null,"errorMessage":"--version is only supported for npm package installs, not local plugin paths.","messagePattern":"--version is only supported for npm package installs, not local plugin paths\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"cli/src/commands/client/plugin.ts","lineNumber":167,"sourceCode":"  if (path.isAbsolute(packageArg)) return packageArg;\n  if (packageArg.startsWith(\"~\")) return expandHomePath(packageArg);\n  return path.resolve(cwd, packageArg);\n}\n\nexport function buildPluginInstallRequest(\n  packageArg: string,\n  opts: Pick<PluginInstallOptions, \"local\" | \"version\"> = {},\n  deps: { cwd?: string; existsSync?: (targetPath: string) => boolean } = {},\n): PluginInstallRequest {\n  const cwd = deps.cwd ?? process.cwd();\n  const pathExists = deps.existsSync ?? existsSync;\n  const isLocal =\n    opts.local ||\n    hasLocalPathSyntax(packageArg) ||\n    (opts.version ? false : isExistingRelativePath(packageArg, cwd, pathExists));\n\n  if (isLocal && opts.version) {\n    throw new Error(\"--version is only supported for npm package installs, not local plugin paths.\");\n  }\n\n  return {\n    packageName: resolvePackageArg(packageArg, Boolean(isLocal), cwd),\n    version: opts.version,\n    isLocalPath: Boolean(isLocal),\n  };\n}\n\nexport function renderLocalPluginInstallHint(packagePath: string): string {\n  return [\n    pc.dim(\"Local plugin installs run trusted local code from your machine.\"),\n    pc.dim(`Keep ${pc.cyan(\"pnpm dev\")} running in ${packagePath}; Paperclip watches rebuilt dist output and reloads the plugin worker.`),\n  ].join(\"\\n\");\n}\n\n/**\n * Probe `GET /api/health` on the instance the CLI is configured to talk to so a","sourceCodeStart":149,"sourceCodeEnd":185,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/cli/src/commands/client/plugin.ts#L149-L185","documentation":"buildPluginInstallRequest got a --version option while the package argument resolves to a local plugin path, and version pinning only applies to npm package installs.","triggerScenarios":"Thrown at cli/src/commands/client/plugin.ts:167 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Drop --version for local plugin paths; --version only applies to npm package installs."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}