{"version":3,"sources":["../src/index.ts","../../../node_modules/.pnpm/tsup@8.4.0_@swc+core@1.11.24_postcss@8.5.3_typescript@5.8.2_yaml@2.7.1/node_modules/tsup/assets/cjs_shims.js","../src/types/DPMLError.ts","../src/core/adapters/CommanderAdapter.ts","../src/core/discovery/NpxDiscoverer.ts","../src/core/execution/NpxExecutor.ts","../src/core/execution/ExecutorFactory.ts","../src/core/cliService.ts","../src/api/cli.ts"],"sourcesContent":["/**\n * DPML CLI Module\n *\n * This module provides the DPML Command Line Interface functionality.\n * External users should only import from this file.\n */\n\n// Export public API\nexport { execute } from './api/cli';\n\n// Export public types\nexport type { CommandAdapter } from './types/CommandAdapter';\nexport type { DomainDiscoverer } from './types/DomainDiscoverer';\nexport type { DomainExecutor } from './types/DomainExecutor';\nexport type { DomainInfo } from './types/DomainInfo';\nexport { DPMLError, DPMLErrorType } from './types/DPMLError';\n","// Shim globals in cjs bundle\n// There's a weird bug that esbuild will always inject importMetaUrl\n// if we export it as `const importMetaUrl = ... __filename ...`\n// But using a function will not cause this issue\n\nconst getImportMetaUrl = () =>\n  typeof document === 'undefined'\n    ? new URL(`file:${__filename}`).href\n    : (document.currentScript && document.currentScript.src) ||\n      new URL('main.js', document.baseURI).href\n\nexport const importMetaUrl = /* @__PURE__ */ getImportMetaUrl()\n","/**\n * DPML Error Type\n */\nexport enum DPMLErrorType {\n  /**\n   * Command Error\n   */\n  COMMAND = 'COMMAND',\n\n  /**\n   * Domain Discovery Error\n   */\n  DISCOVERY = 'DISCOVERY',\n\n  /**\n   * Execution Error\n   */\n  EXECUTION = 'EXECUTION',\n\n  /**\n   * Configuration Error\n   */\n  CONFIG = 'CONFIG',\n\n  /**\n   * Unknown Error\n   */\n  UNKNOWN = 'UNKNOWN'\n}\n\n/**\n * DPML Error\n *\n * Unified error class for handling all errors in DPML CLI.\n */\nexport class DPMLError extends Error {\n  /**\n   * Error Type\n   */\n  readonly type: DPMLErrorType;\n\n  /**\n   * Error Code\n   */\n  readonly code: string;\n\n  /**\n   * Original Error\n   */\n  readonly cause?: Error;\n\n  /**\n   * Create DPML Error\n   *\n   * @param message Error message\n   * @param type Error type\n   * @param code Error code\n   * @param cause Original error\n   */\n  constructor(\n    message: string,\n    type: DPMLErrorType = DPMLErrorType.UNKNOWN,\n    code: string = 'DPML_ERROR',\n    cause?: Error\n  ) {\n    super(message);\n    this.name = 'DPMLError';\n    this.type = type;\n    this.code = code;\n    this.cause = cause;\n  }\n}\n","import { readFileSync } from 'fs';\nimport { dirname, resolve } from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { Command } from 'commander';\n\nimport type { CommandAdapter } from '../../types/CommandAdapter';\nimport type { DomainDiscoverer } from '../../types/DomainDiscoverer';\nimport { DPMLError, DPMLErrorType } from '../../types/DPMLError';\nimport type { ExecutorFactory } from '../execution/ExecutorFactory';\n\n/**\n * Commander.js Adapter\n *\n * Command Adapter based on Commander.js.\n */\nexport class CommanderAdapter implements CommandAdapter {\n  /**\n   * Commander Program Instance\n   */\n  private program: Command;\n\n  /**\n   * Constructor\n   *\n   * @param domainDiscoverer Domain Discoverer\n   * @param executorFactory Executor Factory\n   */\n  constructor(\n    private readonly domainDiscoverer: DomainDiscoverer,\n    private readonly executorFactory: ExecutorFactory\n  ) {\n    // Create Commander Program Instance\n    this.program = new Command();\n\n    // Setup commands and options\n    this.setupCommands();\n  }\n\n  /**\n   * Parse and Execute CLI Command\n   *\n   * @param args Command line arguments\n   */\n  public async parseAndExecute(args: string[]): Promise<void> {\n    // 检查是否使用了--list选项\n    if (args.includes('--list') || args.includes('-l')) {\n      await this.handleListOption();\n\n      return;\n    }\n\n    // Parse command using Commander.js\n    await this.program.parseAsync(args, { from: 'user' });\n  }\n\n  /**\n   * Get CLI Version\n   *\n   * @returns Version string\n   */\n  public getVersion(): string {\n    try {\n      // 使用fs同步读取package.json\n      const __filename = fileURLToPath(import.meta.url);\n      const __dirname = dirname(__filename);\n      // 注意：从当前文件向上三级目录获取package.json\n      const packagePath = resolve(__dirname, '../../../package.json');\n      const packageJson = JSON.parse(readFileSync(packagePath, 'utf8'));\n\n      return packageJson.version || '0.1.0';\n    } catch (_error) {\n      // 读取失败时返回默认版本\n      return '0.1.0';\n    }\n  }\n\n  /**\n   * Set CLI Commands\n   */\n  private setupCommands(): void {\n    // Set Basic Information\n    this.program\n      .name('dpml')\n      .description('DPML (Deepractice Prompt Markup Language) Command Line Tool')\n      .version(this.getVersion(), '-v, --version', 'Display Version');\n\n    // 注意：--list选项由parseAndExecute方法直接处理，这里只添加标准选项帮助文档\n    this.program.option('-h, --help', 'Display help information');\n\n    // Default command handler for domain commands\n    this.program\n      .argument('[domain]', 'DPML domain name')\n      .argument('[args...]', 'Command arguments')\n      .option('-l, --list', 'List all available DPML domains') // 只是为了帮助文档显示\n      .action(async (domain: string | undefined, args: string[], options: { list?: boolean }) => {\n        // 如果指定了list选项，显示域列表(这不会被执行，由parseAndExecute直接处理)\n        if (options.list) {\n          await this.handleListOption();\n\n          return;\n        }\n\n        // If no domain provided, show help\n        if (!domain) {\n          this.program.help();\n\n          return;\n        }\n\n        // Handle domain command\n        await this.handleDomainCommand(domain, args);\n      });\n\n    // Add Help Text\n    this.program.addHelpText('after', `\nExample:\n  dpml --list     or  dpml -l          List all available domains\n  dpml -v         or  dpml --version   Display Version Information\n  dpml -h         or  dpml --help      Display Help Information\n  dpml core validate file.xml          Validate DPML Document\n  dpml agent chat config.xml           Interact with Agent\n\nFor more information, please visit: https://github.com/Deepractice/dpml\n`);\n  }\n\n  /**\n   * Handle List Option\n   */\n  private async handleListOption(): Promise<void> {\n    try {\n      // Get all available domains\n      const domains = await this.domainDiscoverer.listDomains();\n\n      if (domains.length === 0) {\n        console.log('No available DPML domain found');\n\n        return;\n      }\n\n      console.log('Available DPML domains:');\n      console.log('');\n\n      // Display domain list\n      domains.forEach(domain => {\n        console.log(`  ${domain.name}${domain.version ? ` (${domain.version})` : ''}`);\n      });\n    } catch (error) {\n      throw new DPMLError(\n        `Cannot list domains: ${error instanceof Error ? error.message : String(error)}`,\n        DPMLErrorType.DISCOVERY,\n        'LIST_DOMAINS_ERROR',\n        error instanceof Error ? error : undefined\n      );\n    }\n  }\n\n  /**\n   * Handle Domain Command\n   *\n   * @param domain Domain name\n   * @param args Command arguments\n   */\n  private async handleDomainCommand(domain: string, args: string[]): Promise<void> {\n    try {\n      // Find domain\n      const domainInfo = await this.domainDiscoverer.tryFindDomain(domain);\n\n      if (!domainInfo) {\n        // Get available domains for better error message\n        const domains = await this.domainDiscoverer.listDomains();\n        const availableDomains = domains.map(d => d.name).join(', ');\n\n        throw new DPMLError(\n          `Domain not found: ${domain}. Available domains: ${availableDomains || 'none'}`,\n          DPMLErrorType.DISCOVERY,\n          'DOMAIN_NOT_FOUND'\n        );\n      }\n\n      // Create executor\n      const executor = this.executorFactory.createExecutor(domainInfo);\n\n      // Execute command\n      await executor.execute(args);\n    } catch (error) {\n      if (error instanceof DPMLError) {\n        throw error;\n      }\n\n      throw new DPMLError(\n        `Domain Command Execution Failed: ${error instanceof Error ? error.message : String(error)}`,\n        DPMLErrorType.EXECUTION,\n        'DOMAIN_EXECUTION_ERROR',\n        error instanceof Error ? error : undefined\n      );\n    }\n  }\n}\n","import { execa } from 'execa';\n\nimport type { DomainDiscoverer } from '../../types/DomainDiscoverer';\nimport type { DomainInfo } from '../../types/DomainInfo';\nimport { DPMLError, DPMLErrorType } from '../../types/DPMLError';\n\n/**\n * Official Domain Package Mapping Table\n */\nconst OFFICIAL_DOMAINS: Record<string, string> = {\n  'agent': '@dpml/agent'\n};\n\n/**\n * NPX Domain Discoverer\n *\n * Use NPX to find domain packages and execute commands.\n */\nexport class NpxDiscoverer implements DomainDiscoverer {\n  /**\n   * Discoverer Name\n   */\n  public getName(): string {\n    return 'npx';\n  }\n\n  /**\n   * Try to Find Domain Information\n   *\n   * @param domain Domain name\n   * @returns Promise to domain information or null\n   */\n  public async tryFindDomain(domain: string): Promise<DomainInfo | null> {\n    try {\n      // Check if it's an official domain\n      if (domain in OFFICIAL_DOMAINS) {\n        const packageName = OFFICIAL_DOMAINS[domain];\n        const version = await this.getPackageVersion(packageName);\n\n        return {\n          name: domain,\n          packageName,\n          source: this.getName(),\n          version: version || '1.0.0'\n        };\n      }\n\n      // Check if it's a complete package name (@dpml/*)\n      if (domain.startsWith('@dpml/')) {\n        const name = domain.substring(6); // Remove '@dpml/' prefix\n        const version = await this.getPackageVersion(domain);\n\n        return {\n          name,\n          packageName: domain,\n          source: this.getName(),\n          version: version || '0.1.0'\n        };\n      }\n\n      // Try to find third-party package\n      const packageName = `@dpml/${domain}`;\n      const version = await this.getPackageVersion(packageName);\n\n      if (domain === 'custom' || version) {\n        return {\n          name: domain,\n          packageName,\n          source: this.getName(),\n          version: version || '0.1.0'\n        };\n      }\n\n      // Domain not found\n      return null;\n    } catch (error) {\n      // Search failed, return null\n      return null;\n    }\n  }\n\n  /**\n   * List Available Domains\n   *\n   * @returns Promise to domain information array\n   */\n  public async listDomains(): Promise<DomainInfo[]> {\n    try {\n      const officialDomains = await this.listOfficialDomains();\n\n      // For now, only return official domains\n      // Later, it can be expanded to find all installed @dpml/* packages\n      return officialDomains;\n    } catch (error) {\n      throw new DPMLError(\n        `Failed to list domains: ${error instanceof Error ? error.message : String(error)}`,\n        DPMLErrorType.DISCOVERY,\n        'LIST_DOMAINS_ERROR',\n        error instanceof Error ? error : undefined\n      );\n    }\n  }\n\n  /**\n   * List Official Domains\n   *\n   * @returns Promise to domain information array\n   */\n  private async listOfficialDomains(): Promise<DomainInfo[]> {\n    const domains: DomainInfo[] = [];\n\n    for (const [name, packageName] of Object.entries(OFFICIAL_DOMAINS)) {\n      try {\n        const version = await this.getPackageVersion(packageName);\n\n        domains.push({\n          name,\n          packageName,\n          source: this.getName(),\n          ...(version && { version })\n        });\n      } catch (error) {\n        // Skip packages that cannot get version\n        console.warn(`Could not get version for ${packageName}: ${error instanceof Error ? error.message : String(error)}`);\n      }\n    }\n\n    return domains;\n  }\n\n  /**\n   * Get Package Version\n   *\n   * @param packageName Package name\n   * @returns Promise to version or null\n   */\n  private async getPackageVersion(packageName: string): Promise<string | null> {\n    try {\n      // Use execa to execute npm view command\n      const { stdout, exitCode } = await execa('npm', ['view', packageName, 'version'], {\n        reject: false // Don't throw on non-zero exit codes\n      });\n\n      if (exitCode !== 0 || !stdout) {\n        return null;\n      }\n\n      return stdout.trim();\n    } catch (error) {\n      // Could not execute npm view command\n      console.warn(`Error checking version for ${packageName}: ${error instanceof Error ? error.message : String(error)}`);\n\n      return null;\n    }\n  }\n}\n","import { execa } from 'execa';\n\nimport type { DomainExecutor } from '../../types/DomainExecutor';\nimport type { DomainInfo } from '../../types/DomainInfo';\nimport { DPMLError, DPMLErrorType } from '../../types/DPMLError';\n\n/**\n * NPX Executor\n *\n * Use NPX to execute domain commands.\n */\nexport class NpxExecutor implements DomainExecutor {\n  /**\n   * Constructor\n   *\n   * @param domainInfo Domain Information\n   */\n  constructor(private readonly domainInfo: DomainInfo) {}\n\n  /**\n   * Get Domain Information\n   *\n   * @returns Domain Information\n   */\n  public getDomainInfo(): DomainInfo {\n    return this.domainInfo;\n  }\n\n  /**\n   * Execute Domain Command\n   *\n   * @param args Command arguments\n   */\n  public async execute(args: string[]): Promise<void> {\n    try {\n      // Use execa to execute npx command with the domain package\n      const result = await execa('npx', [this.domainInfo.packageName, ...args], {\n        stdio: 'inherit', // Pass stdio stream directly\n        reject: false // Don't throw on non-zero exit codes, handle manually\n      });\n\n      // Check exit code\n      if (result.exitCode !== 0) {\n        throw new DPMLError(\n          `Command Execution Failed, Exit Code: ${result.exitCode}`,\n          DPMLErrorType.EXECUTION,\n          'EXECUTION_FAILED'\n        );\n      }\n    } catch (error) {\n      // Handle execution errors\n      if (error instanceof DPMLError) {\n        throw error;\n      }\n\n      throw new DPMLError(\n        `Command Execution Error: ${error instanceof Error ? error.message : String(error)}`,\n        DPMLErrorType.EXECUTION,\n        'EXECUTION_ERROR',\n        error instanceof Error ? error : undefined\n      );\n    }\n  }\n}\n","import type { DomainExecutor } from '../../types/DomainExecutor';\nimport type { DomainInfo } from '../../types/DomainInfo';\nimport { DPMLError, DPMLErrorType } from '../../types/DPMLError';\n\nimport { NpxExecutor } from './NpxExecutor';\n\n/**\n * Executor Factory\n *\n * Create appropriate executor instance based on domain information.\n */\nexport class ExecutorFactory {\n  /**\n   * Create Executor\n   *\n   * @param domainInfo Domain Information\n   * @returns Domain Executor\n   */\n  public createExecutor(domainInfo: DomainInfo): DomainExecutor {\n    // Select executor type based on source\n    switch (domainInfo.source) {\n      case 'npx':\n        return new NpxExecutor(domainInfo);\n      default:\n        throw new DPMLError(\n          `Unsupported domain source: ${domainInfo.source}`,\n          DPMLErrorType.EXECUTION,\n          'UNSUPPORTED_DOMAIN_SOURCE'\n        );\n    }\n  }\n}\n","import type { CommandAdapter } from '../types/CommandAdapter';\nimport type { DomainDiscoverer } from '../types/DomainDiscoverer';\nimport { DPMLError, DPMLErrorType } from '../types/DPMLError';\n\nimport { CommanderAdapter } from './adapters/CommanderAdapter';\nimport { NpxDiscoverer } from './discovery/NpxDiscoverer';\nimport { ExecutorFactory } from './execution/ExecutorFactory';\n\n/**\n * CLI Service\n *\n * Top-level service module coordinating command parsing and execution.\n */\nexport const cliService = {\n  /**\n   * Execute CLI Command\n   *\n   * @param args Command line arguments\n   * @returns Promise to void\n   */\n  async execute(args: string[]): Promise<void> {\n    try {\n      // Initialize components\n      const components = await this.initialize();\n\n      // Execute command using the command adapter\n      await components.commandAdapter.parseAndExecute(args);\n    } catch (error) {\n      // Handle error\n      this.handleError(error);\n    }\n  },\n\n  /**\n   * Initialize CLI Components\n   *\n   * @returns Initialized component object\n   */\n  async initialize(): Promise<{\n    domainDiscoverer: DomainDiscoverer;\n    executorFactory: ExecutorFactory;\n    commandAdapter: CommandAdapter;\n  }> {\n    // Create domain discoverer\n    const domainDiscoverer = new NpxDiscoverer();\n\n    // Create executor factory\n    const executorFactory = new ExecutorFactory();\n\n    // Create command adapter\n    const commandAdapter = new CommanderAdapter(domainDiscoverer, executorFactory);\n\n    return {\n      domainDiscoverer,\n      executorFactory,\n      commandAdapter\n    };\n  },\n\n  /**\n   * Handle Error\n   *\n   * @param error Error object\n   */\n  handleError(error: unknown): never {\n    // Already DPML error, directly handle\n    if (error instanceof DPMLError) {\n      console.error(`Error: ${error.message}`);\n      process.exit(1);\n    }\n\n    // Convert to DPML error\n    const dpmlError = new DPMLError(\n      error instanceof Error ? error.message : String(error),\n      DPMLErrorType.UNKNOWN,\n      'UNKNOWN_ERROR',\n      error instanceof Error ? error : undefined\n    );\n\n    console.error(`Unknown Error: ${dpmlError.message}`);\n    process.exit(1);\n  }\n};\n","import { cliService } from '../core/cliService';\n\n/**\n * Execute CLI Command\n *\n * Process command line arguments and route to the corresponding domain package.\n *\n * @param args Command line arguments, default is process.argv.slice(2)\n * @returns Promise to void\n */\nexport async function execute(args: string[] = process.argv.slice(2)): Promise<void> {\n  // 委托给cliService执行命令\n  return cliService.execute(args);\n}\n"],"mappings":"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","names":["getImportMetaUrl","document","URL","__filename","href","currentScript","src","baseURI","importMetaUrl","DPMLErrorType","DPMLError","Error","constructor","message","type","code","cause","name","CommanderAdapter","constructor","domainDiscoverer","executorFactory","program","Command","setupCommands","parseAndExecute","args","includes","handleListOption","parseAsync","from","getVersion","__filename","fileURLToPath","__dirname","dirname","packagePath","resolve","packageJson","JSON","parse","readFileSync","version","_error","name","description","option","argument","action","domain","options","list","help","handleDomainCommand","addHelpText","domains","listDomains","length","console","log","forEach","error","DPMLError","Error","message","String","DPMLErrorType","DISCOVERY","undefined","domainInfo","tryFindDomain","availableDomains","map","d","join","executor","createExecutor","execute","EXECUTION","OFFICIAL_DOMAINS","NpxDiscoverer","getName","tryFindDomain","domain","packageName","version","getPackageVersion","name","source","startsWith","substring","error","listDomains","officialDomains","listOfficialDomains","DPMLError","Error","message","String","DPMLErrorType","DISCOVERY","undefined","domains","Object","entries","push","console","warn","stdout","exitCode","execa","reject","trim","import_execa","NpxExecutor","constructor","domainInfo","getDomainInfo","execute","args","result","execa","packageName","stdio","reject","exitCode","DPMLError","DPMLErrorType","EXECUTION","error","Error","message","String","undefined","ExecutorFactory","createExecutor","domainInfo","source","NpxExecutor","DPMLError","DPMLErrorType","EXECUTION","cliService","execute","args","components","initialize","commandAdapter","parseAndExecute","error","handleError","domainDiscoverer","NpxDiscoverer","executorFactory","ExecutorFactory","CommanderAdapter","DPMLError","console","message","process","exit","dpmlError","Error","String","DPMLErrorType","UNKNOWN","undefined","execute","args","process","argv","slice","cliService"]}