{"version":3,"sources":["/home/mkabumattar/work/withrawi/rawi/dist/chunk-YCKZBQZZ.cjs","../src/cli/commands/act.command.ts"],"names":["createActCommand","actCommand","Command","chalk","options","listActTemplates","listBuiltInTemplates","listCustomTemplates","showActTemplate","createCustomTemplate","editCustomTemplate","deleteCustomTemplate","showActOverview","customTemplates","ActTemplateManager","builtInCount","actTemplates","customCount","table","Table","select","id","input","value","label","category","description","template","error","errorMessage","templateId"],"mappings":"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","file":"/home/mkabumattar/work/withrawi/rawi/dist/chunk-YCKZBQZZ.cjs","sourcesContent":[null,"import {confirm, input, select} from '@inquirer/prompts';\nimport chalk from 'chalk';\nimport Table from 'cli-table3';\nimport {Command} from 'commander';\nimport {actTemplates} from '../../core/templates/act.js';\nimport {ActTemplateManager} from '../../core/templates/act-manager.js';\nimport {\n  listActTemplates,\n  listBuiltInTemplates,\n  listCustomTemplates,\n  showActTemplate,\n} from '../../core/templates/utils.js';\n\nexport const createActCommand = (): Command => {\n  const actCommand = new Command('act');\n\n  actCommand\n    .description(\n      [\n        chalk.bold('Manage act templates for specialized prompts.'),\n        '',\n        chalk.gray('Create, edit, and use custom act templates.'),\n        chalk.gray('View built-in templates and manage your own.'),\n        '─'.repeat(80),\n      ].join('\\n'),\n    )\n    .option('-l, --list', chalk.white('List all available act templates'))\n    .option('-b, --built-in', chalk.white('List only built-in act templates'))\n    .option('-c, --custom', chalk.white('List only custom act templates'))\n    .option(\n      '-s, --show <template>',\n      chalk.white('Show details of a specific act template'),\n    )\n    .option('--create', chalk.white('Create a new custom act template'))\n    .option(\n      '--edit <template>',\n      chalk.white('Edit an existing custom template'),\n    )\n    .option('--delete <template>', chalk.white('Delete a custom template'))\n    .addHelpText(\n      'after',\n      [\n        chalk.bold.cyan('\\nExamples:'),\n        chalk.gray(\n          '  rawi act --list                      # List all templates',\n        ),\n        chalk.gray(\n          '  rawi act --built-in                  # List built-in templates',\n        ),\n        chalk.gray(\n          '  rawi act --custom                    # List custom templates',\n        ),\n        chalk.gray(\n          '  rawi act --show my-template          # Show template details',\n        ),\n        chalk.gray(\n          '  rawi act --create                    # Create new template',\n        ),\n        chalk.gray(\n          '  rawi act --edit my-template          # Edit custom template',\n        ),\n        chalk.gray(\n          '  rawi act --delete my-template        # Delete custom template',\n        ),\n        '',\n        chalk.bold.cyan('Usage with ask:'),\n        chalk.gray('  rawi ask --act <template> \"your question\"'),\n      ].join('\\n'),\n    )\n    .action(async (options) => {\n      if (options.list) {\n        await listActTemplates();\n        return;\n      }\n\n      if (options.builtIn) {\n        await listBuiltInTemplates();\n        return;\n      }\n\n      if (options.custom) {\n        await listCustomTemplates();\n        return;\n      }\n\n      if (options.show) {\n        await showActTemplate(options.show);\n        return;\n      }\n\n      if (options.create) {\n        await createCustomTemplate();\n        return;\n      }\n\n      if (options.edit) {\n        await editCustomTemplate(options.edit);\n        return;\n      }\n\n      if (options.delete) {\n        await deleteCustomTemplate(options.delete);\n        return;\n      }\n\n      await showActOverview();\n    });\n\n  return actCommand;\n};\n\nasync function showActOverview(): Promise<void> {\n  const manager = new ActTemplateManager();\n  const customTemplates = await manager.listCustomTemplates();\n  const builtInCount = actTemplates.length;\n  const customCount = customTemplates.length;\n\n  console.log(chalk.bold.cyan('\\n🎭 Act Templates Overview'));\n  console.log();\n\n  const table = new Table({\n    head: [chalk.cyan('Type'), chalk.cyan('Count'), chalk.cyan('Description')],\n    style: {head: ['cyan']},\n    colWidths: [12, 8, 50],\n    wordWrap: true,\n  });\n\n  table.push([\n    chalk.gray('Built-in'),\n    chalk.white(builtInCount.toString()),\n    'Ready-to-use professional templates for various scenarios',\n  ]);\n\n  table.push([\n    chalk.yellow('Custom'),\n    chalk.white(customCount.toString()),\n    'Your personalized templates for specific needs',\n  ]);\n\n  console.log(table.toString());\n  console.log();\n\n  const choices = [\n    {name: '📋 List all templates', value: 'list'},\n    {name: '🔧 List built-in templates', value: 'builtin'},\n    {name: '📝 List custom templates', value: 'custom'},\n    {name: '✨ Create new template', value: 'create'},\n    {name: '❌ Exit', value: 'exit'},\n  ];\n\n  const action = await select({\n    message: 'What would you like to do?',\n    choices,\n  });\n\n  switch (action) {\n    case 'list':\n      await listActTemplates();\n      break;\n    case 'builtin':\n      await listBuiltInTemplates();\n      break;\n    case 'custom':\n      await listCustomTemplates();\n      break;\n    case 'create':\n      await createCustomTemplate();\n      break;\n    case 'exit':\n      break;\n  }\n}\n\nasync function createCustomTemplate(): Promise<void> {\n  console.log(chalk.bold.cyan('\\n✨ Create Custom Act Template'));\n  console.log(\n    chalk.gray('Create a personalized template for your specific needs.\\n'),\n  );\n\n  try {\n    const id = await input({\n      message: 'Template ID (unique identifier):',\n      validate: (value) => {\n        if (!value.trim()) return 'ID is required';\n        if (!/^[a-z0-9-]+$/.test(value.trim())) {\n          return 'ID must contain only lowercase letters, numbers, and hyphens';\n        }\n        return true;\n      },\n    });\n\n    const label = await input({\n      message: 'Template label (display name):',\n      validate: (value) => (value.trim() ? true : 'Label is required'),\n    });\n\n    const category = await input({\n      message: 'Category:',\n      validate: (value) => (value.trim() ? true : 'Category is required'),\n    });\n\n    const description = await input({\n      message: 'Description:',\n      validate: (value) => (value.trim() ? true : 'Description is required'),\n    });\n\n    console.log(chalk.yellow('\\nTemplate content:'));\n    console.log(chalk.dim('Use {userInput} as a placeholder for user input'));\n    console.log(chalk.dim('Example: \"Act as a {role}. {userInput}\"\\n'));\n\n    const template = await input({\n      message: 'Template content:',\n      validate: (value) => {\n        if (!value.trim()) return 'Template content is required';\n        if (!value.includes('{userInput}')) {\n          return 'Template must include {userInput} placeholder';\n        }\n        return true;\n      },\n    });\n\n    const manager = new ActTemplateManager();\n    await manager.createTemplate({\n      id: id.trim(),\n      label: label.trim(),\n      category: category.trim(),\n      description: description.trim(),\n      template: template.trim(),\n    });\n\n    console.log(chalk.green(`\\n✅ Template '${id}' created successfully!`));\n    console.log(chalk.dim(`Usage: rawi ask --act ${id} \"your question\"`));\n  } catch (error) {\n    const errorMessage =\n      error instanceof Error ? error.message : 'Unknown error';\n    console.error(chalk.red(`\\n❌ Error creating template: ${errorMessage}`));\n  }\n}\n\nasync function editCustomTemplate(templateId: string): Promise<void> {\n  console.log(chalk.bold.cyan(`\\n✏️  Edit Template: ${templateId}`));\n\n  try {\n    const manager = new ActTemplateManager();\n    const existing = await manager.getTemplate(templateId);\n\n    if (!existing) {\n      console.error(chalk.red(`❌ Template '${templateId}' not found.`));\n      return;\n    }\n\n    if (existing.isBuiltIn) {\n      console.error(\n        chalk.red(`❌ Cannot edit built-in template '${templateId}'.`),\n      );\n      console.log(\n        chalk.yellow(\n          '💡 Create a custom template instead with: rawi act --create',\n        ),\n      );\n      return;\n    }\n\n    console.log(chalk.gray(`Current values for '${templateId}':\\n`));\n\n    const label = await input({\n      message: 'Template label:',\n      default: existing.label,\n      validate: (value) => (value.trim() ? true : 'Label is required'),\n    });\n\n    const category = await input({\n      message: 'Category:',\n      default: existing.category,\n      validate: (value) => (value.trim() ? true : 'Category is required'),\n    });\n\n    const description = await input({\n      message: 'Description:',\n      default: existing.description,\n      validate: (value) => (value.trim() ? true : 'Description is required'),\n    });\n\n    const template = await input({\n      message: 'Template content:',\n      default: existing.template,\n      validate: (value) => {\n        if (!value.trim()) return 'Template content is required';\n        if (!value.includes('{userInput}')) {\n          return 'Template must include {userInput} placeholder';\n        }\n        return true;\n      },\n    });\n\n    await manager.updateTemplate(templateId, {\n      label: label.trim(),\n      category: category.trim(),\n      description: description.trim(),\n      template: template.trim(),\n    });\n\n    console.log(\n      chalk.green(`\\n✅ Template '${templateId}' updated successfully!`),\n    );\n  } catch (error) {\n    const errorMessage =\n      error instanceof Error ? error.message : 'Unknown error';\n    console.error(chalk.red(`\\n❌ Error editing template: ${errorMessage}`));\n  }\n}\n\nasync function deleteCustomTemplate(templateId: string): Promise<void> {\n  console.log(chalk.bold.red(`\\n🗑️  Delete Template: ${templateId}`));\n\n  try {\n    const manager = new ActTemplateManager();\n    const existing = await manager.getTemplate(templateId);\n\n    if (!existing) {\n      console.error(chalk.red(`❌ Template '${templateId}' not found.`));\n      return;\n    }\n\n    if (existing.isBuiltIn) {\n      console.error(\n        chalk.red(`❌ Cannot delete built-in template '${templateId}'.`),\n      );\n      return;\n    }\n\n    console.log(chalk.yellow(`About to delete template '${templateId}':`));\n    console.log(chalk.gray(`Label: ${existing.label}`));\n    console.log(chalk.gray(`Category: ${existing.category}`));\n    console.log();\n\n    const confirmed = await confirm({\n      message: 'Are you sure you want to delete this template?',\n      default: false,\n    });\n\n    if (!confirmed) {\n      console.log(chalk.gray('Delete cancelled.'));\n      return;\n    }\n\n    await manager.deleteTemplate(templateId);\n    console.log(\n      chalk.green(`\\n✅ Template '${templateId}' deleted successfully!`),\n    );\n  } catch (error) {\n    const errorMessage =\n      error instanceof Error ? error.message : 'Unknown error';\n    console.error(chalk.red(`\\n❌ Error deleting template: ${errorMessage}`));\n  }\n}\n"]}