{"version":3,"file":"catalog.cjs","names":["bosContract","cliCommandMeta"],"sources":["../../src/cli/catalog.ts"],"sourcesContent":["import { bosContract } from \"../contract\";\nimport { type CliCommandMeta, cliCommandMeta } from \"../contract.meta\";\n\nexport type CommandDescriptor = {\n  key: keyof typeof bosContract;\n  commandPath: string[];\n  summary: string;\n  meta: CliCommandMeta;\n  procedure: (typeof bosContract)[keyof typeof bosContract];\n};\n\nfunction splitCamelCase(value: string): string[] {\n  return value\n    .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\n    .split(/\\s+/)\n    .map((part) => part.trim())\n    .filter(Boolean)\n    .map((part) => part.toLowerCase());\n}\n\nexport const commandCatalog: CommandDescriptor[] = (\n  Object.entries(bosContract) as Array<\n    [keyof typeof bosContract, (typeof bosContract)[keyof typeof bosContract]]\n  >\n).map(([key, procedure]) => {\n  const meta = cliCommandMeta[key as keyof typeof cliCommandMeta] ?? {\n    summary: splitCamelCase(String(key)).join(\" \"),\n  };\n  return {\n    key,\n    commandPath: meta.commandPath ?? splitCamelCase(String(key)),\n    summary: meta.summary,\n    meta,\n    procedure,\n  };\n});\n\nexport function findCommandDescriptor(\n  args: string[],\n): { descriptor: CommandDescriptor; consumed: number } | null {\n  const sorted = [...commandCatalog].sort((a, b) => b.commandPath.length - a.commandPath.length);\n  for (const descriptor of sorted) {\n    const parts = args.slice(0, descriptor.commandPath.length).map((part) => part.toLowerCase());\n    if (parts.join(\" \") === descriptor.commandPath.join(\" \")) {\n      return { descriptor, consumed: descriptor.commandPath.length };\n    }\n  }\n  return null;\n}\n"],"mappings":";;;;AAWA,SAAS,eAAe,OAAyB;AAC/C,QAAO,MACJ,QAAQ,sBAAsB,QAAQ,CACtC,MAAM,MAAM,CACZ,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,OAAO,QAAQ,CACf,KAAK,SAAS,KAAK,aAAa,CAAC;;AAGtC,MAAa,iBACX,OAAO,QAAQA,6BAAY,CAG3B,KAAK,CAAC,KAAK,eAAe;CAC1B,MAAM,OAAOC,qCAAe,QAAuC,EACjE,SAAS,eAAe,OAAO,IAAI,CAAC,CAAC,KAAK,IAAI,EAC/C;AACD,QAAO;EACL;EACA,aAAa,KAAK,eAAe,eAAe,OAAO,IAAI,CAAC;EAC5D,SAAS,KAAK;EACd;EACA;EACD;EACD;AAEF,SAAgB,sBACd,MAC4D;CAC5D,MAAM,SAAS,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,MAAM,EAAE,YAAY,SAAS,EAAE,YAAY,OAAO;AAC9F,MAAK,MAAM,cAAc,OAEvB,KADc,KAAK,MAAM,GAAG,WAAW,YAAY,OAAO,CAAC,KAAK,SAAS,KAAK,aAAa,CAClF,CAAC,KAAK,IAAI,KAAK,WAAW,YAAY,KAAK,IAAI,CACtD,QAAO;EAAE;EAAY,UAAU,WAAW,YAAY;EAAQ;AAGlE,QAAO"}