zinkee 0.1.49 → 0.1.51
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/examples.ts"],"sourcesContent":["import {\n getSchemaFieldTypeDefinitions,\n resolveSchemaFieldType,\n} from \"./schema-fields.js\";\nimport { buildJsonSuccess } from \"./output.js\";\n\nexport interface CommandExample {\n command: string;\n description: string;\n raw?: string;\n response?: string;\n}\n\nconst SAMPLE_UUID = \"550e8400-e29b-41d4-a716-446655440001\";\n\nconst specificExamples: Record<string, readonly CommandExample[]> = {\n \"formulas recompute field\": [\n {\n description: \"Queue a full recalculation of one formula column.\",\n command: \"zinkee --json formulas recompute field invoices total\",\n raw: `{\n \"scope\": \"FIELD\",\n \"schema\": \"invoices\",\n \"field\": \"total\"\n}`,\n response: `{\n \"requestId\": \"02ab5d47-cb5f-4eb2-afb8-e9a3a9eb34d4\",\n \"scope\": \"FIELD\",\n \"formulaCount\": 1,\n \"skippedFormulaCount\": 0,\n \"eventsQueued\": 1,\n \"status\": \"QUEUED\"\n}`,\n },\n ],\n \"formulas recompute schema\": [\n {\n description: \"Queue recalculation of every active formula in one schema.\",\n command: \"zinkee --json formulas recompute schema invoices --yes\",\n raw: `{\n \"scope\": \"SCHEMA\",\n \"schema\": \"invoices\"\n}`,\n response: `{\n \"requestId\": \"02ab5d47-cb5f-4eb2-afb8-e9a3a9eb34d4\",\n \"scope\": \"SCHEMA\",\n \"formulaCount\": 8,\n \"skippedFormulaCount\": 1,\n \"eventsQueued\": 8,\n \"status\": \"QUEUED\"\n}`,\n },\n ],\n \"formulas recompute workspace\": [\n {\n description: \"Queue recalculation of every active formula in the workspace.\",\n command: \"zinkee --json formulas recompute workspace --yes\",\n raw: `{\n \"scope\": \"WORKSPACE\"\n}`,\n response: `{\n \"requestId\": \"02ab5d47-cb5f-4eb2-afb8-e9a3a9eb34d4\",\n \"scope\": \"WORKSPACE\",\n \"formulaCount\": 24,\n \"skippedFormulaCount\": 2,\n \"eventsQueued\": 24,\n \"status\": \"QUEUED\"\n}`,\n },\n ],\n \"profiles list\": [\n {\n description:\n \"List all local profiles. The CLI always redacts the apiKey to ******** plus the last 4 chars.\",\n command: \"zinkee --json profiles list\",\n response: `[\n {\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n },\n {\n \"name\": \"local\",\n \"isDefault\": false,\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"http://localhost:8088\"\n }\n]`,\n },\n ],\n \"profiles get\": [\n {\n description: \"Show one profile by name.\",\n command: \"zinkee --json profiles get prod\",\n response: `{\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n}`,\n },\n ],\n \"profiles use\": [\n {\n description: \"Set a profile as the default one used when --profile is not passed.\",\n command: \"zinkee --json profiles use local\",\n response: `{\n \"profile\": \"local\",\n \"defaultProfile\": \"local\"\n}`,\n },\n ],\n \"profiles add\": [\n {\n description:\n \"Add a new profile with an explicit base URL. Becomes the default if no other profile existed.\",\n command:\n \"zinkee --json profiles add prod --api-key sk-prod-9f3a2c1b-1234567890abcdef --base-url https://api.zinkee.com\",\n response: `{\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n}`,\n },\n {\n description:\n \"Add a profile without --base-url (the runtime falls back to the production URL at call time).\",\n command: \"zinkee --json profiles add staging --api-key sk-REPLACE_WITH_YOUR_API_KEY\",\n response: `{\n \"name\": \"staging\",\n \"isDefault\": false,\n \"apiKey\": \"********eeee\"\n}`,\n },\n ],\n \"profiles update\": [\n {\n description: \"Rotate just the API key of an existing profile.\",\n command:\n \"zinkee --json profiles update prod --api-key sk-prod-0000new0-fedcba0987654321\",\n response: `{\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"https://api.zinkee.com\"\n}`,\n },\n {\n description: \"Point an existing profile at a different base URL (useful when moving envs).\",\n command: \"zinkee --json profiles update local --base-url http://localhost:9090\",\n response: `{\n \"name\": \"local\",\n \"isDefault\": false,\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"http://localhost:9090\"\n}`,\n },\n ],\n \"profiles remove\": [\n {\n description:\n \"Remove a profile. If it was the default, defaultProfile becomes null and you should set a new one with profiles use.\",\n command: \"zinkee --json profiles remove staging\",\n response: `{\n \"profile\": \"staging\",\n \"defaultProfile\": \"prod\"\n}`,\n },\n ],\n \"config path\": [\n {\n description: \"Print the path of the config file the CLI is reading right now.\",\n command: \"zinkee --json config path\",\n response: `{\n \"path\": \"/home/guillermo/.config/zinkee/config.json\"\n}`,\n },\n ],\n \"config show\": [\n {\n description:\n \"Dump the whole config with secrets redacted. Same ******** + last 4 chars mask that profiles list uses.\",\n command: \"zinkee --json config show\",\n response: `{\n \"defaultProfile\": \"prod\",\n \"profiles\": {\n \"prod\": {\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n },\n \"local\": {\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"http://localhost:8088\"\n }\n }\n}`,\n },\n ],\n \"config validate\": [\n {\n description:\n \"Validate that the local config resolves a profile. Useful as a CI gate before running other commands.\",\n command: \"zinkee --json config validate\",\n response: `{\n \"valid\": true,\n \"profile\": \"prod\"\n}`,\n },\n ],\n \"schemas create\": [\n {\n description: \"Create an auditable and commentable schema from flags.\",\n command:\n 'zinkee --json schemas create --name \"Codex Demo\" --slug codex-demo --auditable --commentable',\n raw: `{\n \"name\": \"Codex Demo\",\n \"slug\": \"codex-demo\",\n \"auditable\": true,\n \"commentable\": true\n}`,\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"slug\": \"codex-demo\",\n \"folder\": {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"root\",\n \"isRoot\": true\n }\n}`,\n },\n {\n description: \"Minimal create with just name and slug.\",\n command: 'zinkee --json schemas create --name Leads --slug leads',\n raw: `{\n \"name\": \"Leads\",\n \"slug\": \"leads\"\n}`,\n },\n {\n description:\n \"Create an auditable schema inside an existing navigation folder (folder id can be a UUID or the exact folder name).\",\n command:\n 'zinkee --json schemas create --name Tasks --slug tasks --auditable --folder 7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f',\n raw: `{\n \"name\": \"Tasks\",\n \"slug\": \"tasks\",\n \"auditable\": true,\n \"commentable\": false,\n \"folderId\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\"\n}`,\n },\n ],\n \"schemas update\": [\n {\n description: \"Toggle the commentable flag on a schema.\",\n command: 'zinkee --json schemas update contacts --commentable true',\n raw: `{\n \"commentable\": true\n}`,\n response: `{\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Customer Contacts\",\n \"slug\": \"customer-contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": true,\n \"commentable\": true,\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"fields\": [\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n }\n ],\n \"uniqueFields\": []\n}`,\n },\n {\n description: \"Rename a schema and change its slug.\",\n command:\n 'zinkee --json schemas update contacts --name \"Customer Contacts\" --slug customer-contacts',\n raw: `{\n \"name\": \"Customer Contacts\",\n \"slug\": \"customer-contacts\"\n}`,\n },\n {\n description: \"Enable the audit log on a schema.\",\n command: 'zinkee --json schemas update contacts --auditable true',\n raw: `{\n \"auditable\": true\n}`,\n },\n {\n description:\n \"Set the schema's highlighted (main) field — the field whose value names each record in the UI (activity-panel title and detail-view record list).\",\n command:\n 'zinkee --json schemas update contacts --highlighted-field contact-name',\n raw: `{\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n}`,\n },\n ],\n \"schemas set-unique-fields\": [\n {\n description:\n \"Set a composite unique constraint: the listed fields must be unique together across records.\",\n command:\n \"zinkee --json schemas set-unique-fields contacts --field contact-name --field notes\",\n raw: `{\n \"fieldIds\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\"\n ]\n}`,\n response: `{\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Contacts\",\n \"slug\": \"contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": true,\n \"commentable\": true,\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"fields\": [\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"NORMAL\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\",\n \"type\": \"TextField\",\n \"slug\": \"notes\",\n \"label\": \"Notes\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": null,\n \"conditionalFormatting\": []\n }\n }\n ],\n \"uniqueFields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\"\n ]\n}`,\n },\n {\n description: \"Set a single-field unique constraint.\",\n command: \"zinkee --json schemas set-unique-fields contacts --field contact-name\",\n raw: `{\n \"fieldIds\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n ]\n}`,\n },\n {\n description: \"Clear the unique constraint (no field must be unique anymore).\",\n command: \"zinkee --json schemas set-unique-fields contacts --clear\",\n raw: `{\n \"fieldIds\": []\n}`,\n },\n ],\n \"schemas fields update\": [\n {\n description: \"Set the field description without changing its label or configuration.\",\n command:\n 'zinkee --json schemas fields update contacts contact-name --description \"Primary name shown for the customer\"',\n raw: `{\n \"description\": \"Primary name shown for the customer\"\n}`,\n },\n {\n description: \"Clear the field description.\",\n command:\n 'zinkee --json schemas fields update contacts contact-name --description \"\"',\n raw: `{\n \"description\": \"\"\n}`,\n },\n {\n description: \"Rename slug and label.\",\n command:\n `zinkee --json schemas fields update contacts contact-name --label \"Customer Full Name\" --raw '{\"slug\":\"customer-full-name\"}'`,\n raw: `{\n \"slug\": \"customer-full-name\",\n \"label\": \"Customer Full Name\"\n}`,\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"slug\": \"customer-full-name\"\n}`,\n },\n {\n description: \"Toggle required.\",\n command: \"zinkee --json schemas fields update contacts status --required true\",\n raw: `{\n \"required\": true\n}`,\n },\n {\n description: \"Patch text field (long with default).\",\n command:\n `zinkee --json schemas fields update contacts contact-name --raw '{\"type\":\"TextField\",\"label\":\"Customer Full Name\",\"required\":false,\"config\":{\"textType\":\"LONG\",\"defaultValue\":\"Unknown\",\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"TextField\",\n \"label\": \"Customer Full Name\",\n \"required\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Declare an expected DNI/NIE format (warnings never block record saves). Omit expectedFormat to keep it; use kind none to disable it.\",\n command: `zinkee --json schemas fields update contacts tax-id --raw '{\"type\":\"TextField\",\"config\":{\"expectedFormat\":{\"kind\":\"dniNie\"}}}'`,\n raw: `{\n \"type\": \"TextField\",\n \"config\": {\n \"expectedFormat\": { \"kind\": \"dniNie\" }\n }\n}`,\n },\n {\n description: \"Patch number field (to currency).\",\n command:\n `zinkee --json schemas fields update contacts amount --raw '{\"type\":\"NumberField\",\"config\":{\"defaultValue\":\"0\",\"formatOptions\":{\"format\":\"currency\",\"decimals\":2,\"thousandsSeparator\":true,\"symbolEnabled\":true,\"symbolPosition\":\"before\",\"symbolValue\":\"€\"},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"NumberField\",\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"currency\",\n \"decimals\": 2,\n \"thousandsSeparator\": true,\n \"symbolEnabled\": true,\n \"symbolPosition\": \"before\",\n \"symbolValue\": \"€\"\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch number field (to percentage).\",\n command:\n `zinkee --json schemas fields update contacts discount-rate --raw '{\"type\":\"NumberField\",\"config\":{\"defaultValue\":\"0\",\"formatOptions\":{\"format\":\"percentage\",\"decimals\":1},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"NumberField\",\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"percentage\",\n \"decimals\": 1\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch date field (to date only).\",\n command:\n `zinkee --json schemas fields update contacts due-date --raw '{\"type\":\"DateField\",\"config\":{\"defaultValue\":null,\"formatOptions\":{\"format\":\"date\",\"dateFormat\":\"YYYY-MM-DD\",\"showTime\":false},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"DateField\",\n \"config\": {\n \"defaultValue\": null,\n \"formatOptions\": {\n \"format\": \"date\",\n \"dateFormat\": \"YYYY-MM-DD\",\n \"showTime\": false\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch option field (button cycle).\",\n command:\n `zinkee --json schemas fields update contacts stage --raw '{\"type\":\"OptionField\",\"config\":{\"options\":[{\"id\":1,\"name\":\"To Do\",\"color\":\"default\"},{\"id\":2,\"name\":\"Doing\",\"color\":\"warning\"},{\"id\":3,\"name\":\"Done\",\"color\":\"success\"}],\"defaultValue\":1,\"conditionalFormatting\":[],\"buttonConfig\":{\"displayMode\":\"button\",\"buttonBehavior\":{\"mode\":\"cycle\",\"cycleOrder\":[1,2,3],\"allowReselect\":true}}}}'`,\n raw: `{\n \"type\": \"OptionField\",\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"To Do\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"Doing\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": {\n \"displayMode\": \"button\",\n \"buttonBehavior\": {\n \"mode\": \"cycle\",\n \"cycleOrder\": [1, 2, 3],\n \"allowReselect\": true\n }\n }\n }\n}`,\n },\n {\n description: \"Patch option field (drop button mode).\",\n command:\n `zinkee --json schemas fields update contacts status --raw '{\"type\":\"OptionField\",\"config\":{\"options\":[{\"id\":1,\"name\":\"Open\",\"color\":\"default\"},{\"id\":2,\"name\":\"In Progress\",\"color\":\"warning\"},{\"id\":3,\"name\":\"Done\",\"color\":\"success\"}],\"defaultValue\":1,\"conditionalFormatting\":[],\"buttonConfig\":null}}'`,\n raw: `{\n \"type\": \"OptionField\",\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": null\n }\n}`,\n },\n {\n description: \"Patch formula field (formula text).\",\n command:\n `zinkee --json schemas fields update contacts formula-total --raw '{\"type\":\"FormulaField\",\"config\":{\"formulaText\":\"c52efe3f-2825-4c60-a7e3-34dd4c1ce043 * 1.10\",\"uiFormatKind\":\"number\",\"status\":\"ACTIVE\",\"numberFormatOptions\":{\"format\":\"number\",\"decimals\":2,\"thousandsSeparator\":true},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"FormulaField\",\n \"config\": {\n \"formulaText\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043 * 1.10\",\n \"uiFormatKind\": \"number\",\n \"status\": \"ACTIVE\",\n \"numberFormatOptions\": {\n \"format\": \"number\",\n \"decimals\": 2,\n \"thousandsSeparator\": true\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch reference field (delete behavior).\",\n command:\n `zinkee --json schemas fields update contacts customer-ref --raw '{\"type\":\"ReferenceField\",\"config\":{\"targetSchema\":\"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\"targetDisplayField\":\"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\"deleteBehavior\":\"RESTRICT\",\"defaultValue\":null,\"filterFields\":[],\"descriptionFields\":[],\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"ReferenceField\",\n \"config\": {\n \"targetSchema\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetDisplayField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"deleteBehavior\": \"RESTRICT\",\n \"defaultValue\": null,\n \"filterFields\": [],\n \"descriptionFields\": [],\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch schedule field (to daily).\",\n command:\n `zinkee --json schemas fields update contacts recurrence --raw '{\"type\":\"ScheduleField\",\"config\":{\"referenceField\":\"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\"beginningPeriodField\":\"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\"endingPeriodField\":\"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\"frequency\":\"daily\"}}'`,\n raw: `{\n \"type\": \"ScheduleField\",\n \"config\": {\n \"referenceField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"beginningPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endingPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"frequency\": \"daily\"\n }\n}`,\n },\n ],\n \"records query\": [\n {\n description: \"Lookup a single record by id.\",\n command:\n 'zinkee --json records query contacts --select id,contact-name --where \"id eq 550e8400-e29b-41d4-a716-446655440000\" --sort id:desc --limit 10',\n raw: `{\n \"select\": [\"id\", \"contact-name\"],\n \"where\": [\n { \"field\": \"id\", \"op\": \"eq\", \"value\": \"550e8400-e29b-41d4-a716-446655440000\" }\n ],\n \"sort\": [\n { \"field\": \"id\", \"direction\": \"DESC\" }\n ],\n \"page\": { \"offset\": 0, \"limit\": 10 }\n}`,\n response: `{\n \"records\": [\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace\",\n \"status\": 2,\n \"amount\": 1250.50\n }\n }\n ],\n \"page\": {\n \"offset\": 0,\n \"limit\": 25,\n \"total\": 1,\n \"count\": 1,\n \"hasMore\": false\n }\n}`,\n },\n {\n description:\n \"Filter by multiple conditions and sort by amount then name.\",\n command:\n `zinkee --json records query contacts --select id,contact-name,status,amount --where \"status in 1,2\" --where \"amount gte 500\" --sort amount:desc --sort contact-name:asc --limit 25`,\n raw: `{\n \"select\": [\"id\", \"contact-name\", \"status\", \"amount\"],\n \"where\": [\n { \"field\": \"status\", \"op\": \"in\", \"value\": [1, 2] },\n { \"field\": \"amount\", \"op\": \"gte\", \"value\": 500 }\n ],\n \"sort\": [\n { \"field\": \"amount\", \"direction\": \"DESC\" },\n { \"field\": \"contact-name\", \"direction\": \"ASC\" }\n ],\n \"page\": { \"offset\": 0, \"limit\": 25 }\n}`,\n },\n {\n description: \"Filter by status with a free-text search term.\",\n command:\n `zinkee --json records query contacts --select id,contact-name,status --where \"status in OPEN\" --search garcia --limit 25`,\n raw: `{\n \"select\": [\"id\", \"contact-name\", \"status\"],\n \"where\": [\n { \"field\": \"status\", \"op\": \"in\", \"value\": [\"OPEN\"] }\n ],\n \"search\": { \"term\": \"garcia\" },\n \"page\": { \"offset\": 0, \"limit\": 25 }\n}`,\n },\n {\n description: \"Text contains search.\",\n command:\n 'zinkee --json records query contacts --select id,contact-name,contact-email --where \"contact-name contains Lovelace\" --limit 50',\n raw: `{\n \"select\": [\"id\", \"contact-name\", \"contact-email\"],\n \"where\": [\n { \"field\": \"contact-name\", \"op\": \"contains\", \"value\": \"Lovelace\" }\n ],\n \"page\": { \"offset\": 0, \"limit\": 50 }\n}`,\n },\n {\n description: \"Records with a non-empty due-date inside a date range.\",\n command:\n 'zinkee --json records query contacts --where \"due-date is_not_empty\" --where \"due-date lte 2026-12-31T23:59:59Z\" --sort due-date:asc',\n raw: `{\n \"where\": [\n { \"field\": \"due-date\", \"op\": \"is_not_empty\" },\n { \"field\": \"due-date\", \"op\": \"lte\", \"value\": \"2026-12-31T23:59:59Z\" }\n ],\n \"sort\": [\n { \"field\": \"due-date\", \"direction\": \"ASC\" }\n ]\n}`,\n },\n {\n description: \"Records whose status is not equal to a value.\",\n command:\n 'zinkee --json records query contacts --where \"status neq 0\"',\n raw: `{\n \"where\": [\n { \"field\": \"status\", \"op\": \"neq\", \"value\": 0 }\n ]\n}`,\n },\n {\n description: \"Records with an amount greater than a threshold.\",\n command:\n 'zinkee --json records query contacts --where \"amount gt 1000\"',\n raw: `{\n \"where\": [\n { \"field\": \"amount\", \"op\": \"gt\", \"value\": 1000 }\n ]\n}`,\n },\n {\n description: \"Records with an amount less than a threshold.\",\n command:\n 'zinkee --json records query contacts --where \"amount lt 100\"',\n raw: `{\n \"where\": [\n { \"field\": \"amount\", \"op\": \"lt\", \"value\": 100 }\n ]\n}`,\n },\n {\n description: \"Records whose due-date is empty.\",\n command:\n 'zinkee --json records query contacts --where \"due-date is_empty\"',\n raw: `{\n \"where\": [\n { \"field\": \"due-date\", \"op\": \"is_empty\" }\n ]\n}`,\n },\n {\n description: \"Records whose contact-email is not empty.\",\n command:\n 'zinkee --json records query contacts --where \"contact-email is_not_empty\"',\n raw: `{\n \"where\": [\n { \"field\": \"contact-email\", \"op\": \"is_not_empty\" }\n ]\n}`,\n },\n ],\n \"records create\": [\n {\n description:\n \"Create a single record with --set/--set-json (the single-record flags build one record, sent as a one-element 'records' array).\",\n command:\n `zinkee --json records create contacts --set contact-name=\"Ada Lovelace\" --set contact-email=ada@example.com`,\n raw: `{\n \"records\": [\n {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\"\n }\n ]\n}`,\n response: `{\n \"created\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ],\n \"errors\": []\n}`,\n },\n {\n description:\n \"Create many records from a JSON array file (one object per record, slug -> value). Best-effort: valid records are created and invalid ones are reported per index in 'errors'. ReferenceField values accept the target record id (a bare UUID, or the compound 'recordId::anything' whose label is ignored) or an exact display value; the server stores the canonical 'recordId::displayValue'.\",\n command: `zinkee --json records create contacts --records-file ./records.json`,\n raw: `{\n \"records\": [\n {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\"\n },\n {\n \"contact-name\": \"Grace Hopper\",\n \"contact-email\": \"grace@example.com\",\n \"status\": 2,\n \"amount\": 1999.99,\n \"due-date\": \"2026-06-01T09:00:00Z\",\n \"customer-ref\": \"8ad602a1-f6e3-43f6-9ab2-f1c5afc99621\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n ]\n}`,\n response: `{\n \"created\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ],\n \"errors\": [\n {\n \"index\": 1,\n \"reason\": \"record_field_not_found\",\n \"message\": \"Field 'contact-emial' was not found in schema '2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e'.\",\n \"action\": \"Use a valid field slug from the schema and retry.\"\n }\n ]\n}`,\n },\n {\n description:\n \"Set a ReferenceField by the target record id (a bare UUID, or the compound 'recordId::anything' whose label is ignored) or by an exact display value. The server resolves and stores the canonical 'recordId::displayValue'. Unknown references are rejected per index with reason 'data_field_reference_not_found'.\",\n command:\n `zinkee --json records create deals --set deal-name=\"Acme renewal\" --set customer-ref=00000000-0000-0000-0000-000000000000`,\n raw: `{\n \"records\": [\n {\n \"deal-name\": \"Acme renewal\",\n \"customer-ref\": \"00000000-0000-0000-0000-000000000000\"\n }\n ]\n}`,\n response: `{\n \"created\": [],\n \"errors\": [\n {\n \"index\": 0,\n \"reason\": \"data_field_reference_not_found\",\n \"message\": \"Referenced record was not found in the target schema.\",\n \"action\": \"Use an existing record id or an existing display value for this reference field.\"\n }\n ]\n}`,\n },\n ],\n \"records update\": [\n {\n description: \"Set one field and unset another.\",\n command:\n 'zinkee --json records update contacts 550e8400-e29b-41d4-a716-446655440000 --set contact-name=\"Ada Lovelace Updated\" --unset contact-email',\n raw: `{\n \"set\": {\n \"contact-name\": \"Ada Lovelace Updated\"\n },\n \"unset\": [\"contact-email\"]\n}`,\n response: `{\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace Updated\",\n \"status\": 2,\n \"amount\": 1250.50,\n \"due-date\": \"2026-05-15T12:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n}`,\n },\n {\n description: \"Patch multiple typed values at once.\",\n command:\n 'zinkee --json records update contacts 550e8400-e29b-41d4-a716-446655440000 --set status=3 --set amount=2500.00 --set due-date=2026-07-01T09:00:00Z --set owner=6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d',\n raw: `{\n \"set\": {\n \"status\": 3,\n \"amount\": 2500.00,\n \"due-date\": \"2026-07-01T09:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n}`,\n },\n {\n description: \"Unset only (clear fields).\",\n command:\n 'zinkee --json records update contacts 550e8400-e29b-41d4-a716-446655440000 --unset contact-email --unset due-date',\n raw: `{\n \"unset\": [\"contact-email\", \"due-date\"]\n}`,\n },\n {\n description:\n \"Set a ReferenceField on an existing record. Pass the target record id (a bare UUID, or the compound 'recordId::anything' whose label is ignored) or an exact display value; the response shows the canonical 'recordId::displayValue' the server stored. If the reference doesn't exist the whole update is rejected with reason 'data_field_reference_not_found'.\",\n command:\n 'zinkee --json records update deals 550e8400-e29b-41d4-a716-446655440000 --set customer-ref=8ad602a1-f6e3-43f6-9ab2-f1c5afc99621',\n raw: `{\n \"set\": {\n \"customer-ref\": \"8ad602a1-f6e3-43f6-9ab2-f1c5afc99621\"\n }\n}`,\n response: `{\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"deal-name\": \"Acme renewal\",\n \"customer-ref\": \"8ad602a1-f6e3-43f6-9ab2-f1c5afc99621::Acme Corp\"\n }\n}`,\n },\n ],\n \"comments create\": [\n {\n description: \"Plain text comment on a record (uses --text).\",\n command:\n `zinkee --json comments create contacts 550e8400-e29b-41d4-a716-446655440000 --text \"This record needs review.\"`,\n raw: `{\n \"content\": [\n {\n \"type\": \"TEXT\",\n \"value\": \"This record needs review.\"\n }\n ]\n}`,\n response: `{\n \"id\": \"cd8e3b2a-1f5c-4e9a-8b7d-0a2b3c4d5e6f\",\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"createdAt\": \"2026-04-22T10:15:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"This record needs review.\" }\n ]\n}`,\n },\n {\n description:\n \"Comment with an inline member mention. Mentions only go through --raw today because --text is plain text.\",\n command:\n `zinkee --json comments create contacts 550e8400-e29b-41d4-a716-446655440000 --raw '{\"content\":[{\"type\":\"TEXT\",\"value\":\"Assigning to \"},{\"type\":\"MENTION\",\"value\":\"9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6\"},{\"type\":\"TEXT\",\"value\":\" for follow up.\"}]}'`,\n raw: `{\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"Assigning to \" },\n { \"type\": \"MENTION\", \"value\": \"9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6\" },\n { \"type\": \"TEXT\", \"value\": \" for follow up.\" }\n ]\n}`,\n },\n ],\n \"files download\": [\n {\n description:\n \"Download a file to disk (the CLI writes the raw bytes to the --output path; the JSON mode only emits a success envelope).\",\n command: `zinkee --json files download ${SAMPLE_UUID} --output ./download.bin`,\n },\n ],\n \"files upload\": [\n {\n description:\n \"Upload a local file. The CLI sends the multipart form and the backend returns the generated file id to reference from record FileField values.\",\n command: \"zinkee --json files upload ./report.pdf\",\n response: `{\n \"id\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\"\n}`,\n },\n ],\n \"files delete\": [\n {\n description:\n \"Delete a file from workspace storage. Records that still reference the file id keep the stale pointer until updated separately.\",\n command: `zinkee --json files delete ${SAMPLE_UUID}`,\n response: `{\n \"id\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n \"deleted\": true\n}`,\n },\n ],\n \"navigation folders create\": [\n {\n description: \"Create a folder with a display order and custom properties.\",\n command:\n `zinkee --json navigation folders create --name Finance --order 20 --props '{\"color\":\"green\"}'`,\n raw: `{\n \"name\": \"Finance\",\n \"order\": 20,\n \"additionalProperties\": {\n \"color\": \"green\"\n }\n}`,\n response: `{\n \"folderId\": \"c5d6e7f8-9012-3456-789a-bcdef0123456\",\n \"name\": \"Finance\"\n}`,\n },\n {\n description: \"Minimal create with just a name.\",\n command: 'zinkee --json navigation folders create --name Archive',\n raw: `{\n \"name\": \"Archive\"\n}`,\n },\n {\n description: \"Create a folder with color and icon metadata.\",\n command:\n `zinkee --json navigation folders create --name Reports --order 5 --props '{\"color\":\"teal\",\"icon\":\"chart-line\"}'`,\n raw: `{\n \"name\": \"Reports\",\n \"order\": 5,\n \"additionalProperties\": {\n \"color\": \"teal\",\n \"icon\": \"chart-line\"\n }\n}`,\n },\n ],\n \"navigation folders update\": [\n {\n description: \"Rename the folder, change its order, and rewrite its additionalProperties.\",\n command:\n `zinkee --json navigation folders update Finance --name \"Finance Ops\" --order 30 --props '{\"color\":\"teal\"}'`,\n raw: `{\n \"name\": \"Finance Ops\",\n \"order\": 30,\n \"additionalProperties\": {\n \"color\": \"teal\"\n }\n}`,\n response: `{\n \"folderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\",\n \"name\": \"Finance Ops\"\n}`,\n },\n {\n description: \"Rename only.\",\n command: 'zinkee --json navigation folders update Finance --name \"Finance (legacy)\"',\n raw: `{\n \"name\": \"Finance (legacy)\"\n}`,\n },\n {\n description: \"Change only the display order.\",\n command: 'zinkee --json navigation folders update Finance --order 1',\n raw: `{\n \"order\": 1\n}`,\n },\n {\n description: \"Replace only additionalProperties.\",\n command:\n `zinkee --json navigation folders update Finance --props '{\"color\":\"red\",\"icon\":\"archive\"}'`,\n raw: `{\n \"additionalProperties\": {\n \"color\": \"red\",\n \"icon\": \"archive\"\n }\n}`,\n },\n ],\n \"navigation resources move\": [\n {\n description:\n \"Move a schema into a navigation folder. Only schemas can be moved; the navigation menu holds databases.\",\n command:\n 'zinkee --json navigation resources move 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --to Sales',\n raw: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\"\n}`,\n response: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\"\n}`,\n },\n {\n description: \"Move a schema back to the root folder (root is always UUID 00000000-0000-0000-0000-000000000000).\",\n command:\n 'zinkee --json navigation resources move 5223cbc8-8c6c-4694-93bc-dd176364df9b --to 00000000-0000-0000-0000-000000000000',\n raw: `{\n \"resourceId\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetFolderId\": \"00000000-0000-0000-0000-000000000000\"\n}`,\n },\n ],\n \"teamspace folders create\": [\n {\n description: \"Create a teamspace folder with order and icon metadata.\",\n command:\n `zinkee --json teamspace folders create --name \"Customer Success\" --order 10 --props '{\"icon\":\"folder-users\"}'`,\n raw: `{\n \"name\": \"Customer Success\",\n \"order\": 10,\n \"additionalProperties\": {\n \"icon\": \"folder-users\"\n }\n}`,\n response: `{\n \"id\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"name\": \"Customer Success\",\n \"order\": 10,\n \"isRoot\": false,\n \"resourceCount\": 0,\n \"resources\": [],\n \"additionalProperties\": {\n \"icon\": \"folder-users\"\n }\n}`,\n },\n {\n description: \"Minimal create.\",\n command: 'zinkee --json teamspace folders create --name Shared',\n raw: `{\n \"name\": \"Shared\"\n}`,\n },\n {\n description: \"Prominent folder with icon and color.\",\n command:\n `zinkee --json teamspace folders create --name Executive --order 1 --props '{\"icon\":\"crown\",\"color\":\"gold\"}'`,\n raw: `{\n \"name\": \"Executive\",\n \"order\": 1,\n \"additionalProperties\": {\n \"icon\": \"crown\",\n \"color\": \"gold\"\n }\n}`,\n },\n ],\n \"teamspace folders update\": [\n {\n description: \"Rename, reorder and update properties in one call.\",\n command:\n `zinkee --json teamspace folders update \"Customer Success\" --name \"Shared KPIs\" --order 5 --props '{\"icon\":\"chart-bar\"}'`,\n raw: `{\n \"name\": \"Shared KPIs\",\n \"order\": 5,\n \"additionalProperties\": {\n \"icon\": \"chart-bar\"\n }\n}`,\n response: `{\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared KPIs\",\n \"order\": 5,\n \"isRoot\": false,\n \"resourceCount\": 1,\n \"resources\": [\n {\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"type\": \"DISPLAY\"\n }\n ],\n \"additionalProperties\": {\n \"icon\": \"chart-bar\"\n }\n}`,\n },\n {\n description: \"Rename only.\",\n command:\n 'zinkee --json teamspace folders update \"Customer Success\" --name \"Shared Analytics\"',\n raw: `{\n \"name\": \"Shared Analytics\"\n}`,\n },\n {\n description: \"Reorder only.\",\n command: 'zinkee --json teamspace folders update \"Customer Success\" --order 2',\n raw: `{\n \"order\": 2\n}`,\n },\n {\n description: \"Update only the icon metadata.\",\n command:\n `zinkee --json teamspace folders update \"Customer Success\" --props '{\"icon\":\"chart-line\"}'`,\n raw: `{\n \"additionalProperties\": {\n \"icon\": \"chart-line\"\n }\n}`,\n },\n ],\n \"teamspace resources publish\": [\n {\n description: \"Publish a schema by slug into a teamspace folder.\",\n command:\n 'zinkee --json teamspace resources publish customer-records --to \"Shared Dashboards\"',\n raw: `{\n \"resourceId\": \"customer-records\",\n \"targetFolderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\"\n}`,\n response: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolder\": {\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared Dashboards\",\n \"isRoot\": false\n },\n \"previousFolder\": null\n}`,\n },\n {\n description: \"Publish a schema by UUID.\",\n command:\n 'zinkee --json teamspace resources publish 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --to \"Shared Dashboards\"',\n raw: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\"\n}`,\n },\n {\n description: \"Publish a display.\",\n command:\n 'zinkee --json teamspace resources publish 0f6f062f-1478-4df2-96a1-c495d037d260 --to \"Shared Dashboards\"',\n raw: `{\n \"resourceId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"targetFolderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\"\n}`,\n },\n {\n description: \"Publish directly at the teamspace root (root folder UUID is always 00000000-0000-0000-0000-000000000000).\",\n command:\n 'zinkee --json teamspace resources publish customer-records --to 00000000-0000-0000-0000-000000000000',\n raw: `{\n \"resourceId\": \"customer-records\",\n \"targetFolderId\": \"00000000-0000-0000-0000-000000000000\"\n}`,\n },\n ],\n \"teamspace resources unpublish\": [\n {\n description: \"Unpublish a schema by slug.\",\n command: 'zinkee --json teamspace resources unpublish customer-records',\n raw: `{\n \"resourceId\": \"customer-records\"\n}`,\n response: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"removedFromFolder\": {\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared Dashboards\",\n \"isRoot\": false\n }\n}`,\n },\n {\n description: \"Unpublish a schema by UUID.\",\n command:\n 'zinkee --json teamspace resources unpublish 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e',\n raw: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\"\n}`,\n },\n {\n description: \"Unpublish a display.\",\n command:\n 'zinkee --json teamspace resources unpublish 0f6f062f-1478-4df2-96a1-c495d037d260',\n raw: `{\n \"resourceId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\"\n}`,\n },\n ],\n \"displays create\": [\n {\n description:\n \"Create a described freeform display with an initial widget layout. Freeform layouts travel through --freeform-layouts.\",\n command:\n `zinkee --json displays create --name \"Control Proyecto Freeform\" --description \"Project delivery overview\" --template freeform --freeform-layouts '{\"lg\":[{\"i\":\"widget-1\",\"x\":0,\"y\":0,\"w\":6,\"h\":5}]}'`,\n raw: `{\n \"name\": \"Control Proyecto Freeform\",\n \"description\": \"Project delivery overview\",\n \"layout\": {\n \"template\": \"freeform\",\n \"freeformLayouts\": {\n \"lg\": [\n { \"i\": \"widget-1\", \"x\": 0, \"y\": 0, \"w\": 6, \"h\": 5 }\n ]\n }\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\"\n}`,\n },\n {\n description: \"Create a tabbed display using the widget_row_tabs template.\",\n command:\n 'zinkee --json displays create --name \"Executive Revenue\" --template widget_row_tabs',\n raw: `{\n \"name\": \"Executive Revenue\",\n \"layout\": {\n \"template\": \"widget_row_tabs\"\n }\n}`,\n },\n {\n description: \"Create a grid display.\",\n command:\n 'zinkee --json displays create --name \"Customer Detail\" --template grid',\n raw: `{\n \"name\": \"Customer Detail\",\n \"layout\": {\n \"template\": \"grid\"\n }\n}`,\n },\n ],\n \"displays tabs create\": [\n {\n description: \"Create a horizontal tab.\",\n command:\n 'zinkee --json displays tabs create 0f6f062f-1478-4df2-96a1-c495d037d260 --name Overview --orientation horizontal',\n raw: `{\n \"name\": \"Overview\",\n \"orientation\": \"horizontal\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"tabId\": \"tab-overview\"\n}`,\n },\n {\n description: \"Create a vertical tab.\",\n command:\n 'zinkee --json displays tabs create 0f6f062f-1478-4df2-96a1-c495d037d260 --name Details --orientation vertical',\n raw: `{\n \"name\": \"Details\",\n \"orientation\": \"vertical\"\n}`,\n },\n ],\n \"displays tabs update\": [\n {\n description: \"Rename a tab.\",\n command:\n 'zinkee --json displays tabs update 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main --name \"Overview (renamed)\"',\n raw: `{\n \"name\": \"Overview (renamed)\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"tabId\": \"tab-main\"\n}`,\n },\n {\n description: \"Change orientation only.\",\n command:\n 'zinkee --json displays tabs update 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main --orientation vertical',\n raw: `{\n \"orientation\": \"vertical\"\n}`,\n },\n {\n description: \"Rename and reorient at once.\",\n command:\n 'zinkee --json displays tabs update 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main --name Details --orientation vertical',\n raw: `{\n \"name\": \"Details\",\n \"orientation\": \"vertical\"\n}`,\n },\n ],\n \"displays variables create\": [\n {\n description:\n \"Create a single-select REFERENCE variable bound to a (schema, field) pair. schemaId and fieldId accept slugs or UUIDs.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type REFERENCE --name Customer --source-schema contacts --source-field contact-name --default \"\"',\n raw: `{\n \"type\": \"REFERENCE\",\n \"name\": \"Customer\",\n \"source\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"contact-name\"\n },\n \"defaultValue\": \"\",\n \"allowMultiple\": false,\n \"staticVariable\": false,\n \"filters\": []\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"variableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Create a multi-select REFERENCE variable with a filter. Complex filters go via --raw because --filter only accepts raw expressions.\",\n command:\n `zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --raw '{\"type\":\"REFERENCE\",\"name\":\"Active customers\",\"source\":{\"schemaId\":\"contacts\",\"fieldId\":\"contact-name\"},\"defaultValues\":[],\"allowMultiple\":true,\"staticVariable\":false,\"filters\":[{\"origin\":{\"schemaId\":\"contacts\",\"fieldId\":\"status\"},\"comparisonOperator\":\"ANY_OF\",\"values\":[\"1\",\"2\"]}]}'`,\n raw: `{\n \"type\": \"REFERENCE\",\n \"name\": \"Active customers\",\n \"source\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"contact-name\"\n },\n \"defaultValues\": [],\n \"allowMultiple\": true,\n \"staticVariable\": false,\n \"filters\": [\n {\n \"origin\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"status\"\n },\n \"comparisonOperator\": \"ANY_OF\",\n \"values\": [\"1\", \"2\"]\n }\n ]\n}`,\n },\n {\n description: \"Create a MEMBER variable with a default user id.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type MEMBER --name Owner --default 6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d',\n raw: `{\n \"type\": \"MEMBER\",\n \"name\": \"Owner\",\n \"defaultValue\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\",\n \"allowMultiple\": false,\n \"staticVariable\": false\n}`,\n },\n {\n description: \"Create a DATE variable using a dynamic period (thisMonth).\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type DATE --name Period --date-mode dynamic --date-dynamic-option thisMonth',\n raw: `{\n \"type\": \"DATE\",\n \"name\": \"Period\",\n \"date\": {\n \"mode\": \"dynamic\",\n \"dynamicOption\": \"thisMonth\"\n }\n}`,\n },\n {\n description: \"Create a DATE variable with a specific date.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type DATE --name Cutoff --date-mode specific --date-specific 2026-04-22',\n raw: `{\n \"type\": \"DATE\",\n \"name\": \"Cutoff\",\n \"date\": {\n \"mode\": \"specific\",\n \"specificDate\": \"2026-04-22\"\n }\n}`,\n },\n {\n description: \"Create a DATE variable with a custom range.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type DATE --name Quarter --date-mode range --date-range-start 2026-04-01 --date-range-end 2026-06-30',\n raw: `{\n \"type\": \"DATE\",\n \"name\": \"Quarter\",\n \"date\": {\n \"mode\": \"range\",\n \"rangeStart\": \"2026-04-01\",\n \"rangeEnd\": \"2026-06-30\"\n }\n}`,\n },\n ],\n \"displays variables update\": [\n {\n description:\n \"Rename the variable and make it static (defaults must be cleared with a raw patch because the CLI has no --default-values [] shortcut).\",\n command:\n `zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111 --raw '{\"name\":\"Proyecto principal\",\"staticVariable\":true,\"defaultValues\":[]}'`,\n raw: `{\n \"name\": \"Proyecto principal\",\n \"staticVariable\": true,\n \"defaultValues\": []\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"variableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description: \"Replace the reference filters of the variable.\",\n command:\n `zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111 --raw '{\"filters\":[{\"origin\":{\"schemaId\":\"contacts\",\"fieldId\":\"status\"},\"comparisonOperator\":\"ANY_OF\",\"values\":[\"2\",\"3\"]}]}'`,\n raw: `{\n \"filters\": [\n {\n \"origin\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"status\"\n },\n \"comparisonOperator\": \"ANY_OF\",\n \"values\": [\"2\", \"3\"]\n }\n ]\n}`,\n },\n {\n description: \"Switch a variable to multi-select.\",\n command:\n `zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111 --allow-multiple --raw '{\"defaultValues\":[]}'`,\n raw: `{\n \"allowMultiple\": true,\n \"defaultValues\": []\n}`,\n },\n {\n description: \"Change a DATE variable to use last12Months.\",\n command:\n 'zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 bbbbbbbb-2222-4222-a222-222222222222 --date-mode dynamic --date-dynamic-option last12Months',\n raw: `{\n \"date\": {\n \"mode\": \"dynamic\",\n \"dynamicOption\": \"last12Months\"\n }\n}`,\n },\n ],\n \"displays widgets create\": [\n {\n description:\n \"Create a TABLE widget (CLI normalises --type table to TABLE_OR_SUBTABLE).\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type table --name Customers --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":8}' --field contact-name --field status --field amount --sort '{\"fieldId\":\"contact-name\",\"direction\":\"ASC\"}'`,\n raw: `{\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": {\n \"name\": \"Customers\"\n },\n \"query\": {\n \"sorts\": [\n { \"fieldId\": \"contact-name\", \"direction\": \"ASC\" }\n ]\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"]\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Create a TABLE widget with locked fields: contact-name locked permanently (no conditions) and status locked while invoice-number is empty, with before/after lock messages.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type table --name Invoices --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":8}' --field contact-name --field invoice-number --field status --field amount --lock-field contact-name --lock-condition \"status:invoice-number:is_empty\" --lock-message-before \"status:Status locks until the invoice number is set.\" --lock-message-after \"status:Status is locked because the invoice number is missing.\"`,\n raw: `{\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": { \"name\": \"Invoices\" },\n \"view\": {\n \"fields\": [\"contact-name\", \"invoice-number\", \"status\", \"amount\"]\n },\n \"behavior\": {\n \"lockedFields\": [\n {\n \"field\": { \"fieldId\": \"contact-name\" },\n \"conditions\": []\n },\n {\n \"field\": { \"fieldId\": \"status\" },\n \"conditions\": [\n {\n \"origin\": { \"fieldId\": \"invoice-number\" },\n \"comparisonOperator\": \"IS_EMPTY\",\n \"values\": []\n }\n ],\n \"messageBeforeLock\": \"Status locks until the invoice number is set.\",\n \"messageAfterLock\": \"Status is locked because the invoice number is missing.\"\n }\n ]\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Create a DETAIL widget on a tab. The rich placement is easier via --raw.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --raw '{\"type\":\"DETAIL\",\"source\":{\"originResourceId\":\"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\"isOriginSubSchema\":false},\"placement\":{\"tabId\":\"tab-detail\",\"layout\":{\"x\":0,\"y\":0,\"w\":6,\"h\":10}},\"presentation\":{\"name\":\"Customer detail\"},\"behavior\":{\"readOnly\":true},\"view\":{\"fields\":[\"contact-name\",\"contact-email\",\"status\",\"amount\"]}}'`,\n raw: `{\n \"type\": \"DETAIL\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"tabId\": \"tab-detail\",\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 6, \"h\": 10 }\n },\n \"presentation\": { \"name\": \"Customer detail\" },\n \"behavior\": { \"readOnly\": true },\n \"view\": {\n \"fields\": [\"contact-name\", \"contact-email\", \"status\", \"amount\"]\n }\n}`,\n },\n {\n description: \"Create a KPI widget computing SUM(amount).\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type KPI --name \"Total revenue\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":3,\"h\":3}' --calc SUM --calc-field amount --kpi-config '{\"format\":\"currency\",\"decimals\":2}'`,\n raw: `{\n \"type\": \"KPI\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 3, \"h\": 3 }\n },\n \"presentation\": { \"name\": \"Total revenue\" },\n \"kpi\": {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"config\": { \"format\": \"currency\", \"decimals\": 2 }\n }\n}`,\n },\n {\n description: \"Create a CHART widget with a daily time-serie x-axis.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by day\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type lines --x-axis-field due-date --x-axis-date-format DATE --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by day\" },\n \"chart\": {\n \"chartType\": \"lines\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"DATE\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description: \"Create a bars CHART widget with a monthly time-serie x-axis and two y-axis series.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by month\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type bars --x-axis-field due-date --x-axis-date-format MONTH_YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --y-axis-serie '{\"typeCalc\":\"COUNT\",\"fieldCalc\":\"contact-name\",\"color\":\"#E57373\",\"axisType\":\"SECONDARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by month\" },\n \"chart\": {\n \"chartType\": \"bars\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"MONTH_YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n },\n {\n \"typeCalc\": \"COUNT\",\n \"fieldCalc\": \"contact-name\",\n \"color\": \"#E57373\",\n \"axisType\": \"SECONDARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description: \"Create a bars CHART widget with a quarterly time-serie x-axis.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by quarter\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type bars --x-axis-field due-date --x-axis-date-format QUARTER_YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by quarter\" },\n \"chart\": {\n \"chartType\": \"bars\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"QUARTER_YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description: \"Create a CHART widget with a yearly time-serie x-axis.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by year\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type lines --x-axis-field due-date --x-axis-date-format YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by year\" },\n \"chart\": {\n \"chartType\": \"lines\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description:\n \"Create a TIMELINE widget via flags. The typed view state lives in view.viewAdditionalProperties.viewState; field references there must be UUIDs (slugs are only resolved in --field). cardConfig uses category1/category2/category4 (no category3). Use --view-state for UI scalars (granularity, sidebarWidth, show* ...).\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type TIMELINE --name \"Customer schedule\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":6}' --field c60b8526-5835-4c9f-aecd-9a16c7704a34 --field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --start-date-field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --end-date-field e5f6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9012 --label-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --group-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --subgroup-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --progress-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --card-title-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --card-category1-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --card-category2-field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --card-category4-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --card-description-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --view-state '{\"granularity\":\"month\",\"sidebarWidth\":300,\"showUngroupedEvents\":true,\"showUnsubgroupedEvents\":true}'`,\n raw: `{\n \"type\": \"TIMELINE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Customer schedule\" },\n \"view\": {\n \"fields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\"\n ],\n \"viewAdditionalProperties\": {\n \"viewState\": {\n \"granularity\": \"month\",\n \"sidebarWidth\": 300,\n \"showUngroupedEvents\": true,\n \"showUnsubgroupedEvents\": true,\n \"fieldMapping\": {\n \"startDateField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endDateField\": \"e5f6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9012\",\n \"labelField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"groupField\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"subgroupField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"progressField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"cardConfig\": {\n \"titleField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"category1Field\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"category2Field\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"category4Field\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"descriptionField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n }\n }\n }\n }\n}`,\n },\n {\n description:\n \"Create a KANBAN widget via flags. The typed view state lives in view.viewAdditionalProperties.viewState; field references there must be UUIDs (slugs are only resolved in --field). cardConfig uses category1/category2/category3 (no category4). --aggregation-method/--aggregation-field set the card aggregation; use --view-state for UI scalars.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type KANBAN --name \"Status board\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":8}' --field c60b8526-5835-4c9f-aecd-9a16c7704a34 --field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --column-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --swimlane-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --card-title-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --card-category1-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --card-category2-field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --card-category3-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --card-description-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --aggregation-method sum --aggregation-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --view-state '{\"hideEmptyColumns\":false,\"showNoValueColumn\":true,\"showNoValueSwimlane\":true}'`,\n raw: `{\n \"type\": \"KANBAN\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": { \"name\": \"Status board\" },\n \"view\": {\n \"fields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\"\n ],\n \"viewAdditionalProperties\": {\n \"viewState\": {\n \"hideEmptyColumns\": false,\n \"showNoValueColumn\": true,\n \"showNoValueSwimlane\": true,\n \"fieldMapping\": {\n \"columnField\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"swimlaneField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"cardConfig\": {\n \"titleField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"category1Field\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"category2Field\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"category3Field\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"descriptionField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"aggregationConfig\": {\n \"method\": \"sum\",\n \"fieldId\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\"\n }\n }\n }\n }\n }\n}`,\n },\n {\n description:\n \"Create a HIERARCHY widget via flags. Declare columns once (--hierarchy-label, repeatable --hierarchy-info <id:name>, --hierarchy-number <id:name:aggregation>), map the root level (the view's own table) with --hierarchy-root-* and add each child level as a JSON object with --hierarchy-child. label is required per level; info/number mappings are optional. Column ids (e.g. col_1779975207355_zfndknslw) are unique opaque identifiers you choose — not the column name — and are reused as columnId in every mapping. All field references must be UUIDs.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type HIERARCHY --name \"Org tree\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":6}' --field c60b8526-5835-4c9f-aecd-9a16c7704a34 --field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --hierarchy-label \"Name\" --hierarchy-info \"col_1779975207355_zfndknslw:Status\" --hierarchy-info \"col_1779975243018_qm4t7xb2pa:Description\" --hierarchy-number \"col_1779975261490_h8kd3nv9ws:Total amount:SUM\" --hierarchy-root-name \"Customers\" --hierarchy-root-label-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --hierarchy-root-info \"col_1779975207355_zfndknslw:a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\" --hierarchy-root-number \"col_1779975261490_h8kd3nv9ws:c52efe3f-2825-4c60-a7e3-34dd4c1ce043\" --hierarchy-child '{\"name\":\"Projects\",\"schemaId\":\"3ec9cdef-7e0a-4cdd-8019-8fb9281f5d6f\",\"childFieldId\":\"80deefae-af3d-4000-b322-bfe1594f8073\",\"labelFieldId\":\"50dbef0b-7e0a-4fdd-8019-8fb9281f5d70\",\"infoMappings\":[{\"columnId\":\"col_1779975243018_qm4t7xb2pa\",\"fieldId\":\"60dcef0c-8f1b-4eee-9120-9fc0392f6e71\"}],\"numberMappings\":[{\"columnId\":\"col_1779975261490_h8kd3nv9ws\",\"fieldId\":\"70ddef0d-9f2c-4fff-a221-afd0493f7f72\"}]}'`,\n raw: `{\n \"type\": \"HIERARCHY\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Org tree\" },\n \"view\": {\n \"fields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\"\n ],\n \"hierarchyConfig\": {\n \"columns\": {\n \"label\": \"Name\",\n \"infos\": [\n { \"id\": \"col_1779975207355_zfndknslw\", \"name\": \"Status\" },\n { \"id\": \"col_1779975243018_qm4t7xb2pa\", \"name\": \"Description\" }\n ],\n \"numbers\": [\n { \"id\": \"col_1779975261490_h8kd3nv9ws\", \"name\": \"Total amount\", \"aggregation\": \"SUM\" }\n ]\n },\n \"rootLevel\": {\n \"name\": \"Customers\",\n \"labelFieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"infoMappings\": [\n { \"columnId\": \"col_1779975207355_zfndknslw\", \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\" }\n ],\n \"numberMappings\": [\n { \"columnId\": \"col_1779975261490_h8kd3nv9ws\", \"fieldId\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\" }\n ]\n },\n \"childLevels\": [\n {\n \"name\": \"Projects\",\n \"schemaId\": \"3ec9cdef-7e0a-4cdd-8019-8fb9281f5d6f\",\n \"childFieldId\": \"80deefae-af3d-4000-b322-bfe1594f8073\",\n \"labelFieldId\": \"50dbef0b-7e0a-4fdd-8019-8fb9281f5d70\",\n \"infoMappings\": [\n { \"columnId\": \"col_1779975243018_qm4t7xb2pa\", \"fieldId\": \"60dcef0c-8f1b-4eee-9120-9fc0392f6e71\" }\n ],\n \"numberMappings\": [\n { \"columnId\": \"col_1779975261490_h8kd3nv9ws\", \"fieldId\": \"70ddef0d-9f2c-4fff-a221-afd0493f7f72\" }\n ]\n }\n ]\n }\n }\n}`,\n },\n ],\n \"displays widgets update\": [\n {\n description: \"Move placement, update view columns, rename the widget and lock it.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --layout '{\"x\":1,\"y\":2,\"w\":8,\"h\":4}' --field contact-name --field status --field amount --name \"Revenue Updated\" --widget-read-only`,\n raw: `{\n \"placement\": {\n \"layout\": { \"x\": 1, \"y\": 2, \"w\": 8, \"h\": 4 }\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"]\n },\n \"presentation\": { \"name\": \"Revenue Updated\" },\n \"behavior\": { \"readOnly\": true }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Add query filters with --filter. The CLI parses the expression and emits the structured comparisonOperator payload the API expects.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --filter \"status:eq:2\" --filter \"amount:gte:500\"`,\n raw: `{\n \"query\": {\n \"filters\": [\n {\n \"origin\": { \"fieldId\": \"status\" },\n \"comparisonOperator\": \"EQUAL\",\n \"values\": [\"2\"]\n },\n {\n \"origin\": { \"fieldId\": \"amount\" },\n \"comparisonOperator\": \"GREATER_OR_EQUAL\",\n \"values\": [\"500\"]\n }\n ]\n }\n}`,\n },\n {\n description:\n \"Fall back to --raw for comparators the parser does not cover yet (e.g. NOT_CONTAINS, RANGE).\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --raw '{\"query\":{\"filters\":[{\"origin\":{\"fieldId\":\"due-date\"},\"comparisonOperator\":\"RANGE\",\"values\":[\"2025-01-01\",\"2025-12-31\"]}]}}'`,\n raw: `{\n \"query\": {\n \"filters\": [\n {\n \"origin\": { \"fieldId\": \"due-date\" },\n \"comparisonOperator\": \"RANGE\",\n \"values\": [\"2025-01-01\", \"2025-12-31\"]\n }\n ]\n }\n}`,\n },\n {\n description: \"Hide the add, delete and filter buttons.\",\n command:\n 'zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --hide-add-button --hide-delete-button --hide-filter-button',\n raw: `{\n \"behavior\": {\n \"hideAddButton\": true,\n \"hideDeleteButton\": true,\n \"hideFilterButton\": true\n }\n}`,\n },\n {\n description:\n \"Configure locked fields (replaces the stored configuration): contact-name locked permanently, status locked while invoice-number is empty. Empty conditions = always locked; conditions combine with AND. Enforcement happens in display widgets only, never in the database view.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --lock-field contact-name --lock-condition \"status:invoice-number:is_empty\" --lock-message-before \"status:Status locks until the invoice number is set.\" --lock-message-after \"status:Status is locked because the invoice number is missing.\"`,\n raw: `{\n \"behavior\": {\n \"lockedFields\": [\n {\n \"field\": { \"fieldId\": \"contact-name\" },\n \"conditions\": []\n },\n {\n \"field\": { \"fieldId\": \"status\" },\n \"conditions\": [\n {\n \"origin\": { \"fieldId\": \"invoice-number\" },\n \"comparisonOperator\": \"IS_EMPTY\",\n \"values\": []\n }\n ],\n \"messageBeforeLock\": \"Status locks until the invoice number is set.\",\n \"messageAfterLock\": \"Status is locked because the invoice number is missing.\"\n }\n ]\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description: \"Clear the locked-fields configuration.\",\n command:\n 'zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --clear-locked-fields',\n raw: `{\n \"behavior\": { \"lockedFields\": [] }\n}`,\n },\n {\n description: \"Update the KPI aggregation to AVG with one-decimal format.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 33333333-3333-4333-a333-333333333333 --calc AVG --calc-field amount --kpi-config '{\"format\":\"number\",\"decimals\":1}'`,\n raw: `{\n \"kpi\": {\n \"typeCalc\": \"AVG\",\n \"fieldCalc\": \"amount\",\n \"config\": { \"format\": \"number\", \"decimals\": 1 }\n }\n}`,\n },\n {\n description: \"Replace the chart series with quarterly lines.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 22222222-2222-4222-a222-222222222222 --chart-type lines --x-axis-field due-date --x-axis-date-format QUARTER_YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#2E7D32\",\"axisType\":\"PRIMARY\"}'`,\n raw: `{\n \"chart\": {\n \"chartType\": \"lines\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"QUARTER_YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#2E7D32\",\n \"axisType\": \"PRIMARY\"\n }\n ]\n }\n}`,\n },\n {\n description: \"Rewrite the widget bindings (requires --raw because the CLI has no --binding flag).\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --raw '{\"bindings\":{\"variableMap\":{\"aaaaaaaa-1111-4111-a111-111111111111\":\"contact-name\",\"cccccccc-3333-4333-a333-333333333333\":\"owner\"}}}'`,\n raw: `{\n \"bindings\": {\n \"variableMap\": {\n \"aaaaaaaa-1111-4111-a111-111111111111\": \"contact-name\",\n \"cccccccc-3333-4333-a333-333333333333\": \"owner\"\n }\n }\n}`,\n },\n ],\n \"displays navigation-targets create\": [\n {\n description: \"Create a navigation target with a visible label.\",\n command:\n 'zinkee --json displays navigation-targets create 0f6f062f-1478-4df2-96a1-c495d037d260 --source-widget 11111111-1111-4111-a111-111111111111 --target-display ef012345-6789-4abc-8def-0123456789ab --target-variable aaaaaaaa-1111-4111-a111-111111111111 --label \"Open customer\"',\n raw: `{\n \"sourceWidgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"targetDisplayId\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"targetVariableId\": \"aaaaaaaa-1111-4111-a111-111111111111\",\n \"label\": \"Open customer\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"navigationTargetId\": \"nav-target-customer\"\n}`,\n },\n {\n description: \"Create a navigation target without a label (uses the target display name).\",\n command:\n 'zinkee --json displays navigation-targets create 0f6f062f-1478-4df2-96a1-c495d037d260 --source-widget 22222222-2222-4222-a222-222222222222 --target-display ef012345-6789-4abc-8def-0123456789ab --target-variable aaaaaaaa-1111-4111-a111-111111111111',\n raw: `{\n \"sourceWidgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"targetDisplayId\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"targetVariableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n ],\n \"displays navigation-targets update\": [\n {\n description: \"Change just the label.\",\n command:\n 'zinkee --json displays navigation-targets update 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer --label \"Go to customer\"',\n raw: `{\n \"label\": \"Go to customer\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"navigationTargetId\": \"nav-target-customer\"\n}`,\n },\n {\n description: \"Redirect the target to another display/variable pair.\",\n command:\n 'zinkee --json displays navigation-targets update 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer --target-display 6b7c8d9e-0f12-3456-789a-bcdef0123456 --target-variable bbbbbbbb-2222-4222-a222-222222222222',\n raw: `{\n \"targetDisplayId\": \"6b7c8d9e-0f12-3456-789a-bcdef0123456\",\n \"targetVariableId\": \"bbbbbbbb-2222-4222-a222-222222222222\"\n}`,\n },\n {\n description: \"Change the source widget.\",\n command:\n 'zinkee --json displays navigation-targets update 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer --source-widget 44444444-4444-4444-a444-444444444444',\n raw: `{\n \"sourceWidgetId\": \"44444444-4444-4444-a444-444444444444\"\n}`,\n },\n ],\n \"displays cross-widget-filter set\": [\n {\n description:\n \"Single configuration with flags: link one source widget/field to several targets. The whole array is replaced.\",\n command:\n 'zinkee --json displays cross-widget-filter set 0f6f062f-1478-4df2-96a1-c495d037d260 --source-widget 11111111-1111-4111-a111-111111111111 --source-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --target 22222222-2222-4222-a222-222222222222:c60b8526-5835-4c9f-aecd-9a16c7704a34 --target 33333333-3333-4333-a333-333333333333:c60b8526-5835-4c9f-aecd-9a16c7704a34',\n raw: `[\n {\n \"source\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n {\n \"widgetId\": \"33333333-3333-4333-a333-333333333333\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n }\n]`,\n },\n {\n description:\n \"Several independent configurations with --raw (each source filters its own targets). A widget cannot be a target of two configurations.\",\n command:\n \"zinkee --json displays cross-widget-filter set 0f6f062f-1478-4df2-96a1-c495d037d260 --raw '[{\\\"source\\\":{\\\"widgetId\\\":\\\"11111111-1111-4111-a111-111111111111\\\",\\\"fieldId\\\":\\\"c60b8526-5835-4c9f-aecd-9a16c7704a34\\\"},\\\"targets\\\":[{\\\"widgetId\\\":\\\"22222222-2222-4222-a222-222222222222\\\",\\\"fieldId\\\":\\\"c60b8526-5835-4c9f-aecd-9a16c7704a34\\\"}]},{\\\"source\\\":{\\\"widgetId\\\":\\\"44444444-4444-4444-a444-444444444444\\\",\\\"fieldId\\\":\\\"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\\\"},\\\"targets\\\":[{\\\"widgetId\\\":\\\"55555555-5555-4555-a555-555555555555\\\",\\\"fieldId\\\":\\\"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\\\"}]}]'\",\n raw: `[\n {\n \"source\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n },\n {\n \"source\": {\n \"widgetId\": \"44444444-4444-4444-a444-444444444444\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n },\n \"targets\": [\n {\n \"widgetId\": \"55555555-5555-4555-a555-555555555555\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n }\n ]\n }\n]`,\n },\n {\n description:\n \"Hierarchy chain with --raw-file: a target of one configuration is the source of the next (click Parent → filters Child, click Child → filters Grandchild).\",\n command:\n \"zinkee --json displays cross-widget-filter set 0f6f062f-1478-4df2-96a1-c495d037d260 --raw-file cross-widget-filter.json\",\n raw: `[\n {\n \"source\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n },\n {\n \"source\": {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n },\n \"targets\": [\n {\n \"widgetId\": \"33333333-3333-4333-a333-333333333333\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n }\n ]\n }\n]`,\n },\n ],\n \"schemas list\": [\n {\n description: \"List schemas in the workspace with folder and field counts.\",\n command: \"zinkee --json schemas list\",\n response: `[\n {\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Contacts\",\n \"slug\": \"contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": false,\n \"commentable\": false,\n \"fieldCount\": 11\n },\n {\n \"id\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"name\": \"Orders\",\n \"slug\": \"orders\",\n \"folder\": {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"root\",\n \"isRoot\": true\n },\n \"auditable\": true,\n \"commentable\": true,\n \"fieldCount\": 7\n }\n]`,\n },\n ],\n \"schemas get\": [\n {\n description: \"Get a schema with all its fields.\",\n command: \"zinkee --json schemas get contacts\",\n response: `{\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Contacts\",\n \"slug\": \"contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": true,\n \"commentable\": true,\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"fields\": [\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"NORMAL\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\",\n \"type\": \"TextField\",\n \"slug\": \"notes\",\n \"label\": \"Notes\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": null,\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"type\": \"NumberField\",\n \"slug\": \"amount\",\n \"label\": \"Amount\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"currency\",\n \"decimals\": 2,\n \"negativesInRed\": true,\n \"thousandsSeparator\": true,\n \"symbolEnabled\": true,\n \"symbolPosition\": \"before\",\n \"symbolValue\": \"€\"\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"2f3a4b5c-6d7e-8f90-1234-56789abcdef0\",\n \"type\": \"NumberField\",\n \"slug\": \"quantity\",\n \"label\": \"Quantity\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"number\",\n \"decimals\": 0,\n \"thousandsSeparator\": false\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"3a4b5c6d-7e8f-9012-3456-789abcdef012\",\n \"type\": \"NumberField\",\n \"slug\": \"discount-rate\",\n \"label\": \"Discount Rate\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"percentage\",\n \"decimals\": 1,\n \"negativesInRed\": true\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"type\": \"DateField\",\n \"slug\": \"due-date\",\n \"label\": \"Due Date\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": null,\n \"formatOptions\": {\n \"format\": \"datetime\",\n \"dateFormat\": \"DD/MM/YYYY\",\n \"showTime\": true\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"4b5c6d7e-8f90-1234-5678-9abcdef01234\",\n \"type\": \"DateField\",\n \"slug\": \"birth-date\",\n \"label\": \"Birth Date\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": null,\n \"formatOptions\": {\n \"format\": \"date\",\n \"dateFormat\": \"YYYY-MM-DD\",\n \"showTime\": false\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"type\": \"OptionField\",\n \"slug\": \"status\",\n \"label\": \"Status\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": null\n }\n },\n {\n \"id\": \"5c6d7e8f-9012-3456-789a-bcdef0123456\",\n \"type\": \"OptionField\",\n \"slug\": \"stage\",\n \"label\": \"Stage\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"To Do\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"Doing\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": {\n \"displayMode\": \"button\",\n \"buttonBehavior\": {\n \"mode\": \"cycle\",\n \"cycleOrder\": [1, 2, 3],\n \"requireConfirmation\": false,\n \"lockAfterSelection\": false,\n \"allowReselect\": true\n }\n }\n }\n },\n {\n \"id\": \"3e9f8c12-4a5b-6c7d-8e9f-0a1b2c3d4e5f\",\n \"type\": \"FormulaField\",\n \"slug\": \"formula-total\",\n \"label\": \"Formula Total\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"formulaText\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043 * 1.21\",\n \"uiFormatKind\": \"number\",\n \"status\": \"ACTIVE\",\n \"defaultValue\": null,\n \"numberFormatOptions\": {\n \"format\": \"number\",\n \"decimals\": 2,\n \"thousandsSeparator\": true\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"6d7e8f90-1234-5678-9abc-def012345678\",\n \"type\": \"FormulaField\",\n \"slug\": \"formula-period\",\n \"label\": \"Formula Period\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"formulaText\": \"date_format(d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90, \\\\\"AAAA-MM\\\\\")\",\n \"uiFormatKind\": \"date\",\n \"status\": \"ACTIVE\",\n \"defaultValue\": null,\n \"dateFormatOptions\": {\n \"format\": \"date\",\n \"dateFormat\": \"DD/MM/YYYY\",\n \"showTime\": false\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"45c5da96-0dc2-4cc1-ba61-7660a9c6da32\",\n \"type\": \"ReferenceField\",\n \"slug\": \"customer-ref\",\n \"label\": \"Customer\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"targetSchema\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetDisplayField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"deleteBehavior\": \"SET_NULL\",\n \"defaultValue\": null,\n \"filterFields\": [],\n \"descriptionFields\": [],\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"7e8f9012-3456-789a-bcde-f01234567890\",\n \"type\": \"ReferenceField\",\n \"slug\": \"company-ref\",\n \"label\": \"Company\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"targetSchema\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetDisplayField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"deleteBehavior\": \"RESTRICT\",\n \"defaultValue\": null,\n \"filterFields\": [],\n \"descriptionFields\": [],\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e\",\n \"type\": \"AutoIncrementalField\",\n \"slug\": \"sequence-code\",\n \"label\": \"Sequence Code\",\n \"required\": false,\n \"system\": true,\n \"config\": {\n \"segmentedByFieldId\": \"45c5da96-0dc2-4cc1-ba61-7660a9c6da32\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"8f901234-5678-9abc-def0-123456789012\",\n \"type\": \"AutoIncrementalField\",\n \"slug\": \"order-number\",\n \"label\": \"Order Number\",\n \"required\": false,\n \"system\": true,\n \"config\": {\n \"segmentedByFieldId\": null,\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"e5f6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9012\",\n \"type\": \"FileField\",\n \"slug\": \"attachment\",\n \"label\": \"Attachment\",\n \"required\": false,\n \"system\": false,\n \"config\": {}\n },\n {\n \"id\": \"f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f901234\",\n \"type\": \"ScheduleField\",\n \"slug\": \"recurrence\",\n \"label\": \"Recurrence\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"referenceField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"beginningPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endingPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"frequency\": \"monthly\"\n }\n },\n {\n \"id\": \"9012abcd-ef01-2345-6789-abcdef012345\",\n \"type\": \"ScheduleField\",\n \"slug\": \"daily-recurrence\",\n \"label\": \"Daily Recurrence\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"referenceField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"beginningPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endingPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"frequency\": \"daily\"\n }\n },\n {\n \"id\": \"a7b8c9d0-e1f2-3a4b-5c6d-7e8f90123456\",\n \"type\": \"MemberField\",\n \"slug\": \"owner\",\n \"label\": \"Owner\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": null,\n \"conditionalFormatting\": []\n }\n }\n ],\n \"uniqueFields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\"\n ]\n}`,\n },\n ],\n \"schemas delete\": [\n {\n description: \"Delete a schema (also removes it from navigation folders).\",\n command: \"zinkee --json schemas delete contacts\",\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"deleted\": true\n}`,\n },\n ],\n \"schemas fields list\": [\n {\n description: \"List the fields of a schema (fields are inlined in the schema resource).\",\n command: \"zinkee --json schemas fields list contacts\",\n response: `[\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"type\": \"OptionField\",\n \"slug\": \"status\",\n \"label\": \"Status\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": null\n }\n }\n]`,\n },\n ],\n \"schemas fields get\": [\n {\n description: \"Get a schema field (returns the full typed field contract).\",\n command: \"zinkee --json schemas fields get contacts status\",\n response: `{\n \"id\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"type\": \"OptionField\",\n \"slug\": \"status\",\n \"label\": \"Status\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": {\n \"displayMode\": \"button\",\n \"buttonBehavior\": {\n \"mode\": \"cycle\",\n \"cycleOrder\": [1, 2, 3],\n \"requireConfirmation\": false,\n \"lockAfterSelection\": false,\n \"useFixedLabel\": false,\n \"allowReselect\": true\n }\n }\n }\n}`,\n },\n ],\n \"schemas fields delete\": [\n {\n description: \"Delete a schema field.\",\n command: \"zinkee --json schemas fields delete contacts status\",\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"slug\": \"status\"\n}`,\n },\n ],\n \"records list\": [\n {\n description: \"List records with default pagination.\",\n command: \"zinkee --json records list contacts\",\n response: `{\n \"records\": [\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\",\n \"status\": 2,\n \"amount\": 1250.50,\n \"due-date\": \"2026-05-15T12:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n },\n {\n \"recordId\": \"7c9a4b31-e85d-42f7-8b6a-123456789abc\",\n \"values\": {\n \"contact-name\": \"Alan Turing\",\n \"contact-email\": \"alan@example.com\",\n \"status\": 1,\n \"amount\": 890.00\n }\n }\n ],\n \"page\": {\n \"offset\": 0,\n \"limit\": 50,\n \"total\": 2,\n \"count\": 2,\n \"hasMore\": false\n }\n}`,\n },\n {\n description: \"Paginate further into the result set.\",\n command: \"zinkee --json records list contacts --limit 50 --offset 100\",\n },\n ],\n \"records get\": [\n {\n description: \"Get one record by id (values are keyed by field slug).\",\n command: `zinkee --json records get contacts ${SAMPLE_UUID}`,\n response: `{\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\",\n \"status\": 2,\n \"amount\": 1250.50,\n \"due-date\": \"2026-05-15T12:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n}`,\n },\n ],\n \"records delete\": [\n {\n description: \"Delete one or more records by id (--record is repeatable).\",\n command: `zinkee --json records delete contacts --record 550e8400-e29b-41d4-a716-446655440000 --record 6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d`,\n response: `{\n \"recordIds\": [\n \"550e8400-e29b-41d4-a716-446655440000\",\n \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n ],\n \"deleted\": true\n}`,\n },\n {\n description:\n \"Delete many records listing one uuid per line in a file (merged with any --record flags and de-duplicated).\",\n command: `zinkee --json records delete contacts --records-file ./record-ids.txt`,\n response: `{\n \"recordIds\": [\n \"550e8400-e29b-41d4-a716-446655440000\",\n \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n ],\n \"deleted\": true\n}`,\n },\n ],\n \"records clear\": [\n {\n description:\n \"Delete every record from a schema's table. Heritage rules (CASCADE / SET NULL) propagate to child schemas asynchronously via the CDC pipeline.\",\n command: \"zinkee --json records clear contacts\",\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"cleared\": true\n}`,\n },\n ],\n \"comments list\": [\n {\n description: \"List comments on a record (content is an array of TEXT/MENTION items).\",\n command: `zinkee --json comments list contacts ${SAMPLE_UUID}`,\n response: `[\n {\n \"id\": \"cd8e3b2a-1f5c-4e9a-8b7d-0a2b3c4d5e6f\",\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"createdAt\": \"2026-04-22T10:15:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"This record needs review.\" }\n ]\n },\n {\n \"id\": \"a1b2c3d4-5e6f-7890-abcd-ef1234567890\",\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"createdAt\": \"2026-04-22T11:30:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"Assigning to \" },\n { \"type\": \"MENTION\", \"value\": \"9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6\" },\n { \"type\": \"TEXT\", \"value\": \" for follow up.\" }\n ]\n }\n]`,\n },\n ],\n \"logs list\": [\n {\n description:\n \"List the change history for a record (CREATE entry plus UPDATE entries with before/after values per field).\",\n command: `zinkee --json logs list contacts ${SAMPLE_UUID}`,\n response: `[\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"timestamp\": \"2026-04-22T10:00:00Z\",\n \"changeField\": \"\",\n \"change\": {\n \"beforeValue\": null,\n \"afterValue\": null,\n \"author\": \"developer@zinkee.com\",\n \"operation\": \"CREATE\"\n }\n },\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"timestamp\": \"2026-04-22T10:15:00Z\",\n \"changeField\": \"status\",\n \"change\": {\n \"beforeValue\": \"1\",\n \"afterValue\": \"2\",\n \"author\": \"developer@zinkee.com\",\n \"operation\": \"UPDATE\"\n }\n },\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"timestamp\": \"2026-04-22T10:20:00Z\",\n \"changeField\": \"amount\",\n \"change\": {\n \"beforeValue\": \"1000.00\",\n \"afterValue\": \"1250.50\",\n \"author\": \"developer@zinkee.com\",\n \"operation\": \"UPDATE\"\n }\n }\n]`,\n },\n ],\n \"navigation folders list\": [\n {\n description: \"List navigation folders with embedded resources, sorted by order.\",\n command: \"zinkee --json navigation folders list\",\n response: `[\n {\n \"id\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\",\n \"order\": 1,\n \"name\": \"Sales\",\n \"resources\": [\n {\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Customer records\",\n \"type\": \"SCHEMA\",\n \"isInSpace\": false,\n \"additionalProperties\": {}\n },\n {\n \"id\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"name\": \"Orders\",\n \"type\": \"SCHEMA\",\n \"isInSpace\": true,\n \"additionalProperties\": {}\n }\n ],\n \"additionalProperties\": {\n \"color\": \"blue\"\n }\n },\n {\n \"id\": \"b8c9d0e1-f2a3-4b5c-6d7e-8f9012345678\",\n \"order\": 2,\n \"name\": \"Operations\",\n \"resources\": [\n {\n \"id\": \"3f8a2c1b-9d4e-4a5b-8c6d-7e8f90123456\",\n \"name\": \"Shipments\",\n \"type\": \"SCHEMA\",\n \"isInSpace\": false,\n \"additionalProperties\": {}\n }\n ],\n \"additionalProperties\": {\n \"color\": \"purple\"\n }\n },\n {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"order\": 99,\n \"name\": \"root\",\n \"resources\": [],\n \"additionalProperties\": {}\n }\n]`,\n },\n ],\n \"navigation folders get\": [\n {\n description: \"Get a navigation folder by exact name or UUID.\",\n command: 'zinkee --json navigation folders get Finance',\n },\n ],\n \"navigation folders delete\": [\n {\n description: \"Delete a navigation folder by exact name or UUID.\",\n command: 'zinkee --json navigation folders delete Finance',\n response: `{\n \"folderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\",\n \"name\": \"Finance Ops\"\n}`,\n },\n ],\n \"teamspace folders list\": [\n {\n description: \"List teamspace folders.\",\n command: \"zinkee --json teamspace folders list\",\n },\n {\n description: \"List teamspace folders with their published resources.\",\n command: \"zinkee --json teamspace folders list --include-resources\",\n response: `[\n {\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared Dashboards\",\n \"order\": 1,\n \"isRoot\": false,\n \"resourceCount\": 2,\n \"resources\": [\n {\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Customer records\",\n \"type\": \"SCHEMA\"\n },\n {\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"type\": \"DISPLAY\"\n }\n ],\n \"additionalProperties\": {}\n }\n]`,\n },\n ],\n \"teamspace folders get\": [\n {\n description: \"Get a teamspace folder by exact name or UUID.\",\n command: 'zinkee --json teamspace folders get \"Shared Dashboards\"',\n },\n ],\n \"teamspace folders delete\": [\n {\n description:\n \"Delete a teamspace folder. Its resources are moved to the returned target folder (root by default).\",\n command: 'zinkee --json teamspace folders delete \"Customer Success\"',\n response: `{\n \"folderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"movedResourceCount\": 3,\n \"targetFolder\": {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"root\",\n \"isRoot\": true\n }\n}`,\n },\n ],\n \"files storage\": [\n {\n description: \"Get the storage quota and current usage (bytes).\",\n command: \"zinkee --json files storage\",\n response: `{\n \"maxSize\": 10737418240,\n \"usedSize\": 2147483648\n}`,\n },\n ],\n \"displays list\": [\n {\n description: \"List displays in the workspace with variable and widget counts.\",\n command: \"zinkee --json displays list\",\n response: `[\n {\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"layoutTemplate\": \"widget_row_tabs\",\n \"variableCount\": 3,\n \"widgetCount\": 6,\n \"folder\": {\n \"id\": \"b1a2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n \"name\": \"📊 Executive\",\n \"isRoot\": false\n }\n },\n {\n \"id\": \"6b7c8d9e-0f12-3456-789a-bcdef0123456\",\n \"name\": \"Sales Pipeline\",\n \"layoutTemplate\": \"freeform\",\n \"variableCount\": 1,\n \"widgetCount\": 3,\n \"folder\": {\n \"id\": \"a0b1c2d3-e4f5-4061-8273-8495a6b7c8d9\",\n \"name\": null,\n \"isRoot\": true\n }\n },\n {\n \"id\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"name\": \"Customer Detail\",\n \"layoutTemplate\": \"grid\",\n \"variableCount\": 0,\n \"widgetCount\": 2,\n \"folder\": {\n \"id\": \"b1a2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n \"name\": \"📊 Executive\",\n \"isRoot\": false\n }\n }\n]`,\n },\n ],\n \"displays get\": [\n {\n description:\n \"Get a display with its layout (tabs/freeformLayouts/slots), variables, widgets, cross-widget filter and navigation targets.\",\n command: \"zinkee --json displays get 0f6f062f-1478-4df2-96a1-c495d037d260\",\n response: `{\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"layout\": {\n \"template\": \"widget_row_tabs\",\n \"freeformLayouts\": null,\n \"slots\": null,\n \"tabs\": [\n {\n \"id\": \"tab-main\",\n \"name\": \"Overview\",\n \"orientation\": \"horizontal\",\n \"widgetIds\": [\n \"11111111-1111-4111-a111-111111111111\",\n \"22222222-2222-4222-a222-222222222222\",\n \"33333333-3333-4333-a333-333333333333\"\n ]\n },\n {\n \"id\": \"tab-detail\",\n \"name\": \"Detail\",\n \"orientation\": \"horizontal\",\n \"widgetIds\": [\n \"44444444-4444-4444-a444-444444444444\",\n \"55555555-5555-4555-a555-555555555555\",\n \"66666666-6666-4666-a666-666666666666\"\n ]\n }\n ]\n },\n \"variables\": [\n {\n \"id\": \"aaaaaaaa-1111-4111-a111-111111111111\",\n \"type\": \"REFERENCE\",\n \"name\": \"Customer\",\n \"source\": {\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"defaultValue\": \"\",\n \"allowMultiple\": false,\n \"staticVariable\": false,\n \"filters\": []\n },\n {\n \"id\": \"bbbbbbbb-2222-4222-a222-222222222222\",\n \"type\": \"DATE\",\n \"name\": \"Period\",\n \"date\": {\n \"mode\": \"dynamic\",\n \"dynamicOption\": \"thisMonth\"\n }\n },\n {\n \"id\": \"cccccccc-3333-4333-a333-333333333333\",\n \"type\": \"MEMBER\",\n \"name\": \"Owner\",\n \"defaultValue\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\",\n \"allowMultiple\": false,\n \"staticVariable\": false\n }\n ],\n \"widgets\": [\n {\n \"id\": \"11111111-1111-4111-a111-111111111111\",\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": {\n \"name\": \"Customers\",\n \"description\": \"All customers\",\n \"icon\": \"users\",\n \"color\": \"blue\"\n },\n \"bindings\": {\n \"variableMap\": {\n \"aaaaaaaa-1111-4111-a111-111111111111\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n },\n \"query\": {\n \"filters\": [],\n \"sorts\": [\n { \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\", \"direction\": \"ASC\" }\n ]\n },\n \"behavior\": {\n \"readOnly\": false,\n \"hideAddButton\": false,\n \"hideDeleteButton\": false\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"],\n \"columnSize\": { \"contact-name\": 240 }\n }\n }\n ],\n \"crossWidgetFilter\": [\n {\n \"sourceWidget\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targetWidgets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n }\n ],\n \"navigationTargets\": [\n {\n \"id\": \"nav-target-customer\",\n \"sourceWidgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"targetDisplayId\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"targetVariableId\": \"aaaaaaaa-1111-4111-a111-111111111111\",\n \"label\": \"Open customer\"\n }\n ],\n \"folder\": {\n \"id\": \"b1a2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n \"name\": \"📊 Executive\",\n \"isRoot\": false\n }\n}`,\n },\n ],\n \"displays update\": [\n {\n description: \"Update only the display description.\",\n command:\n 'zinkee --json displays update 0f6f062f-1478-4df2-96a1-c495d037d260 --description \"Sales pipeline overview\"',\n raw: `{\n \"description\": \"Sales pipeline overview\"\n}`,\n },\n {\n description: \"Clear the display description.\",\n command:\n 'zinkee --json displays update 0f6f062f-1478-4df2-96a1-c495d037d260 --description \"\"',\n raw: `{\n \"description\": \"\"\n}`,\n },\n {\n description: \"Rename a display (patch of top-level metadata only).\",\n command:\n 'zinkee --json displays update 0f6f062f-1478-4df2-96a1-c495d037d260 --name \"Pipeline overview (renamed)\"',\n raw: `{\n \"name\": \"Pipeline overview (renamed)\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\"\n}`,\n },\n ],\n \"displays delete\": [\n {\n description: \"Delete a display.\",\n command: \"zinkee --json displays delete 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays folders list\": [\n {\n description: \"List flat display folders (non-root folders plus the root bucket).\",\n command: \"zinkee --json displays folders list\",\n response: `[\n {\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false,\n \"displayCount\": 2\n },\n {\n \"id\": \"8b22282b-3db3-4dd7-87f7-b29365dcf3f6\",\n \"name\": null,\n \"isRoot\": true,\n \"displayCount\": 4\n }\n]`,\n },\n ],\n \"displays folders create\": [\n {\n description: \"Create one flat display folder.\",\n command: 'zinkee --json displays folders create --name \"Executive Dashboards\"',\n raw: `{\n \"name\": \"Executive Dashboards\"\n}`,\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false,\n \"displayCount\": 0\n}`,\n },\n ],\n \"displays folders update\": [\n {\n description: \"Rename a display folder. The folder argument accepts a UUID or an exact name.\",\n command:\n 'zinkee --json displays folders update \"Executive Dashboards\" --name \"Executive Dashboards (2026)\"',\n raw: `{\n \"name\": \"Executive Dashboards (2026)\"\n}`,\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards (2026)\",\n \"isRoot\": false,\n \"displayCount\": 2\n}`,\n },\n ],\n \"displays folders delete\": [\n {\n description: \"Delete a non-root display folder. Its displays move back to the root folder.\",\n command: 'zinkee --json displays folders delete \"Executive Dashboards\"',\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false,\n \"displayCount\": 2\n}`,\n },\n ],\n \"displays folders move\": [\n {\n description: \"Move one display into a target folder by exact folder name.\",\n command:\n 'zinkee --json displays folders move 0f6f062f-1478-4df2-96a1-c495d037d260 --to \"Executive Dashboards\"',\n raw: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"targetFolderId\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\"\n}`,\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false\n}`,\n },\n ],\n \"displays layout get\": [\n {\n description: \"Get the layout block of a display (template + tabs/freeformLayouts/slots).\",\n command: \"zinkee --json displays layout get 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays layout update\": [\n {\n description: \"Replace the freeform layout of a display.\",\n command:\n `zinkee --json displays layout update 0f6f062f-1478-4df2-96a1-c495d037d260 --template freeform --freeform-layouts '{\"lg\":[{\"i\":\"widget-1\",\"x\":0,\"y\":0,\"w\":6,\"h\":5}]}'`,\n },\n ],\n \"displays tabs list\": [\n {\n description: \"List the tabs of a display (only meaningful when the layout template uses tabs).\",\n command: \"zinkee --json displays tabs list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays tabs delete\": [\n {\n description: \"Delete a tab by id.\",\n command: \"zinkee --json displays tabs delete 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"tabId\": \"tab-main\"\n}`,\n },\n ],\n \"displays variables list\": [\n {\n description: \"List the variables of a display.\",\n command: \"zinkee --json displays variables list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays variables get\": [\n {\n description: \"Get one variable by id.\",\n command:\n \"zinkee --json displays variables get 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111\",\n },\n ],\n \"displays variables delete\": [\n {\n description: \"Delete a variable.\",\n command:\n \"zinkee --json displays variables delete 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"variableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n ],\n \"displays widgets list\": [\n {\n description: \"List the widgets of a display.\",\n command: \"zinkee --json displays widgets list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays widgets get\": [\n {\n description: \"Get one widget (returns the canonical typed widget contract).\",\n command:\n \"zinkee --json displays widgets get 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111\",\n response: `{\n \"id\": \"11111111-1111-4111-a111-111111111111\",\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": {\n \"name\": \"Customers\",\n \"description\": \"All customers\",\n \"icon\": \"users\",\n \"color\": \"blue\"\n },\n \"bindings\": {\n \"variableMap\": {\n \"aaaaaaaa-1111-4111-a111-111111111111\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n },\n \"query\": {\n \"filters\": [],\n \"sorts\": [\n { \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\", \"direction\": \"ASC\" }\n ]\n },\n \"behavior\": {\n \"readOnly\": false,\n \"hideAddButton\": false,\n \"hideDeleteButton\": false\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"],\n \"columnSize\": { \"contact-name\": 240 }\n }\n}`,\n },\n ],\n \"displays widgets delete\": [\n {\n description: \"Delete a widget.\",\n command:\n \"zinkee --json displays widgets delete 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n ],\n \"displays navigation-targets list\": [\n {\n description: \"List navigation targets for a display.\",\n command: \"zinkee --json displays navigation-targets list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays navigation-targets delete\": [\n {\n description: \"Delete a navigation target.\",\n command:\n \"zinkee --json displays navigation-targets delete 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"navigationTargetId\": \"nav-target-customer\"\n}`,\n },\n ],\n \"displays cross-widget-filter get\": [\n {\n description: \"Get the cross-widget filter of a display (can be null if none is set).\",\n command: \"zinkee --json displays cross-widget-filter get 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays cross-widget-filter delete\": [\n {\n description: \"Delete the cross-widget filter of a display.\",\n command:\n \"zinkee --json displays cross-widget-filter delete 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"automations list\": [\n {\n description: \"List automations with summaries.\",\n command: \"zinkee --json automations list\",\n response: `[\n {\n \"id\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"name\": \"Codex Trigger Demo 1774278580\",\n \"description\": \"Demo compleja no-webhook para revisar en frontend.\",\n \"status\": \"active\",\n \"folder\": {\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false\n },\n \"triggerType\": \"record_changed\",\n \"actionTypes\": [\"create_record\", \"http_request\", \"execute_plugin\", \"send_message\"]\n }\n]`,\n },\n {\n description: \"Filter automations by folder, status, and trigger type.\",\n command:\n 'zinkee --json automations list --folder \"Codex Frontend Demo\" --status active --trigger-type record_changed',\n },\n ],\n \"automations get\": [\n {\n description:\n \"Get the full automation document, including trigger, actions and flow.\",\n command: \"zinkee --json automations get automation-1\",\n response: `{\n \"id\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"name\": \"Codex Trigger Demo 1774278580\",\n \"description\": \"Demo compleja no-webhook para revisar en frontend.\",\n \"status\": \"active\",\n \"folder\": {\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false\n },\n \"trigger\": {\n \"type\": \"record_changed\",\n \"config\": {\n \"schemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldIds\": [\"4dd04e57-2a01-4c49-8728-9cb288bffb8d\"],\n \"conditions\": [\n {\n \"field\": \"4dd04e57-2a01-4c49-8728-9cb288bffb8d\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n },\n \"actions\": [\n {\n \"id\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldMapping\": {\n \"34250412-f016-44c0-9f88-37dd1ddb4b13\": {\n \"rawValue\": \"Created by automation\",\n \"source\": null\n }\n }\n }\n },\n {\n \"id\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"type\": \"http_request\",\n \"name\": \"Notify ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"headers\": {\"X-Demo\": \"codex\"},\n \"body\": \"{\\\\\"event\\\\\":\\\\\"order.status.changed\\\\\"}\",\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"variables\": {},\n \"authMode\": \"STORED\",\n \"connectionId\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\"\n }\n },\n {\n \"id\": \"dae13307-057f-4c39-817c-4d2dd5898421\",\n \"type\": \"execute_plugin\",\n \"name\": \"Run billing plugin\",\n \"config\": {\n \"pluginId\": \"demo-plugin\",\n \"pluginArgs\": {\n \"mode\": \"safe\"\n }\n }\n }\n ],\n \"flow\": {\n \"entryActionIds\": [\"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\"],\n \"transitions\": [\n {\n \"fromActionId\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"toActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\"\n },\n {\n \"fromActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"toActionId\": \"dae13307-057f-4c39-817c-4d2dd5898421\"\n }\n ]\n }\n}`,\n },\n ],\n \"automations delete\": [\n {\n description: \"Delete an automation. The response mirrors the mutation shape.\",\n command: \"zinkee --json automations delete automation-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations activate\": [\n {\n description: \"Activate an automation (transitions it to status=active).\",\n command: \"zinkee --json automations activate automation-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations deactivate\": [\n {\n description: \"Deactivate an automation (transitions it to status=inactive).\",\n command: \"zinkee --json automations deactivate automation-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations folders list\": [\n {\n description: \"List flat automation folders (non-root plus the root bucket).\",\n command: \"zinkee --json automations folders list\",\n response: `[\n {\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false,\n \"automationCount\": 2\n },\n {\n \"id\": \"8b22282b-3db3-4dd7-87f7-b29365dcf3f6\",\n \"name\": null,\n \"isRoot\": true,\n \"automationCount\": 3\n }\n]`,\n },\n ],\n \"automations folders delete\": [\n {\n description: \"Delete a non-root automation folder by exact name.\",\n command: 'zinkee --json automations folders delete \"Codex Frontend Demo\"',\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false,\n \"automationCount\": 0\n}`,\n },\n ],\n \"automations trigger get\": [\n {\n description:\n \"Get the trigger subresource. Response shape depends on trigger type; here the scheduled variant.\",\n command: \"zinkee --json automations trigger get automation-1\",\n response: `{\n \"type\": \"scheduled\",\n \"config\": {\n \"cronExpression\": \"0 15 10 * * 1\"\n }\n}`,\n },\n ],\n \"automations webhook get\": [\n {\n description:\n \"Get the webhook endpoint companion resource (only exists when the trigger is a webhook).\",\n command: \"zinkee --json automations webhook get automation-1\",\n response: `{\n \"endpointId\": \"b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"endpointUrl\": \"https://hooks.zinkee.com/webhooks/b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"active\": true,\n \"idempotencyKeyJsonPath\": \"$.id\",\n \"eventTypeJsonPath\": \"$.type\",\n \"allowedEventTypes\": [\"frontend.demo.created\"],\n \"fieldMappings\": [\n {\n \"variable\": \"external_id\",\n \"jsonPath\": \"$.data.id\"\n }\n ]\n}`,\n },\n ],\n \"automations webhook delete\": [\n {\n description: \"Delete the webhook endpoint companion resource (returns no body).\",\n command: \"zinkee --json automations webhook delete automation-1\",\n },\n ],\n \"automations actions list\": [\n {\n description: \"List the ordered actions of an automation.\",\n command: \"zinkee --json automations actions list automation-1\",\n response: `[\n {\n \"id\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldMapping\": {\n \"34250412-f016-44c0-9f88-37dd1ddb4b13\": {\n \"rawValue\": \"Created by automation\",\n \"source\": null\n }\n }\n }\n },\n {\n \"id\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"type\": \"http_request\",\n \"name\": \"Notify ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"headers\": {\"X-Demo\": \"codex\"},\n \"body\": \"{\\\\\"event\\\\\":\\\\\"order.status.changed\\\\\"}\",\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"variables\": {},\n \"authMode\": \"STORED\",\n \"connectionId\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\"\n }\n },\n {\n \"id\": \"dae13307-057f-4c39-817c-4d2dd5898421\",\n \"type\": \"execute_plugin\",\n \"name\": \"Run billing plugin\",\n \"config\": {\n \"pluginId\": \"demo-plugin\",\n \"pluginArgs\": {\"mode\": \"safe\"}\n }\n }\n]`,\n },\n ],\n \"automations actions delete\": [\n {\n description: \"Delete one action from an automation.\",\n command: \"zinkee --json automations actions delete automation-1 action-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations flow get\": [\n {\n description: \"Get the flow subresource (entry actions and transitions).\",\n command: \"zinkee --json automations flow get automation-1\",\n response: `{\n \"entryActionIds\": [\"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\"],\n \"transitions\": [\n {\n \"fromActionId\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"toActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\"\n },\n {\n \"fromActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"toActionId\": \"dae13307-057f-4c39-817c-4d2dd5898421\"\n }\n ]\n}`,\n },\n ],\n \"automations plugins list\": [\n {\n description: \"List active workspace plugins available for execute_plugin actions.\",\n command: \"zinkee --json automations plugins list\",\n response: `[\n {\n \"id\": \"demo-plugin\",\n \"name\": \"Demo Plugin\",\n \"active\": true,\n \"description\": \"Example plugin for automations\",\n \"properties\": {\n \"version\": \"1.0\"\n }\n }\n]`,\n },\n ],\n \"automations plugins get\": [\n {\n description: \"Get one plugin by id.\",\n command: \"zinkee --json automations plugins get demo-plugin\",\n response: `{\n \"id\": \"demo-plugin\",\n \"name\": \"Demo Plugin\",\n \"active\": true,\n \"description\": \"Example plugin for automations\",\n \"properties\": {\n \"version\": \"1.0\"\n }\n}`,\n },\n ],\n \"automations connections list\": [\n {\n description: \"List stored workspace connections (secrets are never returned).\",\n command: \"zinkee --json automations connections list\",\n response: `[\n {\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n }\n }\n]`,\n },\n ],\n \"automations connections get\": [\n {\n description: \"Get one stored connection by id.\",\n command: \"zinkee --json automations connections get connection-1\",\n response: `{\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"ownerMemberId\": \"6c8a3e0d-7b1f-4c98-a2e9-8b9a2e3f5b14\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"createdAt\": \"2026-04-21T09:00:00Z\",\n \"updatedAt\": \"2026-04-21T09:00:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"updatedBy\": \"developer@zinkee.com\"\n}`,\n },\n ],\n \"automations connections delete\": [\n {\n description: \"Delete one stored connection (returns no body).\",\n command: \"zinkee --json automations connections delete connection-1\",\n },\n ],\n \"automations create\": [\n {\n description:\n \"Create a scheduled automation with description and target folder. Safe first example because it does not depend on workspace schemas.\",\n command:\n 'zinkee --json automations create --name \"Nightly invoice sync\" --description \"Runs every Monday morning\" --folder cdfc14e3-3169-4ffb-8d9b-b11858a9240f --trigger-type scheduled --cron \"0 15 10 * * 1\"',\n raw: `{\n \"name\": \"Nightly invoice sync\",\n \"description\": \"Runs every Monday morning\",\n \"folderId\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"trigger\": {\n \"type\": \"scheduled\",\n \"config\": {\n \"cronExpression\": \"0 15 10 * * 1\"\n }\n }\n}`,\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n {\n description:\n \"Create a record-created automation with an 'is not empty' condition. Replace 'leads' and 'status' with real schema/field slugs or UUIDs.\",\n command:\n `zinkee --json automations create --name \"Lead welcome\" --trigger-type record_created --trigger-schema leads --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"name\": \"Lead welcome\",\n \"trigger\": {\n \"type\": \"record_created\",\n \"config\": {\n \"schemaId\": \"leads\",\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n }\n}`,\n },\n {\n description:\n \"Create a record-changed automation watching a single field, with an 'is not empty' condition. Replace 'orders' and 'status' with values from your workspace.\",\n command:\n `zinkee --json automations create --name \"Order status sync\" --trigger-type record_changed --trigger-schema orders --trigger-field status --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"name\": \"Order status sync\",\n \"trigger\": {\n \"type\": \"record_changed\",\n \"config\": {\n \"schemaId\": \"orders\",\n \"fieldIds\": [\"status\"],\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n }\n}`,\n },\n ],\n \"automations update\": [\n {\n description:\n \"Update automation description and move it to a folder. Supported patch paths: name, description, folderId.\",\n command:\n 'zinkee --json automations update automation-1 --description \"Updated by an agent\" --folder cdfc14e3-3169-4ffb-8d9b-b11858a9240f',\n raw: `{\n \"set\": {\n \"description\": \"Updated by an agent\",\n \"folderId\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\"\n }\n}`,\n },\n {\n description:\n \"Clear the folder assignment by combining an explicit unset through the raw payload.\",\n command:\n 'zinkee --json automations update automation-1 --raw \\'{\"unset\":[\"folderId\"]}\\'',\n raw: `{\n \"unset\": [\"folderId\"]\n}`,\n },\n ],\n \"automations trigger set\": [\n {\n description: \"Replace the trigger with a scheduled (cron) trigger.\",\n command:\n 'zinkee --json automations trigger set automation-1 --trigger-type scheduled --cron \"0 15 10 * * 1\"',\n raw: `{\n \"type\": \"scheduled\",\n \"config\": {\n \"cronExpression\": \"0 15 10 * * 1\"\n }\n}`,\n },\n {\n description:\n \"Replace the trigger with a record-created trigger plus an 'is not empty' condition. Agents should provide at least one meaningful condition.\",\n command:\n `zinkee --json automations trigger set automation-1 --trigger-type record_created --trigger-schema orders --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"type\": \"record_created\",\n \"config\": {\n \"schemaId\": \"orders\",\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n}`,\n },\n {\n description:\n \"Replace the trigger with a record-changed trigger watching one field, with an 'is not empty' condition on that field.\",\n command:\n `zinkee --json automations trigger set automation-1 --trigger-type record_changed --trigger-schema orders --trigger-field status --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"type\": \"record_changed\",\n \"config\": {\n \"schemaId\": \"orders\",\n \"fieldIds\": [\"status\"],\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n}`,\n },\n {\n description: \"Replace the trigger with a webhook trigger that reuses an existing webhook endpoint id.\",\n command:\n \"zinkee --json automations trigger set automation-1 --trigger-type webhook --webhook-endpoint-id b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n raw: `{\n \"type\": \"webhook\",\n \"config\": {\n \"webhookEndpointId\": \"b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\"\n }\n}`,\n },\n ],\n \"automations actions add\": [\n {\n description:\n \"Add a create-record action with two literal field mappings. Populate visible fieldMapping entries so the frontend form is complete.\",\n command:\n 'zinkee --json automations actions add automation-1 --type create_record --name \"Create follow-up order\" --target-schema followups --map status=pending --map description=\"Created by automation\"',\n raw: `{\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"followups\",\n \"fieldMapping\": {\n \"status\": {\n \"rawValue\": \"pending\",\n \"source\": null\n },\n \"description\": {\n \"rawValue\": \"Created by automation\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Add an update-record action that targets the trigger record. Pair --use-trigger-record with --map to rewrite fields on the record that fired the automation.\",\n command:\n 'zinkee --json automations actions add automation-1 --type update_record --name \"Mark order as processed\" --target-schema orders --use-trigger-record --map status=processed',\n raw: `{\n \"type\": \"update_record\",\n \"name\": \"Mark order as processed\",\n \"config\": {\n \"targetSchemaId\": \"orders\",\n \"fieldMapping\": {\n \"status\": {\n \"rawValue\": \"processed\",\n \"source\": null\n }\n },\n \"useTriggerRecord\": true\n }\n}`,\n },\n {\n description: \"Add a search-records action scoped to a target schema.\",\n command:\n 'zinkee --json automations actions add automation-1 --type search_records --name \"Find related invoices\" --target-schema orders',\n raw: `{\n \"type\": \"search_records\",\n \"name\": \"Find related invoices\",\n \"config\": {\n \"targetSchemaId\": \"orders\"\n }\n}`,\n },\n {\n description:\n \"Add a search-records action whose condition pulls its value from the trigger payload using --condition-json.\",\n command:\n `zinkee --json automations actions add automation-1 --type search_records --name \"Find duplicates\" --target-schema followups --condition-json '{\"field\":\"email\",\"comparator\":\"eq\",\"values\":[{\"rawValue\":null,\"source\":{\"type\":\"TRIGGER\",\"id\":\"f1e1d000-0000-0000-0000-000000000005\"}}]}'`,\n raw: `{\n \"type\": \"search_records\",\n \"name\": \"Find duplicates\",\n \"config\": {\n \"targetSchemaId\": \"followups\",\n \"conditions\": [\n {\n \"field\": \"email\",\n \"comparator\": \"eq\",\n \"values\": [\n {\n \"rawValue\": null,\n \"source\": {\n \"type\": \"TRIGGER\",\n \"id\": \"f1e1d000-0000-0000-0000-000000000005\"\n }\n }\n ]\n }\n ]\n }\n}`,\n },\n {\n description:\n \"Add an HTTP request action using a stored workspace connection for authentication.\",\n command:\n 'zinkee --json automations actions add automation-1 --type http_request --name \"Notify external ERP\" --method POST --url https://example.com/integrations/order-status --header X-Demo=codex --content-type application/json --timeout-ms 5000 --auth-mode STORED --connection connection-1',\n raw: `{\n \"type\": \"http_request\",\n \"name\": \"Notify external ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"headers\": {\n \"X-Demo\": \"codex\"\n },\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"authMode\": \"STORED\",\n \"connectionId\": \"connection-1\"\n }\n}`,\n },\n {\n description:\n \"Add an execute-plugin action with structured plugin arguments. Replace 'demo-plugin' with an active id from 'zinkee --json automations plugins list'.\",\n command:\n `zinkee --json automations actions add automation-1 --type execute_plugin --name \"Run billing plugin\" --plugin demo-plugin --arg mode=safe --arg-json steps='[\"one\",\"two\"]'`,\n raw: `{\n \"type\": \"execute_plugin\",\n \"name\": \"Run billing plugin\",\n \"config\": {\n \"pluginId\": \"demo-plugin\",\n \"pluginArgs\": {\n \"mode\": \"safe\",\n \"steps\": [\"one\", \"two\"]\n }\n }\n}`,\n },\n {\n description:\n \"Add a send-message action. --to maps to fieldMapping.recipients and --message maps to fieldMapping.body. Values are wrapped in {rawValue, source} like every other automation field mapping; use --map / --map-json for extra keys.\",\n command:\n `zinkee --json automations actions add automation-1 --type send_message --name \"Notify customer\" --to customer@example.com --subject \"Your order status has changed\" --message \"Hello, your order is now processed.\"`,\n raw: `{\n \"type\": \"send_message\",\n \"name\": \"Notify customer\",\n \"config\": {\n \"fieldMapping\": {\n \"recipients\": {\n \"rawValue\": \"customer@example.com\",\n \"source\": null\n },\n \"subject\": {\n \"rawValue\": \"Your order status has changed\",\n \"source\": null\n },\n \"body\": {\n \"rawValue\": \"Hello, your order is now processed.\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Add a generate-document action. The renderer reads the template, writes the file, and stores its id in the target FileField of the target schema.\",\n command:\n 'zinkee --json automations actions add automation-1 --type generate_document --name \"Generate invoice PDF\" --document-template 6c08673e-f8a6-44d2-8c91-d09eca911f8f --target-schema 68d2c7be-4392-42de-b5ae-625ad79cfc3c --target-file-field c8edbde8-a361-4e9f-a39a-2e88971f21a7',\n raw: `{\n \"type\": \"generate_document\",\n \"name\": \"Generate invoice PDF\",\n \"config\": {\n \"documentTemplateId\": \"6c08673e-f8a6-44d2-8c91-d09eca911f8f\",\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"targetFileFieldId\": \"c8edbde8-a361-4e9f-a39a-2e88971f21a7\"\n }\n}`,\n },\n ],\n \"automations actions update\": [\n {\n description:\n \"Replace an update-record action so it targets the trigger record. Conditions are stripped automatically when --use-trigger-record is provided.\",\n command:\n 'zinkee --json automations actions update automation-1 action-1 --type update_record --name \"Update trigger record\" --target-schema followups --map status=ready --use-trigger-record',\n raw: `{\n \"type\": \"update_record\",\n \"name\": \"Update trigger record\",\n \"config\": {\n \"targetSchemaId\": \"followups\",\n \"fieldMapping\": {\n \"status\": {\n \"rawValue\": \"ready\",\n \"source\": null\n }\n },\n \"useTriggerRecord\": true\n }\n}`,\n response: `{\n \"id\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldMapping\": {\n \"34250412-f016-44c0-9f88-37dd1ddb4b13\": {\n \"rawValue\": \"Updated by an agent\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Replace an HTTP request action, keeping it authenticated through a stored connection.\",\n command:\n 'zinkee --json automations actions update automation-1 action-1 --type http_request --name \"Notify external ERP\" --method POST --url https://example.com/integrations/order-status --content-type application/json --timeout-ms 5000 --auth-mode STORED --connection connection-1',\n raw: `{\n \"type\": \"http_request\",\n \"name\": \"Notify external ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"authMode\": \"STORED\",\n \"connectionId\": \"connection-1\"\n }\n}`,\n },\n {\n description:\n \"Replace a send-message action. --to maps to fieldMapping.recipients and --message maps to fieldMapping.body; values are wrapped in {rawValue, source}.\",\n command:\n `zinkee --json automations actions update automation-1 action-1 --type send_message --name \"Notify customer\" --to customer@example.com --subject \"Your order status has changed\" --message \"Hello, your order is now processed.\"`,\n raw: `{\n \"type\": \"send_message\",\n \"name\": \"Notify customer\",\n \"config\": {\n \"fieldMapping\": {\n \"recipients\": {\n \"rawValue\": \"customer@example.com\",\n \"source\": null\n },\n \"subject\": {\n \"rawValue\": \"Your order status has changed\",\n \"source\": null\n },\n \"body\": {\n \"rawValue\": \"Hello, your order is now processed.\",\n \"source\": null\n }\n }\n }\n}`,\n },\n ],\n \"automations flow set\": [\n {\n description:\n \"Set one entry action and chain two transitions (action-1 → action-2 → action-3).\",\n command:\n \"zinkee --json automations flow set automation-1 --entry action-1 --transition action-1:action-2 --transition action-2:action-3\",\n raw: `{\n \"entryActionIds\": [\"action-1\"],\n \"transitions\": [\n {\n \"fromActionId\": \"action-1\",\n \"toActionId\": \"action-2\"\n },\n {\n \"fromActionId\": \"action-2\",\n \"toActionId\": \"action-3\"\n }\n ]\n}`,\n },\n ],\n \"automations webhook set\": [\n {\n description:\n \"Create or update the webhook endpoint companion resource with idempotency key, event type filter, and a field mapping. This config is separate from the webhook trigger itself.\",\n command:\n `zinkee --json automations webhook set automation-1 --idempotency-key-path \"$.id\" --event-type-path \"$.type\" --allowed-event-type frontend.demo.created --field-mapping '{\"variable\":\"external_id\",\"jsonPath\":\"$.data.id\"}' --active`,\n raw: `{\n \"active\": true,\n \"idempotencyKeyJsonPath\": \"$.id\",\n \"eventTypeJsonPath\": \"$.type\",\n \"allowedEventTypes\": [\"frontend.demo.created\"],\n \"fieldMappings\": [\n {\n \"variable\": \"external_id\",\n \"jsonPath\": \"$.data.id\"\n }\n ]\n}`,\n response: `{\n \"endpointId\": \"b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"endpointUrl\": \"https://hooks.zinkee.com/webhooks/b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"active\": true,\n \"idempotencyKeyJsonPath\": \"$.id\",\n \"eventTypeJsonPath\": \"$.type\",\n \"allowedEventTypes\": [\"frontend.demo.created\"],\n \"fieldMappings\": [\n {\n \"variable\": \"external_id\",\n \"jsonPath\": \"$.data.id\"\n }\n ]\n}`,\n },\n ],\n \"automations connections create\": [\n {\n description:\n \"Create a stored workspace connection for http_request actions. Secret values are write-only and never returned on read.\",\n command:\n `zinkee --json automations connections create --name \"ERP API Key\" --type api_key --scope workspace --config '{\"headerName\":\"Authorization\"}' --secret apiKey=super-secret --active`,\n raw: `{\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"secret\": {\n \"apiKey\": \"super-secret\"\n },\n \"active\": true\n}`,\n response: `{\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"ownerMemberId\": \"6c8a3e0d-7b1f-4c98-a2e9-8b9a2e3f5b14\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"createdAt\": \"2026-04-21T09:00:00Z\",\n \"updatedAt\": \"2026-04-21T09:00:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"updatedBy\": \"developer@zinkee.com\"\n}`,\n },\n ],\n \"automations connections update\": [\n {\n description:\n \"Patch an existing stored connection. Use set.secret only when rotating secrets.\",\n command:\n `zinkee --json automations connections update connection-1 --raw '{\"set\":{\"name\":\"ERP API Key Updated\",\"config\":{\"headerName\":\"Authorization\"}}}'`,\n raw: `{\n \"set\": {\n \"name\": \"ERP API Key Updated\",\n \"config\": {\n \"headerName\": \"Authorization\"\n }\n }\n}`,\n response: `{\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key Updated\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"ownerMemberId\": \"6c8a3e0d-7b1f-4c98-a2e9-8b9a2e3f5b14\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"createdAt\": \"2026-04-21T09:00:00Z\",\n \"updatedAt\": \"2026-04-21T10:15:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"updatedBy\": \"developer@zinkee.com\"\n}`,\n },\n ],\n \"automations folders create\": [\n {\n description: \"Create one flat automation folder.\",\n command: 'zinkee --json automations folders create --name \"Codex Frontend Demo\"',\n raw: `{\n \"name\": \"Codex Frontend Demo\"\n}`,\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false,\n \"automationCount\": 0\n}`,\n },\n ],\n \"automations folders update\": [\n {\n description: \"Rename a non-root automation folder. The folder argument accepts a UUID or an exact name.\",\n command:\n 'zinkee --json automations folders update \"Codex Frontend Demo\" --name \"Codex Frontend Demo Updated\"',\n raw: `{\n \"name\": \"Codex Frontend Demo Updated\"\n}`,\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo Updated\",\n \"isRoot\": false,\n \"automationCount\": 2\n}`,\n },\n ],\n \"automations folders move\": [\n {\n description: \"Move one automation into a target folder by exact folder name.\",\n command: 'zinkee --json automations folders move automation-1 --to \"Codex Frontend Demo\"',\n raw: `{\n \"automationId\": \"automation-1\",\n \"targetFolderId\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\"\n}`,\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false\n}`,\n },\n ],\n \"document-templates list\": [\n {\n description:\n \"List every document template in the workspace. Each asset's link is a relative path to the asset download endpoint, ready to call without composition.\",\n command: \"zinkee --json document-templates list\",\n response: `[\n {\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Requirements.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-20T14:30:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"updater@example.com\"\n }\n]`,\n },\n ],\n \"document-templates get\": [\n {\n description:\n \"Look up one template by UUID. The CLI filters the list endpoint locally (the backend does not expose a get-one route).\",\n command:\n \"zinkee --json document-templates get 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Requirements.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-20T14:30:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"creator@example.com\"\n}`,\n },\n {\n description:\n \"Look up by exact template name. Names are unique within the workspace; ambiguity is reported as an error.\",\n command: 'zinkee --json document-templates get \"Quarterly report\"',\n },\n ],\n \"document-templates create\": [\n {\n description:\n \"Typical create: empty template by name. Assets are uploaded afterwards via document-templates assets add.\",\n command: 'zinkee --json document-templates create --name \"Quarterly report\"',\n raw: `{\n \"name\": \"Quarterly report\",\n \"assets\": []\n}`,\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-15T10:00:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"creator@example.com\"\n}`,\n },\n {\n description:\n \"Create with pre-existing asset records via --raw. Used for import/migration flows where the assets already exist elsewhere; the typical UX is to create empty and upload via assets add.\",\n command:\n `zinkee --json document-templates create --raw '{\"name\":\"Annual report\",\"assets\":[{\"id\":\"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\"name\":\"Cover.docx\",\"link\":\"/existing/cover.docx\"},{\"id\":\"3f2e1d0c-9b8a-7654-3210-fedcba987654\",\"name\":\"Appendix.docx\",\"link\":\"/existing/appendix.docx\"}]}'`,\n raw: `{\n \"name\": \"Annual report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Cover.docx\",\n \"link\": \"/existing/cover.docx\"\n },\n {\n \"id\": \"3f2e1d0c-9b8a-7654-3210-fedcba987654\",\n \"name\": \"Appendix.docx\",\n \"link\": \"/existing/appendix.docx\"\n }\n ]\n}`,\n },\n ],\n \"document-templates update\": [\n {\n description:\n \"Rename a template. The template argument accepts a UUID or an exact current name. Only the name is updatable through this endpoint; assets are managed via the assets subcommands.\",\n command:\n 'zinkee --json document-templates update \"Quarterly report\" --name \"Annual report\"',\n raw: `{\n \"name\": \"Annual report\"\n}`,\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Annual report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Requirements.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-22T09:15:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"updater@example.com\"\n}`,\n },\n ],\n \"document-templates delete\": [\n {\n description:\n \"Delete a template and remove its asset files from storage. Record fields that reference previously generated documents are not modified.\",\n command:\n \"zinkee --json document-templates delete 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"deleted\": true\n}`,\n },\n ],\n \"document-templates assets add\": [\n {\n description:\n \"Upload a local file as an asset of a template. The CLI sends a multipart form with a part named \\\"file\\\"; the asset display name defaults to the uploaded filename.\",\n command:\n 'zinkee --json document-templates assets add \"Quarterly report\" ./contract.docx',\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"contract.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-22T09:15:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"updater@example.com\"\n}`,\n },\n {\n description:\n \"Override the asset display name with --name (otherwise the uploaded filename is used).\",\n command:\n 'zinkee --json document-templates assets add \"Quarterly report\" ./contract.docx --name \"Customer Contract\"',\n },\n ],\n \"document-templates assets delete\": [\n {\n description: \"Delete one asset from a template and remove its file from storage.\",\n command:\n \"zinkee --json document-templates assets delete 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e 9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n response: `{\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"deleted\": true\n}`,\n },\n ],\n \"document-templates assets download\": [\n {\n description:\n \"Download asset bytes to disk. The CLI streams the raw bytes to --output; in --json mode --output is required and the JSON envelope only carries metadata.\",\n command:\n \"zinkee --json document-templates assets download 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e 9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f --output ./contract.docx\",\n },\n {\n description:\n \"Stream asset bytes to stdout (omit --json and --output). Useful for piping into other tools.\",\n command:\n \"zinkee document-templates assets download 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e 9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f > contract.docx\",\n },\n ],\n};\n\nfunction buildSchemaFieldCreateExamples(type?: string): readonly CommandExample[] {\n const definitions = getSchemaFieldTypeDefinitions();\n const selectedDefinition = resolveSchemaFieldType(type);\n const filteredDefinitions = selectedDefinition\n ? definitions.filter((definition) => definition.key === selectedDefinition.key)\n : definitions;\n\n const payloads = filteredDefinitions.flatMap((definition) => definition.examplePayloads);\n\n const flagExamples: CommandExample[] =\n selectedDefinition === undefined || selectedDefinition.key === \"text\"\n ? [\n {\n description: \"Text field with a description.\",\n command:\n 'zinkee --json schemas fields create contacts --type text --slug customer-name --label \"Customer Name\" --description \"Primary name shown for the customer\"',\n raw: `{\n \"type\": \"TextField\",\n \"slug\": \"customer-name\",\n \"label\": \"Customer Name\",\n \"description\": \"Primary name shown for the customer\"\n}`,\n },\n ]\n : [];\n\n return [\n ...flagExamples,\n ...payloads.map((example, index) => {\n const slug =\n typeof example.payload.slug === \"string\" ? example.payload.slug : \"field\";\n const command = `zinkee --json schemas fields create contacts --raw '${JSON.stringify(example.payload)}'`;\n\n if (index === 0) {\n return {\n description: example.name,\n command,\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"slug\": \"${slug}\"\n}`,\n };\n }\n\n return {\n description: example.name,\n command,\n };\n }),\n ];\n}\n\nexport function getCommandExamples(\n commandName: string,\n filters: { type?: string } = {},\n): readonly CommandExample[] {\n const examples =\n commandName === \"schemas fields create\"\n ? buildSchemaFieldCreateExamples(filters.type)\n : (specificExamples[commandName] ?? []);\n\n return examples.map((example) => withResponseEnvelope(example, commandName));\n}\n\n// The CLI's --json output wraps every payload in a { data, meta } envelope (see\n// buildJsonSuccess in ./output). Example \"response\" bodies are authored as the\n// bare data payload for readability, so we wrap them here to match what the\n// command actually prints. Non-JSON responses (if any) are left untouched.\nfunction withResponseEnvelope(\n example: CommandExample,\n commandName: string,\n): CommandExample {\n if (example.response === undefined) {\n return example;\n }\n\n let payload: unknown;\n try {\n payload = JSON.parse(example.response);\n } catch {\n return example;\n }\n\n return {\n ...example,\n response: JSON.stringify(buildJsonSuccess(payload, { command: commandName }), null, 2),\n };\n}\n"],"mappings":";;;;;;;AAaA,IAAM,cAAc;AAEpB,IAAM,mBAA8D;AAAA,EAClE,4BAA4B;AAAA,IAC1B;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,MAKL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQZ;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAAA,MAIL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQZ;AAAA,EACF;AAAA,EACA,gCAAgC;AAAA,IAC9B;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,MAGL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQZ;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcZ;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IAKZ;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA,IAGZ;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaZ;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAML,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,MAGL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA6BZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAML,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA6CZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,EACF;AAAA,EACA,yBAAyB;AAAA,IACvB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,MAIL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA,IAKZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAeP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAoBP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAcP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASP;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAmBZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAiBL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWZ;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAML,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,MAKL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOZ;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP;AAAA,EACF;AAAA,EACA,kBAAkB;AAAA,IAChB;AAAA,MACE,aACE;AAAA,MACF,SAAS,gCAAgC,WAAW;AAAA,IACtD;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,aACE;AAAA,MACF,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA,IAGZ;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,aACE;AAAA,MACF,SAAS,8BAA8B,WAAW;AAAA,MAClD,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,MAIL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,EACF;AAAA,EACA,4BAA4B;AAAA,IAC1B;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,EACF;AAAA,EACA,4BAA4B;AAAA,IAC1B;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAiBZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,EACF;AAAA,EACA,+BAA+B;AAAA,IAC7B;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,MAIL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,EACF;AAAA,EACA,iCAAiC;AAAA,IAC/B;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,KAAK;AAAA;AAAA;AAAA,MAGL,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,EACF;AAAA,EACA,mBAAmB;AAAA,IACjB;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYL,UAAU;AAAA;AAAA;AAAA,IAGZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP;AAAA,EACF;AAAA,EACA,wBAAwB;AAAA,IACtB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,MAIL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,EACF;AAAA,EACA,wBAAwB;AAAA,IACtB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,MAGL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAYL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAqBP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASP;AAAA,EACF;AAAA,EACA,6BAA6B;AAAA,IAC3B;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,MAKL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMP;AAAA,EACF;AAAA,EACA,2BAA2B;AAAA,IACzB;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAqBL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAkCL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgCP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0CP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAyCP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAsDP;AAAA,EACF;AAAA,EACA,2BAA2B;AAAA,IACzB;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAUL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAsBL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAgBP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQP;AAAA,EACF;AAAA,EACA,sCAAsC;AAAA,IACpC;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAML,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA,IAKP;AAAA,EACF;AAAA,EACA,sCAAsC;AAAA,IACpC;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,MAGL,UAAU;AAAA;AAAA;AAAA;AAAA,IAIZ;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA,IAIP;AAAA,IACA;AAAA,MACE,aAAa;AAAA,MACb,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA,IAGP;AAAA,EACF;AAAA,EACA,oCAAoC;AAAA,IAClC;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAkBP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BP;AAAA,IACA;AAAA,MACE,aACE;AAAA,MACF,SACE;AAAA,MACF,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA0BP;AAAA,EACF;AAAA,EACA,gBAAgB;AAAA,IACd;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA4BZ;AAAA,EACF;AAAA,EACA,eAAe;AAAA,IACb;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/examples.ts"],"sourcesContent":["import {\n getSchemaFieldTypeDefinitions,\n resolveSchemaFieldType,\n} from \"./schema-fields.js\";\nimport { buildJsonSuccess } from \"./output.js\";\n\nexport interface CommandExample {\n command: string;\n description: string;\n raw?: string;\n response?: string;\n}\n\nconst SAMPLE_UUID = \"550e8400-e29b-41d4-a716-446655440001\";\n\nconst specificExamples: Record<string, readonly CommandExample[]> = {\n \"formulas recompute field\": [\n {\n description: \"Queue a full recalculation of one formula column.\",\n command: \"zinkee --json formulas recompute field invoices total\",\n raw: `{\n \"scope\": \"FIELD\",\n \"schema\": \"invoices\",\n \"field\": \"total\"\n}`,\n response: `{\n \"requestId\": \"02ab5d47-cb5f-4eb2-afb8-e9a3a9eb34d4\",\n \"scope\": \"FIELD\",\n \"formulaCount\": 1,\n \"skippedFormulaCount\": 0,\n \"eventsQueued\": 1,\n \"status\": \"QUEUED\"\n}`,\n },\n ],\n \"formulas recompute schema\": [\n {\n description: \"Queue recalculation of every active formula in one schema.\",\n command: \"zinkee --json formulas recompute schema invoices --yes\",\n raw: `{\n \"scope\": \"SCHEMA\",\n \"schema\": \"invoices\"\n}`,\n response: `{\n \"requestId\": \"02ab5d47-cb5f-4eb2-afb8-e9a3a9eb34d4\",\n \"scope\": \"SCHEMA\",\n \"formulaCount\": 8,\n \"skippedFormulaCount\": 1,\n \"eventsQueued\": 8,\n \"status\": \"QUEUED\"\n}`,\n },\n ],\n \"formulas recompute workspace\": [\n {\n description: \"Queue recalculation of every active formula in the workspace.\",\n command: \"zinkee --json formulas recompute workspace --yes\",\n raw: `{\n \"scope\": \"WORKSPACE\"\n}`,\n response: `{\n \"requestId\": \"02ab5d47-cb5f-4eb2-afb8-e9a3a9eb34d4\",\n \"scope\": \"WORKSPACE\",\n \"formulaCount\": 24,\n \"skippedFormulaCount\": 2,\n \"eventsQueued\": 24,\n \"status\": \"QUEUED\"\n}`,\n },\n ],\n \"profiles list\": [\n {\n description:\n \"List all local profiles. The CLI always redacts the apiKey to ******** plus the last 4 chars.\",\n command: \"zinkee --json profiles list\",\n response: `[\n {\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n },\n {\n \"name\": \"local\",\n \"isDefault\": false,\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"http://localhost:8088\"\n }\n]`,\n },\n ],\n \"profiles get\": [\n {\n description: \"Show one profile by name.\",\n command: \"zinkee --json profiles get prod\",\n response: `{\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n}`,\n },\n ],\n \"profiles use\": [\n {\n description: \"Set a profile as the default one used when --profile is not passed.\",\n command: \"zinkee --json profiles use local\",\n response: `{\n \"profile\": \"local\",\n \"defaultProfile\": \"local\"\n}`,\n },\n ],\n \"profiles add\": [\n {\n description:\n \"Add a new profile with an explicit base URL. Becomes the default if no other profile existed.\",\n command:\n \"zinkee --json profiles add prod --api-key sk-prod-9f3a2c1b-1234567890abcdef --base-url https://api.zinkee.com\",\n response: `{\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n}`,\n },\n {\n description:\n \"Add a profile without --base-url (the runtime falls back to the production URL at call time).\",\n command: \"zinkee --json profiles add staging --api-key sk-REPLACE_WITH_YOUR_API_KEY\",\n response: `{\n \"name\": \"staging\",\n \"isDefault\": false,\n \"apiKey\": \"********eeee\"\n}`,\n },\n ],\n \"profiles update\": [\n {\n description: \"Rotate just the API key of an existing profile.\",\n command:\n \"zinkee --json profiles update prod --api-key sk-prod-0000new0-fedcba0987654321\",\n response: `{\n \"name\": \"prod\",\n \"isDefault\": true,\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"https://api.zinkee.com\"\n}`,\n },\n {\n description: \"Point an existing profile at a different base URL (useful when moving envs).\",\n command: \"zinkee --json profiles update local --base-url http://localhost:9090\",\n response: `{\n \"name\": \"local\",\n \"isDefault\": false,\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"http://localhost:9090\"\n}`,\n },\n ],\n \"profiles remove\": [\n {\n description:\n \"Remove a profile. If it was the default, defaultProfile becomes null and you should set a new one with profiles use.\",\n command: \"zinkee --json profiles remove staging\",\n response: `{\n \"profile\": \"staging\",\n \"defaultProfile\": \"prod\"\n}`,\n },\n ],\n \"config path\": [\n {\n description: \"Print the path of the config file the CLI is reading right now.\",\n command: \"zinkee --json config path\",\n response: `{\n \"path\": \"/home/guillermo/.config/zinkee/config.json\"\n}`,\n },\n ],\n \"config show\": [\n {\n description:\n \"Dump the whole config with secrets redacted. Same ******** + last 4 chars mask that profiles list uses.\",\n command: \"zinkee --json config show\",\n response: `{\n \"defaultProfile\": \"prod\",\n \"profiles\": {\n \"prod\": {\n \"apiKey\": \"********cdef\",\n \"baseUrl\": \"https://api.zinkee.com\"\n },\n \"local\": {\n \"apiKey\": \"********4321\",\n \"baseUrl\": \"http://localhost:8088\"\n }\n }\n}`,\n },\n ],\n \"config validate\": [\n {\n description:\n \"Validate that the local config resolves a profile. Useful as a CI gate before running other commands.\",\n command: \"zinkee --json config validate\",\n response: `{\n \"valid\": true,\n \"profile\": \"prod\"\n}`,\n },\n ],\n \"schemas create\": [\n {\n description: \"Create an auditable and commentable schema from flags.\",\n command:\n 'zinkee --json schemas create --name \"Codex Demo\" --slug codex-demo --auditable --commentable',\n raw: `{\n \"name\": \"Codex Demo\",\n \"slug\": \"codex-demo\",\n \"auditable\": true,\n \"commentable\": true\n}`,\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"slug\": \"codex-demo\",\n \"folder\": {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"root\",\n \"isRoot\": true\n }\n}`,\n },\n {\n description: \"Minimal create with just name and slug.\",\n command: 'zinkee --json schemas create --name Leads --slug leads',\n raw: `{\n \"name\": \"Leads\",\n \"slug\": \"leads\"\n}`,\n },\n {\n description:\n \"Create an auditable schema inside an existing navigation folder (folder id can be a UUID or the exact folder name).\",\n command:\n 'zinkee --json schemas create --name Tasks --slug tasks --auditable --folder 7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f',\n raw: `{\n \"name\": \"Tasks\",\n \"slug\": \"tasks\",\n \"auditable\": true,\n \"commentable\": false,\n \"folderId\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\"\n}`,\n },\n ],\n \"schemas update\": [\n {\n description: \"Toggle the commentable flag on a schema.\",\n command: 'zinkee --json schemas update contacts --commentable true',\n raw: `{\n \"commentable\": true\n}`,\n response: `{\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Customer Contacts\",\n \"slug\": \"customer-contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": true,\n \"commentable\": true,\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"fields\": [\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n }\n ],\n \"uniqueFields\": []\n}`,\n },\n {\n description: \"Rename a schema and change its slug.\",\n command:\n 'zinkee --json schemas update contacts --name \"Customer Contacts\" --slug customer-contacts',\n raw: `{\n \"name\": \"Customer Contacts\",\n \"slug\": \"customer-contacts\"\n}`,\n },\n {\n description: \"Enable the audit log on a schema.\",\n command: 'zinkee --json schemas update contacts --auditable true',\n raw: `{\n \"auditable\": true\n}`,\n },\n {\n description:\n \"Set the schema's highlighted (main) field — the field whose value names each record in the UI (activity-panel title and detail-view record list).\",\n command:\n 'zinkee --json schemas update contacts --highlighted-field contact-name',\n raw: `{\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n}`,\n },\n ],\n \"schemas set-unique-fields\": [\n {\n description:\n \"Set a composite unique constraint: the listed fields must be unique together across records.\",\n command:\n \"zinkee --json schemas set-unique-fields contacts --field contact-name --field notes\",\n raw: `{\n \"fieldIds\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\"\n ]\n}`,\n response: `{\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Contacts\",\n \"slug\": \"contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": true,\n \"commentable\": true,\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"fields\": [\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"NORMAL\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\",\n \"type\": \"TextField\",\n \"slug\": \"notes\",\n \"label\": \"Notes\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": null,\n \"conditionalFormatting\": []\n }\n }\n ],\n \"uniqueFields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\"\n ]\n}`,\n },\n {\n description: \"Set a single-field unique constraint.\",\n command: \"zinkee --json schemas set-unique-fields contacts --field contact-name\",\n raw: `{\n \"fieldIds\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n ]\n}`,\n },\n {\n description: \"Clear the unique constraint (no field must be unique anymore).\",\n command: \"zinkee --json schemas set-unique-fields contacts --clear\",\n raw: `{\n \"fieldIds\": []\n}`,\n },\n ],\n \"schemas fields update\": [\n {\n description: \"Set the field description without changing its label or configuration.\",\n command:\n 'zinkee --json schemas fields update contacts contact-name --description \"Primary name shown for the customer\"',\n raw: `{\n \"description\": \"Primary name shown for the customer\"\n}`,\n },\n {\n description: \"Clear the field description.\",\n command:\n 'zinkee --json schemas fields update contacts contact-name --description \"\"',\n raw: `{\n \"description\": \"\"\n}`,\n },\n {\n description: \"Rename slug and label.\",\n command:\n `zinkee --json schemas fields update contacts contact-name --label \"Customer Full Name\" --raw '{\"slug\":\"customer-full-name\"}'`,\n raw: `{\n \"slug\": \"customer-full-name\",\n \"label\": \"Customer Full Name\"\n}`,\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"slug\": \"customer-full-name\"\n}`,\n },\n {\n description: \"Toggle required.\",\n command: \"zinkee --json schemas fields update contacts status --required true\",\n raw: `{\n \"required\": true\n}`,\n },\n {\n description: \"Patch text field (long with default).\",\n command:\n `zinkee --json schemas fields update contacts contact-name --raw '{\"type\":\"TextField\",\"label\":\"Customer Full Name\",\"required\":false,\"config\":{\"textType\":\"LONG\",\"defaultValue\":\"Unknown\",\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"TextField\",\n \"label\": \"Customer Full Name\",\n \"required\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Declare an expected DNI/NIE format (warnings never block record saves). Omit expectedFormat to keep it; use kind none to disable it.\",\n command: `zinkee --json schemas fields update contacts tax-id --raw '{\"type\":\"TextField\",\"config\":{\"expectedFormat\":{\"kind\":\"dniNie\"}}}'`,\n raw: `{\n \"type\": \"TextField\",\n \"config\": {\n \"expectedFormat\": { \"kind\": \"dniNie\" }\n }\n}`,\n },\n {\n description: \"Patch number field (to currency).\",\n command:\n `zinkee --json schemas fields update contacts amount --raw '{\"type\":\"NumberField\",\"config\":{\"defaultValue\":\"0\",\"formatOptions\":{\"format\":\"currency\",\"decimals\":2,\"thousandsSeparator\":true,\"symbolEnabled\":true,\"symbolPosition\":\"before\",\"symbolValue\":\"€\"},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"NumberField\",\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"currency\",\n \"decimals\": 2,\n \"thousandsSeparator\": true,\n \"symbolEnabled\": true,\n \"symbolPosition\": \"before\",\n \"symbolValue\": \"€\"\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch number field (to percentage).\",\n command:\n `zinkee --json schemas fields update contacts discount-rate --raw '{\"type\":\"NumberField\",\"config\":{\"defaultValue\":\"0\",\"formatOptions\":{\"format\":\"percentage\",\"decimals\":1},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"NumberField\",\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"percentage\",\n \"decimals\": 1\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch date field (to date only).\",\n command:\n `zinkee --json schemas fields update contacts due-date --raw '{\"type\":\"DateField\",\"config\":{\"defaultValue\":null,\"formatOptions\":{\"format\":\"date\",\"dateFormat\":\"YYYY-MM-DD\",\"showTime\":false},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"DateField\",\n \"config\": {\n \"defaultValue\": null,\n \"formatOptions\": {\n \"format\": \"date\",\n \"dateFormat\": \"YYYY-MM-DD\",\n \"showTime\": false\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch option field (button cycle).\",\n command:\n `zinkee --json schemas fields update contacts stage --raw '{\"type\":\"OptionField\",\"config\":{\"options\":[{\"id\":1,\"name\":\"To Do\",\"color\":\"default\"},{\"id\":2,\"name\":\"Doing\",\"color\":\"warning\"},{\"id\":3,\"name\":\"Done\",\"color\":\"success\"}],\"defaultValue\":1,\"conditionalFormatting\":[],\"buttonConfig\":{\"displayMode\":\"button\",\"buttonBehavior\":{\"mode\":\"cycle\",\"cycleOrder\":[1,2,3],\"allowReselect\":true}}}}'`,\n raw: `{\n \"type\": \"OptionField\",\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"To Do\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"Doing\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": {\n \"displayMode\": \"button\",\n \"buttonBehavior\": {\n \"mode\": \"cycle\",\n \"cycleOrder\": [1, 2, 3],\n \"allowReselect\": true\n }\n }\n }\n}`,\n },\n {\n description: \"Patch option field (drop button mode).\",\n command:\n `zinkee --json schemas fields update contacts status --raw '{\"type\":\"OptionField\",\"config\":{\"options\":[{\"id\":1,\"name\":\"Open\",\"color\":\"default\"},{\"id\":2,\"name\":\"In Progress\",\"color\":\"warning\"},{\"id\":3,\"name\":\"Done\",\"color\":\"success\"}],\"defaultValue\":1,\"conditionalFormatting\":[],\"buttonConfig\":null}}'`,\n raw: `{\n \"type\": \"OptionField\",\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": null\n }\n}`,\n },\n {\n description: \"Patch formula field (formula text).\",\n command:\n `zinkee --json schemas fields update contacts formula-total --raw '{\"type\":\"FormulaField\",\"config\":{\"formulaText\":\"c52efe3f-2825-4c60-a7e3-34dd4c1ce043 * 1.10\",\"uiFormatKind\":\"number\",\"status\":\"ACTIVE\",\"numberFormatOptions\":{\"format\":\"number\",\"decimals\":2,\"thousandsSeparator\":true},\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"FormulaField\",\n \"config\": {\n \"formulaText\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043 * 1.10\",\n \"uiFormatKind\": \"number\",\n \"status\": \"ACTIVE\",\n \"numberFormatOptions\": {\n \"format\": \"number\",\n \"decimals\": 2,\n \"thousandsSeparator\": true\n },\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch reference field (delete behavior).\",\n command:\n `zinkee --json schemas fields update contacts customer-ref --raw '{\"type\":\"ReferenceField\",\"config\":{\"targetSchema\":\"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\"targetDisplayField\":\"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\"deleteBehavior\":\"RESTRICT\",\"defaultValue\":null,\"filterFields\":[],\"descriptionFields\":[],\"conditionalFormatting\":[]}}'`,\n raw: `{\n \"type\": \"ReferenceField\",\n \"config\": {\n \"targetSchema\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetDisplayField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"deleteBehavior\": \"RESTRICT\",\n \"defaultValue\": null,\n \"filterFields\": [],\n \"descriptionFields\": [],\n \"conditionalFormatting\": []\n }\n}`,\n },\n {\n description: \"Patch schedule field (to daily).\",\n command:\n `zinkee --json schemas fields update contacts recurrence --raw '{\"type\":\"ScheduleField\",\"config\":{\"referenceField\":\"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\"beginningPeriodField\":\"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\"endingPeriodField\":\"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\"frequency\":\"daily\"}}'`,\n raw: `{\n \"type\": \"ScheduleField\",\n \"config\": {\n \"referenceField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"beginningPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endingPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"frequency\": \"daily\"\n }\n}`,\n },\n ],\n \"records query\": [\n {\n description: \"Lookup a single record by id.\",\n command:\n 'zinkee --json records query contacts --select id,contact-name --where \"id eq 550e8400-e29b-41d4-a716-446655440000\" --sort id:desc --limit 10',\n raw: `{\n \"select\": [\"id\", \"contact-name\"],\n \"where\": [\n { \"field\": \"id\", \"op\": \"eq\", \"value\": \"550e8400-e29b-41d4-a716-446655440000\" }\n ],\n \"sort\": [\n { \"field\": \"id\", \"direction\": \"DESC\" }\n ],\n \"page\": { \"offset\": 0, \"limit\": 10 }\n}`,\n response: `{\n \"records\": [\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace\",\n \"status\": 2,\n \"amount\": 1250.50\n }\n }\n ],\n \"page\": {\n \"offset\": 0,\n \"limit\": 25,\n \"total\": 1,\n \"count\": 1,\n \"hasMore\": false\n }\n}`,\n },\n {\n description:\n \"Filter by multiple conditions and sort by amount then name.\",\n command:\n `zinkee --json records query contacts --select id,contact-name,status,amount --where \"status in 1,2\" --where \"amount gte 500\" --sort amount:desc --sort contact-name:asc --limit 25`,\n raw: `{\n \"select\": [\"id\", \"contact-name\", \"status\", \"amount\"],\n \"where\": [\n { \"field\": \"status\", \"op\": \"in\", \"value\": [1, 2] },\n { \"field\": \"amount\", \"op\": \"gte\", \"value\": 500 }\n ],\n \"sort\": [\n { \"field\": \"amount\", \"direction\": \"DESC\" },\n { \"field\": \"contact-name\", \"direction\": \"ASC\" }\n ],\n \"page\": { \"offset\": 0, \"limit\": 25 }\n}`,\n },\n {\n description: \"Filter by status with a free-text search term.\",\n command:\n `zinkee --json records query contacts --select id,contact-name,status --where \"status in OPEN\" --search garcia --limit 25`,\n raw: `{\n \"select\": [\"id\", \"contact-name\", \"status\"],\n \"where\": [\n { \"field\": \"status\", \"op\": \"in\", \"value\": [\"OPEN\"] }\n ],\n \"search\": { \"term\": \"garcia\" },\n \"page\": { \"offset\": 0, \"limit\": 25 }\n}`,\n },\n {\n description: \"Text contains search.\",\n command:\n 'zinkee --json records query contacts --select id,contact-name,contact-email --where \"contact-name contains Lovelace\" --limit 50',\n raw: `{\n \"select\": [\"id\", \"contact-name\", \"contact-email\"],\n \"where\": [\n { \"field\": \"contact-name\", \"op\": \"contains\", \"value\": \"Lovelace\" }\n ],\n \"page\": { \"offset\": 0, \"limit\": 50 }\n}`,\n },\n {\n description: \"Records with a non-empty due-date inside a date range.\",\n command:\n 'zinkee --json records query contacts --where \"due-date is_not_empty\" --where \"due-date lte 2026-12-31T23:59:59Z\" --sort due-date:asc',\n raw: `{\n \"where\": [\n { \"field\": \"due-date\", \"op\": \"is_not_empty\" },\n { \"field\": \"due-date\", \"op\": \"lte\", \"value\": \"2026-12-31T23:59:59Z\" }\n ],\n \"sort\": [\n { \"field\": \"due-date\", \"direction\": \"ASC\" }\n ]\n}`,\n },\n {\n description: \"Records whose status is not equal to a value.\",\n command:\n 'zinkee --json records query contacts --where \"status neq 0\"',\n raw: `{\n \"where\": [\n { \"field\": \"status\", \"op\": \"neq\", \"value\": 0 }\n ]\n}`,\n },\n {\n description: \"Records with an amount greater than a threshold.\",\n command:\n 'zinkee --json records query contacts --where \"amount gt 1000\"',\n raw: `{\n \"where\": [\n { \"field\": \"amount\", \"op\": \"gt\", \"value\": 1000 }\n ]\n}`,\n },\n {\n description: \"Records with an amount less than a threshold.\",\n command:\n 'zinkee --json records query contacts --where \"amount lt 100\"',\n raw: `{\n \"where\": [\n { \"field\": \"amount\", \"op\": \"lt\", \"value\": 100 }\n ]\n}`,\n },\n {\n description: \"Records whose due-date is empty.\",\n command:\n 'zinkee --json records query contacts --where \"due-date is_empty\"',\n raw: `{\n \"where\": [\n { \"field\": \"due-date\", \"op\": \"is_empty\" }\n ]\n}`,\n },\n {\n description: \"Records whose contact-email is not empty.\",\n command:\n 'zinkee --json records query contacts --where \"contact-email is_not_empty\"',\n raw: `{\n \"where\": [\n { \"field\": \"contact-email\", \"op\": \"is_not_empty\" }\n ]\n}`,\n },\n ],\n \"records create\": [\n {\n description:\n \"Create a single record with --set/--set-json (the single-record flags build one record, sent as a one-element 'records' array).\",\n command:\n `zinkee --json records create contacts --set contact-name=\"Ada Lovelace\" --set contact-email=ada@example.com`,\n raw: `{\n \"records\": [\n {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\"\n }\n ]\n}`,\n response: `{\n \"created\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ],\n \"errors\": []\n}`,\n },\n {\n description:\n \"Create many records from a JSON array file (one object per record, slug -> value). Best-effort: valid records are created and invalid ones are reported per index in 'errors'. ReferenceField values accept the target record id (a bare UUID, or the compound 'recordId::anything' whose label is ignored) or an exact display value; the server stores the canonical 'recordId::displayValue'.\",\n command: `zinkee --json records create contacts --records-file ./records.json`,\n raw: `{\n \"records\": [\n {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\"\n },\n {\n \"contact-name\": \"Grace Hopper\",\n \"contact-email\": \"grace@example.com\",\n \"status\": 2,\n \"amount\": 1999.99,\n \"due-date\": \"2026-06-01T09:00:00Z\",\n \"customer-ref\": \"8ad602a1-f6e3-43f6-9ab2-f1c5afc99621\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n ]\n}`,\n response: `{\n \"created\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ],\n \"errors\": [\n {\n \"index\": 1,\n \"reason\": \"record_field_not_found\",\n \"message\": \"Field 'contact-emial' was not found in schema '2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e'.\",\n \"action\": \"Use a valid field slug from the schema and retry.\"\n }\n ]\n}`,\n },\n {\n description:\n \"Set a ReferenceField by the target record id (a bare UUID, or the compound 'recordId::anything' whose label is ignored) or by an exact display value. The server resolves and stores the canonical 'recordId::displayValue'. Unknown references are rejected per index with reason 'data_field_reference_not_found'.\",\n command:\n `zinkee --json records create deals --set deal-name=\"Acme renewal\" --set customer-ref=00000000-0000-0000-0000-000000000000`,\n raw: `{\n \"records\": [\n {\n \"deal-name\": \"Acme renewal\",\n \"customer-ref\": \"00000000-0000-0000-0000-000000000000\"\n }\n ]\n}`,\n response: `{\n \"created\": [],\n \"errors\": [\n {\n \"index\": 0,\n \"reason\": \"data_field_reference_not_found\",\n \"message\": \"Referenced record was not found in the target schema.\",\n \"action\": \"Use an existing record id or an existing display value for this reference field.\"\n }\n ]\n}`,\n },\n ],\n \"records update\": [\n {\n description: \"Set one field and unset another.\",\n command:\n 'zinkee --json records update contacts 550e8400-e29b-41d4-a716-446655440000 --set contact-name=\"Ada Lovelace Updated\" --unset contact-email',\n raw: `{\n \"set\": {\n \"contact-name\": \"Ada Lovelace Updated\"\n },\n \"unset\": [\"contact-email\"]\n}`,\n response: `{\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace Updated\",\n \"status\": 2,\n \"amount\": 1250.50,\n \"due-date\": \"2026-05-15T12:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n}`,\n },\n {\n description: \"Patch multiple typed values at once.\",\n command:\n 'zinkee --json records update contacts 550e8400-e29b-41d4-a716-446655440000 --set status=3 --set amount=2500.00 --set due-date=2026-07-01T09:00:00Z --set owner=6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d',\n raw: `{\n \"set\": {\n \"status\": 3,\n \"amount\": 2500.00,\n \"due-date\": \"2026-07-01T09:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n}`,\n },\n {\n description: \"Unset only (clear fields).\",\n command:\n 'zinkee --json records update contacts 550e8400-e29b-41d4-a716-446655440000 --unset contact-email --unset due-date',\n raw: `{\n \"unset\": [\"contact-email\", \"due-date\"]\n}`,\n },\n {\n description:\n \"Set a ReferenceField on an existing record. Pass the target record id (a bare UUID, or the compound 'recordId::anything' whose label is ignored) or an exact display value; the response shows the canonical 'recordId::displayValue' the server stored. If the reference doesn't exist the whole update is rejected with reason 'data_field_reference_not_found'.\",\n command:\n 'zinkee --json records update deals 550e8400-e29b-41d4-a716-446655440000 --set customer-ref=8ad602a1-f6e3-43f6-9ab2-f1c5afc99621',\n raw: `{\n \"set\": {\n \"customer-ref\": \"8ad602a1-f6e3-43f6-9ab2-f1c5afc99621\"\n }\n}`,\n response: `{\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"deal-name\": \"Acme renewal\",\n \"customer-ref\": \"8ad602a1-f6e3-43f6-9ab2-f1c5afc99621::Acme Corp\"\n }\n}`,\n },\n ],\n \"comments create\": [\n {\n description: \"Plain text comment on a record (uses --text).\",\n command:\n `zinkee --json comments create contacts 550e8400-e29b-41d4-a716-446655440000 --text \"This record needs review.\"`,\n raw: `{\n \"content\": [\n {\n \"type\": \"TEXT\",\n \"value\": \"This record needs review.\"\n }\n ]\n}`,\n response: `{\n \"id\": \"cd8e3b2a-1f5c-4e9a-8b7d-0a2b3c4d5e6f\",\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"createdAt\": \"2026-04-22T10:15:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"This record needs review.\" }\n ]\n}`,\n },\n {\n description:\n \"Comment with an inline member mention. Mentions only go through --raw today because --text is plain text.\",\n command:\n `zinkee --json comments create contacts 550e8400-e29b-41d4-a716-446655440000 --raw '{\"content\":[{\"type\":\"TEXT\",\"value\":\"Assigning to \"},{\"type\":\"MENTION\",\"value\":\"9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6\"},{\"type\":\"TEXT\",\"value\":\" for follow up.\"}]}'`,\n raw: `{\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"Assigning to \" },\n { \"type\": \"MENTION\", \"value\": \"9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6\" },\n { \"type\": \"TEXT\", \"value\": \" for follow up.\" }\n ]\n}`,\n },\n ],\n \"files download\": [\n {\n description:\n \"Download a file to disk (the CLI writes the raw bytes to the --output path; the JSON mode only emits a success envelope).\",\n command: `zinkee --json files download ${SAMPLE_UUID} --output ./download.bin`,\n },\n ],\n \"files upload\": [\n {\n description:\n \"Upload a local file. The CLI sends the multipart form and the backend returns the generated file id to reference from record FileField values.\",\n command: \"zinkee --json files upload ./report.pdf\",\n response: `{\n \"id\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\"\n}`,\n },\n ],\n \"files delete\": [\n {\n description:\n \"Delete a file from workspace storage. Records that still reference the file id keep the stale pointer until updated separately.\",\n command: `zinkee --json files delete ${SAMPLE_UUID}`,\n response: `{\n \"id\": \"d290f1ee-6c54-4b01-90e6-d701748f0851\",\n \"deleted\": true\n}`,\n },\n ],\n \"navigation folders create\": [\n {\n description: \"Create a folder with a display order and custom properties.\",\n command:\n `zinkee --json navigation folders create --name Finance --order 20 --props '{\"color\":\"green\"}'`,\n raw: `{\n \"name\": \"Finance\",\n \"order\": 20,\n \"additionalProperties\": {\n \"color\": \"green\"\n }\n}`,\n response: `{\n \"folderId\": \"c5d6e7f8-9012-3456-789a-bcdef0123456\",\n \"name\": \"Finance\"\n}`,\n },\n {\n description: \"Minimal create with just a name.\",\n command: 'zinkee --json navigation folders create --name Archive',\n raw: `{\n \"name\": \"Archive\"\n}`,\n },\n {\n description: \"Create a folder with color and icon metadata.\",\n command:\n `zinkee --json navigation folders create --name Reports --order 5 --props '{\"color\":\"teal\",\"icon\":\"chart-line\"}'`,\n raw: `{\n \"name\": \"Reports\",\n \"order\": 5,\n \"additionalProperties\": {\n \"color\": \"teal\",\n \"icon\": \"chart-line\"\n }\n}`,\n },\n ],\n \"navigation folders update\": [\n {\n description: \"Rename the folder, change its order, and rewrite its additionalProperties.\",\n command:\n `zinkee --json navigation folders update Finance --name \"Finance Ops\" --order 30 --props '{\"color\":\"teal\"}'`,\n raw: `{\n \"name\": \"Finance Ops\",\n \"order\": 30,\n \"additionalProperties\": {\n \"color\": \"teal\"\n }\n}`,\n response: `{\n \"folderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\",\n \"name\": \"Finance Ops\"\n}`,\n },\n {\n description: \"Rename only.\",\n command: 'zinkee --json navigation folders update Finance --name \"Finance (legacy)\"',\n raw: `{\n \"name\": \"Finance (legacy)\"\n}`,\n },\n {\n description: \"Change only the display order.\",\n command: 'zinkee --json navigation folders update Finance --order 1',\n raw: `{\n \"order\": 1\n}`,\n },\n {\n description: \"Replace only additionalProperties.\",\n command:\n `zinkee --json navigation folders update Finance --props '{\"color\":\"red\",\"icon\":\"archive\"}'`,\n raw: `{\n \"additionalProperties\": {\n \"color\": \"red\",\n \"icon\": \"archive\"\n }\n}`,\n },\n ],\n \"navigation resources move\": [\n {\n description:\n \"Move a schema into a navigation folder. Only schemas can be moved; the navigation menu holds databases.\",\n command:\n 'zinkee --json navigation resources move 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --to Sales',\n raw: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\"\n}`,\n response: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\"\n}`,\n },\n {\n description: \"Move a schema back to the root folder (root is always UUID 00000000-0000-0000-0000-000000000000).\",\n command:\n 'zinkee --json navigation resources move 5223cbc8-8c6c-4694-93bc-dd176364df9b --to 00000000-0000-0000-0000-000000000000',\n raw: `{\n \"resourceId\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetFolderId\": \"00000000-0000-0000-0000-000000000000\"\n}`,\n },\n ],\n \"teamspace folders create\": [\n {\n description: \"Create a teamspace folder with order and icon metadata.\",\n command:\n `zinkee --json teamspace folders create --name \"Customer Success\" --order 10 --props '{\"icon\":\"folder-users\"}'`,\n raw: `{\n \"name\": \"Customer Success\",\n \"order\": 10,\n \"additionalProperties\": {\n \"icon\": \"folder-users\"\n }\n}`,\n response: `{\n \"id\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"name\": \"Customer Success\",\n \"order\": 10,\n \"isRoot\": false,\n \"resourceCount\": 0,\n \"resources\": [],\n \"additionalProperties\": {\n \"icon\": \"folder-users\"\n }\n}`,\n },\n {\n description: \"Minimal create.\",\n command: 'zinkee --json teamspace folders create --name Shared',\n raw: `{\n \"name\": \"Shared\"\n}`,\n },\n {\n description: \"Prominent folder with icon and color.\",\n command:\n `zinkee --json teamspace folders create --name Executive --order 1 --props '{\"icon\":\"crown\",\"color\":\"gold\"}'`,\n raw: `{\n \"name\": \"Executive\",\n \"order\": 1,\n \"additionalProperties\": {\n \"icon\": \"crown\",\n \"color\": \"gold\"\n }\n}`,\n },\n ],\n \"teamspace folders update\": [\n {\n description: \"Rename, reorder and update properties in one call.\",\n command:\n `zinkee --json teamspace folders update \"Customer Success\" --name \"Shared KPIs\" --order 5 --props '{\"icon\":\"chart-bar\"}'`,\n raw: `{\n \"name\": \"Shared KPIs\",\n \"order\": 5,\n \"additionalProperties\": {\n \"icon\": \"chart-bar\"\n }\n}`,\n response: `{\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared KPIs\",\n \"order\": 5,\n \"isRoot\": false,\n \"resourceCount\": 1,\n \"resources\": [\n {\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"type\": \"DISPLAY\"\n }\n ],\n \"additionalProperties\": {\n \"icon\": \"chart-bar\"\n }\n}`,\n },\n {\n description: \"Rename only.\",\n command:\n 'zinkee --json teamspace folders update \"Customer Success\" --name \"Shared Analytics\"',\n raw: `{\n \"name\": \"Shared Analytics\"\n}`,\n },\n {\n description: \"Reorder only.\",\n command: 'zinkee --json teamspace folders update \"Customer Success\" --order 2',\n raw: `{\n \"order\": 2\n}`,\n },\n {\n description: \"Update only the icon metadata.\",\n command:\n `zinkee --json teamspace folders update \"Customer Success\" --props '{\"icon\":\"chart-line\"}'`,\n raw: `{\n \"additionalProperties\": {\n \"icon\": \"chart-line\"\n }\n}`,\n },\n ],\n \"teamspace resources publish\": [\n {\n description: \"Publish a schema by slug into a teamspace folder.\",\n command:\n 'zinkee --json teamspace resources publish customer-records --to \"Shared Dashboards\"',\n raw: `{\n \"resourceId\": \"customer-records\",\n \"targetFolderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\"\n}`,\n response: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolder\": {\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared Dashboards\",\n \"isRoot\": false\n },\n \"previousFolder\": null\n}`,\n },\n {\n description: \"Publish a schema by UUID.\",\n command:\n 'zinkee --json teamspace resources publish 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --to \"Shared Dashboards\"',\n raw: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"targetFolderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\"\n}`,\n },\n {\n description: \"Publish a display.\",\n command:\n 'zinkee --json teamspace resources publish 0f6f062f-1478-4df2-96a1-c495d037d260 --to \"Shared Dashboards\"',\n raw: `{\n \"resourceId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"targetFolderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\"\n}`,\n },\n {\n description: \"Publish directly at the teamspace root (root folder UUID is always 00000000-0000-0000-0000-000000000000).\",\n command:\n 'zinkee --json teamspace resources publish customer-records --to 00000000-0000-0000-0000-000000000000',\n raw: `{\n \"resourceId\": \"customer-records\",\n \"targetFolderId\": \"00000000-0000-0000-0000-000000000000\"\n}`,\n },\n ],\n \"teamspace resources unpublish\": [\n {\n description: \"Unpublish a schema by slug.\",\n command: 'zinkee --json teamspace resources unpublish customer-records',\n raw: `{\n \"resourceId\": \"customer-records\"\n}`,\n response: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"removedFromFolder\": {\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared Dashboards\",\n \"isRoot\": false\n }\n}`,\n },\n {\n description: \"Unpublish a schema by UUID.\",\n command:\n 'zinkee --json teamspace resources unpublish 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e',\n raw: `{\n \"resourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\"\n}`,\n },\n {\n description: \"Unpublish a display.\",\n command:\n 'zinkee --json teamspace resources unpublish 0f6f062f-1478-4df2-96a1-c495d037d260',\n raw: `{\n \"resourceId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\"\n}`,\n },\n ],\n \"displays create\": [\n {\n description:\n \"Create a described freeform display with an initial widget layout. Freeform layouts travel through --freeform-layouts.\",\n command:\n `zinkee --json displays create --name \"Control Proyecto Freeform\" --description \"Project delivery overview\" --template freeform --freeform-layouts '{\"lg\":[{\"i\":\"widget-1\",\"x\":0,\"y\":0,\"w\":6,\"h\":5}]}'`,\n raw: `{\n \"name\": \"Control Proyecto Freeform\",\n \"description\": \"Project delivery overview\",\n \"layout\": {\n \"template\": \"freeform\",\n \"freeformLayouts\": {\n \"lg\": [\n { \"i\": \"widget-1\", \"x\": 0, \"y\": 0, \"w\": 6, \"h\": 5 }\n ]\n }\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\"\n}`,\n },\n {\n description: \"Create a tabbed display using the widget_row_tabs template.\",\n command:\n 'zinkee --json displays create --name \"Executive Revenue\" --template widget_row_tabs',\n raw: `{\n \"name\": \"Executive Revenue\",\n \"layout\": {\n \"template\": \"widget_row_tabs\"\n }\n}`,\n },\n {\n description: \"Create a grid display.\",\n command:\n 'zinkee --json displays create --name \"Customer Detail\" --template grid',\n raw: `{\n \"name\": \"Customer Detail\",\n \"layout\": {\n \"template\": \"grid\"\n }\n}`,\n },\n ],\n \"displays tabs create\": [\n {\n description: \"Create a horizontal tab.\",\n command:\n 'zinkee --json displays tabs create 0f6f062f-1478-4df2-96a1-c495d037d260 --name Overview --orientation horizontal',\n raw: `{\n \"name\": \"Overview\",\n \"orientation\": \"horizontal\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"tabId\": \"tab-overview\"\n}`,\n },\n {\n description: \"Create a vertical tab.\",\n command:\n 'zinkee --json displays tabs create 0f6f062f-1478-4df2-96a1-c495d037d260 --name Details --orientation vertical',\n raw: `{\n \"name\": \"Details\",\n \"orientation\": \"vertical\"\n}`,\n },\n ],\n \"displays tabs update\": [\n {\n description: \"Rename a tab.\",\n command:\n 'zinkee --json displays tabs update 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main --name \"Overview (renamed)\"',\n raw: `{\n \"name\": \"Overview (renamed)\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"tabId\": \"tab-main\"\n}`,\n },\n {\n description: \"Change orientation only.\",\n command:\n 'zinkee --json displays tabs update 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main --orientation vertical',\n raw: `{\n \"orientation\": \"vertical\"\n}`,\n },\n {\n description: \"Rename and reorient at once.\",\n command:\n 'zinkee --json displays tabs update 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main --name Details --orientation vertical',\n raw: `{\n \"name\": \"Details\",\n \"orientation\": \"vertical\"\n}`,\n },\n ],\n \"displays variables create\": [\n {\n description:\n \"Create a single-select REFERENCE variable bound to a (schema, field) pair. schemaId and fieldId accept slugs or UUIDs.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type REFERENCE --name Customer --source-schema contacts --source-field contact-name --default \"\"',\n raw: `{\n \"type\": \"REFERENCE\",\n \"name\": \"Customer\",\n \"source\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"contact-name\"\n },\n \"defaultValue\": \"\",\n \"allowMultiple\": false,\n \"staticVariable\": false,\n \"filters\": []\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"variableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Create a multi-select REFERENCE variable with a filter. Complex filters go via --raw because --filter only accepts raw expressions.\",\n command:\n `zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --raw '{\"type\":\"REFERENCE\",\"name\":\"Active customers\",\"source\":{\"schemaId\":\"contacts\",\"fieldId\":\"contact-name\"},\"defaultValues\":[],\"allowMultiple\":true,\"staticVariable\":false,\"filters\":[{\"origin\":{\"schemaId\":\"contacts\",\"fieldId\":\"status\"},\"comparisonOperator\":\"ANY_OF\",\"values\":[\"1\",\"2\"]}]}'`,\n raw: `{\n \"type\": \"REFERENCE\",\n \"name\": \"Active customers\",\n \"source\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"contact-name\"\n },\n \"defaultValues\": [],\n \"allowMultiple\": true,\n \"staticVariable\": false,\n \"filters\": [\n {\n \"origin\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"status\"\n },\n \"comparisonOperator\": \"ANY_OF\",\n \"values\": [\"1\", \"2\"]\n }\n ]\n}`,\n },\n {\n description: \"Create a MEMBER variable with a default user id.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type MEMBER --name Owner --default 6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d',\n raw: `{\n \"type\": \"MEMBER\",\n \"name\": \"Owner\",\n \"defaultValue\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\",\n \"allowMultiple\": false,\n \"staticVariable\": false\n}`,\n },\n {\n description: \"Create a DATE variable using a dynamic period (thisMonth).\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type DATE --name Period --date-mode dynamic --date-dynamic-option thisMonth',\n raw: `{\n \"type\": \"DATE\",\n \"name\": \"Period\",\n \"date\": {\n \"mode\": \"dynamic\",\n \"dynamicOption\": \"thisMonth\"\n }\n}`,\n },\n {\n description: \"Create a DATE variable with a specific date.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type DATE --name Cutoff --date-mode specific --date-specific 2026-04-22',\n raw: `{\n \"type\": \"DATE\",\n \"name\": \"Cutoff\",\n \"date\": {\n \"mode\": \"specific\",\n \"specificDate\": \"2026-04-22\"\n }\n}`,\n },\n {\n description: \"Create a DATE variable with a custom range.\",\n command:\n 'zinkee --json displays variables create 0f6f062f-1478-4df2-96a1-c495d037d260 --type DATE --name Quarter --date-mode range --date-range-start 2026-04-01 --date-range-end 2026-06-30',\n raw: `{\n \"type\": \"DATE\",\n \"name\": \"Quarter\",\n \"date\": {\n \"mode\": \"range\",\n \"rangeStart\": \"2026-04-01\",\n \"rangeEnd\": \"2026-06-30\"\n }\n}`,\n },\n ],\n \"displays variables update\": [\n {\n description:\n \"Rename the variable and make it static (defaults must be cleared with a raw patch because the CLI has no --default-values [] shortcut).\",\n command:\n `zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111 --raw '{\"name\":\"Proyecto principal\",\"staticVariable\":true,\"defaultValues\":[]}'`,\n raw: `{\n \"name\": \"Proyecto principal\",\n \"staticVariable\": true,\n \"defaultValues\": []\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"variableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description: \"Replace the reference filters of the variable.\",\n command:\n `zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111 --raw '{\"filters\":[{\"origin\":{\"schemaId\":\"contacts\",\"fieldId\":\"status\"},\"comparisonOperator\":\"ANY_OF\",\"values\":[\"2\",\"3\"]}]}'`,\n raw: `{\n \"filters\": [\n {\n \"origin\": {\n \"schemaId\": \"contacts\",\n \"fieldId\": \"status\"\n },\n \"comparisonOperator\": \"ANY_OF\",\n \"values\": [\"2\", \"3\"]\n }\n ]\n}`,\n },\n {\n description: \"Switch a variable to multi-select.\",\n command:\n `zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111 --allow-multiple --raw '{\"defaultValues\":[]}'`,\n raw: `{\n \"allowMultiple\": true,\n \"defaultValues\": []\n}`,\n },\n {\n description: \"Change a DATE variable to use last12Months.\",\n command:\n 'zinkee --json displays variables update 0f6f062f-1478-4df2-96a1-c495d037d260 bbbbbbbb-2222-4222-a222-222222222222 --date-mode dynamic --date-dynamic-option last12Months',\n raw: `{\n \"date\": {\n \"mode\": \"dynamic\",\n \"dynamicOption\": \"last12Months\"\n }\n}`,\n },\n ],\n \"displays widgets create\": [\n {\n description:\n \"Create a TABLE widget (CLI normalises --type table to TABLE_OR_SUBTABLE).\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type table --name Customers --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":8}' --field contact-name --field status --field amount --sort '{\"fieldId\":\"contact-name\",\"direction\":\"ASC\"}'`,\n raw: `{\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": {\n \"name\": \"Customers\"\n },\n \"query\": {\n \"sorts\": [\n { \"fieldId\": \"contact-name\", \"direction\": \"ASC\" }\n ]\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"]\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Create a TABLE widget with locked fields: contact-name locked permanently (no conditions) and status locked while invoice-number is empty, with before/after lock messages.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type table --name Invoices --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":8}' --field contact-name --field invoice-number --field status --field amount --lock-field contact-name --lock-condition \"status:invoice-number:is_empty\" --lock-message-before \"status:Status locks until the invoice number is set.\" --lock-message-after \"status:Status is locked because the invoice number is missing.\"`,\n raw: `{\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": { \"name\": \"Invoices\" },\n \"view\": {\n \"fields\": [\"contact-name\", \"invoice-number\", \"status\", \"amount\"]\n },\n \"behavior\": {\n \"lockedFields\": [\n {\n \"field\": { \"fieldId\": \"contact-name\" },\n \"conditions\": []\n },\n {\n \"field\": { \"fieldId\": \"status\" },\n \"conditions\": [\n {\n \"origin\": { \"fieldId\": \"invoice-number\" },\n \"comparisonOperator\": \"IS_EMPTY\",\n \"values\": []\n }\n ],\n \"messageBeforeLock\": \"Status locks until the invoice number is set.\",\n \"messageAfterLock\": \"Status is locked because the invoice number is missing.\"\n }\n ]\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Create a DETAIL widget on a tab. The rich placement is easier via --raw.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --raw '{\"type\":\"DETAIL\",\"source\":{\"originResourceId\":\"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\"isOriginSubSchema\":false},\"placement\":{\"tabId\":\"tab-detail\",\"layout\":{\"x\":0,\"y\":0,\"w\":6,\"h\":10}},\"presentation\":{\"name\":\"Customer detail\"},\"behavior\":{\"readOnly\":true},\"view\":{\"fields\":[\"contact-name\",\"contact-email\",\"status\",\"amount\"]}}'`,\n raw: `{\n \"type\": \"DETAIL\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"tabId\": \"tab-detail\",\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 6, \"h\": 10 }\n },\n \"presentation\": { \"name\": \"Customer detail\" },\n \"behavior\": { \"readOnly\": true },\n \"view\": {\n \"fields\": [\"contact-name\", \"contact-email\", \"status\", \"amount\"]\n }\n}`,\n },\n {\n description: \"Create a KPI widget computing SUM(amount).\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type KPI --name \"Total revenue\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":3,\"h\":3}' --calc SUM --calc-field amount --kpi-config '{\"format\":\"currency\",\"decimals\":2}'`,\n raw: `{\n \"type\": \"KPI\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 3, \"h\": 3 }\n },\n \"presentation\": { \"name\": \"Total revenue\" },\n \"kpi\": {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"config\": { \"format\": \"currency\", \"decimals\": 2 }\n }\n}`,\n },\n {\n description: \"Create a CHART widget with a daily time-serie x-axis.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by day\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type lines --x-axis-field due-date --x-axis-date-format DATE --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by day\" },\n \"chart\": {\n \"chartType\": \"lines\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"DATE\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description: \"Create a bars CHART widget with a monthly time-serie x-axis and two y-axis series.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by month\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type bars --x-axis-field due-date --x-axis-date-format MONTH_YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --y-axis-serie '{\"typeCalc\":\"COUNT\",\"fieldCalc\":\"contact-name\",\"color\":\"#E57373\",\"axisType\":\"SECONDARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by month\" },\n \"chart\": {\n \"chartType\": \"bars\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"MONTH_YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n },\n {\n \"typeCalc\": \"COUNT\",\n \"fieldCalc\": \"contact-name\",\n \"color\": \"#E57373\",\n \"axisType\": \"SECONDARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description: \"Create a bars CHART widget with a quarterly time-serie x-axis.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by quarter\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type bars --x-axis-field due-date --x-axis-date-format QUARTER_YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by quarter\" },\n \"chart\": {\n \"chartType\": \"bars\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"QUARTER_YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description: \"Create a CHART widget with a yearly time-serie x-axis.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type CHART --name \"Revenue by year\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":8,\"h\":6}' --chart-type lines --x-axis-field due-date --x-axis-date-format YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#4B9CD3\",\"axisType\":\"PRIMARY\"}' --legend '{\"position\":\"bottom\"}'`,\n raw: `{\n \"type\": \"CHART\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 8, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Revenue by year\" },\n \"chart\": {\n \"chartType\": \"lines\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#4B9CD3\",\n \"axisType\": \"PRIMARY\"\n }\n ],\n \"legend\": { \"position\": \"bottom\" }\n }\n}`,\n },\n {\n description:\n \"Create a TIMELINE widget via flags. The typed view state lives in view.viewAdditionalProperties.viewState; field references there must be UUIDs (slugs are only resolved in --field). cardConfig uses category1/category2/category4 (no category3). Use --view-state for UI scalars (granularity, sidebarWidth, show* ...).\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type TIMELINE --name \"Customer schedule\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":6}' --field c60b8526-5835-4c9f-aecd-9a16c7704a34 --field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --start-date-field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --end-date-field e5f6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9012 --label-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --group-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --subgroup-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --progress-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --card-title-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --card-category1-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --card-category2-field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --card-category4-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --card-description-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --view-state '{\"granularity\":\"month\",\"sidebarWidth\":300,\"showUngroupedEvents\":true,\"showUnsubgroupedEvents\":true}'`,\n raw: `{\n \"type\": \"TIMELINE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Customer schedule\" },\n \"view\": {\n \"fields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\"\n ],\n \"viewAdditionalProperties\": {\n \"viewState\": {\n \"granularity\": \"month\",\n \"sidebarWidth\": 300,\n \"showUngroupedEvents\": true,\n \"showUnsubgroupedEvents\": true,\n \"fieldMapping\": {\n \"startDateField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endDateField\": \"e5f6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9012\",\n \"labelField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"groupField\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"subgroupField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"progressField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"cardConfig\": {\n \"titleField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"category1Field\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"category2Field\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"category4Field\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"descriptionField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n }\n }\n }\n }\n}`,\n },\n {\n description:\n \"Create a KANBAN widget via flags. The typed view state lives in view.viewAdditionalProperties.viewState; field references there must be UUIDs (slugs are only resolved in --field). cardConfig uses category1/category2/category3 (no category4). --aggregation-method/--aggregation-field set the card aggregation; use --view-state for UI scalars.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type KANBAN --name \"Status board\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":8}' --field c60b8526-5835-4c9f-aecd-9a16c7704a34 --field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --column-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --swimlane-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --card-title-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --card-category1-field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --card-category2-field d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90 --card-category3-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --card-description-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --aggregation-method sum --aggregation-field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --view-state '{\"hideEmptyColumns\":false,\"showNoValueColumn\":true,\"showNoValueSwimlane\":true}'`,\n raw: `{\n \"type\": \"KANBAN\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": { \"name\": \"Status board\" },\n \"view\": {\n \"fields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\"\n ],\n \"viewAdditionalProperties\": {\n \"viewState\": {\n \"hideEmptyColumns\": false,\n \"showNoValueColumn\": true,\n \"showNoValueSwimlane\": true,\n \"fieldMapping\": {\n \"columnField\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"swimlaneField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"cardConfig\": {\n \"titleField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"category1Field\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"category2Field\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"category3Field\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"descriptionField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"aggregationConfig\": {\n \"method\": \"sum\",\n \"fieldId\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\"\n }\n }\n }\n }\n }\n}`,\n },\n {\n description:\n \"Create a HIERARCHY widget via flags. Declare columns once (--hierarchy-label, repeatable --hierarchy-info <id:name>, --hierarchy-number <id:name:aggregation>), map the root level (the view's own table) with --hierarchy-root-* and add each child level as a JSON object with --hierarchy-child. label is required per level; info/number mappings are optional. Column ids (e.g. col_1779975207355_zfndknslw) are unique opaque identifiers you choose — not the column name — and are reused as columnId in every mapping. All field references must be UUIDs.\",\n command:\n `zinkee --json displays widgets create 0f6f062f-1478-4df2-96a1-c495d037d260 --type HIERARCHY --name \"Org tree\" --origin-resource 2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e --layout '{\"x\":0,\"y\":0,\"w\":12,\"h\":6}' --field c60b8526-5835-4c9f-aecd-9a16c7704a34 --field a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890 --field c52efe3f-2825-4c60-a7e3-34dd4c1ce043 --hierarchy-label \"Name\" --hierarchy-info \"col_1779975207355_zfndknslw:Status\" --hierarchy-info \"col_1779975243018_qm4t7xb2pa:Description\" --hierarchy-number \"col_1779975261490_h8kd3nv9ws:Total amount:SUM\" --hierarchy-root-name \"Customers\" --hierarchy-root-label-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --hierarchy-root-info \"col_1779975207355_zfndknslw:a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\" --hierarchy-root-number \"col_1779975261490_h8kd3nv9ws:c52efe3f-2825-4c60-a7e3-34dd4c1ce043\" --hierarchy-child '{\"name\":\"Projects\",\"schemaId\":\"3ec9cdef-7e0a-4cdd-8019-8fb9281f5d6f\",\"childFieldId\":\"80deefae-af3d-4000-b322-bfe1594f8073\",\"labelFieldId\":\"50dbef0b-7e0a-4fdd-8019-8fb9281f5d70\",\"infoMappings\":[{\"columnId\":\"col_1779975243018_qm4t7xb2pa\",\"fieldId\":\"60dcef0c-8f1b-4eee-9120-9fc0392f6e71\"}],\"numberMappings\":[{\"columnId\":\"col_1779975261490_h8kd3nv9ws\",\"fieldId\":\"70ddef0d-9f2c-4fff-a221-afd0493f7f72\"}]}'`,\n raw: `{\n \"type\": \"HIERARCHY\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 6 }\n },\n \"presentation\": { \"name\": \"Org tree\" },\n \"view\": {\n \"fields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\"\n ],\n \"hierarchyConfig\": {\n \"columns\": {\n \"label\": \"Name\",\n \"infos\": [\n { \"id\": \"col_1779975207355_zfndknslw\", \"name\": \"Status\" },\n { \"id\": \"col_1779975243018_qm4t7xb2pa\", \"name\": \"Description\" }\n ],\n \"numbers\": [\n { \"id\": \"col_1779975261490_h8kd3nv9ws\", \"name\": \"Total amount\", \"aggregation\": \"SUM\" }\n ]\n },\n \"rootLevel\": {\n \"name\": \"Customers\",\n \"labelFieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"infoMappings\": [\n { \"columnId\": \"col_1779975207355_zfndknslw\", \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\" }\n ],\n \"numberMappings\": [\n { \"columnId\": \"col_1779975261490_h8kd3nv9ws\", \"fieldId\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\" }\n ]\n },\n \"childLevels\": [\n {\n \"name\": \"Projects\",\n \"schemaId\": \"3ec9cdef-7e0a-4cdd-8019-8fb9281f5d6f\",\n \"childFieldId\": \"80deefae-af3d-4000-b322-bfe1594f8073\",\n \"labelFieldId\": \"50dbef0b-7e0a-4fdd-8019-8fb9281f5d70\",\n \"infoMappings\": [\n { \"columnId\": \"col_1779975243018_qm4t7xb2pa\", \"fieldId\": \"60dcef0c-8f1b-4eee-9120-9fc0392f6e71\" }\n ],\n \"numberMappings\": [\n { \"columnId\": \"col_1779975261490_h8kd3nv9ws\", \"fieldId\": \"70ddef0d-9f2c-4fff-a221-afd0493f7f72\" }\n ]\n }\n ]\n }\n }\n}`,\n },\n ],\n \"displays widgets update\": [\n {\n description: \"Move placement, update view columns, rename the widget and lock it.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --layout '{\"x\":1,\"y\":2,\"w\":8,\"h\":4}' --field contact-name --field status --field amount --name \"Revenue Updated\" --widget-read-only`,\n raw: `{\n \"placement\": {\n \"layout\": { \"x\": 1, \"y\": 2, \"w\": 8, \"h\": 4 }\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"]\n },\n \"presentation\": { \"name\": \"Revenue Updated\" },\n \"behavior\": { \"readOnly\": true }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description:\n \"Add query filters with --filter. The CLI parses the expression and emits the structured comparisonOperator payload the API expects.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --filter \"status:eq:2\" --filter \"amount:gte:500\"`,\n raw: `{\n \"query\": {\n \"filters\": [\n {\n \"origin\": { \"fieldId\": \"status\" },\n \"comparisonOperator\": \"EQUAL\",\n \"values\": [\"2\"]\n },\n {\n \"origin\": { \"fieldId\": \"amount\" },\n \"comparisonOperator\": \"GREATER_OR_EQUAL\",\n \"values\": [\"500\"]\n }\n ]\n }\n}`,\n },\n {\n description:\n \"Fall back to --raw for comparators the parser does not cover yet (e.g. NOT_CONTAINS, RANGE).\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --raw '{\"query\":{\"filters\":[{\"origin\":{\"fieldId\":\"due-date\"},\"comparisonOperator\":\"RANGE\",\"values\":[\"2025-01-01\",\"2025-12-31\"]}]}}'`,\n raw: `{\n \"query\": {\n \"filters\": [\n {\n \"origin\": { \"fieldId\": \"due-date\" },\n \"comparisonOperator\": \"RANGE\",\n \"values\": [\"2025-01-01\", \"2025-12-31\"]\n }\n ]\n }\n}`,\n },\n {\n description: \"Hide the add, delete and filter buttons.\",\n command:\n 'zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --hide-add-button --hide-delete-button --hide-filter-button',\n raw: `{\n \"behavior\": {\n \"hideAddButton\": true,\n \"hideDeleteButton\": true,\n \"hideFilterButton\": true\n }\n}`,\n },\n {\n description:\n \"Configure locked fields (replaces the stored configuration): contact-name locked permanently, status locked while invoice-number is empty. Empty conditions = always locked; conditions combine with AND. Enforcement happens in display widgets only, never in the database view.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --lock-field contact-name --lock-condition \"status:invoice-number:is_empty\" --lock-message-before \"status:Status locks until the invoice number is set.\" --lock-message-after \"status:Status is locked because the invoice number is missing.\"`,\n raw: `{\n \"behavior\": {\n \"lockedFields\": [\n {\n \"field\": { \"fieldId\": \"contact-name\" },\n \"conditions\": []\n },\n {\n \"field\": { \"fieldId\": \"status\" },\n \"conditions\": [\n {\n \"origin\": { \"fieldId\": \"invoice-number\" },\n \"comparisonOperator\": \"IS_EMPTY\",\n \"values\": []\n }\n ],\n \"messageBeforeLock\": \"Status locks until the invoice number is set.\",\n \"messageAfterLock\": \"Status is locked because the invoice number is missing.\"\n }\n ]\n }\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n {\n description: \"Clear the locked-fields configuration.\",\n command:\n 'zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --clear-locked-fields',\n raw: `{\n \"behavior\": { \"lockedFields\": [] }\n}`,\n },\n {\n description: \"Update the KPI aggregation to AVG with one-decimal format.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 33333333-3333-4333-a333-333333333333 --calc AVG --calc-field amount --kpi-config '{\"format\":\"number\",\"decimals\":1}'`,\n raw: `{\n \"kpi\": {\n \"typeCalc\": \"AVG\",\n \"fieldCalc\": \"amount\",\n \"config\": { \"format\": \"number\", \"decimals\": 1 }\n }\n}`,\n },\n {\n description: \"Replace the chart series with quarterly lines.\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 22222222-2222-4222-a222-222222222222 --chart-type lines --x-axis-field due-date --x-axis-date-format QUARTER_YEAR --x-axis-time-series --y-axis-serie '{\"typeCalc\":\"SUM\",\"fieldCalc\":\"amount\",\"color\":\"#2E7D32\",\"axisType\":\"PRIMARY\"}'`,\n raw: `{\n \"chart\": {\n \"chartType\": \"lines\",\n \"xAxisFieldId\": \"due-date\",\n \"xAxisDateFormat\": \"QUARTER_YEAR\",\n \"xAxisAsTimeSerie\": true,\n \"yAxisSeries\": [\n {\n \"typeCalc\": \"SUM\",\n \"fieldCalc\": \"amount\",\n \"color\": \"#2E7D32\",\n \"axisType\": \"PRIMARY\"\n }\n ]\n }\n}`,\n },\n {\n description: \"Rewrite the widget bindings (requires --raw because the CLI has no --binding flag).\",\n command:\n `zinkee --json displays widgets update 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111 --raw '{\"bindings\":{\"variableMap\":{\"aaaaaaaa-1111-4111-a111-111111111111\":\"contact-name\",\"cccccccc-3333-4333-a333-333333333333\":\"owner\"}}}'`,\n raw: `{\n \"bindings\": {\n \"variableMap\": {\n \"aaaaaaaa-1111-4111-a111-111111111111\": \"contact-name\",\n \"cccccccc-3333-4333-a333-333333333333\": \"owner\"\n }\n }\n}`,\n },\n ],\n \"displays navigation-targets create\": [\n {\n description: \"Create a navigation target with a visible label.\",\n command:\n 'zinkee --json displays navigation-targets create 0f6f062f-1478-4df2-96a1-c495d037d260 --source-widget 11111111-1111-4111-a111-111111111111 --target-display ef012345-6789-4abc-8def-0123456789ab --target-variable aaaaaaaa-1111-4111-a111-111111111111 --label \"Open customer\"',\n raw: `{\n \"sourceWidgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"targetDisplayId\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"targetVariableId\": \"aaaaaaaa-1111-4111-a111-111111111111\",\n \"label\": \"Open customer\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"navigationTargetId\": \"nav-target-customer\"\n}`,\n },\n {\n description: \"Create a navigation target without a label (uses the target display name).\",\n command:\n 'zinkee --json displays navigation-targets create 0f6f062f-1478-4df2-96a1-c495d037d260 --source-widget 22222222-2222-4222-a222-222222222222 --target-display ef012345-6789-4abc-8def-0123456789ab --target-variable aaaaaaaa-1111-4111-a111-111111111111',\n raw: `{\n \"sourceWidgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"targetDisplayId\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"targetVariableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n ],\n \"displays navigation-targets update\": [\n {\n description: \"Change just the label.\",\n command:\n 'zinkee --json displays navigation-targets update 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer --label \"Go to customer\"',\n raw: `{\n \"label\": \"Go to customer\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"navigationTargetId\": \"nav-target-customer\"\n}`,\n },\n {\n description: \"Redirect the target to another display/variable pair.\",\n command:\n 'zinkee --json displays navigation-targets update 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer --target-display 6b7c8d9e-0f12-3456-789a-bcdef0123456 --target-variable bbbbbbbb-2222-4222-a222-222222222222',\n raw: `{\n \"targetDisplayId\": \"6b7c8d9e-0f12-3456-789a-bcdef0123456\",\n \"targetVariableId\": \"bbbbbbbb-2222-4222-a222-222222222222\"\n}`,\n },\n {\n description: \"Change the source widget.\",\n command:\n 'zinkee --json displays navigation-targets update 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer --source-widget 44444444-4444-4444-a444-444444444444',\n raw: `{\n \"sourceWidgetId\": \"44444444-4444-4444-a444-444444444444\"\n}`,\n },\n ],\n \"displays cross-widget-filter set\": [\n {\n description:\n \"Single configuration with flags: link one source widget/field to several targets. The whole array is replaced.\",\n command:\n 'zinkee --json displays cross-widget-filter set 0f6f062f-1478-4df2-96a1-c495d037d260 --source-widget 11111111-1111-4111-a111-111111111111 --source-field c60b8526-5835-4c9f-aecd-9a16c7704a34 --target 22222222-2222-4222-a222-222222222222:c60b8526-5835-4c9f-aecd-9a16c7704a34 --target 33333333-3333-4333-a333-333333333333:c60b8526-5835-4c9f-aecd-9a16c7704a34',\n raw: `[\n {\n \"source\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n {\n \"widgetId\": \"33333333-3333-4333-a333-333333333333\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n }\n]`,\n },\n {\n description:\n \"Several independent configurations with --raw (each source filters its own targets). A widget cannot be a target of two configurations.\",\n command:\n \"zinkee --json displays cross-widget-filter set 0f6f062f-1478-4df2-96a1-c495d037d260 --raw '[{\\\"source\\\":{\\\"widgetId\\\":\\\"11111111-1111-4111-a111-111111111111\\\",\\\"fieldId\\\":\\\"c60b8526-5835-4c9f-aecd-9a16c7704a34\\\"},\\\"targets\\\":[{\\\"widgetId\\\":\\\"22222222-2222-4222-a222-222222222222\\\",\\\"fieldId\\\":\\\"c60b8526-5835-4c9f-aecd-9a16c7704a34\\\"}]},{\\\"source\\\":{\\\"widgetId\\\":\\\"44444444-4444-4444-a444-444444444444\\\",\\\"fieldId\\\":\\\"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\\\"},\\\"targets\\\":[{\\\"widgetId\\\":\\\"55555555-5555-4555-a555-555555555555\\\",\\\"fieldId\\\":\\\"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\\\"}]}]'\",\n raw: `[\n {\n \"source\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n },\n {\n \"source\": {\n \"widgetId\": \"44444444-4444-4444-a444-444444444444\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n },\n \"targets\": [\n {\n \"widgetId\": \"55555555-5555-4555-a555-555555555555\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n }\n ]\n }\n]`,\n },\n {\n description:\n \"Hierarchy chain with --raw-file: a target of one configuration is the source of the next (click Parent → filters Child, click Child → filters Grandchild).\",\n command:\n \"zinkee --json displays cross-widget-filter set 0f6f062f-1478-4df2-96a1-c495d037d260 --raw-file cross-widget-filter.json\",\n raw: `[\n {\n \"source\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n },\n {\n \"source\": {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n },\n \"targets\": [\n {\n \"widgetId\": \"33333333-3333-4333-a333-333333333333\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\"\n }\n ]\n }\n]`,\n },\n ],\n \"schemas list\": [\n {\n description: \"List schemas in the workspace with folder and field counts.\",\n command: \"zinkee --json schemas list\",\n response: `[\n {\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Contacts\",\n \"slug\": \"contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": false,\n \"commentable\": false,\n \"fieldCount\": 11\n },\n {\n \"id\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"name\": \"Orders\",\n \"slug\": \"orders\",\n \"folder\": {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"root\",\n \"isRoot\": true\n },\n \"auditable\": true,\n \"commentable\": true,\n \"fieldCount\": 7\n }\n]`,\n },\n ],\n \"schemas get\": [\n {\n description: \"Get a schema with all its fields.\",\n command: \"zinkee --json schemas get contacts\",\n response: `{\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Contacts\",\n \"slug\": \"contacts\",\n \"folder\": {\n \"id\": \"7f4e7c25-d8b2-4c1a-9f3e-6a7b5c8d9e1f\",\n \"name\": \"Customers\",\n \"isRoot\": false\n },\n \"auditable\": true,\n \"commentable\": true,\n \"highlightedField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"fields\": [\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"NORMAL\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\",\n \"type\": \"TextField\",\n \"slug\": \"notes\",\n \"label\": \"Notes\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": null,\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"type\": \"NumberField\",\n \"slug\": \"amount\",\n \"label\": \"Amount\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"currency\",\n \"decimals\": 2,\n \"negativesInRed\": true,\n \"thousandsSeparator\": true,\n \"symbolEnabled\": true,\n \"symbolPosition\": \"before\",\n \"symbolValue\": \"€\"\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"2f3a4b5c-6d7e-8f90-1234-56789abcdef0\",\n \"type\": \"NumberField\",\n \"slug\": \"quantity\",\n \"label\": \"Quantity\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"number\",\n \"decimals\": 0,\n \"thousandsSeparator\": false\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"3a4b5c6d-7e8f-9012-3456-789abcdef012\",\n \"type\": \"NumberField\",\n \"slug\": \"discount-rate\",\n \"label\": \"Discount Rate\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": \"0\",\n \"formatOptions\": {\n \"format\": \"percentage\",\n \"decimals\": 1,\n \"negativesInRed\": true\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"type\": \"DateField\",\n \"slug\": \"due-date\",\n \"label\": \"Due Date\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": null,\n \"formatOptions\": {\n \"format\": \"datetime\",\n \"dateFormat\": \"DD/MM/YYYY\",\n \"showTime\": true\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"4b5c6d7e-8f90-1234-5678-9abcdef01234\",\n \"type\": \"DateField\",\n \"slug\": \"birth-date\",\n \"label\": \"Birth Date\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": null,\n \"formatOptions\": {\n \"format\": \"date\",\n \"dateFormat\": \"YYYY-MM-DD\",\n \"showTime\": false\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"type\": \"OptionField\",\n \"slug\": \"status\",\n \"label\": \"Status\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": null\n }\n },\n {\n \"id\": \"5c6d7e8f-9012-3456-789a-bcdef0123456\",\n \"type\": \"OptionField\",\n \"slug\": \"stage\",\n \"label\": \"Stage\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"To Do\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"Doing\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": {\n \"displayMode\": \"button\",\n \"buttonBehavior\": {\n \"mode\": \"cycle\",\n \"cycleOrder\": [1, 2, 3],\n \"requireConfirmation\": false,\n \"lockAfterSelection\": false,\n \"allowReselect\": true\n }\n }\n }\n },\n {\n \"id\": \"3e9f8c12-4a5b-6c7d-8e9f-0a1b2c3d4e5f\",\n \"type\": \"FormulaField\",\n \"slug\": \"formula-total\",\n \"label\": \"Formula Total\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"formulaText\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043 * 1.21\",\n \"uiFormatKind\": \"number\",\n \"status\": \"ACTIVE\",\n \"defaultValue\": null,\n \"numberFormatOptions\": {\n \"format\": \"number\",\n \"decimals\": 2,\n \"thousandsSeparator\": true\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"6d7e8f90-1234-5678-9abc-def012345678\",\n \"type\": \"FormulaField\",\n \"slug\": \"formula-period\",\n \"label\": \"Formula Period\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"formulaText\": \"date_format(d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90, \\\\\"AAAA-MM\\\\\")\",\n \"uiFormatKind\": \"date\",\n \"status\": \"ACTIVE\",\n \"defaultValue\": null,\n \"dateFormatOptions\": {\n \"format\": \"date\",\n \"dateFormat\": \"DD/MM/YYYY\",\n \"showTime\": false\n },\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"45c5da96-0dc2-4cc1-ba61-7660a9c6da32\",\n \"type\": \"ReferenceField\",\n \"slug\": \"customer-ref\",\n \"label\": \"Customer\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"targetSchema\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetDisplayField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"deleteBehavior\": \"SET_NULL\",\n \"defaultValue\": null,\n \"filterFields\": [],\n \"descriptionFields\": [],\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"7e8f9012-3456-789a-bcde-f01234567890\",\n \"type\": \"ReferenceField\",\n \"slug\": \"company-ref\",\n \"label\": \"Company\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"targetSchema\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"targetDisplayField\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"deleteBehavior\": \"RESTRICT\",\n \"defaultValue\": null,\n \"filterFields\": [],\n \"descriptionFields\": [],\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"b2c3d4e5-f6a7-8b9c-0d1e-2f3a4b5c6d7e\",\n \"type\": \"AutoIncrementalField\",\n \"slug\": \"sequence-code\",\n \"label\": \"Sequence Code\",\n \"required\": false,\n \"system\": true,\n \"config\": {\n \"segmentedByFieldId\": \"45c5da96-0dc2-4cc1-ba61-7660a9c6da32\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"8f901234-5678-9abc-def0-123456789012\",\n \"type\": \"AutoIncrementalField\",\n \"slug\": \"order-number\",\n \"label\": \"Order Number\",\n \"required\": false,\n \"system\": true,\n \"config\": {\n \"segmentedByFieldId\": null,\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"e5f6a7b8-c9d0-1e2f-3a4b-5c6d7e8f9012\",\n \"type\": \"FileField\",\n \"slug\": \"attachment\",\n \"label\": \"Attachment\",\n \"required\": false,\n \"system\": false,\n \"config\": {}\n },\n {\n \"id\": \"f6a7b8c9-d0e1-2f3a-4b5c-6d7e8f901234\",\n \"type\": \"ScheduleField\",\n \"slug\": \"recurrence\",\n \"label\": \"Recurrence\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"referenceField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"beginningPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endingPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"frequency\": \"monthly\"\n }\n },\n {\n \"id\": \"9012abcd-ef01-2345-6789-abcdef012345\",\n \"type\": \"ScheduleField\",\n \"slug\": \"daily-recurrence\",\n \"label\": \"Daily Recurrence\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"referenceField\": \"c52efe3f-2825-4c60-a7e3-34dd4c1ce043\",\n \"beginningPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"endingPeriodField\": \"d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f90\",\n \"frequency\": \"daily\"\n }\n },\n {\n \"id\": \"a7b8c9d0-e1f2-3a4b-5c6d-7e8f90123456\",\n \"type\": \"MemberField\",\n \"slug\": \"owner\",\n \"label\": \"Owner\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"defaultValue\": null,\n \"conditionalFormatting\": []\n }\n }\n ],\n \"uniqueFields\": [\n \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"1d2e3f4a-5b6c-7d8e-9f01-23456789abcd\"\n ]\n}`,\n },\n ],\n \"schemas delete\": [\n {\n description: \"Delete a schema (also removes it from navigation folders).\",\n command: \"zinkee --json schemas delete contacts\",\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"deleted\": true\n}`,\n },\n ],\n \"schemas fields list\": [\n {\n description: \"List the fields of a schema (fields are inlined in the schema resource).\",\n command: \"zinkee --json schemas fields list contacts\",\n response: `[\n {\n \"id\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\",\n \"type\": \"TextField\",\n \"slug\": \"contact-name\",\n \"label\": \"Customer Name\",\n \"required\": true,\n \"system\": false,\n \"config\": {\n \"textType\": \"LONG\",\n \"defaultValue\": \"Unknown\",\n \"conditionalFormatting\": []\n }\n },\n {\n \"id\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"type\": \"OptionField\",\n \"slug\": \"status\",\n \"label\": \"Status\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": null\n }\n }\n]`,\n },\n ],\n \"schemas fields get\": [\n {\n description: \"Get a schema field (returns the full typed field contract).\",\n command: \"zinkee --json schemas fields get contacts status\",\n response: `{\n \"id\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"type\": \"OptionField\",\n \"slug\": \"status\",\n \"label\": \"Status\",\n \"required\": false,\n \"system\": false,\n \"config\": {\n \"options\": [\n { \"id\": 1, \"name\": \"Open\", \"color\": \"default\" },\n { \"id\": 2, \"name\": \"In Progress\", \"color\": \"warning\" },\n { \"id\": 3, \"name\": \"Done\", \"color\": \"success\" }\n ],\n \"defaultValue\": 1,\n \"conditionalFormatting\": [],\n \"buttonConfig\": {\n \"displayMode\": \"button\",\n \"buttonBehavior\": {\n \"mode\": \"cycle\",\n \"cycleOrder\": [1, 2, 3],\n \"requireConfirmation\": false,\n \"lockAfterSelection\": false,\n \"useFixedLabel\": false,\n \"allowReselect\": true\n }\n }\n }\n}`,\n },\n ],\n \"schemas fields delete\": [\n {\n description: \"Delete a schema field.\",\n command: \"zinkee --json schemas fields delete contacts status\",\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"slug\": \"status\"\n}`,\n },\n ],\n \"records list\": [\n {\n description: \"List records with default pagination.\",\n command: \"zinkee --json records list contacts\",\n response: `{\n \"records\": [\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\",\n \"status\": 2,\n \"amount\": 1250.50,\n \"due-date\": \"2026-05-15T12:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n },\n {\n \"recordId\": \"7c9a4b31-e85d-42f7-8b6a-123456789abc\",\n \"values\": {\n \"contact-name\": \"Alan Turing\",\n \"contact-email\": \"alan@example.com\",\n \"status\": 1,\n \"amount\": 890.00\n }\n }\n ],\n \"page\": {\n \"offset\": 0,\n \"limit\": 50,\n \"total\": 2,\n \"count\": 2,\n \"hasMore\": false\n }\n}`,\n },\n {\n description: \"Paginate further into the result set.\",\n command: \"zinkee --json records list contacts --limit 50 --offset 100\",\n },\n ],\n \"records get\": [\n {\n description: \"Get one record by id (values are keyed by field slug).\",\n command: `zinkee --json records get contacts ${SAMPLE_UUID}`,\n response: `{\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"values\": {\n \"contact-name\": \"Ada Lovelace\",\n \"contact-email\": \"ada@example.com\",\n \"status\": 2,\n \"amount\": 1250.50,\n \"due-date\": \"2026-05-15T12:00:00Z\",\n \"owner\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n }\n}`,\n },\n ],\n \"records delete\": [\n {\n description: \"Delete one or more records by id (--record is repeatable).\",\n command: `zinkee --json records delete contacts --record 550e8400-e29b-41d4-a716-446655440000 --record 6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d`,\n response: `{\n \"recordIds\": [\n \"550e8400-e29b-41d4-a716-446655440000\",\n \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n ],\n \"deleted\": true\n}`,\n },\n {\n description:\n \"Delete many records listing one uuid per line in a file (merged with any --record flags and de-duplicated).\",\n command: `zinkee --json records delete contacts --records-file ./record-ids.txt`,\n response: `{\n \"recordIds\": [\n \"550e8400-e29b-41d4-a716-446655440000\",\n \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\"\n ],\n \"deleted\": true\n}`,\n },\n ],\n \"records clear\": [\n {\n description:\n \"Delete every record from a schema's table. Heritage rules (CASCADE / SET NULL) propagate to child schemas asynchronously via the CDC pipeline.\",\n command: \"zinkee --json records clear contacts\",\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"cleared\": true\n}`,\n },\n ],\n \"comments list\": [\n {\n description: \"List comments on a record (content is an array of TEXT/MENTION items).\",\n command: `zinkee --json comments list contacts ${SAMPLE_UUID}`,\n response: `[\n {\n \"id\": \"cd8e3b2a-1f5c-4e9a-8b7d-0a2b3c4d5e6f\",\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"createdAt\": \"2026-04-22T10:15:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"This record needs review.\" }\n ]\n },\n {\n \"id\": \"a1b2c3d4-5e6f-7890-abcd-ef1234567890\",\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"createdAt\": \"2026-04-22T11:30:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"content\": [\n { \"type\": \"TEXT\", \"value\": \"Assigning to \" },\n { \"type\": \"MENTION\", \"value\": \"9f8e7d6c-5b4a-3c2d-1e0f-a1b2c3d4e5f6\" },\n { \"type\": \"TEXT\", \"value\": \" for follow up.\" }\n ]\n }\n]`,\n },\n ],\n \"logs list\": [\n {\n description:\n \"List the change history for a record (CREATE entry plus UPDATE entries with before/after values per field).\",\n command: `zinkee --json logs list contacts ${SAMPLE_UUID}`,\n response: `[\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"timestamp\": \"2026-04-22T10:00:00Z\",\n \"changeField\": \"\",\n \"change\": {\n \"beforeValue\": null,\n \"afterValue\": null,\n \"author\": \"developer@zinkee.com\",\n \"operation\": \"CREATE\"\n }\n },\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"timestamp\": \"2026-04-22T10:15:00Z\",\n \"changeField\": \"status\",\n \"change\": {\n \"beforeValue\": \"1\",\n \"afterValue\": \"2\",\n \"author\": \"developer@zinkee.com\",\n \"operation\": \"UPDATE\"\n }\n },\n {\n \"recordId\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"timestamp\": \"2026-04-22T10:20:00Z\",\n \"changeField\": \"amount\",\n \"change\": {\n \"beforeValue\": \"1000.00\",\n \"afterValue\": \"1250.50\",\n \"author\": \"developer@zinkee.com\",\n \"operation\": \"UPDATE\"\n }\n }\n]`,\n },\n ],\n \"navigation folders list\": [\n {\n description: \"List navigation folders with embedded resources, sorted by order.\",\n command: \"zinkee --json navigation folders list\",\n response: `[\n {\n \"id\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\",\n \"order\": 1,\n \"name\": \"Sales\",\n \"resources\": [\n {\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Customer records\",\n \"type\": \"SCHEMA\",\n \"isInSpace\": false,\n \"additionalProperties\": {}\n },\n {\n \"id\": \"5223cbc8-8c6c-4694-93bc-dd176364df9b\",\n \"name\": \"Orders\",\n \"type\": \"SCHEMA\",\n \"isInSpace\": true,\n \"additionalProperties\": {}\n }\n ],\n \"additionalProperties\": {\n \"color\": \"blue\"\n }\n },\n {\n \"id\": \"b8c9d0e1-f2a3-4b5c-6d7e-8f9012345678\",\n \"order\": 2,\n \"name\": \"Operations\",\n \"resources\": [\n {\n \"id\": \"3f8a2c1b-9d4e-4a5b-8c6d-7e8f90123456\",\n \"name\": \"Shipments\",\n \"type\": \"SCHEMA\",\n \"isInSpace\": false,\n \"additionalProperties\": {}\n }\n ],\n \"additionalProperties\": {\n \"color\": \"purple\"\n }\n },\n {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"order\": 99,\n \"name\": \"root\",\n \"resources\": [],\n \"additionalProperties\": {}\n }\n]`,\n },\n ],\n \"navigation folders get\": [\n {\n description: \"Get a navigation folder by exact name or UUID.\",\n command: 'zinkee --json navigation folders get Finance',\n },\n ],\n \"navigation folders delete\": [\n {\n description: \"Delete a navigation folder by exact name or UUID.\",\n command: 'zinkee --json navigation folders delete Finance',\n response: `{\n \"folderId\": \"84a0fca4-37ef-4c83-a8ed-9ef67ad9324a\",\n \"name\": \"Finance Ops\"\n}`,\n },\n ],\n \"teamspace folders list\": [\n {\n description: \"List teamspace folders.\",\n command: \"zinkee --json teamspace folders list\",\n },\n {\n description: \"List teamspace folders with their published resources.\",\n command: \"zinkee --json teamspace folders list --include-resources\",\n response: `[\n {\n \"id\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"name\": \"Shared Dashboards\",\n \"order\": 1,\n \"isRoot\": false,\n \"resourceCount\": 2,\n \"resources\": [\n {\n \"id\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"name\": \"Customer records\",\n \"type\": \"SCHEMA\"\n },\n {\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"type\": \"DISPLAY\"\n }\n ],\n \"additionalProperties\": {}\n }\n]`,\n },\n ],\n \"teamspace folders get\": [\n {\n description: \"Get a teamspace folder by exact name or UUID.\",\n command: 'zinkee --json teamspace folders get \"Shared Dashboards\"',\n },\n ],\n \"teamspace folders delete\": [\n {\n description:\n \"Delete a teamspace folder. Its resources are moved to the returned target folder (root by default).\",\n command: 'zinkee --json teamspace folders delete \"Customer Success\"',\n response: `{\n \"folderId\": \"f45a251d-3ea0-4b41-bfe8-c0f44c8ad54a\",\n \"movedResourceCount\": 3,\n \"targetFolder\": {\n \"id\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"root\",\n \"isRoot\": true\n }\n}`,\n },\n ],\n \"files storage\": [\n {\n description: \"Get the storage quota and current usage (bytes).\",\n command: \"zinkee --json files storage\",\n response: `{\n \"maxSize\": 10737418240,\n \"usedSize\": 2147483648\n}`,\n },\n ],\n \"displays list\": [\n {\n description: \"List displays in the workspace with variable and widget counts.\",\n command: \"zinkee --json displays list\",\n response: `[\n {\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"layoutTemplate\": \"widget_row_tabs\",\n \"variableCount\": 3,\n \"widgetCount\": 6,\n \"folder\": {\n \"id\": \"b1a2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n \"name\": \"📊 Executive\",\n \"isRoot\": false\n }\n },\n {\n \"id\": \"6b7c8d9e-0f12-3456-789a-bcdef0123456\",\n \"name\": \"Sales Pipeline\",\n \"layoutTemplate\": \"freeform\",\n \"variableCount\": 1,\n \"widgetCount\": 3,\n \"folder\": {\n \"id\": \"a0b1c2d3-e4f5-4061-8273-8495a6b7c8d9\",\n \"name\": null,\n \"isRoot\": true\n }\n },\n {\n \"id\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"name\": \"Customer Detail\",\n \"layoutTemplate\": \"grid\",\n \"variableCount\": 0,\n \"widgetCount\": 2,\n \"folder\": {\n \"id\": \"b1a2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n \"name\": \"📊 Executive\",\n \"isRoot\": false\n }\n }\n]`,\n },\n ],\n \"displays get\": [\n {\n description:\n \"Get a display with its layout (tabs/freeformLayouts/slots), variables, widgets, cross-widget filter and navigation targets.\",\n command: \"zinkee --json displays get 0f6f062f-1478-4df2-96a1-c495d037d260\",\n response: `{\n \"id\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"name\": \"Executive Revenue\",\n \"layout\": {\n \"template\": \"widget_row_tabs\",\n \"freeformLayouts\": null,\n \"slots\": null,\n \"tabs\": [\n {\n \"id\": \"tab-main\",\n \"name\": \"Overview\",\n \"orientation\": \"horizontal\",\n \"widgetIds\": [\n \"11111111-1111-4111-a111-111111111111\",\n \"22222222-2222-4222-a222-222222222222\",\n \"33333333-3333-4333-a333-333333333333\"\n ]\n },\n {\n \"id\": \"tab-detail\",\n \"name\": \"Detail\",\n \"orientation\": \"horizontal\",\n \"widgetIds\": [\n \"44444444-4444-4444-a444-444444444444\",\n \"55555555-5555-4555-a555-555555555555\",\n \"66666666-6666-4666-a666-666666666666\"\n ]\n }\n ]\n },\n \"variables\": [\n {\n \"id\": \"aaaaaaaa-1111-4111-a111-111111111111\",\n \"type\": \"REFERENCE\",\n \"name\": \"Customer\",\n \"source\": {\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"defaultValue\": \"\",\n \"allowMultiple\": false,\n \"staticVariable\": false,\n \"filters\": []\n },\n {\n \"id\": \"bbbbbbbb-2222-4222-a222-222222222222\",\n \"type\": \"DATE\",\n \"name\": \"Period\",\n \"date\": {\n \"mode\": \"dynamic\",\n \"dynamicOption\": \"thisMonth\"\n }\n },\n {\n \"id\": \"cccccccc-3333-4333-a333-333333333333\",\n \"type\": \"MEMBER\",\n \"name\": \"Owner\",\n \"defaultValue\": \"6c8a3e0d-4e5f-4a1b-9c2d-3e4f5a6b7c8d\",\n \"allowMultiple\": false,\n \"staticVariable\": false\n }\n ],\n \"widgets\": [\n {\n \"id\": \"11111111-1111-4111-a111-111111111111\",\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": {\n \"name\": \"Customers\",\n \"description\": \"All customers\",\n \"icon\": \"users\",\n \"color\": \"blue\"\n },\n \"bindings\": {\n \"variableMap\": {\n \"aaaaaaaa-1111-4111-a111-111111111111\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n },\n \"query\": {\n \"filters\": [],\n \"sorts\": [\n { \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\", \"direction\": \"ASC\" }\n ]\n },\n \"behavior\": {\n \"readOnly\": false,\n \"hideAddButton\": false,\n \"hideDeleteButton\": false\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"],\n \"columnSize\": { \"contact-name\": 240 }\n }\n }\n ],\n \"crossWidgetFilter\": [\n {\n \"sourceWidget\": {\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n },\n \"targetWidgets\": [\n {\n \"widgetId\": \"22222222-2222-4222-a222-222222222222\",\n \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n ]\n }\n ],\n \"navigationTargets\": [\n {\n \"id\": \"nav-target-customer\",\n \"sourceWidgetId\": \"11111111-1111-4111-a111-111111111111\",\n \"targetDisplayId\": \"ef012345-6789-4abc-8def-0123456789ab\",\n \"targetVariableId\": \"aaaaaaaa-1111-4111-a111-111111111111\",\n \"label\": \"Open customer\"\n }\n ],\n \"folder\": {\n \"id\": \"b1a2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d\",\n \"name\": \"📊 Executive\",\n \"isRoot\": false\n }\n}`,\n },\n ],\n \"displays update\": [\n {\n description: \"Update only the display description.\",\n command:\n 'zinkee --json displays update 0f6f062f-1478-4df2-96a1-c495d037d260 --description \"Sales pipeline overview\"',\n raw: `{\n \"description\": \"Sales pipeline overview\"\n}`,\n },\n {\n description: \"Clear the display description.\",\n command:\n 'zinkee --json displays update 0f6f062f-1478-4df2-96a1-c495d037d260 --description \"\"',\n raw: `{\n \"description\": \"\"\n}`,\n },\n {\n description: \"Rename a display (patch of top-level metadata only).\",\n command:\n 'zinkee --json displays update 0f6f062f-1478-4df2-96a1-c495d037d260 --name \"Pipeline overview (renamed)\"',\n raw: `{\n \"name\": \"Pipeline overview (renamed)\"\n}`,\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\"\n}`,\n },\n ],\n \"displays delete\": [\n {\n description: \"Delete a display.\",\n command: \"zinkee --json displays delete 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays folders list\": [\n {\n description: \"List flat display folders (non-root folders plus the root bucket).\",\n command: \"zinkee --json displays folders list\",\n response: `[\n {\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false,\n \"displayCount\": 2\n },\n {\n \"id\": \"8b22282b-3db3-4dd7-87f7-b29365dcf3f6\",\n \"name\": null,\n \"isRoot\": true,\n \"displayCount\": 4\n }\n]`,\n },\n ],\n \"displays folders create\": [\n {\n description: \"Create one flat display folder.\",\n command: 'zinkee --json displays folders create --name \"Executive Dashboards\"',\n raw: `{\n \"name\": \"Executive Dashboards\"\n}`,\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false,\n \"displayCount\": 0\n}`,\n },\n ],\n \"displays folders update\": [\n {\n description: \"Rename a display folder. The folder argument accepts a UUID or an exact name.\",\n command:\n 'zinkee --json displays folders update \"Executive Dashboards\" --name \"Executive Dashboards (2026)\"',\n raw: `{\n \"name\": \"Executive Dashboards (2026)\"\n}`,\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards (2026)\",\n \"isRoot\": false,\n \"displayCount\": 2\n}`,\n },\n ],\n \"displays folders delete\": [\n {\n description: \"Delete a non-root display folder. Its displays move back to the root folder.\",\n command: 'zinkee --json displays folders delete \"Executive Dashboards\"',\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false,\n \"displayCount\": 2\n}`,\n },\n ],\n \"displays folders move\": [\n {\n description: \"Move one display into a target folder by exact folder name.\",\n command:\n 'zinkee --json displays folders move 0f6f062f-1478-4df2-96a1-c495d037d260 --to \"Executive Dashboards\"',\n raw: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"targetFolderId\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\"\n}`,\n response: `{\n \"id\": \"e7a1c3d2-5f4b-4a6c-9d8e-1f2a3b4c5d6e\",\n \"name\": \"Executive Dashboards\",\n \"isRoot\": false\n}`,\n },\n ],\n \"displays layout get\": [\n {\n description: \"Get the layout block of a display (template + tabs/freeformLayouts/slots).\",\n command: \"zinkee --json displays layout get 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays layout update\": [\n {\n description: \"Replace the freeform layout of a display.\",\n command:\n `zinkee --json displays layout update 0f6f062f-1478-4df2-96a1-c495d037d260 --template freeform --freeform-layouts '{\"lg\":[{\"i\":\"widget-1\",\"x\":0,\"y\":0,\"w\":6,\"h\":5}]}'`,\n },\n ],\n \"displays tabs list\": [\n {\n description: \"List the tabs of a display (only meaningful when the layout template uses tabs).\",\n command: \"zinkee --json displays tabs list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays tabs delete\": [\n {\n description: \"Delete a tab by id.\",\n command: \"zinkee --json displays tabs delete 0f6f062f-1478-4df2-96a1-c495d037d260 tab-main\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"tabId\": \"tab-main\"\n}`,\n },\n ],\n \"displays variables list\": [\n {\n description: \"List the variables of a display.\",\n command: \"zinkee --json displays variables list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays variables get\": [\n {\n description: \"Get one variable by id.\",\n command:\n \"zinkee --json displays variables get 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111\",\n },\n ],\n \"displays variables delete\": [\n {\n description: \"Delete a variable.\",\n command:\n \"zinkee --json displays variables delete 0f6f062f-1478-4df2-96a1-c495d037d260 aaaaaaaa-1111-4111-a111-111111111111\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"variableId\": \"aaaaaaaa-1111-4111-a111-111111111111\"\n}`,\n },\n ],\n \"displays widgets list\": [\n {\n description: \"List the widgets of a display.\",\n command: \"zinkee --json displays widgets list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays widgets get\": [\n {\n description: \"Get one widget (returns the canonical typed widget contract).\",\n command:\n \"zinkee --json displays widgets get 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111\",\n response: `{\n \"id\": \"11111111-1111-4111-a111-111111111111\",\n \"type\": \"TABLE_OR_SUBTABLE\",\n \"source\": {\n \"originResourceId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"isOriginSubSchema\": false\n },\n \"placement\": {\n \"layout\": { \"x\": 0, \"y\": 0, \"w\": 12, \"h\": 8 }\n },\n \"presentation\": {\n \"name\": \"Customers\",\n \"description\": \"All customers\",\n \"icon\": \"users\",\n \"color\": \"blue\"\n },\n \"bindings\": {\n \"variableMap\": {\n \"aaaaaaaa-1111-4111-a111-111111111111\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\"\n }\n },\n \"query\": {\n \"filters\": [],\n \"sorts\": [\n { \"fieldId\": \"c60b8526-5835-4c9f-aecd-9a16c7704a34\", \"direction\": \"ASC\" }\n ]\n },\n \"behavior\": {\n \"readOnly\": false,\n \"hideAddButton\": false,\n \"hideDeleteButton\": false\n },\n \"view\": {\n \"fields\": [\"contact-name\", \"status\", \"amount\"],\n \"columnSize\": { \"contact-name\": 240 }\n }\n}`,\n },\n ],\n \"displays widgets delete\": [\n {\n description: \"Delete a widget.\",\n command:\n \"zinkee --json displays widgets delete 0f6f062f-1478-4df2-96a1-c495d037d260 11111111-1111-4111-a111-111111111111\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"widgetId\": \"11111111-1111-4111-a111-111111111111\"\n}`,\n },\n ],\n \"displays navigation-targets list\": [\n {\n description: \"List navigation targets for a display.\",\n command: \"zinkee --json displays navigation-targets list 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays navigation-targets delete\": [\n {\n description: \"Delete a navigation target.\",\n command:\n \"zinkee --json displays navigation-targets delete 0f6f062f-1478-4df2-96a1-c495d037d260 nav-target-customer\",\n response: `{\n \"displayId\": \"0f6f062f-1478-4df2-96a1-c495d037d260\",\n \"navigationTargetId\": \"nav-target-customer\"\n}`,\n },\n ],\n \"displays cross-widget-filter get\": [\n {\n description: \"Get the cross-widget filter of a display (can be null if none is set).\",\n command: \"zinkee --json displays cross-widget-filter get 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"displays cross-widget-filter delete\": [\n {\n description: \"Delete the cross-widget filter of a display.\",\n command:\n \"zinkee --json displays cross-widget-filter delete 0f6f062f-1478-4df2-96a1-c495d037d260\",\n },\n ],\n \"automations list\": [\n {\n description: \"List automations with summaries.\",\n command: \"zinkee --json automations list\",\n response: `[\n {\n \"id\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"name\": \"Codex Trigger Demo 1774278580\",\n \"description\": \"Demo compleja no-webhook para revisar en frontend.\",\n \"status\": \"active\",\n \"folder\": {\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false\n },\n \"triggerType\": \"record_changed\",\n \"actionTypes\": [\"create_record\", \"http_request\", \"execute_plugin\", \"send_message\"]\n }\n]`,\n },\n {\n description: \"Filter automations by folder, status, and trigger type.\",\n command:\n 'zinkee --json automations list --folder \"Codex Frontend Demo\" --status active --trigger-type record_changed',\n },\n ],\n \"automations get\": [\n {\n description:\n \"Get the full automation document, including trigger, actions and flow.\",\n command: \"zinkee --json automations get automation-1\",\n response: `{\n \"id\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"name\": \"Codex Trigger Demo 1774278580\",\n \"description\": \"Demo compleja no-webhook para revisar en frontend.\",\n \"status\": \"active\",\n \"folder\": {\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false\n },\n \"trigger\": {\n \"type\": \"record_changed\",\n \"config\": {\n \"schemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldIds\": [\"4dd04e57-2a01-4c49-8728-9cb288bffb8d\"],\n \"conditions\": [\n {\n \"field\": \"4dd04e57-2a01-4c49-8728-9cb288bffb8d\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n },\n \"actions\": [\n {\n \"id\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldMapping\": {\n \"34250412-f016-44c0-9f88-37dd1ddb4b13\": {\n \"rawValue\": \"Created by automation\",\n \"source\": null\n }\n }\n }\n },\n {\n \"id\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"type\": \"http_request\",\n \"name\": \"Notify ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"headers\": {\"X-Demo\": \"codex\"},\n \"body\": \"{\\\\\"event\\\\\":\\\\\"order.status.changed\\\\\"}\",\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"variables\": {},\n \"authMode\": \"STORED\",\n \"connectionId\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\"\n }\n },\n {\n \"id\": \"dae13307-057f-4c39-817c-4d2dd5898421\",\n \"type\": \"execute_plugin\",\n \"name\": \"Run billing plugin\",\n \"config\": {\n \"pluginId\": \"demo-plugin\",\n \"pluginArgs\": {\n \"mode\": \"safe\"\n }\n }\n }\n ],\n \"flow\": {\n \"entryActionIds\": [\"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\"],\n \"transitions\": [\n {\n \"fromActionId\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"toActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\"\n },\n {\n \"fromActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"toActionId\": \"dae13307-057f-4c39-817c-4d2dd5898421\"\n }\n ]\n }\n}`,\n },\n ],\n \"automations delete\": [\n {\n description: \"Delete an automation. The response mirrors the mutation shape.\",\n command: \"zinkee --json automations delete automation-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations activate\": [\n {\n description: \"Activate an automation (transitions it to status=active).\",\n command: \"zinkee --json automations activate automation-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations deactivate\": [\n {\n description: \"Deactivate an automation (transitions it to status=inactive).\",\n command: \"zinkee --json automations deactivate automation-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations folders list\": [\n {\n description: \"List flat automation folders (non-root plus the root bucket).\",\n command: \"zinkee --json automations folders list\",\n response: `[\n {\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false,\n \"automationCount\": 2\n },\n {\n \"id\": \"8b22282b-3db3-4dd7-87f7-b29365dcf3f6\",\n \"name\": null,\n \"isRoot\": true,\n \"automationCount\": 3\n }\n]`,\n },\n ],\n \"automations folders delete\": [\n {\n description: \"Delete a non-root automation folder by exact name.\",\n command: 'zinkee --json automations folders delete \"Codex Frontend Demo\"',\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false,\n \"automationCount\": 0\n}`,\n },\n ],\n \"automations trigger get\": [\n {\n description:\n \"Get the trigger subresource. Response shape depends on trigger type; here the scheduled variant.\",\n command: \"zinkee --json automations trigger get automation-1\",\n response: `{\n \"type\": \"scheduled\",\n \"config\": {\n \"cronExpression\": \"0 15 10 * * 1\"\n }\n}`,\n },\n ],\n \"automations webhook get\": [\n {\n description:\n \"Get the webhook endpoint companion resource (only exists when the trigger is a webhook).\",\n command: \"zinkee --json automations webhook get automation-1\",\n response: `{\n \"endpointId\": \"b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"endpointUrl\": \"https://hooks.zinkee.com/webhooks/b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"active\": true,\n \"idempotencyKeyJsonPath\": \"$.id\",\n \"eventTypeJsonPath\": \"$.type\",\n \"allowedEventTypes\": [\"frontend.demo.created\"],\n \"fieldMappings\": [\n {\n \"variable\": \"external_id\",\n \"jsonPath\": \"$.data.id\"\n }\n ]\n}`,\n },\n ],\n \"automations webhook delete\": [\n {\n description: \"Delete the webhook endpoint companion resource (returns no body).\",\n command: \"zinkee --json automations webhook delete automation-1\",\n },\n ],\n \"automations actions list\": [\n {\n description: \"List the ordered actions of an automation.\",\n command: \"zinkee --json automations actions list automation-1\",\n response: `[\n {\n \"id\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldMapping\": {\n \"34250412-f016-44c0-9f88-37dd1ddb4b13\": {\n \"rawValue\": \"Created by automation\",\n \"source\": null\n }\n }\n }\n },\n {\n \"id\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"type\": \"http_request\",\n \"name\": \"Notify ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"headers\": {\"X-Demo\": \"codex\"},\n \"body\": \"{\\\\\"event\\\\\":\\\\\"order.status.changed\\\\\"}\",\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"variables\": {},\n \"authMode\": \"STORED\",\n \"connectionId\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\"\n }\n },\n {\n \"id\": \"dae13307-057f-4c39-817c-4d2dd5898421\",\n \"type\": \"execute_plugin\",\n \"name\": \"Run billing plugin\",\n \"config\": {\n \"pluginId\": \"demo-plugin\",\n \"pluginArgs\": {\"mode\": \"safe\"}\n }\n }\n]`,\n },\n ],\n \"automations actions delete\": [\n {\n description: \"Delete one action from an automation.\",\n command: \"zinkee --json automations actions delete automation-1 action-1\",\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n ],\n \"automations flow get\": [\n {\n description: \"Get the flow subresource (entry actions and transitions).\",\n command: \"zinkee --json automations flow get automation-1\",\n response: `{\n \"entryActionIds\": [\"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\"],\n \"transitions\": [\n {\n \"fromActionId\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"toActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\"\n },\n {\n \"fromActionId\": \"784d0971-bd8f-4b05-87eb-3392d1570273\",\n \"toActionId\": \"dae13307-057f-4c39-817c-4d2dd5898421\"\n }\n ]\n}`,\n },\n ],\n \"automations plugins list\": [\n {\n description: \"List active workspace plugins available for execute_plugin actions.\",\n command: \"zinkee --json automations plugins list\",\n response: `[\n {\n \"id\": \"demo-plugin\",\n \"name\": \"Demo Plugin\",\n \"active\": true,\n \"description\": \"Example plugin for automations\",\n \"properties\": {\n \"version\": \"1.0\"\n }\n }\n]`,\n },\n ],\n \"automations plugins get\": [\n {\n description: \"Get one plugin by id.\",\n command: \"zinkee --json automations plugins get demo-plugin\",\n response: `{\n \"id\": \"demo-plugin\",\n \"name\": \"Demo Plugin\",\n \"active\": true,\n \"description\": \"Example plugin for automations\",\n \"properties\": {\n \"version\": \"1.0\"\n }\n}`,\n },\n ],\n \"automations connections list\": [\n {\n description: \"List stored workspace connections (secrets are never returned).\",\n command: \"zinkee --json automations connections list\",\n response: `[\n {\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n }\n }\n]`,\n },\n ],\n \"automations connections get\": [\n {\n description: \"Get one stored connection by id.\",\n command: \"zinkee --json automations connections get connection-1\",\n response: `{\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"ownerMemberId\": \"6c8a3e0d-7b1f-4c98-a2e9-8b9a2e3f5b14\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"createdAt\": \"2026-04-21T09:00:00Z\",\n \"updatedAt\": \"2026-04-21T09:00:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"updatedBy\": \"developer@zinkee.com\"\n}`,\n },\n ],\n \"automations connections delete\": [\n {\n description: \"Delete one stored connection (returns no body).\",\n command: \"zinkee --json automations connections delete connection-1\",\n },\n ],\n \"automations create\": [\n {\n description:\n \"Create a scheduled automation with description and target folder. Safe first example because it does not depend on workspace schemas.\",\n command:\n 'zinkee --json automations create --name \"Nightly invoice sync\" --description \"Runs every Monday morning\" --folder cdfc14e3-3169-4ffb-8d9b-b11858a9240f --trigger-type scheduled --cron \"0 15 10 * * 1\"',\n raw: `{\n \"name\": \"Nightly invoice sync\",\n \"description\": \"Runs every Monday morning\",\n \"folderId\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"trigger\": {\n \"type\": \"scheduled\",\n \"config\": {\n \"cronExpression\": \"0 15 10 * * 1\"\n }\n }\n}`,\n response: `{\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"webhookEndpoint\": null\n}`,\n },\n {\n description:\n \"Create a record-created automation with an 'is not empty' condition. Replace 'leads' and 'status' with real schema/field slugs or UUIDs.\",\n command:\n `zinkee --json automations create --name \"Lead welcome\" --trigger-type record_created --trigger-schema leads --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"name\": \"Lead welcome\",\n \"trigger\": {\n \"type\": \"record_created\",\n \"config\": {\n \"schemaId\": \"leads\",\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n }\n}`,\n },\n {\n description:\n \"Create a record-changed automation watching a single field, with an 'is not empty' condition. Replace 'orders' and 'status' with values from your workspace.\",\n command:\n `zinkee --json automations create --name \"Order status sync\" --trigger-type record_changed --trigger-schema orders --trigger-field status --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"name\": \"Order status sync\",\n \"trigger\": {\n \"type\": \"record_changed\",\n \"config\": {\n \"schemaId\": \"orders\",\n \"fieldIds\": [\"status\"],\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n }\n}`,\n },\n ],\n \"automations update\": [\n {\n description:\n \"Update automation description and move it to a folder. Supported patch paths: name, description, folderId.\",\n command:\n 'zinkee --json automations update automation-1 --description \"Updated by an agent\" --folder cdfc14e3-3169-4ffb-8d9b-b11858a9240f',\n raw: `{\n \"set\": {\n \"description\": \"Updated by an agent\",\n \"folderId\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\"\n }\n}`,\n },\n {\n description:\n \"Clear the folder assignment by combining an explicit unset through the raw payload.\",\n command:\n 'zinkee --json automations update automation-1 --raw \\'{\"unset\":[\"folderId\"]}\\'',\n raw: `{\n \"unset\": [\"folderId\"]\n}`,\n },\n ],\n \"automations trigger set\": [\n {\n description: \"Replace the trigger with a scheduled (cron) trigger.\",\n command:\n 'zinkee --json automations trigger set automation-1 --trigger-type scheduled --cron \"0 15 10 * * 1\"',\n raw: `{\n \"type\": \"scheduled\",\n \"config\": {\n \"cronExpression\": \"0 15 10 * * 1\"\n }\n}`,\n },\n {\n description:\n \"Replace the trigger with a record-created trigger plus an 'is not empty' condition. Agents should provide at least one meaningful condition.\",\n command:\n `zinkee --json automations trigger set automation-1 --trigger-type record_created --trigger-schema orders --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"type\": \"record_created\",\n \"config\": {\n \"schemaId\": \"orders\",\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n}`,\n },\n {\n description:\n \"Replace the trigger with a record-changed trigger watching one field, with an 'is not empty' condition on that field.\",\n command:\n `zinkee --json automations trigger set automation-1 --trigger-type record_changed --trigger-schema orders --trigger-field status --condition-json '{\"field\":\"status\",\"comparator\":\"ine\",\"values\":[{\"rawValue\":\"\",\"source\":null}]}'`,\n raw: `{\n \"type\": \"record_changed\",\n \"config\": {\n \"schemaId\": \"orders\",\n \"fieldIds\": [\"status\"],\n \"conditions\": [\n {\n \"field\": \"status\",\n \"comparator\": \"ine\",\n \"values\": [{\"rawValue\": \"\", \"source\": null}]\n }\n ]\n }\n}`,\n },\n {\n description: \"Replace the trigger with a webhook trigger that reuses an existing webhook endpoint id.\",\n command:\n \"zinkee --json automations trigger set automation-1 --trigger-type webhook --webhook-endpoint-id b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n raw: `{\n \"type\": \"webhook\",\n \"config\": {\n \"webhookEndpointId\": \"b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\"\n }\n}`,\n },\n ],\n \"automations actions add\": [\n {\n description:\n \"Add a create-record action with two literal field mappings. Populate visible fieldMapping entries so the frontend form is complete.\",\n command:\n 'zinkee --json automations actions add automation-1 --type create_record --name \"Create follow-up order\" --target-schema followups --map status=pending --map description=\"Created by automation\"',\n raw: `{\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"followups\",\n \"fieldMapping\": {\n \"status\": {\n \"rawValue\": \"pending\",\n \"source\": null\n },\n \"description\": {\n \"rawValue\": \"Created by automation\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Add an update-record action that targets the trigger record. Pair --use-trigger-record with --map to rewrite fields on the record that fired the automation.\",\n command:\n 'zinkee --json automations actions add automation-1 --type update_record --name \"Mark order as processed\" --target-schema orders --use-trigger-record --map status=processed',\n raw: `{\n \"type\": \"update_record\",\n \"name\": \"Mark order as processed\",\n \"config\": {\n \"targetSchemaId\": \"orders\",\n \"fieldMapping\": {\n \"status\": {\n \"rawValue\": \"processed\",\n \"source\": null\n }\n },\n \"useTriggerRecord\": true\n }\n}`,\n },\n {\n description: \"Add a search-records action scoped to a target schema.\",\n command:\n 'zinkee --json automations actions add automation-1 --type search_records --name \"Find related invoices\" --target-schema orders',\n raw: `{\n \"type\": \"search_records\",\n \"name\": \"Find related invoices\",\n \"config\": {\n \"targetSchemaId\": \"orders\"\n }\n}`,\n },\n {\n description:\n \"Add a search-records action whose condition pulls its value from the trigger payload using --condition-json.\",\n command:\n `zinkee --json automations actions add automation-1 --type search_records --name \"Find duplicates\" --target-schema followups --condition-json '{\"field\":\"email\",\"comparator\":\"eq\",\"values\":[{\"rawValue\":null,\"source\":{\"type\":\"TRIGGER\",\"id\":\"f1e1d000-0000-0000-0000-000000000005\"}}]}'`,\n raw: `{\n \"type\": \"search_records\",\n \"name\": \"Find duplicates\",\n \"config\": {\n \"targetSchemaId\": \"followups\",\n \"conditions\": [\n {\n \"field\": \"email\",\n \"comparator\": \"eq\",\n \"values\": [\n {\n \"rawValue\": null,\n \"source\": {\n \"type\": \"TRIGGER\",\n \"id\": \"f1e1d000-0000-0000-0000-000000000005\"\n }\n }\n ]\n }\n ]\n }\n}`,\n },\n {\n description:\n \"Add an HTTP request action using a stored workspace connection for authentication.\",\n command:\n 'zinkee --json automations actions add automation-1 --type http_request --name \"Notify external ERP\" --method POST --url https://example.com/integrations/order-status --header X-Demo=codex --content-type application/json --timeout-ms 5000 --auth-mode STORED --connection connection-1',\n raw: `{\n \"type\": \"http_request\",\n \"name\": \"Notify external ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"headers\": {\n \"X-Demo\": \"codex\"\n },\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"authMode\": \"STORED\",\n \"connectionId\": \"connection-1\"\n }\n}`,\n },\n {\n description:\n \"Issue a previously prepared draft using native invoicing. The trigger record belongs to schemaId; the configured series assigns the invoice number.\",\n command:\n 'zinkee --json automations actions add automation-1 --type invoicing --name \"Issue invoice\" --operation issue --schema 68d2c7be-4392-42de-b5ae-625ad79cfc3c',\n raw: `{\n \"type\": \"invoicing\",\n \"name\": \"Issue invoice\",\n \"config\": {\n \"operation\": \"issue\",\n \"schemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"inputs\": {}\n }\n}`,\n },\n {\n description: \"Prepare a request from the visible invoice; review it in the normal corrections table before execution.\",\n command: \"zinkee --json automations actions add automation-1 --type invoicing --name \\\"Prepare fiscal correction\\\" --operation prepare_fiscal_correction --schema 68d2c7be-4392-42de-b5ae-625ad79cfc3c --input correctionSchemaId=35443450-0000-4000-8000-000000000001\",\n raw: `{\n \"type\": \"invoicing\",\n \"name\": \"Prepare fiscal correction\",\n \"config\": {\n \"operation\": \"prepare_fiscal_correction\",\n \"schemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"inputs\": {\n \"correctionSchemaId\": {\n \"rawValue\": \"35443450-0000-4000-8000-000000000001\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description: \"Execute the reviewed request from its own trigger row. Returning PENDING confirms durable work, not AEAT acceptance. Repeating the request recovers it.\",\n command: \"zinkee --json automations actions add automation-1 --type invoicing --name \\\"Execute fiscal correction\\\" --operation execute_fiscal_correction --schema 35443450-0000-4000-8000-000000000001 --input reason=\\\"Correct the fiscal registration\\\" --input recipientNifConfirmed=false\",\n raw: `{\n \"type\": \"invoicing\",\n \"name\": \"Execute fiscal correction\",\n \"config\": {\n \"operation\": \"execute_fiscal_correction\",\n \"schemaId\": \"35443450-0000-4000-8000-000000000001\",\n \"inputs\": {\n \"reason\": {\n \"rawValue\": \"Correct the fiscal registration\",\n \"source\": null\n },\n \"recipientNifConfirmed\": {\n \"rawValue\": \"false\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Add an execute-plugin action with structured plugin arguments. Replace 'demo-plugin' with an active id from 'zinkee --json automations plugins list'.\",\n command:\n `zinkee --json automations actions add automation-1 --type execute_plugin --name \"Run billing plugin\" --plugin demo-plugin --arg mode=safe --arg-json steps='[\"one\",\"two\"]'`,\n raw: `{\n \"type\": \"execute_plugin\",\n \"name\": \"Run billing plugin\",\n \"config\": {\n \"pluginId\": \"demo-plugin\",\n \"pluginArgs\": {\n \"mode\": \"safe\",\n \"steps\": [\"one\", \"two\"]\n }\n }\n}`,\n },\n {\n description:\n \"Add a send-message action. --to maps to fieldMapping.recipients and --message maps to fieldMapping.body. Values are wrapped in {rawValue, source} like every other automation field mapping; use --map / --map-json for extra keys.\",\n command:\n `zinkee --json automations actions add automation-1 --type send_message --name \"Notify customer\" --to customer@example.com --subject \"Your order status has changed\" --message \"Hello, your order is now processed.\"`,\n raw: `{\n \"type\": \"send_message\",\n \"name\": \"Notify customer\",\n \"config\": {\n \"fieldMapping\": {\n \"recipients\": {\n \"rawValue\": \"customer@example.com\",\n \"source\": null\n },\n \"subject\": {\n \"rawValue\": \"Your order status has changed\",\n \"source\": null\n },\n \"body\": {\n \"rawValue\": \"Hello, your order is now processed.\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Add a generate-document action. The renderer reads the template, writes the file, and stores its id in the target FileField of the target schema.\",\n command:\n 'zinkee --json automations actions add automation-1 --type generate_document --name \"Generate invoice PDF\" --document-template 6c08673e-f8a6-44d2-8c91-d09eca911f8f --target-schema 68d2c7be-4392-42de-b5ae-625ad79cfc3c --target-file-field c8edbde8-a361-4e9f-a39a-2e88971f21a7',\n raw: `{\n \"type\": \"generate_document\",\n \"name\": \"Generate invoice PDF\",\n \"config\": {\n \"documentTemplateId\": \"6c08673e-f8a6-44d2-8c91-d09eca911f8f\",\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"targetFileFieldId\": \"c8edbde8-a361-4e9f-a39a-2e88971f21a7\"\n }\n}`,\n },\n ],\n \"automations actions update\": [\n {\n description:\n \"Replace an update-record action so it targets the trigger record. Conditions are stripped automatically when --use-trigger-record is provided.\",\n command:\n 'zinkee --json automations actions update automation-1 action-1 --type update_record --name \"Update trigger record\" --target-schema followups --map status=ready --use-trigger-record',\n raw: `{\n \"type\": \"update_record\",\n \"name\": \"Update trigger record\",\n \"config\": {\n \"targetSchemaId\": \"followups\",\n \"fieldMapping\": {\n \"status\": {\n \"rawValue\": \"ready\",\n \"source\": null\n }\n },\n \"useTriggerRecord\": true\n }\n}`,\n response: `{\n \"id\": \"a657c49a-8ca1-4ec1-af86-d0dac4fc49b2\",\n \"type\": \"create_record\",\n \"name\": \"Create follow-up order\",\n \"config\": {\n \"targetSchemaId\": \"68d2c7be-4392-42de-b5ae-625ad79cfc3c\",\n \"fieldMapping\": {\n \"34250412-f016-44c0-9f88-37dd1ddb4b13\": {\n \"rawValue\": \"Updated by an agent\",\n \"source\": null\n }\n }\n }\n}`,\n },\n {\n description:\n \"Replace an HTTP request action, keeping it authenticated through a stored connection.\",\n command:\n 'zinkee --json automations actions update automation-1 action-1 --type http_request --name \"Notify external ERP\" --method POST --url https://example.com/integrations/order-status --content-type application/json --timeout-ms 5000 --auth-mode STORED --connection connection-1',\n raw: `{\n \"type\": \"http_request\",\n \"name\": \"Notify external ERP\",\n \"config\": {\n \"method\": \"POST\",\n \"url\": \"https://example.com/integrations/order-status\",\n \"contentType\": \"application/json\",\n \"timeoutMs\": 5000,\n \"authMode\": \"STORED\",\n \"connectionId\": \"connection-1\"\n }\n}`,\n },\n {\n description:\n \"Replace a send-message action. --to maps to fieldMapping.recipients and --message maps to fieldMapping.body; values are wrapped in {rawValue, source}.\",\n command:\n `zinkee --json automations actions update automation-1 action-1 --type send_message --name \"Notify customer\" --to customer@example.com --subject \"Your order status has changed\" --message \"Hello, your order is now processed.\"`,\n raw: `{\n \"type\": \"send_message\",\n \"name\": \"Notify customer\",\n \"config\": {\n \"fieldMapping\": {\n \"recipients\": {\n \"rawValue\": \"customer@example.com\",\n \"source\": null\n },\n \"subject\": {\n \"rawValue\": \"Your order status has changed\",\n \"source\": null\n },\n \"body\": {\n \"rawValue\": \"Hello, your order is now processed.\",\n \"source\": null\n }\n }\n }\n}`,\n },\n ],\n \"automations flow set\": [\n {\n description:\n \"Set one entry action and chain two transitions (action-1 → action-2 → action-3).\",\n command:\n \"zinkee --json automations flow set automation-1 --entry action-1 --transition action-1:action-2 --transition action-2:action-3\",\n raw: `{\n \"entryActionIds\": [\"action-1\"],\n \"transitions\": [\n {\n \"fromActionId\": \"action-1\",\n \"toActionId\": \"action-2\"\n },\n {\n \"fromActionId\": \"action-2\",\n \"toActionId\": \"action-3\"\n }\n ]\n}`,\n },\n ],\n \"automations webhook set\": [\n {\n description:\n \"Create or update the webhook endpoint companion resource with idempotency key, event type filter, and a field mapping. This config is separate from the webhook trigger itself.\",\n command:\n `zinkee --json automations webhook set automation-1 --idempotency-key-path \"$.id\" --event-type-path \"$.type\" --allowed-event-type frontend.demo.created --field-mapping '{\"variable\":\"external_id\",\"jsonPath\":\"$.data.id\"}' --active`,\n raw: `{\n \"active\": true,\n \"idempotencyKeyJsonPath\": \"$.id\",\n \"eventTypeJsonPath\": \"$.type\",\n \"allowedEventTypes\": [\"frontend.demo.created\"],\n \"fieldMappings\": [\n {\n \"variable\": \"external_id\",\n \"jsonPath\": \"$.data.id\"\n }\n ]\n}`,\n response: `{\n \"endpointId\": \"b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"automationId\": \"d2df2478-2513-4ecb-a2aa-2cea8c3d614a\",\n \"endpointUrl\": \"https://hooks.zinkee.com/webhooks/b3cb4283-97ab-4d94-9e6f-82d0ee5cee24\",\n \"active\": true,\n \"idempotencyKeyJsonPath\": \"$.id\",\n \"eventTypeJsonPath\": \"$.type\",\n \"allowedEventTypes\": [\"frontend.demo.created\"],\n \"fieldMappings\": [\n {\n \"variable\": \"external_id\",\n \"jsonPath\": \"$.data.id\"\n }\n ]\n}`,\n },\n ],\n \"automations connections create\": [\n {\n description:\n \"Create a stored workspace connection for http_request actions. Secret values are write-only and never returned on read.\",\n command:\n `zinkee --json automations connections create --name \"ERP API Key\" --type api_key --scope workspace --config '{\"headerName\":\"Authorization\"}' --secret apiKey=super-secret --active`,\n raw: `{\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"secret\": {\n \"apiKey\": \"super-secret\"\n },\n \"active\": true\n}`,\n response: `{\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"ownerMemberId\": \"6c8a3e0d-7b1f-4c98-a2e9-8b9a2e3f5b14\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"createdAt\": \"2026-04-21T09:00:00Z\",\n \"updatedAt\": \"2026-04-21T09:00:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"updatedBy\": \"developer@zinkee.com\"\n}`,\n },\n ],\n \"automations connections update\": [\n {\n description:\n \"Patch an existing stored connection. Use set.secret only when rotating secrets.\",\n command:\n `zinkee --json automations connections update connection-1 --raw '{\"set\":{\"name\":\"ERP API Key Updated\",\"config\":{\"headerName\":\"Authorization\"}}}'`,\n raw: `{\n \"set\": {\n \"name\": \"ERP API Key Updated\",\n \"config\": {\n \"headerName\": \"Authorization\"\n }\n }\n}`,\n response: `{\n \"id\": \"4fc20b5c-9353-4991-b68e-1027cb674ed4\",\n \"name\": \"ERP API Key Updated\",\n \"type\": \"api_key\",\n \"scope\": \"workspace\",\n \"ownerMemberId\": \"6c8a3e0d-7b1f-4c98-a2e9-8b9a2e3f5b14\",\n \"active\": true,\n \"config\": {\n \"headerName\": \"Authorization\"\n },\n \"createdAt\": \"2026-04-21T09:00:00Z\",\n \"updatedAt\": \"2026-04-21T10:15:00Z\",\n \"createdBy\": \"developer@zinkee.com\",\n \"updatedBy\": \"developer@zinkee.com\"\n}`,\n },\n ],\n \"automations folders create\": [\n {\n description: \"Create one flat automation folder.\",\n command: 'zinkee --json automations folders create --name \"Codex Frontend Demo\"',\n raw: `{\n \"name\": \"Codex Frontend Demo\"\n}`,\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false,\n \"automationCount\": 0\n}`,\n },\n ],\n \"automations folders update\": [\n {\n description: \"Rename a non-root automation folder. The folder argument accepts a UUID or an exact name.\",\n command:\n 'zinkee --json automations folders update \"Codex Frontend Demo\" --name \"Codex Frontend Demo Updated\"',\n raw: `{\n \"name\": \"Codex Frontend Demo Updated\"\n}`,\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo Updated\",\n \"isRoot\": false,\n \"automationCount\": 2\n}`,\n },\n ],\n \"automations folders move\": [\n {\n description: \"Move one automation into a target folder by exact folder name.\",\n command: 'zinkee --json automations folders move automation-1 --to \"Codex Frontend Demo\"',\n raw: `{\n \"automationId\": \"automation-1\",\n \"targetFolderId\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\"\n}`,\n response: `{\n \"id\": \"cdfc14e3-3169-4ffb-8d9b-b11858a9240f\",\n \"name\": \"Codex Frontend Demo\",\n \"isRoot\": false\n}`,\n },\n ],\n \"document-templates list\": [\n {\n description:\n \"List every document template in the workspace. Each asset's link is a relative path to the asset download endpoint, ready to call without composition.\",\n command: \"zinkee --json document-templates list\",\n response: `[\n {\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Requirements.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-20T14:30:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"updater@example.com\"\n }\n]`,\n },\n ],\n \"document-templates get\": [\n {\n description:\n \"Look up one template by UUID. The CLI filters the list endpoint locally (the backend does not expose a get-one route).\",\n command:\n \"zinkee --json document-templates get 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Requirements.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-20T14:30:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"creator@example.com\"\n}`,\n },\n {\n description:\n \"Look up by exact template name. Names are unique within the workspace; ambiguity is reported as an error.\",\n command: 'zinkee --json document-templates get \"Quarterly report\"',\n },\n ],\n \"document-templates create\": [\n {\n description:\n \"Typical create: empty template by name. Assets are uploaded afterwards via document-templates assets add.\",\n command: 'zinkee --json document-templates create --name \"Quarterly report\"',\n raw: `{\n \"name\": \"Quarterly report\",\n \"assets\": []\n}`,\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-15T10:00:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"creator@example.com\"\n}`,\n },\n {\n description:\n \"Create with pre-existing asset records via --raw. Used for import/migration flows where the assets already exist elsewhere; the typical UX is to create empty and upload via assets add.\",\n command:\n `zinkee --json document-templates create --raw '{\"name\":\"Annual report\",\"assets\":[{\"id\":\"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\"name\":\"Cover.docx\",\"link\":\"/existing/cover.docx\"},{\"id\":\"3f2e1d0c-9b8a-7654-3210-fedcba987654\",\"name\":\"Appendix.docx\",\"link\":\"/existing/appendix.docx\"}]}'`,\n raw: `{\n \"name\": \"Annual report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Cover.docx\",\n \"link\": \"/existing/cover.docx\"\n },\n {\n \"id\": \"3f2e1d0c-9b8a-7654-3210-fedcba987654\",\n \"name\": \"Appendix.docx\",\n \"link\": \"/existing/appendix.docx\"\n }\n ]\n}`,\n },\n ],\n \"document-templates update\": [\n {\n description:\n \"Rename a template. The template argument accepts a UUID or an exact current name. Only the name is updatable through this endpoint; assets are managed via the assets subcommands.\",\n command:\n 'zinkee --json document-templates update \"Quarterly report\" --name \"Annual report\"',\n raw: `{\n \"name\": \"Annual report\"\n}`,\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Annual report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"Requirements.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-22T09:15:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"updater@example.com\"\n}`,\n },\n ],\n \"document-templates delete\": [\n {\n description:\n \"Delete a template and remove its asset files from storage. Record fields that reference previously generated documents are not modified.\",\n command:\n \"zinkee --json document-templates delete 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"deleted\": true\n}`,\n },\n ],\n \"document-templates assets add\": [\n {\n description:\n \"Upload a local file as an asset of a template. The CLI sends a multipart form with a part named \\\"file\\\"; the asset display name defaults to the uploaded filename.\",\n command:\n 'zinkee --json document-templates assets add \"Quarterly report\" ./contract.docx',\n response: `{\n \"id\": \"7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e\",\n \"name\": \"Quarterly report\",\n \"assets\": [\n {\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"name\": \"contract.docx\",\n \"link\": \"/api/v2/document-templates/7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e/assets/9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f/download\"\n }\n ],\n \"createdAt\": \"2026-01-15T10:00:00Z\",\n \"updatedAt\": \"2026-01-22T09:15:00Z\",\n \"createdBy\": \"creator@example.com\",\n \"updatedBy\": \"updater@example.com\"\n}`,\n },\n {\n description:\n \"Override the asset display name with --name (otherwise the uploaded filename is used).\",\n command:\n 'zinkee --json document-templates assets add \"Quarterly report\" ./contract.docx --name \"Customer Contract\"',\n },\n ],\n \"document-templates assets delete\": [\n {\n description: \"Delete one asset from a template and remove its file from storage.\",\n command:\n \"zinkee --json document-templates assets delete 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e 9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n response: `{\n \"id\": \"9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f\",\n \"deleted\": true\n}`,\n },\n ],\n \"document-templates assets download\": [\n {\n description:\n \"Download asset bytes to disk. The CLI streams the raw bytes to --output; in --json mode --output is required and the JSON envelope only carries metadata.\",\n command:\n \"zinkee --json document-templates assets download 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e 9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f --output ./contract.docx\",\n },\n {\n description:\n \"Stream asset bytes to stdout (omit --json and --output). Useful for piping into other tools.\",\n command:\n \"zinkee document-templates assets download 7c4a8d3f-1b2e-4a5c-9d6e-1f2a3b4c5d6e 9e8d7c6b-5a4f-3e2d-1c0b-9a8b7c6d5e4f > contract.docx\",\n },\n ],\n};\n\nfunction buildSchemaFieldCreateExamples(type?: string): readonly CommandExample[] {\n const definitions = getSchemaFieldTypeDefinitions();\n const selectedDefinition = resolveSchemaFieldType(type);\n const filteredDefinitions = selectedDefinition\n ? definitions.filter((definition) => definition.key === selectedDefinition.key)\n : definitions;\n\n const payloads = filteredDefinitions.flatMap((definition) => definition.examplePayloads);\n\n const flagExamples: CommandExample[] =\n selectedDefinition === undefined || selectedDefinition.key === \"text\"\n ? [\n {\n description: \"Text field with a description.\",\n command:\n 'zinkee --json schemas fields create contacts --type text --slug customer-name --label \"Customer Name\" --description \"Primary name shown for the customer\"',\n raw: `{\n \"type\": \"TextField\",\n \"slug\": \"customer-name\",\n \"label\": \"Customer Name\",\n \"description\": \"Primary name shown for the customer\"\n}`,\n },\n ]\n : [];\n\n return [\n ...flagExamples,\n ...payloads.map((example, index) => {\n const slug =\n typeof example.payload.slug === \"string\" ? example.payload.slug : \"field\";\n const command = `zinkee --json schemas fields create contacts --raw '${JSON.stringify(example.payload)}'`;\n\n if (index === 0) {\n return {\n description: example.name,\n command,\n response: `{\n \"schemaId\": \"2eb8bdcf-6d9c-4fbb-9018-7fa8180f4c5e\",\n \"fieldId\": \"a8f1d7e3-2b5c-4d9e-8a1b-3c4d5e6f7890\",\n \"slug\": \"${slug}\"\n}`,\n };\n }\n\n return {\n description: example.name,\n command,\n };\n }),\n ];\n}\n\nexport function getCommandExamples(\n commandName: string,\n filters: { type?: string } = {},\n): readonly CommandExample[] {\n const examples =\n commandName === \"schemas fields create\"\n ? buildSchemaFieldCreateExamples(filters.type)\n : (specificExamples[commandName] ?? []);\n\n return examples.map((example) => withResponseEnvelope(example, commandName));\n}\n\n// The CLI's --json output wraps every payload in a { data, meta } envelope (see\n// buildJsonSuccess in ./output). Example \"response\" bodies are authored as the\n// bare data payload for readability, so we wrap them here to match what the\n// command actually prints. Non-JSON responses (if any) are left untouched.\nfunction withResponseEnvelope(\n example: CommandExample,\n commandName: string,\n): CommandExample {\n if (example.response === undefined) {\n return example;\n }\n\n let payload: unknown;\n try {\n payload = JSON.parse(example.response);\n } catch {\n return example;\n }\n\n return {\n ...example,\n response: JSON.stringify(buildJsonSuccess(payload, { command: commandName }), null, 2),\n };\n}\n"],"mappings":"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;AAAA,IACb;AAAA,MACE,aAAa;AAAA,MACb,SAAS;AAAA,MACT,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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","names":[]}
|