@getpilfer/cli 0.1.2 → 0.1.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/idempotent-create.ts","../src/lib/bulk.ts","../src/commands/generated/index.ts"],"sourcesContent":["import type { ApiResponse, RequestOptions } from \"./client.js\";\n\nexport interface FindExistingResourceOptions {\n resource: string;\n token: string | null;\n baseUrl: string;\n body: Record<string, unknown>;\n identityFields: string[];\n queryFields: string[];\n request: <T = unknown>(options: RequestOptions) => Promise<ApiResponse<T>>;\n}\n\nexport async function findExistingResource(\n options: FindExistingResourceOptions,\n): Promise<Record<string, unknown> | null> {\n const identity = options.identityFields.filter((field) =>\n isComparable(options.body[field]),\n );\n if (identity.length === 0) return null;\n\n const query: Record<string, string | number | undefined> = {};\n for (const field of identity) {\n if (!options.queryFields.includes(field)) continue;\n const value = options.body[field];\n if (typeof value === \"string\" || typeof value === \"number\") {\n query[field] = value;\n }\n }\n\n const res = await options.request<{ data?: unknown[] }>({\n method: \"GET\",\n path: options.resource,\n token: options.token,\n baseUrl: options.baseUrl,\n query,\n });\n if (!res.ok) return null;\n\n const rows = ((res.data as { data?: unknown[] } | undefined)?.data ?? []).filter(\n isRecord,\n );\n return rows.find((row) => identity.every((field) => equalValue(row[field], options.body[field]))) ?? null;\n}\n\nfunction isComparable(value: unknown): boolean {\n return typeof value === \"string\" || typeof value === \"number\" || typeof value === \"boolean\";\n}\n\nfunction equalValue(a: unknown, b: unknown): boolean {\n if (typeof a === \"string\" && typeof b === \"string\") {\n return a.trim().toLowerCase() === b.trim().toLowerCase();\n }\n return a === b;\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","import { readFile } from \"node:fs/promises\";\n\nconst MAX_IDS = 25;\nconst CONCURRENCY = 5;\nconst MAX_RETRIES = 3;\n\nexport function parseIds(idsFlag: string | undefined): string[] {\n if (!idsFlag?.trim()) return [];\n return idsFlag.split(\",\").map((s) => s.trim()).filter(Boolean);\n}\n\nexport function parseDates(datesFlag: string | undefined): string[] {\n return parseIds(datesFlag);\n}\n\nexport async function parseIdsInput(\n idsFlag: string | undefined,\n idsFile: string | undefined,\n): Promise<string[]> {\n const inline = idsFlag?.trim() === \"-\" ? await readStdin() : idsFlag;\n const fromFile = idsFile ? await readTextSource(idsFile) : \"\";\n return [...parseIds(inline), ...parseIdsText(fromFile)];\n}\n\nexport interface BulkInputRecord {\n id?: string;\n _id?: string;\n [key: string]: unknown;\n}\n\nexport async function parseBulkInput(input: string | undefined): Promise<BulkInputRecord[]> {\n if (!input?.trim()) return [];\n const text = await readTextSource(input);\n if (!text.trim()) return [];\n if (text.trim().startsWith(\"[\") || text.trim().startsWith(\"{\")) {\n try {\n const parsed = JSON.parse(text) as unknown;\n if (Array.isArray(parsed)) return parsed.filter(isRecord) as BulkInputRecord[];\n if (isRecord(parsed) && Array.isArray(parsed.data)) {\n return parsed.data.filter(isRecord) as BulkInputRecord[];\n }\n if (isRecord(parsed)) return [parsed as BulkInputRecord];\n } catch {\n // Fall through to JSONL parsing.\n }\n }\n return text\n .split(/\\r?\\n/)\n .map((line) => line.trim())\n .filter(Boolean)\n .map((line) => JSON.parse(line) as unknown)\n .filter(isRecord) as BulkInputRecord[];\n}\n\nexport function getBulkRecordId(record: BulkInputRecord): string | null {\n if (typeof record._id === \"string\" && record._id.trim()) return record._id.trim();\n if (typeof record.id === \"string\" && record.id.trim()) return record.id.trim();\n return null;\n}\n\nexport function validateBulkIds(ids: string[], resourceLabel: string): void {\n if (ids.length > MAX_IDS) {\n throw new Error(\n `${resourceLabel}: max ${MAX_IDS} IDs per invocation (got ${ids.length}). Use multiple invocations for more.`,\n );\n }\n}\n\nexport interface BulkTaskResult {\n _id?: string;\n status?: \"updated\" | \"deleted\" | \"would_update\" | \"would_delete\";\n error?: boolean;\n statusCode?: number;\n message?: string;\n}\n\nexport interface BulkRunOptions<TItem, TData> {\n items: TItem[];\n concurrency?: number;\n runOne: (item: TItem) => Promise<{ ok: boolean; status: number; data?: TData; error?: string }>;\n toResult: (item: TItem, ok: boolean, status: number, data?: TData, error?: string) => BulkTaskResult;\n}\n\n/**\n * Run up to CONCURRENCY operations in parallel, with 429 retry (Retry-After or exponential backoff).\n */\nexport async function runBulk<TItem, TData>(options: BulkRunOptions<TItem, TData>): Promise<{\n data: BulkTaskResult[];\n summary: { total: number; succeeded: number; failed: number };\n}> {\n const { items, runOne, toResult } = options;\n const concurrency = Math.min(options.concurrency ?? CONCURRENCY, items.length);\n const results: BulkTaskResult[] = [];\n let succeeded = 0;\n let failed = 0;\n\n async function runWithRetry(item: TItem): Promise<BulkTaskResult> {\n let lastRes: { ok: boolean; status: number; data?: TData; error?: string } | null = null;\n for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) {\n const res = await runOne(item);\n lastRes = res;\n if (res.status !== 429) break;\n const retryAfter = 2 ** attempt;\n await new Promise((r) => setTimeout(r, retryAfter * 1000));\n }\n const r = lastRes!;\n const result = toResult(item, r.ok, r.status, r.data, r.error);\n if (r.ok) succeeded++;\n else failed++;\n return result;\n }\n\n const queue = [...items];\n const workers = Array.from({ length: concurrency }, async () => {\n while (queue.length > 0) {\n const item = queue.shift()!;\n const result = await runWithRetry(item);\n results.push(result);\n }\n });\n await Promise.all(workers);\n\n return {\n data: results,\n summary: { total: items.length, succeeded, failed },\n };\n}\n\nfunction parseIdsText(text: string | undefined): string[] {\n if (!text?.trim()) return [];\n return text\n .split(/[\\s,]+/)\n .map((s) => s.trim())\n .filter(Boolean);\n}\n\nasync function readTextSource(source: string): Promise<string> {\n if (source === \"-\") return readStdin();\n return readFile(source, \"utf-8\");\n}\n\nasync function readStdin(): Promise<string> {\n const chunks: Buffer[] = [];\n for await (const chunk of process.stdin) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));\n }\n return Buffer.concat(chunks).toString(\"utf-8\");\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n","/** Generated by scripts/generate-from-openapi.ts - do not edit by hand */\nimport type { Command } from \"commander\";\nimport { apiRequest } from \"../../lib/client.js\";\nimport { printOutput } from \"../../lib/output.js\";\nimport { fetchList, printList } from \"../../lib/list-controls.js\";\nimport { mergeBody } from \"../../lib/merge-body.js\";\nimport { findExistingResource } from \"../../lib/idempotent-create.js\";\nimport { coerceBodyFlag, coerceQueryFlag } from \"../../lib/flag-coercion.js\";\nimport { getBulkRecordId, parseBulkInput, parseIdsInput, validateBulkIds, runBulk } from \"../../lib/bulk.js\";\n\nexport interface CommandHelpers {\n getOutputFormat: () => \"json\" | \"table\" | \"csv\";\n requireToken: () => string | null;\n exitWithError: (status: number, message: string) => never;\n getBaseUrl: () => string;\n syncRootOptsFromCommand: (cmd: Command) => void;\n}\n\nexport function register(program: Command, helpers: CommandHelpers): void {\n const { getOutputFormat, requireToken, exitWithError, getBaseUrl, syncRootOptsFromCommand } = helpers;\n\n // --- organizations ---\n const organizationsCmd = program.command(\"organizations\").description(\"organizations resource\");\n organizationsCmd.command(\"list\").description(\"List organizations\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n const res = await fetchList({ path: \"organizations\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n organizationsCmd.command(\"get <id>\").description(\"Get one organizations by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"organizations/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n\n // --- projects ---\n const projectsCmd = program.command(\"projects\").description(\"projects resource\");\n projectsCmd.command(\"list\").description(\"List projects\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .option(\"--include <value>\", \"Filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"projects\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n projectsCmd.command(\"get <id>\").description(\"Get one projects by id\")\n .option(\"--include <value>\", \"Include/filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await apiRequest({ method: \"GET\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"create\").description(\"Create projects\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--priority <value>\", \"priority\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"projects\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"organizationId\"],\n queryFields: [\"organizationId\",\"include\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"projects\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"update [id]\").description(\"Update projects\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--priority <value>\", \"priority\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"projects\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"projects\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n projectsCmd.command(\"delete [id]\").description(\"Delete projects\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"projects\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"projects/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"projects/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- spaces ---\n const spacesCmd = program.command(\"spaces\").description(\"spaces resource\");\n spacesCmd.command(\"list\").description(\"List spaces\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .option(\"--project-id <value>\", \"Filter by projectId\")\n .option(\"--include <value>\", \"Filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.projectId != null) {\n query.projectId = coerceQueryFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"spaces\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n spacesCmd.command(\"get <id>\").description(\"Get one spaces by id\")\n .option(\"--include <value>\", \"Include/filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await apiRequest({ method: \"GET\", path: \"spaces/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n spacesCmd.command(\"create\").description(\"Create spaces\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--status <value>\", \"status\")\n .option(\"--priority <value>\", \"priority\")\n .option(\"--current-strength <value>\", \"currentStrength\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedCurrentStrength = coerceBodyFlag(opts.currentStrength, { field: \"currentStrength\", flag: \"--current-strength\", kind: \"number\" }, exitWithError);\n if (parsedCurrentStrength !== undefined) bodyFromFlags.currentStrength = parsedCurrentStrength;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"spaces\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"organizationId\",\"projectId\"],\n queryFields: [\"organizationId\",\"projectId\",\"include\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"spaces\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n spacesCmd.command(\"update [id]\").description(\"Update spaces\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--status <value>\", \"status\")\n .option(\"--priority <value>\", \"priority\")\n .option(\"--current-strength <value>\", \"currentStrength\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"spaces\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedCurrentStrength = coerceBodyFlag(opts.currentStrength, { field: \"currentStrength\", flag: \"--current-strength\", kind: \"number\" }, exitWithError);\n if (parsedCurrentStrength !== undefined) bodyFromFlags.currentStrength = parsedCurrentStrength;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"spaces/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"spaces\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedCurrentStrength = coerceBodyFlag(opts.currentStrength, { field: \"currentStrength\", flag: \"--current-strength\", kind: \"number\" }, exitWithError);\n if (parsedCurrentStrength !== undefined) bodyFromFlags.currentStrength = parsedCurrentStrength;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"spaces/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedCurrentStrength = coerceBodyFlag(opts.currentStrength, { field: \"currentStrength\", flag: \"--current-strength\", kind: \"number\" }, exitWithError);\n if (parsedCurrentStrength !== undefined) bodyFromFlags.currentStrength = parsedCurrentStrength;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"spaces/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n spacesCmd.command(\"delete [id]\").description(\"Delete spaces\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"spaces\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"spaces/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"spaces/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- scouts ---\n const scoutsCmd = program.command(\"scouts\").description(\"scouts resource\");\n scoutsCmd.command(\"list\").description(\"List scouts\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .option(\"--category-id <value>\", \"Filter by categoryId\")\n .option(\"--include <value>\", \"Filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.categoryId != null) {\n query.categoryId = coerceQueryFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"scouts\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n scoutsCmd.command(\"get <id>\").description(\"Get one scouts by id\")\n .option(\"--include <value>\", \"Include/filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await apiRequest({ method: \"GET\", path: \"scouts/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n scoutsCmd.command(\"create\").description(\"Create scouts\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--metadata <value>\", \"metadata\")\n .option(\"--url <value>\", \"url\")\n .option(\"--hero-image <value>\", \"heroImage\")\n .option(\"--priority <value>\", \"priority\")\n .option(\"--status <value>\", \"status\")\n .option(\"--estimated-cost <value>\", \"estimatedCost\")\n .option(\"--potential-cost <value>\", \"potentialCost\")\n .option(\"--need <value>\", \"need\")\n .option(\"--urgency <value>\", \"urgency\")\n .option(\"--use <value>\", \"use\")\n .option(\"--longevity <value>\", \"longevity\")\n .option(\"--roi <value>\", \"roi\")\n .option(\"--system-fit <value>\", \"systemFit\")\n .option(\"--emotional-pull <value>\", \"emotionalPull\")\n .option(\"--infrastructure-fit <value>\", \"infrastructureFit\")\n .option(\"--activation-potential <value>\", \"activationPotential\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedMetadata = coerceBodyFlag(opts.metadata, { field: \"metadata\", flag: \"--metadata\", kind: \"string\" }, exitWithError);\n if (parsedMetadata !== undefined) bodyFromFlags.metadata = parsedMetadata;\n const parsedUrl = coerceBodyFlag(opts.url, { field: \"url\", flag: \"--url\", kind: \"string\" }, exitWithError);\n if (parsedUrl !== undefined) bodyFromFlags.url = parsedUrl;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedEstimatedCost = coerceBodyFlag(opts.estimatedCost, { field: \"estimatedCost\", flag: \"--estimated-cost\", kind: \"number\" }, exitWithError);\n if (parsedEstimatedCost !== undefined) bodyFromFlags.estimatedCost = parsedEstimatedCost;\n const parsedPotentialCost = coerceBodyFlag(opts.potentialCost, { field: \"potentialCost\", flag: \"--potential-cost\", kind: \"number\" }, exitWithError);\n if (parsedPotentialCost !== undefined) bodyFromFlags.potentialCost = parsedPotentialCost;\n const parsedNeed = coerceBodyFlag(opts.need, { field: \"need\", flag: \"--need\", kind: \"number\" }, exitWithError);\n if (parsedNeed !== undefined) bodyFromFlags.need = parsedNeed;\n const parsedUrgency = coerceBodyFlag(opts.urgency, { field: \"urgency\", flag: \"--urgency\", kind: \"number\" }, exitWithError);\n if (parsedUrgency !== undefined) bodyFromFlags.urgency = parsedUrgency;\n const parsedUse = coerceBodyFlag(opts.use, { field: \"use\", flag: \"--use\", kind: \"number\" }, exitWithError);\n if (parsedUse !== undefined) bodyFromFlags.use = parsedUse;\n const parsedLongevity = coerceBodyFlag(opts.longevity, { field: \"longevity\", flag: \"--longevity\", kind: \"number\" }, exitWithError);\n if (parsedLongevity !== undefined) bodyFromFlags.longevity = parsedLongevity;\n const parsedRoi = coerceBodyFlag(opts.roi, { field: \"roi\", flag: \"--roi\", kind: \"number\" }, exitWithError);\n if (parsedRoi !== undefined) bodyFromFlags.roi = parsedRoi;\n const parsedSystemFit = coerceBodyFlag(opts.systemFit, { field: \"systemFit\", flag: \"--system-fit\", kind: \"number\" }, exitWithError);\n if (parsedSystemFit !== undefined) bodyFromFlags.systemFit = parsedSystemFit;\n const parsedEmotionalPull = coerceBodyFlag(opts.emotionalPull, { field: \"emotionalPull\", flag: \"--emotional-pull\", kind: \"number\" }, exitWithError);\n if (parsedEmotionalPull !== undefined) bodyFromFlags.emotionalPull = parsedEmotionalPull;\n const parsedInfrastructureFit = coerceBodyFlag(opts.infrastructureFit, { field: \"infrastructureFit\", flag: \"--infrastructure-fit\", kind: \"number\" }, exitWithError);\n if (parsedInfrastructureFit !== undefined) bodyFromFlags.infrastructureFit = parsedInfrastructureFit;\n const parsedActivationPotential = coerceBodyFlag(opts.activationPotential, { field: \"activationPotential\", flag: \"--activation-potential\", kind: \"number\" }, exitWithError);\n if (parsedActivationPotential !== undefined) bodyFromFlags.activationPotential = parsedActivationPotential;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"scouts\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"organizationId\"],\n queryFields: [\"organizationId\",\"categoryId\",\"include\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"scouts\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n scoutsCmd.command(\"update [id]\").description(\"Update scouts\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--url <value>\", \"url\")\n .option(\"--hero-image <value>\", \"heroImage\")\n .option(\"--priority <value>\", \"priority\")\n .option(\"--status <value>\", \"status\")\n .option(\"--estimated-cost <value>\", \"estimatedCost\")\n .option(\"--potential-cost <value>\", \"potentialCost\")\n .option(\"--need <value>\", \"need\")\n .option(\"--urgency <value>\", \"urgency\")\n .option(\"--use <value>\", \"use\")\n .option(\"--longevity <value>\", \"longevity\")\n .option(\"--roi <value>\", \"roi\")\n .option(\"--system-fit <value>\", \"systemFit\")\n .option(\"--emotional-pull <value>\", \"emotionalPull\")\n .option(\"--infrastructure-fit <value>\", \"infrastructureFit\")\n .option(\"--activation-potential <value>\", \"activationPotential\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"scouts\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedUrl = coerceBodyFlag(opts.url, { field: \"url\", flag: \"--url\", kind: \"string\" }, exitWithError);\n if (parsedUrl !== undefined) bodyFromFlags.url = parsedUrl;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedEstimatedCost = coerceBodyFlag(opts.estimatedCost, { field: \"estimatedCost\", flag: \"--estimated-cost\", kind: \"number\" }, exitWithError);\n if (parsedEstimatedCost !== undefined) bodyFromFlags.estimatedCost = parsedEstimatedCost;\n const parsedPotentialCost = coerceBodyFlag(opts.potentialCost, { field: \"potentialCost\", flag: \"--potential-cost\", kind: \"number\" }, exitWithError);\n if (parsedPotentialCost !== undefined) bodyFromFlags.potentialCost = parsedPotentialCost;\n const parsedNeed = coerceBodyFlag(opts.need, { field: \"need\", flag: \"--need\", kind: \"number\" }, exitWithError);\n if (parsedNeed !== undefined) bodyFromFlags.need = parsedNeed;\n const parsedUrgency = coerceBodyFlag(opts.urgency, { field: \"urgency\", flag: \"--urgency\", kind: \"number\" }, exitWithError);\n if (parsedUrgency !== undefined) bodyFromFlags.urgency = parsedUrgency;\n const parsedUse = coerceBodyFlag(opts.use, { field: \"use\", flag: \"--use\", kind: \"number\" }, exitWithError);\n if (parsedUse !== undefined) bodyFromFlags.use = parsedUse;\n const parsedLongevity = coerceBodyFlag(opts.longevity, { field: \"longevity\", flag: \"--longevity\", kind: \"number\" }, exitWithError);\n if (parsedLongevity !== undefined) bodyFromFlags.longevity = parsedLongevity;\n const parsedRoi = coerceBodyFlag(opts.roi, { field: \"roi\", flag: \"--roi\", kind: \"number\" }, exitWithError);\n if (parsedRoi !== undefined) bodyFromFlags.roi = parsedRoi;\n const parsedSystemFit = coerceBodyFlag(opts.systemFit, { field: \"systemFit\", flag: \"--system-fit\", kind: \"number\" }, exitWithError);\n if (parsedSystemFit !== undefined) bodyFromFlags.systemFit = parsedSystemFit;\n const parsedEmotionalPull = coerceBodyFlag(opts.emotionalPull, { field: \"emotionalPull\", flag: \"--emotional-pull\", kind: \"number\" }, exitWithError);\n if (parsedEmotionalPull !== undefined) bodyFromFlags.emotionalPull = parsedEmotionalPull;\n const parsedInfrastructureFit = coerceBodyFlag(opts.infrastructureFit, { field: \"infrastructureFit\", flag: \"--infrastructure-fit\", kind: \"number\" }, exitWithError);\n if (parsedInfrastructureFit !== undefined) bodyFromFlags.infrastructureFit = parsedInfrastructureFit;\n const parsedActivationPotential = coerceBodyFlag(opts.activationPotential, { field: \"activationPotential\", flag: \"--activation-potential\", kind: \"number\" }, exitWithError);\n if (parsedActivationPotential !== undefined) bodyFromFlags.activationPotential = parsedActivationPotential;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"scouts/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"scouts\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedUrl = coerceBodyFlag(opts.url, { field: \"url\", flag: \"--url\", kind: \"string\" }, exitWithError);\n if (parsedUrl !== undefined) bodyFromFlags.url = parsedUrl;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedEstimatedCost = coerceBodyFlag(opts.estimatedCost, { field: \"estimatedCost\", flag: \"--estimated-cost\", kind: \"number\" }, exitWithError);\n if (parsedEstimatedCost !== undefined) bodyFromFlags.estimatedCost = parsedEstimatedCost;\n const parsedPotentialCost = coerceBodyFlag(opts.potentialCost, { field: \"potentialCost\", flag: \"--potential-cost\", kind: \"number\" }, exitWithError);\n if (parsedPotentialCost !== undefined) bodyFromFlags.potentialCost = parsedPotentialCost;\n const parsedNeed = coerceBodyFlag(opts.need, { field: \"need\", flag: \"--need\", kind: \"number\" }, exitWithError);\n if (parsedNeed !== undefined) bodyFromFlags.need = parsedNeed;\n const parsedUrgency = coerceBodyFlag(opts.urgency, { field: \"urgency\", flag: \"--urgency\", kind: \"number\" }, exitWithError);\n if (parsedUrgency !== undefined) bodyFromFlags.urgency = parsedUrgency;\n const parsedUse = coerceBodyFlag(opts.use, { field: \"use\", flag: \"--use\", kind: \"number\" }, exitWithError);\n if (parsedUse !== undefined) bodyFromFlags.use = parsedUse;\n const parsedLongevity = coerceBodyFlag(opts.longevity, { field: \"longevity\", flag: \"--longevity\", kind: \"number\" }, exitWithError);\n if (parsedLongevity !== undefined) bodyFromFlags.longevity = parsedLongevity;\n const parsedRoi = coerceBodyFlag(opts.roi, { field: \"roi\", flag: \"--roi\", kind: \"number\" }, exitWithError);\n if (parsedRoi !== undefined) bodyFromFlags.roi = parsedRoi;\n const parsedSystemFit = coerceBodyFlag(opts.systemFit, { field: \"systemFit\", flag: \"--system-fit\", kind: \"number\" }, exitWithError);\n if (parsedSystemFit !== undefined) bodyFromFlags.systemFit = parsedSystemFit;\n const parsedEmotionalPull = coerceBodyFlag(opts.emotionalPull, { field: \"emotionalPull\", flag: \"--emotional-pull\", kind: \"number\" }, exitWithError);\n if (parsedEmotionalPull !== undefined) bodyFromFlags.emotionalPull = parsedEmotionalPull;\n const parsedInfrastructureFit = coerceBodyFlag(opts.infrastructureFit, { field: \"infrastructureFit\", flag: \"--infrastructure-fit\", kind: \"number\" }, exitWithError);\n if (parsedInfrastructureFit !== undefined) bodyFromFlags.infrastructureFit = parsedInfrastructureFit;\n const parsedActivationPotential = coerceBodyFlag(opts.activationPotential, { field: \"activationPotential\", flag: \"--activation-potential\", kind: \"number\" }, exitWithError);\n if (parsedActivationPotential !== undefined) bodyFromFlags.activationPotential = parsedActivationPotential;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"scouts/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedUrl = coerceBodyFlag(opts.url, { field: \"url\", flag: \"--url\", kind: \"string\" }, exitWithError);\n if (parsedUrl !== undefined) bodyFromFlags.url = parsedUrl;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedPriority = coerceBodyFlag(opts.priority, { field: \"priority\", flag: \"--priority\", kind: \"string\" }, exitWithError);\n if (parsedPriority !== undefined) bodyFromFlags.priority = parsedPriority;\n const parsedStatus = coerceBodyFlag(opts.status, { field: \"status\", flag: \"--status\", kind: \"string\" }, exitWithError);\n if (parsedStatus !== undefined) bodyFromFlags.status = parsedStatus;\n const parsedEstimatedCost = coerceBodyFlag(opts.estimatedCost, { field: \"estimatedCost\", flag: \"--estimated-cost\", kind: \"number\" }, exitWithError);\n if (parsedEstimatedCost !== undefined) bodyFromFlags.estimatedCost = parsedEstimatedCost;\n const parsedPotentialCost = coerceBodyFlag(opts.potentialCost, { field: \"potentialCost\", flag: \"--potential-cost\", kind: \"number\" }, exitWithError);\n if (parsedPotentialCost !== undefined) bodyFromFlags.potentialCost = parsedPotentialCost;\n const parsedNeed = coerceBodyFlag(opts.need, { field: \"need\", flag: \"--need\", kind: \"number\" }, exitWithError);\n if (parsedNeed !== undefined) bodyFromFlags.need = parsedNeed;\n const parsedUrgency = coerceBodyFlag(opts.urgency, { field: \"urgency\", flag: \"--urgency\", kind: \"number\" }, exitWithError);\n if (parsedUrgency !== undefined) bodyFromFlags.urgency = parsedUrgency;\n const parsedUse = coerceBodyFlag(opts.use, { field: \"use\", flag: \"--use\", kind: \"number\" }, exitWithError);\n if (parsedUse !== undefined) bodyFromFlags.use = parsedUse;\n const parsedLongevity = coerceBodyFlag(opts.longevity, { field: \"longevity\", flag: \"--longevity\", kind: \"number\" }, exitWithError);\n if (parsedLongevity !== undefined) bodyFromFlags.longevity = parsedLongevity;\n const parsedRoi = coerceBodyFlag(opts.roi, { field: \"roi\", flag: \"--roi\", kind: \"number\" }, exitWithError);\n if (parsedRoi !== undefined) bodyFromFlags.roi = parsedRoi;\n const parsedSystemFit = coerceBodyFlag(opts.systemFit, { field: \"systemFit\", flag: \"--system-fit\", kind: \"number\" }, exitWithError);\n if (parsedSystemFit !== undefined) bodyFromFlags.systemFit = parsedSystemFit;\n const parsedEmotionalPull = coerceBodyFlag(opts.emotionalPull, { field: \"emotionalPull\", flag: \"--emotional-pull\", kind: \"number\" }, exitWithError);\n if (parsedEmotionalPull !== undefined) bodyFromFlags.emotionalPull = parsedEmotionalPull;\n const parsedInfrastructureFit = coerceBodyFlag(opts.infrastructureFit, { field: \"infrastructureFit\", flag: \"--infrastructure-fit\", kind: \"number\" }, exitWithError);\n if (parsedInfrastructureFit !== undefined) bodyFromFlags.infrastructureFit = parsedInfrastructureFit;\n const parsedActivationPotential = coerceBodyFlag(opts.activationPotential, { field: \"activationPotential\", flag: \"--activation-potential\", kind: \"number\" }, exitWithError);\n if (parsedActivationPotential !== undefined) bodyFromFlags.activationPotential = parsedActivationPotential;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"scouts/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n scoutsCmd.command(\"delete [id]\").description(\"Delete scouts\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"scouts\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"scouts/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"scouts/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- assets ---\n const assetsCmd = program.command(\"assets\").description(\"assets resource\");\n assetsCmd.command(\"list\").description(\"List assets\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .option(\"--scout-id <value>\", \"Filter by scoutId\")\n .option(\"--include <value>\", \"Filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.scoutId != null) {\n query.scoutId = coerceQueryFlag(opts.scoutId, { field: \"scoutId\", flag: \"--scout-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"assets\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n assetsCmd.command(\"get <id>\").description(\"Get one assets by id\")\n .option(\"--include <value>\", \"Include/filter by include\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.include != null) {\n query.include = coerceQueryFlag(opts.include, { field: \"include\", flag: \"--include\", kind: \"string\" }, exitWithError);\n }\n const res = await apiRequest({ method: \"GET\", path: \"assets/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n assetsCmd.command(\"create\").description(\"Create assets\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--scout-id <value>\", \"scoutId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--hero-image <value>\", \"heroImage\")\n .option(\"--condition <value>\", \"condition\")\n .option(\"--satisfaction <value>\", \"satisfaction\")\n .option(\"--usage <value>\", \"usage\")\n .option(\"--friction <value>\", \"friction\")\n .option(\"--lifetime-value <value>\", \"lifetimeValue\")\n .option(\"--acquisition-date <value>\", \"acquisitionDate\")\n .option(\"--cost <value>\", \"cost\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedScoutId = coerceBodyFlag(opts.scoutId, { field: \"scoutId\", flag: \"--scout-id\", kind: \"string\" }, exitWithError);\n if (parsedScoutId !== undefined) bodyFromFlags.scoutId = parsedScoutId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\" }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedCondition = coerceBodyFlag(opts.condition, { field: \"condition\", flag: \"--condition\", kind: \"number\" }, exitWithError);\n if (parsedCondition !== undefined) bodyFromFlags.condition = parsedCondition;\n const parsedSatisfaction = coerceBodyFlag(opts.satisfaction, { field: \"satisfaction\", flag: \"--satisfaction\", kind: \"number\" }, exitWithError);\n if (parsedSatisfaction !== undefined) bodyFromFlags.satisfaction = parsedSatisfaction;\n const parsedUsage = coerceBodyFlag(opts.usage, { field: \"usage\", flag: \"--usage\", kind: \"number\" }, exitWithError);\n if (parsedUsage !== undefined) bodyFromFlags.usage = parsedUsage;\n const parsedFriction = coerceBodyFlag(opts.friction, { field: \"friction\", flag: \"--friction\", kind: \"number\" }, exitWithError);\n if (parsedFriction !== undefined) bodyFromFlags.friction = parsedFriction;\n const parsedLifetimeValue = coerceBodyFlag(opts.lifetimeValue, { field: \"lifetimeValue\", flag: \"--lifetime-value\", kind: \"number\" }, exitWithError);\n if (parsedLifetimeValue !== undefined) bodyFromFlags.lifetimeValue = parsedLifetimeValue;\n const parsedAcquisitionDate = coerceBodyFlag(opts.acquisitionDate, { field: \"acquisitionDate\", flag: \"--acquisition-date\", kind: \"number\" }, exitWithError);\n if (parsedAcquisitionDate !== undefined) bodyFromFlags.acquisitionDate = parsedAcquisitionDate;\n const parsedCost = coerceBodyFlag(opts.cost, { field: \"cost\", flag: \"--cost\", kind: \"number\" }, exitWithError);\n if (parsedCost !== undefined) bodyFromFlags.cost = parsedCost;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"assets\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"organizationId\"],\n queryFields: [\"organizationId\",\"scoutId\",\"include\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"assets\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n assetsCmd.command(\"update [id]\").description(\"Update assets\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--description <value>\", \"description\")\n .option(\"--scout-id <value>\", \"scoutId\")\n .option(\"--category-id <value>\", \"categoryId\")\n .option(\"--hero-image <value>\", \"heroImage\")\n .option(\"--condition <value>\", \"condition\")\n .option(\"--satisfaction <value>\", \"satisfaction\")\n .option(\"--usage <value>\", \"usage\")\n .option(\"--friction <value>\", \"friction\")\n .option(\"--lifetime-value <value>\", \"lifetimeValue\")\n .option(\"--acquisition-date <value>\", \"acquisitionDate\")\n .option(\"--cost <value>\", \"cost\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"assets\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedScoutId = coerceBodyFlag(opts.scoutId, { field: \"scoutId\", flag: \"--scout-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedScoutId !== undefined) bodyFromFlags.scoutId = parsedScoutId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedCondition = coerceBodyFlag(opts.condition, { field: \"condition\", flag: \"--condition\", kind: \"number\" }, exitWithError);\n if (parsedCondition !== undefined) bodyFromFlags.condition = parsedCondition;\n const parsedSatisfaction = coerceBodyFlag(opts.satisfaction, { field: \"satisfaction\", flag: \"--satisfaction\", kind: \"number\" }, exitWithError);\n if (parsedSatisfaction !== undefined) bodyFromFlags.satisfaction = parsedSatisfaction;\n const parsedUsage = coerceBodyFlag(opts.usage, { field: \"usage\", flag: \"--usage\", kind: \"number\" }, exitWithError);\n if (parsedUsage !== undefined) bodyFromFlags.usage = parsedUsage;\n const parsedFriction = coerceBodyFlag(opts.friction, { field: \"friction\", flag: \"--friction\", kind: \"number\" }, exitWithError);\n if (parsedFriction !== undefined) bodyFromFlags.friction = parsedFriction;\n const parsedLifetimeValue = coerceBodyFlag(opts.lifetimeValue, { field: \"lifetimeValue\", flag: \"--lifetime-value\", kind: \"number\" }, exitWithError);\n if (parsedLifetimeValue !== undefined) bodyFromFlags.lifetimeValue = parsedLifetimeValue;\n const parsedAcquisitionDate = coerceBodyFlag(opts.acquisitionDate, { field: \"acquisitionDate\", flag: \"--acquisition-date\", kind: \"number\" }, exitWithError);\n if (parsedAcquisitionDate !== undefined) bodyFromFlags.acquisitionDate = parsedAcquisitionDate;\n const parsedCost = coerceBodyFlag(opts.cost, { field: \"cost\", flag: \"--cost\", kind: \"number\" }, exitWithError);\n if (parsedCost !== undefined) bodyFromFlags.cost = parsedCost;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"assets/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"assets\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedScoutId = coerceBodyFlag(opts.scoutId, { field: \"scoutId\", flag: \"--scout-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedScoutId !== undefined) bodyFromFlags.scoutId = parsedScoutId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedCondition = coerceBodyFlag(opts.condition, { field: \"condition\", flag: \"--condition\", kind: \"number\" }, exitWithError);\n if (parsedCondition !== undefined) bodyFromFlags.condition = parsedCondition;\n const parsedSatisfaction = coerceBodyFlag(opts.satisfaction, { field: \"satisfaction\", flag: \"--satisfaction\", kind: \"number\" }, exitWithError);\n if (parsedSatisfaction !== undefined) bodyFromFlags.satisfaction = parsedSatisfaction;\n const parsedUsage = coerceBodyFlag(opts.usage, { field: \"usage\", flag: \"--usage\", kind: \"number\" }, exitWithError);\n if (parsedUsage !== undefined) bodyFromFlags.usage = parsedUsage;\n const parsedFriction = coerceBodyFlag(opts.friction, { field: \"friction\", flag: \"--friction\", kind: \"number\" }, exitWithError);\n if (parsedFriction !== undefined) bodyFromFlags.friction = parsedFriction;\n const parsedLifetimeValue = coerceBodyFlag(opts.lifetimeValue, { field: \"lifetimeValue\", flag: \"--lifetime-value\", kind: \"number\" }, exitWithError);\n if (parsedLifetimeValue !== undefined) bodyFromFlags.lifetimeValue = parsedLifetimeValue;\n const parsedAcquisitionDate = coerceBodyFlag(opts.acquisitionDate, { field: \"acquisitionDate\", flag: \"--acquisition-date\", kind: \"number\" }, exitWithError);\n if (parsedAcquisitionDate !== undefined) bodyFromFlags.acquisitionDate = parsedAcquisitionDate;\n const parsedCost = coerceBodyFlag(opts.cost, { field: \"cost\", flag: \"--cost\", kind: \"number\" }, exitWithError);\n if (parsedCost !== undefined) bodyFromFlags.cost = parsedCost;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"assets/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDescription = coerceBodyFlag(opts.description, { field: \"description\", flag: \"--description\", kind: \"string\" }, exitWithError);\n if (parsedDescription !== undefined) bodyFromFlags.description = parsedDescription;\n const parsedScoutId = coerceBodyFlag(opts.scoutId, { field: \"scoutId\", flag: \"--scout-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedScoutId !== undefined) bodyFromFlags.scoutId = parsedScoutId;\n const parsedCategoryId = coerceBodyFlag(opts.categoryId, { field: \"categoryId\", flag: \"--category-id\", kind: \"string\", allowNull: true }, exitWithError);\n if (parsedCategoryId !== undefined) bodyFromFlags.categoryId = parsedCategoryId;\n const parsedHeroImage = coerceBodyFlag(opts.heroImage, { field: \"heroImage\", flag: \"--hero-image\", kind: \"string\" }, exitWithError);\n if (parsedHeroImage !== undefined) bodyFromFlags.heroImage = parsedHeroImage;\n const parsedCondition = coerceBodyFlag(opts.condition, { field: \"condition\", flag: \"--condition\", kind: \"number\" }, exitWithError);\n if (parsedCondition !== undefined) bodyFromFlags.condition = parsedCondition;\n const parsedSatisfaction = coerceBodyFlag(opts.satisfaction, { field: \"satisfaction\", flag: \"--satisfaction\", kind: \"number\" }, exitWithError);\n if (parsedSatisfaction !== undefined) bodyFromFlags.satisfaction = parsedSatisfaction;\n const parsedUsage = coerceBodyFlag(opts.usage, { field: \"usage\", flag: \"--usage\", kind: \"number\" }, exitWithError);\n if (parsedUsage !== undefined) bodyFromFlags.usage = parsedUsage;\n const parsedFriction = coerceBodyFlag(opts.friction, { field: \"friction\", flag: \"--friction\", kind: \"number\" }, exitWithError);\n if (parsedFriction !== undefined) bodyFromFlags.friction = parsedFriction;\n const parsedLifetimeValue = coerceBodyFlag(opts.lifetimeValue, { field: \"lifetimeValue\", flag: \"--lifetime-value\", kind: \"number\" }, exitWithError);\n if (parsedLifetimeValue !== undefined) bodyFromFlags.lifetimeValue = parsedLifetimeValue;\n const parsedAcquisitionDate = coerceBodyFlag(opts.acquisitionDate, { field: \"acquisitionDate\", flag: \"--acquisition-date\", kind: \"number\" }, exitWithError);\n if (parsedAcquisitionDate !== undefined) bodyFromFlags.acquisitionDate = parsedAcquisitionDate;\n const parsedCost = coerceBodyFlag(opts.cost, { field: \"cost\", flag: \"--cost\", kind: \"number\" }, exitWithError);\n if (parsedCost !== undefined) bodyFromFlags.cost = parsedCost;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"assets/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n assetsCmd.command(\"delete [id]\").description(\"Delete assets\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"assets\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"assets/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"assets/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- categories ---\n const categoriesCmd = program.command(\"categories\").description(\"categories resource\");\n categoriesCmd.command(\"list\").description(\"List categories\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"categories\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n categoriesCmd.command(\"get <id>\").description(\"Get one categories by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"create\").description(\"Create categories\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--default-bucket <value>\", \"defaultBucket\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedDefaultBucket = coerceBodyFlag(opts.defaultBucket, { field: \"defaultBucket\", flag: \"--default-bucket\", kind: \"string\" }, exitWithError);\n if (parsedDefaultBucket !== undefined) bodyFromFlags.defaultBucket = parsedDefaultBucket;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"categories\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"organizationId\"],\n queryFields: [\"organizationId\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"categories\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"update [id]\").description(\"Update categories\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--default-bucket <value>\", \"defaultBucket\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"categories\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDefaultBucket = coerceBodyFlag(opts.defaultBucket, { field: \"defaultBucket\", flag: \"--default-bucket\", kind: \"string\" }, exitWithError);\n if (parsedDefaultBucket !== undefined) bodyFromFlags.defaultBucket = parsedDefaultBucket;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"categories\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDefaultBucket = coerceBodyFlag(opts.defaultBucket, { field: \"defaultBucket\", flag: \"--default-bucket\", kind: \"string\" }, exitWithError);\n if (parsedDefaultBucket !== undefined) bodyFromFlags.defaultBucket = parsedDefaultBucket;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedDefaultBucket = coerceBodyFlag(opts.defaultBucket, { field: \"defaultBucket\", flag: \"--default-bucket\", kind: \"string\" }, exitWithError);\n if (parsedDefaultBucket !== undefined) bodyFromFlags.defaultBucket = parsedDefaultBucket;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n categoriesCmd.command(\"delete [id]\").description(\"Delete categories\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"categories\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"categories/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"categories/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- labels ---\n const labelsCmd = program.command(\"labels\").description(\"labels resource\");\n labelsCmd.command(\"list\").description(\"List labels\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"labels\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n labelsCmd.command(\"get <id>\").description(\"Get one labels by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"labels/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n labelsCmd.command(\"create\").description(\"Create labels\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--colour <value>\", \"colour\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedColour = coerceBodyFlag(opts.colour, { field: \"colour\", flag: \"--colour\", kind: \"string\" }, exitWithError);\n if (parsedColour !== undefined) bodyFromFlags.colour = parsedColour;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"labels\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"organizationId\"],\n queryFields: [\"organizationId\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"labels\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n labelsCmd.command(\"update [id]\").description(\"Update labels\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--colour <value>\", \"colour\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"labels\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColour = coerceBodyFlag(opts.colour, { field: \"colour\", flag: \"--colour\", kind: \"string\" }, exitWithError);\n if (parsedColour !== undefined) bodyFromFlags.colour = parsedColour;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"labels/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"labels\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColour = coerceBodyFlag(opts.colour, { field: \"colour\", flag: \"--colour\", kind: \"string\" }, exitWithError);\n if (parsedColour !== undefined) bodyFromFlags.colour = parsedColour;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"labels/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedColour = coerceBodyFlag(opts.colour, { field: \"colour\", flag: \"--colour\", kind: \"string\" }, exitWithError);\n if (parsedColour !== undefined) bodyFromFlags.colour = parsedColour;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"labels/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n labelsCmd.command(\"delete [id]\").description(\"Delete labels\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"labels\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"labels/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"labels/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- views ---\n const viewsCmd = program.command(\"views\").description(\"views resource\");\n viewsCmd.command(\"list\").description(\"List views\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--organization-id <value>\", \"Filter by organizationId\")\n .option(\"--project-id <value>\", \"Filter by projectId\")\n .option(\"--entity-type <value>\", \"Filter by entityType\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.organizationId != null) {\n query.organizationId = coerceQueryFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.projectId != null) {\n query.projectId = coerceQueryFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n }\n if (opts.entityType != null) {\n query.entityType = coerceQueryFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"views\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n viewsCmd.command(\"get <id>\").description(\"Get one views by id\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n const res = await apiRequest({ method: \"GET\", path: \"views/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), query });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n viewsCmd.command(\"create\").description(\"Create views\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--name <value>\", \"name\")\n .option(\"--organization-id <value>\", \"organizationId\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--entity-type <value>\", \"entityType\")\n .option(\"--config <value>\", \"config\")\n .option(\"--is-default <value>\", \"isDefault\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedOrganizationId = coerceBodyFlag(opts.organizationId, { field: \"organizationId\", flag: \"--organization-id\", kind: \"string\" }, exitWithError);\n if (parsedOrganizationId !== undefined) bodyFromFlags.organizationId = parsedOrganizationId;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedConfig = coerceBodyFlag(opts.config, { field: \"config\", flag: \"--config\", kind: \"string\" }, exitWithError);\n if (parsedConfig !== undefined) bodyFromFlags.config = parsedConfig;\n const parsedIsDefault = coerceBodyFlag(opts.isDefault, { field: \"isDefault\", flag: \"--is-default\", kind: \"boolean\" }, exitWithError);\n if (parsedIsDefault !== undefined) bodyFromFlags.isDefault = parsedIsDefault;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"views\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"name\",\"entityType\",\"organizationId\",\"projectId\"],\n queryFields: [\"organizationId\",\"projectId\",\"entityType\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"views\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n viewsCmd.command(\"update [id]\").description(\"Update views\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk update (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk update\")\n .option(\"--input <path>\", \"JSON/JSONL records for bulk update; use - for stdin\")\n .option(\"--dry-run\", \"Preview bulk update without sending requests\")\n .option(\"--name <value>\", \"name\")\n .option(\"--project-id <value>\", \"projectId\")\n .option(\"--config <value>\", \"config\")\n .option(\"--is-default <value>\", \"isDefault\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const inputRecords = await parseBulkInput(opts.input);\n if (inputRecords.length > 0) {\n const ids = inputRecords.map(getBulkRecordId).filter((value): value is string => value !== null);\n if (ids.length !== inputRecords.length) exitWithError(400, \"Each --input record must include id or _id\");\n validateBulkIds(ids, \"views\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: inputRecords,\n runOne: async (record) => {\n const itemId = getBulkRecordId(record)!;\n const recordBody = { ...record };\n delete recordBody.id;\n delete recordBody._id;\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedConfig = coerceBodyFlag(opts.config, { field: \"config\", flag: \"--config\", kind: \"string\" }, exitWithError);\n if (parsedConfig !== undefined) bodyFromFlags.config = parsedConfig;\n const parsedIsDefault = coerceBodyFlag(opts.isDefault, { field: \"isDefault\", flag: \"--is-default\", kind: \"boolean\" }, exitWithError);\n if (parsedIsDefault !== undefined) bodyFromFlags.isDefault = parsedIsDefault;\n const body = { ...recordBody, ...mergeBody(bodyFromFlags, opts.body) };\n const res = await apiRequest({ method: \"PATCH\", path: \"views/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (record, ok, status, _data, err) => ok ? { _id: getBulkRecordId(record)!, status: \"updated\" } : { _id: getBulkRecordId(record) ?? undefined, error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"views\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_update\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedConfig = coerceBodyFlag(opts.config, { field: \"config\", flag: \"--config\", kind: \"string\" }, exitWithError);\n if (parsedConfig !== undefined) bodyFromFlags.config = parsedConfig;\n const parsedIsDefault = coerceBodyFlag(opts.isDefault, { field: \"isDefault\", flag: \"--is-default\", kind: \"boolean\" }, exitWithError);\n if (parsedIsDefault !== undefined) bodyFromFlags.isDefault = parsedIsDefault;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"views/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl(), body });\n return { ok: res.ok, status: res.status || 0, data: res.data, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"updated\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, --ids-file, or --input\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedName = coerceBodyFlag(opts.name, { field: \"name\", flag: \"--name\", kind: \"string\" }, exitWithError);\n if (parsedName !== undefined) bodyFromFlags.name = parsedName;\n const parsedProjectId = coerceBodyFlag(opts.projectId, { field: \"projectId\", flag: \"--project-id\", kind: \"string\" }, exitWithError);\n if (parsedProjectId !== undefined) bodyFromFlags.projectId = parsedProjectId;\n const parsedConfig = coerceBodyFlag(opts.config, { field: \"config\", flag: \"--config\", kind: \"string\" }, exitWithError);\n if (parsedConfig !== undefined) bodyFromFlags.config = parsedConfig;\n const parsedIsDefault = coerceBodyFlag(opts.isDefault, { field: \"isDefault\", flag: \"--is-default\", kind: \"boolean\" }, exitWithError);\n if (parsedIsDefault !== undefined) bodyFromFlags.isDefault = parsedIsDefault;\n const body = mergeBody(bodyFromFlags, opts.body);\n const res = await apiRequest({ method: \"PATCH\", path: \"views/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n viewsCmd.command(\"delete [id]\").description(\"Delete views\")\n .option(\"--ids <ids>\", \"Comma-separated IDs for bulk delete (max 25)\")\n .option(\"--ids-file <path>\", \"File containing IDs for bulk delete\")\n .option(\"--dry-run\", \"Preview delete without sending requests\")\n .option(\"--yes\", \"Confirm destructive bulk delete\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (id, opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const ids = await parseIdsInput(opts.ids, opts.idsFile);\n if (ids.length > 0) {\n validateBulkIds(ids, \"views\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { data: ids.map((_id) => ({ _id, status: \"would_delete\" })), summary: { total: ids.length, succeeded: ids.length, failed: 0 } }, false);\n return;\n }\n const { data, summary } = await runBulk({\n items: ids,\n runOne: async (itemId) => {\n const res = await apiRequest({ method: \"DELETE\", path: \"views/\" + encodeURIComponent(itemId), token, baseUrl: getBaseUrl() });\n return { ok: res.ok, status: res.status || 0, error: res.error };\n },\n toResult: (itemId, ok, status, _data, err) => ok ? { _id: itemId, status: \"deleted\" } : { error: true, statusCode: status, message: err ?? \"Failed\" },\n });\n printOutput(getOutputFormat(), { data, summary }, false);\n return;\n }\n if (!id) exitWithError(400, \"Provide id, --ids, or --ids-file\");\n if (opts.dryRun) {\n printOutput(getOutputFormat(), { _id: id, status: \"would_delete\" }, false);\n return;\n }\n const res = await apiRequest({ method: \"DELETE\", path: \"views/\" + encodeURIComponent(id), token, baseUrl: getBaseUrl() });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n if (getOutputFormat() === \"json\") console.log(JSON.stringify({ data: null, deleted: true }));\n });\n\n // --- comments ---\n const commentsCmd = program.command(\"comments\").description(\"comments resource\");\n commentsCmd.command(\"list\").description(\"List comments\")\n .option(\"--limit <n>\", \"Max results\")\n .option(\"--offset <n>\", \"Skip n results\")\n .option(\"--all\", \"Fetch all pages\")\n .option(\"--fields <fields>\", \"Comma-separated fields to print\")\n .option(\"--where <field=value>\", \"Client-side exact filters, comma-separated\")\n .option(\"--jsonl\", \"Print one compact JSON object per row\")\n .option(\"--entity-type <value>\", \"Filter by entityType\")\n .option(\"--entity-id <value>\", \"Filter by entityId\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const query: Record<string, string | number | undefined> = {};\n if (opts.limit != null) query.limit = opts.limit;\n if (opts.offset != null) query.offset = opts.offset;\n if (opts.entityType != null) {\n query.entityType = coerceQueryFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n }\n if (opts.entityId != null) {\n query.entityId = coerceQueryFlag(opts.entityId, { field: \"entityId\", flag: \"--entity-id\", kind: \"string\" }, exitWithError);\n }\n const res = await fetchList({ path: \"comments\", token, baseUrl: getBaseUrl(), query, all: Boolean(opts.all), request: apiRequest });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown[] })?.data ?? [];\n printList({ format: getOutputFormat(), data, fields: opts.fields, where: opts.where, jsonl: Boolean(opts.jsonl) });\n });\n commentsCmd.command(\"create\").description(\"Create comments\")\n .option(\"--body <json>\", \"Request body JSON (merged with flags)\")\n .option(\"--entity-type <value>\", \"entityType\")\n .option(\"--entity-id <value>\", \"entityId\")\n .option(\"--text <value>\", \"body\")\n .option(\"--parent-comment-id <value>\", \"parentCommentId\")\n .option(\"--if-not-exists\", \"Return existing if match found\")\n .hook(\"preAction\", (thisCommand: Command) => {\n syncRootOptsFromCommand(thisCommand);\n })\n .action(async (opts) => {\n const token = requireToken();\n if (!token) exitWithError(401, \"Missing or invalid token\");\n const bodyFromFlags: Record<string, unknown> = {};\n const parsedEntityType = coerceBodyFlag(opts.entityType, { field: \"entityType\", flag: \"--entity-type\", kind: \"string\" }, exitWithError);\n if (parsedEntityType !== undefined) bodyFromFlags.entityType = parsedEntityType;\n const parsedEntityId = coerceBodyFlag(opts.entityId, { field: \"entityId\", flag: \"--entity-id\", kind: \"string\" }, exitWithError);\n if (parsedEntityId !== undefined) bodyFromFlags.entityId = parsedEntityId;\n const parsedBody = coerceBodyFlag(opts.text, { field: \"body\", flag: \"--text\", kind: \"string\" }, exitWithError);\n if (parsedBody !== undefined) bodyFromFlags.body = parsedBody;\n const parsedParentCommentId = coerceBodyFlag(opts.parentCommentId, { field: \"parentCommentId\", flag: \"--parent-comment-id\", kind: \"string\" }, exitWithError);\n if (parsedParentCommentId !== undefined) bodyFromFlags.parentCommentId = parsedParentCommentId;\n const body = mergeBody(bodyFromFlags, opts.body);\n if (opts.ifNotExists) {\n const existing = await findExistingResource({\n resource: \"comments\",\n token,\n baseUrl: getBaseUrl(),\n body,\n identityFields: [\"entityType\",\"entityId\"],\n queryFields: [\"entityType\",\"entityId\"],\n request: apiRequest,\n });\n if (existing) {\n printOutput(getOutputFormat(), existing, false);\n return;\n }\n }\n const res = await apiRequest({ method: \"POST\", path: \"comments\", token, baseUrl: getBaseUrl(), body });\n if (!res.ok) exitWithError(res.status || 500, res.error ?? \"Request failed\");\n const data = (res.data as { data?: unknown })?.data ?? res.data;\n printOutput(getOutputFormat(), data ?? {}, false);\n });\n\n}"],"mappings":"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","names":["isRecord","r","ids","data","bodyFromFlags","parsedName","parsedDescription","parsedPriority","body","res","parsedProjectId","parsedStatus","parsedCurrentStrength","parsedCategoryId","parsedUrl","parsedHeroImage","parsedEstimatedCost","parsedPotentialCost","parsedNeed","parsedUrgency","parsedUse","parsedLongevity","parsedRoi","parsedSystemFit","parsedEmotionalPull","parsedInfrastructureFit","parsedActivationPotential","parsedScoutId","parsedCondition","parsedSatisfaction","parsedUsage","parsedFriction","parsedLifetimeValue","parsedAcquisitionDate","parsedCost","parsedDefaultBucket","parsedColour","parsedConfig","parsedIsDefault"]}
package/dist/index.js CHANGED
@@ -2,8 +2,8 @@
2
2
  import {
3
3
  createProgramForCLI,
4
4
  syncRootOptsFromCommand
5
- } from "./chunk-W2HZLBPI.js";
6
- import "./chunk-AQXEFAD4.js";
5
+ } from "./chunk-NFFHTNJE.js";
6
+ import "./chunk-CXNVJZ4C.js";
7
7
  import {
8
8
  resolveToken
9
9
  } from "./chunk-GZ4DXDQM.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getpilfer/cli",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "repository": {