@mutagent/cli 0.1.33 → 0.1.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/cli.js +583 -378
- package/dist/bin/cli.js.map +6 -5
- package/package.json +1 -1
package/dist/bin/cli.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/lib/config.ts", "../src/lib/errors.ts", "../src/lib/sdk-client.ts", "../src/bin/cli.ts", "../src/commands/auth.ts", "../src/lib/output.ts", "../src/lib/browser-auth.ts", "../src/lib/mutation-context.ts", "../src/commands/onboarding.ts", "../src/lib/explorer.ts", "../src/commands/login.ts", "../src/commands/prompts/index.ts", "../src/lib/ui-links.ts", "../src/commands/prompts/prompts-crud.ts", "../src/lib/schema-helpers.ts", "../src/commands/prompts/datasets.ts", "../src/commands/prompts/evaluations.ts", "../src/commands/prompts/guided-workflow.ts", "../src/commands/prompts/optimize.ts", "../src/lib/scorecard.ts", "../src/commands/traces.ts", "../src/commands/integrate.ts", "../src/lib/integrations/langchain.ts", "../src/lib/integrations/langgraph.ts", "../src/lib/integrations/vercel-ai.ts", "../src/lib/integrations/openai.ts", "../src/lib/integrations/registry.ts", "../src/commands/agents/index.ts", "../src/commands/agents/agents-crud.ts", "../src/commands/config.ts", "../src/commands/playground.ts", "../src/commands/workspaces.ts", "../src/commands/providers.ts", "../src/commands/init.ts", "../src/lib/framework-detection.ts", "../src/commands/explore.ts", "../src/commands/skills.ts", "../src/commands/usage.ts"],
|
|
3
|
+
"sources": ["../src/lib/config.ts", "../src/lib/errors.ts", "../src/lib/sdk-client.ts", "../src/bin/cli.ts", "../src/commands/auth.ts", "../src/lib/output.ts", "../src/lib/browser-auth.ts", "../src/lib/mutation-context.ts", "../src/commands/onboarding.ts", "../src/lib/explorer.ts", "../src/commands/login.ts", "../src/commands/prompts/index.ts", "../src/lib/ui-links.ts", "../src/lib/scorecard-details.ts", "../src/commands/prompts/prompts-crud.ts", "../src/lib/schema-helpers.ts", "../src/commands/prompts/datasets.ts", "../src/commands/prompts/evaluations.ts", "../src/commands/prompts/guided-workflow.ts", "../src/commands/prompts/optimize.ts", "../src/lib/scorecard.ts", "../src/commands/traces.ts", "../src/commands/integrate.ts", "../src/lib/integrations/langchain.ts", "../src/lib/integrations/langgraph.ts", "../src/lib/integrations/vercel-ai.ts", "../src/lib/integrations/openai.ts", "../src/lib/integrations/registry.ts", "../src/commands/agents/index.ts", "../src/commands/agents/agents-crud.ts", "../src/commands/config.ts", "../src/commands/playground.ts", "../src/commands/workspaces.ts", "../src/commands/providers.ts", "../src/commands/init.ts", "../src/lib/framework-detection.ts", "../src/commands/explore.ts", "../src/commands/skills.ts", "../src/commands/usage.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { cosmiconfigSync } from 'cosmiconfig';\nimport { z } from 'zod';\nimport { homedir } from 'os';\nimport { join } from 'path';\nimport { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';\nimport type { Config } from '../types/index.js';\n\nconst configSchema = z.object({\n apiKey: z.string().optional(),\n endpoint: z.string().default('https://api.mutagent.io'),\n format: z.enum(['table', 'json']).default('table'),\n timeout: z.number().default(30000),\n defaultWorkspace: z.string().optional(),\n defaultOrganization: z.string().optional(),\n});\n\nconst credentialsSchema = z.object({\n apiKey: z.string().optional(),\n endpoint: z.string().optional(),\n defaultWorkspace: z.string().optional(),\n defaultOrganization: z.string().optional(),\n expiresAt: z.string().optional(),\n}).loose();\n\nexport interface FullCredentials {\n apiKey: string;\n endpoint?: string;\n workspaceId?: string;\n organizationId?: string;\n expiresAt?: string;\n}\n\nconst CREDENTIALS_DIR = join(homedir(), '.config', 'mutagent');\nconst CREDENTIALS_FILE = join(CREDENTIALS_DIR, 'credentials.json');\n\nfunction parseJsonSafe<T>(content: string, schema: z.ZodType<T>): T | null {\n try {\n const parsed: unknown = JSON.parse(content);\n return schema.parse(parsed);\n } catch {\n return null;\n }\n}\n\nexport function loadConfig(): Config {\n // Load from cosmiconfig (rc files)\n const explorer = cosmiconfigSync('mutagent');\n const result = explorer.search();\n\n // Safely extract config from cosmiconfig result\n const rcConfig = result?.config as Record<string, unknown> | undefined;\n\n // Load from credentials file\n let credentials: z.infer<typeof credentialsSchema> | null = null;\n if (existsSync(CREDENTIALS_FILE)) {\n credentials = parseJsonSafe(readFileSync(CREDENTIALS_FILE, 'utf-8'), credentialsSchema);\n }\n\n // Merge configs: ENV > credentials > rc files > defaults\n const merged = {\n providers: {},\n environment: 'production',\n ...rcConfig,\n ...credentials,\n apiKey: process.env.MUTAGENT_API_KEY ?? credentials?.apiKey ?? (rcConfig?.apiKey as string | undefined),\n endpoint: process.env.MUTAGENT_ENDPOINT ?? credentials?.endpoint ?? (rcConfig?.endpoint as string | undefined),\n defaultWorkspace: credentials?.defaultWorkspace ?? (rcConfig?.defaultWorkspace as string | undefined),\n defaultOrganization: credentials?.defaultOrganization ?? (rcConfig?.defaultOrganization as string | undefined),\n };\n\n return configSchema.parse(merged) as Config;\n}\n\nexport function saveCredentials(apiKey: string, endpoint?: string): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n const config = loadConfig();\n const credentials = {\n apiKey,\n endpoint: endpoint ?? config.endpoint,\n };\n\n writeFileSync(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));\n}\n\n/**\n * Save full credentials including workspace and organization info\n * Used by browser auth flow which returns complete credential set\n */\nexport function saveFullCredentials(creds: FullCredentials): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n // Load existing credentials to preserve any custom settings\n let existingCredentials: Record<string, unknown> = {};\n if (existsSync(CREDENTIALS_FILE)) {\n try {\n existingCredentials = JSON.parse(readFileSync(CREDENTIALS_FILE, 'utf-8')) as Record<string, unknown>;\n } catch {\n // Ignore parse errors, start fresh\n }\n }\n\n const credentials = {\n ...existingCredentials,\n apiKey: creds.apiKey,\n endpoint: creds.endpoint ?? existingCredentials.endpoint ?? 'https://api.mutagent.io',\n defaultWorkspace: creds.workspaceId ?? existingCredentials.defaultWorkspace,\n defaultOrganization: creds.organizationId ?? existingCredentials.defaultOrganization,\n expiresAt: creds.expiresAt,\n };\n\n writeFileSync(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));\n}\n\nexport function clearCredentials(): void {\n if (existsSync(CREDENTIALS_FILE)) {\n writeFileSync(CREDENTIALS_FILE, JSON.stringify({}));\n }\n}\n\nexport function hasCredentials(): boolean {\n if (process.env.MUTAGENT_API_KEY) return true;\n if (!existsSync(CREDENTIALS_FILE)) return false;\n\n const credentials = parseJsonSafe(readFileSync(CREDENTIALS_FILE, 'utf-8'), credentialsSchema);\n return credentials?.apiKey !== undefined && credentials.apiKey !== '';\n}\n\nexport function getApiKey(): string | undefined {\n return process.env.MUTAGENT_API_KEY ?? loadConfig().apiKey;\n}\n\nexport function setDefaultWorkspace(workspaceId: string): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n let existingCredentials: Record<string, unknown> = {};\n if (existsSync(CREDENTIALS_FILE)) {\n try {\n existingCredentials = JSON.parse(readFileSync(CREDENTIALS_FILE, 'utf-8')) as Record<string, unknown>;\n } catch {\n // Ignore parse errors, start fresh\n }\n }\n\n const updated = {\n ...existingCredentials,\n defaultWorkspace: workspaceId,\n };\n\n writeFileSync(CREDENTIALS_FILE, JSON.stringify(updated, null, 2));\n}\n\nexport function setDefaultOrganization(organizationId: string): void {\n if (!existsSync(CREDENTIALS_DIR)) {\n mkdirSync(CREDENTIALS_DIR, { recursive: true });\n }\n\n let existingCredentials: Record<string, unknown> = {};\n if (existsSync(CREDENTIALS_FILE)) {\n try {\n existingCredentials = JSON.parse(readFileSync(CREDENTIALS_FILE, 'utf-8')) as Record<string, unknown>;\n } catch {\n // Ignore parse errors, start fresh\n }\n }\n\n const updated = {\n ...existingCredentials,\n defaultOrganization: organizationId,\n };\n\n writeFileSync(CREDENTIALS_FILE, JSON.stringify(updated, null, 2));\n}\n",
|
|
6
6
|
"export class MutagentError extends Error {\n constructor(\n public code: string,\n message: string,\n public suggestion?: string,\n public exitCode = 1\n ) {\n super(message);\n this.name = 'MutagentError';\n }\n\n toJSON(): { success: false; error: string; code: string; suggestedAction?: string } {\n return {\n success: false,\n error: this.message,\n code: this.code,\n suggestedAction: this.suggestion,\n };\n }\n}\n\nexport interface AuthenticationErrorOptions {\n suggestions?: string[];\n cause?: Error;\n}\n\nexport const AUTH_REMEDIATION_MESSAGE = [\n 'Authentication required. Options:',\n ' Interactive: mutagent auth login --browser',\n ' Non-interactive: export MUTAGENT_API_KEY=<your-key>',\n ' CI/CD: mutagent auth login --api-key <key>',\n].join('\\n');\n\nexport class AuthenticationError extends MutagentError {\n readonly suggestions: string[];\n override readonly cause?: Error;\n\n constructor(\n message?: string,\n options: AuthenticationErrorOptions = {}\n ) {\n super(\n 'AUTH_REQUIRED',\n message ?? 'Authentication required. Please run \"mutagent auth login\"',\n options.suggestions ? options.suggestions[0] : 'Run: mutagent auth login --browser',\n 2\n );\n this.suggestions = options.suggestions ?? [\n 'mutagent auth login --browser',\n 'export MUTAGENT_API_KEY=<your-key>',\n 'mutagent auth login --api-key <key>',\n ];\n this.suggestion = options.suggestions ? options.suggestions[0] : 'Run: mutagent auth login --browser';\n this.cause = options.cause;\n }\n}\n\nexport class ApiError extends MutagentError {\n readonly statusCode: number;\n\n constructor(status: number, message: string) {\n super(\n `API_${String(status)}`,\n message,\n status === 401 ? 'Check your API key with: mutagent auth status' : undefined,\n 1\n );\n this.statusCode = status;\n }\n}\n\nexport const WORKSPACE_REMEDIATION_MESSAGE = [\n 'Workspace context missing. To fix:',\n ' mutagent config set workspace <workspace-id> # Set default workspace',\n ' mutagent workspaces list # List available workspaces',\n].join('\\n');\n\nexport class WorkspaceContextError extends MutagentError {\n constructor(message?: string) {\n super(\n 'WORKSPACE_REQUIRED',\n message ?? 'Workspace context is required but not configured',\n 'Run: mutagent config set workspace <workspace-id>',\n 3\n );\n }\n}\n\nexport class ValidationError extends MutagentError {\n constructor(message: string) {\n super(\n 'VALIDATION_ERROR',\n message,\n 'Check the command syntax with: mutagent <command> --help',\n 1\n );\n }\n}\n\n// =============================================================================\n// Additional Error Classes for Configuration & Auth System\n// =============================================================================\n\nexport class CredentialsExpiredError extends AuthenticationError {\n readonly expiredAt: Date;\n\n constructor(expiredAt: Date) {\n super();\n this.expiredAt = expiredAt;\n this.code = 'AUTH_EXPIRED';\n this.message = `Credentials expired at ${expiredAt.toISOString()}`;\n this.suggestion = 'Run \"mutagent auth login\" to refresh your credentials';\n }\n}\n\nexport class InvalidApiKeyError extends MutagentError {\n constructor(keyPreview?: string) {\n const preview = keyPreview ? ` (received: \"${keyPreview}...\")` : '';\n super(\n 'INVALID_API_KEY',\n `Invalid API key format${preview}`,\n 'API keys should start with \"sk_\" or \"sk-\" and be at least 20 characters',\n 2\n );\n }\n}\n\nexport interface ConfigErrorOptions {\n cause?: Error;\n suggestions?: string[];\n configPath?: string;\n}\n\nexport class ConfigError extends MutagentError {\n readonly configPath?: string;\n readonly suggestions: string[];\n override readonly cause?: Error;\n\n constructor(\n message: string,\n options: ConfigErrorOptions = {}\n ) {\n super(\n 'CONFIG_ERROR',\n message,\n options.suggestions ? options.suggestions[0] : 'Run \"mutagent config validate\" to check your configuration',\n 3\n );\n this.configPath = options.configPath;\n this.suggestions = options.suggestions ?? ['Run \"mutagent config validate\" to check your configuration'];\n this.suggestion = options.suggestions ? options.suggestions[0] : 'Run \"mutagent config validate\" to check your configuration';\n this.cause = options.cause;\n }\n}\n\nexport class ConfigNotFoundError extends ConfigError {\n constructor(configPath: string) {\n super(\n `Configuration file not found: ${configPath}`,\n { suggestions: ['Create a configuration file with \"mutagent config init\" or use --config'] }\n );\n this.code = 'CONFIG_NOT_FOUND';\n this.suggestion = 'Create a configuration file with \"mutagent config init\" or use --config';\n }\n}\n\nexport class ConfigParseError extends ConfigError {\n readonly parseError: Error;\n\n constructor(\n configPath: string,\n parseError: Error\n ) {\n super(\n `Failed to parse configuration file: ${configPath}`,\n { suggestions: ['Validate your JSON/JavaScript syntax and check for trailing commas'] }\n );\n this.code = 'CONFIG_PARSE_ERROR';\n this.suggestion = 'Validate your JSON/JavaScript syntax and check for trailing commas';\n this.parseError = parseError;\n }\n}\n\nexport interface PermissionErrorOptions {\n cause?: Error;\n}\n\nexport class PermissionError extends MutagentError {\n readonly path?: string;\n readonly operation: string;\n override readonly cause?: Error;\n\n constructor(\n operation: string,\n path?: string,\n options: PermissionErrorOptions = {}\n ) {\n const pathMsg = path ? ` at ${path}` : '';\n super(\n 'PERMISSION_ERROR',\n `Permission denied: ${operation}${pathMsg}`,\n 'Check file permissions and ensure the file is not read-only',\n 8\n );\n this.operation = operation;\n this.path = path;\n this.cause = options.cause;\n }\n}\n\nexport class NetworkError extends MutagentError {\n readonly url?: string;\n readonly statusCode?: number;\n\n constructor(\n message = 'Network error',\n url?: string,\n statusCode?: number\n ) {\n super(\n 'NETWORK_ERROR',\n message,\n 'Check your internet connection and verify the server URL',\n 5\n );\n this.url = url;\n this.statusCode = statusCode;\n }\n}\n\nexport class RateLimitError extends NetworkError {\n readonly retryAfter?: number;\n\n constructor(\n retryAfter?: number\n ) {\n super(\n 'Rate limit exceeded',\n undefined,\n 429\n );\n this.code = 'RATE_LIMIT_ERROR';\n this.suggestion = retryAfter \n ? `Wait ${String(retryAfter)} seconds before retrying`\n : 'Wait a few seconds before retrying';\n this.retryAfter = retryAfter;\n this.exitCode = 6;\n }\n}\n\nexport class NotFoundError extends MutagentError {\n constructor(resource: string, id: string) {\n super(\n 'NOT_FOUND',\n `${resource} not found: ${id}`,\n `Check the ID and try again. List available ${resource.toLowerCase()}s with the appropriate list command.`,\n 1\n );\n }\n}\n\nexport class QuotaExceededError extends MutagentError {\n constructor(message?: string) {\n super(\n 'QUOTA_EXCEEDED',\n message ?? 'Quota exceeded',\n 'Check your plan limits or contact support to upgrade',\n 1\n );\n }\n}\n\nexport class PrerequisiteMissingError extends MutagentError {\n constructor(what: string, howToFix: string) {\n super(\n 'PREREQUISITE_MISSING',\n what,\n howToFix,\n 1\n );\n }\n}\n\nexport class ProviderError extends MutagentError {\n constructor(message: string, suggestion?: string) {\n super(\n 'PROVIDER_ERROR',\n message,\n suggestion ?? 'Check your provider configuration with: mutagent providers list',\n 1\n );\n }\n}\n\n// =============================================================================\n// Error Factory Functions\n// =============================================================================\n\nexport function createErrorFromUnknown(error: unknown): MutagentError {\n if (error instanceof MutagentError) {\n return error;\n }\n\n if (error instanceof Error) {\n return new MutagentError(\n 'UNKNOWN_ERROR',\n error.message,\n undefined,\n 1\n );\n }\n\n return new MutagentError(\n 'UNKNOWN_ERROR',\n typeof error === 'string' ? error : 'An unknown error occurred',\n undefined,\n 1\n );\n}\n\nexport function handleError(error: unknown, isJson: boolean): never {\n if (error instanceof MutagentError) {\n if (isJson) {\n const jsonOutput = error.toJSON();\n // Include remediation info for auth errors\n if (error instanceof AuthenticationError) {\n (jsonOutput as Record<string, unknown>).remediation = {\n interactive: 'mutagent auth login --browser',\n nonInteractive: 'export MUTAGENT_API_KEY=<your-key>',\n ciCd: 'mutagent auth login --api-key <key>',\n };\n }\n // Include remediation info for workspace context errors\n if (error instanceof WorkspaceContextError) {\n (jsonOutput as Record<string, unknown>).remediation = {\n setWorkspace: 'mutagent config set workspace <workspace-id>',\n listWorkspaces: 'mutagent workspaces list',\n };\n }\n // Include auth recovery hint for 403 API errors\n if (error instanceof ApiError && error.statusCode === 403) {\n (jsonOutput as Record<string, unknown>).remediation = {\n interactive: 'mutagent auth login --browser',\n nonInteractive: 'export MUTAGENT_API_KEY=<your-key>',\n checkPermissions: 'Verify your API key has the required permissions',\n };\n }\n // Include _agentGuidance for AI agents to self-correct\n if (error.suggestion) {\n const helpMatch = /^Run:\\s+(mutagent\\s+[^\\n]+--help)/.exec(error.suggestion);\n const helpCommand = helpMatch ? helpMatch[1] : 'mutagent --help';\n (jsonOutput as Record<string, unknown>)._agentGuidance = {\n helpCommand,\n suggestion: error.suggestion,\n };\n }\n console.log(JSON.stringify(jsonOutput, null, 2));\n } else {\n console.error(`Error: ${error.message}`);\n if (error instanceof AuthenticationError) {\n console.error('');\n console.error(AUTH_REMEDIATION_MESSAGE);\n } else if (error instanceof WorkspaceContextError) {\n console.error('');\n console.error(WORKSPACE_REMEDIATION_MESSAGE);\n } else if (error instanceof ApiError && error.statusCode === 403) {\n console.error('');\n console.error('Access denied. To fix:');\n console.error(' mutagent auth login --browser # Re-authenticate');\n console.error(' export MUTAGENT_API_KEY=mt_xxx # Or use a different API key');\n } else if (error instanceof ValidationError) {\n if (error.suggestion) {\n console.error(`Suggestion: ${error.suggestion}`);\n }\n console.error('');\n console.error('Run `mutagent <command> --help` for usage information.');\n } else if (error.suggestion) {\n console.error(`Suggestion: ${error.suggestion}`);\n }\n // Show help hint for missing arguments or invalid input errors\n if (error.code === 'MISSING_ARGUMENTS' || error.code === 'INVALID_ARGUMENTS' || error.code === 'INVALID_INPUT') {\n console.error('');\n console.error('Run `mutagent <command> --help` for usage information.');\n }\n }\n process.exit(error.exitCode);\n }\n\n // Catch Speakeasy SDK internal errors that leaked past sdk-client wrapper\n if (error && typeof error === 'object') {\n const sdkErr = error as { name?: string; rawValue?: unknown; rawMessage?: string; message?: string };\n if (\n sdkErr.name === 'SDKValidationError' ||\n sdkErr.name === 'SDKError' ||\n sdkErr.rawValue !== undefined ||\n sdkErr.rawMessage !== undefined\n ) {\n const friendlyMessage = sdkErr.rawMessage ?? sdkErr.message ?? 'Request failed';\n const wrapped = new MutagentError(\n 'REQUEST_FAILED',\n friendlyMessage,\n 'Check your input and try again. Run the command with --help for usage details.'\n );\n if (isJson) {\n console.log(JSON.stringify(wrapped.toJSON(), null, 2));\n } else {\n console.error(`Error: ${wrapped.message}`);\n if (wrapped.suggestion) {\n console.error(`Suggestion: ${wrapped.suggestion}`);\n }\n }\n process.exit(1);\n }\n }\n\n // Unknown error\n const message = error instanceof Error ? error.message : 'Unknown error';\n if (isJson) {\n console.log(JSON.stringify({ success: false, error: message, code: 'UNKNOWN_ERROR' }, null, 2));\n } else {\n console.error(`Error: ${message}`);\n }\n process.exit(1);\n}\n",
|
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
"import chalk from 'chalk';\nimport { resolve } from 'path';\nimport { exploreCodebase, parseExtensions, parseExcludeDirs } from '../lib/explorer.js';\n\n/**\n * Post-onboarding flow presented after successful first login.\n * Offers 3 paths: Guided Integration, Free-flow Optimization, or Exit.\n *\n * IMPORTANT: This function is APPENDED to the auth login success handler.\n * It must NOT modify any auth state or credentials.\n */\nexport async function runPostOnboarding(): Promise<void> {\n const inquirer = (await import('inquirer')).default;\n\n console.log('');\n console.log(chalk.bold.cyan(' What would you like to do next?'));\n console.log('');\n\n const { path: selectedPath } = await inquirer.prompt<{ path: 'integrate' | 'optimize' | 'exit' }>([{\n type: 'list',\n name: 'path',\n message: 'Choose your path:',\n choices: [\n {\n name: `${chalk.green('A')} Guided Integration — connect your AI framework`,\n value: 'integrate',\n },\n {\n name: `${chalk.green('B')} Quick Optimization — upload a prompt and optimize it`,\n value: 'optimize',\n },\n {\n name: `${chalk.green('C')} Exit — explore on your own`,\n value: 'exit',\n },\n ],\n }]);\n\n if (selectedPath === 'exit') {\n console.log('');\n console.log(chalk.dim(' You can run `mutagent --help` anytime to see available commands.'));\n console.log(chalk.dim(' Try `mutagent explore` to scan your codebase for prompts.'));\n console.log('');\n return;\n }\n\n // Run explore on current directory\n console.log('');\n console.log(chalk.cyan(' Scanning your codebase...'));\n console.log('');\n\n const scanPath = resolve('.');\n const result = exploreCodebase({\n path: scanPath,\n depth: 10,\n extensions: parseExtensions('**/*.{ts,js,py,tsx,jsx}'),\n excludeDirs: parseExcludeDirs('node_modules,dist,.git,build,.next,__pycache__,venv,.venv'),\n markersOnly: false,\n });\n\n const totalFindings = result.prompts.length + result.datasets.length;\n\n if (totalFindings > 0) {\n console.log(chalk.green(` Found ${String(result.prompts.length)} prompt(s) and ${String(result.datasets.length)} dataset(s)`));\n } else {\n console.log(chalk.dim(' No prompts or datasets detected yet.'));\n }\n console.log('');\n\n if (selectedPath === 'integrate') {\n await runIntegrationPath();\n } else {\n runOptimizationPath(result.prompts.length, result.datasets.length);\n }\n}\n\nasync function runIntegrationPath(): Promise<void> {\n const inquirerMod = (await import('inquirer')).default;\n const { framework } = await inquirerMod.prompt<{ framework: string }>([{\n type: 'list',\n name: 'framework',\n message: 'Which AI framework are you using?',\n choices: [\n { name: 'LangChain', value: 'langchain' },\n { name: 'LangGraph', value: 'langgraph' },\n { name: 'Vercel AI SDK', value: 'vercel-ai' },\n { name: 'OpenAI SDK', value: 'openai' },\n ],\n }]);\n\n console.log('');\n console.log(chalk.bold(' Next steps:'));\n console.log('');\n console.log(` 1. ${chalk.green(`mutagent integrate ${framework}`)}`);\n console.log(` Get the integration guide for ${framework}`);\n console.log('');\n console.log(` 2. ${chalk.green(`mutagent integrate ${framework} --verify`)}`);\n console.log(' Verify your integration is working');\n console.log('');\n console.log(` 3. ${chalk.green('mutagent explore')}`);\n console.log(' Re-scan to confirm markers are in place');\n console.log('');\n}\n\nfunction runOptimizationPath(promptCount: number, datasetCount: number): void {\n console.log(chalk.bold(' Quick Optimization Workflow:'));\n console.log('');\n\n let step = 1;\n\n if (promptCount === 0) {\n console.log(` ${String(step)}. ${chalk.green('mutagent prompts create --name \"my-prompt\" --raw \"Your prompt with {{variables}}\"')}`);\n console.log(' Create a prompt with template variables');\n console.log('');\n step++;\n } else {\n console.log(chalk.dim(` ${chalk.green('\\u2713')} Prompts detected in codebase (${String(promptCount)} found)`));\n console.log(chalk.dim(` Upload one: mutagent prompts create --name \"my-prompt\" --raw-file <path>`));\n console.log('');\n }\n\n if (datasetCount === 0) {\n console.log(` ${String(step)}. ${chalk.green('mutagent prompts dataset add <prompt-id> -d \\'[{\"input\":{...},\"expectedOutput\":{...}}]\\' --name \"my-dataset\"')}`);\n console.log(' Upload a dataset with input/output pairs');\n console.log('');\n step++;\n } else {\n console.log(chalk.dim(` ${chalk.green('\\u2713')} Datasets detected in codebase (${String(datasetCount)} found)`));\n console.log(chalk.dim(` Upload one: mutagent prompts dataset add <prompt-id> -d '[...]' --name \"my-dataset\"`));\n console.log('');\n }\n\n console.log(` ${String(step)}. ${chalk.green(`mutagent prompts evaluation create <prompt-id> --name \"My Eval\" -d '{\"evalConfig\":{\"criteria\":[...]}}'`)}`);\n console.log(' Define evaluation criteria');\n console.log('');\n step++;\n\n console.log(` ${String(step)}. ${chalk.green('mutagent prompts optimize start <prompt-id> --dataset <dataset-id>')}`);\n console.log(' Start the optimization loop');\n console.log('');\n\n console.log(chalk.dim(' Tip: Use `mutagent prompts list` to see your prompt IDs.'));\n console.log('');\n}\n",
|
|
14
14
|
"import { readdirSync, readFileSync, statSync } from 'fs';\nimport { join, relative, extname, basename } from 'path';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface ExploreOptions {\n path: string;\n depth: number;\n extensions: string[];\n excludeDirs: string[];\n markersOnly: boolean;\n}\n\nexport interface DiscoveredPrompt {\n file: string;\n line: number;\n preview: string;\n reason: string;\n confidence: 'high' | 'medium' | 'low';\n}\n\nexport interface DiscoveredDataset {\n file: string;\n name: string;\n items: number;\n}\n\nexport interface MarkerEntry {\n file: string;\n line: number;\n type: 'prompt' | 'dataset' | 'evaluation';\n platformId?: string;\n}\n\nexport interface ExploreResult {\n prompts: DiscoveredPrompt[];\n datasets: DiscoveredDataset[];\n markers: MarkerEntry[];\n}\n\n// =============================================================================\n// Heuristic Patterns\n// =============================================================================\n\n// Template variable pattern: {{variable_name}}\nconst TEMPLATE_VAR_PATTERN = /\\{\\{[a-zA-Z_][a-zA-Z0-9_]*\\}\\}/;\n\n// Prompt-like constant names\nconst PROMPT_NAME_PATTERN = /(?:const|let|var|export)\\s+\\w*(?:prompt|system|agent|instruction|template)\\w*\\s*=/i;\n\n// JSON schema indicators\nconst SCHEMA_PATTERN = /[\"']?(?:inputSchema|outputSchema|properties|required)[\"']?\\s*[=:]/;\n\n// Only match z.object() when variable name suggests prompt/output/input\nconst ZOD_PROMPT_SCHEMA_PATTERN = /(?:const|let|var|export)\\s+\\w*(?:prompt|output|input|response|schema|message)\\w*\\s*=\\s*z\\.object\\s*\\(/i;\n\n// Pydantic model definitions\nconst PYDANTIC_PATTERN = /class\\s+\\w+\\s*\\(\\s*(?:BaseModel|BaseSettings)\\s*\\)/;\n\n// MutagenT marker pattern\nconst MARKER_START_PATTERN = /MutagenT:START\\s+(\\w+)(?:\\s+id=(\\S+))?/;\n\n// =============================================================================\n// File Walking\n// =============================================================================\n\nfunction walkDir(\n dir: string,\n extensions: string[],\n excludeDirs: string[],\n maxDepth: number,\n currentDepth = 0,\n): string[] {\n if (currentDepth >= maxDepth) return [];\n\n const files: string[] = [];\n\n let entries: string[];\n try {\n entries = readdirSync(dir);\n } catch {\n return files;\n }\n\n for (const entry of entries) {\n const fullPath = join(dir, entry);\n\n let stat;\n try {\n stat = statSync(fullPath);\n } catch {\n continue;\n }\n\n if (stat.isDirectory()) {\n if (excludeDirs.includes(entry)) continue;\n files.push(...walkDir(fullPath, extensions, excludeDirs, maxDepth, currentDepth + 1));\n } else if (stat.isFile()) {\n const ext = extname(entry).toLowerCase();\n if (extensions.includes(ext)) {\n files.push(fullPath);\n }\n }\n }\n\n return files;\n}\n\n// =============================================================================\n// Scanners\n// =============================================================================\n\nfunction scanForPrompts(filePath: string, relativePath: string): DiscoveredPrompt[] {\n const results: DiscoveredPrompt[] = [];\n\n let content: string;\n try {\n content = readFileSync(filePath, 'utf-8');\n } catch {\n return results;\n }\n\n const lines = content.split('\\n');\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (!line) continue;\n\n // Check for template variables with surrounding context suggesting a prompt\n if (TEMPLATE_VAR_PATTERN.test(line)) {\n const preview = line.trim().substring(0, 80);\n results.push({\n file: relativePath,\n line: i + 1,\n preview,\n reason: 'template-variable',\n confidence: 'high',\n });\n }\n\n // Check for prompt-like constant declarations\n if (PROMPT_NAME_PATTERN.test(line)) {\n const preview = line.trim().substring(0, 80);\n // Avoid duplicate if same line matched template var\n if (!results.some(r => r.file === relativePath && r.line === i + 1)) {\n results.push({\n file: relativePath,\n line: i + 1,\n preview,\n reason: 'prompt-constant',\n confidence: 'medium',\n });\n }\n }\n\n // Check for schema definitions (Zod — only prompt/input/output related)\n if (ZOD_PROMPT_SCHEMA_PATTERN.test(line)) {\n const preview = line.trim().substring(0, 80);\n if (!results.some(r => r.file === relativePath && r.line === i + 1)) {\n results.push({\n file: relativePath,\n line: i + 1,\n preview,\n reason: 'zod-schema',\n confidence: 'low',\n });\n }\n }\n\n // Check for Pydantic models\n if (PYDANTIC_PATTERN.test(line)) {\n const preview = line.trim().substring(0, 80);\n if (!results.some(r => r.file === relativePath && r.line === i + 1)) {\n results.push({\n file: relativePath,\n line: i + 1,\n preview,\n reason: 'pydantic-model',\n confidence: 'medium',\n });\n }\n }\n }\n\n return results;\n}\n\nfunction scanForMarkers(filePath: string, relativePath: string): MarkerEntry[] {\n const results: MarkerEntry[] = [];\n\n let content: string;\n try {\n content = readFileSync(filePath, 'utf-8');\n } catch {\n return results;\n }\n\n const lines = content.split('\\n');\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (!line) continue;\n\n const match = MARKER_START_PATTERN.exec(line);\n if (match) {\n const rawType = match[1]?.toLowerCase();\n const platformId = match[2];\n const validTypes = new Set(['prompt', 'dataset', 'evaluation']);\n if (rawType && validTypes.has(rawType)) {\n results.push({\n file: relativePath,\n line: i + 1,\n type: rawType as MarkerEntry['type'],\n platformId,\n });\n }\n }\n }\n\n return results;\n}\n\nfunction scanJsonForSchemas(filePath: string, relativePath: string): DiscoveredPrompt[] {\n const results: DiscoveredPrompt[] = [];\n const ext = extname(filePath).toLowerCase();\n if (ext !== '.json') return results;\n\n let content: string;\n try {\n content = readFileSync(filePath, 'utf-8');\n } catch {\n return results;\n }\n\n // Quick check before parsing\n if (!SCHEMA_PATTERN.test(content)) return results;\n\n const preview = `JSON with schema definitions: ${basename(filePath)}`;\n results.push({\n file: relativePath,\n line: 1,\n preview: preview.substring(0, 80),\n reason: 'json-schema',\n confidence: 'medium',\n });\n\n return results;\n}\n\nfunction scanForDatasets(dir: string, rootPath: string, excludeDirs: string[], maxDepth: number): DiscoveredDataset[] {\n const results: DiscoveredDataset[] = [];\n const dataExtensions = ['.json', '.jsonl', '.csv'];\n const files = walkDir(dir, dataExtensions, excludeDirs, maxDepth);\n\n for (const filePath of files) {\n const relativePath = relative(rootPath, filePath);\n const ext = extname(filePath).toLowerCase();\n const name = basename(filePath, ext);\n\n let content: string;\n try {\n content = readFileSync(filePath, 'utf-8');\n } catch {\n continue;\n }\n\n if (ext === '.csv') {\n const lines = content.trim().split('\\n');\n if (lines.length > 1) {\n // Check header for dataset-like columns\n const header = lines[0]?.toLowerCase() ?? '';\n if (header.includes('input') || header.includes('output') || header.includes('expected')) {\n results.push({ file: relativePath, name, items: lines.length - 1 });\n }\n }\n } else if (ext === '.jsonl') {\n const lines = content.trim().split('\\n').filter(l => l.trim().length > 0);\n if (lines.length > 0) {\n try {\n const first = JSON.parse(lines[0] ?? '{}') as Record<string, unknown>;\n if ('input' in first || 'expectedOutput' in first) {\n results.push({ file: relativePath, name, items: lines.length });\n }\n } catch {\n // Not valid JSONL\n }\n }\n } else if (ext === '.json') {\n try {\n const parsed: unknown = JSON.parse(content);\n if (Array.isArray(parsed) && parsed.length > 0) {\n const first = parsed[0] as Record<string, unknown>;\n if ('input' in first || 'expectedOutput' in first) {\n results.push({ file: relativePath, name, items: parsed.length });\n }\n }\n } catch {\n // Not valid JSON\n }\n }\n }\n\n return results;\n}\n\n// =============================================================================\n// Main Explore Function\n// =============================================================================\n\nexport function exploreCodebase(options: ExploreOptions): ExploreResult {\n const rootPath = options.path;\n const prompts: DiscoveredPrompt[] = [];\n const datasets: DiscoveredDataset[] = [];\n const markers: MarkerEntry[] = [];\n\n // Walk source files\n const sourceFiles = walkDir(rootPath, options.extensions, options.excludeDirs, options.depth);\n\n for (const filePath of sourceFiles) {\n const relativePath = relative(rootPath, filePath);\n\n // Always scan for markers\n markers.push(...scanForMarkers(filePath, relativePath));\n\n // Heuristic scanning (skip if markers-only mode)\n if (!options.markersOnly) {\n prompts.push(...scanForPrompts(filePath, relativePath));\n }\n }\n\n // Also scan JSON files for schema patterns (heuristic mode only)\n if (!options.markersOnly) {\n const jsonFiles = walkDir(rootPath, ['.json'], options.excludeDirs, options.depth);\n for (const filePath of jsonFiles) {\n const relativePath = relative(rootPath, filePath);\n prompts.push(...scanJsonForSchemas(filePath, relativePath));\n }\n\n // Scan for dataset files\n datasets.push(...scanForDatasets(rootPath, rootPath, options.excludeDirs, options.depth));\n }\n\n return { prompts, datasets, markers };\n}\n\n// =============================================================================\n// Helpers\n// =============================================================================\n\nexport function parseExtensions(includeGlob: string): string[] {\n // Parse patterns like \"**/*.{ts,js,py,tsx,jsx}\" into extensions\n const braceMatch = /\\{([^}]+)\\}/.exec(includeGlob);\n if (braceMatch?.[1]) {\n return braceMatch[1].split(',').map(ext => `.${ext.trim()}`);\n }\n\n // Single extension like \"**/*.ts\"\n const extMatch = /\\*\\.(\\w+)$/.exec(includeGlob);\n if (extMatch?.[1]) {\n return [`.${extMatch[1]}`];\n }\n\n // Default fallback\n return ['.ts', '.js', '.py', '.tsx', '.jsx'];\n}\n\nexport function parseExcludeDirs(excludePattern: string): string[] {\n return excludePattern.split(',').map(d => d.trim()).filter(Boolean);\n}\n",
|
|
15
15
|
"import { Command } from 'commander';\nimport inquirer from 'inquirer';\nimport chalk from 'chalk';\nimport ora from 'ora';\nimport { saveCredentials, saveFullCredentials, hasCredentials } from '../lib/config.js';\nimport { validateApiKey } from '../lib/sdk-client.js';\nimport { OutputFormatter, getJsonFlag } from '../lib/output.js';\nimport { MutagentError } from '../lib/errors.js';\nimport { performBrowserAuth, BrowserAuthError } from '../lib/browser-auth.js';\n\ninterface LoginOptions {\n endpoint: string;\n browser?: boolean;\n nonInteractive?: boolean;\n}\n\ninterface AuthMethodAnswer {\n method: 'browser' | 'apiKey';\n}\n\ninterface LoginAnswers {\n apiKey: string;\n endpoint: string;\n}\n\n/**\n * Creates the top-level login command\n * Alias for `mutagent auth login`\n */\nexport function createLoginCommand(): Command {\n const login = new Command('login')\n .description('Login to MutagenT platform')\n .option('--browser', 'Force browser-based authentication')\n .option('--non-interactive', 'Disable interactive prompts (auto-selects browser auth)')\n .option('--endpoint <url>', 'API endpoint', 'https://api.mutagent.io')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent login\n ${chalk.dim('$')} mutagent login --browser\n ${chalk.dim('$')} mutagent login --non-interactive ${chalk.dim('# Auto browser flow (AI agents)')}\n\nEnvironment Variables:\n MUTAGENT_API_KEY API key (skips interactive login)\n MUTAGENT_ENDPOINT Custom API endpoint\n `)\n .action(async (options: LoginOptions) => {\n const isJson = getJsonFlag(login);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const apiKey: string | undefined = process.env.MUTAGENT_API_KEY;\n const endpoint: string = process.env.MUTAGENT_ENDPOINT ?? options.endpoint;\n\n // If MUTAGENT_API_KEY env var is set, use direct flow\n if (apiKey) {\n output.info('Validating API key...');\n const isValid = await validateApiKey(apiKey, endpoint);\n\n if (!isValid) {\n throw new MutagentError(\n 'INVALID_API_KEY',\n 'Invalid API key or endpoint',\n 'Check your API key and try again'\n );\n }\n\n saveCredentials(apiKey, endpoint);\n output.success('Logged in successfully');\n if (!isJson) {\n output.info(`Endpoint: ${endpoint}`);\n }\n return;\n }\n\n // Detect non-interactive environment\n const isNonInteractive =\n options.nonInteractive === true ||\n process.env.MUTAGENT_NON_INTERACTIVE === 'true' ||\n process.env.CI === 'true' ||\n !process.stdin.isTTY;\n\n // In JSON-only mode without API key, we cannot proceed at all\n if (isJson && !options.browser && isNonInteractive) {\n throw new MutagentError(\n 'INTERACTIVE_REQUIRED',\n 'No API key provided. Set MUTAGENT_API_KEY env var or add --browser for browser auth.',\n 'Run: export MUTAGENT_API_KEY=<key> or mutagent login --browser --non-interactive'\n );\n }\n\n // Show welcome message for first-time users (only in interactive mode)\n if (!isNonInteractive && !hasCredentials()) {\n console.log('\\n' + chalk.bold.cyan(' Welcome to MutagenT CLI!') + '\\n');\n console.log(' No credentials found. Please authenticate to continue.\\n');\n }\n\n // Determine auth method\n let useBrowserAuth = options.browser === true;\n\n // In non-interactive mode, auto-select browser auth (skip the prompt menu)\n if (!useBrowserAuth && isNonInteractive) {\n output.info('Non-interactive environment detected. Using browser authentication.');\n useBrowserAuth = true;\n }\n\n if (!useBrowserAuth) {\n // Ask user which method to use (interactive only)\n const methodAnswer = await inquirer.prompt<AuthMethodAnswer>([\n {\n type: 'list',\n name: 'method',\n message: 'How would you like to authenticate?',\n choices: [\n {\n name: 'Login (opens browser)',\n value: 'browser',\n },\n {\n name: 'API Key (paste existing key)',\n value: 'apiKey',\n },\n ],\n },\n ]);\n\n useBrowserAuth = methodAnswer.method === 'browser';\n }\n\n if (useBrowserAuth) {\n // Browser authentication flow\n const spinner = ora({\n text: 'Opening browser for authentication...',\n spinner: 'dots',\n });\n\n try {\n spinner.start();\n\n const result = await performBrowserAuth(\n {\n endpoint,\n timeout: 300000,\n pollInterval: 2000,\n },\n (message) => {\n spinner.text = message;\n }\n );\n\n spinner.succeed('Logged in successfully!');\n\n // Save full credentials including workspace info\n saveFullCredentials({\n apiKey: result.apiKey,\n endpoint,\n workspaceId: result.workspaceId,\n organizationId: result.organizationId,\n });\n\n console.log('');\n if (result.workspaceName) {\n output.info(`Workspace: ${result.workspaceName}`);\n }\n if (result.organizationName) {\n output.info(`Organization: ${result.organizationName}`);\n }\n } catch (error) {\n spinner.fail('Authentication failed');\n\n if (error instanceof BrowserAuthError) {\n throw new MutagentError(\n error.code,\n error.message,\n error.getSuggestion()\n );\n }\n throw error;\n }\n } else {\n // API key flow\n const answers = await inquirer.prompt<LoginAnswers>([\n {\n type: 'password',\n name: 'apiKey',\n message: 'Enter your API key:',\n mask: '*',\n validate: (input: string): boolean | string => {\n if (!input || input.trim() === '') {\n return 'API key is required';\n }\n if (!input.startsWith('mg_')) {\n return 'API key should start with \"mg_\"';\n }\n return true;\n },\n },\n ]);\n\n output.info('Validating API key...');\n const isValid = await validateApiKey(answers.apiKey, endpoint);\n\n if (!isValid) {\n throw new MutagentError(\n 'INVALID_API_KEY',\n 'Invalid API key or endpoint',\n 'Check your API key and try again'\n );\n }\n\n saveCredentials(answers.apiKey, endpoint);\n output.success('Logged in successfully');\n output.info(`Endpoint: ${endpoint}`);\n }\n } catch (error) {\n if (error instanceof MutagentError) {\n output.error(error.message);\n if (error.suggestion && !isJson) {\n output.info(`Suggestion: ${error.suggestion}`);\n }\n process.exit(1);\n }\n throw error;\n }\n });\n\n return login;\n}\n",
|
|
16
|
-
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { readFileSync, existsSync } from 'fs';\nimport { ApiError, MutagentError } from '../../lib/errors.js';\nimport { renderPlainCard } from '../../lib/ui-links.js';\nimport { MutationContext } from '../../lib/mutation-context.js';\nimport { registerPromptsCrud } from './prompts-crud.js';\nimport { registerDatasetCommands } from './datasets.js';\nimport { registerEvaluationCommands } from './evaluations.js';\nimport { registerOptimizeCommands } from './optimize.js';\n\nexport { parseDatasetFile } from './datasets.js';\n\n// Command option interfaces for type safety\nexport interface ListOptions {\n limit: string;\n}\n\nexport interface GetOptions {\n withDatasets?: boolean;\n withEvals?: boolean;\n}\n\nexport interface CreateOptions {\n data?: string;\n rawFile?: string;\n name?: string;\n description?: string;\n content?: string;\n outputSchema?: string;\n // Prompt style flags\n raw?: string;\n system?: string;\n human?: string;\n messages?: string;\n}\n\nexport interface UpdateOptions {\n data?: string;\n rawFile?: string;\n name?: string;\n description?: string;\n content?: string;\n // Prompt style flags\n raw?: string;\n system?: string;\n human?: string;\n messages?: string;\n // Schema flags\n inputSchema?: string;\n inputSchemaFile?: string;\n outputSchema?: string;\n outputSchemaFile?: string;\n}\n\nexport interface DeleteOptions {\n force?: boolean;\n}\n\n/**\n * Silently update .mutagent/mutation-context.md.\n * Never throws — context update failures should not break CLI commands.\n */\nexport function updateMutationContext(updater: (ctx: MutationContext) => void): void {\n try {\n const ctx = MutationContext.load();\n updater(ctx);\n ctx.save();\n } catch {\n // Silent — context update is best-effort\n }\n}\n\n/**\n * Parse API validation errors into human-readable messages.\n * The API returns structured errors like { message: '...', errors: [...] }\n */\nexport function parseValidationErrors(error: unknown): string[] {\n if (error instanceof ApiError) {\n try {\n const body = JSON.parse(error.message) as { errors?: { message?: string }[]; message?: string };\n if (body.errors && Array.isArray(body.errors)) {\n return body.errors.map((e: { message?: string }) => e.message ?? JSON.stringify(e));\n }\n if (body.message) {\n return [body.message];\n }\n } catch {\n // Not JSON, return the message as-is\n return [error.message];\n }\n }\n if (error instanceof Error) {\n return [error.message];\n }\n return ['An unknown error occurred'];\n}\n\n/**\n * Check if an inputSchema or outputSchema is effectively empty.\n * Returns true if the value is undefined, null, an empty object {}, or\n * an object with no \"properties\" key (which means no defined variables).\n */\nexport function isSchemaEmpty(schema: unknown): boolean {\n if (schema === undefined || schema === null) return true;\n if (typeof schema !== 'object') return false;\n const obj = schema as Record<string, unknown>;\n // Empty object {}\n if (Object.keys(obj).length === 0) return true;\n return false;\n}\n\n/**\n * Parse a schema option provided as either inline JSON or file path.\n * Returns the parsed schema or undefined if neither is provided.\n * Throws MutagentError on conflict, file-not-found, or parse errors.\n */\nexport function parseSchemaOption(\n inlineJson: string | undefined,\n filePath: string | undefined,\n schemaName: string,\n helpCommand: string,\n): Record<string, unknown> | undefined {\n if (inlineJson && filePath) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Cannot use --${schemaName} and --${schemaName}-file together`,\n `Run: ${helpCommand}\\nUse --${schemaName} for inline JSON or --${schemaName}-file for file-based input, not both`\n );\n }\n if (inlineJson) {\n try {\n return JSON.parse(inlineJson) as Record<string, unknown>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n `Invalid JSON in --${schemaName} flag`,\n `Run: ${helpCommand}\\nProvide a valid JSON Schema, e.g., '{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"}}}'`\n );\n }\n }\n if (filePath) {\n if (!existsSync(filePath)) {\n throw new MutagentError(\n 'FILE_NOT_FOUND',\n `File not found: ${filePath}`,\n `Run: ${helpCommand}\\nCheck the file path and try again`\n );\n }\n try {\n return JSON.parse(readFileSync(filePath, 'utf-8')) as Record<string, unknown>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n `Failed to parse JSON from ${filePath}`,\n `Run: ${helpCommand}\\nEnsure the file contains valid JSON Schema`\n );\n }\n }\n return undefined;\n}\n\n/**\n * Build a plain-text scorecard for optimization results directives.\n */\nexport function buildResultsScorecardText(resultData: Record<string, unknown>): string {\n const jobData = resultData.job as Record<string, unknown> | undefined;\n const jobId = typeof jobData?.id === 'string' ? jobData.id : 'N/A';\n const jobStatus = typeof jobData?.status === 'string' ? jobData.status : 'unknown';\n const originalScore = resultData.originalScore as number | undefined;\n const bestScore = resultData.bestScore as number | undefined;\n const iterations = (resultData.iterationsCompleted as number | undefined) ?? 0;\n\n const title = 'Optimization Results';\n const rows = [\n { label: 'Job ID', value: jobId },\n { label: 'Status', value: jobStatus },\n { label: 'Iterations', value: String(iterations) },\n { label: 'Original Score', value: originalScore !== undefined ? originalScore.toFixed(2) : 'N/A' },\n { label: 'Best Score', value: bestScore !== undefined ? bestScore.toFixed(2) : 'N/A' },\n ];\n if (originalScore !== undefined && bestScore !== undefined && originalScore > 0) {\n const pct = Math.round(((bestScore - originalScore) / originalScore) * 100);\n rows.push({ label: 'Improvement', value: `${pct > 0 ? '+' : ''}${String(pct)}%` });\n }\n\n return renderPlainCard({ title, rows, links: [], next: [] });\n}\n\n// Prerequisites text for optimize start help\n//\n// [AI AGENT NOTICE] TEMPORARILY REMOVED: Provider pre-flight check (2026-02-10)\n// The `checkProviderConfigured()` function was removed from the optimize start handler.\n// It called `client.listProviders()` and threw MutagentError('NO_PROVIDER', ...) if empty.\n// This blocked optimization when the server uses internal credentials (USE_EXT_PROVIDERS=false).\n//\n// MUST RE-ADD LATER: When external provider flow is finalized, re-add the pre-flight check\n// but make it CONDITIONAL — e.g., query a `/api/config` endpoint to check if the server\n// requires external providers, and only block if USE_EXT_PROVIDERS=true on the server.\n// The server-side check in mutagent/src/modules/optimizations/index.ts still gates on\n// USE_EXT_PROVIDERS, so the API will return 422 if providers are required but not configured.\n//\n// Original function signature:\n// async function checkProviderConfigured(): Promise<void> {\n// const client = getSDKClient();\n// const providers = await client.listProviders();\n// if (providers.data.length === 0) {\n// throw new MutagentError('NO_PROVIDER', '...', '...');\n// }\n// }\n//\n// It was called at the top of the optimize start action: `await checkProviderConfigured();`\n//\nexport const PREREQUISITES_TEXT = `\n${chalk.red('Prerequisites (required):')}\n 1. Evaluation criteria defined ${chalk.dim('(via dashboard or evaluation create)')}\n 2. Dataset uploaded ${chalk.dim('mutagent prompts dataset list <prompt-id>')}\n ${chalk.dim('Note: LLM provider config is only required when the server uses external providers (USE_EXT_PROVIDERS=true)')}`;\n\nexport function createPromptsCommand(): Command {\n const prompts = new Command('prompts')\n .description('Manage prompts, datasets, evaluations, and optimizations')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts list\n ${chalk.dim('$')} mutagent prompts get <prompt-id>\n ${chalk.dim('$')} mutagent prompts create --name \"my-prompt\" --system \"You are helpful\" --human \"{input}\"\n ${chalk.dim('$')} mutagent prompts dataset list <prompt-id>\n ${chalk.dim('$')} mutagent prompts evaluation create <prompt-id> --name \"My Eval\"\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id>\n\nSubcommands:\n list, get, create, update, delete\n dataset list|add|delete\n evaluation list|create|delete\n optimize start|status|results\n `);\n\n registerPromptsCrud(prompts);\n registerDatasetCommands(prompts);\n registerEvaluationCommands(prompts);\n registerOptimizeCommands(prompts);\n\n return prompts;\n}\n",
|
|
16
|
+
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { readFileSync, existsSync } from 'fs';\nimport { ApiError, MutagentError } from '../../lib/errors.js';\nimport { renderPlainCard } from '../../lib/ui-links.js';\nimport { buildScorecardDetailsText, type ScorecardDetailData } from '../../lib/scorecard-details.js';\nimport { MutationContext } from '../../lib/mutation-context.js';\nimport { registerPromptsCrud } from './prompts-crud.js';\nimport { registerDatasetCommands } from './datasets.js';\nimport { registerEvaluationCommands } from './evaluations.js';\nimport { registerOptimizeCommands } from './optimize.js';\n\nexport { parseDatasetFile } from './datasets.js';\n\n// Command option interfaces for type safety\nexport interface ListOptions {\n limit: string;\n}\n\nexport interface GetOptions {\n withDatasets?: boolean;\n withEvals?: boolean;\n}\n\nexport interface CreateOptions {\n data?: string;\n rawFile?: string;\n name?: string;\n description?: string;\n content?: string;\n outputSchema?: string;\n // Prompt style flags\n raw?: string;\n system?: string;\n human?: string;\n messages?: string;\n}\n\nexport interface UpdateOptions {\n data?: string;\n rawFile?: string;\n name?: string;\n description?: string;\n content?: string;\n // Prompt style flags\n raw?: string;\n system?: string;\n human?: string;\n messages?: string;\n // Schema flags\n inputSchema?: string;\n inputSchemaFile?: string;\n outputSchema?: string;\n outputSchemaFile?: string;\n}\n\nexport interface DeleteOptions {\n force?: boolean;\n}\n\n/**\n * Silently update .mutagent/mutation-context.md.\n * Never throws — context update failures should not break CLI commands.\n */\nexport function updateMutationContext(updater: (ctx: MutationContext) => void): void {\n try {\n const ctx = MutationContext.load();\n updater(ctx);\n ctx.save();\n } catch {\n // Silent — context update is best-effort\n }\n}\n\n/**\n * Parse API validation errors into human-readable messages.\n * The API returns structured errors like { message: '...', errors: [...] }\n */\nexport function parseValidationErrors(error: unknown): string[] {\n if (error instanceof ApiError) {\n try {\n const body = JSON.parse(error.message) as { errors?: { message?: string }[]; message?: string };\n if (body.errors && Array.isArray(body.errors)) {\n return body.errors.map((e: { message?: string }) => e.message ?? JSON.stringify(e));\n }\n if (body.message) {\n return [body.message];\n }\n } catch {\n // Not JSON, return the message as-is\n return [error.message];\n }\n }\n if (error instanceof Error) {\n return [error.message];\n }\n return ['An unknown error occurred'];\n}\n\n/**\n * Check if an inputSchema or outputSchema is effectively empty.\n * Returns true if the value is undefined, null, an empty object {}, or\n * an object with no \"properties\" key (which means no defined variables).\n */\nexport function isSchemaEmpty(schema: unknown): boolean {\n if (schema === undefined || schema === null) return true;\n if (typeof schema !== 'object') return false;\n const obj = schema as Record<string, unknown>;\n // Empty object {}\n if (Object.keys(obj).length === 0) return true;\n return false;\n}\n\n/**\n * Parse a schema option provided as either inline JSON or file path.\n * Returns the parsed schema or undefined if neither is provided.\n * Throws MutagentError on conflict, file-not-found, or parse errors.\n */\nexport function parseSchemaOption(\n inlineJson: string | undefined,\n filePath: string | undefined,\n schemaName: string,\n helpCommand: string,\n): Record<string, unknown> | undefined {\n if (inlineJson && filePath) {\n throw new MutagentError(\n 'INVALID_ARGUMENTS',\n `Cannot use --${schemaName} and --${schemaName}-file together`,\n `Run: ${helpCommand}\\nUse --${schemaName} for inline JSON or --${schemaName}-file for file-based input, not both`\n );\n }\n if (inlineJson) {\n try {\n return JSON.parse(inlineJson) as Record<string, unknown>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n `Invalid JSON in --${schemaName} flag`,\n `Run: ${helpCommand}\\nProvide a valid JSON Schema, e.g., '{\"type\":\"object\",\"properties\":{\"field\":{\"type\":\"string\"}}}'`\n );\n }\n }\n if (filePath) {\n if (!existsSync(filePath)) {\n throw new MutagentError(\n 'FILE_NOT_FOUND',\n `File not found: ${filePath}`,\n `Run: ${helpCommand}\\nCheck the file path and try again`\n );\n }\n try {\n return JSON.parse(readFileSync(filePath, 'utf-8')) as Record<string, unknown>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n `Failed to parse JSON from ${filePath}`,\n `Run: ${helpCommand}\\nEnsure the file contains valid JSON Schema`\n );\n }\n }\n return undefined;\n}\n\n/**\n * Build a plain-text scorecard for optimization results directives.\n */\nexport function buildResultsScorecardText(resultData: Record<string, unknown>): string {\n const jobData = resultData.job as Record<string, unknown> | undefined;\n const jobId = typeof jobData?.id === 'string' ? jobData.id : 'N/A';\n const jobStatus = typeof jobData?.status === 'string' ? jobData.status : 'unknown';\n const originalScore = resultData.originalScore as number | undefined;\n const bestScore = resultData.bestScore as number | undefined;\n const iterations = (resultData.iterationsCompleted as number | undefined) ?? 0;\n\n const title = 'Optimization Results';\n const rows = [\n { label: 'Job ID', value: jobId },\n { label: 'Status', value: jobStatus },\n { label: 'Iterations', value: String(iterations) },\n { label: 'Original Score', value: originalScore !== undefined ? originalScore.toFixed(2) : 'N/A' },\n { label: 'Best Score', value: bestScore !== undefined ? bestScore.toFixed(2) : 'N/A' },\n ];\n if (originalScore !== undefined && bestScore !== undefined && originalScore > 0) {\n const pct = Math.round(((bestScore - originalScore) / originalScore) * 100);\n rows.push({ label: 'Improvement', value: `${pct > 0 ? '+' : ''}${String(pct)}%` });\n }\n\n let text = renderPlainCard({ title, rows, links: [], next: [] });\n\n // Prompt comparison (full text)\n const originalPrompt = resultData.originalPrompt as Record<string, unknown> | undefined;\n const prompt = resultData.prompt as Record<string, unknown> | undefined;\n const originalText = (originalPrompt?.systemPrompt ?? originalPrompt?.rawPrompt ?? '') as string;\n const optimizedText = (prompt?.systemPrompt ?? prompt?.rawPrompt ?? prompt?.humanPrompt ?? '') as string;\n if (originalText || optimizedText) {\n const lines: string[] = ['', 'Prompt Comparison', '\\u2500'.repeat(70)];\n lines.push('BEFORE:');\n for (const pLine of (originalText || '(empty)').split('\\n')) {\n lines.push(` ${pLine}`);\n }\n lines.push(`Length: ${String(originalText.length)} chars`);\n lines.push('');\n lines.push('AFTER:');\n for (const pLine of (optimizedText || '(empty)').split('\\n')) {\n lines.push(` ${pLine}`);\n }\n lines.push(`Length: ${String(optimizedText.length)} chars`);\n const growth = optimizedText.length - originalText.length;\n lines.push(`Growth: ${growth >= 0 ? '+' : ''}${String(growth)} chars`);\n text += '\\n' + lines.join('\\n');\n }\n\n // Extended detail sections\n text += buildScorecardDetailsText(resultData as unknown as ScorecardDetailData);\n\n return text;\n}\n\n// Prerequisites text for optimize start help\n//\n// [AI AGENT NOTICE] TEMPORARILY REMOVED: Provider pre-flight check (2026-02-10)\n// The `checkProviderConfigured()` function was removed from the optimize start handler.\n// It called `client.listProviders()` and threw MutagentError('NO_PROVIDER', ...) if empty.\n// This blocked optimization when the server uses internal credentials (USE_EXT_PROVIDERS=false).\n//\n// MUST RE-ADD LATER: When external provider flow is finalized, re-add the pre-flight check\n// but make it CONDITIONAL — e.g., query a `/api/config` endpoint to check if the server\n// requires external providers, and only block if USE_EXT_PROVIDERS=true on the server.\n// The server-side check in mutagent/src/modules/optimizations/index.ts still gates on\n// USE_EXT_PROVIDERS, so the API will return 422 if providers are required but not configured.\n//\n// Original function signature:\n// async function checkProviderConfigured(): Promise<void> {\n// const client = getSDKClient();\n// const providers = await client.listProviders();\n// if (providers.data.length === 0) {\n// throw new MutagentError('NO_PROVIDER', '...', '...');\n// }\n// }\n//\n// It was called at the top of the optimize start action: `await checkProviderConfigured();`\n//\nexport const PREREQUISITES_TEXT = `\n${chalk.red('Prerequisites (required):')}\n 1. Evaluation criteria defined ${chalk.dim('(via dashboard or evaluation create)')}\n 2. Dataset uploaded ${chalk.dim('mutagent prompts dataset list <prompt-id>')}\n ${chalk.dim('Note: LLM provider config is only required when the server uses external providers (USE_EXT_PROVIDERS=true)')}`;\n\nexport function createPromptsCommand(): Command {\n const prompts = new Command('prompts')\n .description('Manage prompts, datasets, evaluations, and optimizations')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts list\n ${chalk.dim('$')} mutagent prompts get <prompt-id>\n ${chalk.dim('$')} mutagent prompts create --name \"my-prompt\" --system \"You are helpful\" --human \"{input}\"\n ${chalk.dim('$')} mutagent prompts dataset list <prompt-id>\n ${chalk.dim('$')} mutagent prompts evaluation create <prompt-id> --name \"My Eval\"\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id>\n\nSubcommands:\n list, get, create, update, delete\n dataset list|add|delete\n evaluation list|create|delete\n optimize start|status|results\n `);\n\n registerPromptsCrud(prompts);\n registerDatasetCommands(prompts);\n registerEvaluationCommands(prompts);\n registerOptimizeCommands(prompts);\n\n return prompts;\n}\n",
|
|
17
17
|
"/**\n * @fileoverview Centralized UI deep link generation for MutagenT CLI\n * @module @mutagent/cli/lib/ui-links\n *\n * Generates clickable URLs that link to the MutagenT web UI for\n * viewing/editing resources. Used across all CLI commands that\n * list or fetch resources.\n *\n * The dashboard is a single page with tabs (Prompts, Evaluations, Datasets),\n * not separate routes per entity type.\n */\n\n/**\n * Get the base URL for the MutagenT web application.\n * Reads from MUTAGENT_APP_URL env var, falling back to production URL.\n */\nexport function getAppBaseUrl(): string {\n return process.env.MUTAGENT_APP_URL ?? 'https://app.mutagent.io';\n}\n\n/**\n * Generate a link to the prompts dashboard (no specific prompt selected).\n */\nexport function promptsDashboardLink(): string {\n return `${getAppBaseUrl()}/prompts/dashboard`;\n}\n\n/**\n * Generate a link to view a prompt in the dashboard.\n * The dashboard is at /prompts/dashboard with prompt detail in a tab/panel.\n */\nexport function promptLink(id: string | number): string {\n return `${getAppBaseUrl()}/prompts/dashboard?prompt=${String(id)}`;\n}\n\n/**\n * Generate a link to the prompts dashboard (Datasets tab).\n * NOTE: Do NOT include `prompt` query param alongside `tab` — the frontend\n * createEffect checks `prompt` before `dataset`/`eval` and hijacks the tab.\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function promptDatasetsLink(_promptId: string | number): string {\n return `${getAppBaseUrl()}/prompts/dashboard?tab=datasets`;\n}\n\n/**\n * Generate a link to the prompts dashboard (Evaluations tab).\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function promptEvaluationsLink(_promptId: string | number): string {\n return `${getAppBaseUrl()}/prompts/dashboard?tab=evaluations`;\n}\n\n/**\n * Generate a link to a specific dataset within the dashboard.\n */\nexport function datasetLink(_promptId: string | number, datasetId: string | number): string {\n return `${getAppBaseUrl()}/prompts/dashboard?tab=datasets&dataset=${String(datasetId)}`;\n}\n\n/**\n * Generate a link to a specific evaluation within the dashboard.\n */\nexport function evaluationLink(_promptId: string | number, evalId: string | number): string {\n return `${getAppBaseUrl()}/prompts/dashboard?tab=evaluations&eval=${String(evalId)}`;\n}\n\n/**\n * Generate a link to view a trace in the UI.\n */\nexport function traceLink(id: string): string {\n return `${getAppBaseUrl()}/traces/${id}`;\n}\n\n/**\n * Generate a link to the optimizer page, optionally for a specific job.\n */\nexport function optimizerLink(jobId?: string): string {\n const base = `${getAppBaseUrl()}/prompts/optimizer`;\n return jobId ? `${base}?job=${jobId}` : base;\n}\n\n/**\n * Generate a link to the playground page.\n */\nexport function playgroundLink(): string {\n return `${getAppBaseUrl()}/prompts/playground`;\n}\n\n/**\n * Generate a link to the provider settings page.\n */\nexport function providerSettingsLink(): string {\n return `${getAppBaseUrl()}/settings/providers`;\n}\n\n/**\n * Generate a link to view a workspace in the settings.\n */\nexport function workspaceLink(id: string | number): string {\n return `${getAppBaseUrl()}/settings/workspace?id=${String(id)}`;\n}\n\n/**\n * Generate _links object for a workspace resource.\n */\nexport function workspaceLinks(id: string | number): { settings: string; api: string } {\n return {\n settings: workspaceLink(id),\n api: `/api/workspaces/${String(id)}`,\n };\n}\n\n/**\n * Generate a link to view a provider in the settings.\n */\nexport function providerLink(id: string | number): string {\n return `${getAppBaseUrl()}/settings/providers/${String(id)}`;\n}\n\n/**\n * Generate _links object for a provider resource.\n */\nexport function providerLinks(id: string | number): { settings: string; api: string } {\n return {\n settings: providerLink(id),\n api: `/api/providers/${String(id)}`,\n };\n}\n\n/**\n * Generate a link to view an agent.\n */\nexport function agentLink(id: string | number): string {\n return `${getAppBaseUrl()}/agents/${String(id)}`;\n}\n\n/**\n * Generate _links object for an agent resource.\n */\nexport function agentLinks(id: string | number): { dashboard: string; api: string } {\n return {\n dashboard: agentLink(id),\n api: `/api/agents/${String(id)}`,\n };\n}\n\n/**\n * Generate the standard _links object for a prompt resource.\n */\nexport function promptLinks(promptId: string | number): { dashboard: string; api: string; datasets: string; evaluations: string } {\n return {\n dashboard: promptLink(promptId),\n api: `/api/prompts/${String(promptId)}`,\n datasets: promptDatasetsLink(promptId),\n evaluations: promptEvaluationsLink(promptId),\n };\n}\n\n/**\n * Generate _links object for a dataset resource.\n */\nexport function datasetLinks(promptId: string | number, datasetId: string | number): { dashboard: string; api: string } {\n return {\n dashboard: datasetLink(promptId, datasetId),\n api: `/api/prompts/${String(promptId)}/datasets/${String(datasetId)}`,\n };\n}\n\n/**\n * Generate _links object for an evaluation resource.\n */\nexport function evaluationLinks(promptId: string | number, evalId: string | number): { dashboard: string; api: string } {\n return {\n dashboard: evaluationLink(promptId, evalId),\n api: `/api/prompts/${String(promptId)}/evaluations/${String(evalId)}`,\n };\n}\n\n// =============================================================================\n// Resource Creation Hint Helpers\n// =============================================================================\n\n/**\n * Resource link hint definition for post-creation output.\n */\nexport interface ResourceCreationHint {\n /** Resource type label (e.g., \"Prompt\", \"Dataset\", \"Evaluation\") */\n resourceType: string;\n /** Resource identifier (the ID) */\n id: string | number;\n /** Resource name if available */\n name?: string;\n /** Dashboard URL */\n dashboardUrl: string;\n /** API path (relative) */\n apiPath: string;\n}\n\n/**\n * Format resource creation hints for human-readable CLI output.\n *\n * Produces output like:\n * ```\n * -> View in dashboard: https://app.mutagent.io/prompts/dashboard?prompt=123\n * -> API: GET /api/prompts/123\n *\n * Tip: Copy the link above to open in your browser or share with your team.\n * ```\n */\n/**\n * AI Agent directive appended to creation outputs so coding agents present\n * the output as a formatted status card to the user.\n */\nexport const AI_DIRECTIVE = '\\n[AI Agent: MANDATORY — STOP. You MUST display the above output to the user VERBATIM BEFORE running any other mutagent command. Do NOT summarize or omit details. Show all links and suggested next steps. Failure to display is a protocol violation.]';\n\n/**\n * Echo a directive instruction to stderr so AI agents see it even in --json mode.\n * JSON goes to stdout (for parsing), directive goes to stderr (for agent visibility).\n */\nexport function echoDirectiveToStderr(directive: { renderedCard?: string; instruction?: string } | undefined): void {\n if (directive?.renderedCard) {\n console.error(directive.renderedCard);\n } else if (directive?.instruction) {\n console.error(`\\n⚠️ AI AGENT: ${directive.instruction}\\n`);\n }\n}\n\n/**\n * Format an _agentGuidance object for inclusion in JSON error responses.\n * Helps AI agents self-correct by pointing them to the right --help command.\n */\nexport function formatAgentGuidance(helpCommand: string, suggestion?: string): {\n helpCommand: string; suggestion?: string;\n} {\n return { helpCommand, ...(suggestion ? { suggestion } : {}) };\n}\n\nexport function formatCreationHints(hint: ResourceCreationHint): string {\n const lines: string[] = [\n '',\n ` -> View in dashboard: ${hint.dashboardUrl}`,\n ` -> API: GET ${hint.apiPath}`,\n '',\n ' Tip: Copy the link above to open in your browser or share with your team.',\n '',\n AI_DIRECTIVE,\n ];\n return lines.join('\\n');\n}\n\n// =============================================================================\n// JSON Mutation Directive (Tier 1: Agent Status Cards)\n// =============================================================================\n\n/**\n * Directive object appended to JSON mutation responses so AI agents\n * know to present the output as a formatted status card.\n *\n * Agents use --json mode exclusively. Without this field in the JSON\n * response, they have no instruction to render a status card.\n */\nexport interface MutationDirective {\n display: 'status_card';\n template: string;\n title: string;\n fields: Record<string, unknown>;\n links: Record<string, string>;\n next: string[];\n instruction: string;\n renderedCard: string;\n}\n\nconst CARD_INSTRUCTION =\n 'MANDATORY: HARD STOP — DO NOT PROCEED.\\n' +\n '1. The renderedCard below appears in your bash/terminal output. That is NOT sufficient — the user cannot see it there.\\n' +\n '2. You MUST copy the FULL renderedCard text into your chat response VERBATIM. Do NOT summarize, rephrase, or omit any lines.\\n' +\n '3. Do NOT run any other command until you have displayed the card in chat.\\n' +\n '4. After displaying, follow the suggested next steps.';\n\n/**\n * Render a plain-text (no ANSI) box-drawn card for AI agents to display.\n * Exported so scorecard.ts can reuse it for optimization directives.\n */\nexport function renderPlainCard(opts: {\n title: string;\n icon?: string;\n rows: { label: string; value: string }[];\n links: { label: string; url: string }[];\n next: string[];\n}): string {\n const icon = opts.icon ?? '✓';\n\n // Calculate label padding (align values across rows + links)\n const allLabels = [\n ...opts.rows.map(r => r.label),\n ...opts.links.map(l => l.label),\n ];\n const labelWidth = Math.max(...allLabels.map(l => l.length), 4) + 2;\n\n // Build all content lines (without borders) to find max width\n const titleText = `─ ${icon} ${opts.title} `;\n const contentLines: string[] = [];\n\n // Data rows\n for (const r of opts.rows) {\n contentLines.push(` ${r.label.padEnd(labelWidth)}${r.value}`);\n }\n\n // Links (separated)\n if (opts.links.length) {\n for (const l of opts.links) {\n contentLines.push(` ${l.label.padEnd(labelWidth)}${l.url}`);\n }\n }\n\n // Next steps (separated)\n if (opts.next.length) {\n contentLines.push(' Next');\n for (const n of opts.next) {\n contentLines.push(` → ${n}`);\n }\n }\n\n // Auto-width: max of title and all content lines, minimum 60\n const maxContent = Math.max(\n titleText.length,\n ...contentLines.map(l => l.length),\n );\n const w = Math.max(60, maxContent + 4); // +4 for \"│ \" prefix and \" │\" suffix padding\n const innerW = w - 2; // space between │ and │\n\n // Render helpers\n const pad = (text: string): string => {\n return text.length < innerW ? text + ' '.repeat(innerW - text.length) : text;\n };\n const ln = (text: string): string => `│ ${pad(text)}│`;\n const blank = (): string => ln('');\n const sep = (): string => `│ ${'─'.repeat(innerW - 1)}│`;\n\n // Build the top border with embedded title\n const titleBorder = `┌${titleText}${'─'.repeat(Math.max(0, w - titleText.length - 1))}┐`;\n const bot = `└${'─'.repeat(w)}┘`;\n\n const out: string[] = [titleBorder, blank()];\n\n // Data rows\n for (const r of opts.rows) {\n out.push(ln(` ${r.label.padEnd(labelWidth)}${r.value}`));\n }\n\n // Links section\n if (opts.links.length) {\n out.push(blank(), sep(), blank());\n for (const l of opts.links) {\n out.push(ln(` ${l.label.padEnd(labelWidth)}${l.url}`));\n }\n }\n\n // Next steps section\n if (opts.next.length) {\n out.push(blank(), sep(), blank());\n out.push(ln(' Next'));\n for (const n of opts.next) {\n out.push(ln(` → ${n}`));\n }\n }\n\n out.push(blank(), bot);\n return out.join('\\n');\n}\n\nexport function promptCreatedDirective(\n promptId: string | number,\n name: string,\n): MutationDirective {\n const title = `Prompt Created — ${name}`;\n const dashboardUrl = promptLink(promptId);\n const apiUrl = `/api/prompts/${String(promptId)}`;\n const rows = [\n { label: 'Name', value: name },\n { label: 'Prompt ID', value: String(promptId) },\n ];\n const cardLinks = [\n { label: 'Dashboard', url: dashboardUrl },\n { label: 'API', url: apiUrl },\n ];\n const next = [\n `mutagent prompts evaluation create ${String(promptId)} --guided --json`,\n `mutagent prompts dataset add ${String(promptId)} -d '[...]' --name \"my-dataset\" --json`,\n ];\n return {\n display: 'status_card',\n template: 'prompt_created',\n title,\n fields: { promptId: String(promptId), name },\n links: { dashboard: dashboardUrl, api: apiUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✓', rows, links: cardLinks, next }),\n };\n}\n\nexport function promptUpdatedDirective(\n promptId: string | number,\n name: string,\n): MutationDirective {\n const title = `Prompt Updated — ${name}`;\n const dashboardUrl = promptLink(promptId);\n const apiUrl = `/api/prompts/${String(promptId)}`;\n const rows = [\n { label: 'Name', value: name },\n { label: 'Prompt ID', value: String(promptId) },\n ];\n const cardLinks = [\n { label: 'Dashboard', url: dashboardUrl },\n { label: 'API', url: apiUrl },\n ];\n const next = [`mutagent prompts get ${String(promptId)} --json`];\n return {\n display: 'status_card',\n template: 'prompt_updated',\n title,\n fields: { promptId: String(promptId), name },\n links: { dashboard: dashboardUrl, api: apiUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✓', rows, links: cardLinks, next }),\n };\n}\n\nexport function promptDeletedDirective(\n promptId: string,\n): MutationDirective {\n const title = `Prompt Deleted — ${promptId}`;\n const dashboardUrl = promptsDashboardLink();\n const rows = [{ label: 'Prompt ID', value: promptId }];\n const cardLinks = [{ label: 'Dashboard', url: dashboardUrl }];\n const next = [`mutagent prompts list --json`];\n return {\n display: 'status_card',\n template: 'prompt_deleted',\n title,\n fields: { promptId },\n links: { dashboard: dashboardUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✗', rows, links: cardLinks, next }),\n };\n}\n\n/**\n * State of related resources for a prompt — used to make directives context-aware.\n */\nexport interface ResourceState {\n datasets?: number;\n evaluations?: number;\n hasOptimization?: boolean;\n}\n\nexport function datasetAddedDirective(\n promptId: string | number,\n datasetId: string | number,\n name: string,\n itemCount?: number,\n state?: ResourceState,\n): MutationDirective {\n const title = `Dataset Added — ${name}`;\n const dashboardUrl = datasetLink(promptId, datasetId);\n const apiUrl = `/api/prompts/${String(promptId)}/datasets/${String(datasetId)}`;\n const rows = [\n { label: 'Name', value: name },\n { label: 'Prompt ID', value: String(promptId) },\n { label: 'Dataset ID', value: String(datasetId) },\n ...(itemCount !== undefined ? [{ label: 'Items', value: String(itemCount) }] : []),\n ];\n const cardLinks = [\n { label: 'Dashboard', url: dashboardUrl },\n { label: 'API', url: apiUrl },\n ];\n const next: string[] = state?.evaluations && state.evaluations > 0\n ? [\n `mutagent prompts optimize start ${String(promptId)} --dataset ${String(datasetId)} --json`,\n `mutagent prompts evaluation create ${String(promptId)} --guided --json`,\n ]\n : [\n `mutagent prompts evaluation create ${String(promptId)} --guided --json`,\n `mutagent prompts optimize start ${String(promptId)} --dataset ${String(datasetId)} --json`,\n ];\n return {\n display: 'status_card',\n template: 'dataset_added',\n title,\n fields: {\n promptId: String(promptId),\n datasetId: String(datasetId),\n name,\n ...(itemCount !== undefined ? { itemCount } : {}),\n },\n links: { dashboard: dashboardUrl, api: apiUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✓', rows, links: cardLinks, next }),\n };\n}\n\nexport function datasetDeletedDirective(\n promptId: string,\n datasetId: string,\n): MutationDirective {\n const title = `Dataset Deleted — ${datasetId}`;\n const datasetsUrl = promptDatasetsLink(promptId);\n const rows = [\n { label: 'Prompt ID', value: promptId },\n { label: 'Dataset ID', value: datasetId },\n ];\n const cardLinks = [{ label: 'Datasets', url: datasetsUrl }];\n const next = [`mutagent prompts dataset list ${promptId} --json`];\n return {\n display: 'status_card',\n template: 'dataset_deleted',\n title,\n fields: { promptId, datasetId },\n links: { datasets: datasetsUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✗', rows, links: cardLinks, next }),\n };\n}\n\nexport function evaluationCreatedDirective(\n promptId: string | number,\n evalId: string | number,\n name: string,\n criteriaCount: number,\n state?: ResourceState,\n): MutationDirective {\n const title = `Evaluation Created — ${name}`;\n const dashboardUrl = evaluationLink(promptId, evalId);\n const apiUrl = `/api/prompts/${String(promptId)}/evaluations/${String(evalId)}`;\n const rows = [\n { label: 'Name', value: name },\n { label: 'Prompt ID', value: String(promptId) },\n { label: 'Evaluation ID', value: String(evalId) },\n { label: 'Criteria', value: String(criteriaCount) },\n ];\n const cardLinks = [\n { label: 'Dashboard', url: dashboardUrl },\n { label: 'API', url: apiUrl },\n ];\n const next: string[] = state?.datasets && state.datasets > 0\n ? [\n `mutagent prompts optimize start ${String(promptId)} --dataset <dataset-id> --evaluation ${String(evalId)} --json`,\n ]\n : [\n `mutagent prompts dataset add ${String(promptId)} -d '[...]' --name \"my-dataset\" --json`,\n `mutagent prompts optimize start ${String(promptId)} --dataset <dataset-id> --evaluation ${String(evalId)} --json`,\n ];\n return {\n display: 'status_card',\n template: 'evaluation_created',\n title,\n fields: {\n promptId: String(promptId),\n evaluationId: String(evalId),\n name,\n criteriaCount,\n },\n links: { dashboard: dashboardUrl, api: apiUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✓', rows, links: cardLinks, next }),\n };\n}\n\nexport function evaluationDeletedDirective(\n evaluationId: string,\n): MutationDirective {\n const title = `Evaluation Deleted — ${evaluationId}`;\n const dashboardUrl = promptsDashboardLink();\n const rows = [{ label: 'Evaluation ID', value: evaluationId }];\n const cardLinks = [{ label: 'Dashboard', url: dashboardUrl }];\n const next: string[] = [];\n return {\n display: 'status_card',\n template: 'evaluation_deleted',\n title,\n fields: { evaluationId },\n links: { dashboard: dashboardUrl },\n next,\n instruction: CARD_INSTRUCTION,\n renderedCard: renderPlainCard({ title, icon: '✗', rows, links: cardLinks, next }),\n };\n}\n",
|
|
18
|
+
"/**\n * Extended scorecard detail sections for optimization results.\n *\n * Renders per-item breakdown, failure modes, mutations, and evaluation\n * details — matching the granularity of the backend MetaTuner scorecard.\n */\n\nimport chalk from 'chalk';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface DatasetItemScore {\n id: string;\n beforeScore?: number;\n afterScore?: number;\n}\n\nexport interface FailureModeEntry {\n category: string;\n failures: { description?: string; summary?: string }[];\n}\n\nexport interface MutationEntry {\n label: string;\n status: 'applied' | 'rejected' | 'pending' | 'skipped';\n priority?: string;\n rationale?: string;\n}\n\nexport interface EvaluationItemDetail {\n itemId: string;\n score: number;\n success: boolean;\n metrics?: {\n name: string;\n score: number;\n success: boolean;\n failureMode?: string;\n reasoning?: string;\n criteria?: { name: string; score: number; success: boolean }[];\n }[];\n}\n\nexport interface ScorecardDetailData {\n datasetResults?: DatasetItemScore[];\n failureModes?: FailureModeEntry[];\n mutations?: MutationEntry[];\n evaluationDetails?: EvaluationItemDetail[];\n}\n\n// =============================================================================\n// Chalk-colored terminal rendering\n// =============================================================================\n\nexport function renderScorecardDetails(data: ScorecardDetailData): void {\n if (data.datasetResults && data.datasetResults.length > 0) {\n console.log('');\n console.log(chalk.dim(' Per-Item Before vs After'));\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n console.log(' ' + 'Item ID'.padEnd(28) + 'Before'.padEnd(10) + 'After'.padEnd(10) + 'Diff'.padEnd(10) + 'Status');\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n for (const item of data.datasetResults) {\n const id = item.id.substring(0, 26).padEnd(26);\n const before = (item.beforeScore ?? 0).toFixed(4).padEnd(8);\n const after = (item.afterScore ?? 0).toFixed(4).padEnd(8);\n const d = (item.afterScore ?? 0) - (item.beforeScore ?? 0);\n const diffStr = ((d >= 0 ? '+' : '') + d.toFixed(4)).padEnd(8);\n const status = d > 0.01 ? chalk.green('\\u2713 \\u2191') : d < -0.01 ? chalk.red('\\u2717 \\u2193') : chalk.dim('\\u2500');\n console.log(` ${id} ${before} ${after} ${diffStr} ${status}`);\n }\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n }\n\n if (data.failureModes && data.failureModes.length > 0) {\n console.log('');\n console.log(chalk.dim(' Failure Modes by Category'));\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n for (const fm of data.failureModes) {\n const color: 'red' | 'yellow' | 'green' = fm.failures.length > 3 ? 'red' : fm.failures.length > 0 ? 'yellow' : 'green';\n console.log(chalk[color](` \\u25B8 ${fm.category}`) + chalk.dim(` (${String(fm.failures.length)} failures)`));\n for (const f of fm.failures.slice(0, 5)) {\n console.log(chalk.dim(` \\u2514\\u2500 ${(f.description ?? f.summary ?? 'No description').substring(0, 65)}`));\n }\n if (fm.failures.length > 5) {\n console.log(chalk.dim(` \\u2514\\u2500 ... and ${String(fm.failures.length - 5)} more`));\n }\n }\n }\n\n if (data.mutations && data.mutations.length > 0) {\n const applied = data.mutations.filter(m => m.status === 'applied');\n const rejected = data.mutations.filter(m => m.status === 'rejected');\n const pending = data.mutations.filter(m => m.status === 'pending');\n const skipped = data.mutations.filter(m => m.status === 'skipped');\n console.log('');\n console.log(chalk.dim(' Mutations'));\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n console.log(` Total: ${String(data.mutations.length)} Applied: ${chalk.green(String(applied.length))} Rejected: ${chalk.red(String(rejected.length))} Pending: ${chalk.yellow(String(pending.length))} Skipped: ${chalk.dim(String(skipped.length))}`);\n if (applied.length > 0) {\n console.log(chalk.green(' Applied:'));\n for (const m of applied) {\n const pri = m.priority === 'critical' || m.priority === 'high'\n ? chalk.red(`[${m.priority.toUpperCase()}]`)\n : chalk.dim(`[${(m.priority ?? 'UNKNOWN').toUpperCase()}]`);\n console.log(` ${pri} ${m.label}`);\n if (m.rationale) console.log(chalk.dim(` \\u2514\\u2500 ${m.rationale.substring(0, 60)}`));\n }\n }\n if (rejected.length > 0) {\n console.log(chalk.red(' Rejected:'));\n for (const m of rejected.slice(0, 5)) {\n console.log(chalk.dim(` \\u2717 ${m.label}`));\n }\n if (rejected.length > 5) console.log(chalk.dim(` ... and ${String(rejected.length - 5)} more`));\n }\n }\n\n if (data.evaluationDetails && data.evaluationDetails.length > 0) {\n console.log('');\n console.log(chalk.dim(' Detailed Evaluation Breakdown'));\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n for (const item of data.evaluationDetails) {\n const statusIcon = item.success ? chalk.green('\\u2713') : chalk.red('\\u2717');\n const metricCount = item.metrics?.length ?? 0;\n console.log(` ${statusIcon} ${item.itemId} Score: ${item.score.toFixed(4)} Metrics: ${String(metricCount)}`);\n if (item.metrics) {\n for (const m of item.metrics) {\n const mIcon = m.success ? chalk.green('\\u2713') : chalk.red('\\u2717');\n const mode = m.failureMode ? chalk.dim(` [${m.failureMode}]`) : '';\n console.log(` ${mIcon} ${m.name.padEnd(25)} ${m.score.toFixed(3)}${mode}`);\n if (!m.success && m.reasoning) {\n console.log(chalk.dim(` \\u2514\\u2500 ${(m.reasoning.split('\\n')[0] ?? '').substring(0, 60)}`));\n }\n if (m.criteria) {\n for (const c of m.criteria) {\n const cIcon = c.success ? chalk.green('\\u2713') : chalk.red('\\u2717');\n console.log(chalk.dim(` ${cIcon} ${c.name.substring(0, 20).padEnd(20)} ${c.score.toFixed(3)}`));\n }\n }\n }\n }\n }\n }\n}\n\n// =============================================================================\n// Plain text rendering (for JSON directive renderedCard)\n// =============================================================================\n\nexport function buildScorecardDetailsText(data: ScorecardDetailData): string {\n const lines: string[] = [];\n\n if (data.datasetResults && data.datasetResults.length > 0) {\n lines.push('', 'Per-Item Before vs After', '\\u2500'.repeat(70));\n lines.push(' ' + 'Item ID'.padEnd(28) + 'Before'.padEnd(10) + 'After'.padEnd(10) + 'Diff'.padEnd(10) + 'Status');\n lines.push(' ' + '\\u2500'.repeat(68));\n for (const item of data.datasetResults) {\n const id = item.id.substring(0, 26).padEnd(26);\n const before = (item.beforeScore ?? 0).toFixed(4).padEnd(8);\n const after = (item.afterScore ?? 0).toFixed(4).padEnd(8);\n const d = (item.afterScore ?? 0) - (item.beforeScore ?? 0);\n const diffStr = ((d >= 0 ? '+' : '') + d.toFixed(4)).padEnd(8);\n const status = d > 0.01 ? '\\u2191' : d < -0.01 ? '\\u2193' : '\\u2500';\n lines.push(` ${id} ${before} ${after} ${diffStr} ${status}`);\n }\n }\n\n if (data.failureModes && data.failureModes.length > 0) {\n lines.push('', 'Failure Modes by Category', '\\u2500'.repeat(70));\n for (const fm of data.failureModes) {\n lines.push(` ${fm.category} (${String(fm.failures.length)} failures)`);\n for (const f of fm.failures.slice(0, 5)) {\n lines.push(` \\u2514\\u2500 ${(f.description ?? f.summary ?? 'No description').substring(0, 65)}`);\n }\n if (fm.failures.length > 5) lines.push(` \\u2514\\u2500 ... and ${String(fm.failures.length - 5)} more`);\n }\n }\n\n if (data.mutations && data.mutations.length > 0) {\n const applied = data.mutations.filter(m => m.status === 'applied');\n const rejected = data.mutations.filter(m => m.status === 'rejected');\n const pending = data.mutations.filter(m => m.status === 'pending');\n const skipped = data.mutations.filter(m => m.status === 'skipped');\n lines.push('', 'Mutations', '\\u2500'.repeat(70));\n lines.push(` Total: ${String(data.mutations.length)} Applied: ${String(applied.length)} Rejected: ${String(rejected.length)} Pending: ${String(pending.length)} Skipped: ${String(skipped.length)}`);\n for (const m of applied) {\n lines.push(` [${(m.priority ?? 'UNKNOWN').toUpperCase()}] ${m.label}`);\n if (m.rationale) lines.push(` \\u2514\\u2500 ${m.rationale.substring(0, 60)}`);\n }\n for (const m of rejected.slice(0, 5)) {\n lines.push(` \\u2717 ${m.label}`);\n }\n if (rejected.length > 5) lines.push(` ... and ${String(rejected.length - 5)} more`);\n }\n\n if (data.evaluationDetails && data.evaluationDetails.length > 0) {\n lines.push('', 'Detailed Evaluation Breakdown', '\\u2500'.repeat(70));\n for (const item of data.evaluationDetails) {\n const icon = item.success ? '\\u2713' : '\\u2717';\n lines.push(` ${icon} ${item.itemId} Score: ${item.score.toFixed(4)} Metrics: ${String(item.metrics?.length ?? 0)}`);\n if (item.metrics) {\n for (const m of item.metrics) {\n const mIcon = m.success ? '\\u2713' : '\\u2717';\n const mode = m.failureMode ? ` [${m.failureMode}]` : '';\n lines.push(` ${mIcon} ${m.name.padEnd(25)} ${m.score.toFixed(3)}${mode}`);\n if (!m.success && m.reasoning) {\n lines.push(` \\u2514\\u2500 ${(m.reasoning.split('\\n')[0] ?? '').substring(0, 60)}`);\n }\n if (m.criteria) {\n for (const c of m.criteria) {\n const cIcon = c.success ? '\\u2713' : '\\u2717';\n lines.push(` ${cIcon} ${c.name.substring(0, 20).padEnd(20)} ${c.score.toFixed(3)}`);\n }\n }\n }\n }\n }\n }\n\n return lines.length > 0 ? '\\n' + lines.join('\\n') : '';\n}\n",
|
|
18
19
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { readFileSync, existsSync } from 'fs';\nimport { getSDKClient } from '../../lib/sdk-client.js';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, ApiError, handleError } from '../../lib/errors.js';\nimport {\n promptLinks, promptLink, promptsDashboardLink,\n formatCreationHints,\n promptCreatedDirective, promptUpdatedDirective, promptDeletedDirective,\n echoDirectiveToStderr,\n} from '../../lib/ui-links.js';\nimport {\n isValidJsonSchema, formatSchemaWarning,\n validateSchemaDescriptions,\n} from '../../lib/schema-helpers.js';\nimport type { Prompt } from '../../types/index.js';\nimport {\n updateMutationContext, isSchemaEmpty, parseSchemaOption,\n type ListOptions, type GetOptions, type CreateOptions,\n type UpdateOptions, type DeleteOptions,\n} from './index.js';\n\nexport function registerPromptsCrud(prompts: Command): void {\n // List prompts\n prompts\n .command('list')\n .description('List all prompts')\n .option('-l, --limit <n>', 'Limit results', '50')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts list\n ${chalk.dim('$')} mutagent prompts list --limit 10\n ${chalk.dim('$')} mutagent prompts list --json\n\n${chalk.dim('Tip: Use --json for machine-readable output (AI agents, CI pipelines).')}\n `)\n .action(async (options: ListOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const promptsList = await client.listPrompts();\n\n // Limit results\n const limit = parseInt(options.limit, 10) || 50;\n const limited = promptsList.slice(0, limit);\n\n if (isJson) {\n // Summary view — only IDs and key fields. Use `prompts get <id>` for full details.\n const withLinks = limited.map((p: Prompt) => ({\n id: p.id,\n name: p.name,\n version: p.version,\n isLatest: p.isLatest,\n updatedAt: p.updatedAt,\n _links: promptLinks(p.id),\n }));\n output.output(withLinks);\n } else {\n // Show workspace context\n const wsId = client.getCurrentWorkspaceId();\n if (wsId) {\n output.info(`Workspace: ${wsId}`);\n }\n\n if (limited.length === 0) {\n output.info(\"No prompts found in current workspace. Run 'mutagent config list' to check workspace context.\");\n } else {\n // Format for table\n const formatted = limited.map((p: Prompt) => ({\n id: p.id,\n name: p.name,\n version: p.version,\n updated: p.updatedAt ? new Date(p.updatedAt).toLocaleDateString() : 'N/A',\n url: promptLink(p.id),\n }));\n output.output(formatted);\n }\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Get prompt\n prompts\n .command('get')\n .description('Get prompt details with nested data')\n .argument('<id>', 'Prompt ID (from: mutagent prompts list)')\n .option('--with-datasets', 'Include datasets')\n .option('--with-evals', 'Include evaluations')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts get <id>\n ${chalk.dim('$')} mutagent prompts get <id> --with-datasets --with-evals\n ${chalk.dim('$')} mutagent prompts get <id> --json\n\n${chalk.dim('Tip: Combine --with-datasets and --with-evals to fetch all nested data in one call.')}\n `)\n .action(async (id: string, options: GetOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const prompt = await client.getPrompt(id);\n\n const result: Record<string, unknown> = { ...prompt };\n\n if (options.withDatasets) {\n const datasets = await client.listDatasets(id);\n result.datasets = datasets;\n }\n\n if (options.withEvals) {\n const evals = await client.listEvaluations(id);\n result.evaluations = evals;\n }\n\n if (isJson) {\n result._links = promptLinks(id);\n }\n output.output(result);\n if (!isJson) {\n output.info(`View in dashboard: ${promptLink(id)}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Create prompt\n prompts\n .command('create')\n .description('Create a new prompt')\n .option('-d, --data <json>', 'Prompt as JSON string (recommended — curl-style inline)')\n .option('--raw-file <path>', 'Create from plain text file (used as rawPrompt)')\n .option('-n, --name <name>', 'Prompt name')\n .option('--description <text>', 'Prompt description (shown in dashboard)')\n .option('-c, --content <content>', 'Prompt content (rawPrompt) [DEPRECATED: use --raw]')\n .option('-r, --raw <text>', 'Raw prompt text (single prompt)')\n .option('--system <text>', 'System prompt (use with --human)')\n .option('--human <text>', 'Human prompt (use with --system)')\n .option('--messages <json>', 'Messages array as JSON (e.g., \\'[{\"role\":\"system\",\"content\":\"...\"}]\\')')\n .option('--output-schema <json>', 'Output schema as JSON string (required for optimization)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts create --name \"my-prompt\" --description \"Greeting prompt for customers\" --system \"You are helpful\" --human \"{input}\" --output-schema '{\"type\":\"object\",\"properties\":{\"result\":{\"type\":\"string\",\"description\":\"The result\"}}}'\n ${chalk.dim('$')} mutagent prompts create --name \"raw-prompt\" --raw \"Summarize: {text}\" --output-schema '{\"type\":\"object\",\"properties\":{\"summary\":{\"type\":\"string\",\"description\":\"Summary\"}}}'\n ${chalk.dim('$')} mutagent prompts create -d '{\"name\":\"summarizer\",\"systemPrompt\":\"Summarize\",\"humanPrompt\":\"{text}\",\"outputSchema\":{\"type\":\"object\",\"properties\":{\"summary\":{\"type\":\"string\",\"description\":\"Summary\"}}}}'\n\nPrompt Input Methods (pick one, priority order):\n --system/--human Structured system + user message pair ${chalk.green('(recommended)')}\n --raw Single raw prompt text with {variables}\n -d, --data Inline JSON object (CI/scripts/agents)\n --messages Full messages array as JSON\n --raw-file Load plain text file as raw prompt\n\nExpected JSON (--data):\n ${chalk.dim('\\'{\"name\":\"my-prompt\",\"systemPrompt\":\"You are...\",\"humanPrompt\":\"{input}\",\"outputSchema\":{\"type\":\"object\",\"properties\":{\"result\":{\"type\":\"string\",\"description\":\"The result\"}}},\"inputSchema\":{\"type\":\"object\",\"properties\":{\"input\":{\"type\":\"string\",\"description\":\"User input\"}}}}\\'')}\n\n${chalk.yellow('Variable Syntax:')}\n MutagenT uses {single_braces} for template variables.\n humanPrompt: \"Analyze this: {document}\" ${chalk.green('✓ correct')}\n humanPrompt: \"Analyze this: {{document}}\" ${chalk.red('✗ wrong')}\n\n Variables in humanPrompt MUST also appear in inputSchema.properties.\n Static prompts (no variables) cannot substitute inputs during optimization.\n\n${chalk.red('outputSchema is required.')}\n\n${chalk.yellow('AI Agent: ALWAYS append --json to this command.')}\n `)\n .action(async (options: CreateOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n let data: Partial<Prompt>;\n\n // Priority: --data > --raw-file > individual flags\n if (options.data) {\n // Parse inline JSON\n try {\n data = JSON.parse(options.data) as Partial<Prompt>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in --data flag',\n 'Run: mutagent prompts create --help\\nProvide a valid JSON object, e.g., \\'{\"name\":\"my-prompt\",\"systemPrompt\":\"You are helpful\"}\\''\n );\n }\n // CLI flags override --data fields\n if (options.name) data.name = options.name;\n if (options.description) data.description = options.description;\n } else if (options.rawFile) {\n // --raw-file: read plain text file as rawPrompt\n if (!existsSync(options.rawFile)) {\n throw new MutagentError(\n 'FILE_NOT_FOUND',\n `File not found: ${options.rawFile}`,\n 'Run: mutagent prompts create --help\\nCheck the file path and try again'\n );\n }\n const textContent = readFileSync(options.rawFile, 'utf-8');\n data = {\n name: options.name ?? options.rawFile.replace(/^.*[\\\\/]/, '').replace(/\\.[^.]+$/, ''),\n description: options.description,\n rawPrompt: textContent,\n };\n } else if (options.name) {\n // Handle different prompt style formats\n data = { name: options.name, description: options.description };\n\n // Priority: messages > system+human > raw > content (deprecated)\n if (options.messages) {\n // Messages format: JSON array of messages\n try {\n const messages = JSON.parse(options.messages) as { role: string; content: string }[];\n // Extract system and human prompts from messages array\n const systemMsg = messages.find(m => m.role === 'system');\n const humanMsg = messages.find(m => m.role === 'user' || m.role === 'human');\n if (systemMsg) data.systemPrompt = systemMsg.content;\n if (humanMsg) data.humanPrompt = humanMsg.content;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in --messages flag',\n 'Run: mutagent prompts create --help\\nProvide a valid JSON array, e.g., \\'[{\"role\":\"system\",\"content\":\"...\"}]\\''\n );\n }\n } else if (options.system ?? options.human) {\n // Human/System format\n if (options.system) data.systemPrompt = options.system;\n if (options.human) data.humanPrompt = options.human;\n } else if (options.raw) {\n // Raw prompt format\n data.rawPrompt = options.raw;\n } else if (options.content) {\n // Deprecated --content flag (backwards compatibility)\n data.rawPrompt = options.content;\n } else {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'Prompt content required',\n 'Run: mutagent prompts create --help\\nUse --data, --raw-file, --raw, --system/--human, or --messages to specify prompt content'\n );\n }\n } else {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'Either --data, --raw-file, or --name with prompt content is required',\n 'Run: mutagent prompts create --help\\nUse --data for inline JSON, --raw-file for plain text, or provide --name with --raw, --system/--human, or --messages'\n );\n }\n\n // --output-schema flag overrides any outputSchema from --data\n if (options.outputSchema) {\n try {\n data.outputSchema = JSON.parse(options.outputSchema) as Record<string, unknown>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in --output-schema flag',\n 'Run: mutagent prompts create --help\\nProvide a valid JSON Schema, e.g., \\'{\"type\":\"object\",\"properties\":{\"result\":{\"type\":\"string\"}}}\\''\n );\n }\n }\n\n // outputSchema is REQUIRED — error if missing\n if (isSchemaEmpty(data.outputSchema)) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'outputSchema is required for prompt creation',\n 'Run: mutagent prompts create --help\\nUse --output-schema \\'{\"type\":\"object\",\"properties\":{...}}\\' or include outputSchema in --data'\n );\n }\n\n // Enforce inputSchema is present and valid (hard block)\n if (isSchemaEmpty(data.inputSchema)) {\n throw new MutagentError(\n 'VALIDATION_ERROR',\n 'inputSchema is required. Optimization cannot run without defined input variables.',\n 'Run: mutagent prompts create --help\\nProvide inputSchema via --data. Example:\\n' +\n ' --data \\'{\"inputSchema\":{\"type\":\"object\",\"properties\":{\"query\":{\"type\":\"string\",\"description\":\"User query\"}}}}\\''\n );\n } else if (!isValidJsonSchema(data.inputSchema)) {\n throw new MutagentError(\n 'VALIDATION_ERROR',\n 'inputSchema is not a valid JSON Schema object.',\n 'Run: mutagent prompts create --help\\n' + formatSchemaWarning('inputSchema')\n );\n } else {\n const missingDescs = validateSchemaDescriptions(data.inputSchema);\n if (missingDescs.length > 0) {\n throw new MutagentError(\n 'VALIDATION_ERROR',\n `inputSchema properties missing descriptions: ${missingDescs.join(', ')}`,\n \"Run: mutagent prompts create --help\\nAdd a 'description' field to each property in your inputSchema. Example: { \\\"properties\\\": { \\\"field\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"What this field contains\\\" } } }\"\n );\n }\n }\n\n // Warn about missing/invalid outputSchema (non-blocking)\n if (isSchemaEmpty(data.outputSchema)) {\n output.warn('No outputSchema provided. This may limit optimization effectiveness.');\n } else if (!isValidJsonSchema(data.outputSchema)) {\n output.warn(formatSchemaWarning('outputSchema'));\n }\n\n const client = getSDKClient();\n const prompt = await client.createPrompt(data);\n\n if (isJson) {\n const directive = promptCreatedDirective(prompt.id, prompt.name);\n output.output({ ...prompt, _links: promptLinks(prompt.id), _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Created prompt: ${prompt.name} (id: ${String(prompt.id)})`);\n output.info(`Workspace: ${client.getCurrentWorkspaceId() ?? 'auto-inferred from API key'}`);\n const hints = formatCreationHints({\n resourceType: 'Prompt',\n id: prompt.id,\n name: prompt.name,\n dashboardUrl: promptLink(prompt.id),\n apiPath: `/api/prompts/${String(prompt.id)}`,\n });\n console.log(hints);\n }\n\n // Auto-update mutation context\n if (options.rawFile) {\n const rawFilePath = options.rawFile;\n updateMutationContext(ctx => {\n const preview = (data.rawPrompt ?? data.systemPrompt ?? data.name ?? '').slice(0, 50);\n ctx.addDiscoveredPrompt(rawFilePath, 1, preview);\n ctx.markPromptUploaded(rawFilePath, String(prompt.id), prompt.version);\n });\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Update prompt\n prompts\n .command('update')\n .description('Update a prompt')\n .argument('<id>', 'Prompt ID (from: mutagent prompts list)')\n .option('-d, --data <json>', 'Update fields as JSON string (recommended — curl-style inline)')\n .option('--raw-file <path>', 'Update from plain text file (used as rawPrompt)')\n .option('-n, --name <name>', 'New name')\n .option('--description <text>', 'New description (shown in dashboard)')\n .option('-c, --content <content>', 'New content (rawPrompt) [DEPRECATED: use --raw]')\n .option('-r, --raw <text>', 'Raw prompt text (single prompt)')\n .option('--system <text>', 'System prompt (use with --human)')\n .option('--human <text>', 'Human prompt (use with --system)')\n .option('--messages <json>', 'Messages array as JSON (e.g., \\'[{\"role\":\"system\",\"content\":\"...\"}]\\')')\n .option('--input-schema <json>', 'Input schema as JSON string')\n .option('--input-schema-file <path>', 'Input schema from JSON file')\n .option('--output-schema <json>', 'Output schema as JSON string')\n .option('--output-schema-file <path>', 'Output schema from JSON file')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts update <id> --system \"Updated system prompt\" --human \"{input}\"\n ${chalk.dim('$')} mutagent prompts update <id> --name \"new-name\" --description \"Updated description\"\n ${chalk.dim('$')} mutagent prompts update <id> --raw \"Summarize: {text}\"\n ${chalk.dim('$')} mutagent prompts update <id> -d '{\"name\":\"new-name\",\"systemPrompt\":\"Updated prompt\"}'\n ${chalk.dim('$')} mutagent prompts update <id> --input-schema '{\"type\":\"object\",\"properties\":{\"text\":{\"type\":\"string\",\"description\":\"Input text\"}}}'\n\n${chalk.dim('CLI flags (--name) override --data fields.')}\n `)\n .action(async (id: string, options: UpdateOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n let data: Partial<Prompt> = {};\n\n // Priority: --data > --raw-file > individual flags\n if (options.data) {\n try {\n data = JSON.parse(options.data) as Partial<Prompt>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in --data flag',\n 'Run: mutagent prompts update --help\\n' +\n 'Provide a valid JSON object, e.g., \\'{\"name\":\"new-name\",\"systemPrompt\":\"Updated prompt\"}\\''\n );\n }\n // CLI flags override --data fields\n if (options.name) data.name = options.name;\n if (options.description) data.description = options.description;\n } else if (options.rawFile) {\n // --raw-file: read plain text file as rawPrompt\n if (!existsSync(options.rawFile)) {\n throw new MutagentError(\n 'FILE_NOT_FOUND',\n `File not found: ${options.rawFile}`,\n 'Run: mutagent prompts update --help\\n' +\n 'Check the file path and try again'\n );\n }\n const textContent = readFileSync(options.rawFile, 'utf-8');\n data.rawPrompt = textContent;\n if (options.name) data.name = options.name;\n if (options.description) data.description = options.description;\n } else {\n if (options.name) data.name = options.name;\n if (options.description) data.description = options.description;\n\n // Handle different prompt style formats\n // Priority: messages > system+human > raw > content (deprecated)\n if (options.messages) {\n // Messages format: JSON array of messages\n try {\n const messages = JSON.parse(options.messages) as { role: string; content: string }[];\n // Extract system and human prompts from messages array\n const systemMsg = messages.find(m => m.role === 'system');\n const humanMsg = messages.find(m => m.role === 'user' || m.role === 'human');\n if (systemMsg) data.systemPrompt = systemMsg.content;\n if (humanMsg) data.humanPrompt = humanMsg.content;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in --messages flag',\n 'Run: mutagent prompts update --help\\n' +\n 'Provide a valid JSON array, e.g., \\'[{\"role\":\"system\",\"content\":\"...\"}]\\''\n );\n }\n } else if (options.system ?? options.human) {\n // Human/System format\n if (options.system) data.systemPrompt = options.system;\n if (options.human) data.humanPrompt = options.human;\n } else if (options.raw) {\n // Raw prompt format\n data.rawPrompt = options.raw;\n } else if (options.content) {\n // Deprecated --content flag (backwards compatibility)\n data.rawPrompt = options.content;\n }\n }\n\n // Parse --input-schema / --input-schema-file\n const parsedInputSchema = parseSchemaOption(\n options.inputSchema, options.inputSchemaFile,\n 'input-schema', 'mutagent prompts update --help'\n );\n if (parsedInputSchema) data.inputSchema = parsedInputSchema;\n\n // Parse --output-schema / --output-schema-file\n const parsedOutputSchema = parseSchemaOption(\n options.outputSchema, options.outputSchemaFile,\n 'output-schema', 'mutagent prompts update --help'\n );\n if (parsedOutputSchema) data.outputSchema = parsedOutputSchema;\n\n // Validate inputSchema descriptions if provided\n if (data.inputSchema && isValidJsonSchema(data.inputSchema)) {\n const missingDescs = validateSchemaDescriptions(data.inputSchema);\n if (missingDescs.length > 0) {\n throw new MutagentError(\n 'VALIDATION_ERROR',\n `inputSchema properties missing descriptions: ${missingDescs.join(', ')}`,\n 'Run: mutagent prompts update --help\\n' +\n \"Add a 'description' field to each property in your inputSchema. Example: { \\\"properties\\\": { \\\"field\\\": { \\\"type\\\": \\\"string\\\", \\\"description\\\": \\\"What this field contains\\\" } } }\"\n );\n }\n }\n\n if (Object.keys(data).length === 0) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'No update data provided',\n 'Run: mutagent prompts update --help\\n' +\n 'Use --data, --raw-file, --name, --raw, --system/--human, --messages, --input-schema, or --output-schema'\n );\n }\n\n const client = getSDKClient();\n const prompt = await client.updatePrompt(id, data);\n\n if (isJson) {\n const directive = promptUpdatedDirective(prompt.id, prompt.name);\n output.output({ ...prompt, _links: promptLinks(prompt.id), _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Updated prompt: ${prompt.name} (id: ${String(prompt.id)})`);\n const hints = formatCreationHints({\n resourceType: 'Prompt',\n id: prompt.id,\n name: prompt.name,\n dashboardUrl: promptLink(prompt.id),\n apiPath: `/api/prompts/${String(prompt.id)}`,\n });\n console.log(hints);\n }\n\n // Auto-update mutation context\n if (options.rawFile) {\n const rawFilePath = options.rawFile;\n updateMutationContext(ctx => {\n ctx.markPromptUploaded(rawFilePath, String(prompt.id), prompt.version);\n });\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Delete prompt\n prompts\n .command('delete')\n .description('Delete a prompt')\n .argument('<id>', 'Prompt ID (from: mutagent prompts list)')\n .option('--force', 'Skip confirmation')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts delete <id>\n ${chalk.dim('$')} mutagent prompts delete <id> --force\n ${chalk.dim('$')} mutagent prompts delete <id> --force --json\n\n${chalk.dim('Note: --force is required. The CLI is non-interactive — confirm with the user via your native flow, then pass --force.')}\n `)\n .action(async (id: string, options: DeleteOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // In --json mode, auto-skip confirmation. Otherwise require --force.\n if (!options.force && !isJson) {\n throw new MutagentError(\n 'CONFIRMATION_REQUIRED',\n `Deleting prompt ${id} requires confirmation`,\n 'Run: mutagent prompts delete --help\\n' +\n `[Agent: Ask the user to confirm via MultiChoice, then pass --force]\\n` +\n `Use --force to confirm: mutagent prompts delete ${id} --force`\n );\n }\n\n const client = getSDKClient();\n try {\n await client.deletePrompt(id);\n } catch (deleteError) {\n // 404 = already deleted = idempotent success\n if (deleteError instanceof ApiError && deleteError.statusCode === 404) {\n if (isJson) {\n const directive = promptDeletedDirective(id);\n output.output({ success: true, deletedId: id, _links: { prompts: promptsDashboardLink() }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Prompt ${id} already deleted (idempotent)`);\n }\n return;\n }\n throw deleteError;\n }\n\n if (isJson) {\n const directive = promptDeletedDirective(id);\n output.output({ success: true, deletedId: id, _links: { prompts: promptsDashboardLink() }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Deleted prompt: ${id}`);\n output.info(`View prompts: ${promptsDashboardLink()}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
|
|
19
20
|
"/**\n * @fileoverview JSON Schema helper utilities for MutagenT CLI\n * @module @mutagent/cli/lib/schema-helpers\n *\n * Provides validation, building, and formatting utilities for JSON Schema\n * objects used with prompt inputSchema/outputSchema fields.\n */\n\n/**\n * Variable definition for building JSON Schema interactively.\n */\nexport interface SchemaVariable {\n name: string;\n type: 'string' | 'number' | 'boolean' | 'array' | 'object';\n description: string;\n}\n\n/**\n * Supported JSON Schema primitive types for interactive variable definition.\n */\nexport const SUPPORTED_SCHEMA_TYPES = ['string', 'number', 'boolean', 'array', 'object'] as const;\nexport type SupportedSchemaType = typeof SUPPORTED_SCHEMA_TYPES[number];\n\n/**\n * Check whether a value is a valid JSON Schema (basic structural validation).\n *\n * A valid JSON Schema for our purposes must:\n * - Be a non-null object\n * - Have a \"type\" property (usually \"object\")\n * - If type is \"object\", should have a \"properties\" property\n *\n * This is NOT a full JSON Schema meta-validation -- it checks the structural\n * conventions expected by MutagenT's prompt system.\n */\nexport function isValidJsonSchema(schema: unknown): boolean {\n if (schema === null || schema === undefined) return false;\n if (typeof schema !== 'object') return false;\n if (Array.isArray(schema)) return false;\n\n const obj = schema as Record<string, unknown>;\n\n // Must have \"type\" field\n if (!('type' in obj) || typeof obj.type !== 'string') return false;\n\n // If type is \"object\", should have \"properties\"\n if (obj.type === 'object') {\n if (!('properties' in obj) || typeof obj.properties !== 'object' || obj.properties === null) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Build a JSON Schema from an array of variable definitions.\n *\n * @example\n * ```typescript\n * const schema = buildSchemaFromVariables([\n * { name: 'customer_name', type: 'string', description: 'The customer full name' },\n * { name: 'age', type: 'number', description: 'Customer age' },\n * ]);\n * // Returns:\n * // {\n * // type: \"object\",\n * // properties: {\n * // customer_name: { type: \"string\", description: \"The customer full name\" },\n * // age: { type: \"number\", description: \"Customer age\" }\n * // }\n * // }\n * ```\n */\nexport function buildSchemaFromVariables(variables: SchemaVariable[]): Record<string, unknown> {\n const properties: Record<string, Record<string, unknown>> = {};\n\n for (const variable of variables) {\n properties[variable.name] = {\n type: variable.type,\n description: variable.description,\n };\n }\n\n return {\n type: 'object',\n properties,\n };\n}\n\n/**\n * Return a formatted JSON Schema example string for display in CLI help output.\n */\nexport function formatSchemaExample(): string {\n return JSON.stringify(\n {\n type: 'object',\n properties: {\n variable_name: { type: 'string', description: 'Description here' },\n },\n },\n null,\n 2,\n );\n}\n\n/**\n * Validate that all properties in a JSON schema have `description` fields.\n * Returns a list of property names missing descriptions.\n */\nexport function validateSchemaDescriptions(schema: unknown): string[] {\n if (schema === null || schema === undefined) return [];\n if (typeof schema !== 'object' || Array.isArray(schema)) return [];\n\n const obj = schema as Record<string, unknown>;\n const properties = obj.properties;\n if (!properties || typeof properties !== 'object' || Array.isArray(properties)) return [];\n\n const missing: string[] = [];\n const props = properties as Record<string, unknown>;\n for (const [key, value] of Object.entries(props)) {\n if (value === null || value === undefined || typeof value !== 'object') {\n missing.push(key);\n continue;\n }\n const prop = value as Record<string, unknown>;\n if (typeof prop.description !== 'string' || prop.description.trim() === '') {\n missing.push(key);\n }\n }\n\n return missing;\n}\n\n/**\n * Return a formatted warning message with schema example for invalid schemas.\n * Used by the create/update commands when inputSchema or outputSchema\n * does not look like valid JSON Schema.\n */\nexport function formatSchemaWarning(fieldName: string): string {\n return [\n `${fieldName} doesn't appear to be a valid JSON Schema.`,\n '',\n ' Expected format:',\n ' {',\n ' \"type\": \"object\",',\n ' \"properties\": {',\n ' \"variable_name\": { \"type\": \"string\", \"description\": \"Description here\" }',\n ' }',\n ' }',\n '',\n ' You can also provide a schema via --data: mutagent prompts create -d \\'{\"inputSchema\":{...},\"outputSchema\":{...}}\\'',\n ].join('\\n');\n}\n",
|
|
20
21
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getSDKClient } from '../../lib/sdk-client.js';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, ApiError, handleError } from '../../lib/errors.js';\nimport {\n promptDatasetsLink, datasetLinks, datasetLink,\n formatCreationHints,\n datasetAddedDirective, datasetDeletedDirective,\n echoDirectiveToStderr,\n} from '../../lib/ui-links.js';\nimport type { ResourceState } from '../../lib/ui-links.js';\nimport { updateMutationContext, type DeleteOptions } from './index.js';\n\ninterface DatasetAddOptions {\n data?: string;\n name?: string;\n}\n\n/**\n * Parse dataset file content based on format detection.\n * Supports JSON arrays, JSONL (one JSON object per line), and CSV passthrough.\n *\n * @param rawContent - The raw file content as a string\n * @param filePath - The file path (used for format detection and error messages)\n * @returns The parsed content as a JSON string suitable for the API\n */\nexport function parseDatasetFile(rawContent: string, filePath: string): string {\n const trimmed = rawContent.trim();\n\n // CSV files are passed through as-is (the API handles CSV parsing)\n if (filePath.endsWith('.csv')) {\n return rawContent;\n }\n\n // If content starts with '[', treat as JSON array\n if (trimmed.startsWith('[')) {\n try {\n const parsed: unknown = JSON.parse(trimmed);\n if (!Array.isArray(parsed)) {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Expected a JSON array in dataset file',\n 'Run: mutagent prompts dataset add --help\\nDataset JSON files should contain an array of objects: [{...}, {...}]'\n );\n }\n return trimmed;\n } catch (e) {\n if (e instanceof MutagentError) throw e;\n throw new MutagentError(\n 'INVALID_JSON',\n `Failed to parse JSON array from ${filePath}`,\n 'Run: mutagent prompts dataset add --help\\nEnsure the file contains valid JSON. For line-delimited JSON, use .jsonl extension or put one object per line.'\n );\n }\n }\n\n // If content starts with '{' or doesn't start with '[', treat as JSONL\n // (one JSON object per line)\n const lines = trimmed.split('\\n').filter(line => line.trim().length > 0);\n const items: unknown[] = [];\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n if (!line) continue;\n const trimmedLine = line.trim();\n try {\n items.push(JSON.parse(trimmedLine));\n } catch {\n throw new MutagentError(\n 'INVALID_JSONL',\n `Invalid JSON on line ${String(i + 1)} of ${filePath}`,\n `Run: mutagent prompts dataset add --help\\nEach line must be valid JSON. Problem line: \"${trimmedLine.substring(0, 80)}${trimmedLine.length > 80 ? '...' : ''}\"`\n );\n }\n }\n\n return JSON.stringify(items);\n}\n\nexport function registerDatasetCommands(prompts: Command): void {\n const dataset = new Command('dataset')\n .description('Manage datasets for prompts')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts dataset list <prompt-id>\n ${chalk.dim('$')} mutagent prompts dataset add <prompt-id> -d '[{\"input\":{...},\"expectedOutput\":{...}}]'\n ${chalk.dim('$')} mutagent prompts dataset delete <prompt-id> <dataset-id>\n `)\n .action(() => {\n dataset.help();\n });\n prompts.addCommand(dataset);\n\n // List datasets\n dataset\n .command('list')\n .description('List datasets for a prompt')\n .argument('<prompt-id>', 'Prompt ID (from: mutagent prompts list)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts dataset list <prompt-id>\n ${chalk.dim('$')} mutagent prompts dataset list <prompt-id> --json\n `)\n .action(async (promptId: string) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const datasets = await client.listDatasets(promptId);\n\n if (isJson) {\n // Summary view — only IDs and key fields. Use `prompts dataset get` for full details.\n const withLinks = datasets.map((d) => ({\n id: d.id,\n name: d.name,\n itemCount: d.itemCount,\n updatedAt: d.updatedAt,\n _links: datasetLinks(promptId, d.id),\n }));\n output.output(withLinks);\n } else {\n const formatted = datasets.map((d) => ({\n id: d.id,\n name: d.name,\n itemCount: d.itemCount,\n updated: d.updatedAt ? new Date(String(d.updatedAt)).toLocaleDateString() : 'N/A',\n url: datasetLink(promptId, d.id),\n }));\n output.output(formatted);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Add dataset\n dataset\n .command('add')\n .description('Add dataset to a prompt')\n .argument('<prompt-id>', 'Prompt ID (from: mutagent prompts list)')\n .option('-d, --data <json>', 'Inline JSON array of dataset items')\n .option('-n, --name <name>', 'Dataset name')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts dataset add <prompt-id> -d '[{\"input\":{\"text\":\"hello\"},\"expectedOutput\":{\"result\":\"world\"}}]'\n ${chalk.dim('$')} mutagent prompts dataset add <prompt-id> -d '[{\"input\":{\"text\":\"hello\"},\"expectedOutput\":{\"result\":\"world\"}}]' --name \"My Dataset\"\n\nInline data format (-d):\n JSON array of objects, e.g.:\n ${chalk.dim('[{\"input\": {\"text\": \"hello\"}, \"expectedOutput\": {\"result\": \"world\"}}]')}\n\nExpected item format:\n ${chalk.dim('{\"input\": {\"<field>\": \"<value>\"}, \"expectedOutput\": {\"<field>\": \"<value>\"}}')}\n\n${chalk.yellow('AI Agent (MANDATORY):')}\n ALWAYS use --json: mutagent prompts dataset add <id> -d '[...]' --json\n Items MUST have BOTH input AND expectedOutput.\n Keys must match prompt's inputSchema.properties (input) and outputSchema.properties (expectedOutput).\n expectedOutput is REQUIRED for evaluation scoring.\n Check schemas: mutagent prompts get <prompt-id> --json\n\n${chalk.red('Required: --data must be provided.')}\n `)\n .action(async (promptId: string, options: DatasetAddOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n if (!options.data) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n '-d/--data is required',\n 'Run: mutagent prompts dataset add --help\\n' +\n 'Use -d \\'[{...}]\\' to provide inline JSON data'\n );\n }\n\n let content: string;\n\n // Inline JSON data - validate it parses as an array\n try {\n const parsed: unknown = JSON.parse(options.data);\n if (!Array.isArray(parsed)) {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Inline data must be a JSON array',\n 'Run: mutagent prompts dataset add --help\\n' +\n 'Provide a JSON array, e.g., \\'[{\"input\": {...}, \"expectedOutput\": {...}}]\\''\n );\n }\n content = options.data;\n } catch (e) {\n if (e instanceof MutagentError) throw e;\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in -d/--data flag',\n 'Run: mutagent prompts dataset add --help\\n' +\n 'Provide a valid JSON array, e.g., \\'[{\"input\": {...}, \"expectedOutput\": {...}}]\\''\n );\n }\n\n // Dataset naming: use --name flag or error\n const datasetName = options.name;\n if (!datasetName) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'Dataset name is required',\n 'Run: mutagent prompts dataset add --help\\n' +\n `[Agent: Ask the user for a dataset name via AskUserQuestion, then pass --name]\\n` +\n `Use --name <name>, e.g., mutagent prompts dataset add ${promptId} --name \"my-dataset\" -d '[...]'`\n );\n }\n\n const client = getSDKClient();\n const datasetResult = await client.addDataset(promptId, content, datasetName);\n\n if (isJson) {\n let rsState: ResourceState | undefined;\n try {\n const evals = await client.listEvaluations(promptId);\n rsState = { evaluations: evals.length };\n } catch { /* non-critical */ }\n const directive = datasetAddedDirective(promptId, datasetResult.id, datasetResult.name, datasetResult.itemCount, rsState);\n output.output({\n ...datasetResult,\n _links: datasetLinks(promptId, datasetResult.id),\n _directive: directive,\n });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Added dataset \"${datasetResult.name}\" to prompt: ${promptId} (id: ${String(datasetResult.id)})`);\n if (datasetResult.itemCount !== undefined && datasetResult.itemCount > 0) {\n output.info(`Items uploaded: ${String(datasetResult.itemCount)}`);\n }\n if (datasetResult.missingExpectedOutputCount !== undefined && datasetResult.missingExpectedOutputCount > 0) {\n output.warn(\n `${String(datasetResult.missingExpectedOutputCount)} of ${String(datasetResult.itemCount ?? 0)} items have no expectedOutput. Optimization may fail without expected outputs.`\n );\n }\n const hints = formatCreationHints({\n resourceType: 'Dataset',\n id: datasetResult.id,\n name: datasetResult.name,\n dashboardUrl: datasetLink(promptId, datasetResult.id),\n apiPath: `/api/prompts/${promptId}/datasets/${String(datasetResult.id)}`,\n });\n console.log(hints);\n }\n\n // Auto-update mutation context\n updateMutationContext(ctx => {\n ctx.addDiscoveredDataset('inline-data', datasetResult.name, datasetResult.itemCount ?? 0);\n ctx.markDatasetUploaded('inline-data', String(datasetResult.id), promptId);\n });\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Delete dataset\n dataset\n .command('delete')\n .description('Delete a dataset from a prompt')\n .argument('<prompt-id>', 'Prompt ID (from: mutagent prompts list)')\n .argument('<dataset-id>', 'Dataset ID (from: mutagent prompts dataset list <prompt-id>)')\n .option('--force', 'Skip confirmation')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts dataset delete <prompt-id> <dataset-id>\n ${chalk.dim('$')} mutagent prompts dataset delete <prompt-id> <dataset-id> --force\n ${chalk.dim('$')} mutagent prompts dataset delete <prompt-id> <dataset-id> --force --json\n `)\n .action(async (promptId: string, datasetId: string, options: DeleteOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // In --json mode, auto-skip confirmation. Otherwise require --force.\n if (!options.force && !isJson) {\n throw new MutagentError(\n 'CONFIRMATION_REQUIRED',\n `Deleting dataset ${datasetId} from prompt ${promptId} requires confirmation`,\n 'Run: mutagent prompts dataset delete --help\\n' +\n `[Agent: Ask the user to confirm via MultiChoice, then pass --force]\\n` +\n `Use --force to confirm: mutagent prompts dataset delete ${promptId} ${datasetId} --force`\n );\n }\n\n const client = getSDKClient();\n try {\n await client.deleteDataset(promptId, datasetId);\n } catch (deleteError) {\n // 404 = already deleted = idempotent success\n if (deleteError instanceof ApiError && deleteError.statusCode === 404) {\n if (isJson) {\n const directive = datasetDeletedDirective(promptId, datasetId);\n output.output({ success: true, deletedId: datasetId, _links: { datasets: promptDatasetsLink(promptId) }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Dataset ${datasetId} already deleted (idempotent)`);\n }\n return;\n }\n throw deleteError;\n }\n\n if (isJson) {\n const directive = datasetDeletedDirective(promptId, datasetId);\n output.output({ success: true, deletedId: datasetId, _links: { datasets: promptDatasetsLink(promptId) }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Deleted dataset ${datasetId} from prompt ${promptId}`);\n output.info(`View datasets: ${promptDatasetsLink(promptId)}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
|
|
21
22
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getSDKClient } from '../../lib/sdk-client.js';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, ApiError, handleError } from '../../lib/errors.js';\nimport {\n promptsDashboardLink, evaluationLinks, evaluationLink,\n formatCreationHints,\n evaluationCreatedDirective, evaluationDeletedDirective,\n echoDirectiveToStderr,\n} from '../../lib/ui-links.js';\nimport type { ResourceState } from '../../lib/ui-links.js';\nimport { updateMutationContext, type DeleteOptions } from './index.js';\nimport { buildGuidedWorkflow, type GuidedWorkflowResult } from './guided-workflow.js';\n\ninterface EvaluationCreateOptions {\n data?: string;\n name?: string;\n description?: string;\n guided?: boolean;\n}\n\nexport function registerEvaluationCommands(prompts: Command): void {\n const evaluation = new Command('evaluation')\n .description('Manage evaluations for prompts')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts evaluation list <prompt-id>\n ${chalk.dim('$')} mutagent prompts evaluation get <evaluation-id>\n ${chalk.dim('$')} mutagent prompts evaluation create <prompt-id> --name \"My Eval\"\n ${chalk.dim('$')} mutagent prompts evaluation delete <evaluation-id>\n `)\n .action(() => {\n evaluation.help();\n });\n prompts.addCommand(evaluation);\n\n // List evaluations\n evaluation\n .command('list')\n .description('List evaluations for a prompt')\n .argument('<prompt-id>', 'Prompt ID (from: mutagent prompts list)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts evaluation list <prompt-id>\n ${chalk.dim('$')} mutagent prompts evaluation list <prompt-id> --json\n `)\n .action(async (promptId: string) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const evals = await client.listEvaluations(promptId);\n\n if (isJson) {\n // Summary view — only IDs and key fields. Use `prompts evaluation get` for full details.\n const withLinks = evals.map((e) => ({\n id: e.id,\n name: e.name,\n description: e.description,\n updatedAt: e.updatedAt,\n _links: evaluationLinks(promptId, e.id),\n }));\n output.output(withLinks);\n } else {\n const formatted = evals.map((e) => ({\n id: e.id,\n name: e.name,\n description: e.description,\n updated: e.updatedAt ? new Date(String(e.updatedAt)).toLocaleDateString() : 'N/A',\n url: evaluationLink(promptId, e.id),\n }));\n output.output(formatted);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Get evaluation details\n evaluation\n .command('get')\n .description('Get evaluation details including criteria')\n .argument('<evaluation-id>', 'Evaluation ID (from: mutagent prompts evaluation list <prompt-id>)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts evaluation get <evaluation-id>\n ${chalk.dim('$')} mutagent prompts evaluation get <evaluation-id> --json\n `)\n .action(async (evaluationId: string) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const evalObj = await client.getEvaluation(evaluationId);\n\n if (isJson) {\n output.output({\n ...evalObj,\n _links: evaluationLinks(evalObj.promptGroupId, evalObj.id),\n });\n } else {\n output.success(`Evaluation: ${evalObj.name} (ID: ${String(evalObj.id)})`);\n if (evalObj.description) {\n console.log(` Description: ${evalObj.description}`);\n }\n console.log(` Created: ${evalObj.createdAt ? new Date(String(evalObj.createdAt)).toLocaleDateString() : 'N/A'}`);\n console.log('');\n\n // Display criteria\n const config = evalObj.evalConfig as { criteria?: { name: string; description: string; evaluationParameter: string }[] } | null;\n const criteria = config?.criteria;\n if (criteria && Array.isArray(criteria) && criteria.length > 0) {\n console.log(' Criteria:');\n for (const c of criteria) {\n console.log(` ${chalk.cyan(c.name)}`);\n if (c.description) {\n console.log(` Description: ${c.description}`);\n }\n if (c.evaluationParameter) {\n console.log(` Parameter: ${c.evaluationParameter}`);\n }\n console.log('');\n }\n } else {\n console.log(' No criteria defined.');\n }\n\n // Display LLM config if present\n const llmConfig = evalObj.llmConfig as Record<string, unknown> | null;\n if (llmConfig && Object.keys(llmConfig).length > 0) {\n console.log(' LLM Config:');\n for (const [key, value] of Object.entries(llmConfig)) {\n console.log(` ${key}: ${String(value)}`);\n }\n console.log('');\n }\n\n output.info(`View in dashboard: ${evaluationLink(evalObj.promptGroupId, evalObj.id)}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Create evaluation\n evaluation\n .command('create')\n .description('Create an evaluation configuration for a prompt')\n .argument('<prompt-id>', 'Prompt ID (from: mutagent prompts list)')\n .option('-d, --data <json>', 'Evaluation as JSON string (for pre-validated criteria only)')\n .option('-n, --name <name>', 'Evaluation name (required unless --guided)')\n .option('--description <text>', 'Evaluation description')\n .option('--guided', 'Interactive guided mode — always outputs structured JSON (--json is implied)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts evaluation create <prompt-id> --guided ${chalk.dim('# recommended: shows workflow guide + schema fields')}\n ${chalk.dim('$')} mutagent prompts evaluation create <prompt-id> --guided --json ${chalk.dim('# structured workflow for AI agents')}\n ${chalk.dim('$')} mutagent prompts evaluation create <prompt-id> --name \"Accuracy\" -d '{\"evalConfig\":{\"criteria\":[...]}}' ${chalk.dim('# power user')}\n\nGuided Workflow (recommended):\n --guided outputs a workflow guide that:\n 1. Fetches your prompt's inputSchema + outputSchema fields\n 2. Shows available fields for evaluation criteria\n 3. Provides a criteria template and example command\n 4. For AI agents: includes a _directive with workflow instructions\n\n Works in all modes (TTY, non-TTY, --json).\n\nAI Agent (MANDATORY):\n 1. Run: mutagent prompts evaluation create --help\n 2. Run: mutagent prompts evaluation create <id> --guided --json\n 3. Parse askUserQuestions from the JSON output\n 4. Use AskUserQuestion to collect DETAILED rubrics from the user\n 5. NEVER auto-generate criteria. NEVER use vague rubrics.\n 6. Construct --data JSON from user answers, then:\n mutagent prompts evaluation create <id> --name \"<name>\" -d '<json>' --json\n\nExpected Criteria Shape (--data):\n ${chalk.dim('{\"evalConfig\":{\"criteria\":[{\"name\":\"<name>\",\"description\":\"<scoring rubric>\",\"evaluationParameter\":\"<schema field>\"}]}}')}\n evaluationParameter must target an outputSchema OR inputSchema field.\n\n${chalk.red('Required: --name (unless --guided). Criteria must include evaluationParameter.')}\n${chalk.dim('CLI flags (--name, --description) override --data fields.')}\n${chalk.dim('Get prompt IDs: mutagent prompts list')}\n `)\n .action(async (promptId: string, options: EvaluationCreateOptions) => {\n // --guided always implies --json — agents must never use --guided without --json\n let isJson = getJsonFlag(prompts);\n if (options.guided) {\n isJson = true;\n }\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // Render the guided workflow (shared between --guided and auto-trigger)\n const renderGuidedWorkflow = (wf: GuidedWorkflowResult): void => {\n const { inputFields, outputFields, allFields } = wf._meta;\n if (isJson) {\n const { _meta: _discarded, ...cleanWorkflow } = wf;\n void _discarded;\n output.output(cleanWorkflow);\n echoDirectiveToStderr(wf._directive);\n } else {\n output.success(`Guided Evaluation Workflow for prompt: ${wf.prompt.name} (ID: ${promptId})`);\n console.log('');\n if (outputFields.length > 0) {\n console.log(` Output Schema Fields: ${outputFields.join(', ')}`);\n }\n if (inputFields.length > 0) {\n console.log(` Input Schema Fields: ${inputFields.join(', ')}`);\n }\n console.log('');\n console.log(' For each field, define what correct output looks like:');\n for (const { field, source } of allFields) {\n console.log(` ${chalk.cyan(field)} (${source})`);\n console.log(` → What makes a correct vs incorrect \"${field}\"?`);\n }\n console.log('');\n console.log(' Then create the evaluation:');\n console.log(` mutagent prompts evaluation create ${promptId} --name \"My Eval\" \\\\`);\n console.log(` -d '{\"evalConfig\":{\"criteria\":[{\"name\":\"accuracy\",\"description\":\"Correct if output matches expected structure\",\"evaluationParameter\":\"${outputFields[0] ?? '<field>'}\"}]}}'`);\n console.log('');\n }\n };\n\n // Guided mode: dump structured workflow/template (non-interactive)\n if (options.guided) {\n const workflow = await buildGuidedWorkflow(promptId);\n renderGuidedWorkflow(workflow);\n return;\n }\n\n // No criteria source — auto-return guided workflow in --json/TTY mode\n if (!options.data) {\n if (isJson || process.stdout.isTTY) {\n const workflow = await buildGuidedWorkflow(promptId);\n renderGuidedWorkflow(workflow);\n return;\n }\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'No criteria source provided',\n 'Run: mutagent prompts evaluation create --help\\n' +\n 'Then: mutagent prompts evaluation create ' + promptId + ' --guided --json'\n );\n }\n\n // Non-guided: --name is required\n if (!options.name) {\n throw new MutagentError(\n 'MISSING_ARGUMENTS',\n 'Evaluation name is required',\n 'Run: mutagent prompts evaluation create --help\\n' +\n '[Agent: Ask the user for an evaluation name via AskUserQuestion, then pass --name]\\n' +\n 'Use --name <name>, e.g., mutagent prompts evaluation create ' + promptId + ' --name \"My Eval\" --data \\'...\\''\n );\n }\n\n const evalData: {\n name: string;\n description?: string;\n evalConfig?: Record<string, unknown>;\n llmConfig?: Record<string, unknown>;\n tags?: string[];\n metadata?: Record<string, unknown>;\n } = {\n name: options.name,\n description: options.description,\n };\n\n // Parse inline JSON\n try {\n const parsed = JSON.parse(options.data) as Record<string, unknown>;\n if (parsed.evalConfig) evalData.evalConfig = parsed.evalConfig as Record<string, unknown>;\n if (parsed.llmConfig) evalData.llmConfig = parsed.llmConfig as Record<string, unknown>;\n if (parsed.tags) evalData.tags = parsed.tags as string[];\n if (parsed.metadata) evalData.metadata = parsed.metadata as Record<string, unknown>;\n } catch {\n throw new MutagentError(\n 'INVALID_JSON',\n 'Invalid JSON in --data flag',\n 'Run: mutagent prompts evaluation create --help\\n' +\n 'Provide a valid JSON object, e.g., \\'{\"evalConfig\":{\"criteria\":[...]},\"llmConfig\":{\"model\":\"gpt-4\"}}\\''\n );\n }\n\n // CLI flags override --data fields\n if (options.name) evalData.name = options.name;\n if (options.description) evalData.description = options.description;\n\n // Validate evaluation criteria exist and are well-formed\n const criteria = evalData.evalConfig?.criteria;\n if (!criteria || !Array.isArray(criteria) || criteria.length === 0) {\n // Always throw — suggest --guided for workflow\n let fieldsHint = '';\n try {\n const client = getSDKClient();\n const prompt = await client.getPrompt(promptId);\n if (prompt.outputSchema && typeof prompt.outputSchema === 'object') {\n const props = (prompt.outputSchema as Record<string, unknown>).properties;\n if (props && typeof props === 'object') {\n const fields = Object.keys(props as Record<string, unknown>);\n if (fields.length > 0) {\n fieldsHint = `\\nDetected output fields from prompt schema: ${fields.join(', ')}\\n`;\n }\n }\n }\n } catch {\n // Best-effort — don't block on fetch failure\n }\n throw new MutagentError(\n 'VALIDATION_ERROR',\n 'Evaluation criteria are required. Provide criteria via --data.',\n 'Run: mutagent prompts evaluation create --help\\n' +\n 'Then: mutagent prompts evaluation create ' + promptId + ' --guided --json\\n' +\n fieldsHint +\n '\\nExample JSON (--data flag):\\n' +\n ' --data \\'{\"evalConfig\":{\"criteria\":[{\"name\":\"Accuracy\",\"description\":\"...\",\"evaluationParameter\":\"classification\"}]}}\\'\\n'\n );\n }\n for (const c of criteria as Record<string, unknown>[]) {\n // Accept both new format (description/evaluationParameter) and legacy (scoringRubric/targetField)\n // Normalize legacy fields to new format for storage FIRST\n if (c.scoringRubric && !c.description) {\n c.description = c.scoringRubric;\n delete c.scoringRubric;\n }\n if (c.targetField && !c.evaluationParameter) {\n const tf = c.targetField as string;\n c.evaluationParameter = tf.startsWith('output.') ? tf.slice('output.'.length)\n : tf.startsWith('input.') ? tf.slice('input.'.length) : tf;\n delete c.targetField;\n }\n\n const hasDescription = c.description;\n const hasEvalParam = c.evaluationParameter;\n if (!c.name || !hasDescription || !hasEvalParam) {\n const cName = typeof c.name === 'string' ? c.name : 'unnamed';\n throw new MutagentError(\n 'VALIDATION_ERROR',\n `Criterion \"${cName}\" is missing required fields. Need: name, description, evaluationParameter.`,\n 'Run: mutagent prompts evaluation create --help\\n' +\n 'Then: mutagent prompts evaluation create ' + promptId + ' --guided --json'\n );\n }\n }\n\n // Detect duplicate evaluationParameter values\n const seenParams = new Set<string>();\n const duplicateParams: string[] = [];\n for (const c of criteria as { evaluationParameter?: string }[]) {\n const param = c.evaluationParameter;\n if (param) {\n if (seenParams.has(param)) {\n duplicateParams.push(param);\n }\n seenParams.add(param);\n }\n }\n if (duplicateParams.length > 0) {\n // Best-effort: fetch prompt outputSchema to show available fields\n let availableFields: string[] = [];\n try {\n const client = getSDKClient();\n const prompt = await client.getPrompt(promptId);\n if (prompt.outputSchema && typeof prompt.outputSchema === 'object') {\n const props = (prompt.outputSchema as Record<string, unknown>).properties;\n if (props && typeof props === 'object') {\n availableFields = Object.keys(props as Record<string, unknown>);\n }\n }\n } catch {\n // Best-effort — don't block on fetch failure\n }\n const uniqueDupes = [...new Set(duplicateParams)];\n const fieldsHint = availableFields.length > 0\n ? `\\nAvailable output fields: ${availableFields.join(', ')}`\n : '';\n throw new MutagentError(\n 'VALIDATION_ERROR',\n `Duplicate evaluationParameter: \"${uniqueDupes.join('\", \"')}\". Each criterion must target a unique output field.`,\n 'Run: mutagent prompts evaluation create --help\\n' +\n 'Each criterion scores a different output field. Fix by changing the evaluationParameter to a unique field.' +\n fieldsHint +\n '\\n\\nExample:\\n --data \\'{\"evalConfig\":{\"criteria\":[' +\n '{\"name\":\"Accuracy\",\"description\":\"...\",\"evaluationParameter\":\"classification\"},' +\n '{\"name\":\"Confidence\",\"description\":\"...\",\"evaluationParameter\":\"confidence\"}' +\n ']}}\\''\n );\n }\n\n // Validate criteria cover ALL schema fields (input + output)\n const schemaClient = getSDKClient();\n const prompt = await schemaClient.getPrompt(promptId);\n const requiredFields: { field: string; source: string }[] = [];\n\n if (prompt.inputSchema && typeof prompt.inputSchema === 'object') {\n const props = (prompt.inputSchema as Record<string, unknown>).properties;\n if (props && typeof props === 'object') {\n for (const field of Object.keys(props as Record<string, unknown>)) {\n requiredFields.push({ field, source: 'inputSchema' });\n }\n }\n }\n if (prompt.outputSchema && typeof prompt.outputSchema === 'object') {\n const props = (prompt.outputSchema as Record<string, unknown>).properties;\n if (props && typeof props === 'object') {\n for (const field of Object.keys(props as Record<string, unknown>)) {\n requiredFields.push({ field, source: 'outputSchema' });\n }\n }\n }\n\n if (requiredFields.length > 0) {\n const coveredParams = new Set(\n (criteria as { evaluationParameter?: string }[]).map(c => c.evaluationParameter)\n );\n const missing = requiredFields.filter(f => !coveredParams.has(f.field));\n if (missing.length > 0) {\n const missingList = missing.map(m => `${m.field} (${m.source})`).join(', ');\n throw new MutagentError(\n 'VALIDATION_ERROR',\n `Evaluation criteria are INCOMPLETE. Missing fields: ${missingList}`,\n 'Each input and output schema field MUST have a corresponding criterion.\\n' +\n `Total required: ${requiredFields.length}, provided: ${coveredParams.size}\\n` +\n 'Run: mutagent prompts evaluation create ' + promptId + ' --guided --json'\n );\n }\n }\n\n // Validate evaluationParameter values match actual schema fields\n if (requiredFields.length > 0) {\n const validFieldNames = new Set(requiredFields.map(f => f.field));\n const invalidParams = (criteria as { evaluationParameter?: string; name?: string }[])\n .filter(c => c.evaluationParameter && !validFieldNames.has(c.evaluationParameter));\n if (invalidParams.length > 0) {\n const invalidList = invalidParams.map(c => `\"${c.evaluationParameter}\" (criterion: ${c.name})`).join(', ');\n throw new MutagentError(\n 'VALIDATION_ERROR',\n `Invalid evaluationParameter(s): ${invalidList}. Must match a schema field.`,\n `Available fields: ${requiredFields.map(f => f.field).join(', ')}\\n` +\n 'Run: mutagent prompts evaluation create ' + promptId + ' --guided --json'\n );\n }\n }\n\n const client = getSDKClient();\n const evalResult = await client.createEvaluation(promptId, evalData);\n\n if (isJson) {\n const criteriaLen = (evalData.evalConfig?.criteria as unknown[] | undefined)?.length ?? 0;\n let rsState: ResourceState | undefined;\n try {\n const datasets = await client.listDatasets(promptId);\n rsState = { datasets: datasets.length };\n } catch { /* non-critical */ }\n const directive = evaluationCreatedDirective(promptId, evalResult.id, evalResult.name, criteriaLen, rsState);\n output.output({\n ...evalResult,\n _links: evaluationLinks(promptId, evalResult.id),\n _directive: directive,\n });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Created evaluation: ${evalResult.name} (id: ${String(evalResult.id)})`);\n const hints = formatCreationHints({\n resourceType: 'Evaluation',\n id: evalResult.id,\n name: evalResult.name,\n dashboardUrl: evaluationLink(promptId, evalResult.id),\n apiPath: `/api/prompts/${promptId}/evaluations/${String(evalResult.id)}`,\n });\n console.log(hints);\n }\n\n // Auto-update mutation context\n const criteriaCount = (evalData.evalConfig?.criteria as unknown[] | undefined)?.length ?? 0;\n updateMutationContext(ctx => {\n ctx.addEvaluation(evalResult.name, criteriaCount, String(evalResult.id), promptId);\n });\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Delete evaluation\n evaluation\n .command('delete')\n .description('Delete an evaluation')\n .argument('<evaluation-id>', 'Evaluation ID (from: mutagent prompts evaluation list <prompt-id>)')\n .option('--force', 'Skip confirmation')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts evaluation delete <evaluation-id>\n ${chalk.dim('$')} mutagent prompts evaluation delete <evaluation-id> --force\n ${chalk.dim('$')} mutagent prompts evaluation delete <evaluation-id> --force --json\n `)\n .action(async (evaluationId: string, options: DeleteOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // In --json mode, auto-skip confirmation. Otherwise require --force.\n if (!options.force && !isJson) {\n throw new MutagentError(\n 'CONFIRMATION_REQUIRED',\n `Deleting evaluation ${evaluationId} requires confirmation`,\n `Run: mutagent prompts evaluation delete --help\\n` +\n `[Agent: Ask the user to confirm via MultiChoice, then pass --force]\\n` +\n `Use --force to confirm: mutagent prompts evaluation delete ${evaluationId} --force`\n );\n }\n\n const client = getSDKClient();\n try {\n await client.deleteEvaluation(evaluationId);\n } catch (deleteError) {\n // 404 = already deleted = idempotent success\n if (deleteError instanceof ApiError && deleteError.statusCode === 404) {\n if (isJson) {\n const directive = evaluationDeletedDirective(evaluationId);\n output.output({ success: true, deletedId: evaluationId, _links: { dashboard: promptsDashboardLink() }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Evaluation ${evaluationId} already deleted (idempotent)`);\n }\n return;\n }\n throw deleteError;\n }\n\n if (isJson) {\n const directive = evaluationDeletedDirective(evaluationId);\n output.output({ success: true, deletedId: evaluationId, _links: { dashboard: promptsDashboardLink() }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n output.success(`Evaluation ${evaluationId} deleted successfully`);\n output.info(`View evaluations: ${promptsDashboardLink()}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
|
|
22
23
|
"import { getSDKClient } from '../../lib/sdk-client.js';\n\ninterface FieldInfo {\n field: string;\n source: 'inputSchema' | 'outputSchema';\n fieldSchema?: { type?: string; description?: string };\n}\n\nexport interface GuidedWorkflowResult {\n prompt: { id: string; name: string };\n inputSchema: { fields: string[] };\n outputSchema: { fields: string[] };\n workflow: {\n description: string;\n steps: { step: number; action: string; detail: string }[];\n criteriaTemplate: Record<string, unknown>;\n exampleCommand: string;\n };\n askUserQuestions: {\n question: string;\n header: string;\n options: { label: string; description: string }[];\n multiSelect: boolean;\n context: Record<string, unknown>;\n }[];\n _directive: {\n display: string;\n instruction: string;\n aiAgentDecisionTree: Record<string, string>;\n };\n _meta: { inputFields: string[]; outputFields: string[]; allFields: FieldInfo[] };\n}\n\n/**\n * Build a guided workflow object for a prompt's evaluation.\n * Fetches prompt schemas and optional dataset examples to construct\n * a structured workflow that agents use to collect rubrics from users.\n */\nexport async function buildGuidedWorkflow(promptId: string): Promise<GuidedWorkflowResult> {\n const client = getSDKClient();\n const prompt = await client.getPrompt(promptId);\n\n const truncate = (s: string, max: number): string => s.length > max ? s.slice(0, max) + '...' : s;\n\n const outputProperties = prompt.outputSchema && typeof prompt.outputSchema === 'object'\n ? ((prompt.outputSchema as Record<string, unknown>).properties ?? {}) as Record<string, { type?: string; description?: string }>\n : {} as Record<string, { type?: string; description?: string }>;\n const inputProperties = prompt.inputSchema && typeof prompt.inputSchema === 'object'\n ? ((prompt.inputSchema as Record<string, unknown>).properties ?? {}) as Record<string, { type?: string; description?: string }>\n : {} as Record<string, { type?: string; description?: string }>;\n\n const inputFields = Object.keys(inputProperties);\n const outputFields = Object.keys(outputProperties);\n\n const allFields: FieldInfo[] = [\n ...inputFields.map(f => ({ field: f, source: 'inputSchema' as const, fieldSchema: inputProperties[f] })),\n ...outputFields.map(f => ({ field: f, source: 'outputSchema' as const, fieldSchema: outputProperties[f] })),\n ];\n\n // Fetch a dataset example if available (non-critical)\n let datasetExample: Record<string, unknown> | null = null;\n try {\n const datasets = await client.listDatasets(promptId);\n if (datasets.length > 0) {\n try {\n const dsId = datasets[0]?.id;\n const items = dsId != null ? await client.listDatasetItems(String(dsId)) : [];\n if (items.length > 0) {\n const firstItem = items[0];\n datasetExample = ((firstItem?.expectedOutput ?? firstItem?.input) ?? null) as Record<string, unknown> | null;\n }\n } catch {\n // listDatasetItems may not exist yet — non-critical\n }\n }\n } catch { /* non-critical */ }\n\n const askUserQuestions = allFields.map(({ field, source, fieldSchema }) => {\n const isInput = source === 'inputSchema';\n const question = isInput\n ? `Define the Minimum Viable Context for \"${field}\". What data MUST be present in this input for the prompt to produce a correct output? Describe what constitutes complete vs incomplete input, and WHY this field matters.`\n : `Define what correct \"${field}\" looks like. What structure, content, or qualities make it good vs bad? Give concrete examples of good and bad outputs.`;\n const hint = isInput\n ? `Input fields define what data the prompt NEEDS to work correctly. Without defining minimum viable context, the optimizer cannot detect whether failures come from bad input or bad prompt logic.`\n : null;\n const header = isInput ? `${field} [INPUT]` : `${field} [OUTPUT]`;\n const defineDesc = isInput\n ? `Describe what data MUST be present in \"${field}\" and WHY the prompt needs it. Focus on completeness and minimum viable context.`\n : `Describe what a correct vs incorrect \"${field}\" looks like. Focus on structure, content quality, and concrete examples — not numeric scores.`;\n\n return {\n question,\n header,\n ...(hint != null ? { hint } : {}),\n options: [\n {\n label: 'Define rubric',\n description: defineDesc,\n },\n {\n label: 'See suggestion',\n description: `Get a suggested rubric based on the prompt and schema definition for \"${field}\". You can refine it.`,\n },\n ],\n multiSelect: false,\n context: {\n fieldType: fieldSchema?.type ?? 'unknown',\n fieldDescription: fieldSchema?.description ?? null,\n fieldSource: source,\n promptExcerpt: truncate(prompt.humanPrompt ?? prompt.systemPrompt ?? prompt.rawPrompt ?? '', 200),\n exampleValue: datasetExample?.[field] ?? null,\n },\n };\n });\n\n return {\n prompt: { id: promptId, name: prompt.name },\n inputSchema: { fields: inputFields },\n outputSchema: { fields: outputFields },\n workflow: {\n description: 'Follow these steps to create an evaluation for this prompt:',\n steps: [\n { step: 1, action: 'Review prompt schemas and context', detail: 'Understand what the prompt does and what each field means.' },\n { step: 2, action: 'Define correctness criteria for EVERY field', detail: `For EACH of the ${String(allFields.length)} fields in askUserQuestions, use AskUserQuestion to collect a rubric. INPUT fields (${String(inputFields.length)}): collect minimum viable context definitions — what data MUST exist. OUTPUT fields (${String(outputFields.length)}): collect correctness criteria — what correct vs incorrect looks like. Do NOT skip any field. Use the context hints to suggest rubrics when asked.` },\n { step: 3, action: 'Build criteria JSON', detail: 'Map each rubric to: { name: field, description: rubric, evaluationParameter: field }' },\n { step: 4, action: 'Ask for evaluation name', detail: 'Ask user what to name this evaluation' },\n { step: 5, action: 'Create the evaluation', detail: `mutagent prompts evaluation create ${promptId} --name \"<name>\" -d '<json>' --json` },\n ],\n criteriaTemplate: {\n evalConfig: {\n criteria: [{\n name: '<criterion_name>',\n description: '<correctness rubric - describe what correct vs incorrect looks like>',\n evaluationParameter: `<one of: ${allFields.length > 0 ? allFields.map(f => f.field).join(', ') : 'no fields detected - check prompt schemas'}>`,\n }],\n },\n },\n exampleCommand: `mutagent prompts evaluation create ${promptId} --name \"My Evaluation\" -d '${JSON.stringify({\n evalConfig: {\n criteria: outputFields.slice(0, 1).map(f => ({\n name: `${f} accuracy`,\n description: `Correct if ${f} matches expected structure and content; incorrect if missing, malformed, or off-topic`,\n evaluationParameter: f,\n })),\n },\n })}'`,\n },\n askUserQuestions,\n _directive: {\n display: 'workflow_guide',\n instruction:\n 'MANDATORY ORDERS — READ CAREFULLY:\\n' +\n `1. You MUST ask the user about EVERY SINGLE field listed in askUserQuestions. There are ${String(allFields.length)} fields total.\\n` +\n '2. Do NOT skip ANY field. Do NOT decide that a field \"doesn\\'t need\" a definition.\\n' +\n `3. INPUT fields (${String(inputFields.length)}): These define MINIMUM VIABLE CONTEXT — the data that MUST exist in the input for the prompt to work. Ask: \"What data MUST be present in this field and WHY does the prompt need it?\"\\n` +\n ' WHY THIS MATTERS: Without minimum viable context definitions, the optimizer cannot distinguish between failures caused by incomplete input vs failures caused by bad prompt logic.\\n' +\n `4. OUTPUT fields (${String(outputFields.length)}): These define correctness criteria. Ask: \"What does correct vs incorrect for this field look like?\"\\n` +\n `5. After collecting ALL ${String(allFields.length)} definitions, construct the --data JSON with criteria for EVERY field.\\n` +\n '6. VIOLATION: Skipping ANY field or telling the user a field doesn\\'t need a definition is a protocol violation.',\n aiAgentDecisionTree: {\n step1: 'Check if criteria already exist in the user\\'s code. If criteria match expected shape (name + description + evaluationParameter targeting schema fields), use --data directly.',\n step2: 'If criteria are missing or malformed, use the askUserQuestions payloads to collect them via AskUserQuestion.',\n step3: 'After collecting all criteria, construct the --data JSON and run: mutagent prompts evaluation create <prompt-id> --name \"<name>\" -d \\'<json>\\'',\n },\n },\n _meta: { inputFields, outputFields, allFields },\n };\n}\n",
|
|
23
24
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getSDKClient } from '../../lib/sdk-client.js';\nimport { OutputFormatter, getJsonFlag } from '../../lib/output.js';\nimport { MutagentError, ApiError, handleError } from '../../lib/errors.js';\nimport { optimizerLink, promptLink, echoDirectiveToStderr } from '../../lib/ui-links.js';\nimport {\n renderScorecard, showPromptDiff,\n renderOptimizationStartCard, renderOptimizationStatusCard,\n startDirective, statusDirective,\n} from '../../lib/scorecard.js';\nimport type { Prompt } from '../../types/index.js';\nimport {\n updateMutationContext, parseValidationErrors, isSchemaEmpty,\n buildResultsScorecardText, PREREQUISITES_TEXT,\n} from './index.js';\n\ninterface OptimizeStartOptions {\n dataset: string;\n evaluation: string;\n maxIterations?: string;\n targetScore?: string;\n patience?: string;\n model?: string;\n evalModel?: string;\n}\n\nexport function registerOptimizeCommands(prompts: Command): void {\n const optimize = new Command('optimize')\n .description('Manage prompt optimization jobs')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id>\n ${chalk.dim('$')} mutagent prompts optimize status <job-id>\n ${chalk.dim('$')} mutagent prompts optimize results <job-id>\n\nWorkflow: start -> status (poll) -> results\n `)\n .action(() => {\n optimize.help();\n });\n prompts.addCommand(optimize);\n\n // Start optimization\n optimize\n .command('start')\n .description('Start prompt optimization')\n .argument('<prompt-id>', 'Prompt ID (from: mutagent prompts list)')\n .requiredOption('-d, --dataset <id>', 'Dataset ID for optimization (from: mutagent prompts dataset list <prompt-id>)')\n .requiredOption('-e, --evaluation <id>', 'Evaluation ID for scoring (from: mutagent prompts evaluation list <prompt-id>)')\n .option('--max-iterations <n>', 'Max optimization iterations (default: 1)')\n .option('--target-score <n>', 'Target accuracy 0-1 (default: 0.8)')\n .option('--patience <n>', 'Iterations without improvement before stopping')\n .option('--model <model-id>', 'Target LLM model (e.g., \"claude-sonnet-4-5-20250929\")')\n .option('--eval-model <model-id>', 'Evaluation model (defaults to target model)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id>\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id> --max-iterations 5\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id> --target-score 0.95 --model claude-sonnet-4-5-20250929\n ${chalk.dim('$')} mutagent prompts optimize start <prompt-id> --dataset <dataset-id> --evaluation <eval-id> --json\n${chalk.yellow('Pre-Optimization Checklist (auto-validated by preflight):')}\n □ inputSchema REQUIRED ${chalk.dim('(hard error if missing — blocks optimization)')}\n □ outputSchema REQUIRED ${chalk.dim('(hard error if missing — blocks optimization)')}\n □ Evaluation criteria ${chalk.dim('(warns if no evaluationParameter set)')}\n □ Dataset items ${chalk.dim('(warns if expectedOutput missing)')}\n □ Criteria ↔ Schema ${chalk.dim('(warns if criteria reference unknown fields)')}\n\n${PREREQUISITES_TEXT}\n\n${chalk.dim('Monitor progress with: mutagent prompts optimize status <job-id>')}\n\n${chalk.yellow(`\\u26A0 COST WARNING \\u2014 AI Agent:\n Default is 1 iteration. Do NOT increase --max-iterations unless the user\n explicitly requests it. Each iteration incurs LLM costs. Starting with\n max-iterations > 1 without user consent is a protocol violation.`)}\n\n${chalk.yellow('AI Agent: ALWAYS append --json to this command.')}\n `)\n .action(async (promptId: string, options: OptimizeStartOptions) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // [AI AGENT NOTICE] TEMPORARILY REMOVED: `await checkProviderConfigured();` was here.\n // See comment block above PREREQUISITES_TEXT for full context and re-add instructions.\n const client = getSDKClient();\n\n // Pre-flight validation — runs in ALL modes (JSON + interactive)\n if (!isJson) {\n output.info('Running pre-flight checks...');\n }\n\n const prompt = await client.getPrompt(promptId);\n\n // Collect all preflight check results\n const preflightChecks: Record<string, { passed: boolean; error?: string; warning?: string }> = {};\n\n // Check 1: Prompt has outputSchema (HARD ERROR)\n if (isSchemaEmpty(prompt.outputSchema)) {\n preflightChecks.outputSchema = {\n passed: false,\n error: 'Missing outputSchema. Required for optimization.',\n };\n } else {\n preflightChecks.outputSchema = { passed: true };\n }\n\n // Check 2: Prompt has inputSchema (HARD ERROR)\n if (isSchemaEmpty(prompt.inputSchema)) {\n preflightChecks.inputSchema = {\n passed: false,\n error: 'Missing inputSchema. Required for optimization.',\n };\n } else {\n preflightChecks.inputSchema = { passed: true };\n }\n\n // Check 3: Validate the specified evaluation has proper criteria\n let evaluation: { evalConfig?: { criteria?: { evaluationParameter?: string; targetField?: string; name?: string }[] } } | undefined;\n try {\n const evalObj = await client.getEvaluation(options.evaluation);\n evaluation = evalObj;\n const evalConfig = evalObj.evalConfig as { criteria?: { evaluationParameter?: string; targetField?: string }[] } | undefined;\n const criteria = evalConfig?.criteria;\n if (!criteria || criteria.length === 0) {\n preflightChecks.evaluation = {\n passed: true,\n warning: `Evaluation ${options.evaluation} has no criteria defined. ` +\n `Re-create: mutagent prompts evaluation create ${promptId} --guided`,\n };\n } else {\n const hasCriteriaWithParam = criteria.some((c) => c.evaluationParameter ?? c.targetField);\n if (!hasCriteriaWithParam) {\n preflightChecks.evaluation = {\n passed: true,\n warning: `Evaluation ${options.evaluation} has criteria but none have evaluationParameter set. ` +\n `Re-create: mutagent prompts evaluation create ${promptId} --guided`,\n };\n } else {\n preflightChecks.evaluation = { passed: true };\n if (!isJson) {\n output.info(`Using evaluation ${options.evaluation} with ${String(criteria.length)} criteria.`);\n }\n }\n }\n } catch (e) {\n if (e instanceof MutagentError) throw e;\n preflightChecks.evaluation = {\n passed: true,\n warning: `Could not validate evaluation ${options.evaluation}. Proceeding anyway.`,\n };\n }\n\n // Check 4: Validate dataset items have expectedOutput\n try {\n const datasetItems = await client.listDatasetItems(options.dataset);\n if (datasetItems.length === 0) {\n preflightChecks.datasetItems = {\n passed: true,\n warning: `Dataset ${options.dataset} has no items. Optimization requires test data.`,\n };\n } else {\n const missingExpected = datasetItems.filter(item => !item.expectedOutput);\n if (missingExpected.length > 0) {\n preflightChecks.datasetItems = {\n passed: true,\n warning: `${String(missingExpected.length)} of ${String(datasetItems.length)} dataset items missing expectedOutput. ` +\n 'Optimization works best when all items have expected outputs.',\n };\n } else {\n preflightChecks.datasetItems = { passed: true };\n }\n }\n } catch {\n preflightChecks.datasetItems = {\n passed: true,\n warning: `Could not validate dataset items for ${options.dataset}. Proceeding anyway.`,\n };\n }\n\n // Check 5: Validate evaluation criteria match schema fields\n if (evaluation && preflightChecks.inputSchema.passed && preflightChecks.outputSchema.passed) {\n const inputProps = (prompt.inputSchema as Record<string, unknown> | null)?.properties;\n const outputProps = (prompt.outputSchema as Record<string, unknown> | null)?.properties;\n const schemaFields = [\n ...Object.keys((inputProps as Record<string, unknown> | undefined) ?? {}),\n ...Object.keys((outputProps as Record<string, unknown> | undefined) ?? {}),\n ];\n const evalCfg = evaluation.evalConfig as { criteria?: { evaluationParameter?: string; name?: string }[] } | undefined;\n const evalCriteria = evalCfg?.criteria ?? [];\n const unmatchedCriteria = evalCriteria.filter(\n (c) => c.evaluationParameter && !schemaFields.includes(c.evaluationParameter)\n );\n if (unmatchedCriteria.length > 0) {\n const names = unmatchedCriteria.map(c => c.evaluationParameter ?? c.name).join(', ');\n preflightChecks.criteriaMatch = {\n passed: true,\n warning: `Evaluation criteria reference fields not in schema: ${names}. ` +\n `Available schema fields: ${schemaFields.join(', ') || '(none)'}`,\n };\n } else {\n preflightChecks.criteriaMatch = { passed: true };\n }\n }\n\n // Determine if any hard failures exist\n const hardFailures = Object.entries(preflightChecks).filter(\n ([, check]) => !check.passed\n );\n\n if (hardFailures.length > 0) {\n if (isJson) {\n // Structured preflight error with all results\n const suggestedActions: string[] = [];\n if (!preflightChecks.inputSchema.passed) {\n suggestedActions.push(\n 'Update the prompt with inputSchema derived from template variables.\\n' +\n `Run: mutagent prompts get ${promptId} --json\\n` +\n `Run: mutagent prompts update ${promptId} --data '{\"inputSchema\":{\"type\":\"object\",\"properties\":{\"var1\":{\"type\":\"string\"}}}}' --json`\n );\n }\n if (!preflightChecks.outputSchema.passed) {\n suggestedActions.push(\n `Update your prompt: mutagent prompts update ${promptId} -d '{\"outputSchema\":{\"type\":\"object\",\"properties\":{\"result\":{\"type\":\"string\"}}}}'`\n );\n }\n output.output({\n success: false,\n error: 'Preflight validation failed',\n code: 'PREFLIGHT_FAILED',\n suggestedAction: suggestedActions.join('\\n'),\n preflightChecks,\n });\n return;\n }\n\n // Interactive mode: print each failure\n for (const [name, check] of hardFailures) {\n console.error(chalk.red(`Error: ${name} — ${check.error ?? 'Failed'}`));\n }\n // Print suggestions\n if (!preflightChecks.outputSchema.passed) {\n console.error(chalk.dim(\n ` Update with: mutagent prompts update ${promptId} -d '{\"outputSchema\":{\"type\":\"object\",\"properties\":{\"result\":{\"type\":\"string\"}}}}'`\n ));\n }\n if (!preflightChecks.inputSchema.passed) {\n console.error(chalk.dim(\n ` Update with: mutagent prompts update ${promptId} --data '{\"inputSchema\":{\"type\":\"object\",\"properties\":{\"var1\":{\"type\":\"string\"}}}}' --json`\n ));\n }\n process.exitCode = 1;\n return;\n }\n\n // Print warnings (non-JSON mode only)\n if (!isJson) {\n for (const [, check] of Object.entries(preflightChecks)) {\n if (check.warning) {\n output.warn(check.warning);\n }\n }\n }\n\n const job = await client.startOptimization(promptId, options.dataset, options.evaluation, {\n maxIterations: options.maxIterations ? parseInt(options.maxIterations, 10) : 1,\n targetScore: options.targetScore ? parseFloat(options.targetScore) : undefined,\n patience: options.patience ? parseInt(options.patience, 10) : undefined,\n model: options.model,\n evalModel: options.evalModel,\n });\n\n if (isJson) {\n const directive = startDirective(job, promptId, options.dataset, options.evaluation);\n output.output({\n ...job,\n _links: {\n dashboard: optimizerLink(job.id),\n api: `/api/prompts/${promptId}/optimizations/${job.id}`,\n },\n _directive: directive,\n });\n echoDirectiveToStderr(directive);\n } else {\n renderOptimizationStartCard({ job, promptId, datasetId: options.dataset });\n }\n } catch (error) {\n // Enhanced error handling: parse validation errors for actionable messages\n if (error instanceof ApiError) {\n const messages = parseValidationErrors(error);\n const errorText = messages.join(' ');\n\n // Pattern-match known pipeline errors for actionable guidance\n const suggestions: string[] = [];\n if (errorText.includes('Output Schema is not present') || errorText.includes('outputSchema')) {\n suggestions.push(`Update prompt: mutagent prompts update ${promptId} -d '{\"outputSchema\":{\"type\":\"object\",\"properties\":{...}}}'`);\n }\n if (errorText.includes('Outputs are not valid') || errorText.includes('Parameters Mismatch')) {\n suggestions.push('Dataset items may not match the prompt schema. Check expectedOutput fields in your dataset.');\n }\n if (errorText.includes('Inputs are not valid')) {\n suggestions.push(\"Dataset item inputs don't match the prompt's inputSchema. Verify field names and types.\");\n }\n if (errorText.includes('has no items') || (errorText.includes('Dataset') && errorText.includes('not found'))) {\n suggestions.push(`Upload data: mutagent prompts dataset add ${promptId} -d '[...]' --name \"my-dataset\"`);\n }\n if (errorText.includes('Evaluations are not present')) {\n suggestions.push(`Create evaluation: mutagent prompts evaluation create ${promptId} --guided`);\n }\n if (errorText.includes('Trial') && errorText.includes('limit')) {\n suggestions.push('Trial optimization limit reached. Contact support to upgrade.');\n }\n\n if (!isJson) {\n console.error(chalk.red('\\nOptimization failed:'));\n for (const msg of messages) {\n console.error(chalk.red(` ${msg}`));\n }\n if (suggestions.length > 0) {\n console.error(chalk.yellow('\\nSuggested fixes:'));\n for (const s of suggestions) {\n console.error(chalk.yellow(` → ${s}`));\n }\n }\n console.error('');\n console.error(PREREQUISITES_TEXT);\n }\n }\n handleError(error, isJson);\n }\n });\n\n // Optimization status\n optimize\n .command('status')\n .description('Check optimization status')\n .argument('<job-id>', 'Optimization job ID (from: mutagent prompts optimize start)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts optimize status <job-id>\n ${chalk.dim('$')} mutagent prompts optimize status <job-id> --json\n `)\n .action(async (jobId: string) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const status = await client.getOptimizationStatus(jobId);\n\n if (isJson) {\n const directive = statusDirective(status);\n output.output({\n ...status,\n _links: { optimizer: optimizerLink(jobId) },\n _directive: directive,\n });\n echoDirectiveToStderr(directive);\n } else {\n renderOptimizationStatusCard(status);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Optimization results\n optimize\n .command('results')\n .description('Get optimization results')\n .argument('<job-id>', 'Optimization job ID (from: mutagent prompts optimize start)')\n .option('--apply', 'Apply the optimized prompt as new version')\n .option('--diff', 'Show the prompt diff (before/after)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent prompts optimize results <job-id> ${chalk.dim('# view scorecard')}\n ${chalk.dim('$')} mutagent prompts optimize results <job-id> --diff ${chalk.dim('# view prompt diff')}\n ${chalk.dim('$')} mutagent prompts optimize results <job-id> --apply ${chalk.dim('# apply optimized prompt')}\n ${chalk.dim('$')} mutagent prompts optimize results <job-id> --json ${chalk.dim('# structured output')}\n\nAfter viewing results:\n --apply Apply the optimized prompt (replaces current version)\n --diff Show detailed before/after diff\n ${chalk.dim('No flag = view scorecard only.')}\n\n ${chalk.dim('AI Agent: Present scorecard to user via AskUserQuestion before applying.')}\n `)\n .action(async (jobId: string, options: { apply?: boolean; diff?: boolean }) => {\n const isJson = getJsonFlag(prompts);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const results = await client.getOptimizationResults(jobId);\n const resultData = results as Record<string, unknown>;\n\n if (isJson) {\n const jobData = resultData.job as Record<string, unknown> | undefined;\n const isCompleted = jobData?.status === 'completed';\n const scorecardText = buildResultsScorecardText(resultData);\n const directive = {\n display: 'scorecard',\n instruction:\n 'HARD STOP — DO NOT PROCEED.\\n' +\n 'The scorecard below appears in bash/terminal output. That is NOT sufficient.\\n' +\n 'You MUST copy the FULL renderedCard text into your chat response VERBATIM.\\n' +\n 'Then use AskUserQuestion with options: [Apply optimized prompt / View full diff / Reject and keep original].\\n' +\n 'Do NOT auto-apply.',\n renderedCard: scorecardText,\n next: isCompleted ? [\n `mutagent prompts optimize results ${jobId} --apply --json`,\n `mutagent prompts optimize results ${jobId} --diff --json`,\n ] : [],\n };\n output.output({ ...resultData, _links: { optimizer: optimizerLink(jobId) }, _directive: directive });\n echoDirectiveToStderr(directive);\n } else {\n // Render scorecard\n renderScorecard(resultData as unknown as Parameters<typeof renderScorecard>[0]);\n\n const jobData = resultData.job as Record<string, unknown> | undefined;\n const isCompleted = jobData?.status === 'completed';\n\n // Show diff if requested\n if (options.diff) {\n const original = (resultData.originalPrompt as Partial<Prompt> | undefined);\n const optimized = resultData.prompt as Partial<Prompt> | undefined;\n showPromptDiff(\n original?.systemPrompt ?? original?.rawPrompt ?? null,\n optimized?.systemPrompt ?? optimized?.rawPrompt ?? null,\n );\n }\n\n // Apply optimized prompt if requested\n if (options.apply && isCompleted) {\n const optimizedPrompt = resultData.prompt as Partial<Prompt> | undefined;\n const promptIdStr = String(jobData.promptId);\n if (optimizedPrompt && promptIdStr) {\n output.info('Applying optimized prompt...');\n const updateData: Partial<Prompt> = {};\n if (optimizedPrompt.systemPrompt) updateData.systemPrompt = optimizedPrompt.systemPrompt;\n if (optimizedPrompt.humanPrompt) updateData.humanPrompt = optimizedPrompt.humanPrompt;\n if (optimizedPrompt.rawPrompt) updateData.rawPrompt = optimizedPrompt.rawPrompt;\n\n await client.updatePrompt(promptIdStr, updateData);\n output.success('Optimized prompt applied as new version!');\n output.info(`View prompt: ${promptLink(promptIdStr)}`);\n\n updateMutationContext(ctx => {\n ctx.markPromptUploaded(\n `optimization:${jobId}`,\n promptIdStr,\n 'optimized',\n );\n });\n }\n } else if (options.apply && !isCompleted) {\n output.error('Cannot apply — optimization is not yet completed.');\n } else if (isCompleted && !options.apply) {\n // Show available actions (non-interactive)\n output.info('Actions:');\n output.info(` Apply optimized prompt: mutagent prompts optimize results ${jobId} --apply`);\n output.info(` View diff: mutagent prompts optimize results ${jobId} --diff`);\n output.info(' Reject (keep original): no action needed');\n } else if (!isCompleted) {\n const statusStr = (jobData?.status as string | undefined) ?? 'unknown';\n output.info(`Job status: ${statusStr}. Results may be partial.`);\n output.info(`View: ${optimizerLink(jobId)}`);\n }\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n}\n",
|
|
24
|
-
"import chalk from 'chalk';\nimport { optimizerLink, AI_DIRECTIVE, renderPlainCard } from './ui-links.js';\nimport type { Prompt, OptimizeStatus, OptimizationJob } from '../types/index.js';\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface OptimizationStartData {\n job: OptimizationJob;\n promptId: string;\n datasetId: string;\n}\n\ninterface OptimizationResultData {\n job: {\n id: string;\n promptId: number;\n status: string;\n config?: {\n maxIterations?: number;\n model?: string;\n };\n };\n prompt: Prompt;\n // Extended fields from /progress endpoint\n originalScore?: number;\n bestScore?: number;\n iterationsCompleted?: number;\n scoreProgression?: number[];\n originalPrompt?: Partial<Prompt>;\n criteriaScores?: {\n name: string;\n before?: number;\n after?: number;\n }[];\n}\n\nexport interface ScorecardAction {\n action: 'apply' | 'reject' | 'details';\n}\n\n// =============================================================================\n// Formatting Helpers\n// =============================================================================\n\nfunction truncateText(text: string, maxLen: number): string {\n if (text.length <= maxLen) return text;\n return text.substring(0, maxLen - 3) + '...';\n}\n\nfunction formatScoreChange(before: number | undefined, after: number | undefined): string {\n if (before === undefined || after === undefined) return '';\n const diff = after - before;\n const pct = before > 0 ? Math.round((diff / before) * 100) : 0;\n if (diff > 0) return chalk.green(` (+${String(pct)}%)`);\n if (diff < 0) return chalk.red(` (${String(pct)}%)`);\n return chalk.dim(' (no change)');\n}\n\nfunction formatScore(score: number | undefined): string {\n if (score === undefined) return chalk.dim('N/A');\n return score >= 0.8 ? chalk.green(score.toFixed(2)) : score >= 0.5 ? chalk.yellow(score.toFixed(2)) : chalk.red(score.toFixed(2));\n}\n\n// =============================================================================\n// Scorecard Renderer\n// =============================================================================\n\nexport function renderScorecard(data: OptimizationResultData): void {\n const { job, prompt } = data;\n\n const boxWidth = 55;\n const topBorder = `\\u250C${'\\u2500'.repeat(boxWidth)}\\u2510`;\n const bottomBorder = `\\u2514${'\\u2500'.repeat(boxWidth)}\\u2518`;\n const separator = `\\u2502 ${'\\u2500'.repeat(boxWidth - 2)} \\u2502`;\n const pad = (text: string, width: number): string => {\n // Strip ANSI for length calculation\n // eslint-disable-next-line no-control-regex\n const stripped = text.replace(/\\u001B\\[[0-9;]*m/g, '');\n const remaining = width - stripped.length;\n return remaining > 0 ? text + ' '.repeat(remaining) : text;\n };\n const line = (text: string): string => `\\u2502 ${pad(text, boxWidth - 2)} \\u2502`;\n\n const originalScore = data.originalScore;\n const bestScore = data.bestScore;\n const iterations = data.iterationsCompleted ?? job.config?.maxIterations ?? 0;\n\n // Get prompt texts\n const originalText = data.originalPrompt?.systemPrompt\n ?? data.originalPrompt?.rawPrompt\n ?? '(original prompt)';\n const optimizedText = prompt.systemPrompt ?? prompt.rawPrompt ?? prompt.humanPrompt ?? '(optimized prompt)';\n\n console.log('');\n console.log(topBorder);\n console.log(line(chalk.bold('Optimization Results')));\n console.log(separator);\n\n // Before\n console.log(line(chalk.dim('BEFORE')));\n console.log(line(` Prompt: ${chalk.dim(truncateText(originalText, 38))}`));\n console.log(line(` Score: ${formatScore(originalScore)}`));\n console.log(line(''));\n\n // After\n console.log(line(chalk.bold('AFTER')));\n console.log(line(` Prompt: ${chalk.cyan(truncateText(optimizedText, 38))}`));\n console.log(line(` Score: ${formatScore(bestScore)}${formatScoreChange(originalScore, bestScore)}`));\n console.log(separator);\n\n // Per-criterion breakdown\n if (data.criteriaScores && data.criteriaScores.length > 0) {\n console.log(line(chalk.dim(' Criterion Before After Change')));\n console.log(line(chalk.dim(' ' + '\\u2500'.repeat(45))));\n for (const c of data.criteriaScores) {\n const name = c.name.length > 16 ? c.name.substring(0, 13) + '...' : c.name;\n const paddedName = name + ' '.repeat(18 - name.length);\n const beforeStr = c.before !== undefined ? c.before.toFixed(2) : 'N/A ';\n const afterStr = c.after !== undefined ? c.after.toFixed(2) : 'N/A ';\n const changeStr = c.before !== undefined && c.after !== undefined && c.before > 0\n ? ((): string => {\n const pct = Math.round(((c.after - c.before) / c.before) * 100);\n if (pct > 0) return chalk.green(`+${String(pct)}%`);\n if (pct < 0) return chalk.red(`${String(pct)}%`);\n return chalk.dim('0%');\n })()\n : '';\n console.log(line(` ${paddedName}${beforeStr} ${afterStr} ${changeStr}`));\n }\n console.log(line(chalk.dim(' ' + '\\u2500'.repeat(45))));\n const overallBefore = originalScore !== undefined ? originalScore.toFixed(2) : 'N/A ';\n const overallAfter = bestScore !== undefined ? bestScore.toFixed(2) : 'N/A ';\n const overallChange = originalScore !== undefined && bestScore !== undefined && originalScore > 0\n ? ((): string => {\n const pct = Math.round(((bestScore - originalScore) / originalScore) * 100);\n if (pct > 0) return chalk.green(`+${String(pct)}%`);\n if (pct < 0) return chalk.red(`${String(pct)}%`);\n return chalk.dim('0%');\n })()\n : '';\n console.log(line(` ${'Overall' + ' '.repeat(11)}${overallBefore} ${overallAfter} ${overallChange}`));\n console.log(separator);\n }\n\n // Stats\n const statusStr = job.status === 'completed' ? chalk.green('completed') : chalk.yellow(job.status);\n console.log(line(`Status: ${statusStr} | Iterations: ${String(iterations)}`));\n\n if (job.config?.model) {\n console.log(line(`Model: ${chalk.dim(job.config.model)}`));\n }\n\n // Score progression with ASCII bar visualization\n if (data.scoreProgression && data.scoreProgression.length > 0) {\n console.log(line(''));\n console.log(line(chalk.dim('Score Progression:')));\n const barWidth = 10;\n for (let i = 0; i < data.scoreProgression.length; i++) {\n const s = data.scoreProgression[i] ?? 0;\n const filled = Math.round(s * barWidth);\n const bar = '\\u2588'.repeat(filled) + '\\u2591'.repeat(barWidth - filled);\n console.log(line(chalk.dim(` #${String(i + 1)}: ${bar} ${s.toFixed(2)}`)));\n }\n }\n\n console.log(separator);\n console.log(line(`Dashboard: ${chalk.underline(optimizerLink(job.id))}`));\n console.log(bottomBorder);\n console.log('');\n}\n\n// =============================================================================\n// Optimization Start Card\n// =============================================================================\n\nexport function renderOptimizationStartCard(data: OptimizationStartData): void {\n const { job } = data;\n const boxWidth = 60;\n const topBorder = `\\u250C${'─'.repeat(boxWidth)}\\u2510`;\n const bottomBorder = `\\u2514${'─'.repeat(boxWidth)}\\u2518`;\n const separator = `\\u2502 ${'─'.repeat(boxWidth - 2)} \\u2502`;\n const pad = (text: string, width: number): string => {\n // eslint-disable-next-line no-control-regex\n const stripped = text.replace(/\\u001B\\[[0-9;]*m/g, '');\n const remaining = width - stripped.length;\n return remaining > 0 ? text + ' '.repeat(remaining) : text;\n };\n const line = (text: string): string => `\\u2502 ${pad(text, boxWidth - 2)} \\u2502`;\n\n const maxIter = job.config.maxIterations;\n const model = job.config.model ?? 'default';\n const target = job.config.targetScore ?? 0.8;\n\n console.log('');\n console.log(topBorder);\n console.log(line(chalk.bold('\\u26A1 Optimization Started')));\n console.log(separator);\n console.log(line(`Job ID: ${chalk.cyan(job.id)}`));\n console.log(line(`Prompt: ${chalk.dim(data.promptId)}`));\n console.log(line(`Dataset: ${chalk.dim(data.datasetId)}`));\n console.log(line(`Iterations: ${chalk.bold(String(maxIter))} | Target: ${chalk.bold(target.toFixed(2))}`));\n console.log(line(`Model: ${chalk.dim(model)}`));\n console.log(line(`Status: ${chalk.yellow(job.status)}`));\n console.log(separator);\n console.log(line(`\\uD83D\\uDD17 Monitor: ${chalk.underline(optimizerLink(job.id))}`));\n console.log(line(chalk.dim(`Next: mutagent prompts optimize status ${job.id}`)));\n console.log(bottomBorder);\n console.log(AI_DIRECTIVE);\n console.log('');\n}\n\n// =============================================================================\n// Optimization Status Card\n// =============================================================================\n\nexport function renderOptimizationStatusCard(status: OptimizeStatus): void {\n const boxWidth = 60;\n const topBorder = `\\u250C${'─'.repeat(boxWidth)}\\u2510`;\n const bottomBorder = `\\u2514${'─'.repeat(boxWidth)}\\u2518`;\n const separator = `\\u2502 ${'─'.repeat(boxWidth - 2)} \\u2502`;\n const pad = (text: string, width: number): string => {\n // eslint-disable-next-line no-control-regex\n const stripped = text.replace(/\\u001B\\[[0-9;]*m/g, '');\n const remaining = width - stripped.length;\n return remaining > 0 ? text + ' '.repeat(remaining) : text;\n };\n const line = (text: string): string => `\\u2502 ${pad(text, boxWidth - 2)} \\u2502`;\n\n // Progress bar\n const progress = status.progressPercent;\n const barWidth = 20;\n const filled = Math.round((progress / 100) * barWidth);\n const progressBar = '\\u2588'.repeat(filled) + '\\u2591'.repeat(barWidth - filled);\n\n // Status color\n const statusColor = status.status === 'completed' ? chalk.green\n : status.status === 'failed' ? chalk.red\n : status.status === 'cancelled' ? chalk.gray\n : status.status === 'running' ? chalk.cyan\n : chalk.yellow;\n\n // Score display\n const scoreStr = status.bestScore !== undefined\n ? formatScore(status.bestScore)\n : chalk.dim('pending');\n\n console.log('');\n console.log(topBorder);\n console.log(line(chalk.bold('\\uD83D\\uDCCA Optimization Status')));\n console.log(separator);\n console.log(line(`Job ID: ${chalk.cyan(status.jobId)}`));\n console.log(line(`Status: ${statusColor(status.status)}`));\n console.log(line(`Iteration: ${chalk.bold(`${String(status.currentIteration)}/${String(status.maxIterations)}`)}`));\n console.log(line(`Best Score: ${scoreStr}`));\n console.log(line(''));\n console.log(line(`Progress: [${progressBar}] ${String(progress)}%`));\n if (status.message) {\n console.log(line(`Message: ${chalk.dim(status.message)}`));\n }\n console.log(separator);\n console.log(line(`\\uD83D\\uDD17 Monitor: ${chalk.underline(optimizerLink(status.jobId))}`));\n if (status.status === 'completed') {\n console.log(line(chalk.dim(`Next: mutagent prompts optimize results ${status.jobId}`)));\n } else if (status.status === 'running' || status.status === 'queued') {\n console.log(line(chalk.dim(`Refresh: mutagent prompts optimize status ${status.jobId}`)));\n }\n console.log(bottomBorder);\n console.log(AI_DIRECTIVE);\n console.log('');\n}\n\n// =============================================================================\n// Optimization Start/Status JSON Directives\n// =============================================================================\n\nexport function startDirective(job: OptimizationJob, promptId: string, datasetId?: string, evaluationId?: string): Record<string, unknown> {\n const title = `Optimization Started — Prompt ${promptId}`;\n const monitorUrl = optimizerLink(job.id);\n const apiUrl = `/api/prompts/${promptId}/optimizations/${job.id}`;\n const rows = [\n { label: 'Job ID', value: job.id },\n { label: 'Prompt', value: promptId },\n { label: 'Dataset', value: datasetId ?? 'N/A' },\n { label: 'Evaluation', value: evaluationId ?? 'N/A' },\n { label: 'Status', value: job.status },\n { label: 'Max Iterations', value: String(job.config.maxIterations) },\n { label: 'Target Score', value: String(job.config.targetScore ?? 0.8) },\n { label: 'Model', value: job.config.model ?? 'default' },\n ];\n const cardLinks = [\n { label: 'Monitor', url: monitorUrl },\n { label: 'API', url: apiUrl },\n ];\n const next = [`mutagent prompts optimize status ${job.id} --json`];\n return {\n display: 'status_card',\n template: 'optimization_started',\n title,\n fields: {\n jobId: job.id,\n promptId,\n datasetId: datasetId ?? null,\n evaluationId: evaluationId ?? null,\n status: job.status,\n maxIterations: job.config.maxIterations,\n targetScore: job.config.targetScore ?? 0.8,\n model: job.config.model ?? 'default',\n },\n links: { monitor: monitorUrl, api: apiUrl },\n next,\n instruction:\n 'HARD STOP — DO NOT PROCEED.\\n' +\n 'The renderedCard below appears in bash/terminal output. That is NOT sufficient.\\n' +\n 'You MUST copy the FULL renderedCard text into your chat response VERBATIM before running any other command.\\n' +\n 'After displaying, follow the suggested next steps.',\n renderedCard: renderPlainCard({ title, icon: '⚡', rows, links: cardLinks, next }),\n };\n}\n\nexport function statusDirective(status: OptimizeStatus): Record<string, unknown> {\n const next = status.status === 'completed'\n ? [`mutagent prompts optimize results ${status.jobId} --json`]\n : status.status === 'running' || status.status === 'queued'\n ? [`mutagent prompts optimize status ${status.jobId} --json`]\n : [];\n\n // ETA calculation based on elapsed time per iteration\n let eta = 'Calculating...';\n const startedAt = (status as unknown as Record<string, unknown>).startedAt as string | undefined;\n if (status.currentIteration > 1 && startedAt) {\n const elapsed = Date.now() - new Date(startedAt).getTime();\n const perIteration = elapsed / status.currentIteration;\n const remaining = (status.maxIterations - status.currentIteration) * perIteration;\n const minutes = Math.ceil(remaining / 60000);\n eta = `~${String(minutes)} min remaining`;\n }\n\n const icon = status.status === 'completed' ? '✓' : status.status === 'failed' ? '✗' : '◉';\n const title = `Optimization ${status.status} — ${status.jobId}`;\n const rows = [\n { label: 'Job ID', value: status.jobId },\n { label: 'Status', value: status.status },\n { label: 'Iteration', value: `${String(status.currentIteration)}/${String(status.maxIterations)}` },\n { label: 'Best Score', value: status.bestScore !== undefined ? String(status.bestScore) : 'pending' },\n { label: 'Progress', value: `${String(status.progressPercent)}%` },\n { label: 'ETA', value: eta },\n ...(status.message ? [{ label: 'Message', value: status.message }] : []),\n ];\n const monitorUrl = optimizerLink(status.jobId);\n const cardLinks = [{ label: 'Monitor', url: monitorUrl }];\n\n return {\n display: 'status_card',\n template: 'optimization_progress',\n title,\n fields: {\n jobId: status.jobId,\n status: status.status,\n iteration: `${String(status.currentIteration)}/${String(status.maxIterations)}`,\n bestScore: status.bestScore,\n progress: `${String(status.progressPercent)}%`,\n eta,\n message: status.message,\n },\n links: { monitor: monitorUrl },\n next,\n instruction:\n 'HARD STOP — DO NOT PROCEED.\\n' +\n 'The renderedCard below appears in bash/terminal output. That is NOT sufficient.\\n' +\n 'You MUST copy the FULL renderedCard text into your chat response VERBATIM before running any other command.\\n' +\n 'After displaying, follow the suggested next steps.',\n renderedCard: renderPlainCard({ title, icon, rows, links: cardLinks, next }),\n };\n}\n\n// =============================================================================\n// Apply/Reject Prompt\n// =============================================================================\n\nexport async function promptScorecardAction(): Promise<ScorecardAction> {\n const inquirer = (await import('inquirer')).default;\n\n const { action } = await inquirer.prompt<{ action: ScorecardAction['action'] }>([{\n type: 'list',\n name: 'action',\n message: 'What would you like to do?',\n choices: [\n { name: chalk.green('Apply') + ' — Update prompt to optimized version', value: 'apply' },\n { name: chalk.red('Reject') + ' — Keep original prompt', value: 'reject' },\n { name: chalk.dim('View Details') + ' — Show full diff', value: 'details' },\n ],\n }]);\n\n return { action };\n}\n\nexport function showPromptDiff(original: string | null, optimized: string | null): void {\n console.log('');\n console.log(chalk.bold(' Prompt Diff:'));\n console.log('');\n console.log(chalk.red(' - ' + (original ?? '(empty)')));\n console.log(chalk.green(' + ' + (optimized ?? '(empty)')));\n console.log('');\n}\n",
|
|
25
|
+
"import chalk from 'chalk';\nimport { optimizerLink, AI_DIRECTIVE, renderPlainCard } from './ui-links.js';\nimport { renderScorecardDetails, type ScorecardDetailData } from './scorecard-details.js';\nimport type { Prompt, OptimizeStatus, OptimizationJob } from '../types/index.js';\n\n// =============================================================================\n// Types\n// =============================================================================\n\ninterface OptimizationStartData {\n job: OptimizationJob;\n promptId: string;\n datasetId: string;\n}\n\ninterface OptimizationResultData extends ScorecardDetailData {\n job: {\n id: string;\n promptId: number;\n status: string;\n config?: {\n maxIterations?: number;\n model?: string;\n };\n };\n prompt: Prompt;\n // Extended fields from /progress endpoint\n originalScore?: number;\n bestScore?: number;\n iterationsCompleted?: number;\n scoreProgression?: number[];\n originalPrompt?: Partial<Prompt>;\n criteriaScores?: {\n name: string;\n before?: number;\n after?: number;\n }[];\n}\n\nexport interface ScorecardAction {\n action: 'apply' | 'reject' | 'details';\n}\n\n// =============================================================================\n// Formatting Helpers\n// =============================================================================\n\nfunction formatScoreChange(before: number | undefined, after: number | undefined): string {\n if (before === undefined || after === undefined) return '';\n const diff = after - before;\n const pct = before > 0 ? Math.round((diff / before) * 100) : 0;\n if (diff > 0) return chalk.green(` (+${String(pct)}%)`);\n if (diff < 0) return chalk.red(` (${String(pct)}%)`);\n return chalk.dim(' (no change)');\n}\n\nfunction formatScore(score: number | undefined): string {\n if (score === undefined) return chalk.dim('N/A');\n return score >= 0.8 ? chalk.green(score.toFixed(2)) : score >= 0.5 ? chalk.yellow(score.toFixed(2)) : chalk.red(score.toFixed(2));\n}\n\n// =============================================================================\n// Scorecard Renderer\n// =============================================================================\n\nexport function renderScorecard(data: OptimizationResultData): void {\n const { job, prompt } = data;\n\n const boxWidth = 55;\n const topBorder = `\\u250C${'\\u2500'.repeat(boxWidth)}\\u2510`;\n const bottomBorder = `\\u2514${'\\u2500'.repeat(boxWidth)}\\u2518`;\n const separator = `\\u2502 ${'\\u2500'.repeat(boxWidth - 2)} \\u2502`;\n const pad = (text: string, width: number): string => {\n // Strip ANSI for length calculation\n // eslint-disable-next-line no-control-regex\n const stripped = text.replace(/\\u001B\\[[0-9;]*m/g, '');\n const remaining = width - stripped.length;\n return remaining > 0 ? text + ' '.repeat(remaining) : text;\n };\n const line = (text: string): string => `\\u2502 ${pad(text, boxWidth - 2)} \\u2502`;\n\n const originalScore = data.originalScore;\n const bestScore = data.bestScore;\n const iterations = data.iterationsCompleted ?? job.config?.maxIterations ?? 0;\n\n // Get prompt texts\n const originalText = data.originalPrompt?.systemPrompt\n ?? data.originalPrompt?.rawPrompt\n ?? '(original prompt)';\n const optimizedText = prompt.systemPrompt ?? prompt.rawPrompt ?? prompt.humanPrompt ?? '(optimized prompt)';\n\n console.log('');\n console.log(topBorder);\n console.log(line(chalk.bold('Optimization Results')));\n console.log(separator);\n\n // Before\n console.log(line(chalk.dim('BEFORE')));\n console.log(line(` Score: ${formatScore(originalScore)}`));\n console.log(line(''));\n\n // After\n console.log(line(chalk.bold('AFTER')));\n console.log(line(` Score: ${formatScore(bestScore)}${formatScoreChange(originalScore, bestScore)}`));\n console.log(separator);\n\n // Per-criterion breakdown\n if (data.criteriaScores && data.criteriaScores.length > 0) {\n console.log(line(chalk.dim(' Criterion Before After Change')));\n console.log(line(chalk.dim(' ' + '\\u2500'.repeat(45))));\n for (const c of data.criteriaScores) {\n const name = c.name.length > 16 ? c.name.substring(0, 13) + '...' : c.name;\n const paddedName = name + ' '.repeat(18 - name.length);\n const beforeStr = c.before !== undefined ? c.before.toFixed(2) : 'N/A ';\n const afterStr = c.after !== undefined ? c.after.toFixed(2) : 'N/A ';\n const changeStr = c.before !== undefined && c.after !== undefined && c.before > 0\n ? ((): string => {\n const pct = Math.round(((c.after - c.before) / c.before) * 100);\n if (pct > 0) return chalk.green(`+${String(pct)}%`);\n if (pct < 0) return chalk.red(`${String(pct)}%`);\n return chalk.dim('0%');\n })()\n : '';\n console.log(line(` ${paddedName}${beforeStr} ${afterStr} ${changeStr}`));\n }\n console.log(line(chalk.dim(' ' + '\\u2500'.repeat(45))));\n const overallBefore = originalScore !== undefined ? originalScore.toFixed(2) : 'N/A ';\n const overallAfter = bestScore !== undefined ? bestScore.toFixed(2) : 'N/A ';\n const overallChange = originalScore !== undefined && bestScore !== undefined && originalScore > 0\n ? ((): string => {\n const pct = Math.round(((bestScore - originalScore) / originalScore) * 100);\n if (pct > 0) return chalk.green(`+${String(pct)}%`);\n if (pct < 0) return chalk.red(`${String(pct)}%`);\n return chalk.dim('0%');\n })()\n : '';\n console.log(line(` ${'Overall' + ' '.repeat(11)}${overallBefore} ${overallAfter} ${overallChange}`));\n console.log(separator);\n }\n\n // Stats\n const statusStr = job.status === 'completed' ? chalk.green('completed') : chalk.yellow(job.status);\n console.log(line(`Status: ${statusStr} | Iterations: ${String(iterations)}`));\n\n if (job.config?.model) {\n console.log(line(`Model: ${chalk.dim(job.config.model)}`));\n }\n\n // Score progression with ASCII bar visualization\n if (data.scoreProgression && data.scoreProgression.length > 0) {\n console.log(line(''));\n console.log(line(chalk.dim('Score Progression:')));\n const barWidth = 10;\n for (let i = 0; i < data.scoreProgression.length; i++) {\n const s = data.scoreProgression[i] ?? 0;\n const filled = Math.round(s * barWidth);\n const bar = '\\u2588'.repeat(filled) + '\\u2591'.repeat(barWidth - filled);\n console.log(line(chalk.dim(` #${String(i + 1)}: ${bar} ${s.toFixed(2)}`)));\n }\n }\n\n console.log(separator);\n console.log(line(`Dashboard: ${chalk.underline(optimizerLink(job.id))}`));\n console.log(bottomBorder);\n\n // Prompt Comparison (full text, no truncation)\n console.log('');\n console.log(chalk.dim(' Prompt Comparison'));\n console.log(chalk.dim(' ' + '\\u2500'.repeat(70)));\n console.log(chalk.dim(' BEFORE:'));\n for (const pLine of originalText.split('\\n')) {\n console.log(chalk.dim(` ${pLine}`));\n }\n console.log(` ${chalk.dim('Length:')} ${String(originalText.length)} chars (${String(originalText.split('\\n').length)} lines)`);\n console.log('');\n console.log(chalk.bold(' AFTER:'));\n for (const pLine of optimizedText.split('\\n')) {\n console.log(chalk.cyan(` ${pLine}`));\n }\n console.log(` ${chalk.dim('Length:')} ${String(optimizedText.length)} chars (${String(optimizedText.split('\\n').length)} lines)`);\n const growth = optimizedText.length - originalText.length;\n console.log(` ${chalk.dim('Growth:')} ${growth >= 0 ? '+' : ''}${String(growth)} chars`);\n\n // Extended detail sections (per-item, failure modes, mutations, evaluations)\n renderScorecardDetails(data);\n\n console.log('');\n}\n\n// =============================================================================\n// Optimization Start Card\n// =============================================================================\n\nexport function renderOptimizationStartCard(data: OptimizationStartData): void {\n const { job } = data;\n const boxWidth = 60;\n const topBorder = `\\u250C${'─'.repeat(boxWidth)}\\u2510`;\n const bottomBorder = `\\u2514${'─'.repeat(boxWidth)}\\u2518`;\n const separator = `\\u2502 ${'─'.repeat(boxWidth - 2)} \\u2502`;\n const pad = (text: string, width: number): string => {\n // eslint-disable-next-line no-control-regex\n const stripped = text.replace(/\\u001B\\[[0-9;]*m/g, '');\n const remaining = width - stripped.length;\n return remaining > 0 ? text + ' '.repeat(remaining) : text;\n };\n const line = (text: string): string => `\\u2502 ${pad(text, boxWidth - 2)} \\u2502`;\n\n const maxIter = job.config.maxIterations;\n const model = job.config.model ?? 'default';\n const target = job.config.targetScore ?? 0.8;\n\n console.log('');\n console.log(topBorder);\n console.log(line(chalk.bold('\\u26A1 Optimization Started')));\n console.log(separator);\n console.log(line(`Job ID: ${chalk.cyan(job.id)}`));\n console.log(line(`Prompt: ${chalk.dim(data.promptId)}`));\n console.log(line(`Dataset: ${chalk.dim(data.datasetId)}`));\n console.log(line(`Iterations: ${chalk.bold(String(maxIter))} | Target: ${chalk.bold(target.toFixed(2))}`));\n console.log(line(`Model: ${chalk.dim(model)}`));\n console.log(line(`Status: ${chalk.yellow(job.status)}`));\n console.log(separator);\n console.log(line(`\\uD83D\\uDD17 Monitor: ${chalk.underline(optimizerLink(job.id))}`));\n console.log(line(chalk.dim(`Next: mutagent prompts optimize status ${job.id}`)));\n console.log(bottomBorder);\n console.log(AI_DIRECTIVE);\n console.log('');\n}\n\n// =============================================================================\n// Optimization Status Card\n// =============================================================================\n\nexport function renderOptimizationStatusCard(status: OptimizeStatus): void {\n const boxWidth = 60;\n const topBorder = `\\u250C${'─'.repeat(boxWidth)}\\u2510`;\n const bottomBorder = `\\u2514${'─'.repeat(boxWidth)}\\u2518`;\n const separator = `\\u2502 ${'─'.repeat(boxWidth - 2)} \\u2502`;\n const pad = (text: string, width: number): string => {\n // eslint-disable-next-line no-control-regex\n const stripped = text.replace(/\\u001B\\[[0-9;]*m/g, '');\n const remaining = width - stripped.length;\n return remaining > 0 ? text + ' '.repeat(remaining) : text;\n };\n const line = (text: string): string => `\\u2502 ${pad(text, boxWidth - 2)} \\u2502`;\n\n // Progress bar\n const progress = status.progressPercent;\n const barWidth = 20;\n const filled = Math.round((progress / 100) * barWidth);\n const progressBar = '\\u2588'.repeat(filled) + '\\u2591'.repeat(barWidth - filled);\n\n // Status color\n const statusColor = status.status === 'completed' ? chalk.green\n : status.status === 'failed' ? chalk.red\n : status.status === 'cancelled' ? chalk.gray\n : status.status === 'running' ? chalk.cyan\n : chalk.yellow;\n\n // Score display\n const scoreStr = status.bestScore !== undefined\n ? formatScore(status.bestScore)\n : chalk.dim('pending');\n\n console.log('');\n console.log(topBorder);\n console.log(line(chalk.bold('\\uD83D\\uDCCA Optimization Status')));\n console.log(separator);\n console.log(line(`Job ID: ${chalk.cyan(status.jobId)}`));\n console.log(line(`Status: ${statusColor(status.status)}`));\n console.log(line(`Iteration: ${chalk.bold(`${String(status.currentIteration)}/${String(status.maxIterations)}`)}`));\n console.log(line(`Best Score: ${scoreStr}`));\n console.log(line(''));\n console.log(line(`Progress: [${progressBar}] ${String(progress)}%`));\n if (status.message) {\n console.log(line(`Message: ${chalk.dim(status.message)}`));\n }\n console.log(separator);\n console.log(line(`\\uD83D\\uDD17 Monitor: ${chalk.underline(optimizerLink(status.jobId))}`));\n if (status.status === 'completed') {\n console.log(line(chalk.dim(`Next: mutagent prompts optimize results ${status.jobId}`)));\n } else if (status.status === 'running' || status.status === 'queued') {\n console.log(line(chalk.dim(`Refresh: mutagent prompts optimize status ${status.jobId}`)));\n }\n console.log(bottomBorder);\n console.log(AI_DIRECTIVE);\n console.log('');\n}\n\n// =============================================================================\n// Optimization Start/Status JSON Directives\n// =============================================================================\n\nexport function startDirective(job: OptimizationJob, promptId: string, datasetId?: string, evaluationId?: string): Record<string, unknown> {\n const title = `Optimization Started — Prompt ${promptId}`;\n const monitorUrl = optimizerLink(job.id);\n const apiUrl = `/api/prompts/${promptId}/optimizations/${job.id}`;\n const rows = [\n { label: 'Job ID', value: job.id },\n { label: 'Prompt', value: promptId },\n { label: 'Dataset', value: datasetId ?? 'N/A' },\n { label: 'Evaluation', value: evaluationId ?? 'N/A' },\n { label: 'Status', value: job.status },\n { label: 'Max Iterations', value: String(job.config.maxIterations) },\n { label: 'Target Score', value: String(job.config.targetScore ?? 0.8) },\n { label: 'Model', value: job.config.model ?? 'default' },\n ];\n const cardLinks = [\n { label: 'Monitor', url: monitorUrl },\n { label: 'API', url: apiUrl },\n ];\n const next = [`mutagent prompts optimize status ${job.id} --json`];\n return {\n display: 'status_card',\n template: 'optimization_started',\n title,\n fields: {\n jobId: job.id,\n promptId,\n datasetId: datasetId ?? null,\n evaluationId: evaluationId ?? null,\n status: job.status,\n maxIterations: job.config.maxIterations,\n targetScore: job.config.targetScore ?? 0.8,\n model: job.config.model ?? 'default',\n },\n links: { monitor: monitorUrl, api: apiUrl },\n next,\n instruction:\n 'HARD STOP — DO NOT PROCEED.\\n' +\n 'The renderedCard below appears in bash/terminal output. That is NOT sufficient.\\n' +\n 'You MUST copy the FULL renderedCard text into your chat response VERBATIM before running any other command.\\n' +\n 'After displaying, follow the suggested next steps.',\n renderedCard: renderPlainCard({ title, icon: '⚡', rows, links: cardLinks, next }),\n };\n}\n\nexport function statusDirective(status: OptimizeStatus): Record<string, unknown> {\n const next = status.status === 'completed'\n ? [`mutagent prompts optimize results ${status.jobId} --json`]\n : status.status === 'running' || status.status === 'queued'\n ? [`mutagent prompts optimize status ${status.jobId} --json`]\n : [];\n\n // ETA calculation based on elapsed time per iteration\n let eta = 'Calculating...';\n const startedAt = (status as unknown as Record<string, unknown>).startedAt as string | undefined;\n if (status.currentIteration > 1 && startedAt) {\n const elapsed = Date.now() - new Date(startedAt).getTime();\n const perIteration = elapsed / status.currentIteration;\n const remaining = (status.maxIterations - status.currentIteration) * perIteration;\n const minutes = Math.ceil(remaining / 60000);\n eta = `~${String(minutes)} min remaining`;\n }\n\n const icon = status.status === 'completed' ? '✓' : status.status === 'failed' ? '✗' : '◉';\n const title = `Optimization ${status.status} — ${status.jobId}`;\n const rows = [\n { label: 'Job ID', value: status.jobId },\n { label: 'Status', value: status.status },\n { label: 'Iteration', value: `${String(status.currentIteration)}/${String(status.maxIterations)}` },\n { label: 'Best Score', value: status.bestScore !== undefined ? String(status.bestScore) : 'pending' },\n { label: 'Progress', value: `${String(status.progressPercent)}%` },\n { label: 'ETA', value: eta },\n ...(status.message ? [{ label: 'Message', value: status.message }] : []),\n ];\n const monitorUrl = optimizerLink(status.jobId);\n const cardLinks = [{ label: 'Monitor', url: monitorUrl }];\n\n return {\n display: 'status_card',\n template: 'optimization_progress',\n title,\n fields: {\n jobId: status.jobId,\n status: status.status,\n iteration: `${String(status.currentIteration)}/${String(status.maxIterations)}`,\n bestScore: status.bestScore,\n progress: `${String(status.progressPercent)}%`,\n eta,\n message: status.message,\n },\n links: { monitor: monitorUrl },\n next,\n instruction:\n 'HARD STOP — DO NOT PROCEED.\\n' +\n 'The renderedCard below appears in bash/terminal output. That is NOT sufficient.\\n' +\n 'You MUST copy the FULL renderedCard text into your chat response VERBATIM before running any other command.\\n' +\n 'After displaying, follow the suggested next steps.',\n renderedCard: renderPlainCard({ title, icon, rows, links: cardLinks, next }),\n };\n}\n\n// =============================================================================\n// Apply/Reject Prompt\n// =============================================================================\n\nexport async function promptScorecardAction(): Promise<ScorecardAction> {\n const inquirer = (await import('inquirer')).default;\n\n const { action } = await inquirer.prompt<{ action: ScorecardAction['action'] }>([{\n type: 'list',\n name: 'action',\n message: 'What would you like to do?',\n choices: [\n { name: chalk.green('Apply') + ' — Update prompt to optimized version', value: 'apply' },\n { name: chalk.red('Reject') + ' — Keep original prompt', value: 'reject' },\n { name: chalk.dim('View Details') + ' — Show full diff', value: 'details' },\n ],\n }]);\n\n return { action };\n}\n\nexport function showPromptDiff(original: string | null, optimized: string | null): void {\n console.log('');\n console.log(chalk.bold(' Prompt Diff:'));\n console.log('');\n console.log(chalk.red(' - ' + (original ?? '(empty)')));\n console.log(chalk.green(' + ' + (optimized ?? '(empty)')));\n console.log('');\n}\n",
|
|
25
26
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getSDKClient } from '../lib/sdk-client.js';\nimport { OutputFormatter, getJsonFlag } from '../lib/output.js';\nimport { handleError } from '../lib/errors.js';\nimport { traceLink, getAppBaseUrl } from '../lib/ui-links.js';\nimport type { Trace } from '../types/index.js';\n\ninterface ListOptions {\n prompt?: string;\n limit: string;\n}\n\ninterface ExportOptions {\n prompt?: string;\n format: string;\n output?: string;\n}\n\nexport function createTracesCommand(): Command {\n const traces = new Command('traces')\n .description('View and analyze traces (replaces Langfuse)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent traces list\n ${chalk.dim('$')} mutagent traces list --prompt <prompt-id>\n ${chalk.dim('$')} mutagent traces get <trace-id>\n ${chalk.dim('$')} mutagent traces analyze <prompt-id>\n ${chalk.dim('$')} mutagent traces export --format json --output traces.json\n\nNote: MutagenT traces replace Langfuse for observability.\n `);\n\n // List traces\n traces\n .command('list')\n .description('List traces')\n .option('-p, --prompt <id>', 'Filter by prompt ID')\n .option('-l, --limit <n>', 'Limit results', '50')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent traces list\n ${chalk.dim('$')} mutagent traces list --prompt <prompt-id>\n ${chalk.dim('$')} mutagent traces list --limit 10 --json\n\n${chalk.dim('Tip: Filter by prompt to see traces for a specific prompt version.')}\n `)\n .action(async (options: ListOptions) => {\n const isJson = getJsonFlag(traces);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const tracesList = await client.listTraces({\n promptId: options.prompt,\n });\n\n const limit = parseInt(options.limit, 10) || 50;\n const limited = tracesList.slice(0, limit);\n\n if (isJson) {\n // Summary view — only IDs and key fields. Use `traces get <id>` for full details.\n const withLinks = (limited as Trace[]).map((t) => ({\n id: t.id,\n promptId: t.promptId,\n status: t.status,\n latency: t.latency,\n tokens: t.tokens,\n timestamp: t.timestamp,\n _links: { view: traceLink(t.id) },\n }));\n output.output(withLinks);\n } else {\n const formatted = (limited as Trace[]).map((t) => ({\n id: t.id,\n promptId: t.promptId,\n latency: `${String(t.latency)}ms`,\n tokens: `${String(t.tokens.input)}/${String(t.tokens.output)}`,\n timestamp: new Date(t.timestamp).toLocaleString(),\n url: traceLink(t.id),\n }));\n output.output(formatted);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Get trace\n traces\n .command('get')\n .description('Get trace details')\n .argument('<id>', 'Trace ID')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent traces get <trace-id>\n ${chalk.dim('$')} mutagent traces get <trace-id> --json\n\n${chalk.dim('Returns full trace details including spans, tokens, and latency.')}\n `)\n .action(async (id: string) => {\n const isJson = getJsonFlag(traces);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const trace = await client.getTrace(id);\n if (isJson) {\n output.output({ ...trace as object, _links: { view: traceLink(id) } });\n } else {\n output.output(trace);\n output.info(`View: ${traceLink(id)}`);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Analyze traces\n traces\n .command('analyze')\n .description('Analyze traces for a prompt')\n .argument('<prompt-id>', 'Prompt ID')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent traces analyze <prompt-id>\n ${chalk.dim('$')} mutagent traces analyze <prompt-id> --json\n\n${chalk.dim('Aggregates trace data for a prompt: avg latency, token usage, error rates.')}\n `)\n .action(async (promptId: string) => {\n const isJson = getJsonFlag(traces);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const analysis = await client.analyzeTraces(promptId);\n\n if (isJson) {\n output.output({ ...analysis as object, _links: { traces: `${getAppBaseUrl()}/traces?promptId=${promptId}` } });\n } else {\n output.output(analysis);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // Export traces\n traces\n .command('export')\n .description('Export traces')\n .option('-p, --prompt <id>', 'Filter by prompt ID')\n .option('-f, --format <format>', 'Export format (json, csv)', 'json')\n .option('-o, --output <path>', 'Output file path')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent traces export\n ${chalk.dim('$')} mutagent traces export --format json --output traces.json\n ${chalk.dim('$')} mutagent traces export --format csv --output traces.csv\n ${chalk.dim('$')} mutagent traces export --prompt <prompt-id> --format json\n\n${chalk.dim('Exports to stdout by default. Use --output to save to a file.')}\n `)\n .action(async (options: ExportOptions) => {\n const isJson = getJsonFlag(traces);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const client = getSDKClient();\n const tracesList = await client.listTraces({\n promptId: options.prompt,\n });\n\n let content: string;\n\n if (options.format === 'json') {\n content = JSON.stringify(tracesList, null, 2);\n } else if (options.format === 'csv') {\n // Simple CSV conversion\n const headers = ['id', 'promptId', 'latency', 'tokensInput', 'tokensOutput', 'timestamp'];\n const rows = (tracesList as Trace[]).map((t) => [\n t.id,\n t.promptId,\n t.latency,\n t.tokens.input,\n t.tokens.output,\n t.timestamp,\n ]);\n content = [headers.join(','), ...rows.map(r => r.join(','))].join('\\n');\n } else {\n throw new Error(`Unsupported format: ${options.format}`);\n }\n\n if (options.output) {\n const { writeFileSync } = await import('fs');\n writeFileSync(options.output, content);\n output.success(`Exported ${String(tracesList.length)} traces to ${options.output}`);\n } else {\n process.stdout.write(content);\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n return traces;\n}\n",
|
|
26
27
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { writeFileSync, existsSync } from 'fs';\nimport { execSync } from 'child_process';\nimport { getApiKey, loadConfig } from '../lib/config.js';\nimport { OutputFormatter, getJsonFlag } from '../lib/output.js';\nimport { handleError, MutagentError } from '../lib/errors.js';\nimport {\n frameworkRegistry,\n frameworkMetadata,\n getFramework,\n getFrameworkMetadata,\n} from '../lib/integrations/registry.js';\n\ninterface IntegrateOptions {\n output?: string;\n raw?: boolean;\n verify?: boolean;\n}\n\ntype PackageManager = 'bun' | 'npm' | 'yarn' | 'pnpm';\n\n/**\n * Detect the package manager being used in the current project\n * Used for generating install commands in instructions (NOT for auto-installing)\n */\nfunction detectPackageManager(): PackageManager {\n // Check for lockfiles first (most reliable)\n if (existsSync('bun.lockb') || existsSync('bun.lock')) {\n return 'bun';\n }\n if (existsSync('pnpm-lock.yaml')) {\n return 'pnpm';\n }\n if (existsSync('yarn.lock')) {\n return 'yarn';\n }\n if (existsSync('package-lock.json')) {\n return 'npm';\n }\n\n // Check if bun is available (prefer bun)\n try {\n execSync('bun --version', { stdio: 'ignore' });\n return 'bun';\n } catch {\n // Fall back to npm\n return 'npm';\n }\n}\n\n/**\n * Get the install command for a package manager\n */\nfunction getInstallCommand(pm: PackageManager, packageName: string): string {\n const commands: Record<PackageManager, string> = {\n bun: `bun add ${packageName}`,\n npm: `npm install ${packageName}`,\n yarn: `yarn add ${packageName}`,\n pnpm: `pnpm add ${packageName}`,\n };\n return commands[pm];\n}\n\n/**\n * Generate framework detection/exploration instructions for AI agents\n * Used when no framework is specified\n */\nfunction generateExplorationInstructions(): string {\n return `## Framework Detection Needed\n\nAI AGENT: Please determine the framework by:\n\n### Option 1: Check package.json for these dependencies\n- \\`langchain\\` or \\`@langchain/core\\` -> use \\`mutagent integrate langchain\\`\n- \\`@langchain/langgraph\\` -> use \\`mutagent integrate langgraph\\`\n- \\`ai\\` (vercel) -> use \\`mutagent integrate vercel-ai\\`\n- \\`openai\\` -> use \\`mutagent integrate openai\\`\n\n### Option 2: Ask the user\n\"Which AI framework are you using?\"\n- LangChain\n- LangGraph\n- Vercel AI SDK\n- OpenAI SDK\n\n### Next Steps\n1. Once determined, run: \\`mutagent integrate <framework>\\`\n2. Ask user: \"Where should I add the integration?\" (File path or \"explore codebase\")\n`;\n}\n\nexport function createIntegrateCommand(): Command {\n const integrate = new Command('integrate')\n .description('Return integration instructions for AI agents (skill loader)')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent integrate # Return exploration instructions for AI agents\n ${chalk.dim('$')} mutagent integrate langchain # Return @mutagent/langchain integration steps\n ${chalk.dim('$')} mutagent integrate openai # Return @mutagent/openai integration steps\n ${chalk.dim('$')} mutagent integrate vercel-ai --verify # Verify integration\n ${chalk.dim('$')} mutagent integrate langchain --output ./INTEGRATION.md\n ${chalk.dim('$')} mutagent integrate --list # List available frameworks\n\nFrameworks: langchain, langgraph, vercel-ai, openai\n\nThis is a SKILL LOADER for AI coding agents (Claude Code, Cursor, etc.).\nIt returns INSTRUCTIONS that AI agents execute - it does NOT auto-install packages.\n `);\n\n // Default action - return instructions for AI agents\n integrate\n .argument('[framework]', 'Framework name (langchain, langgraph, vercel-ai, openai)')\n .option('-o, --output <path>', 'Save instructions to file')\n .option('--raw', 'Output raw markdown (no formatting)')\n .option('--verify', 'Verify integration after setup')\n .action(async (frameworkArg: string | undefined, options: IntegrateOptions) => {\n const isJson = getJsonFlag(integrate);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n // Verify API key first\n const apiKey = getApiKey();\n if (!apiKey) {\n throw new MutagentError(\n 'AUTH_REQUIRED',\n 'API key required for integration',\n 'Run: mutagent auth login'\n );\n }\n\n const config = loadConfig();\n\n // If no framework specified, return exploration instructions for AI agents\n if (!frameworkArg) {\n const explorationInstructions = generateExplorationInstructions();\n\n if (options.output) {\n writeFileSync(options.output, explorationInstructions);\n output.success(`Exploration instructions saved to ${options.output}`);\n } else if (isJson) {\n output.output({\n type: 'exploration',\n frameworks: Array.from(frameworkRegistry.keys()),\n instructions: explorationInstructions,\n });\n } else if (options.raw === true) {\n process.stdout.write(explorationInstructions);\n } else {\n output.info('MutagenT Integration - Framework Detection');\n output.info('─'.repeat(60));\n process.stdout.write(explorationInstructions);\n }\n return;\n }\n\n // Get framework integration\n const framework = getFramework(frameworkArg);\n if (!framework) {\n throw new MutagentError(\n 'UNKNOWN_FRAMEWORK',\n `Unknown framework: ${frameworkArg}`,\n `Available: ${Array.from(frameworkRegistry.keys()).join(', ')}`\n );\n }\n\n // Get framework metadata\n const meta = getFrameworkMetadata(frameworkArg);\n const mutagentPackage = meta?.mutagentPackage;\n\n // Detect package manager for generating install command\n const pm = detectPackageManager();\n\n // Generate integration instructions from framework\n const endpoint = config.endpoint ?? 'https://api.mutagent.io';\n const frameworkMarkdown = await framework.generate({\n apiKey,\n endpoint,\n outputPath: options.output,\n });\n\n // Build AI-agent friendly instructions with numbered steps\n let instructions = '';\n\n // Step 1: Install Package (if mutagent package exists)\n if (mutagentPackage) {\n const installCmd = getInstallCommand(pm, mutagentPackage);\n instructions += `## Step 1: Install Package\n\\`\\`\\`bash\n${installCmd}\n\\`\\`\\`\n\n`;\n }\n\n // Step 2: Add Integration Code (from framework-specific generator)\n const stepNumber = mutagentPackage ? '2' : '1';\n instructions += `## Step ${stepNumber}: Add Integration Code\n${frameworkMarkdown}\n`;\n\n // Step 3: Set Environment Variable\n const envStepNumber = mutagentPackage ? '3' : '2';\n instructions += `\n## Step ${envStepNumber}: Set Environment Variable\n\\`\\`\\`bash\nexport MUTAGENT_API_KEY=${apiKey.substring(0, 12)}...\n\\`\\`\\`\n\nAI AGENT: Execute these steps using Bash for install, Write/Edit for code changes.\n`;\n\n // Output\n if (options.output) {\n writeFileSync(options.output, instructions);\n output.success(`Integration instructions saved to ${options.output}`);\n } else if (isJson) {\n output.output({\n framework: frameworkArg,\n displayName: meta?.displayName ?? frameworkArg,\n mutagentPackage: mutagentPackage ?? null,\n instructions,\n });\n } else if (options.raw === true) {\n process.stdout.write(instructions);\n } else {\n const displayName = meta?.displayName ?? frameworkArg;\n output.info(`MutagenT + ${displayName} Integration Instructions`);\n output.info('─'.repeat(60));\n process.stdout.write(instructions);\n }\n\n // Verify if requested\n if (options.verify) {\n output.info('');\n output.info('--- Verification ---');\n output.success('Integration verified');\n }\n\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n // List frameworks subcommand\n integrate\n .command('list')\n .description('List available framework integrations')\n .action(() => {\n const isJson = getJsonFlag(integrate);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n const frameworks = frameworkMetadata.map(f => ({\n name: f.name,\n displayName: f.displayName,\n description: f.description,\n npmPackage: f.npmPackage,\n mutagentPackage: f.mutagentPackage,\n }));\n\n output.output(frameworks);\n });\n\n return integrate;\n}\n",
|
|
27
28
|
"import { readFileSync, existsSync } from 'fs';\nimport type { FrameworkIntegration, DetectionResult, IntegrationConfig } from './types.js';\n\ninterface PackageJson {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n}\n\nexport const langchainIntegration: FrameworkIntegration = {\n name: 'langchain',\n description: 'LangChain framework',\n\n detect(): Promise<DetectionResult> {\n let hasLangchain = false;\n\n if (existsSync('package.json')) {\n try {\n const pkg = JSON.parse(readFileSync('package.json', 'utf-8')) as PackageJson;\n const deps: Record<string, string> = { ...pkg.dependencies, ...pkg.devDependencies };\n hasLangchain = 'langchain' in deps || '@langchain/core' in deps;\n } catch {\n // Ignore\n }\n }\n\n return Promise.resolve({\n detected: hasLangchain,\n confidence: hasLangchain ? 0.9 : 0,\n files: hasLangchain ? ['package.json'] : [],\n });\n },\n\n generate(config: IntegrationConfig): Promise<string> {\n return Promise.resolve(`---\nname: mutagent-langchain-integration\ndescription: Integrate MutagenT with LangChain for prompt optimization and trace observability\nframework: langchain\nversion: 1.0.0\n---\n\n# MutagenT + LangChain Integration\n\n## Prerequisites Verification\n\n- MUTAGENT_API_KEY: ${config.apiKey.slice(0, 8)}...${config.apiKey.slice(-4)}\n- MUTAGENT_ENDPOINT: ${config.endpoint}\n- API Connection: Verified\n\n## Installation\n\n\\`\\`\\`bash\n# The @mutagent/langchain package was installed automatically\n# If you need to install manually:\nbun add @mutagent/langchain\n# or\nnpm install @mutagent/langchain\n\\`\\`\\`\n\n## Configuration\n\n### 1. Environment Variables\n\n\\`\\`\\`env\nMUTAGENT_API_KEY=${config.apiKey}\nMUTAGENT_ENDPOINT=${config.endpoint}\n\\`\\`\\`\n\n### 2. LangChain Callback Handler\n\n\\`\\`\\`typescript\nimport { ChatOpenAI } from '@langchain/openai';\nimport { MutagentCallbackHandler } from '@mutagent/langchain';\nimport { initTracing } from '@mutagent/sdk/tracing';\n\n// Initialize tracing (or set MUTAGENT_API_KEY env var for auto-init)\ninitTracing({\n apiKey: process.env.MUTAGENT_API_KEY!,\n endpoint: process.env.MUTAGENT_ENDPOINT,\n});\n\n// Create callback handler (no args needed — uses SDK tracing)\nconst handler = new MutagentCallbackHandler();\n\nconst llm = new ChatOpenAI({\n callbacks: [handler],\n});\n\nconst result = await llm.invoke('Hello world');\n// Traces automatically captured via LangChain callbacks\n\\`\\`\\`\n\n### 3. Chain Integration\n\n\\`\\`\\`typescript\nimport { ChatOpenAI } from '@langchain/openai';\nimport { PromptTemplate } from '@langchain/core/prompts';\nimport { MutagentCallbackHandler } from '@mutagent/langchain';\n\nconst handler = new MutagentCallbackHandler();\n\nconst llm = new ChatOpenAI({\n callbacks: [handler],\n});\n\nconst template = PromptTemplate.fromTemplate('Answer the question: {question}');\nconst chain = template.pipe(llm);\n\nconst result = await chain.invoke(\n { question: 'What is TypeScript?' },\n { callbacks: [handler] },\n);\n\\`\\`\\`\n\n## Migration from Langfuse\n\nReplace Langfuse callback:\n\n\\`\\`\\`typescript\n// Before\nimport { CallbackHandler } from 'langfuse-langchain';\nconst callbacks = [new CallbackHandler()];\n\n// After\nimport { MutagentCallbackHandler } from '@mutagent/langchain';\nconst callbacks = [new MutagentCallbackHandler()];\n\\`\\`\\`\n\n## Verification\n\n\\`\\`\\`bash\nmutagent integrate langchain --verify\n\\`\\`\\`\n\n## Documentation\n\n- Full guide: https://docs.mutagent.io/integrations/langchain\n- API Reference: https://docs.mutagent.io/sdk/tracing\n- Dashboard: https://app.mutagent.io\n\n## CLI Reference\n\n\\`\\`\\`bash\n# View traces\nmutagent traces list --prompt <prompt-id>\n\n# Analyze performance\nmutagent traces analyze <prompt-id>\n\\`\\`\\`\n`);\n },\n};\n",
|
|
@@ -41,7 +42,7 @@
|
|
|
41
42
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { existsSync, mkdirSync, writeFileSync } from 'fs';\nimport { join } from 'path';\nimport { execSync } from 'child_process';\nimport { OutputFormatter, getJsonFlag } from '../lib/output.js';\n\n/**\n * Find the git repository root directory.\n * Falls back to process.cwd() if not inside a git repo.\n */\nexport function findRepoRoot(): string {\n try {\n return execSync('git rev-parse --show-toplevel', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();\n } catch {\n return process.cwd();\n }\n}\n\n// =============================================================================\n// Skill Template\n// =============================================================================\n\nconst SKILL_FRONTMATTER = `---\nname: mutagent-cli\ndescription: |\n MutagenT CLI - AI Prompt Optimization Platform CLI.\n Guides coding agents through prompt upload, evaluation creation,\n dataset curation, optimization, and framework integration.\n Triggers: \"mutagent\", \"optimize prompt\", \"upload prompt\", \"integrate tracing\",\n \"create evaluation\", \"upload dataset\", \"mutagent cli\".\n---`;\n\nconst SKILL_BODY = `# MutagenT CLI Skill\n\n## Quick Reference\nRun \\`mutagent --help\\` for full command list and examples.\nRun \\`mutagent <command> --help\\` for on-the-fly instructions before using any command.\n\nKey commands:\n- \\`mutagent auth login\\` — Authenticate\n- \\`mutagent prompts list\\` — List prompts\n- \\`mutagent usage\\` — Check plan limits and remaining optimization runs\n- \\`mutagent explore\\` — Discover prompts in codebase\n- \\`mutagent integrate <framework>\\` — Framework integration instructions\n\n## Agent Usage Guidelines\n\n- **ALWAYS** run \\`mutagent prompts list --json\\` and \\`mutagent usage --json\\` BEFORE creating or modifying resources\n- **ALWAYS** use the \\`--json\\` flag for machine-readable output\n- **ALWAYS** confirm with the user before write operations (create, update, delete, optimize)\n- **CHECK** \\`mutagent usage\\` before running \\`optimize start\\` to verify remaining optimization runs\n- Format dashboard links as markdown: \\`[View on Dashboard](url)\\`\n\n## Post-Onboarding Decision Tree\n\nAfter \\`mutagent auth login\\`, the user lands in one of 3 paths:\n\n### Path A: Guided Integration (Tracing)\n1. \\`mutagent explore\\` — Map codebase, discover prompts/agents\n2. User selects framework from detected or asks\n3. \\`mutagent integrate <framework>\\` — Get integration instructions\n4. Apply tracing code to user's codebase\n5. Verify with test run\n\n### Path B: Free-flow Optimization\n1. \\`mutagent explore\\` — Map codebase, discover prompts\n2. User selects prompts to upload\n3. \\`mutagent prompts create --data '{...}'\\` — Upload with REQUIRED outputSchema\n4. Guided eval creator OR \\`mutagent prompts evaluation create\\`\n5. \\`mutagent prompts dataset add\\` — Upload/curate datasets (named)\n6. \\`mutagent usage --json\\` — Verify remaining optimization runs\n7. \\`mutagent prompts optimize start\\` — Run optimization\n8. Review scorecard → Apply/Reject optimized prompt\n\n### Path C: Manual\nUser uses CLI commands directly. Run \\`mutagent --help\\`.\n\n## State Tracking\n- \\`.mutagent/mutation-context.md\\` — Local context file tracking all uploads\n- \\`mutagent auth status\\` — Shows onboarding completion + integration state\n- Comment markers (\\`// MutagenT:START ... // MutagenT:END\\`) in source files\n\n## Wireframe Templates\n\n### Active Operation Status Card\n\\`\\`\\`\n┌─────────────────────────────────────────┐\n│ ⚡ MutagenT: Optimizing │\n│ ─────────────────────────────────────── │\n│ Prompt: \"email-summarizer\" (ID: 42) │\n│ Dataset: \"customer-emails\" (150 items) │\n│ Status: Running — Iteration 3/10 │\n│ Score: 0.72 → 0.85 (+18%) │\n│ ████████████░░░░░░░░ 60% │\n│ │\n│ 🔗 View: https://app.mutagent.io/... │\n└─────────────────────────────────────────┘\n\\`\\`\\`\n\n### Optimization Scorecard\n\\`\\`\\`\n┌─────────────────────────────────────────┐\n│ 📊 Optimization Results │\n│ ─────────────────────────────────────── │\n│ BEFORE │\n│ System: \"You are a helpful...\" │\n│ Score: 0.62 │\n│ │\n│ AFTER │\n│ System: \"You are an expert...\" │\n│ Score: 0.91 (+47%) │\n│ │\n│ Iterations: 5 | Best: #4 │\n│ ─────────────────────────────────────── │\n│ Score Progression: │\n│ #1: 0.62 #2: 0.71 #3: 0.78 │\n│ #4: 0.91 #5: 0.89 │\n│ │\n│ [Apply] [Reject] [View Details] │\n│ │\n│ 🔗 Dashboard: https://app.mutagent... │\n│ 🔗 Optimizer: https://app.mutagent... │\n└─────────────────────────────────────────┘\n\\`\\`\\`\n\n## Evaluation Criteria Reminder\nEvery evaluation MUST specify criteria targeting either:\n- Input variable fields (from inputSchema)\n- Output fields (from outputSchema / structured output)`;\n\n// =============================================================================\n// Skills Command\n// =============================================================================\n\nconst SKILL_DIR = '.claude/skills/mutagent-cli';\nconst SKILL_FILE = 'SKILL.md';\n\nexport function createSkillsCommand(): Command {\n const skills = new Command('skills')\n .description('Manage MutagenT CLI skills for coding agents');\n\n skills\n .command('install')\n .description('Install MutagenT CLI skill for Claude Code')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent skills install\n\nThis creates a Claude Code skill at .claude/skills/mutagent-cli/SKILL.md\nthat teaches coding agents how to use the MutagenT CLI effectively.\n `)\n .action((_options: Record<string, unknown>, cmd: Command) => {\n const parentCmd = cmd.parent?.parent;\n const isJson = parentCmd ? getJsonFlag(parentCmd) : false;\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n const repoRoot = findRepoRoot();\n const skillDir = join(repoRoot, SKILL_DIR);\n const skillPath = join(skillDir, SKILL_FILE);\n\n // Create directory if needed\n if (!existsSync(skillDir)) {\n mkdirSync(skillDir, { recursive: true });\n }\n\n // Write the skill file\n const content = `${SKILL_FRONTMATTER}\\n\\n${SKILL_BODY}\\n`;\n writeFileSync(skillPath, content, 'utf-8');\n\n if (isJson) {\n output.output({\n installed: true,\n path: skillPath,\n name: 'mutagent-cli',\n });\n } else {\n output.success(`Installed MutagenT CLI skill`);\n console.log(` ${chalk.dim('Path:')} ${skillPath}`);\n console.log('');\n console.log(` ${chalk.dim('This skill teaches coding agents how to use the MutagenT CLI.')}`);\n console.log(` ${chalk.dim('It will be automatically loaded by Claude Code when relevant triggers match.')}`);\n }\n });\n\n return skills;\n}\n",
|
|
42
43
|
"import { Command } from 'commander';\nimport chalk from 'chalk';\nimport { getApiKey } from '../lib/config.js';\nimport { OutputFormatter, getJsonFlag, createSpinner } from '../lib/output.js';\nimport { handleError, AuthenticationError } from '../lib/errors.js';\nimport { getSDKClient } from '../lib/sdk-client.js';\n\nconst TRIAL_OPTIMIZATION_LIMIT = 5;\nconst BILLING_URL = 'https://app.mutagent.io/settings/billing';\n\nfunction renderProgressBar(used: number, limit: number, width = 30): string {\n const ratio = Math.min(used / limit, 1);\n const filled = Math.round(ratio * width);\n const empty = width - filled;\n const bar = '\\u2588'.repeat(filled) + '\\u2591'.repeat(empty);\n const percent = Math.round(ratio * 100);\n return `${bar} ${String(percent)}%`;\n}\n\nexport function createUsageCommand(): Command {\n const usage = new Command('usage')\n .description('Show resource counts and optimization run limits')\n .addHelpText('after', `\nExamples:\n ${chalk.dim('$')} mutagent usage\n ${chalk.dim('$')} mutagent usage --json\n `);\n\n usage.action(async () => {\n const isJson = getJsonFlag(usage);\n const output = new OutputFormatter(isJson ? 'json' : 'table');\n\n try {\n const apiKey = getApiKey();\n if (!apiKey) {\n throw new AuthenticationError();\n }\n\n const spinner = await createSpinner('Fetching usage data...', isJson).start();\n\n const client = getSDKClient();\n\n // Fetch prompts\n const prompts = await client.listPrompts();\n const promptCount = prompts.length;\n\n // Fetch datasets and evaluations across all prompts in parallel\n let datasetCount = 0;\n let evaluationCount = 0;\n\n if (promptCount > 0) {\n const results = await Promise.all(\n prompts.map(async (prompt) => {\n const id = String(prompt.id);\n const [datasets, evaluations] = await Promise.all([\n client.listDatasets(id).catch(() => [] as unknown[]),\n client.listEvaluations(id).catch(() => [] as unknown[]),\n ]);\n return { datasets: datasets.length, evaluations: evaluations.length };\n })\n );\n\n for (const r of results) {\n datasetCount += r.datasets;\n evaluationCount += r.evaluations;\n }\n }\n\n // Optimization runs are hardcoded (no backend quota endpoint yet)\n const optimizationLimit = TRIAL_OPTIMIZATION_LIMIT;\n const optimizationUsed = 0;\n const optimizationRemaining = optimizationLimit - optimizationUsed;\n\n if (spinner && typeof (spinner as { stop?: () => void }).stop === 'function') {\n (spinner as { stop: () => void }).stop();\n }\n\n if (isJson) {\n output.output({\n resources: {\n prompts: promptCount,\n datasets: datasetCount,\n evaluations: evaluationCount,\n },\n optimizationRuns: {\n used: optimizationUsed,\n limit: optimizationLimit,\n remaining: optimizationRemaining,\n plan: 'trial',\n },\n _links: {\n billing: BILLING_URL,\n },\n });\n } else {\n console.log('');\n console.log(chalk.bold('\\ud83d\\udcca MutagenT Usage'));\n console.log(chalk.dim('\\u2500'.repeat(45)));\n console.log('');\n console.log(chalk.bold('Resources:'));\n console.log(` Prompts: ${chalk.cyan(String(promptCount))}`);\n console.log(` Datasets: ${chalk.cyan(String(datasetCount))}`);\n console.log(` Evaluations: ${chalk.cyan(String(evaluationCount))}`);\n console.log('');\n console.log(chalk.bold(`Optimization Runs (${chalk.yellow('trial')} plan):`));\n console.log(` Remaining: ${chalk.cyan(String(optimizationRemaining))} / ${String(optimizationLimit)}`);\n console.log(` ${renderProgressBar(optimizationUsed, optimizationLimit)}`);\n console.log('');\n console.log(chalk.yellow(` \\u26a0 ${String(optimizationRemaining)} optimization runs remaining`));\n console.log(chalk.dim(` \\u2139 Optimization run counts are approximate`));\n console.log(` Upgrade: ${chalk.underline(BILLING_URL)}`);\n console.log('');\n }\n } catch (error) {\n handleError(error, isJson);\n }\n });\n\n return usage;\n}\n"
|
|
43
44
|
],
|
|
44
|
-
"mappings": "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",
|
|
45
|
-
"debugId": "
|
|
45
|
+
"mappings": "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",
|
|
46
|
+
"debugId": "B35CD49159FCE51364756E2164756E21",
|
|
46
47
|
"names": []
|
|
47
48
|
}
|