close-crm-cli 0.1.0
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/AGENTS.md +566 -0
- package/CLAUDE.md +148 -0
- package/README.md +242 -0
- package/dist/index.js +4560 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.js +4262 -0
- package/dist/mcp.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/core/config.ts","../src/core/errors.ts","../src/core/auth.ts","../src/core/client.ts","../src/core/output.ts","../src/commands/auth/login.ts","../src/commands/auth/logout.ts","../src/mcp/server.ts","../src/commands/mcp/index.ts","../src/commands/leads/list.ts","../src/core/handler.ts","../src/commands/leads/get.ts","../src/commands/leads/create.ts","../src/commands/leads/update.ts","../src/commands/leads/delete.ts","../src/commands/leads/merge.ts","../src/commands/leads/search.ts","../src/commands/contacts/list.ts","../src/commands/contacts/get.ts","../src/commands/contacts/create.ts","../src/commands/contacts/update.ts","../src/commands/contacts/delete.ts","../src/commands/opportunities/list.ts","../src/commands/opportunities/get.ts","../src/commands/opportunities/create.ts","../src/commands/opportunities/update.ts","../src/commands/opportunities/delete.ts","../src/commands/tasks/list.ts","../src/commands/tasks/get.ts","../src/commands/tasks/create.ts","../src/commands/tasks/update.ts","../src/commands/tasks/delete.ts","../src/commands/tasks/bulk-update.ts","../src/commands/activities/list.ts","../src/commands/calls/list.ts","../src/commands/calls/get.ts","../src/commands/calls/create.ts","../src/commands/calls/update.ts","../src/commands/calls/delete.ts","../src/commands/notes/list.ts","../src/commands/notes/get.ts","../src/commands/notes/create.ts","../src/commands/notes/update.ts","../src/commands/notes/delete.ts","../src/commands/emails/list.ts","../src/commands/emails/get.ts","../src/commands/emails/create.ts","../src/commands/emails/update.ts","../src/commands/emails/delete.ts","../src/commands/sms/list.ts","../src/commands/sms/get.ts","../src/commands/sms/create.ts","../src/commands/sms/delete.ts","../src/commands/meetings/list.ts","../src/commands/meetings/get.ts","../src/commands/meetings/update.ts","../src/commands/meetings/delete.ts","../src/commands/users/me.ts","../src/commands/users/list.ts","../src/commands/users/get.ts","../src/commands/users/availability.ts","../src/commands/pipelines/list.ts","../src/commands/pipelines/get.ts","../src/commands/pipelines/create.ts","../src/commands/pipelines/update.ts","../src/commands/pipelines/delete.ts","../src/commands/lead-statuses/list.ts","../src/commands/lead-statuses/get.ts","../src/commands/lead-statuses/create.ts","../src/commands/lead-statuses/update.ts","../src/commands/lead-statuses/delete.ts","../src/commands/opportunity-statuses/list.ts","../src/commands/opportunity-statuses/get.ts","../src/commands/opportunity-statuses/create.ts","../src/commands/opportunity-statuses/update.ts","../src/commands/opportunity-statuses/delete.ts","../src/commands/custom-fields/index.ts","../src/commands/webhooks/list.ts","../src/commands/webhooks/get.ts","../src/commands/webhooks/create.ts","../src/commands/webhooks/update.ts","../src/commands/webhooks/delete.ts","../src/commands/sequences/list.ts","../src/commands/sequences/get.ts","../src/commands/sequences/create.ts","../src/commands/sequences/update.ts","../src/commands/sequences/delete.ts","../src/commands/sequences/subscribe.ts","../src/commands/sequences/list-subscriptions.ts","../src/commands/email-templates/list.ts","../src/commands/email-templates/get.ts","../src/commands/email-templates/create.ts","../src/commands/email-templates/update.ts","../src/commands/email-templates/delete.ts","../src/commands/email-templates/render.ts","../src/commands/sms-templates/list.ts","../src/commands/sms-templates/get.ts","../src/commands/sms-templates/create.ts","../src/commands/sms-templates/update.ts","../src/commands/sms-templates/delete.ts","../src/commands/smart-views/list.ts","../src/commands/smart-views/get.ts","../src/commands/smart-views/create.ts","../src/commands/smart-views/update.ts","../src/commands/smart-views/delete.ts","../src/commands/reports/activity-metrics.ts","../src/commands/reports/activity-report.ts","../src/commands/reports/funnel.ts","../src/commands/phone-numbers/list.ts","../src/commands/phone-numbers/get.ts","../src/commands/phone-numbers/update.ts","../src/commands/phone-numbers/delete.ts","../src/commands/connected-accounts/list.ts","../src/commands/connected-accounts/get.ts","../src/commands/organizations/get.ts","../src/commands/organizations/update.ts","../src/commands/groups/list.ts","../src/commands/groups/get.ts","../src/commands/groups/create.ts","../src/commands/groups/update.ts","../src/commands/groups/delete.ts","../src/commands/roles/list.ts","../src/commands/roles/get.ts","../src/commands/exports/list.ts","../src/commands/exports/get.ts","../src/commands/exports/create-lead.ts","../src/commands/exports/create-opportunity.ts","../src/commands/unsubscribe/list.ts","../src/commands/unsubscribe/add.ts","../src/commands/unsubscribe/delete.ts","../src/commands/index.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { registerAllCommands } from './commands/index.js';\n\nconst program = new Command();\n\nprogram\n .name('close')\n .description('CLI and MCP server for the Close CRM platform')\n .version('0.1.0')\n .option('--api-key <key>', 'API key (overrides CLOSE_API_KEY env var and stored config)')\n .option('--output <format>', 'Output format: json (default) or pretty', 'json')\n .option('--pretty', 'Shorthand for --output pretty')\n .option('--quiet', 'Suppress output, exit codes only')\n .option('--fields <fields>', 'Comma-separated list of fields to include in output');\n\nregisterAllCommands(program);\n\nprogram.parse();\n","import { readFile, writeFile, mkdir, rm } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport type { CloseConfig } from './types.js';\n\nconst CONFIG_DIR = join(homedir(), '.close');\nconst CONFIG_FILE = join(CONFIG_DIR, 'config.json');\n\nexport function getConfigDir(): string {\n return CONFIG_DIR;\n}\n\nexport function getConfigPath(): string {\n return CONFIG_FILE;\n}\n\nexport async function loadConfig(): Promise<CloseConfig | null> {\n try {\n const content = await readFile(CONFIG_FILE, 'utf-8');\n return JSON.parse(content) as CloseConfig;\n } catch {\n return null;\n }\n}\n\nexport async function saveConfig(config: CloseConfig): Promise<void> {\n await mkdir(CONFIG_DIR, { recursive: true });\n await writeFile(CONFIG_FILE, JSON.stringify(config, null, 2) + '\\n', {\n mode: 0o600,\n });\n}\n\nexport async function deleteConfig(): Promise<void> {\n try {\n await rm(CONFIG_FILE);\n } catch {\n // File doesn't exist, that's fine\n }\n}\n","export class CloseError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode?: number,\n ) {\n super(message);\n this.name = 'CloseError';\n }\n}\n\nexport class AuthError extends CloseError {\n constructor(message: string) {\n super(message, 'AUTH_ERROR', 401);\n this.name = 'AuthError';\n }\n}\n\nexport class NotFoundError extends CloseError {\n constructor(message: string) {\n super(message, 'NOT_FOUND', 404);\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends CloseError {\n constructor(message: string) {\n super(message, 'VALIDATION_ERROR', 422);\n this.name = 'ValidationError';\n }\n}\n\nexport class RateLimitError extends CloseError {\n public retryAfter?: number;\n\n constructor(message: string, retryAfter?: number) {\n super(message, 'RATE_LIMIT', 429);\n this.name = 'RateLimitError';\n this.retryAfter = retryAfter;\n }\n}\n\nexport class ServerError extends CloseError {\n constructor(message: string, statusCode: number = 500) {\n super(message, 'SERVER_ERROR', statusCode);\n this.name = 'ServerError';\n }\n}\n\nexport function formatError(error: unknown): { message: string; code: string } {\n if (error instanceof CloseError) {\n return { message: error.message, code: error.code };\n }\n if (error instanceof Error) {\n if (error.name === 'AbortError' || String(error.message).includes('aborted')) {\n return { message: 'Request timed out — the API did not respond in time', code: 'TIMEOUT' };\n }\n if (error.message.includes('ECONNREFUSED') || error.message.includes('ENOTFOUND')) {\n return { message: `Network error: ${error.message}`, code: 'NETWORK_ERROR' };\n }\n return { message: error.message, code: 'UNKNOWN_ERROR' };\n }\n return { message: String(error), code: 'UNKNOWN_ERROR' };\n}\n","import { loadConfig } from './config.js';\nimport { AuthError } from './errors.js';\n\nexport async function resolveApiKey(flagKey?: string): Promise<string> {\n // 1. --api-key flag takes highest priority\n if (flagKey) return flagKey;\n\n // 2. CLOSE_API_KEY environment variable\n const envKey = process.env.CLOSE_API_KEY;\n if (envKey) return envKey;\n\n // 3. Stored config from ~/.close/config.json\n const config = await loadConfig();\n if (config?.api_key) return config.api_key;\n\n throw new AuthError(\n 'No API key found. Set CLOSE_API_KEY, use --api-key, or run: close login',\n );\n}\n","import type { CloseClient as ICloseClient, PaginatedResponse } from './types.js';\nimport {\n AuthError,\n NotFoundError,\n ValidationError,\n RateLimitError,\n ServerError,\n CloseError,\n} from './errors.js';\n\nconst BASE_URL = 'https://api.close.com/api/v1';\nconst MAX_RETRIES = 3;\nconst REQUEST_TIMEOUT = 30_000;\nconst WRITE_TIMEOUT = 15_000;\nconst VERSION = '0.1.0';\n\ninterface ClientOptions {\n apiKey: string;\n baseUrl?: string;\n maxRetries?: number;\n timeout?: number;\n}\n\nexport class CloseClient implements ICloseClient {\n private apiKey: string;\n private baseUrl: string;\n private maxRetries: number;\n private timeout: number;\n\n constructor(options: ClientOptions) {\n this.apiKey = options.apiKey;\n this.baseUrl = options.baseUrl ?? BASE_URL;\n this.maxRetries = options.maxRetries ?? MAX_RETRIES;\n this.timeout = options.timeout ?? REQUEST_TIMEOUT;\n }\n\n /** Close CRM uses HTTP Basic Auth: apiKey as username, empty password */\n private authHeader(): string {\n const encoded = Buffer.from(`${this.apiKey}:`).toString('base64');\n return `Basic ${encoded}`;\n }\n\n async request<T>(options: {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE';\n path: string;\n query?: Record<string, string | number | boolean | undefined>;\n body?: unknown;\n }): Promise<T> {\n const url = new URL(this.baseUrl + options.path);\n\n if (options.query) {\n for (const [key, value] of Object.entries(options.query)) {\n if (value !== undefined && value !== null && value !== '') {\n url.searchParams.set(key, String(value));\n }\n }\n }\n\n const headers: Record<string, string> = {\n Authorization: this.authHeader(),\n 'User-Agent': `close-crm-cli/${VERSION}`,\n Accept: 'application/json',\n };\n\n if (options.body !== undefined) {\n headers['Content-Type'] = 'application/json';\n }\n\n let lastError: Error | undefined;\n const isWrite = options.method !== 'GET';\n const effectiveTimeout = isWrite ? Math.min(this.timeout, WRITE_TIMEOUT) : this.timeout;\n\n for (let attempt = 0; attempt <= this.maxRetries; attempt++) {\n try {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), effectiveTimeout);\n\n const response = await fetch(url.toString(), {\n method: options.method,\n headers,\n body: options.body !== undefined ? JSON.stringify(options.body) : undefined,\n signal: controller.signal,\n });\n\n clearTimeout(timeoutId);\n\n if (response.ok) {\n const text = await response.text();\n if (!text) return undefined as T;\n return JSON.parse(text) as T;\n }\n\n const errorBody = await response.text().catch(() => '');\n let errorMessage: string;\n try {\n const parsed = JSON.parse(errorBody);\n // Close CRM returns errors in various shapes\n errorMessage =\n parsed.error?.message ||\n parsed.error ||\n parsed.message ||\n (Array.isArray(parsed.errors) ? parsed.errors.join('; ') : '') ||\n errorBody;\n } catch {\n errorMessage = errorBody || response.statusText;\n }\n\n switch (response.status) {\n case 401:\n case 403:\n throw new AuthError(errorMessage);\n case 404:\n throw new NotFoundError(errorMessage);\n case 422:\n throw new ValidationError(errorMessage);\n case 429: {\n // Close CRM rate limit: read `rate_reset` header (Unix timestamp)\n const rateReset = response.headers.get('rate_reset');\n const retryAfter = rateReset\n ? Math.max(0, parseInt(rateReset, 10) - Math.floor(Date.now() / 1000))\n : undefined;\n const err = new RateLimitError(errorMessage, retryAfter);\n if (attempt < this.maxRetries) {\n const delay = retryAfter\n ? retryAfter * 1000\n : Math.min(1000 * Math.pow(2, attempt), 10_000);\n await sleep(delay);\n lastError = err;\n continue;\n }\n throw err;\n }\n default:\n if (response.status >= 500) {\n const err = new ServerError(errorMessage, response.status);\n if (attempt < this.maxRetries) {\n await sleep(Math.min(1000 * Math.pow(2, attempt), 10_000));\n lastError = err;\n continue;\n }\n throw err;\n }\n throw new CloseError(errorMessage, 'API_ERROR', response.status);\n }\n } catch (error) {\n if (error instanceof CloseError) throw error;\n\n const isAbort =\n error instanceof Error &&\n (error.name === 'AbortError' || String(error.message).includes('aborted'));\n\n if (isAbort) {\n lastError = new CloseError(\n `Request timed out after ${effectiveTimeout / 1000}s: ${options.method} ${options.path}`,\n 'TIMEOUT',\n );\n if (!isWrite && attempt < this.maxRetries) {\n await sleep(Math.min(1000 * Math.pow(2, attempt), 10_000));\n continue;\n }\n throw lastError;\n }\n\n if (error instanceof TypeError && String(error.message).includes('fetch')) {\n throw new CloseError(`Network error: ${error.message}`, 'NETWORK_ERROR');\n }\n\n throw error;\n }\n }\n\n throw lastError ?? new CloseError('Request failed after retries', 'MAX_RETRIES');\n }\n\n async get<T>(path: string, query?: Record<string, any>): Promise<T> {\n return this.request<T>({ method: 'GET', path, query });\n }\n\n async post<T>(path: string, body?: unknown, query?: Record<string, any>): Promise<T> {\n return this.request<T>({ method: 'POST', path, query, body });\n }\n\n async put<T>(path: string, body?: unknown): Promise<T> {\n return this.request<T>({ method: 'PUT', path, body });\n }\n\n async delete<T>(path: string, query?: Record<string, any>): Promise<T> {\n return this.request<T>({ method: 'DELETE', path, query });\n }\n\n /** Offset-based pagination using _skip/_limit + has_more */\n async *paginate<T>(options: {\n path: string;\n query?: Record<string, any>;\n limit?: number;\n }): AsyncGenerator<T[], void, undefined> {\n const limit = options.limit ?? 100;\n let skip = 0;\n\n while (true) {\n const query = { ...options.query, _limit: limit, _skip: skip };\n const response = await this.request<PaginatedResponse<T>>({\n method: 'GET',\n path: options.path,\n query,\n });\n\n if (response.data && response.data.length > 0) {\n yield response.data;\n }\n\n if (!response.has_more || !response.data?.length) {\n break;\n }\n\n skip += limit;\n }\n }\n}\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","import type { GlobalOptions } from './types.js';\nimport { formatError } from './errors.js';\n\nexport function output(data: unknown, options: GlobalOptions = {}): void {\n if (options.quiet) return;\n\n let result = data;\n\n // Select specific fields if --fields is set\n if (options.fields && typeof data === 'object' && data !== null) {\n const fields = options.fields.split(',').map((f) => f.trim());\n if (Array.isArray(data)) {\n result = data.map((item) => pickFields(item, fields));\n } else {\n const obj = data as Record<string, unknown>;\n // Unwrap Close CRM paginated responses: {data: [...], has_more: bool} → apply to each item\n if (Array.isArray(obj.data)) {\n result = (obj.data as Record<string, unknown>[]).map((item) => pickFields(item, fields));\n } else {\n result = pickFields(obj, fields);\n }\n }\n }\n\n if (options.output === 'pretty') {\n console.log(JSON.stringify(result, null, 2));\n } else {\n // Default: compact JSON for machine consumption\n console.log(JSON.stringify(result));\n }\n}\n\nexport function outputError(error: unknown, options: GlobalOptions = {}): void {\n const formatted = formatError(error);\n if (options.quiet) {\n process.exitCode = 1;\n return;\n }\n\n if (options.output === 'pretty') {\n console.error(`Error: ${formatted.message}`);\n } else {\n console.error(JSON.stringify({ error: formatted.message, code: formatted.code }));\n }\n process.exitCode = 1;\n}\n\nfunction pickFields(\n obj: Record<string, unknown>,\n fields: string[],\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n for (const field of fields) {\n if (field in obj) {\n result[field] = obj[field];\n }\n }\n return result;\n}\n","import { Command } from 'commander';\nimport { CloseClient } from '../../core/client.js';\nimport { saveConfig } from '../../core/config.js';\nimport { output, outputError } from '../../core/output.js';\nimport type { GlobalOptions } from '../../core/types.js';\n\nexport function registerLoginCommand(program: Command): void {\n program\n .command('login')\n .description('Authenticate with your Close CRM API key')\n .option('--api-key <key>', 'API key (skips interactive prompt)')\n .action(async (opts) => {\n const globalOpts = program.opts() as GlobalOptions;\n\n try {\n let apiKey = opts.apiKey || process.env.CLOSE_API_KEY;\n\n if (!apiKey) {\n if (!process.stdin.isTTY) {\n outputError(\n new Error('No API key provided. Use --api-key or set CLOSE_API_KEY'),\n globalOpts,\n );\n return;\n }\n\n console.log('Get your API key from: https://app.close.com/settings/api\\n');\n\n const [major] = process.versions.node.split('.').map(Number);\n if (major < 20) {\n outputError(\n new Error(\n 'Interactive login requires Node.js 20+. Use --api-key or set CLOSE_API_KEY instead.',\n ),\n globalOpts,\n );\n return;\n }\n const { password } = await import('@inquirer/prompts');\n apiKey = await password({\n message: 'Enter your Close API key:',\n mask: '*',\n });\n }\n\n if (!apiKey) {\n outputError(new Error('No API key provided'), globalOpts);\n return;\n }\n\n const client = new CloseClient({ apiKey });\n\n if (globalOpts.output === 'pretty' || process.stdin.isTTY) {\n console.log('Validating API key...');\n }\n\n // Validate by fetching current user info\n let meInfo: any;\n try {\n meInfo = await client.get('/me/');\n } catch {\n meInfo = null;\n }\n\n // Also try to get organization\n let orgInfo: any;\n try {\n if (meInfo?.organizations?.[0]) {\n orgInfo = await client.get(`/organization/${meInfo.organizations[0]}/`);\n }\n } catch {\n orgInfo = null;\n }\n\n await saveConfig({\n api_key: apiKey,\n organization: orgInfo\n ? { id: orgInfo.id, name: orgInfo.name }\n : undefined,\n });\n\n const result = {\n status: 'authenticated',\n user: meInfo?.email ?? 'unknown',\n organization: orgInfo?.name ?? meInfo?.organizations?.[0] ?? 'unknown',\n config_path: '~/.close/config.json',\n };\n\n if (globalOpts.output === 'pretty' || process.stdin.isTTY) {\n console.log(`\\nAuthenticated successfully!`);\n if (meInfo?.email) console.log(`User: ${meInfo.email}`);\n if (orgInfo?.name) console.log(`Organization: ${orgInfo.name}`);\n console.log('Config saved to ~/.close/config.json');\n } else {\n output(result, globalOpts);\n }\n } catch (error) {\n outputError(error, globalOpts);\n }\n });\n}\n","import { Command } from 'commander';\nimport { deleteConfig } from '../../core/config.js';\nimport { output, outputError } from '../../core/output.js';\nimport type { GlobalOptions } from '../../core/types.js';\n\nexport function registerLogoutCommand(program: Command): void {\n program\n .command('logout')\n .description('Remove stored Close CRM credentials')\n .action(async () => {\n const globalOpts = program.opts() as GlobalOptions;\n try {\n await deleteConfig();\n const result = { status: 'logged_out', message: 'Credentials removed from ~/.close/config.json' };\n if (globalOpts.output === 'pretty' || process.stdin.isTTY) {\n console.log('Logged out. Credentials removed from ~/.close/config.json');\n } else {\n output(result, globalOpts);\n }\n } catch (error) {\n outputError(error, globalOpts);\n }\n });\n}\n","import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\nimport { allCommands } from '../commands/index.js';\nimport { resolveApiKey } from '../core/auth.js';\nimport { CloseClient } from '../core/client.js';\n\nexport async function startMcpServer(): Promise<void> {\n const apiKey = await resolveApiKey();\n const client = new CloseClient({ apiKey });\n\n const server = new McpServer({\n name: 'close-crm',\n version: '0.1.0',\n });\n\n // Register every CommandDefinition as an MCP tool\n for (const cmdDef of allCommands) {\n const shape = cmdDef.inputSchema.shape;\n\n server.registerTool(\n cmdDef.name,\n {\n description: cmdDef.description,\n inputSchema: shape,\n },\n async (args: Record<string, unknown>) => {\n try {\n const result = await cmdDef.handler(args, client);\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n } catch (error: any) {\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify({\n error: error.message ?? String(error),\n code: error.code ?? 'UNKNOWN_ERROR',\n }),\n },\n ],\n isError: true,\n };\n }\n },\n );\n }\n\n const transport = new StdioServerTransport();\n await server.connect(transport);\n\n console.error('Close CRM MCP server started. Tools registered:', allCommands.length);\n}\n","import { Command } from 'commander';\nimport { startMcpServer } from '../../mcp/server.js';\n\nexport function registerMcpCommand(program: Command): void {\n program\n .command('mcp')\n .description('Start the MCP server for AI assistant integration (Claude, Cursor, VS Code, Windsurf)')\n .addHelpText(\n 'after',\n `\nMCP Configuration:\n\n For Claude Desktop / Cursor / VS Code, add to your MCP config:\n\n {\n \"mcpServers\": {\n \"close\": {\n \"command\": \"npx\",\n \"args\": [\"close-crm-cli\", \"mcp\"],\n \"env\": {\n \"CLOSE_API_KEY\": \"your-api-key\"\n }\n }\n }\n }\n\n Or if installed globally:\n\n {\n \"mcpServers\": {\n \"close\": {\n \"command\": \"close\",\n \"args\": [\"mcp\"],\n \"env\": {\n \"CLOSE_API_KEY\": \"your-api-key\"\n }\n }\n }\n }`,\n )\n .action(async () => {\n process.on('SIGINT', () => process.exit(0));\n process.on('SIGTERM', () => process.exit(0));\n\n try {\n await startMcpServer();\n } catch (error: any) {\n console.error('Failed to start MCP server:', error.message ?? error);\n process.exit(1);\n }\n });\n}\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const leadsListCommand: CommandDefinition = {\n name: 'leads_list',\n group: 'leads',\n subcommand: 'list',\n description: 'List leads. Supports filtering by query, status, and pagination.',\n examples: [\n 'close leads list',\n 'close leads list --limit 25 --query \"company:Acme\"',\n 'close leads list --status-id \"stat_abc123\"',\n 'close leads list --fields id,display_name,status_label',\n ],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Number of leads per page (1-200)'),\n _skip: z.coerce.number().min(0).default(0).describe('Number of leads to skip (offset)'),\n query: z.string().optional().describe('Search query string'),\n status_id: z.string().optional().describe('Filter by lead status ID'),\n _fields: z.string().optional().describe('Comma-separated fields to return'),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page (1-200)' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset for pagination' },\n { field: 'query', flags: '-q, --query <query>', description: 'Search query' },\n { field: 'status_id', flags: '--status-id <id>', description: 'Filter by status ID' },\n { field: '_fields', flags: '--response-fields <fields>', description: 'Fields to return (comma-separated)' },\n ],\n },\n endpoint: { method: 'GET', path: '/lead/' },\n fieldMappings: {\n _limit: 'query',\n _skip: 'query',\n query: 'query',\n status_id: 'query',\n _fields: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(leadsListCommand, input, client),\n};\n","import type { CommandDefinition, CloseClient } from './types.js';\n\n/**\n * Builds an HTTP request from a CommandDefinition and its input,\n * then executes it using the client.\n */\nexport async function executeCommand(\n cmdDef: CommandDefinition,\n input: Record<string, any>,\n client: CloseClient,\n): Promise<unknown> {\n let path = cmdDef.endpoint.path;\n const query: Record<string, any> = {};\n const body: Record<string, any> = {};\n\n for (const [field, location] of Object.entries(cmdDef.fieldMappings)) {\n const value = input[field];\n if (value === undefined) continue;\n\n switch (location) {\n case 'path':\n path = path.replace(`{${field}}`, encodeURIComponent(String(value)));\n break;\n case 'query':\n query[field] = value;\n break;\n case 'body':\n body[field] = value;\n break;\n }\n }\n\n const hasBody = Object.keys(body).length > 0;\n const hasQuery = Object.keys(query).length > 0;\n\n return client.request({\n method: cmdDef.endpoint.method,\n path,\n query: hasQuery ? query : undefined,\n body: hasBody ? body : undefined,\n });\n}\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const leadsGetCommand: CommandDefinition = {\n name: 'leads_get',\n group: 'leads',\n subcommand: 'get',\n description: 'Get a lead by ID.',\n examples: [\n 'close leads get lead_abc123',\n 'close leads get lead_abc123 --pretty',\n ],\n inputSchema: z.object({\n id: z.string().describe('Lead ID (e.g. lead_abc123)'),\n _fields: z.string().optional().describe('Comma-separated fields to return'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: '_fields', flags: '--response-fields <fields>', description: 'Fields to return' },\n ],\n },\n endpoint: { method: 'GET', path: '/lead/{id}/' },\n fieldMappings: {\n id: 'path',\n _fields: 'query',\n },\n handler: (input, client) => executeCommand(leadsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const leadsCreateCommand: CommandDefinition = {\n name: 'leads_create',\n group: 'leads',\n subcommand: 'create',\n description: 'Create a new lead. Optionally include contacts and opportunities.',\n examples: [\n 'close leads create --name \"Acme Corp\"',\n 'close leads create --name \"Acme Corp\" --url \"https://acme.com\" --description \"Enterprise prospect\"',\n 'close leads create --name \"Acme Corp\" --contacts \\'[{\"name\":\"Jane Doe\",\"emails\":[{\"email\":\"jane@acme.com\",\"type\":\"office\"}]}]\\'',\n 'close leads create --name \"Acme Corp\" --status-id \"stat_abc123\"',\n ],\n inputSchema: z.object({\n name: z.string().describe('Lead/company name'),\n url: z.string().optional().describe('Company website URL'),\n description: z.string().optional().describe('Lead description/notes'),\n status_id: z.string().optional().describe('Lead status ID'),\n addresses: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('JSON array of address objects'),\n contacts: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('JSON array of contact objects to create with the lead'),\n opportunities: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('JSON array of opportunity objects'),\n custom: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.record(z.any()).optional(),\n ).describe('Custom fields as JSON object (keys are custom field IDs)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Lead/company name (required)' },\n { field: 'url', flags: '--url <url>', description: 'Company website URL' },\n { field: 'description', flags: '--description <text>', description: 'Lead description' },\n { field: 'status_id', flags: '--status-id <id>', description: 'Lead status ID' },\n { field: 'addresses', flags: '--addresses <json>', description: 'Addresses (JSON array)' },\n { field: 'contacts', flags: '--contacts <json>', description: 'Contacts to create (JSON array)' },\n { field: 'opportunities', flags: '--opportunities <json>', description: 'Opportunities (JSON array)' },\n { field: 'custom', flags: '--custom <json>', description: 'Custom fields (JSON object)' },\n ],\n },\n endpoint: { method: 'POST', path: '/lead/' },\n fieldMappings: {\n name: 'body',\n url: 'body',\n description: 'body',\n status_id: 'body',\n addresses: 'body',\n contacts: 'body',\n opportunities: 'body',\n custom: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name };\n const fields = ['url', 'description', 'status_id', 'addresses', 'contacts', 'opportunities', 'custom'] as const;\n for (const field of fields) {\n if (input[field] !== undefined) body[field] = input[field];\n }\n return client.post('/lead/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const leadsUpdateCommand: CommandDefinition = {\n name: 'leads_update',\n group: 'leads',\n subcommand: 'update',\n description: 'Update a lead by ID.',\n examples: [\n 'close leads update lead_abc123 --name \"New Name\"',\n 'close leads update lead_abc123 --status-id \"stat_xyz\"',\n 'close leads update lead_abc123 --description \"Updated notes\" --url \"https://newsite.com\"',\n ],\n inputSchema: z.object({\n id: z.string().describe('Lead ID'),\n name: z.string().optional().describe('Lead/company name'),\n url: z.string().optional().describe('Company website URL'),\n description: z.string().optional().describe('Lead description'),\n status_id: z.string().optional().describe('Lead status ID'),\n addresses: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Addresses (JSON array)'),\n custom: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.record(z.any()).optional(),\n ).describe('Custom fields (JSON object)'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Lead/company name' },\n { field: 'url', flags: '--url <url>', description: 'Company website URL' },\n { field: 'description', flags: '--description <text>', description: 'Lead description' },\n { field: 'status_id', flags: '--status-id <id>', description: 'Lead status ID' },\n { field: 'addresses', flags: '--addresses <json>', description: 'Addresses (JSON array)' },\n { field: 'custom', flags: '--custom <json>', description: 'Custom fields (JSON object)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/lead/{id}/' },\n fieldMappings: {\n id: 'path',\n name: 'body',\n url: 'body',\n description: 'body',\n status_id: 'body',\n addresses: 'body',\n custom: 'body',\n },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/lead/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const leadsDeleteCommand: CommandDefinition = {\n name: 'leads_delete',\n group: 'leads',\n subcommand: 'delete',\n description: 'Delete a lead by ID. This action is irreversible.',\n examples: [\n 'close leads delete lead_abc123',\n ],\n inputSchema: z.object({\n id: z.string().describe('Lead ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/lead/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(leadsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const leadsMergeCommand: CommandDefinition = {\n name: 'leads_merge',\n group: 'leads',\n subcommand: 'merge',\n description: 'Merge two leads. The source lead is merged into the destination lead and then deleted.',\n examples: [\n 'close leads merge --source lead_src123 --destination lead_dst456',\n ],\n inputSchema: z.object({\n source: z.string().describe('ID of the lead to merge FROM (will be deleted)'),\n destination: z.string().describe('ID of the lead to merge INTO (will be kept)'),\n }),\n cliMappings: {\n options: [\n { field: 'source', flags: '--source <id>', description: 'Source lead ID (will be deleted)' },\n { field: 'destination', flags: '--destination <id>', description: 'Destination lead ID (will be kept)' },\n ],\n },\n endpoint: { method: 'POST', path: '/lead/merge/' },\n fieldMappings: {\n source: 'body',\n destination: 'body',\n },\n handler: async (input, client) => {\n return client.post('/lead/merge/', { source: input.source, destination: input.destination });\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const leadsSearchCommand: CommandDefinition = {\n name: 'leads_search',\n group: 'leads',\n subcommand: 'search',\n description: 'Advanced search for leads using Close\\'s query DSL (POST /data/search/).',\n examples: [\n 'close leads search --query \\'{\"type\":\"and\",\"queries\":[{\"type\":\"field\",\"field\":{\"type\":\"regular\",\"field_name\":\"display_name\"},\"negate\":false,\"condition\":{\"type\":\"text\",\"mode\":\"contains\",\"value\":\"Acme\"}}]}\\'',\n 'close leads search --query \\'{\"type\":\"and\",\"queries\":[]}\\' --limit 50',\n ],\n inputSchema: z.object({\n query: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.any(),\n ).describe('Advanced search query object (JSON)'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Results per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n sort: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Sort array (JSON)'),\n _fields: z.string().optional().describe('Fields to return'),\n }),\n cliMappings: {\n options: [\n { field: 'query', flags: '-q, --query <json>', description: 'Search query (JSON object)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Results per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: 'sort', flags: '--sort <json>', description: 'Sort array (JSON)' },\n { field: '_fields', flags: '--response-fields <fields>', description: 'Fields to return' },\n ],\n },\n endpoint: { method: 'POST', path: '/data/search/' },\n fieldMappings: {\n query: 'body',\n _limit: 'body',\n _skip: 'body',\n sort: 'body',\n _fields: 'query',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = {\n query: input.query,\n _limit: input._limit,\n _skip: input._skip,\n };\n if (input.sort) body.sort = input.sort;\n return client.post('/data/search/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const contactsListCommand: CommandDefinition = {\n name: 'contacts_list',\n group: 'contacts',\n subcommand: 'list',\n description: 'List contacts, optionally filtered by lead.',\n examples: [\n 'close contacts list',\n 'close contacts list --lead-id lead_abc123',\n 'close contacts list --limit 50',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter contacts by lead ID'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Items per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n _fields: z.string().optional().describe('Fields to return'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_fields', flags: '--response-fields <fields>', description: 'Fields to return' },\n ],\n },\n endpoint: { method: 'GET', path: '/contact/' },\n fieldMappings: {\n lead_id: 'query',\n _limit: 'query',\n _skip: 'query',\n _fields: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(contactsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const contactsGetCommand: CommandDefinition = {\n name: 'contacts_get',\n group: 'contacts',\n subcommand: 'get',\n description: 'Get a contact by ID.',\n examples: ['close contacts get cont_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Contact ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'GET', path: '/contact/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(contactsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const contactsCreateCommand: CommandDefinition = {\n name: 'contacts_create',\n group: 'contacts',\n subcommand: 'create',\n description: 'Create a new contact on a lead.',\n examples: [\n 'close contacts create --lead-id lead_abc123 --name \"Jane Doe\"',\n 'close contacts create --lead-id lead_abc123 --name \"Jane Doe\" --title \"VP of Sales\" --emails \\'[{\"email\":\"jane@acme.com\",\"type\":\"office\"}]\\'',\n 'close contacts create --lead-id lead_abc123 --name \"Bob\" --phones \\'[{\"phone\":\"+14155551234\",\"type\":\"mobile\"}]\\'',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID to attach this contact to'),\n name: z.string().optional().describe('Contact full name'),\n title: z.string().optional().describe('Job title'),\n emails: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Email addresses (JSON array with email and type fields)'),\n phones: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Phone numbers (JSON array with phone and type fields)'),\n urls: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('URLs (JSON array)'),\n custom: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.record(z.any()).optional(),\n ).describe('Custom fields (JSON object)'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'name', flags: '-n, --name <name>', description: 'Contact full name' },\n { field: 'title', flags: '--title <title>', description: 'Job title' },\n { field: 'emails', flags: '--emails <json>', description: 'Email addresses (JSON array)' },\n { field: 'phones', flags: '--phones <json>', description: 'Phone numbers (JSON array)' },\n { field: 'urls', flags: '--urls <json>', description: 'URLs (JSON array)' },\n { field: 'custom', flags: '--custom <json>', description: 'Custom fields (JSON object)' },\n ],\n },\n endpoint: { method: 'POST', path: '/contact/' },\n fieldMappings: {\n lead_id: 'body',\n name: 'body',\n title: 'body',\n emails: 'body',\n phones: 'body',\n urls: 'body',\n custom: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id };\n const optionals = ['name', 'title', 'emails', 'phones', 'urls', 'custom'] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/contact/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const contactsUpdateCommand: CommandDefinition = {\n name: 'contacts_update',\n group: 'contacts',\n subcommand: 'update',\n description: 'Update a contact by ID.',\n examples: [\n 'close contacts update cont_abc123 --name \"Updated Name\" --title \"CTO\"',\n ],\n inputSchema: z.object({\n id: z.string().describe('Contact ID'),\n name: z.string().optional().describe('Contact full name'),\n title: z.string().optional().describe('Job title'),\n emails: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Email addresses (JSON array)'),\n phones: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Phone numbers (JSON array)'),\n urls: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('URLs (JSON array)'),\n custom: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.record(z.any()).optional(),\n ).describe('Custom fields (JSON object)'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Contact full name' },\n { field: 'title', flags: '--title <title>', description: 'Job title' },\n { field: 'emails', flags: '--emails <json>', description: 'Email addresses (JSON array)' },\n { field: 'phones', flags: '--phones <json>', description: 'Phone numbers (JSON array)' },\n { field: 'urls', flags: '--urls <json>', description: 'URLs (JSON array)' },\n { field: 'custom', flags: '--custom <json>', description: 'Custom fields (JSON object)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/contact/{id}/' },\n fieldMappings: {\n id: 'path',\n name: 'body',\n title: 'body',\n emails: 'body',\n phones: 'body',\n urls: 'body',\n custom: 'body',\n },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/contact/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const contactsDeleteCommand: CommandDefinition = {\n name: 'contacts_delete',\n group: 'contacts',\n subcommand: 'delete',\n description: 'Delete a contact by ID.',\n examples: ['close contacts delete cont_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Contact ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/contact/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(contactsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const opportunitiesListCommand: CommandDefinition = {\n name: 'opportunities_list',\n group: 'opportunities',\n subcommand: 'list',\n description: 'List opportunities. Filter by lead, pipeline, status, or assignee.',\n examples: [\n 'close opportunities list',\n 'close opportunities list --lead-id lead_abc123',\n 'close opportunities list --pipeline-id pipe_abc123',\n 'close opportunities list --status-id \"stat_won\"',\n 'close opportunities list --user-id \"user_abc123\"',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter by lead ID'),\n pipeline_id: z.string().optional().describe('Filter by pipeline ID'),\n status_id: z.string().optional().describe('Filter by opportunity status ID'),\n user_id: z.string().optional().describe('Filter by assigned user ID'),\n date_created__gt: z.string().optional().describe('Created after ISO8601 date'),\n date_created__lt: z.string().optional().describe('Created before ISO8601 date'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Items per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n _fields: z.string().optional().describe('Fields to return'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'pipeline_id', flags: '--pipeline-id <id>', description: 'Filter by pipeline ID' },\n { field: 'status_id', flags: '--status-id <id>', description: 'Filter by status ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by assigned user ID' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_fields', flags: '--response-fields <fields>', description: 'Fields to return' },\n ],\n },\n endpoint: { method: 'GET', path: '/opportunity/' },\n fieldMappings: {\n lead_id: 'query',\n pipeline_id: 'query',\n status_id: 'query',\n user_id: 'query',\n date_created__gt: 'query',\n date_created__lt: 'query',\n _limit: 'query',\n _skip: 'query',\n _fields: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(opportunitiesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const opportunitiesGetCommand: CommandDefinition = {\n name: 'opportunities_get',\n group: 'opportunities',\n subcommand: 'get',\n description: 'Get an opportunity by ID.',\n examples: ['close opportunities get oppo_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Opportunity ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'GET', path: '/opportunity/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(opportunitiesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const opportunitiesCreateCommand: CommandDefinition = {\n name: 'opportunities_create',\n group: 'opportunities',\n subcommand: 'create',\n description: 'Create a new opportunity on a lead.',\n examples: [\n 'close opportunities create --lead-id lead_abc123 --note \"Big deal\"',\n 'close opportunities create --lead-id lead_abc123 --value 50000 --value-period \"monthly\"',\n 'close opportunities create --lead-id lead_abc123 --status-id \"stat_won\" --confidence 90',\n 'close opportunities create --lead-id lead_abc123 --pipeline-id pipe_abc --close-date \"2025-06-30\"',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID to attach this opportunity to'),\n note: z.string().optional().describe('Note / description'),\n confidence: z.coerce.number().min(0).max(100).optional().describe('Win probability (0-100)'),\n value: z.coerce.number().optional().describe('Deal value (in cents if currency is set)'),\n value_period: z.enum(['one_time', 'monthly', 'annual']).optional().describe('Value period'),\n value_currency: z.string().optional().describe('ISO 4217 currency code (e.g. USD)'),\n status_id: z.string().optional().describe('Opportunity status ID'),\n pipeline_id: z.string().optional().describe('Pipeline ID'),\n close_date: z.string().optional().describe('Expected close date (YYYY-MM-DD)'),\n user_id: z.string().optional().describe('Assigned user ID'),\n contact_id: z.string().optional().describe('Primary contact ID'),\n custom: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.record(z.any()).optional(),\n ).describe('Custom fields (JSON object)'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'note', flags: '--note <text>', description: 'Note/description' },\n { field: 'confidence', flags: '--confidence <0-100>', description: 'Win probability (0-100)' },\n { field: 'value', flags: '--value <number>', description: 'Deal value' },\n { field: 'value_period', flags: '--value-period <period>', description: 'one_time|monthly|annual' },\n { field: 'value_currency', flags: '--value-currency <code>', description: 'Currency code (USD)' },\n { field: 'status_id', flags: '--status-id <id>', description: 'Opportunity status ID' },\n { field: 'pipeline_id', flags: '--pipeline-id <id>', description: 'Pipeline ID' },\n { field: 'close_date', flags: '--close-date <date>', description: 'Expected close date (YYYY-MM-DD)' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Assigned user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Primary contact ID' },\n { field: 'custom', flags: '--custom <json>', description: 'Custom fields (JSON object)' },\n ],\n },\n endpoint: { method: 'POST', path: '/opportunity/' },\n fieldMappings: {\n lead_id: 'body', note: 'body', confidence: 'body', value: 'body',\n value_period: 'body', value_currency: 'body', status_id: 'body',\n pipeline_id: 'body', close_date: 'body', user_id: 'body',\n contact_id: 'body', custom: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id };\n const optionals = [\n 'note', 'confidence', 'value', 'value_period', 'value_currency',\n 'status_id', 'pipeline_id', 'close_date', 'user_id', 'contact_id', 'custom',\n ] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/opportunity/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const opportunitiesUpdateCommand: CommandDefinition = {\n name: 'opportunities_update',\n group: 'opportunities',\n subcommand: 'update',\n description: 'Update an opportunity by ID.',\n examples: [\n 'close opportunities update oppo_abc123 --status-id \"stat_won\"',\n 'close opportunities update oppo_abc123 --value 75000 --confidence 85',\n ],\n inputSchema: z.object({\n id: z.string().describe('Opportunity ID'),\n note: z.string().optional(),\n confidence: z.coerce.number().min(0).max(100).optional(),\n value: z.coerce.number().optional(),\n value_period: z.enum(['one_time', 'monthly', 'annual']).optional(),\n value_currency: z.string().optional(),\n status_id: z.string().optional(),\n pipeline_id: z.string().optional(),\n close_date: z.string().optional(),\n user_id: z.string().optional(),\n contact_id: z.string().optional(),\n custom: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.record(z.any()).optional(),\n ),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'note', flags: '--note <text>', description: 'Note/description' },\n { field: 'confidence', flags: '--confidence <0-100>', description: 'Win probability' },\n { field: 'value', flags: '--value <number>', description: 'Deal value' },\n { field: 'value_period', flags: '--value-period <period>', description: 'one_time|monthly|annual' },\n { field: 'value_currency', flags: '--value-currency <code>', description: 'Currency code' },\n { field: 'status_id', flags: '--status-id <id>', description: 'Opportunity status ID' },\n { field: 'pipeline_id', flags: '--pipeline-id <id>', description: 'Pipeline ID' },\n { field: 'close_date', flags: '--close-date <date>', description: 'Expected close date' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Assigned user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Primary contact ID' },\n { field: 'custom', flags: '--custom <json>', description: 'Custom fields (JSON object)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/opportunity/{id}/' },\n fieldMappings: {\n id: 'path', note: 'body', confidence: 'body', value: 'body',\n value_period: 'body', value_currency: 'body', status_id: 'body',\n pipeline_id: 'body', close_date: 'body', user_id: 'body',\n contact_id: 'body', custom: 'body',\n },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/opportunity/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const opportunitiesDeleteCommand: CommandDefinition = {\n name: 'opportunities_delete',\n group: 'opportunities',\n subcommand: 'delete',\n description: 'Delete an opportunity by ID.',\n examples: ['close opportunities delete oppo_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Opportunity ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/opportunity/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(opportunitiesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const tasksListCommand: CommandDefinition = {\n name: 'tasks_list',\n group: 'tasks',\n subcommand: 'list',\n description: 'List tasks. Filter by lead, assignee, type, and completion status.',\n examples: [\n 'close tasks list',\n 'close tasks list --lead-id lead_abc123',\n 'close tasks list --is-complete false --assigned-to \"user_abc123\"',\n 'close tasks list --type call',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter by lead ID'),\n assigned_to: z.string().optional().describe('Filter by assigned user ID'),\n is_complete: z.preprocess(\n (v) => {\n if (v === 'true') return true;\n if (v === 'false') return false;\n return v;\n },\n z.boolean().optional(),\n ).describe('Filter by completion status'),\n type: z.enum(['call', 'email', 'lead', 'incoming_email', 'email_followup', 'missed_call', 'answered_detached_call', 'voicemail', 'opportunity_due', 'incoming_sms']).optional().describe('Task type'),\n date_created__gt: z.string().optional().describe('Created after ISO8601 date'),\n date_created__lt: z.string().optional().describe('Created before ISO8601 date'),\n due_date__gt: z.string().optional().describe('Due after date'),\n due_date__lt: z.string().optional().describe('Due before date'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Items per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n _order_by: z.string().optional().describe('Order by field (e.g. due_date, -due_date)'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'assigned_to', flags: '--assigned-to <user-id>', description: 'Filter by assigned user ID' },\n { field: 'is_complete', flags: '--is-complete <bool>', description: 'Filter by completion (true/false)' },\n { field: 'type', flags: '--type <type>', description: 'Task type filter' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: 'due_date__gt', flags: '--due-after <date>', description: 'Due after date' },\n { field: 'due_date__lt', flags: '--due-before <date>', description: 'Due before date' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/task/' },\n fieldMappings: {\n lead_id: 'query', assigned_to: 'query', is_complete: 'query',\n type: 'query', date_created__gt: 'query', date_created__lt: 'query',\n due_date__gt: 'query', due_date__lt: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(tasksListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const tasksGetCommand: CommandDefinition = {\n name: 'tasks_get',\n group: 'tasks',\n subcommand: 'get',\n description: 'Get a task by ID.',\n examples: ['close tasks get task_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Task ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'GET', path: '/task/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(tasksGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const tasksCreateCommand: CommandDefinition = {\n name: 'tasks_create',\n group: 'tasks',\n subcommand: 'create',\n description: 'Create a new task on a lead.',\n examples: [\n 'close tasks create --lead-id lead_abc123 --text \"Follow up on demo\"',\n 'close tasks create --lead-id lead_abc123 --text \"Call back\" --type call --due-date \"2025-04-01T09:00:00\"',\n 'close tasks create --lead-id lead_abc123 --text \"Send contract\" --assigned-to \"user_abc123\"',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID'),\n text: z.string().describe('Task description'),\n type: z.enum(['call', 'email', 'lead']).optional().describe('Task type (default: lead)'),\n due_date: z.string().optional().describe('Due date/time (ISO8601)'),\n assigned_to: z.string().optional().describe('User ID to assign to'),\n is_complete: z.boolean().optional().describe('Mark as complete on creation'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'text', flags: '--text <text>', description: 'Task description (required)' },\n { field: 'type', flags: '--type <type>', description: 'call|email|lead' },\n { field: 'due_date', flags: '--due-date <datetime>', description: 'Due date (ISO8601)' },\n { field: 'assigned_to', flags: '--assigned-to <user-id>', description: 'Assigned user ID' },\n { field: 'is_complete', flags: '--is-complete', description: 'Mark as complete' },\n ],\n },\n endpoint: { method: 'POST', path: '/task/' },\n fieldMappings: {\n lead_id: 'body', text: 'body', type: 'body',\n due_date: 'body', assigned_to: 'body', is_complete: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id, text: input.text };\n const optionals = ['type', 'due_date', 'assigned_to', 'is_complete'] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/task/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const tasksUpdateCommand: CommandDefinition = {\n name: 'tasks_update',\n group: 'tasks',\n subcommand: 'update',\n description: 'Update a task by ID.',\n examples: [\n 'close tasks update task_abc123 --is-complete true',\n 'close tasks update task_abc123 --text \"Updated description\" --due-date \"2025-04-15T10:00:00\"',\n ],\n inputSchema: z.object({\n id: z.string().describe('Task ID'),\n text: z.string().optional().describe('Task description'),\n type: z.enum(['call', 'email', 'lead']).optional().describe('Task type'),\n due_date: z.string().optional().describe('Due date (ISO8601)'),\n assigned_to: z.string().optional().describe('Assigned user ID'),\n is_complete: z.preprocess(\n (v) => {\n if (v === 'true') return true;\n if (v === 'false') return false;\n return v;\n },\n z.boolean().optional(),\n ).describe('Completion status'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'text', flags: '--text <text>', description: 'Task description' },\n { field: 'type', flags: '--type <type>', description: 'call|email|lead' },\n { field: 'due_date', flags: '--due-date <datetime>', description: 'Due date (ISO8601)' },\n { field: 'assigned_to', flags: '--assigned-to <user-id>', description: 'Assigned user ID' },\n { field: 'is_complete', flags: '--is-complete <bool>', description: 'true/false' },\n ],\n },\n endpoint: { method: 'PUT', path: '/task/{id}/' },\n fieldMappings: {\n id: 'path', text: 'body', type: 'body',\n due_date: 'body', assigned_to: 'body', is_complete: 'body',\n },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/task/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const tasksDeleteCommand: CommandDefinition = {\n name: 'tasks_delete',\n group: 'tasks',\n subcommand: 'delete',\n description: 'Delete a task by ID.',\n examples: ['close tasks delete task_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Task ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/task/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(tasksDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const tasksBulkUpdateCommand: CommandDefinition = {\n name: 'tasks_bulk_update',\n group: 'tasks',\n subcommand: 'bulk-update',\n description: 'Bulk update tasks (e.g. mark multiple as complete). Provide a query and field updates.',\n examples: [\n 'close tasks bulk-update --lead-id lead_abc123 --is-complete true',\n 'close tasks bulk-update --assigned-to \"user_abc123\" --is-complete true',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Scope bulk update to this lead'),\n assigned_to: z.string().optional().describe('Scope to tasks assigned to this user'),\n is_complete: z.preprocess(\n (v) => {\n if (v === 'true') return true;\n if (v === 'false') return false;\n return v;\n },\n z.boolean().optional(),\n ).describe('New completion status to set'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Scope to lead ID' },\n { field: 'assigned_to', flags: '--assigned-to <user-id>', description: 'Scope to assigned user' },\n { field: 'is_complete', flags: '--is-complete <bool>', description: 'Set completion status' },\n ],\n },\n endpoint: { method: 'PUT', path: '/task/' },\n fieldMappings: {\n lead_id: 'query',\n assigned_to: 'query',\n is_complete: 'body',\n },\n handler: async (input, client) => {\n const query: Record<string, any> = {};\n if (input.lead_id) query.lead_id = input.lead_id;\n if (input.assigned_to) query.assigned_to = input.assigned_to;\n const body: Record<string, any> = {};\n if (input.is_complete !== undefined) body.is_complete = input.is_complete;\n return client.request({ method: 'PUT', path: '/task/', query, body });\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const activitiesListCommand: CommandDefinition = {\n name: 'activities_list',\n group: 'activities',\n subcommand: 'list',\n description: 'List all activity types in a unified stream. Filter by lead, user, type, and date.',\n examples: [\n 'close activities list --lead-id lead_abc123',\n 'close activities list --type Call',\n 'close activities list --type Email --date-gt \"2025-01-01\"',\n 'close activities list --user-id user_abc123 --limit 50',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter by lead ID'),\n user_id: z.string().optional().describe('Filter by user ID'),\n contact_id: z.string().optional().describe('Filter by contact ID'),\n _type: z.string().optional().describe('Activity type: Call, Email, EmailThread, SMS, Note, Meeting, Custom, etc.'),\n date_created__gt: z.string().optional().describe('Created after ISO8601'),\n date_created__lt: z.string().optional().describe('Created before ISO8601'),\n activity_at__gt: z.string().optional().describe('Activity at after ISO8601'),\n activity_at__lt: z.string().optional().describe('Activity at before ISO8601'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Items per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n _order_by: z.string().optional().describe('Order by (e.g. -activity_at)'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Filter by contact ID' },\n { field: '_type', flags: '--type <type>', description: 'Activity type (Call, Email, Note, SMS, Meeting...)' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: 'activity_at__gt', flags: '--activity-after <date>', description: 'Activity at after (ISO8601)' },\n { field: 'activity_at__lt', flags: '--activity-before <date>', description: 'Activity at before (ISO8601)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/activity/' },\n fieldMappings: {\n lead_id: 'query', user_id: 'query', contact_id: 'query',\n _type: 'query', date_created__gt: 'query', date_created__lt: 'query',\n activity_at__gt: 'query', activity_at__lt: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(activitiesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const callsListCommand: CommandDefinition = {\n name: 'calls_list',\n group: 'calls',\n subcommand: 'list',\n description: 'List call activities.',\n examples: [\n 'close calls list --lead-id lead_abc123',\n 'close calls list --user-id user_abc123 --limit 50',\n 'close calls list --direction inbound',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter by lead ID'),\n user_id: z.string().optional().describe('Filter by user ID'),\n contact_id: z.string().optional().describe('Filter by contact ID'),\n direction: z.enum(['inbound', 'outbound']).optional().describe('Call direction'),\n date_created__gt: z.string().optional().describe('Created after ISO8601'),\n date_created__lt: z.string().optional().describe('Created before ISO8601'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Items per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n _order_by: z.string().optional().describe('Order by field'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Filter by contact ID' },\n { field: 'direction', flags: '--direction <dir>', description: 'inbound|outbound' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/activity/call/' },\n fieldMappings: {\n lead_id: 'query', user_id: 'query', contact_id: 'query',\n direction: 'query', date_created__gt: 'query', date_created__lt: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(callsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const callsGetCommand: CommandDefinition = {\n name: 'calls_get',\n group: 'calls',\n subcommand: 'get',\n description: 'Get a call activity by ID.',\n examples: ['close calls get acti_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Call activity ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'GET', path: '/activity/call/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(callsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const callsCreateCommand: CommandDefinition = {\n name: 'calls_create',\n group: 'calls',\n subcommand: 'create',\n description: 'Log a call activity on a lead.',\n examples: [\n 'close calls create --lead-id lead_abc123 --direction outbound --duration 300 --note \"Discussed pricing\"',\n 'close calls create --lead-id lead_abc123 --direction inbound --phone \"+14155551234\" --contact-id cont_abc123',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID'),\n direction: z.enum(['inbound', 'outbound']).describe('Call direction'),\n duration: z.coerce.number().optional().describe('Call duration in seconds'),\n note: z.string().optional().describe('Call note'),\n phone: z.string().optional().describe('Phone number dialed'),\n contact_id: z.string().optional().describe('Contact ID'),\n user_id: z.string().optional().describe('User who made the call'),\n disposition: z.string().optional().describe('Call disposition/outcome'),\n activity_at: z.string().optional().describe('When the call happened (ISO8601)'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'direction', flags: '--direction <dir>', description: 'inbound|outbound (required)' },\n { field: 'duration', flags: '--duration <seconds>', description: 'Duration in seconds' },\n { field: 'note', flags: '--note <text>', description: 'Call note' },\n { field: 'phone', flags: '--phone <number>', description: 'Phone number' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Contact ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'User ID' },\n { field: 'disposition', flags: '--disposition <text>', description: 'Call disposition' },\n { field: 'activity_at', flags: '--activity-at <datetime>', description: 'Call time (ISO8601)' },\n ],\n },\n endpoint: { method: 'POST', path: '/activity/call/' },\n fieldMappings: {\n lead_id: 'body', direction: 'body', duration: 'body', note: 'body',\n phone: 'body', contact_id: 'body', user_id: 'body',\n disposition: 'body', activity_at: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id, direction: input.direction };\n const optionals = ['duration', 'note', 'phone', 'contact_id', 'user_id', 'disposition', 'activity_at'] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/activity/call/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const callsUpdateCommand: CommandDefinition = {\n name: 'calls_update',\n group: 'calls',\n subcommand: 'update',\n description: 'Update a call activity by ID.',\n examples: [\n 'close calls update acti_abc123 --note \"Updated call notes\" --disposition \"interested\"',\n ],\n inputSchema: z.object({\n id: z.string().describe('Call activity ID'),\n note: z.string().optional(),\n duration: z.coerce.number().optional(),\n disposition: z.string().optional(),\n activity_at: z.string().optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'note', flags: '--note <text>', description: 'Call note' },\n { field: 'duration', flags: '--duration <seconds>', description: 'Duration in seconds' },\n { field: 'disposition', flags: '--disposition <text>', description: 'Call disposition' },\n { field: 'activity_at', flags: '--activity-at <datetime>', description: 'Call time (ISO8601)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/activity/call/{id}/' },\n fieldMappings: { id: 'path', note: 'body', duration: 'body', disposition: 'body', activity_at: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/activity/call/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const callsDeleteCommand: CommandDefinition = {\n name: 'calls_delete',\n group: 'calls',\n subcommand: 'delete',\n description: 'Delete a call activity by ID.',\n examples: ['close calls delete acti_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Call activity ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/activity/call/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(callsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const notesListCommand: CommandDefinition = {\n name: 'notes_list',\n group: 'notes',\n subcommand: 'list',\n description: 'List note activities.',\n examples: [\n 'close notes list --lead-id lead_abc123',\n 'close notes list --user-id user_abc123 --limit 50',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter by lead ID'),\n user_id: z.string().optional().describe('Filter by user ID'),\n date_created__gt: z.string().optional().describe('Created after ISO8601'),\n date_created__lt: z.string().optional().describe('Created before ISO8601'),\n _limit: z.coerce.number().min(1).max(200).default(25).describe('Items per page'),\n _skip: z.coerce.number().min(0).default(0).describe('Offset'),\n _order_by: z.string().optional().describe('Order by field'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/activity/note/' },\n fieldMappings: {\n lead_id: 'query', user_id: 'query',\n date_created__gt: 'query', date_created__lt: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(notesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const notesGetCommand: CommandDefinition = {\n name: 'notes_get',\n group: 'notes',\n subcommand: 'get',\n description: 'Get a note by ID.',\n examples: ['close notes get acti_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Note activity ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'GET', path: '/activity/note/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(notesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const notesCreateCommand: CommandDefinition = {\n name: 'notes_create',\n group: 'notes',\n subcommand: 'create',\n description: 'Create a note on a lead.',\n examples: [\n 'close notes create --lead-id lead_abc123 --note \"Spoke with CEO, very interested\"',\n 'close notes create --lead-id lead_abc123 --note \"Meeting scheduled for next week\" --contact-id cont_abc123',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID'),\n note: z.string().describe('Note content'),\n contact_id: z.string().optional().describe('Related contact ID'),\n user_id: z.string().optional().describe('User creating the note'),\n activity_at: z.string().optional().describe('When this activity happened (ISO8601)'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'note', flags: '--note <text>', description: 'Note content (required)' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Related contact ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'User ID' },\n { field: 'activity_at', flags: '--activity-at <datetime>', description: 'Activity time (ISO8601)' },\n ],\n },\n endpoint: { method: 'POST', path: '/activity/note/' },\n fieldMappings: {\n lead_id: 'body', note: 'body', contact_id: 'body',\n user_id: 'body', activity_at: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id, note: input.note };\n const optionals = ['contact_id', 'user_id', 'activity_at'] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/activity/note/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const notesUpdateCommand: CommandDefinition = {\n name: 'notes_update',\n group: 'notes',\n subcommand: 'update',\n description: 'Update a note by ID.',\n examples: ['close notes update acti_abc123 --note \"Updated note content\"'],\n inputSchema: z.object({\n id: z.string().describe('Note activity ID'),\n note: z.string().optional().describe('Updated note content'),\n activity_at: z.string().optional().describe('Activity time (ISO8601)'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'note', flags: '--note <text>', description: 'Note content' },\n { field: 'activity_at', flags: '--activity-at <datetime>', description: 'Activity time (ISO8601)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/activity/note/{id}/' },\n fieldMappings: { id: 'path', note: 'body', activity_at: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/activity/note/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const notesDeleteCommand: CommandDefinition = {\n name: 'notes_delete',\n group: 'notes',\n subcommand: 'delete',\n description: 'Delete a note by ID.',\n examples: ['close notes delete acti_abc123'],\n inputSchema: z.object({\n id: z.string().describe('Note activity ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/activity/note/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(notesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailsListCommand: CommandDefinition = {\n name: 'emails_list',\n group: 'emails',\n subcommand: 'list',\n description: 'List email activities.',\n examples: [\n 'close emails list --lead-id lead_abc123',\n 'close emails list --status inbox --limit 25',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional().describe('Filter by lead ID'),\n user_id: z.string().optional().describe('Filter by user ID'),\n contact_id: z.string().optional().describe('Filter by contact ID'),\n status: z.enum(['inbox', 'draft', 'scheduled', 'outbox', 'sent']).optional().describe('Email status'),\n date_created__gt: z.string().optional(),\n date_created__lt: z.string().optional(),\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n _order_by: z.string().optional(),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Filter by contact ID' },\n { field: 'status', flags: '--status <status>', description: 'inbox|draft|scheduled|outbox|sent' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/activity/email/' },\n fieldMappings: {\n lead_id: 'query', user_id: 'query', contact_id: 'query',\n status: 'query', date_created__gt: 'query', date_created__lt: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(emailsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailsGetCommand: CommandDefinition = {\n name: 'emails_get',\n group: 'emails',\n subcommand: 'get',\n description: 'Get an email activity by ID.',\n examples: ['close emails get acti_abc123'],\n inputSchema: z.object({ id: z.string().describe('Email activity ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/activity/email/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(emailsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const emailsCreateCommand: CommandDefinition = {\n name: 'emails_create',\n group: 'emails',\n subcommand: 'create',\n description: 'Log or send an email activity on a lead.',\n examples: [\n 'close emails create --lead-id lead_abc123 --to \\'[{\"email\":\"jane@acme.com\",\"name\":\"Jane Doe\"}]\\' --subject \"Following up\" --body-html \"<div>Hello Jane</div>\"',\n 'close emails create --lead-id lead_abc123 --status draft --subject \"Draft\" --body-html \"<div>Hi</div>\"',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID'),\n to: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('To recipients (JSON array with email/name)'),\n cc: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('CC recipients (JSON array)'),\n bcc: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('BCC recipients (JSON array)'),\n subject: z.string().optional().describe('Email subject'),\n body_html: z.string().optional().describe('Email body (HTML)'),\n body_text: z.string().optional().describe('Email body (plain text)'),\n status: z.enum(['inbox', 'draft', 'scheduled', 'outbox', 'sent']).optional().describe('Email status'),\n sender: z.string().optional().describe('From email address'),\n contact_id: z.string().optional().describe('Contact ID'),\n template_id: z.string().optional().describe('Email template ID'),\n send_as: z.string().optional().describe('Send as user ID'),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'to', flags: '--to <json>', description: 'To recipients (JSON array)' },\n { field: 'cc', flags: '--cc <json>', description: 'CC recipients (JSON array)' },\n { field: 'bcc', flags: '--bcc <json>', description: 'BCC recipients (JSON array)' },\n { field: 'subject', flags: '--subject <text>', description: 'Email subject' },\n { field: 'body_html', flags: '--body-html <html>', description: 'Email body (HTML)' },\n { field: 'body_text', flags: '--body-text <text>', description: 'Email body (plain text)' },\n { field: 'status', flags: '--status <status>', description: 'inbox|draft|scheduled|outbox|sent' },\n { field: 'sender', flags: '--sender <email>', description: 'From email address' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Contact ID' },\n { field: 'template_id', flags: '--template-id <id>', description: 'Email template ID' },\n { field: 'send_as', flags: '--send-as <user-id>', description: 'Send as user ID' },\n ],\n },\n endpoint: { method: 'POST', path: '/activity/email/' },\n fieldMappings: {\n lead_id: 'body', to: 'body', cc: 'body', bcc: 'body',\n subject: 'body', body_html: 'body', body_text: 'body',\n status: 'body', sender: 'body', contact_id: 'body',\n template_id: 'body', send_as: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id };\n const optionals = [\n 'to', 'cc', 'bcc', 'subject', 'body_html', 'body_text',\n 'status', 'sender', 'contact_id', 'template_id', 'send_as',\n ] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/activity/email/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const emailsUpdateCommand: CommandDefinition = {\n name: 'emails_update',\n group: 'emails',\n subcommand: 'update',\n description: 'Update an email activity by ID.',\n examples: ['close emails update acti_abc123 --status sent'],\n inputSchema: z.object({\n id: z.string().describe('Email activity ID'),\n subject: z.string().optional(),\n body_html: z.string().optional(),\n body_text: z.string().optional(),\n status: z.enum(['inbox', 'draft', 'scheduled', 'outbox', 'sent']).optional(),\n to: z.preprocess((v) => (typeof v === 'string' ? JSON.parse(v) : v), z.array(z.any()).optional()),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'subject', flags: '--subject <text>', description: 'Email subject' },\n { field: 'body_html', flags: '--body-html <html>', description: 'Email body (HTML)' },\n { field: 'body_text', flags: '--body-text <text>', description: 'Email body (plain text)' },\n { field: 'status', flags: '--status <status>', description: 'inbox|draft|scheduled|outbox|sent' },\n { field: 'to', flags: '--to <json>', description: 'To recipients (JSON array)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/activity/email/{id}/' },\n fieldMappings: { id: 'path', subject: 'body', body_html: 'body', body_text: 'body', status: 'body', to: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/activity/email/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailsDeleteCommand: CommandDefinition = {\n name: 'emails_delete',\n group: 'emails',\n subcommand: 'delete',\n description: 'Delete an email activity by ID.',\n examples: ['close emails delete acti_abc123'],\n inputSchema: z.object({ id: z.string().describe('Email activity ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/activity/email/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(emailsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smsListCommand: CommandDefinition = {\n name: 'sms_list',\n group: 'sms',\n subcommand: 'list',\n description: 'List SMS activities.',\n examples: [\n 'close sms list --lead-id lead_abc123',\n 'close sms list --direction inbound --limit 50',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional(),\n user_id: z.string().optional(),\n contact_id: z.string().optional(),\n direction: z.enum(['inbound', 'outbound']).optional(),\n status: z.enum(['inbox', 'draft', 'scheduled', 'outbox', 'sent']).optional(),\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n _order_by: z.string().optional(),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Filter by contact ID' },\n { field: 'direction', flags: '--direction <dir>', description: 'inbound|outbound' },\n { field: 'status', flags: '--status <status>', description: 'inbox|draft|scheduled|outbox|sent' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/activity/sms/' },\n fieldMappings: {\n lead_id: 'query', user_id: 'query', contact_id: 'query',\n direction: 'query', status: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(smsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smsGetCommand: CommandDefinition = {\n name: 'sms_get',\n group: 'sms',\n subcommand: 'get',\n description: 'Get an SMS activity by ID.',\n examples: ['close sms get acti_abc123'],\n inputSchema: z.object({ id: z.string().describe('SMS activity ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/activity/sms/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(smsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const smsCreateCommand: CommandDefinition = {\n name: 'sms_create',\n group: 'sms',\n subcommand: 'create',\n description: 'Send or log an SMS activity on a lead.',\n examples: [\n 'close sms create --lead-id lead_abc123 --to \"+14155551234\" --text \"Hi, following up on our call!\"',\n ],\n inputSchema: z.object({\n lead_id: z.string().describe('Lead ID'),\n to: z.string().optional().describe('Recipient phone number'),\n from_: z.string().optional().describe('Sender phone number (use --from)'),\n text: z.string().optional().describe('SMS message text'),\n status: z.enum(['inbox', 'draft', 'scheduled', 'outbox', 'sent']).optional(),\n contact_id: z.string().optional(),\n activity_at: z.string().optional(),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID (required)' },\n { field: 'to', flags: '--to <phone>', description: 'Recipient phone number' },\n { field: 'from_', flags: '--from <phone>', description: 'Sender phone number' },\n { field: 'text', flags: '--text <message>', description: 'SMS message text' },\n { field: 'status', flags: '--status <status>', description: 'inbox|draft|scheduled|outbox|sent' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Contact ID' },\n { field: 'activity_at', flags: '--activity-at <datetime>', description: 'Activity time (ISO8601)' },\n ],\n },\n endpoint: { method: 'POST', path: '/activity/sms/' },\n fieldMappings: {\n lead_id: 'body', to: 'body', from_: 'body', text: 'body',\n status: 'body', contact_id: 'body', activity_at: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = { lead_id: input.lead_id };\n if (input.to) body.to = input.to;\n if (input.from_) body.from = input.from_;\n if (input.text) body.text = input.text;\n const optionals = ['status', 'contact_id', 'activity_at'] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/activity/sms/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smsDeleteCommand: CommandDefinition = {\n name: 'sms_delete',\n group: 'sms',\n subcommand: 'delete',\n description: 'Delete an SMS activity by ID.',\n examples: ['close sms delete acti_abc123'],\n inputSchema: z.object({ id: z.string().describe('SMS activity ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/activity/sms/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(smsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const meetingsListCommand: CommandDefinition = {\n name: 'meetings_list',\n group: 'meetings',\n subcommand: 'list',\n description: 'List meeting activities.',\n examples: [\n 'close meetings list --lead-id lead_abc123',\n 'close meetings list --user-id user_abc123',\n ],\n inputSchema: z.object({\n lead_id: z.string().optional(),\n user_id: z.string().optional(),\n contact_id: z.string().optional(),\n date_created__gt: z.string().optional(),\n date_created__lt: z.string().optional(),\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n _order_by: z.string().optional(),\n }),\n cliMappings: {\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Filter by lead ID' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Filter by contact ID' },\n { field: 'date_created__gt', flags: '--created-after <date>', description: 'Created after (ISO8601)' },\n { field: 'date_created__lt', flags: '--created-before <date>', description: 'Created before (ISO8601)' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n { field: '_order_by', flags: '--order-by <field>', description: 'Order by field' },\n ],\n },\n endpoint: { method: 'GET', path: '/activity/meeting/' },\n fieldMappings: {\n lead_id: 'query', user_id: 'query', contact_id: 'query',\n date_created__gt: 'query', date_created__lt: 'query',\n _limit: 'query', _skip: 'query', _order_by: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(meetingsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const meetingsGetCommand: CommandDefinition = {\n name: 'meetings_get',\n group: 'meetings',\n subcommand: 'get',\n description: 'Get a meeting activity by ID.',\n examples: ['close meetings get acti_abc123'],\n inputSchema: z.object({ id: z.string().describe('Meeting activity ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/activity/meeting/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(meetingsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const meetingsUpdateCommand: CommandDefinition = {\n name: 'meetings_update',\n group: 'meetings',\n subcommand: 'update',\n description: 'Update a meeting activity by ID.',\n examples: ['close meetings update acti_abc123 --title \"Product Demo\"'],\n inputSchema: z.object({\n id: z.string().describe('Meeting activity ID'),\n title: z.string().optional(),\n note: z.string().optional(),\n starts_at: z.string().optional().describe('Start time (ISO8601)'),\n ends_at: z.string().optional().describe('End time (ISO8601)'),\n contact_id: z.string().optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'title', flags: '--title <text>', description: 'Meeting title' },\n { field: 'note', flags: '--note <text>', description: 'Meeting notes' },\n { field: 'starts_at', flags: '--starts-at <datetime>', description: 'Start time (ISO8601)' },\n { field: 'ends_at', flags: '--ends-at <datetime>', description: 'End time (ISO8601)' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Contact ID' },\n ],\n },\n endpoint: { method: 'PUT', path: '/activity/meeting/{id}/' },\n fieldMappings: { id: 'path', title: 'body', note: 'body', starts_at: 'body', ends_at: 'body', contact_id: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/activity/meeting/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const meetingsDeleteCommand: CommandDefinition = {\n name: 'meetings_delete',\n group: 'meetings',\n subcommand: 'delete',\n description: 'Delete a meeting activity by ID.',\n examples: ['close meetings delete acti_abc123'],\n inputSchema: z.object({ id: z.string().describe('Meeting activity ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/activity/meeting/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(meetingsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const usersMeCommand: CommandDefinition = {\n name: 'users_me',\n group: 'users',\n subcommand: 'me',\n description: 'Get the currently authenticated user\\'s profile.',\n examples: ['close users me'],\n inputSchema: z.object({}),\n cliMappings: {},\n endpoint: { method: 'GET', path: '/me/' },\n fieldMappings: {},\n handler: (input, client) => executeCommand(usersMeCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const usersListCommand: CommandDefinition = {\n name: 'users_list',\n group: 'users',\n subcommand: 'list',\n description: 'List all users in the organization.',\n examples: ['close users list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/user/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(usersListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const usersGetCommand: CommandDefinition = {\n name: 'users_get',\n group: 'users',\n subcommand: 'get',\n description: 'Get a user by ID.',\n examples: ['close users get user_abc123'],\n inputSchema: z.object({ id: z.string().describe('User ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/user/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(usersGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const usersAvailabilityCommand: CommandDefinition = {\n name: 'users_availability',\n group: 'users',\n subcommand: 'availability',\n description: 'Get availability status of all users (for dialer/call routing).',\n examples: ['close users availability'],\n inputSchema: z.object({}),\n cliMappings: {},\n endpoint: { method: 'GET', path: '/user/availability/' },\n fieldMappings: {},\n handler: (input, client) => executeCommand(usersAvailabilityCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const pipelinesListCommand: CommandDefinition = {\n name: 'pipelines_list',\n group: 'pipelines',\n subcommand: 'list',\n description: 'List all pipelines.',\n examples: ['close pipelines list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/pipeline/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(pipelinesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const pipelinesGetCommand: CommandDefinition = {\n name: 'pipelines_get',\n group: 'pipelines',\n subcommand: 'get',\n description: 'Get a pipeline by ID.',\n examples: ['close pipelines get pipe_abc123'],\n inputSchema: z.object({ id: z.string().describe('Pipeline ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/pipeline/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(pipelinesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const pipelinesCreateCommand: CommandDefinition = {\n name: 'pipelines_create',\n group: 'pipelines',\n subcommand: 'create',\n description: 'Create a new pipeline.',\n examples: [\n 'close pipelines create --name \"Enterprise Sales\"',\n 'close pipelines create --name \"SMB Pipeline\" --statuses \\'[{\"label\":\"Qualified\",\"type\":\"active\"},{\"label\":\"Closed Won\",\"type\":\"won\"}]\\'',\n ],\n inputSchema: z.object({\n name: z.string().describe('Pipeline name'),\n statuses: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Opportunity statuses for this pipeline (JSON array)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Pipeline name (required)' },\n { field: 'statuses', flags: '--statuses <json>', description: 'Statuses (JSON array)' },\n ],\n },\n endpoint: { method: 'POST', path: '/pipeline/' },\n fieldMappings: { name: 'body', statuses: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name };\n if (input.statuses) body.statuses = input.statuses;\n return client.post('/pipeline/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const pipelinesUpdateCommand: CommandDefinition = {\n name: 'pipelines_update',\n group: 'pipelines',\n subcommand: 'update',\n description: 'Update a pipeline by ID.',\n examples: ['close pipelines update pipe_abc123 --name \"Renamed Pipeline\"'],\n inputSchema: z.object({\n id: z.string().describe('Pipeline ID'),\n name: z.string().optional(),\n statuses: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Pipeline name' },\n { field: 'statuses', flags: '--statuses <json>', description: 'Statuses (JSON array)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/pipeline/{id}/' },\n fieldMappings: { id: 'path', name: 'body', statuses: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/pipeline/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const pipelinesDeleteCommand: CommandDefinition = {\n name: 'pipelines_delete',\n group: 'pipelines',\n subcommand: 'delete',\n description: 'Delete a pipeline by ID.',\n examples: ['close pipelines delete pipe_abc123'],\n inputSchema: z.object({ id: z.string().describe('Pipeline ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/pipeline/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(pipelinesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const leadStatusesListCommand: CommandDefinition = {\n name: 'lead_statuses_list',\n group: 'lead-statuses',\n subcommand: 'list',\n description: 'List all lead statuses.',\n examples: ['close lead-statuses list'],\n inputSchema: z.object({}),\n cliMappings: {},\n endpoint: { method: 'GET', path: '/status/lead/' },\n fieldMappings: {},\n handler: (input, client) => executeCommand(leadStatusesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const leadStatusesGetCommand: CommandDefinition = {\n name: 'lead_statuses_get',\n group: 'lead-statuses',\n subcommand: 'get',\n description: 'Get a lead status by ID.',\n examples: ['close lead-statuses get stat_abc123'],\n inputSchema: z.object({ id: z.string().describe('Lead status ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/status/lead/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(leadStatusesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const leadStatusesCreateCommand: CommandDefinition = {\n name: 'lead_statuses_create',\n group: 'lead-statuses',\n subcommand: 'create',\n description: 'Create a new lead status.',\n examples: [\n 'close lead-statuses create --label \"Potential\" --type active',\n 'close lead-statuses create --label \"Closed Won\" --type won',\n ],\n inputSchema: z.object({\n label: z.string().describe('Status label'),\n type: z.enum(['active', 'won', 'lost']).optional().describe('Status type'),\n }),\n cliMappings: {\n options: [\n { field: 'label', flags: '--label <label>', description: 'Status label (required)' },\n { field: 'type', flags: '--type <type>', description: 'active|won|lost' },\n ],\n },\n endpoint: { method: 'POST', path: '/status/lead/' },\n fieldMappings: { label: 'body', type: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { label: input.label };\n if (input.type) body.type = input.type;\n return client.post('/status/lead/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const leadStatusesUpdateCommand: CommandDefinition = {\n name: 'lead_statuses_update',\n group: 'lead-statuses',\n subcommand: 'update',\n description: 'Update a lead status by ID.',\n examples: ['close lead-statuses update stat_abc123 --label \"New Label\"'],\n inputSchema: z.object({\n id: z.string(),\n label: z.string().optional(),\n type: z.enum(['active', 'won', 'lost']).optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'label', flags: '--label <label>', description: 'Status label' },\n { field: 'type', flags: '--type <type>', description: 'active|won|lost' },\n ],\n },\n endpoint: { method: 'PUT', path: '/status/lead/{id}/' },\n fieldMappings: { id: 'path', label: 'body', type: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/status/lead/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const leadStatusesDeleteCommand: CommandDefinition = {\n name: 'lead_statuses_delete',\n group: 'lead-statuses',\n subcommand: 'delete',\n description: 'Delete a lead status by ID.',\n examples: ['close lead-statuses delete stat_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/status/lead/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(leadStatusesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const opportunityStatusesListCommand: CommandDefinition = {\n name: 'opportunity_statuses_list',\n group: 'opportunity-statuses',\n subcommand: 'list',\n description: 'List all opportunity statuses.',\n examples: ['close opportunity-statuses list'],\n inputSchema: z.object({}),\n cliMappings: {},\n endpoint: { method: 'GET', path: '/status/opportunity/' },\n fieldMappings: {},\n handler: (input, client) => executeCommand(opportunityStatusesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const opportunityStatusesGetCommand: CommandDefinition = {\n name: 'opportunity_statuses_get',\n group: 'opportunity-statuses',\n subcommand: 'get',\n description: 'Get an opportunity status by ID.',\n examples: ['close opportunity-statuses get stat_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/status/opportunity/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(opportunityStatusesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const opportunityStatusesCreateCommand: CommandDefinition = {\n name: 'opportunity_statuses_create',\n group: 'opportunity-statuses',\n subcommand: 'create',\n description: 'Create a new opportunity status.',\n examples: [\n 'close opportunity-statuses create --label \"Demo Scheduled\" --pipeline-id pipe_abc123',\n 'close opportunity-statuses create --label \"Won\" --type won --pipeline-id pipe_abc123',\n ],\n inputSchema: z.object({\n label: z.string().describe('Status label'),\n pipeline_id: z.string().describe('Pipeline ID'),\n type: z.enum(['active', 'won', 'lost']).optional().describe('Status type'),\n }),\n cliMappings: {\n options: [\n { field: 'label', flags: '--label <label>', description: 'Status label (required)' },\n { field: 'pipeline_id', flags: '--pipeline-id <id>', description: 'Pipeline ID (required)' },\n { field: 'type', flags: '--type <type>', description: 'active|won|lost' },\n ],\n },\n endpoint: { method: 'POST', path: '/status/opportunity/' },\n fieldMappings: { label: 'body', pipeline_id: 'body', type: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { label: input.label, pipeline_id: input.pipeline_id };\n if (input.type) body.type = input.type;\n return client.post('/status/opportunity/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const opportunityStatusesUpdateCommand: CommandDefinition = {\n name: 'opportunity_statuses_update',\n group: 'opportunity-statuses',\n subcommand: 'update',\n description: 'Update an opportunity status by ID.',\n examples: ['close opportunity-statuses update stat_abc123 --label \"New Label\"'],\n inputSchema: z.object({\n id: z.string(),\n label: z.string().optional(),\n type: z.enum(['active', 'won', 'lost']).optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'label', flags: '--label <label>', description: 'Status label' },\n { field: 'type', flags: '--type <type>', description: 'active|won|lost' },\n ],\n },\n endpoint: { method: 'PUT', path: '/status/opportunity/{id}/' },\n fieldMappings: { id: 'path', label: 'body', type: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/status/opportunity/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const opportunityStatusesDeleteCommand: CommandDefinition = {\n name: 'opportunity_statuses_delete',\n group: 'opportunity-statuses',\n subcommand: 'delete',\n description: 'Delete an opportunity status by ID.',\n examples: ['close opportunity-statuses delete stat_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/status/opportunity/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(opportunityStatusesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\ntype ObjectType = 'lead' | 'contact' | 'opportunity' | 'activity' | 'shared';\n\n/** Factory: generate list/get/create/update/delete commands for a custom field object type */\nfunction makeCustomFieldCommands(objectType: ObjectType): CommandDefinition[] {\n const path = `/custom_fields/${objectType}/`;\n const prefix = `custom_fields_${objectType}`;\n const group = 'custom-fields';\n\n const listCmd: CommandDefinition = {\n name: `${prefix}_list`,\n group,\n subcommand: `list-${objectType}`,\n description: `List custom fields for ${objectType}.`,\n examples: [`close custom-fields list-${objectType}`],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(100),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(listCmd, input, client),\n };\n\n const getCmd: CommandDefinition = {\n name: `${prefix}_get`,\n group,\n subcommand: `get-${objectType}`,\n description: `Get a ${objectType} custom field by ID.`,\n examples: [`close custom-fields get-${objectType} cf_abc123`],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: `${path}{id}/` },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(getCmd, input, client),\n };\n\n const createCmd: CommandDefinition = {\n name: `${prefix}_create`,\n group,\n subcommand: `create-${objectType}`,\n description: `Create a new custom field for ${objectType}.`,\n examples: [\n `close custom-fields create-${objectType} --name \"Budget\" --type number`,\n `close custom-fields create-${objectType} --name \"Industry\" --type choices --choices '[\"SaaS\",\"Finance\",\"Healthcare\"]'`,\n ],\n inputSchema: z.object({\n name: z.string().describe('Field name'),\n type: z.string().describe('Field type: text, number, date, datetime, choices, multi_select, url, email, phone, user'),\n description: z.string().optional(),\n required: z.boolean().optional(),\n choices: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ).describe('Choices for choices/multi_select fields (JSON array)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '--name <name>', description: 'Field name (required)' },\n { field: 'type', flags: '--type <type>', description: 'Field type (required)' },\n { field: 'description', flags: '--description <text>', description: 'Description' },\n { field: 'required', flags: '--required', description: 'Mark as required' },\n { field: 'choices', flags: '--choices <json>', description: 'Choices (JSON array)' },\n ],\n },\n endpoint: { method: 'POST', path },\n fieldMappings: { name: 'body', type: 'body', description: 'body', required: 'body', choices: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name, type: input.type };\n if (input.description) body.description = input.description;\n if (input.required !== undefined) body.required = input.required;\n if (input.choices) body.choices = input.choices;\n return client.post(path, body);\n },\n };\n\n const updateCmd: CommandDefinition = {\n name: `${prefix}_update`,\n group,\n subcommand: `update-${objectType}`,\n description: `Update a ${objectType} custom field by ID.`,\n examples: [`close custom-fields update-${objectType} cf_abc123 --name \"New Name\"`],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n description: z.string().optional(),\n required: z.boolean().optional(),\n choices: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '--name <name>', description: 'Field name' },\n { field: 'description', flags: '--description <text>', description: 'Description' },\n { field: 'required', flags: '--required <bool>', description: 'true/false' },\n { field: 'choices', flags: '--choices <json>', description: 'Choices (JSON array)' },\n ],\n },\n endpoint: { method: 'PUT', path: `${path}{id}/` },\n fieldMappings: { id: 'path', name: 'body', description: 'body', required: 'body', choices: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`${path}${encodeURIComponent(id)}/`, body);\n },\n };\n\n const deleteCmd: CommandDefinition = {\n name: `${prefix}_delete`,\n group,\n subcommand: `delete-${objectType}`,\n description: `Delete a ${objectType} custom field by ID.`,\n examples: [`close custom-fields delete-${objectType} cf_abc123`],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: `${path}{id}/` },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(deleteCmd, input, client),\n };\n\n return [listCmd, getCmd, createCmd, updateCmd, deleteCmd];\n}\n\nexport const customFieldCommands: CommandDefinition[] = [\n ...makeCustomFieldCommands('lead'),\n ...makeCustomFieldCommands('contact'),\n ...makeCustomFieldCommands('opportunity'),\n ...makeCustomFieldCommands('activity'),\n ...makeCustomFieldCommands('shared'),\n];\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const webhooksListCommand: CommandDefinition = {\n name: 'webhooks_list',\n group: 'webhooks',\n subcommand: 'list',\n description: 'List all webhook subscriptions.',\n examples: ['close webhooks list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/webhook/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(webhooksListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const webhooksGetCommand: CommandDefinition = {\n name: 'webhooks_get',\n group: 'webhooks',\n subcommand: 'get',\n description: 'Get a webhook subscription by ID.',\n examples: ['close webhooks get hook_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/webhook/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(webhooksGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const webhooksCreateCommand: CommandDefinition = {\n name: 'webhooks_create',\n group: 'webhooks',\n subcommand: 'create',\n description: 'Create a new webhook subscription. Events: created.lead, updated.lead, deleted.lead, created.contact, updated.opportunity, created.call, etc.',\n examples: [\n 'close webhooks create --url \"https://your-server.com/hook\" --events \\'[\"created.lead\",\"updated.lead\"]\\'',\n 'close webhooks create --url \"https://your-server.com/hook\" --events \\'[\"created.opportunity\",\"updated.opportunity\"]\\'',\n ],\n inputSchema: z.object({\n url: z.string().describe('HTTPS endpoint URL to receive webhook POSTs'),\n events: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()),\n ).describe('List of event types to subscribe to (JSON array)'),\n verify_ssl: z.boolean().optional().describe('Verify SSL certificate (default: true)'),\n signature_key: z.string().optional().describe('Secret for HMAC signature verification'),\n }),\n cliMappings: {\n options: [\n { field: 'url', flags: '--url <url>', description: 'Webhook endpoint URL (required)' },\n { field: 'events', flags: '--events <json>', description: 'Event types (JSON array, required)' },\n { field: 'verify_ssl', flags: '--verify-ssl', description: 'Verify SSL certificate' },\n { field: 'signature_key', flags: '--signature-key <key>', description: 'HMAC signature secret' },\n ],\n },\n endpoint: { method: 'POST', path: '/webhook/' },\n fieldMappings: { url: 'body', events: 'body', verify_ssl: 'body', signature_key: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { url: input.url, events: input.events };\n if (input.verify_ssl !== undefined) body.verify_ssl = input.verify_ssl;\n if (input.signature_key) body.signature_key = input.signature_key;\n return client.post('/webhook/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const webhooksUpdateCommand: CommandDefinition = {\n name: 'webhooks_update',\n group: 'webhooks',\n subcommand: 'update',\n description: 'Update a webhook subscription by ID.',\n examples: ['close webhooks update hook_abc123 --events \\'[\"created.lead\",\"updated.opportunity\"]\\''],\n inputSchema: z.object({\n id: z.string(),\n url: z.string().optional(),\n events: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ),\n verify_ssl: z.boolean().optional(),\n signature_key: z.string().optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'url', flags: '--url <url>', description: 'Webhook endpoint URL' },\n { field: 'events', flags: '--events <json>', description: 'Event types (JSON array)' },\n { field: 'verify_ssl', flags: '--verify-ssl <bool>', description: 'Verify SSL certificate' },\n { field: 'signature_key', flags: '--signature-key <key>', description: 'HMAC signature secret' },\n ],\n },\n endpoint: { method: 'PUT', path: '/webhook/{id}/' },\n fieldMappings: { id: 'path', url: 'body', events: 'body', verify_ssl: 'body', signature_key: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/webhook/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const webhooksDeleteCommand: CommandDefinition = {\n name: 'webhooks_delete',\n group: 'webhooks',\n subcommand: 'delete',\n description: 'Delete a webhook subscription by ID.',\n examples: ['close webhooks delete hook_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/webhook/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(webhooksDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const sequencesListCommand: CommandDefinition = {\n name: 'sequences_list',\n group: 'sequences',\n subcommand: 'list',\n description: 'List all sequences (automated outreach sequences).',\n examples: ['close sequences list', 'close sequences list --limit 50'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/sequence/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(sequencesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const sequencesGetCommand: CommandDefinition = {\n name: 'sequences_get',\n group: 'sequences',\n subcommand: 'get',\n description: 'Get a sequence by ID.',\n examples: ['close sequences get seq_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/sequence/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(sequencesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const sequencesCreateCommand: CommandDefinition = {\n name: 'sequences_create',\n group: 'sequences',\n subcommand: 'create',\n description: 'Create a new sequence.',\n examples: [\n 'close sequences create --name \"Outbound Follow-up\"',\n 'close sequences create --name \"Demo Follow-up\" --steps \\'[{\"type\":\"email\",\"delay\":0,\"subject\":\"Following up\",\"body_html\":\"<div>Hi</div>\"}]\\'',\n ],\n inputSchema: z.object({\n name: z.string().describe('Sequence name'),\n steps: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Sequence steps (JSON array)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Sequence name (required)' },\n { field: 'steps', flags: '--steps <json>', description: 'Steps (JSON array)' },\n ],\n },\n endpoint: { method: 'POST', path: '/sequence/' },\n fieldMappings: { name: 'body', steps: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name };\n if (input.steps) body.steps = input.steps;\n return client.post('/sequence/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const sequencesUpdateCommand: CommandDefinition = {\n name: 'sequences_update',\n group: 'sequences',\n subcommand: 'update',\n description: 'Update a sequence by ID.',\n examples: ['close sequences update seq_abc123 --name \"Updated Sequence\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n steps: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Sequence name' },\n { field: 'steps', flags: '--steps <json>', description: 'Steps (JSON array)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/sequence/{id}/' },\n fieldMappings: { id: 'path', name: 'body', steps: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/sequence/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const sequencesDeleteCommand: CommandDefinition = {\n name: 'sequences_delete',\n group: 'sequences',\n subcommand: 'delete',\n description: 'Delete a sequence by ID.',\n examples: ['close sequences delete seq_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/sequence/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(sequencesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const sequencesSubscribeCommand: CommandDefinition = {\n name: 'sequences_subscribe',\n group: 'sequences',\n subcommand: 'subscribe',\n description: 'Subscribe a contact to a sequence.',\n examples: [\n 'close sequences subscribe --sequence-id seq_abc123 --contact-id cont_abc123',\n 'close sequences subscribe --sequence-id seq_abc123 --contact-id cont_abc123 --sender-account-id acc_abc123',\n ],\n inputSchema: z.object({\n sequence_id: z.string().describe('Sequence ID'),\n contact_id: z.string().describe('Contact ID to subscribe'),\n sender_account_id: z.string().optional().describe('Sending email account ID'),\n sender_email: z.string().optional().describe('Sending email address'),\n }),\n cliMappings: {\n options: [\n { field: 'sequence_id', flags: '--sequence-id <id>', description: 'Sequence ID (required)' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Contact ID (required)' },\n { field: 'sender_account_id', flags: '--sender-account-id <id>', description: 'Sending account ID' },\n { field: 'sender_email', flags: '--sender-email <email>', description: 'Sending email address' },\n ],\n },\n endpoint: { method: 'POST', path: '/sequence_subscription/' },\n fieldMappings: {\n sequence_id: 'body', contact_id: 'body',\n sender_account_id: 'body', sender_email: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = {\n sequence_id: input.sequence_id,\n contact_id: input.contact_id,\n };\n if (input.sender_account_id) body.sender_account_id = input.sender_account_id;\n if (input.sender_email) body.sender_email = input.sender_email;\n return client.post('/sequence_subscription/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const sequencesListSubscriptionsCommand: CommandDefinition = {\n name: 'sequences_list_subscriptions',\n group: 'sequences',\n subcommand: 'list-subscriptions',\n description: 'List sequence subscriptions. Filter by contact, sequence, or status.',\n examples: [\n 'close sequences list-subscriptions --sequence-id seq_abc123',\n 'close sequences list-subscriptions --contact-id cont_abc123',\n 'close sequences list-subscriptions --status active',\n ],\n inputSchema: z.object({\n contact_id: z.string().optional(),\n sequence_id: z.string().optional(),\n status: z.enum(['active', 'paused', 'finished', 'cancelled']).optional(),\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Filter by contact ID' },\n { field: 'sequence_id', flags: '--sequence-id <id>', description: 'Filter by sequence ID' },\n { field: 'status', flags: '--status <status>', description: 'active|paused|finished|cancelled' },\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/sequence_subscription/' },\n fieldMappings: {\n contact_id: 'query', sequence_id: 'query',\n status: 'query', _limit: 'query', _skip: 'query',\n },\n paginated: true,\n handler: (input, client) => executeCommand(sequencesListSubscriptionsCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailTemplatesListCommand: CommandDefinition = {\n name: 'email_templates_list',\n group: 'email-templates',\n subcommand: 'list',\n description: 'List all email templates.',\n examples: ['close email-templates list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/email_template/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(emailTemplatesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailTemplatesGetCommand: CommandDefinition = {\n name: 'email_templates_get',\n group: 'email-templates',\n subcommand: 'get',\n description: 'Get an email template by ID.',\n examples: ['close email-templates get tmpl_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/email_template/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(emailTemplatesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const emailTemplatesCreateCommand: CommandDefinition = {\n name: 'email_templates_create',\n group: 'email-templates',\n subcommand: 'create',\n description: 'Create a new email template.',\n examples: [\n 'close email-templates create --name \"Follow-up\" --subject \"Following up on our call\" --body-html \"<div>Hi {{first_name}},</div>\"',\n ],\n inputSchema: z.object({\n name: z.string().describe('Template name'),\n subject: z.string().optional().describe('Email subject'),\n body_html: z.string().optional().describe('Email body (HTML)'),\n body_text: z.string().optional().describe('Email body (plain text)'),\n is_shared: z.boolean().optional().describe('Share with team'),\n attachments: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Attachments (JSON array)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Template name (required)' },\n { field: 'subject', flags: '--subject <subject>', description: 'Email subject' },\n { field: 'body_html', flags: '--body-html <html>', description: 'Email body (HTML)' },\n { field: 'body_text', flags: '--body-text <text>', description: 'Email body (plain text)' },\n { field: 'is_shared', flags: '--is-shared', description: 'Share with team' },\n { field: 'attachments', flags: '--attachments <json>', description: 'Attachments (JSON array)' },\n ],\n },\n endpoint: { method: 'POST', path: '/email_template/' },\n fieldMappings: { name: 'body', subject: 'body', body_html: 'body', body_text: 'body', is_shared: 'body', attachments: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name };\n const optionals = ['subject', 'body_html', 'body_text', 'is_shared', 'attachments'] as const;\n for (const f of optionals) {\n if (input[f] !== undefined) body[f] = input[f];\n }\n return client.post('/email_template/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const emailTemplatesUpdateCommand: CommandDefinition = {\n name: 'email_templates_update',\n group: 'email-templates',\n subcommand: 'update',\n description: 'Update an email template by ID.',\n examples: ['close email-templates update tmpl_abc123 --name \"Updated Template\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n subject: z.string().optional(),\n body_html: z.string().optional(),\n body_text: z.string().optional(),\n is_shared: z.boolean().optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Template name' },\n { field: 'subject', flags: '--subject <subject>', description: 'Email subject' },\n { field: 'body_html', flags: '--body-html <html>', description: 'Email body (HTML)' },\n { field: 'body_text', flags: '--body-text <text>', description: 'Email body (plain text)' },\n { field: 'is_shared', flags: '--is-shared <bool>', description: 'true/false' },\n ],\n },\n endpoint: { method: 'PUT', path: '/email_template/{id}/' },\n fieldMappings: { id: 'path', name: 'body', subject: 'body', body_html: 'body', body_text: 'body', is_shared: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/email_template/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailTemplatesDeleteCommand: CommandDefinition = {\n name: 'email_templates_delete',\n group: 'email-templates',\n subcommand: 'delete',\n description: 'Delete an email template by ID.',\n examples: ['close email-templates delete tmpl_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/email_template/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(emailTemplatesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const emailTemplatesRenderCommand: CommandDefinition = {\n name: 'email_templates_render',\n group: 'email-templates',\n subcommand: 'render',\n description: 'Render an email template with substituted variables for a lead/contact.',\n examples: [\n 'close email-templates render tmpl_abc123 --lead-id lead_abc123',\n 'close email-templates render tmpl_abc123 --lead-id lead_abc123 --contact-id cont_abc123',\n ],\n inputSchema: z.object({\n id: z.string().describe('Template ID'),\n lead_id: z.string().optional().describe('Lead ID for variable substitution'),\n contact_id: z.string().optional().describe('Contact ID for variable substitution'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'lead_id', flags: '--lead-id <id>', description: 'Lead ID for variable substitution' },\n { field: 'contact_id', flags: '--contact-id <id>', description: 'Contact ID for variable substitution' },\n ],\n },\n endpoint: { method: 'GET', path: '/email_template/{id}/render/' },\n fieldMappings: { id: 'path', lead_id: 'query', contact_id: 'query' },\n handler: (input, client) => executeCommand(emailTemplatesRenderCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smsTemplatesListCommand: CommandDefinition = {\n name: 'sms_templates_list',\n group: 'sms-templates',\n subcommand: 'list',\n description: 'List all SMS templates.',\n examples: ['close sms-templates list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/sms_template/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(smsTemplatesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smsTemplatesGetCommand: CommandDefinition = {\n name: 'sms_templates_get',\n group: 'sms-templates',\n subcommand: 'get',\n description: 'Get an SMS template by ID.',\n examples: ['close sms-templates get tmpl_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/sms_template/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(smsTemplatesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const smsTemplatesCreateCommand: CommandDefinition = {\n name: 'sms_templates_create',\n group: 'sms-templates',\n subcommand: 'create',\n description: 'Create a new SMS template.',\n examples: ['close sms-templates create --name \"Follow-up SMS\" --body \"Hi {{first_name}}, just checking in!\"'],\n inputSchema: z.object({\n name: z.string().describe('Template name'),\n body: z.string().describe('SMS message body'),\n is_shared: z.boolean().optional().describe('Share with team'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Template name (required)' },\n { field: 'body', flags: '--body <text>', description: 'SMS body (required)' },\n { field: 'is_shared', flags: '--is-shared', description: 'Share with team' },\n ],\n },\n endpoint: { method: 'POST', path: '/sms_template/' },\n fieldMappings: { name: 'body', body: 'body', is_shared: 'body' },\n handler: async (input, client) => {\n const reqBody: Record<string, any> = { name: input.name, body: input.body };\n if (input.is_shared !== undefined) reqBody.is_shared = input.is_shared;\n return client.post('/sms_template/', reqBody);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const smsTemplatesUpdateCommand: CommandDefinition = {\n name: 'sms_templates_update',\n group: 'sms-templates',\n subcommand: 'update',\n description: 'Update an SMS template by ID.',\n examples: ['close sms-templates update tmpl_abc123 --name \"Updated SMS Template\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n body: z.string().optional(),\n is_shared: z.boolean().optional(),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Template name' },\n { field: 'body', flags: '--body <text>', description: 'SMS body' },\n { field: 'is_shared', flags: '--is-shared <bool>', description: 'true/false' },\n ],\n },\n endpoint: { method: 'PUT', path: '/sms_template/{id}/' },\n fieldMappings: { id: 'path', name: 'body', body: 'body', is_shared: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const reqBody: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) reqBody[k] = v;\n }\n return client.put(`/sms_template/${encodeURIComponent(id)}/`, reqBody);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smsTemplatesDeleteCommand: CommandDefinition = {\n name: 'sms_templates_delete',\n group: 'sms-templates',\n subcommand: 'delete',\n description: 'Delete an SMS template by ID.',\n examples: ['close sms-templates delete tmpl_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/sms_template/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(smsTemplatesDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smartViewsListCommand: CommandDefinition = {\n name: 'smart_views_list',\n group: 'smart-views',\n subcommand: 'list',\n description: 'List all smart views (saved searches).',\n examples: ['close smart-views list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/saved_search/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(smartViewsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smartViewsGetCommand: CommandDefinition = {\n name: 'smart_views_get',\n group: 'smart-views',\n subcommand: 'get',\n description: 'Get a smart view (saved search) by ID.',\n examples: ['close smart-views get sv_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/saved_search/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(smartViewsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const smartViewsCreateCommand: CommandDefinition = {\n name: 'smart_views_create',\n group: 'smart-views',\n subcommand: 'create',\n description: 'Create a new smart view (saved search/filter).',\n examples: [\n 'close smart-views create --name \"Hot Leads\" --query \\'{\"type\":\"field\",\"field_name\":\"status_label\",\"condition\":{\"type\":\"text\",\"mode\":\"equals\",\"value\":\"Potential\"}}\\'',\n ],\n inputSchema: z.object({\n name: z.string().describe('Smart view name'),\n query: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.any().optional(),\n ).describe('Search query object (JSON)'),\n sort: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ).describe('Sort array (JSON)'),\n view_options: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.any().optional(),\n ).describe('View options (JSON)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Smart view name (required)' },\n { field: 'query', flags: '--query <json>', description: 'Search query (JSON)' },\n { field: 'sort', flags: '--sort <json>', description: 'Sort array (JSON)' },\n { field: 'view_options', flags: '--view-options <json>', description: 'View options (JSON)' },\n ],\n },\n endpoint: { method: 'POST', path: '/saved_search/' },\n fieldMappings: { name: 'body', query: 'body', sort: 'body', view_options: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name };\n if (input.query !== undefined) body.query = input.query;\n if (input.sort) body.sort = input.sort;\n if (input.view_options) body.view_options = input.view_options;\n return client.post('/saved_search/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const smartViewsUpdateCommand: CommandDefinition = {\n name: 'smart_views_update',\n group: 'smart-views',\n subcommand: 'update',\n description: 'Update a smart view by ID.',\n examples: ['close smart-views update sv_abc123 --name \"Updated View\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n query: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.any().optional(),\n ),\n sort: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.any()).optional(),\n ),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Smart view name' },\n { field: 'query', flags: '--query <json>', description: 'Search query (JSON)' },\n { field: 'sort', flags: '--sort <json>', description: 'Sort array (JSON)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/saved_search/{id}/' },\n fieldMappings: { id: 'path', name: 'body', query: 'body', sort: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/saved_search/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const smartViewsDeleteCommand: CommandDefinition = {\n name: 'smart_views_delete',\n group: 'smart-views',\n subcommand: 'delete',\n description: 'Delete a smart view by ID.',\n examples: ['close smart-views delete sv_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/saved_search/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(smartViewsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const reportsActivityMetricsCommand: CommandDefinition = {\n name: 'reports_activity_metrics',\n group: 'reports',\n subcommand: 'activity-metrics',\n description: 'Get activity metrics (calls made, emails sent, etc.) for a date range.',\n examples: [\n 'close reports activity-metrics --date-range \"this_week\"',\n 'close reports activity-metrics --date-range \"custom\" --date-start \"2025-01-01\" --date-end \"2025-03-31\"',\n 'close reports activity-metrics --date-range \"this_month\" --user-id \"user_abc123\"',\n ],\n inputSchema: z.object({\n date_range: z.enum(['today', 'yesterday', 'this_week', 'last_week', 'this_month', 'last_month', 'this_quarter', 'last_quarter', 'this_year', 'custom']).optional().describe('Date range preset'),\n date_start: z.string().optional().describe('Start date (YYYY-MM-DD) for custom range'),\n date_end: z.string().optional().describe('End date (YYYY-MM-DD) for custom range'),\n user_id: z.string().optional().describe('Filter by user ID'),\n group_id: z.string().optional().describe('Filter by group ID'),\n }),\n cliMappings: {\n options: [\n { field: 'date_range', flags: '--date-range <range>', description: 'Date range preset' },\n { field: 'date_start', flags: '--date-start <date>', description: 'Start date (YYYY-MM-DD)' },\n { field: 'date_end', flags: '--date-end <date>', description: 'End date (YYYY-MM-DD)' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'group_id', flags: '--group-id <id>', description: 'Filter by group ID' },\n ],\n },\n endpoint: { method: 'GET', path: '/report/activity/' },\n fieldMappings: {\n date_range: 'query', date_start: 'query', date_end: 'query',\n user_id: 'query', group_id: 'query',\n },\n handler: (input, client) => executeCommand(reportsActivityMetricsCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const reportsActivityReportCommand: CommandDefinition = {\n name: 'reports_activity_report',\n group: 'reports',\n subcommand: 'activity-report',\n description: 'Get a detailed activity report for users/groups in a date range.',\n examples: [\n 'close reports activity-report --date-range this_month',\n 'close reports activity-report --date-range custom --date-start \"2025-01-01\" --date-end \"2025-03-31\" --user-ids \\'[\"user_abc\",\"user_def\"]\\'',\n ],\n inputSchema: z.object({\n date_range: z.string().optional(),\n date_start: z.string().optional(),\n date_end: z.string().optional(),\n user_ids: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ),\n group_ids: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ),\n }),\n cliMappings: {\n options: [\n { field: 'date_range', flags: '--date-range <range>', description: 'Date range preset' },\n { field: 'date_start', flags: '--date-start <date>', description: 'Start date' },\n { field: 'date_end', flags: '--date-end <date>', description: 'End date' },\n { field: 'user_ids', flags: '--user-ids <json>', description: 'User IDs (JSON array)' },\n { field: 'group_ids', flags: '--group-ids <json>', description: 'Group IDs (JSON array)' },\n ],\n },\n endpoint: { method: 'POST', path: '/report/activity/' },\n fieldMappings: {\n date_range: 'body', date_start: 'body', date_end: 'body',\n user_ids: 'body', group_ids: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(input)) {\n if (v !== undefined) body[k] = v;\n }\n return client.post('/report/activity/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const reportsFunnelCommand: CommandDefinition = {\n name: 'reports_funnel',\n group: 'reports',\n subcommand: 'funnel',\n description: 'Get pipeline funnel totals by stage for a given date range.',\n examples: [\n 'close reports funnel --pipeline-id pipe_abc123 --date-range this_month',\n ],\n inputSchema: z.object({\n pipeline_id: z.string().optional().describe('Pipeline ID'),\n date_range: z.string().optional().describe('Date range preset'),\n date_start: z.string().optional().describe('Start date (YYYY-MM-DD)'),\n date_end: z.string().optional().describe('End date (YYYY-MM-DD)'),\n user_id: z.string().optional().describe('Filter by user ID'),\n group_id: z.string().optional().describe('Filter by group ID'),\n }),\n cliMappings: {\n options: [\n { field: 'pipeline_id', flags: '--pipeline-id <id>', description: 'Pipeline ID' },\n { field: 'date_range', flags: '--date-range <range>', description: 'Date range preset' },\n { field: 'date_start', flags: '--date-start <date>', description: 'Start date' },\n { field: 'date_end', flags: '--date-end <date>', description: 'End date' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Filter by user ID' },\n { field: 'group_id', flags: '--group-id <id>', description: 'Filter by group ID' },\n ],\n },\n endpoint: { method: 'POST', path: '/report/funnel/' },\n fieldMappings: {\n pipeline_id: 'body', date_range: 'body', date_start: 'body',\n date_end: 'body', user_id: 'body', group_id: 'body',\n },\n handler: async (input, client) => {\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(input)) {\n if (v !== undefined) body[k] = v;\n }\n return client.post('/report/funnel/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const phoneNumbersListCommand: CommandDefinition = {\n name: 'phone_numbers_list',\n group: 'phone-numbers',\n subcommand: 'list',\n description: 'List provisioned phone numbers.',\n examples: ['close phone-numbers list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/phone_number/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(phoneNumbersListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const phoneNumbersGetCommand: CommandDefinition = {\n name: 'phone_numbers_get',\n group: 'phone-numbers',\n subcommand: 'get',\n description: 'Get a phone number by ID.',\n examples: ['close phone-numbers get phone_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/phone_number/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(phoneNumbersGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const phoneNumbersUpdateCommand: CommandDefinition = {\n name: 'phone_numbers_update',\n group: 'phone-numbers',\n subcommand: 'update',\n description: 'Update a phone number by ID.',\n examples: ['close phone-numbers update phone_abc123 --name \"Sales Line\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional().describe('Display name'),\n user_id: z.string().optional().describe('Assigned user ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '--name <name>', description: 'Display name' },\n { field: 'user_id', flags: '--user-id <id>', description: 'Assigned user ID' },\n ],\n },\n endpoint: { method: 'PUT', path: '/phone_number/{id}/' },\n fieldMappings: { id: 'path', name: 'body', user_id: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/phone_number/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const phoneNumbersDeleteCommand: CommandDefinition = {\n name: 'phone_numbers_delete',\n group: 'phone-numbers',\n subcommand: 'delete',\n description: 'Delete a phone number by ID.',\n examples: ['close phone-numbers delete phone_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/phone_number/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(phoneNumbersDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const connectedAccountsListCommand: CommandDefinition = {\n name: 'connected_accounts_list',\n group: 'connected-accounts',\n subcommand: 'list',\n description: 'List connected email accounts (for sending emails).',\n examples: ['close connected-accounts list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/connected_account/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(connectedAccountsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const connectedAccountsGetCommand: CommandDefinition = {\n name: 'connected_accounts_get',\n group: 'connected-accounts',\n subcommand: 'get',\n description: 'Get a connected email account by ID.',\n examples: ['close connected-accounts get acc_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/connected_account/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(connectedAccountsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const organizationsGetCommand: CommandDefinition = {\n name: 'organizations_get',\n group: 'organizations',\n subcommand: 'get',\n description: 'Get an organization by ID.',\n examples: ['close organizations get orga_abc123'],\n inputSchema: z.object({ id: z.string().describe('Organization ID') }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/organization/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(organizationsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const organizationsUpdateCommand: CommandDefinition = {\n name: 'organizations_update',\n group: 'organizations',\n subcommand: 'update',\n description: 'Update organization settings.',\n examples: ['close organizations update orga_abc123 --name \"My Company\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n default_pipeline_id: z.string().optional().describe('Default pipeline ID'),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '--name <name>', description: 'Organization name' },\n { field: 'default_pipeline_id', flags: '--default-pipeline-id <id>', description: 'Default pipeline ID' },\n ],\n },\n endpoint: { method: 'PUT', path: '/organization/{id}/' },\n fieldMappings: { id: 'path', name: 'body', default_pipeline_id: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/organization/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const groupsListCommand: CommandDefinition = {\n name: 'groups_list',\n group: 'groups',\n subcommand: 'list',\n description: 'List all groups.',\n examples: ['close groups list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/group/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(groupsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const groupsGetCommand: CommandDefinition = {\n name: 'groups_get',\n group: 'groups',\n subcommand: 'get',\n description: 'Get a group by ID.',\n examples: ['close groups get group_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/group/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(groupsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const groupsCreateCommand: CommandDefinition = {\n name: 'groups_create',\n group: 'groups',\n subcommand: 'create',\n description: 'Create a new group.',\n examples: ['close groups create --name \"Sales Team\"'],\n inputSchema: z.object({\n name: z.string().describe('Group name'),\n members: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ).describe('User IDs to add as members (JSON array)'),\n }),\n cliMappings: {\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Group name (required)' },\n { field: 'members', flags: '--members <json>', description: 'Member user IDs (JSON array)' },\n ],\n },\n endpoint: { method: 'POST', path: '/group/' },\n fieldMappings: { name: 'body', members: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = { name: input.name };\n if (input.members) body.members = input.members;\n return client.post('/group/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const groupsUpdateCommand: CommandDefinition = {\n name: 'groups_update',\n group: 'groups',\n subcommand: 'update',\n description: 'Update a group by ID.',\n examples: ['close groups update group_abc123 --name \"Renamed Group\"'],\n inputSchema: z.object({\n id: z.string(),\n name: z.string().optional(),\n members: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ),\n }),\n cliMappings: {\n args: [{ field: 'id', name: 'id', required: true }],\n options: [\n { field: 'name', flags: '-n, --name <name>', description: 'Group name' },\n { field: 'members', flags: '--members <json>', description: 'Member user IDs (JSON array)' },\n ],\n },\n endpoint: { method: 'PUT', path: '/group/{id}/' },\n fieldMappings: { id: 'path', name: 'body', members: 'body' },\n handler: async (input, client) => {\n const { id, ...fields } = input;\n const body: Record<string, any> = {};\n for (const [k, v] of Object.entries(fields)) {\n if (v !== undefined) body[k] = v;\n }\n return client.put(`/group/${encodeURIComponent(id)}/`, body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const groupsDeleteCommand: CommandDefinition = {\n name: 'groups_delete',\n group: 'groups',\n subcommand: 'delete',\n description: 'Delete a group by ID.',\n examples: ['close groups delete group_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'DELETE', path: '/group/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(groupsDeleteCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const rolesListCommand: CommandDefinition = {\n name: 'roles_list',\n group: 'roles',\n subcommand: 'list',\n description: 'List all roles.',\n examples: ['close roles list'],\n inputSchema: z.object({}),\n cliMappings: {},\n endpoint: { method: 'GET', path: '/role/' },\n fieldMappings: {},\n handler: (input, client) => executeCommand(rolesListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const rolesGetCommand: CommandDefinition = {\n name: 'roles_get',\n group: 'roles',\n subcommand: 'get',\n description: 'Get a role by ID.',\n examples: ['close roles get role_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/role/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(rolesGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const exportsListCommand: CommandDefinition = {\n name: 'exports_list',\n group: 'exports',\n subcommand: 'list',\n description: 'List all data exports.',\n examples: ['close exports list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/export/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(exportsListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const exportsGetCommand: CommandDefinition = {\n name: 'exports_get',\n group: 'exports',\n subcommand: 'get',\n description: 'Get an export by ID (check status, get download URL).',\n examples: ['close exports get export_abc123'],\n inputSchema: z.object({ id: z.string() }),\n cliMappings: { args: [{ field: 'id', name: 'id', required: true }] },\n endpoint: { method: 'GET', path: '/export/{id}/' },\n fieldMappings: { id: 'path' },\n handler: (input, client) => executeCommand(exportsGetCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const exportsCreateLeadCommand: CommandDefinition = {\n name: 'exports_create_lead',\n group: 'exports',\n subcommand: 'create-lead',\n description: 'Start an async lead export. Returns an export ID — use \"exports get\" to poll status and download URL.',\n examples: [\n 'close exports create-lead',\n 'close exports create-lead --query \\'{\"type\":\"and\",\"queries\":[]}\\' --fields \\'[\"display_name\",\"status_label\"]\\'',\n ],\n inputSchema: z.object({\n query: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.any().optional(),\n ).describe('Advanced search query (JSON)'),\n fields: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ).describe('Fields to include in export (JSON array)'),\n format: z.enum(['csv', 'json', 'xlsx']).optional().describe('Export format'),\n }),\n cliMappings: {\n options: [\n { field: 'query', flags: '--query <json>', description: 'Search query (JSON)' },\n { field: 'fields', flags: '--fields <json>', description: 'Fields to export (JSON array)' },\n { field: 'format', flags: '--format <format>', description: 'csv|json|xlsx' },\n ],\n },\n endpoint: { method: 'POST', path: '/export/lead/' },\n fieldMappings: { query: 'body', fields: 'body', format: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = {};\n if (input.query) body.query = input.query;\n if (input.fields) body.fields = input.fields;\n if (input.format) body.format = input.format;\n return client.post('/export/lead/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const exportsCreateOpportunityCommand: CommandDefinition = {\n name: 'exports_create_opportunity',\n group: 'exports',\n subcommand: 'create-opportunity',\n description: 'Start an async opportunity export. Returns an export ID — use \"exports get\" to poll status.',\n examples: ['close exports create-opportunity --format csv'],\n inputSchema: z.object({\n query: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.any().optional(),\n ),\n fields: z.preprocess(\n (v) => (typeof v === 'string' ? JSON.parse(v) : v),\n z.array(z.string()).optional(),\n ),\n format: z.enum(['csv', 'json', 'xlsx']).optional(),\n }),\n cliMappings: {\n options: [\n { field: 'query', flags: '--query <json>', description: 'Search query (JSON)' },\n { field: 'fields', flags: '--fields <json>', description: 'Fields to export (JSON array)' },\n { field: 'format', flags: '--format <format>', description: 'csv|json|xlsx' },\n ],\n },\n endpoint: { method: 'POST', path: '/export/opportunity/' },\n fieldMappings: { query: 'body', fields: 'body', format: 'body' },\n handler: async (input, client) => {\n const body: Record<string, any> = {};\n if (input.query) body.query = input.query;\n if (input.fields) body.fields = input.fields;\n if (input.format) body.format = input.format;\n return client.post('/export/opportunity/', body);\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const unsubscribeListCommand: CommandDefinition = {\n name: 'unsubscribe_list',\n group: 'unsubscribe',\n subcommand: 'list',\n description: 'List unsubscribed email addresses.',\n examples: ['close unsubscribe list'],\n inputSchema: z.object({\n _limit: z.coerce.number().min(1).max(200).default(25),\n _skip: z.coerce.number().min(0).default(0),\n }),\n cliMappings: {\n options: [\n { field: '_limit', flags: '-l, --limit <number>', description: 'Items per page' },\n { field: '_skip', flags: '--skip <number>', description: 'Offset' },\n ],\n },\n endpoint: { method: 'GET', path: '/unsubscribe/email/' },\n fieldMappings: { _limit: 'query', _skip: 'query' },\n paginated: true,\n handler: (input, client) => executeCommand(unsubscribeListCommand, input, client),\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\n\nexport const unsubscribeAddCommand: CommandDefinition = {\n name: 'unsubscribe_add',\n group: 'unsubscribe',\n subcommand: 'add',\n description: 'Add an email address to the unsubscribe list.',\n examples: ['close unsubscribe add --email \"user@example.com\"'],\n inputSchema: z.object({\n email: z.string().email().describe('Email address to unsubscribe'),\n }),\n cliMappings: {\n options: [\n { field: 'email', flags: '--email <email>', description: 'Email address to unsubscribe (required)' },\n ],\n },\n endpoint: { method: 'POST', path: '/unsubscribe/email/' },\n fieldMappings: { email: 'body' },\n handler: async (input, client) => {\n return client.post('/unsubscribe/email/', { email: input.email });\n },\n};\n","import { z } from 'zod';\nimport type { CommandDefinition } from '../../core/types.js';\nimport { executeCommand } from '../../core/handler.js';\n\nexport const unsubscribeDeleteCommand: CommandDefinition = {\n name: 'unsubscribe_delete',\n group: 'unsubscribe',\n subcommand: 'delete',\n description: 'Remove an email address from the unsubscribe list.',\n examples: ['close unsubscribe delete \"user@example.com\"'],\n inputSchema: z.object({\n email: z.string().describe('Email address to remove from unsubscribe list'),\n }),\n cliMappings: {\n args: [{ field: 'email', name: 'email', required: true }],\n },\n endpoint: { method: 'DELETE', path: '/unsubscribe/email/{email}/' },\n fieldMappings: { email: 'path' },\n handler: (input, client) => executeCommand(unsubscribeDeleteCommand, input, client),\n};\n","import { Command } from 'commander';\nimport type { CommandDefinition, GlobalOptions } from '../core/types.js';\nimport { resolveApiKey } from '../core/auth.js';\nimport { CloseClient } from '../core/client.js';\nimport { output, outputError } from '../core/output.js';\n\n// Auth commands\nimport { registerLoginCommand } from './auth/login.js';\nimport { registerLogoutCommand } from './auth/logout.js';\n\n// MCP command\nimport { registerMcpCommand } from './mcp/index.js';\n\n// Leads\nimport { leadsListCommand } from './leads/list.js';\nimport { leadsGetCommand } from './leads/get.js';\nimport { leadsCreateCommand } from './leads/create.js';\nimport { leadsUpdateCommand } from './leads/update.js';\nimport { leadsDeleteCommand } from './leads/delete.js';\nimport { leadsMergeCommand } from './leads/merge.js';\nimport { leadsSearchCommand } from './leads/search.js';\n\n// Contacts\nimport { contactsListCommand } from './contacts/list.js';\nimport { contactsGetCommand } from './contacts/get.js';\nimport { contactsCreateCommand } from './contacts/create.js';\nimport { contactsUpdateCommand } from './contacts/update.js';\nimport { contactsDeleteCommand } from './contacts/delete.js';\n\n// Opportunities\nimport { opportunitiesListCommand } from './opportunities/list.js';\nimport { opportunitiesGetCommand } from './opportunities/get.js';\nimport { opportunitiesCreateCommand } from './opportunities/create.js';\nimport { opportunitiesUpdateCommand } from './opportunities/update.js';\nimport { opportunitiesDeleteCommand } from './opportunities/delete.js';\n\n// Tasks\nimport { tasksListCommand } from './tasks/list.js';\nimport { tasksGetCommand } from './tasks/get.js';\nimport { tasksCreateCommand } from './tasks/create.js';\nimport { tasksUpdateCommand } from './tasks/update.js';\nimport { tasksDeleteCommand } from './tasks/delete.js';\nimport { tasksBulkUpdateCommand } from './tasks/bulk-update.js';\n\n// Activities (unified)\nimport { activitiesListCommand } from './activities/list.js';\n\n// Calls\nimport { callsListCommand } from './calls/list.js';\nimport { callsGetCommand } from './calls/get.js';\nimport { callsCreateCommand } from './calls/create.js';\nimport { callsUpdateCommand } from './calls/update.js';\nimport { callsDeleteCommand } from './calls/delete.js';\n\n// Notes\nimport { notesListCommand } from './notes/list.js';\nimport { notesGetCommand } from './notes/get.js';\nimport { notesCreateCommand } from './notes/create.js';\nimport { notesUpdateCommand } from './notes/update.js';\nimport { notesDeleteCommand } from './notes/delete.js';\n\n// Emails\nimport { emailsListCommand } from './emails/list.js';\nimport { emailsGetCommand } from './emails/get.js';\nimport { emailsCreateCommand } from './emails/create.js';\nimport { emailsUpdateCommand } from './emails/update.js';\nimport { emailsDeleteCommand } from './emails/delete.js';\n\n// SMS\nimport { smsListCommand } from './sms/list.js';\nimport { smsGetCommand } from './sms/get.js';\nimport { smsCreateCommand } from './sms/create.js';\nimport { smsDeleteCommand } from './sms/delete.js';\n\n// Meetings\nimport { meetingsListCommand } from './meetings/list.js';\nimport { meetingsGetCommand } from './meetings/get.js';\nimport { meetingsUpdateCommand } from './meetings/update.js';\nimport { meetingsDeleteCommand } from './meetings/delete.js';\n\n// Users\nimport { usersMeCommand } from './users/me.js';\nimport { usersListCommand } from './users/list.js';\nimport { usersGetCommand } from './users/get.js';\nimport { usersAvailabilityCommand } from './users/availability.js';\n\n// Pipelines\nimport { pipelinesListCommand } from './pipelines/list.js';\nimport { pipelinesGetCommand } from './pipelines/get.js';\nimport { pipelinesCreateCommand } from './pipelines/create.js';\nimport { pipelinesUpdateCommand } from './pipelines/update.js';\nimport { pipelinesDeleteCommand } from './pipelines/delete.js';\n\n// Lead Statuses\nimport { leadStatusesListCommand } from './lead-statuses/list.js';\nimport { leadStatusesGetCommand } from './lead-statuses/get.js';\nimport { leadStatusesCreateCommand } from './lead-statuses/create.js';\nimport { leadStatusesUpdateCommand } from './lead-statuses/update.js';\nimport { leadStatusesDeleteCommand } from './lead-statuses/delete.js';\n\n// Opportunity Statuses\nimport { opportunityStatusesListCommand } from './opportunity-statuses/list.js';\nimport { opportunityStatusesGetCommand } from './opportunity-statuses/get.js';\nimport { opportunityStatusesCreateCommand } from './opportunity-statuses/create.js';\nimport { opportunityStatusesUpdateCommand } from './opportunity-statuses/update.js';\nimport { opportunityStatusesDeleteCommand } from './opportunity-statuses/delete.js';\n\n// Custom Fields (factory-generated — 25 commands)\nimport { customFieldCommands } from './custom-fields/index.js';\n\n// Webhooks\nimport { webhooksListCommand } from './webhooks/list.js';\nimport { webhooksGetCommand } from './webhooks/get.js';\nimport { webhooksCreateCommand } from './webhooks/create.js';\nimport { webhooksUpdateCommand } from './webhooks/update.js';\nimport { webhooksDeleteCommand } from './webhooks/delete.js';\n\n// Sequences\nimport { sequencesListCommand } from './sequences/list.js';\nimport { sequencesGetCommand } from './sequences/get.js';\nimport { sequencesCreateCommand } from './sequences/create.js';\nimport { sequencesUpdateCommand } from './sequences/update.js';\nimport { sequencesDeleteCommand } from './sequences/delete.js';\nimport { sequencesSubscribeCommand } from './sequences/subscribe.js';\nimport { sequencesListSubscriptionsCommand } from './sequences/list-subscriptions.js';\n\n// Email Templates\nimport { emailTemplatesListCommand } from './email-templates/list.js';\nimport { emailTemplatesGetCommand } from './email-templates/get.js';\nimport { emailTemplatesCreateCommand } from './email-templates/create.js';\nimport { emailTemplatesUpdateCommand } from './email-templates/update.js';\nimport { emailTemplatesDeleteCommand } from './email-templates/delete.js';\nimport { emailTemplatesRenderCommand } from './email-templates/render.js';\n\n// SMS Templates\nimport { smsTemplatesListCommand } from './sms-templates/list.js';\nimport { smsTemplatesGetCommand } from './sms-templates/get.js';\nimport { smsTemplatesCreateCommand } from './sms-templates/create.js';\nimport { smsTemplatesUpdateCommand } from './sms-templates/update.js';\nimport { smsTemplatesDeleteCommand } from './sms-templates/delete.js';\n\n// Smart Views\nimport { smartViewsListCommand } from './smart-views/list.js';\nimport { smartViewsGetCommand } from './smart-views/get.js';\nimport { smartViewsCreateCommand } from './smart-views/create.js';\nimport { smartViewsUpdateCommand } from './smart-views/update.js';\nimport { smartViewsDeleteCommand } from './smart-views/delete.js';\n\n// Reports\nimport { reportsActivityMetricsCommand } from './reports/activity-metrics.js';\nimport { reportsActivityReportCommand } from './reports/activity-report.js';\nimport { reportsFunnelCommand } from './reports/funnel.js';\n\n// Phone Numbers\nimport { phoneNumbersListCommand } from './phone-numbers/list.js';\nimport { phoneNumbersGetCommand } from './phone-numbers/get.js';\nimport { phoneNumbersUpdateCommand } from './phone-numbers/update.js';\nimport { phoneNumbersDeleteCommand } from './phone-numbers/delete.js';\n\n// Connected Accounts\nimport { connectedAccountsListCommand } from './connected-accounts/list.js';\nimport { connectedAccountsGetCommand } from './connected-accounts/get.js';\n\n// Organizations\nimport { organizationsGetCommand } from './organizations/get.js';\nimport { organizationsUpdateCommand } from './organizations/update.js';\n\n// Groups\nimport { groupsListCommand } from './groups/list.js';\nimport { groupsGetCommand } from './groups/get.js';\nimport { groupsCreateCommand } from './groups/create.js';\nimport { groupsUpdateCommand } from './groups/update.js';\nimport { groupsDeleteCommand } from './groups/delete.js';\n\n// Roles\nimport { rolesListCommand } from './roles/list.js';\nimport { rolesGetCommand } from './roles/get.js';\n\n// Exports\nimport { exportsListCommand } from './exports/list.js';\nimport { exportsGetCommand } from './exports/get.js';\nimport { exportsCreateLeadCommand } from './exports/create-lead.js';\nimport { exportsCreateOpportunityCommand } from './exports/create-opportunity.js';\n\n// Unsubscribe\nimport { unsubscribeListCommand } from './unsubscribe/list.js';\nimport { unsubscribeAddCommand } from './unsubscribe/add.js';\nimport { unsubscribeDeleteCommand } from './unsubscribe/delete.js';\n\n/** All command definitions — single source of truth for both CLI and MCP */\nexport const allCommands: CommandDefinition[] = [\n // Leads (7)\n leadsListCommand,\n leadsGetCommand,\n leadsCreateCommand,\n leadsUpdateCommand,\n leadsDeleteCommand,\n leadsMergeCommand,\n leadsSearchCommand,\n\n // Contacts (5)\n contactsListCommand,\n contactsGetCommand,\n contactsCreateCommand,\n contactsUpdateCommand,\n contactsDeleteCommand,\n\n // Opportunities (5)\n opportunitiesListCommand,\n opportunitiesGetCommand,\n opportunitiesCreateCommand,\n opportunitiesUpdateCommand,\n opportunitiesDeleteCommand,\n\n // Tasks (6)\n tasksListCommand,\n tasksGetCommand,\n tasksCreateCommand,\n tasksUpdateCommand,\n tasksDeleteCommand,\n tasksBulkUpdateCommand,\n\n // Activities unified (1)\n activitiesListCommand,\n\n // Calls (5)\n callsListCommand,\n callsGetCommand,\n callsCreateCommand,\n callsUpdateCommand,\n callsDeleteCommand,\n\n // Notes (5)\n notesListCommand,\n notesGetCommand,\n notesCreateCommand,\n notesUpdateCommand,\n notesDeleteCommand,\n\n // Emails (5)\n emailsListCommand,\n emailsGetCommand,\n emailsCreateCommand,\n emailsUpdateCommand,\n emailsDeleteCommand,\n\n // SMS (4)\n smsListCommand,\n smsGetCommand,\n smsCreateCommand,\n smsDeleteCommand,\n\n // Meetings (4)\n meetingsListCommand,\n meetingsGetCommand,\n meetingsUpdateCommand,\n meetingsDeleteCommand,\n\n // Users (4)\n usersMeCommand,\n usersListCommand,\n usersGetCommand,\n usersAvailabilityCommand,\n\n // Pipelines (5)\n pipelinesListCommand,\n pipelinesGetCommand,\n pipelinesCreateCommand,\n pipelinesUpdateCommand,\n pipelinesDeleteCommand,\n\n // Lead Statuses (5)\n leadStatusesListCommand,\n leadStatusesGetCommand,\n leadStatusesCreateCommand,\n leadStatusesUpdateCommand,\n leadStatusesDeleteCommand,\n\n // Opportunity Statuses (5)\n opportunityStatusesListCommand,\n opportunityStatusesGetCommand,\n opportunityStatusesCreateCommand,\n opportunityStatusesUpdateCommand,\n opportunityStatusesDeleteCommand,\n\n // Custom Fields — factory generated (25: 5 object types × 5 operations)\n ...customFieldCommands,\n\n // Webhooks (5)\n webhooksListCommand,\n webhooksGetCommand,\n webhooksCreateCommand,\n webhooksUpdateCommand,\n webhooksDeleteCommand,\n\n // Sequences (7)\n sequencesListCommand,\n sequencesGetCommand,\n sequencesCreateCommand,\n sequencesUpdateCommand,\n sequencesDeleteCommand,\n sequencesSubscribeCommand,\n sequencesListSubscriptionsCommand,\n\n // Email Templates (6)\n emailTemplatesListCommand,\n emailTemplatesGetCommand,\n emailTemplatesCreateCommand,\n emailTemplatesUpdateCommand,\n emailTemplatesDeleteCommand,\n emailTemplatesRenderCommand,\n\n // SMS Templates (5)\n smsTemplatesListCommand,\n smsTemplatesGetCommand,\n smsTemplatesCreateCommand,\n smsTemplatesUpdateCommand,\n smsTemplatesDeleteCommand,\n\n // Smart Views (5)\n smartViewsListCommand,\n smartViewsGetCommand,\n smartViewsCreateCommand,\n smartViewsUpdateCommand,\n smartViewsDeleteCommand,\n\n // Reports (3)\n reportsActivityMetricsCommand,\n reportsActivityReportCommand,\n reportsFunnelCommand,\n\n // Phone Numbers (4)\n phoneNumbersListCommand,\n phoneNumbersGetCommand,\n phoneNumbersUpdateCommand,\n phoneNumbersDeleteCommand,\n\n // Connected Accounts (2)\n connectedAccountsListCommand,\n connectedAccountsGetCommand,\n\n // Organizations (2)\n organizationsGetCommand,\n organizationsUpdateCommand,\n\n // Groups (5)\n groupsListCommand,\n groupsGetCommand,\n groupsCreateCommand,\n groupsUpdateCommand,\n groupsDeleteCommand,\n\n // Roles (2)\n rolesListCommand,\n rolesGetCommand,\n\n // Exports (4)\n exportsListCommand,\n exportsGetCommand,\n exportsCreateLeadCommand,\n exportsCreateOpportunityCommand,\n\n // Unsubscribe (3)\n unsubscribeListCommand,\n unsubscribeAddCommand,\n unsubscribeDeleteCommand,\n];\n\nexport function registerAllCommands(program: Command): void {\n // Auth commands (no API client needed)\n registerLoginCommand(program);\n registerLogoutCommand(program);\n\n // MCP server command\n registerMcpCommand(program);\n\n // Group commands by their `group` field\n const groups = new Map<string, CommandDefinition[]>();\n for (const cmd of allCommands) {\n if (!groups.has(cmd.group)) groups.set(cmd.group, []);\n groups.get(cmd.group)!.push(cmd);\n }\n\n for (const [groupName, commands] of groups) {\n const groupCmd = program\n .command(groupName)\n .description(`Manage ${groupName.replace(/-/g, ' ')}`);\n\n for (const cmdDef of commands) {\n registerCommand(groupCmd, cmdDef);\n }\n\n // Helpful error for unknown subcommands\n groupCmd.on('command:*', (operands: string[]) => {\n const available = commands.map((c) => c.subcommand).join(', ');\n console.error(`error: unknown command '${operands[0]}' for '${groupName}'`);\n console.error(`Available commands: ${available}`);\n process.exitCode = 1;\n });\n }\n}\n\nfunction registerCommand(parent: Command, cmdDef: CommandDefinition): void {\n const cmd = parent\n .command(cmdDef.subcommand)\n .description(cmdDef.description);\n\n if (cmdDef.cliMappings.args) {\n for (const arg of cmdDef.cliMappings.args) {\n const argStr = arg.required ? `<${arg.name}>` : `[${arg.name}]`;\n cmd.argument(argStr, arg.field);\n }\n }\n\n if (cmdDef.cliMappings.options) {\n for (const opt of cmdDef.cliMappings.options) {\n cmd.option(opt.flags, opt.description ?? '');\n }\n }\n\n if (cmdDef.examples?.length) {\n cmd.addHelpText('after', '\\nExamples:\\n' + cmdDef.examples.map((e) => ` $ ${e}`).join('\\n'));\n }\n\n cmd.action(async (...actionArgs: any[]) => {\n try {\n const globalOpts = cmd.optsWithGlobals() as GlobalOptions & Record<string, any>;\n\n if (globalOpts.pretty) {\n globalOpts.output = 'pretty';\n }\n\n const apiKey = await resolveApiKey(globalOpts.apiKey);\n const client = new CloseClient({ apiKey });\n\n const input: Record<string, any> = {};\n\n // Map positional arguments\n if (cmdDef.cliMappings.args) {\n for (let i = 0; i < cmdDef.cliMappings.args.length; i++) {\n const argDef = cmdDef.cliMappings.args[i];\n if (actionArgs[i] !== undefined) {\n input[argDef.field] = actionArgs[i];\n }\n }\n }\n\n // Map options\n if (cmdDef.cliMappings.options) {\n for (const opt of cmdDef.cliMappings.options) {\n const match = opt.flags.match(/--([a-z][a-z0-9-]*)/);\n if (match) {\n const optName = match[1].replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n if (globalOpts[optName] !== undefined) {\n input[opt.field] = globalOpts[optName];\n }\n }\n }\n }\n\n // Validate\n const parsed = cmdDef.inputSchema.safeParse(input);\n if (!parsed.success) {\n const issues = parsed.error.issues ?? [];\n const missing = issues\n .filter((i: any) => i.code === 'invalid_type' && String(i.message).includes('received undefined'))\n .map((i: any) => '--' + String(i.path?.[0] ?? '').replace(/_/g, '-'));\n if (missing.length > 0) {\n throw new Error(`Missing required option(s): ${missing.join(', ')}`);\n }\n const msg = issues.map((i: any) => `${i.path?.join('.')}: ${i.message}`).join('; ');\n throw new Error(`Invalid input: ${msg}`);\n }\n\n const result = await cmdDef.handler(parsed.data, client);\n output(result, globalOpts);\n } catch (error) {\n const globalOpts = cmd.optsWithGlobals() as GlobalOptions;\n outputError(error, globalOpts);\n }\n });\n}\n"],"mappings":"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A,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA,GAAG;AAAA;AAAA,EAGH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAA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","names":["program","program","program","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","z","program"]}
|