{"record":{"id":"3e89bfc37f3fcb1a","repo":"paperclipai/paperclip","slug":"invalid-include-value-use-one-or-more-of-compa","errorCode":null,"errorMessage":"Invalid --include value. Use one or more of: company,agents,projects,issues,tasks,skills","messagePattern":"Invalid --include value\\. Use one or more of: company,agents,projects,issues,tasks,skills","errorType":"validation","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"cli/src/commands/client/company.ts","lineNumber":185,"sourceCode":"function normalizeSelector(input: string): string {\n  return input.trim();\n}\n\nfunction parseInclude(\n  input: string | undefined,\n  fallback: CompanyPortabilityInclude = DEFAULT_EXPORT_INCLUDE,\n): CompanyPortabilityInclude {\n  if (!input || !input.trim()) return { ...fallback };\n  const values = input.split(\",\").map((part) => part.trim().toLowerCase()).filter(Boolean);\n  const include = {\n    company: values.includes(\"company\"),\n    agents: values.includes(\"agents\"),\n    projects: values.includes(\"projects\"),\n    issues: values.includes(\"issues\") || values.includes(\"tasks\"),\n    skills: values.includes(\"skills\"),\n  };\n  if (!include.company && !include.agents && !include.projects && !include.issues && !include.skills) {\n    throw new Error(\"Invalid --include value. Use one or more of: company,agents,projects,issues,tasks,skills\");\n  }\n  return include;\n}\n\nfunction parseAgents(input: string | undefined): \"all\" | string[] {\n  if (!input || !input.trim()) return \"all\";\n  const normalized = input.trim().toLowerCase();\n  if (normalized === \"all\") return \"all\";\n  const values = input.split(\",\").map((part) => part.trim()).filter(Boolean);\n  if (values.length === 0) return \"all\";\n  return Array.from(new Set(values));\n}\n\nfunction parseCsvValues(input: string | undefined): string[] {\n  if (!input || !input.trim()) return [];\n  return Array.from(new Set(input.split(\",\").map((part) => part.trim()).filter(Boolean)));\n}\n","sourceCodeStart":167,"sourceCodeEnd":203,"githubUrl":"https://github.com/paperclipai/paperclip/blob/67001ec6eb96ae601aa27bc91d9b2415d665334a/cli/src/commands/client/company.ts#L167-L203","documentation":"Thrown by parseInclude() in company.ts when the --include value for `paperclipai company export` parses to NO recognized buckets. The parser splits on commas, lower-cases, and enables buckets company/agents/projects/issues(=tasks)/skills. If none of the provided tokens match any bucket name (or the value is non-empty but only contains unknown tokens), it refuses rather than exporting nothing or everything silently.","triggerScenarios":"Passing --include with only misspelled/unknown tokens, e.g. --include 'Compnay,agnts' or --include 'workflows'. Note: an empty/wholly-empty --include returns the default fallback (company,agents,projects,issues,tasks,skills) and does NOT throw; the throw only fires when at least one token was given but none matched.","commonSituations":"Typo in a bucket name (e.g. 'task' instead of 'tasks' is tolerated, but 'tasklist' is not). User assumes a bucket that does not exist in V1. Copy-paste from outdated docs.","solutions":["Use only valid tokens from the message: company, agents, projects, issues, tasks, skills.","Remember 'tasks' is an alias for 'issues' — either works.","Omit --include entirely to get the full default export.","Double-check spelling and casing (the parser lower-cases, so case does not matter, but the token must still match)."],"exampleFix":"// before\npaperclipai company export --include compnay,agnts\n// after\npaperclipai company export --include company,agents\n# or omit for all\npaperclipai company export","handlingStrategy":"validation","validationCode":"const VALID_BUCKETS = ['company', 'agents', 'projects', 'issues', 'tasks', 'skills'] as const;\nfunction parseInclude(input: string | undefined): { company: boolean; agents: boolean; projects: boolean; issues: boolean; skills: boolean } {\n  if (!input?.trim()) return { company: true, agents: true, projects: true, issues: true, skills: true };\n  const tokens = input.split(',').map((s) => s.trim().toLowerCase()).filter(Boolean);\n  const unknown = tokens.filter((t) => !VALID_BUCKETS.includes(t as any));\n  if (unknown.length) throw new Error(`Unknown --include tokens: ${unknown.join(', ')}. Valid: ${VALID_BUCKETS.join(', ')}`);\n  return {\n    company: tokens.includes('company'),\n    agents: tokens.includes('agents'),\n    projects: tokens.includes('projects'),\n    issues: tokens.includes('issues') || tokens.includes('tasks'),\n    skills: tokens.includes('skills'),\n  };\n}","typeGuard":null,"tryCatchPattern":"try { parseInclude(opts.include); }\ncatch (err) {\n  const msg = err instanceof Error ? err.message : '';\n  if (msg.startsWith('Invalid --include value.')) {\n    console.error('Valid --include tokens: company,agents,projects,issues,tasks,skills (or omit for all).');\n    process.exit(2);\n  }\n  throw err;\n}","preventionTips":["Remember 'tasks' is an alias for 'issues'; other names are rejected.","Omit --include to export everything (the safe default).","Lower-case is accepted, but spelling must match exactly.","Validate the token list in wrapper scripts before forwarding to the CLI."],"tags":["cli","company","validation","export","usage"],"backgroundTag":null,"analyzedSha":"67001ec6eb96ae601aa27bc91d9b2415d665334a","analyzedAt":"2026-08-12T12:05:45.408Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}