{"record":{"id":"f081e4819227de30","repo":"paperclipai/paperclip","slug":"package-resolvedpackagename-at-resolvedpackag","errorCode":null,"errorMessage":"Package ${resolvedPackageName} at ${resolvedPackagePath} does not appear to be a Paperclip plugin (no manifest found).${manualBuildHint}","messagePattern":"Package (.+?) at (.+?) does not appear to be a Paperclip plugin \\(no manifest found\\)\\.(.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/src/services/plugin-loader.ts","lineNumber":1281,"sourceCode":"        );\n      }\n    }\n\n    // Step 3: Read and validate plugin manifest\n    // Note: this.loadManifest (used via current context)\n    const pkgJson = await readPackageJson(resolvedPackagePath);\n    if (!pkgJson) throw new Error(`Missing package.json at ${resolvedPackagePath}`);\n\n    if (localPath) {\n      await ensureLocalPluginBuilt(resolvedPackagePath, pkgJson);\n    }\n\n    const manifestPath = resolveManifestPath(resolvedPackagePath, pkgJson);\n    if (!manifestPath || !existsSync(manifestPath)) {\n      const manualBuildHint = localPath\n        ? formatLocalPluginManualBuildHint(resolvedPackagePath, pkgJson)\n        : \"\";\n      throw new Error(\n        `Package ${resolvedPackageName} at ${resolvedPackagePath} does not appear to be a Paperclip plugin (no manifest found).${manualBuildHint}`,\n      );\n    }\n\n    const manifest = await loadManifestFromPath(manifestPath);\n\n    // Step 4: Reject incompatible plugin API versions\n    if (!manifestValidator.getSupportedVersions().includes(manifest.apiVersion)) {\n      throw new Error(\n        `Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. ` +\n          `Supported versions: ${manifestValidator.getSupportedVersions().join(\", \")}`,\n      );\n    }\n\n    // Step 5: Validate manifest capabilities are consistent\n    const capResult = capabilityValidator.validateManifestCapabilities(manifest);\n    if (!capResult.allowed) {\n      throw new Error(","sourceCodeStart":1263,"sourceCodeEnd":1299,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/plugin-loader.ts#L1263-L1299","documentation":"Manifest discovery guard: no Paperclip manifest was found at the resolved manifest path. For local packages a build hint is appended since unbuilt plugins often lack a generated manifest; the package lacking a built manifest is at fault.","triggerScenarios":"Thrown at server/src/services/plugin-loader.ts:1281 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["The package has no Paperclip manifest. Build the plugin (run the suggested build command if shown) so the manifest is generated, or verify you installed the correct package."],"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-14T00:17:10.932Z"}