-
-
Save carlos-aguayo/ae33ec9259bd92013a9531559e3a1fd0 to your computer and use it in GitHub Desktop.
| {"ts": "2026-04-14T18:26:54.845055+00:00", "run_id": "202a3ddc-f01b-4162-be6d-4d17a08a6a47", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 185239, "output_tokens": 3504, "total_tokens": 188743, "tool_calls": 6, "duration_seconds": 81.97332906723022} | |
| {"ts": "2026-04-14T18:27:14.749647+00:00", "run_id": "7eb3baa8-f78e-48b4-8441-c67848bf230c", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 104256, "output_tokens": 585, "total_tokens": 104841, "tool_calls": 3, "duration_seconds": 19.584840059280396} | |
| {"ts": "2026-04-14T18:27:43.597923+00:00", "run_id": "f05dab06-91c0-49ce-bbcf-9bc95c3d9523", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 136295, "output_tokens": 655, "total_tokens": 136950, "tool_calls": 4, "duration_seconds": 27.49408507347107} | |
| {"ts": "2026-04-14T18:28:09.859598+00:00", "run_id": "44b8fe38-aee8-4017-915b-1d114540bfa1", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 117252, "output_tokens": 803, "total_tokens": 118055, "tool_calls": 3, "duration_seconds": 25.97020697593689} | |
| {"ts": "2026-04-14T18:28:32.607362+00:00", "run_id": "4208a2a9-054d-4514-bcaa-f8c77aacfaf7", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 120361, "output_tokens": 662, "total_tokens": 121023, "tool_calls": 3, "duration_seconds": 22.479691982269287} | |
| {"ts": "2026-04-14T18:29:40.632542+00:00", "run_id": "694e1a1e-53bb-4767-91c6-f397f10d5705", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 305266, "output_tokens": 2355, "total_tokens": 307621, "tool_calls": 7, "duration_seconds": 66.78283715248108} | |
| {"ts": "2026-04-14T18:32:12.946137+00:00", "run_id": "c358476a-63eb-4eb0-9735-6afa75fc123d", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 136688, "output_tokens": 480, "total_tokens": 137168, "tool_calls": 3, "duration_seconds": 147.39014983177185} | |
| {"ts": "2026-04-14T18:34:43.768550+00:00", "run_id": "4b0e2dcc-f7d1-493a-84d9-9a22d78ee01f", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 530584, "output_tokens": 4351, "total_tokens": 534935, "tool_calls": 16, "duration_seconds": 149.85091996192932} | |
| {"ts": "2026-04-14T18:35:24.887084+00:00", "run_id": "1866c9df-6032-47fd-9e45-e9744dbaaf8b", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 183236, "output_tokens": 1623, "total_tokens": 184859, "tool_calls": 4, "duration_seconds": 40.847774028778076} | |
| {"ts": "2026-04-14T18:36:20.050731+00:00", "run_id": "b0b1a0b8-5d40-4a68-b73d-2132e145bada", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 258294, "output_tokens": 1761, "total_tokens": 260055, "tool_calls": 6, "duration_seconds": 54.868712186813354} | |
| {"ts": "2026-04-14T18:36:37.701991+00:00", "run_id": "11b4f6ec-9941-4bf3-b18c-1323f120e768", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 105831, "output_tokens": 554, "total_tokens": 106385, "tool_calls": 2, "duration_seconds": 17.30610489845276} | |
| {"ts": "2026-04-14T18:37:04.968196+00:00", "run_id": "39560f92-0382-4aca-92d4-6a04c56b78d8", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 149350, "output_tokens": 1104, "total_tokens": 150454, "tool_calls": 3, "duration_seconds": 27.030268907546997} | |
| {"ts": "2026-04-14T18:37:21.655953+00:00", "run_id": "ecb17cad-80ea-454b-9674-cbd5fb2c6f1a", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 107857, "output_tokens": 647, "total_tokens": 108504, "tool_calls": 2, "duration_seconds": 16.431235790252686} | |
| {"ts": "2026-04-14T18:37:48.690870+00:00", "run_id": "989874dc-c4bf-41ac-815e-c0aefc24becb", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 30614, "output_tokens": 1574, "total_tokens": 32188, "tool_calls": 1, "duration_seconds": 25.831674098968506} | |
| {"ts": "2026-04-14T18:38:48.471253+00:00", "run_id": "989874dc-c4bf-41ac-815e-c0aefc24becb", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 47461, "output_tokens": 1719, "total_tokens": 49180, "tool_calls": 1, "duration_seconds": 86.55820393562317} | |
| {"ts": "2026-04-14T18:42:58.266016+00:00", "run_id": "989874dc-c4bf-41ac-815e-c0aefc24becb", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IN_PROGRESS", "input_tokens": 207485, "output_tokens": 3662, "total_tokens": 211147, "tool_calls": 10, "duration_seconds": 336.2714149951935} | |
| {"ts": "2026-04-14T18:43:22.934712+00:00", "run_id": "f21fbf57-1f61-4070-a138-0d1c7129b648", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 152513, "output_tokens": 709, "total_tokens": 153222, "tool_calls": 4, "duration_seconds": 24.378917932510376} | |
| {"ts": "2026-04-14T18:43:50.643670+00:00", "run_id": "e8f2a22b-3e35-4d47-82cd-64562c075fa5", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 135407, "output_tokens": 1173, "total_tokens": 136580, "tool_calls": 3, "duration_seconds": 27.438480854034424} | |
| {"ts": "2026-04-14T18:44:13.763162+00:00", "run_id": "c12ca029-79ed-49a4-8e8f-a7c445840f66", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 128619, "output_tokens": 675, "total_tokens": 129294, "tool_calls": 3, "duration_seconds": 21.842490911483765} | |
| {"ts": "2026-04-14T18:45:05.547215+00:00", "run_id": "5ec2bd7b-8b60-4ff7-a449-aa272cb10d1f", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 34523, "output_tokens": 4107, "total_tokens": 38630, "tool_calls": 1, "duration_seconds": 50.8386390209198} | |
| {"ts": "2026-04-14T18:45:56.165806+00:00", "run_id": "5ec2bd7b-8b60-4ff7-a449-aa272cb10d1f", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 55947, "output_tokens": 4404, "total_tokens": 60351, "tool_calls": 1, "duration_seconds": 102.13355708122253} | |
| {"ts": "2026-04-14T18:48:45.099993+00:00", "run_id": "5ec2bd7b-8b60-4ff7-a449-aa272cb10d1f", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IN_PROGRESS", "input_tokens": 290776, "output_tokens": 6510, "total_tokens": 297286, "tool_calls": 10, "duration_seconds": 263.62604093551636} | |
| {"ts": "2026-04-14T18:49:17.270427+00:00", "run_id": "be6e2677-f0df-4caf-9054-e62350f70eec", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 139437, "output_tokens": 1260, "total_tokens": 140697, "tool_calls": 3, "duration_seconds": 31.495301008224487} | |
| {"ts": "2026-04-14T18:49:41.094541+00:00", "run_id": "98b16f43-bfde-4250-a7b4-4aafaf484585", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 32965, "output_tokens": 985, "total_tokens": 33950, "tool_calls": 1, "duration_seconds": 23.48844313621521} | |
| {"ts": "2026-04-14T18:53:08.537320+00:00", "run_id": "98b16f43-bfde-4250-a7b4-4aafaf484585", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IN_PROGRESS", "input_tokens": 207331, "output_tokens": 3310, "total_tokens": 210641, "tool_calls": 12, "duration_seconds": 220.2650170326233} | |
| {"ts": "2026-04-14T18:54:27.762024+00:00", "run_id": "af44b363-363f-4cc5-80fb-959d418d1b6b", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 370802, "output_tokens": 2409, "total_tokens": 373211, "tool_calls": 9, "duration_seconds": 78.81846594810486} | |
| {"ts": "2026-04-14T18:54:52.815591+00:00", "run_id": "c1860949-f95b-4b2e-9e24-9ddf7f6b5478", "session_id": "2af8abf4-4155-48ba-b5dd-b5ce0f9baebc", "status": "IDLE", "input_tokens": 35003, "output_tokens": 1190, "total_tokens": 36193, "tool_calls": 1, "duration_seconds": 23.757054090499878} |
| [2026-04-14T18:25:32.760174+00:00] [c94eb307] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\nCreate a new application based on the instructions below. Suffix the application name with a timestamp in the format YYYYMMDD-HHMM.\\nIf given an application prefix, suffix it with 3 random characters, e.g. 'AT_3RB'.\\nIMPORTANT: This is an automated evaluation. Do not use create_suggestion to ask questions or seek confirmation. If you need to create additional objects (interfaces, expression rules, constants, etc.) to complete a task, create them automatically. Make all decisions autonomously and proceed without waiting for user input.\\n\\nApplication name - \\\"RSM Board Partner\\\"\\nFor all objects, always prefix the app prefix before object name\\n\\nAs a Partner, I want to enter and submit my external board or committee membership information through the Appian site, so that my data is captured accurately and efficiently without requiring administrative rekeying.\\n\\nAcceptance Criteria:\\n* Create a Partner persona group to manage Partner membership and assign appropriate application access and permissions.\\n* The interface must display a standardized data entry form for board/committee membership information\\n* The interface must include mandatory fields: Organization Name, Board/Committee Role, and any other essential fields as defined during requirements gathering. The logged in user's user name is populated automtically.\\n* The system must enforce format validation in real-time: dates must be in a standard format, phone numbers must adhere to a pattern, and all data types must be validated before submission\\n* The interface must validate that all mandatory fields are completed before allowing submission, displaying clear error messages for any missing or invalid data\\n* The interface must provide a \\\"Submit\\\" button to finalize the data entry\\n* When \\\"Submit\\\" is clicked, the system must write the validated data directly to the Appian MariaDB database without requiring any manual intervention\\n* The system must create a timestamped submission record capturing who submitted the data and when for audit purposes\\n* The user must be shown a confirmation message after successful submission indicating their board/committee membership has been recorded\\n* The interface must be accessible only to authenticated internal RSM users via RSM SSO/LDA\\n* The system must preserve the complete audit history, recording creation and update events with timestamp and user information while maintaining access to previous versions of the data\\n\",\"system_prompt\":\"You are a Developer Copilot that helps users create and manage Appian design objects.\\n\\n\\u2554\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2557\\n\\u2551 COMMUNICATION RULES \\u2014 ABSOLUTE, NO EXCEPTIONS \\u2551\\n\\u2551 \\u2551\\n\\u2551 1. NEVER reveal tool names, function names, or internal identifiers to \\u2551\\n\\u2551 the user. Use natural language instead. \\u2551\\n\\u2551 \\u274c \\\"I'll call save_plan\\\" / \\\"Running listRecordTypes\\\" \\u2551\\n\\u2551 \\u2705 \\\"Let me put together a plan\\\" / \\\"I'll check what record types exist\\\" \\u2551\\n\\u2551 \\u2551\\n\\u2551 2. NEVER expose internal planning thoughts, analysis, or reasoning. \\u2551\\n\\u2551 \\u274c \\\"Internal Analysis:\\\" / \\\"Classification: complex multi-step\\\" \\u2551\\n\\u2551 \\u274c \\\"Detecting user story pattern...\\\" / \\\"LAYER 1 \\u2014 BROAD INVENTORY\\\" \\u2551\\n\\u2551 \\u2705 \\\"Let me look at what's already in your application\\\" \\u2551\\n\\u2551 \\u2551\\n\\u2551 3. NEVER outline or summarize a plan before saving it. The plan IS the \\u2551\\n\\u2551 outline \\u2014 don't duplicate it as text. This includes planning phases, \\u2551\\n\\u2551 requirements analysis, data model reasoning, or any internal analysis. \\u2551\\n\\u2551 \\u274c \\\"Here's my plan: 1. Create app 2. Create record...\\\" then save_plan \\u2551\\n\\u2551 \\u274c \\\"I'll start by creating the data model, then build interfaces...\\\" \\u2551\\n\\u2551 \\u2705 \\\"Let me put together a plan based on what I found.\\\" (then save_plan) \\u2551\\n\\u2551 \\u2551\\n\\u2551 4. Every response MUST be either: \\u2551\\n\\u2551 (a) A natural-language message to the user, OR \\u2551\\n\\u2551 (b) A tool call (with NO leaked tool names in accompanying text) \\u2551\\n\\u2551 Never dump raw tool schemas, JSON, or internal state. \\u2551\\n\\u255a\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u2550\\u255d\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated. When creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker). Use this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| AI Agents | prefix + underscore | PascalCase | `HRO_AiAgent_ClaimsTriage` |\\n| AI Skills | prefix + underscore | PascalCase | `HRO_AiSkill_DocumentExtraction` |\\n| Robotic Tasks | prefix + underscore | PascalCase | `HRO_RPA_WatchListScreening` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## MODES OF OPERATION\\n\\nYou operate in exactly five modes. Every user message maps to one of these:\\n\\n**Mode A \\u2014 Describe Capabilities**\\nTell the user what you can help with: creating design objects, building applications, planning multi-step implementations, and providing design guidance. Describe capabilities in natural language \\u2014 refer to what you can do, not the specific tools you use.\\n\\n**Mode B \\u2014 Design Guidance**\\nAnswer the user's questions about Appian design patterns, best practices, data modeling, or architecture. Respond conversationally with your knowledge.\\n\\n**Mode C \\u2014 Suggest Options**\\nWhen the user needs help choosing between approaches or you want to present options, call create_suggestion with the choices. Use this to ask clarifying questions with structured options.\\n\\n\\u26a0\\ufe0f **Suggestion responses**: When the user clicks a suggestion button, the option label is sent back to you as their next message verbatim (e.g., \\\"Begin Execution\\\"). Treat it as the user's answer and act on it immediately \\u2014 do NOT re-ask the question.\\n\\n**Mode D \\u2014 Single Task Execution**\\nWhen the request involves exactly ONE object (create or modify), use execute_task for immediate execution:\\n1. Perform discovery first \\u2014 understand what exists and what the request fully requires\\n2. Confirm the request truly involves only one object\\n3. Call execute_task with description, object_type, object_name, implementation_notes, and discovered_context\\n4. The execution agent handles the actual creation/modification\\n\\nThis applies to ALL single-object requests, including complex ones (record types, interfaces, process models, sites). The user should never see a plan for a single object \\u2014 the agent just does it.\\n\\n**Modifying an existing interface:** If the user wants to change an existing interface (add a field, restyle a section, fix a bug), use Mode D. Set `object_type` to \\\"Interface\\\" and describe the change in `implementation_notes`. The execution agent knows how to edit existing interfaces vs creating new ones.\\n\\n**Mode E \\u2014 Multi-Object Planning**\\nWhen the request requires creating or modifying MORE THAN ONE object:\\n1. Discover what already exists (if APP_UUID is provided \\u2014 see DISCOVERY below)\\n2. If discovery reveals a design question (e.g., reuse existing app? which record type to extend?), call create_suggestion with the options and STOP. Do not plan until the user answers.\\n3. Call get_planning_guidance to load the planning rules\\n4. Call save_plan with the structured steps. A brief message like \\\"Let me put together a plan\\\" is fine, but do NOT outline or summarize the plan before saving it \\u2014 the plan itself is the outline.\\n5. Call create_suggestion to present the plan for user approval\\n6. When the user confirms, call execute_plan\\n\\n### Decision Protocol\\n\\nBefore choosing Mode D or Mode E, you MUST fully understand the scope of the request:\\n1. Perform discovery (check what exists)\\n2. Think through everything the request requires \\u2014 all objects that need to be created or modified\\n3. Count the objects: exactly 1 \\u2192 Mode D. More than 1 \\u2192 Mode E.\\n\\nDo NOT skip discovery and jump to a mode based on surface-level reading of the request.\\n\\n### When to Plan\\n\\nAny request that will result in creating or modifying >1 object MUST go through Mode E. Single-object requests MUST use Mode D.\\n\\nWhen in doubt about whether the request involves one or multiple objects, perform discovery to find out. If still ambiguous, ask the user.\\n\\nUser story-style messages always require Mode E. If the user's message follows the pattern \\\"As a [role], I want [goal] so that [benefit]\\\" or contains acceptance criteria, it describes a multi-object requirement \\u2014 go directly to Mode E.\\n\\n## PLAN LIFECYCLE\\n\\nThese states apply only during Mode E.\\n\\n### Awaiting Confirmation\\n\\nAfter you have saved a plan and are waiting for the user's response:\\n\\n- **User wants to proceed** \\u2192 call execute_plan\\n- **User wants changes** \\u2192 call save_plan with the revised plan (see Plan Revision below)\\n- **User wants to cancel** \\u2192 call cancel_plan\\n- **User asks a question** \\u2192 call create_suggestion with options (e.g., execute as-is, or an alternative)\\n\\nEvery response in this state MUST be a tool call.\\n\\n### Plan Revision\\n\\nWhen the user asks to add, remove, rename, reorder, or change items in a presented plan:\\n\\n1. Start from the COMPLETE list of steps in the current plan\\n2. Apply ONLY the specific change the user requested\\n3. Call save_plan with the full modified plan\\n\\nRevision rules:\\n- Re-emit ALL steps, not just changed ones\\n- Step descriptions and object_names are preserved VERBATIM unless the user explicitly asks to change them\\n- Step count changes ONLY when the user asks to add or remove steps\\n- The structured step format (description, object_type, object_name, implementation_notes, discovered_context) is required \\u2014 same as the initial plan\\n\\n### Plan Completion\\n\\nOnce a plan finishes execution, that plan is done. The user's next message is an independent request \\u2014 classify it fresh using the Modes of Operation above.\\n\\n## DISCOVERY\\n\\nApplication Context: Not provided\\nApplication Prefix: Not yet known\\n\\nBefore acting on a request, understand what already exists.\\n\\n**For Mode D** \\u2014 check whether the target object already exists before calling execute_task.\\n\\n**For Mode E** \\u2014 perform full discovery in two layers:\\n\\n*Layer 1 \\u2014 Broad Inventory:* List the application's existing objects (record types, interfaces, process models, sites, expression rules, groups, constants, AI agents, AI skills, robotic tasks).\\n\\n*Layer 2 \\u2014 Targeted Deep-Dive:* For each object the user's request touches, inspect:\\n- Record types: fields, relationships, existing user filters\\n- Interfaces: definitions, inputs\\n- Process models: configuration\\n- Groups: membership\\n\\nPay special attention to user filters \\u2014 if a record type already has filters configured, the plan must reference them (not recreate them) and any dashboard must use them.\\n\\n**After discovery, decide how to proceed:**\\n- Object exists and user wants to modify it \\u2192 plan the modification\\n- Object exists and user wants something new \\u2192 confirm with user before duplicating\\n- Object doesn't exist \\u2192 plan creation\\n- Object has existing sub-resources that overlap \\u2192 inform user and ask how to proceed\\n\\nIf the user is requesting a modification to or creation of a SINGLE design object, execute it directly \\u2014 do NOT create a plan.\\n\\n**\\u26a0\\ufe0f CRITICAL: Embed discovered UUIDs in plan steps.** The execution agent does NOT see your discovery tool results. Every UUID, group name, or folder reference you discover MUST be included in the step's `discovered_context` field. If you don't embed it, the execution agent will hallucinate wrong values.\\n\\n**\\ud83d\\uded1 NEVER write SAIL code directly.** Always use the generation tools.\\n\\n## PLANNING PHASE TOOL RESTRICTIONS\\n\\nDuring planning, you have READ-ONLY access for discovery only. You may call `list*` and `get*` tools. You MUST NOT call any tools that create, update, delete, or generate objects. If a tool is not a `list*` or `get*` tool, do not call it.\\n\\n## INTERFACE PROCEDURES\\n\\nThe execution agent handles all object creation and modification. In your plan steps or execute_task:\\n- For NEW interfaces: describe what to create. The execution agent knows the creation procedure.\\n- For MODIFYING existing interfaces: describe the change. Include the interface UUID in `discovered_context`. The execution agent knows how to apply edits to existing interfaces.\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"get_planning_guidance\",\"description\":\"Get planning guidelines and step ordering rules. You MUST call this before save_plan for any multi-step request. Returns rules for structuring plans correctly.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:get_planning_guidance\"},{\"toolSpec\":{\"name\":\"save_plan\",\"description\":\"Save a plan and present it to the user for confirmation. Each step MUST be a dict with: description (step title), object_type, object_name, implementation_notes (optional), discovered_context (optional dict of UUIDs/names discovered during planning \\u2014 the execution agent CANNOT see your discovery tool results, only this field). Steps are NOT numbered. They are ordered by dependency. This format applies to both initial plans and revisions.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"Brief plan title\"},\"steps\":{\"type\":\"array\",\"description\":\"Ordered list of implementation steps\",\"items\":{\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"implementation_notes\":{\"type\":\"string\"},\"discovered_context\":{\"type\":\"object\",\"description\":\"UUIDs and names discovered during planning that the execution agent needs\"},\"depends_on\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Task IDs this step depends on\"}},\"required\":[\"description\"]}}},\"required\":[\"steps\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:save_plan\"},{\"toolSpec\":{\"name\":\"execute_plan\",\"description\":\"Execute the saved plan. Call this when the user confirms the plan.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:execute_plan\"},{\"toolSpec\":{\"name\":\"execute_task\",\"description\":\"Execute a single task immediately without user confirmation. Use for simple, low-risk single-object operations (rename, update metadata, add to app, populate data). For complex creation or multi-step work, use save_plan instead. This terminates the planning agent.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"description\":{\"type\":\"string\",\"description\":\"What the task does\"},\"object_type\":{\"type\":\"string\",\"description\":\"Type of object\"},\"object_name\":{\"type\":\"string\",\"description\":\"Name of the object\"},\"implementation_notes\":{\"type\":\"string\",\"description\":\"Details for execution agent\"},\"discovered_context\":{\"type\":\"object\",\"description\":\"UUIDs/names discovered during planning\"}},\"required\":[\"description\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:execute_task\"},{\"toolSpec\":{\"name\":\"cancel_plan\",\"description\":\"Cancel the current plan.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:cancel_plan\"},{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"get_freeform_result\",\"description\":\"Check status and retrieve result of a freeform generation pipeline.\\n\\nArgs:\\n pipelineId: Pipeline identifier returned by generate_freeform_sail.\\n\\nReturns:\\n Dict with status, and sail_code on completion.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"pipelineId\":{\"type\":\"string\"}},\"required\":[\"pipelineId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:get_freeform_result\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"listProcessModelNodeTypes\",\"description\":\"List available process model node types from the palette.\\n\\nReturns all node types including built-in and plugin-provided smart services,\\nwith type (schema local ID), typeName (display name), category, and assignment mode.\\nUse getProcessModelNodeTypeSchema to get the parameter schema for a specific type.\\n\\nNodes with `deprecated: true` are outdated versions \\u2014 always prefer the\\nnon-deprecated equivalent (e.g. use \\\"Write Records and Related Records\\\"\\ninstead of deprecated \\\"Write Records\\\").\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelNodeTypes\"},{\"toolSpec\":{\"name\":\"getProcessModelNodeTypeSchema\",\"description\":\"Get the parameter schema for a specific process model node type.\\n\\nReturns inputs, outputs, assignment mode, and descriptions for each parameter.\\nUse referenceUuid to enrich the schema with context from a referenced object\\n(e.g., integration inputs for Call Integration, subprocess PVs for Subprocess).\\nUse formInterfaceUuid to discover form inputs for attended nodes (e.g., User Input Task).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"type\":{\"description\":\"Node type schema local ID or display name (see listProcessModelNodeTypes)\",\"type\":\"string\"},\"referenceUuid\":{\"type\":\"string\",\"description\":\"UUID of the primary reference object (integration, subprocess PM, record type) for schema enrichment\",\"default\":null},\"formInterfaceUuid\":{\"type\":\"string\",\"description\":\"UUID of the form interface for attended nodes \\u2014 adds form inputs to the schema\",\"default\":null}},\"required\":[\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModelNodeTypeSchema\"},{\"toolSpec\":{\"name\":\"listProcessModelNodes\",\"description\":\"List all nodes in a process model with full configuration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"}},\"required\":[\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelNodes\"},{\"toolSpec\":{\"name\":\"getProcessModelNode\",\"description\":\"Get a single node with full configuration (data, forms, assignment, connections).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"202a3ddc-f01b-4162-be6d-4d17a08a6a47","status":"QUEUED","status_url":"/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status"} | |
| [2026-04-14T18:25:32.849976+00:00] [ffc28327] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status | |
| run_id: 202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:25:32.851658+00:00] [676fc43a] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/messages | |
| run_id: 202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:26:51.546359+00:00] [4c32e61a] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/cancel | |
| run_id: 202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/cancel" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 202 | |
| response: {"run_id":"202a3ddc-f01b-4162-be6d-4d17a08a6a47","graph_id":"react","status":"CANCELED","token_usage":{"input_tokens":137058,"output_tokens":3504,"total_tokens":140562},"tool_calls":6,"duration_seconds":78.84203290939331,"start_time":"1776191132.672986","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:25:32.672986Z","completed_at":"2026-04-14T18:26:51.515019Z","error":null} | |
| [2026-04-14T18:26:54.764574+00:00] [5714fb88] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status | |
| run_id: 202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:26:54.842566+00:00] [c0a53f3d] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| run_id: 202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"202a3ddc-f01b-4162-be6d-4d17a08a6a47","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":185239,"output_tokens":3504,"total_tokens":188743},"tool_calls":6,"duration_seconds":81.97332906723022,"start_time":"1776191132.672986","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:25:32.672986Z","completed_at":"2026-04-14T18:26:54.646315Z","error":null} | |
| [2026-04-14T18:26:54.902521+00:00] [c1f6dace] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status | |
| run_id: 202a3ddc-f01b-4162-be6d-4d17a08a6a47 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/202a3ddc-f01b-4162-be6d-4d17a08a6a47/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:26:55.113388+00:00] [cefaa819] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\n## FULL IMPLEMENTATION PLAN\\n\\n>>> CURRENT TASK: Step 1 of 12\\n Create Application: RSM Board Partner 20250327-1437\\n implementation_notes: Application name: RSM Board Partner 20250327-1437\\nApplication prefix: RSMBP_Q7X\\nDescription: Enables RSM partners to enter and submit external board/committee membership information with real-time validation, audit tracking, and direct database integration. Authenticated internal RSM users via RSM SSO/LDAP can access the system to capture board/committee membership data efficiently without administrative rekeying.\\nApplication type: data_entry\\n\\n [\\u25cb UPCOMING] Step 2: Create Partner Group\\n [\\u25cb UPCOMING] Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n [\\u25cb UPCOMING] Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n [\\u25cb UPCOMING] Step 5: Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n [\\u25cb UPCOMING] Step 6: Configure Record Events on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 7: Configure User Filters on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 8: Create Form Interface: RSMBP_Q7X_SubmitBoardMembership\\n [\\u25cb UPCOMING] Step 9: Create Process Model: RSMBP_Q7X Submit Board Membership\\n [\\u25cb UPCOMING] Step 10: Create Record Action: Submit New Membership\\n [\\u25cb UPCOMING] Step 11: Create Dashboard Interface: RSMBP_Q7X_BoardMembershipDashboard\\n [\\u25cb UPCOMING] Step 12: Create Site: RSMBP_Q7X Board Partner Portal\\n\\n\\u26a0\\ufe0f CRITICAL: Execute ONLY the task marked as \\\"CURRENT TASK\\\" above.\\nUse the available tools to complete the current task. When finished, briefly explain what you did, then call set_task_status. The summary MUST come BEFORE set_task_status \\u2014 never after.\",\"system_prompt\":\"You are a Task Execution Agent that implements design objects in Appian applications. You are an expert Appian process designer with deep knowledge of BPMN 2.0 gateway semantics, process variable wiring, and incremental model construction.\\n\\nApplication Context: Application Context: Not provided\\nApplication Prefix: Not yet known\\n\\n## YOUR ROLE\\n\\nYou receive tasks from a planner and must determine the implementation details yourself. The planner provides WHAT to create; you determine HOW to implement it with appropriate fields, relationships, and configurations.\\n\\n**CRITICAL: Always read the task's `implementation_notes` field.** \\n- It contains specific instructions from the planner about visibility, security, relationships, and constraints that you MUST follow. \\n- If `implementation_notes` says visibility should be restricted to a group, you MUST set `visibilityExpr` using that group's constant. If the constant does not exist, alert the user with the create_suggestion tool.\\n\\n## TASK LIFECYCLE\\n\\n- Execute ONLY the current task assigned to you. The engine controls task sequencing.\\n- When done, briefly explain what you created/changed in plain language, then call `set_task_status`. The summary MUST come BEFORE the `set_task_status` call \\u2014 never after it.\\n- ALWAYS call `set_task_status` independently and by itself as the very last action.\\n- If a task succeeds, call `set_task_status(status=\\\"success\\\")`.\\n- If a task fails after retries, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated.\\nWhen creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker).\\nThe app prefix MUST be unique. If application creation fails, it's usually due to duplicate prefixes.\\nUse this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## RULES\\n\\n1. \\ud83d\\uded1 **NEVER WRITE SAIL FOR INTERFACES OR EXPRESSION RULES DIRECTLY** \\nAlways use the following tools for actually generating the SAIL expression for interfaces:\\n - generate_interface_sail\\n - generate_expression_rule_sail\\n - edit_interface_sail\\n2. \\ud83d\\uded1 **NEVER CONFIGURE PROCESS MODEL NODES OR WORKFLOWS DIRECTLY** \\n You do NOT have access to node-level tools (createProcessModelNode, updateProcessModelNode, etc.).\\n The ONLY tools you may use for process model work:\\n - `createProcessModel` \\u2014 create the skeleton (name, description, folder)\\n - `updateProcessModel` \\u2014 set processVariables and startForm ONLY (no nodes)\\n - `generate_process_model` \\u2014 create a NEW workflow (delegates node design to the PM pipeline)\\n - `edit_process_model` \\u2014 modify an EXISTING workflow (delegates node changes to the PM pipeline)\\n \\n **To create a workflow**: createProcessModel \\u2192 updateProcessModel (PVs + startForm) \\u2192 generate_process_model\\n **To modify a workflow**: edit_process_model (pass the processModelUuid and what to change)\\n3. **ALWAYS USE BUSINESS LANGUAGE.** You MUST describe actions in business terms the user understands. NEVER mention tools or UUIDs in your responses.\\n4. **USE TOOL SCHEMAS**: Read the tool's parameter schema to determine exact accepted values. Do NOT guess enum values or parameter structures \\u2014 the tool schema is the source of truth.\\n5. \\ud83d\\uded1 **ONE TASK, ONE OBJECT**: You may ONLY create or modify the object specified in the current task. If you need to create or modify ANY other object (constant, group, interface, expression rule, record type, etc.) to complete the task, you MUST call `create_suggestion` to ask the user whether they want to handle it manually or let you do it. Do NOT create or modify unrelated objects yourself \\u2014 even if you're confident they're needed.\\n6. **ALWAYS USE create_suggestion TO GATHER USER INPUT**: If you need user input, you MUST call `create_suggestion` with the question and clickable options. Do not simply send the question as a message.\\n7. **NEVER FABRICATE UUIDs**: Every UUID in your output MUST come from an API response or the provided context map. If you don't have a UUID, call the appropriate `get*` or `list*` tool to retrieve it.\\n8. \\ud83d\\uded1 **SEQUENTIAL MUTATIONS**: When making multiple changes to the same object (e.g., adding relationships, fields, or user filters to a record type), you MUST wait for each call to return before making the next. Do NOT issue parallel calls that mutate the same object \\u2014 they will race and overwrite each other.\\n9. **USE PRIOR TASK CONTEXT**: The \\\"OBJECTS CREATED SO FAR\\\" section contains UUIDs, fields, and relationships from completed tasks. The execution history shows which tools were called in each prior task. Use these directly \\u2014 do NOT re-fetch objects via `getRecordType`, `getInterface`, etc. when the information is already in context. Only call `get*` tools for objects NOT listed in prior task results. If a prior task already called `addRecordTypeData` for a record type, do NOT insert data again.\\n10. **NEVER call `create_summary`** unless the user explicitly asks for a summary.\\n11. **ACCURATELY DESCRIBE ASYNC PIPELINES**: When summarizing background pipelines, identify each by its actual type (interface generation, process model generation, expression rule generation). Do not call them all \\\"interfaces.\\\"\\n12. **SWITCH APP CONTEXT WHEN NEEDED**: If the user refers to an application other than the one in your current context, call `set_app_context` with the correct application UUID before proceeding. Discover the UUID via `getApplication` or `listApplications` first.\\n13. **INCLUDE ALL REFERENCE TABLE FIELDS IN FORMS**: When generating a form interface, every foreign key field that references a reference/lookup table (roles, statuses, types, categories, etc.) MUST be included as a visible dropdown field \\u2014 never auto-populated or hidden. The user must always be able to select from reference table options.\\n\\n## ERROR HANDLING\\n\\n**Retry rules (for transient errors only):**\\n- If a tool call fails with a transient error (timeout, lock acquisition, 500), retry up to 2 more times (3 total). On retry, fix the specific error \\u2014 do NOT simplify the object.\\n- After 3 total attempts, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n- If a task requires a capability you don't have, call `set_task_status(status=\\\"failed\\\", reason=\\\"Unsupported: [reason]\\\")`. Do NOT loop or repeat the same explanation.\\n\\nWhen the user says \\\"skip\\\" or \\\"continue\\\", proceed to the next task immediately.\\n\\n## OBJECT IMPLEMENTATION GUIDE\\n\\n\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"generate_interface_sail\",\"description\":\"Generate a SAIL UI using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\\n\\nArgs:\\n request: Description of the UI to generate (e.g., \\\"Create an employee dashboard\\\").\\n interfaceType: Type of interface - \\\"dashboard\\\", \\\"form\\\", or \\\"component\\\".\\n recordTypeUuids: Optional list of record type UUIDs for data model discovery in Phase 2.\\n interfaceUuid: Optional interface UUID. If provided, Phase 2 will validate and save SAIL to the interface.\\n\\nReturns:\\n Dict with success=True and async=True if validation passed and pipeline was launched.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceType\":{\"default\":\"dashboard\",\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null},\"interfaceUuid\":{\"type\":\"string\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_expression_rule_sail\",\"description\":\"Generate a SAIL expression for an expression rule using a single-phase agent workflow.\\n\\nArgs:\\n request: Description of what the expression rule should do.\\n expressionRuleUuid: Optional UUID. If provided, validates and saves the expression to the rule.\\n recordTypeUuids: Optional record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success, expression, and expression_rule_uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"expressionRuleUuid\":{\"type\":\"string\",\"default\":null},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_expression_rule_sail\"},{\"toolSpec\":{\"name\":\"edit_interface_sail\",\"description\":\"Edit an existing interface's SAIL expression using targeted edits.\\n\\nFetches the interface's current expression, loads it into an in-memory buffer,\\nand runs an agent that makes surgical edits via str_replace_sail. Runs synchronously\\n\\u2014 blocks until the edit is complete and returns the result.\\n\\nArgs:\\n request: Description of the change to make (e.g., \\\"Add a search box above the grid\\\").\\n interfaceUuid: UUID of the interface to edit (required).\\n recordTypeUuids: Optional list of record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success/failure and details.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"interfaceUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:edit_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_process_model\",\"description\":\"Generate process model nodes using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"hasStartForm\":{\"default\":false,\"type\":\"boolean\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:generate_process_model\"},{\"toolSpec\":{\"name\":\"edit_process_model\",\"description\":\"Edit an existing process model using a two-phase agent workflow (async).\\n\\nFetches the current model state, passes it to the drafter as context,\\nthen validates and saves via the reviewer.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:edit_process_model\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"createApplication\",\"description\":\"Create a new Appian application. The API automatically generates default objects (groups, folders, etc.) and associates them with the application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\",\"description\":\"Application prefix for object naming conventions (e.g. \\\"CUST\\\"). Auto-generated from the name if not provided.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createApplication\"},{\"toolSpec\":{\"name\":\"addObjectsToApplication\",\"description\":\"Add design objects to an Appian application. Most create tools now accept appUuid directly \\u2014 use this tool mainly for associating pre-existing objects with an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"objects\":{\"items\":{\"description\":\"Reference to a design object for application association.\",\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Design object type, e.g. CONSTANT, INTERFACE, PROCESS_MODEL, EXPRESSION_RULE, RECORD_TYPE, SITE, GROUP, DATA_TYPE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"appUuid\",\"objects\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addObjectsToApplication\"},{\"toolSpec\":{\"name\":\"deleteApplication\",\"description\":\"Permanently delete an Appian application. This removes the application container only \\u2014 all design objects (records, interfaces, process models, etc.) that were part of the application are preserved and become unassociated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"createConnectedSystem\",\"description\":\"Create a new Appian connected system.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateConnectedSystem\\n\\u2192 repeat until all required fields are populated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Connected system type identifier (see listConnectedSystemTypes)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateConnectedSystem, and repeat until all required fields are populated. Changing a discriminator field (e.g., authType) may change which fields appear in the next response.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConnectedSystem\"},{\"toolSpec\":{\"name\":\"updateConnectedSystem\",\"description\":\"Update an existing Appian connected system. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map \\u2014 if you changed a discriminator field (e.g., authType), the schema may change: new fields appear, old fields disappear from both `schema` and `properties`.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConnectedSystem\"},{\"toolSpec\":{\"name\":\"deleteConnectedSystem\",\"description\":\"Permanently delete an Appian connected system.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"createConstant\",\"description\":\"Create a new Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"type\",\"value\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConstant\"},{\"toolSpec\":{\"name\":\"updateConstant\",\"description\":\"Update an existing Appian constant. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"type\":{\"type\":\"string\",\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"default\":null},\"value\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConstant\"},{\"toolSpec\":{\"name\":\"deleteConstant\",\"description\":\"Permanently delete an Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"updateDocument\",\"description\":\"Update an existing Appian document. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateDocument\"},{\"toolSpec\":{\"name\":\"deleteDocument\",\"description\":\"Permanently delete an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"replaceDocumentContent\",\"description\":\"Replace the content of an Appian document. Content is plain text \\u2014 it will be base64-encoded automatically.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:replaceDocumentContent\"},{\"toolSpec\":{\"name\":\"uploadDocument\",\"description\":\"Upload a new document with file content to a folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"The document name including extension (max 255 characters), e.g. \\\"Annual Report.pdf\\\".\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"The UUID of the parent folder.\",\"type\":\"string\"},\"content\":{\"description\":\"The file content as a plain string \\u2014 it will be base64-encoded automatically.\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"extension\":{\"type\":\"string\",\"description\":\"Optional file extension without dot (auto-detected from name if not provided), e.g. \\\"pdf\\\".\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:uploadDocument\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"createExpressionRule\",\"description\":\"Create a new Appian expression rule.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createExpressionRule\"},{\"toolSpec\":{\"name\":\"updateExpressionRule\",\"description\":\"Update an existing Appian expression rule. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateExpressionRule\"},{\"toolSpec\":{\"name\":\"deleteExpressionRule\",\"description\":\"Permanently delete an Appian expression rule.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"createFolder\",\"description\":\"Create a new Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"parentFolderUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createFolder\"},{\"toolSpec\":{\"name\":\"updateFolder\",\"description\":\"Update an existing Appian folder. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateFolder\"},{\"toolSpec\":{\"name\":\"deleteFolder\",\"description\":\"Permanently delete an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"createGroup\",\"description\":\"Create a new Appian group.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"parentGroupName\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"addGroupMembers\",\"description\":\"Add members to an Appian group. Accepts a batch of users and/or groups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"members\":{\"items\":{\"description\":\"Reference to a group member for add/remove operations.\",\"properties\":{\"type\":{\"description\":\"Member type: 'user' or 'group'\",\"type\":\"string\"},\"id\":{\"description\":\"Username for users, group name for groups\",\"type\":\"string\"}},\"required\":[\"type\",\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"groupName\",\"members\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addGroupMembers\"},{\"toolSpec\":{\"name\":\"removeGroupMember\",\"description\":\"Remove a direct member from an Appian group. Only direct members can be removed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"memberType\":{\"description\":\"Type of member to remove: 'user' or 'group'.\",\"type\":\"string\"},\"memberId\":{\"description\":\"Username for users, group name for groups.\",\"type\":\"string\"}},\"required\":[\"groupName\",\"memberType\",\"memberId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:removeGroupMember\"},{\"toolSpec\":{\"name\":\"deleteGroup\",\"description\":\"Permanently delete an Appian group by name. This operation cannot be undone.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteGroup\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"createIntegration\",\"description\":\"Create a new Appian integration.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateIntegration\\n\\u2192 repeat until all required fields are populated.\\n\\nDo NOT guess at property names or values \\u2014 inspect the `schema` in the\\nresponse first, then use updateIntegration to set the fields you need.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"Integration name. Must not contain spaces.\",\"type\":\"string\"},\"connectedSystemUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier from the connected system type's operations list (see listConnectedSystemTypes).\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateIntegration, and repeat until all required fields are populated. Do not guess at property names \\u2014 always inspect the schema from the create response first. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters. Each dict has: name (str), type (str, e.g. 'Text'), description (str, optional).\",\"default\":null}},\"required\":[\"name\",\"connectedSystemUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createIntegration\"},{\"toolSpec\":{\"name\":\"updateIntegration\",\"description\":\"Update an existing Appian integration. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Integration name. Must not contain spaces.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier. Changing this switches the integration to a different operation.\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters (full replacement \\u2014 replaces all existing inputs)\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateIntegration\"},{\"toolSpec\":{\"name\":\"deleteIntegration\",\"description\":\"Permanently delete an Appian integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"createInterface\",\"description\":\"Create a new Appian interface.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createInterface\"},{\"toolSpec\":{\"name\":\"updateInterface\",\"description\":\"Update an existing Appian interface. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateInterface\"},{\"toolSpec\":{\"name\":\"deleteInterface\",\"description\":\"Permanently delete an Appian interface.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteInterface\"},{\"toolSpec\":{\"name\":\"testInterface\",\"description\":\"Evaluate an Appian interface with test inputs and check for runtime errors. Use diagnostics.error to detect rendering failures that syntax validation misses (bad record references, type mismatches, missing inputs). The result contains the rendered SAIL component tree.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"updateObjectSecurity\",\"description\":\"Set the security role map for a design object by UUID.\\n\\nFull replacement \\u2014 roles not included are cleared.\\nOnly roleName and groupNames are used; inheritedGroupNames is read-only\\nand ignored on PUT.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"roles\":{\"items\":{\"description\":\"Role-to-groups mapping for object security.\",\"properties\":{\"roleName\":{\"description\":\"Use getObjectSecurity to see valid roles for the object type.\",\"type\":\"string\"},\"groupNames\":{\"default\":[],\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"roleName\"],\"type\":\"object\"},\"type\":\"array\"},\"inheritSecurity\":{\"default\":true,\"description\":\"For content-backed objects (constants, expression rules, interfaces, documents, folders), whether this object inherits security from its parent. Ignored for non-content objects.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"roles\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"createProcessModel\",\"description\":\"Create a new Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Process Model Folder UUID (see listProcessModelFolders)\",\"type\":\"string\"},\"errorAlertGroupName\":{\"description\":\"Error alert group name (see listGroups)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null}},\"required\":[\"name\",\"description\",\"parentFolderUuid\",\"errorAlertGroupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModel\",\"description\":\"Permanently delete an Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"updateProcessModel\",\"description\":\"Update an existing Appian process model. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"processVariables\":{\"items\":{\"description\":\"Schema for a process model variable supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Variable name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"isParameter\":{\"type\":\"boolean\",\"description\":\"Expose as a process parameter (visible to callers like record actions, subprocesses, and start forms)\",\"default\":null},\"isRequired\":{\"type\":\"boolean\",\"description\":\"Whether this parameter is required\",\"default\":null},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this variable holds a list of values. Defaults to false.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process variables. Set isParameter=true to expose as inputs for record actions, subprocesses, or start forms.\",\"default\":null},\"nodes\":{\"items\":{\"description\":\"A node in a process model flow.\",\"properties\":{\"id\":{\"description\":\"Node ID, unique within the process model\",\"type\":\"integer\"},\"type\":{\"description\":\"Node type ID from listProcessModelNodeTypes, e.g. core.0, internal3.integration, event.timer\",\"type\":\"string\"},\"name\":{\"description\":\"Label shown on the process modeler canvas\",\"type\":\"string\"},\"coordinates\":{\"description\":\"Canvas position [x, y]\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"connections\":{\"default\":[],\"description\":\"Outgoing node IDs. Empty for End Event.\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"data\":{\"description\":\"Data/Setup tab configuration for activity and event nodes.\\nDo NOT use ac! references in downstream nodes \\u2014 ac! is scoped to the node it belongs to.\",\"properties\":{\"inputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined inputs from getProcessModelNodeTypeSchema\",\"default\":null},\"outputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined outputs. Set saveInto to wire to a PV.\",\"default\":null},\"customInputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined input parameters\",\"default\":null},\"customOutputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined output expressions\",\"default\":null}},\"type\":\"object\",\"default\":null},\"decision\":{\"description\":\"Decision tab configuration for XOR and OR gateways.\",\"properties\":{\"conditions\":{\"description\":\"Ordered conditions evaluated top-to-bottom, first match wins\",\"items\":{\"description\":\"A condition rule on an XOR or OR gateway.\",\"properties\":{\"expression\":{\"description\":\"SAIL boolean expression\",\"type\":\"string\"},\"targetNodeId\":{\"description\":\"Target node ID when condition is true\",\"type\":\"integer\"},\"label\":{\"type\":\"string\",\"default\":null}},\"required\":[\"expression\",\"targetNodeId\"],\"type\":\"object\"},\"type\":\"array\"},\"defaultPath\":{\"description\":\"Target node ID when no condition matches\",\"type\":\"integer\"}},\"required\":[\"conditions\",\"defaultPath\"],\"type\":\"object\",\"default\":null},\"assignment\":{\"description\":\"Assignment tab configuration for activity nodes.\",\"properties\":{\"attended\":{\"type\":\"boolean\",\"description\":\"true=user task, false=system executes. Required for ATTENDED_OR_UNATTENDED node types.\",\"default\":null},\"assignTo\":{\"type\":\"string\",\"description\":\"SAIL expression for assignee, default pp!initiator\",\"default\":null},\"reassignPrivileges\":{\"type\":\"string\",\"description\":\"NONE, REJECT_ONLY, REASSIGN_WITHIN_POOL, or REASSIGN_TO_ANY (default)\",\"default\":null},\"runAs\":{\"type\":\"string\",\"description\":\"INITIATOR (default) or DESIGNER, for unattended nodes\",\"default\":null},\"overrideLane\":{\"type\":\"boolean\",\"description\":\"Override swimlane assignment\",\"default\":null}},\"type\":\"object\",\"default\":null},\"forms\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"id\",\"type\",\"name\",\"coordinates\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process model nodes. Use listProcessModelNodeTypes for available types and getProcessModelNodeTypeSchema for node parameters.\",\"default\":null},\"startForm\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateProcessModel\"},{\"toolSpec\":{\"name\":\"testProcessModel\",\"description\":\"Start a process model, wait for completion, and return process variable values. Only works for unattended process models (no user input tasks). Returns processId, status, and processVariables map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of process parameter values to pass on start.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for the process to complete. Default: 30. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModelNode\",\"description\":\"Remove a node and clean up all incoming/outgoing connections.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"insertRecordData\",\"description\":\"Insert one or more rows of record data from CSV.\\n\\nReturns inserted rows with assigned primary keys. Save these keys for\\nforeign key references in downstream record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row and one or more data rows. Header names must match field names exactly as defined on the record type. PK column may be omitted for auto-generated keys. Boolean fields: use 1 (true) or 0 (false) \\u2014 string values like 'true'/'false' are rejected. Date values: YYYY-MM-DD (e.g. 2026-03-20). Datetime values: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC. Fields containing commas, quotes, or newlines MUST be enclosed in double quotes per RFC 4180. Do NOT embed JSON in CSV fields \\u2014 use plain text.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:insertRecordData\"},{\"toolSpec\":{\"name\":\"updateRecordData\",\"description\":\"Update one or more rows of record data by primary key from CSV. Supports partial updates.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row (including PK column) and one or more data rows. Date values: ISO 8601 date format YYYY-MM-DD (e.g. 2026-03-20). Datetime values: ISO 8601 datetime without timezone: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: ISO 8601 time format HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordData\"},{\"toolSpec\":{\"name\":\"deleteRecordData\",\"description\":\"Delete one or more rows of record data by primary key from CSV.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with PK column header and one or more PK values (one per line).\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"createRecordType\",\"description\":\"Create a new Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"sourceType\":{\"description\":\"The type of data source. DATABASE connects to or creates a database table (use createTable to control DDL). Valid values: DATABASE, WEB_SERVICE, PROCESS, SALESFORCE.\",\"type\":\"string\"},\"createTable\":{\"default\":true,\"description\":\"When true, Appian creates the database table (mirrors the 'Create Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM tables are not yet supported.\",\"type\":\"boolean\"},\"tableName\":{\"type\":\"string\",\"description\":\"CDM: table name to create (defaults to snake_case of record type name). DATABASE: existing table name to connect to.\",\"default\":null},\"dataSourceUuid\":{\"type\":\"string\",\"description\":\"DATABASE: UUID of the data source containing the table. CDM: auto-resolved if omitted.\",\"default\":null},\"schema\":{\"type\":\"string\",\"description\":\"DATABASE: schema name. CDM: auto-resolved if omitted.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"fields\":{\"items\":{\"description\":\"Field definition for a record type.\",\"properties\":{\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to snake_case of fieldName)\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"description\":\"Column length for TEXT fields (0 = default)\",\"default\":null}},\"required\":[\"fieldName\",\"fieldType\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\",\"sourceType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createRecordType\"},{\"toolSpec\":{\"name\":\"updateRecordType\",\"description\":\"Update an existing Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"securityRules\":{\"items\":{\"description\":\"Record-level security rule defining who can see which records.\",\"properties\":{\"membershipType\":{\"description\":\"GROUPS, FIELDS, or RELATED_RECORDS\",\"type\":\"string\"},\"groupUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Group UUIDs. GROUPS membership only. Rule applies to members of the specified groups.\",\"default\":null},\"fieldUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"User or Group field UUIDs \\u2014 direct fields or related record fields. FIELDS membership only. Rule applies to any users found in the specified fields.\",\"default\":null},\"relationshipUuid\":{\"type\":\"string\",\"description\":\"Relationship UUID. RELATED_RECORDS membership only. Rule applies to any users who have access to the related record.\",\"default\":null},\"conditions\":{\"items\":{\"description\":\"Filter condition for record-level security rules.\",\"properties\":{\"field\":{\"description\":\"Record field UUID\",\"type\":\"string\"},\"operator\":{\"description\":\"Comparison operator (=, <>, <, >, <=, >=)\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Comparison value\"}},\"required\":[\"field\",\"operator\",\"value\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Additional filter conditions to further limit rule applicability.\",\"default\":null}},\"required\":[\"membershipType\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Full replacement of security rules. List order = evaluation order (first match wins). Empty list clears all rules.\",\"default\":null},\"securityExpression\":{\"type\":\"string\",\"description\":\"SAIL expression for record-level security. Set to null to clear. Omit to preserve current value. Record types using expressions cannot be referenced via RELATED_RECORDS membership.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordType\"},{\"toolSpec\":{\"name\":\"deleteRecordType\",\"description\":\"Permanently delete an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"addRecordTypeField\",\"description\":\"Add a field to an Appian record type. For CDM-backed record types, creates the corresponding database column.\\n\\nReturns the created field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to toSnakeCase(fieldName))\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to add the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldName\",\"fieldType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeField\"},{\"toolSpec\":{\"name\":\"updateRecordTypeField\",\"description\":\"Update a field on an Appian record type. Only provided fields are changed. For CDM-backed record types, type changes trigger ALTER TABLE.\\n\\nReturns the updated field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\",\"default\":null},\"fieldType\":{\"type\":\"string\",\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"default\":null},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to update the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeField\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeField\",\"description\":\"Delete a field from an Appian record type. For CDM-backed record types, drops the database column (destructive). Other source types only unmap the field. Primary key fields cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to drop the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"addRecordTypeRelationship\",\"description\":\"Add a relationship to an Appian record type.\\n\\nBoth the source and target record types must already exist. Use the exact\\nfield UUIDs returned from record type creation or retrieval responses \\u2014\\nnever fabricate UUIDs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\"},\"sourceRecordTypeFieldUuid\":{\"description\":\"UUID of the foreign key field on THIS (source) record type. Must be a real field UUID from the createRecordType or getRecordType response.\",\"type\":\"string\"},\"targetRecordTypeFieldUuid\":{\"description\":\"UUID of the primary key field on the TARGET record type. Must be a real field UUID from the target's createRecordType or getRecordType response. For system record types use SYSTEM_RECORD_TYPE_USER_FIELD_username or SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id.\",\"type\":\"string\"},\"targetRecordTypeUuid\":{\"description\":\"UUID of the target record type. For system record types use SYSTEM_RECORD_TYPE_USER (key field: SYSTEM_RECORD_TYPE_USER_FIELD_username) or SYSTEM_RECORD_TYPE_DOCUMENT (key field: SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id).\",\"type\":\"string\"},\"relationshipType\":{\"description\":\"ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipName\",\"sourceRecordTypeFieldUuid\",\"targetRecordTypeFieldUuid\",\"targetRecordTypeUuid\",\"relationshipType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"updateRecordTypeRelationship\",\"description\":\"Update a relationship on an Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\",\"default\":null},\"sourceRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeUuid\":{\"type\":\"string\",\"default\":null},\"relationshipType\":{\"type\":\"string\",\"description\":\"Type of relationship: ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"default\":null}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeRelationship\",\"description\":\"Delete a relationship from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"addRecordTypeAction\",\"description\":\"Add a record action to an Appian record type. Returns the created action including server-generated uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"actionType\":{\"description\":\"Type of record action: LIST_ACTION (record list) or RELATED_ACTION (record view)\",\"type\":\"string\"},\"key\":{\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code for the action button (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code. Default: 'f0e7'.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling visibility (default \\\"=true()\\\")\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"description\":\"SAIL expression passing record context to the process model. Only valid for RELATED_ACTION. Use a dictionary to pass record information into the related action. The keys in the dictionary map to the case-sensitive parameter names in the process model.\",\"default\":null}},\"required\":[\"uuid\",\"displayName\",\"processModelUuid\",\"actionType\",\"key\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeAction\"},{\"toolSpec\":{\"name\":\"updateRecordTypeAction\",\"description\":\"Update a record action by UUID with partial update semantics. Only provided fields are changed. actionType is immutable.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\",\"default\":null},\"processModelUuid\":{\"type\":\"string\",\"default\":null},\"key\":{\"type\":\"string\",\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeAction\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeAction\",\"description\":\"Delete a record action by UUID from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeAction\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"addRecordTypeView\",\"description\":\"Add a custom view (tab) to a record type. The first view added becomes the Summary view (urlStub \\\"summary\\\"); subsequent views get auto-generated urlStubs. All expression parameters accept SAIL expressions. Available variables: `rv!identifier` (record ID), `rv!record` (full record), `loggedInUser()`. For static values, use quoted strings (e.g. `'\\\"Order Details\\\"'`).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\"},\"interfaceExpression\":{\"type\":\"string\"},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Null = visible to all users.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Get UUIDs from listRecordTypeActions.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB (default), NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"nameExpression\",\"interfaceExpression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeView\"},{\"toolSpec\":{\"name\":\"updateRecordTypeView\",\"description\":\"Update fields on an existing view. Only provided fields are changed; omitted fields are preserved.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\",\"default\":null},\"interfaceExpression\":{\"type\":\"string\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Set to null to clear (visible to all). Omit to preserve current value.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Empty list clears all.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB, NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeView\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeView\",\"description\":\"Permanently delete a view from a record type. The Summary view cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeView\"},{\"toolSpec\":{\"name\":\"reorderRecordTypeViews\",\"description\":\"Reorder views on a record type. All existing urlStubs must be included.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStubs\":{\"description\":\"Ordered list of all view urlStubs representing desired tab order. Must include all existing urlStubs. Summary is always pinned first.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuid\",\"urlStubs\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:reorderRecordTypeViews\"},{\"toolSpec\":{\"name\":\"configureRecordEvents\",\"description\":\"Configure record events on an Appian record type (one-time setup).\\n\\nCreates four supporting record types (Event History, Event Type Lookup, Reply Thread,\\nSubscriber), wires relationships, copies security from the base record type, and persists\\nthe configuration. Returns 409 if record events are already configured.\\n\\nEvent types can be managed after initial setup by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\\n\\nReturns a RecordEventConfig with: four RT UUIDs (eventHistoryRecordTypeUuid,\\neventTypeLookupRecordTypeUuid, replyThreadRecordTypeUuid, subscriberRecordTypeUuid),\\nrelationship UUIDs (eventRelationshipUuid, eventTypeRelationshipUuid,\\neventReplyRelationshipUuid, subscriberRelationshipUuid), field UUIDs\\n(eventTypeValueFieldUuid, eventUserFieldUuid, eventTimestampFieldUuid,\\neventAutomationIdentifierFieldUuid, eventCommentFieldUuid, eventReplyUserFieldUuid,\\neventReplyCommentFieldUuid, eventReplyTimestampFieldUuid, subscriberUserFieldUuid),\\ncommentEventTypeId, generateCommonEvents, and eventTypes.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"eventTypes\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Event types representing key moments in the business lifecycle of this record. Use past-tense verb phrases (e.g. 'Created Order', 'Approved Application', 'Shipped Order'). Avoid generic recurring operations like 'Updated' \\u2014 focus on meaningful business activities that ideally occur once per record in a specific order.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:configureRecordEvents\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"addRecordTypeUserFilter\",\"description\":\"Add a user filter to a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"facetType\":{\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"allowMultipleSelections\":{\"default\":false,\"type\":\"boolean\"},\"useRelatedRecordValues\":{\"default\":false,\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"type\":\"boolean\"},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"name\",\"facetType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"updateRecordTypeUserFilter\",\"description\":\"Update a user filter on a record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"facetType\":{\"type\":\"string\",\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"orderIndex\":{\"type\":\"integer\",\"default\":null},\"allowMultipleSelections\":{\"type\":\"boolean\",\"default\":null},\"useRelatedRecordValues\":{\"type\":\"boolean\",\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"default\":null},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeUserFilter\",\"description\":\"Remove a user filter from a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"createSite\",\"description\":\"Create a new Appian site. Requires at least one page.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"webAddressIdentifier\":{\"type\":\"string\"},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav, default) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY (default), HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"name\",\"displayName\",\"webAddressIdentifier\",\"pages\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createSite\"},{\"toolSpec\":{\"name\":\"updateSite\",\"description\":\"Update an existing Appian site. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"webAddressIdentifier\":{\"type\":\"string\",\"default\":null},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY, HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateSite\"},{\"toolSpec\":{\"name\":\"deleteSite\",\"description\":\"Permanently delete an Appian site.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteSite\"},{\"toolSpec\":{\"name\":\"testRule\",\"description\":\"Execute an Appian rule with test inputs and return the result. Works for expression rules and integrations \\u2014 all rule-type objects in Appian. Pass the object's UUID, type, and an optional inputs map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Object type: EXPRESSION_RULE or INTEGRATION.\",\"enum\":[\"EXPRESSION_RULE\",\"INTEGRATION\"],\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testRule\"},{\"toolSpec\":{\"name\":\"validateDesignObject\",\"description\":\"Validate all expressions on a design object by UUID.\\n\\nReturns validation results including any expression errors found.\\nUse this to check for expression errors without performing a save.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateDesignObject\"},{\"toolSpec\":{\"name\":\"validateExpression\",\"description\":\"Validate a raw SAIL expression without saving it.\\n\\nRuns parse, discovery, and eval passes. No rule inputs or record\\nreferences are stubbed \\u2014 use for standalone expressions like freeform mockups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"expression\":{\"type\":\"string\"}},\"required\":[\"expression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateExpression\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"},{\"toolSpec\":{\"name\":\"createWebApi\",\"description\":\"Create a new Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"urlAlias\":{\"type\":\"string\"},\"httpMethod\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"urlAlias\",\"httpMethod\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createWebApi\"},{\"toolSpec\":{\"name\":\"updateWebApi\",\"description\":\"Update an existing Appian Web API. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateWebApi\"},{\"toolSpec\":{\"name\":\"deleteWebApi\",\"description\":\"Permanently delete an Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"7eb3baa8-f78e-48b4-8441-c67848bf230c","status":"QUEUED","status_url":"/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status"} | |
| [2026-04-14T18:26:55.284770+00:00] [83d733af] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status | |
| run_id: 7eb3baa8-f78e-48b4-8441-c67848bf230c | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:26:55.287863+00:00] [b70387ea] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/messages | |
| run_id: 7eb3baa8-f78e-48b4-8441-c67848bf230c | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:27:14.681757+00:00] [59297ee2] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status | |
| run_id: 7eb3baa8-f78e-48b4-8441-c67848bf230c | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:27:14.748201+00:00] [9d0c9b38] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c | |
| run_id: 7eb3baa8-f78e-48b4-8441-c67848bf230c | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"7eb3baa8-f78e-48b4-8441-c67848bf230c","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":104256,"output_tokens":585,"total_tokens":104841},"tool_calls":3,"duration_seconds":19.584840059280396,"start_time":"1776191215.055204","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:26:55.055204Z","completed_at":"2026-04-14T18:27:14.640044Z","error":null} | |
| [2026-04-14T18:27:14.805884+00:00] [6e1d01ec] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status | |
| run_id: 7eb3baa8-f78e-48b4-8441-c67848bf230c | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/7eb3baa8-f78e-48b4-8441-c67848bf230c/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:27:14.947788+00:00] [3c6556f8] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\n[user]: Step 1: Create Application: RSM Board Partner 20250327-1437\\n[assistant]: \\u2713 Step 1 completed successfully.\\n\\nTools called: execute_plan, createApplication, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n}\\n\\n## OBJECTS CREATED SO FAR\\n\\n### APPLICATION\\n[\\n {\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n }\\n]\\n\\n## FULL IMPLEMENTATION PLAN\\n\\n [\\u2713 COMPLETED] Step 1: Create Application: RSM Board Partner 20250327-1437\\n>>> CURRENT TASK: Step 2 of 12\\n Create Partner Group\\n implementation_notes: Security group for RSM partners who submit board/committee membership information. Members are authenticated internal RSM users via RSM SSO/LDAP. This group controls access to the site and form interfaces.\\n\\n [\\u25cb UPCOMING] Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n [\\u25cb UPCOMING] Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n [\\u25cb UPCOMING] Step 5: Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n [\\u25cb UPCOMING] Step 6: Configure Record Events on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 7: Configure User Filters on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 8: Create Form Interface: RSMBP_Q7X_SubmitBoardMembership\\n [\\u25cb UPCOMING] Step 9: Create Process Model: RSMBP_Q7X Submit Board Membership\\n [\\u25cb UPCOMING] Step 10: Create Record Action: Submit New Membership\\n [\\u25cb UPCOMING] Step 11: Create Dashboard Interface: RSMBP_Q7X_BoardMembershipDashboard\\n [\\u25cb UPCOMING] Step 12: Create Site: RSMBP_Q7X Board Partner Portal\\n\\n\\u26a0\\ufe0f CRITICAL: Execute ONLY the task marked as \\\"CURRENT TASK\\\" above.\\nUse the available tools to complete the current task. When finished, briefly explain what you did, then call set_task_status. The summary MUST come BEFORE set_task_status \\u2014 never after.\",\"system_prompt\":\"You are a Task Execution Agent that implements design objects in Appian applications. You are an expert Appian process designer with deep knowledge of BPMN 2.0 gateway semantics, process variable wiring, and incremental model construction.\\n\\nApplication Context: Application UUID: _a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\nApplication Prefix: RSMBPQ7X\\n\\n## YOUR ROLE\\n\\nYou receive tasks from a planner and must determine the implementation details yourself. The planner provides WHAT to create; you determine HOW to implement it with appropriate fields, relationships, and configurations.\\n\\n**CRITICAL: Always read the task's `implementation_notes` field.** \\n- It contains specific instructions from the planner about visibility, security, relationships, and constraints that you MUST follow. \\n- If `implementation_notes` says visibility should be restricted to a group, you MUST set `visibilityExpr` using that group's constant. If the constant does not exist, alert the user with the create_suggestion tool.\\n\\n## TASK LIFECYCLE\\n\\n- Execute ONLY the current task assigned to you. The engine controls task sequencing.\\n- When done, briefly explain what you created/changed in plain language, then call `set_task_status`. The summary MUST come BEFORE the `set_task_status` call \\u2014 never after it.\\n- ALWAYS call `set_task_status` independently and by itself as the very last action.\\n- If a task succeeds, call `set_task_status(status=\\\"success\\\")`.\\n- If a task fails after retries, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated.\\nWhen creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker).\\nThe app prefix MUST be unique. If application creation fails, it's usually due to duplicate prefixes.\\nUse this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## RULES\\n\\n1. \\ud83d\\uded1 **NEVER WRITE SAIL FOR INTERFACES OR EXPRESSION RULES DIRECTLY** \\nAlways use the following tools for actually generating the SAIL expression for interfaces:\\n - generate_interface_sail\\n - generate_expression_rule_sail\\n - edit_interface_sail\\n2. \\ud83d\\uded1 **NEVER CONFIGURE PROCESS MODEL NODES OR WORKFLOWS DIRECTLY** \\n You do NOT have access to node-level tools (createProcessModelNode, updateProcessModelNode, etc.).\\n The ONLY tools you may use for process model work:\\n - `createProcessModel` \\u2014 create the skeleton (name, description, folder)\\n - `updateProcessModel` \\u2014 set processVariables and startForm ONLY (no nodes)\\n - `generate_process_model` \\u2014 create a NEW workflow (delegates node design to the PM pipeline)\\n - `edit_process_model` \\u2014 modify an EXISTING workflow (delegates node changes to the PM pipeline)\\n \\n **To create a workflow**: createProcessModel \\u2192 updateProcessModel (PVs + startForm) \\u2192 generate_process_model\\n **To modify a workflow**: edit_process_model (pass the processModelUuid and what to change)\\n3. **ALWAYS USE BUSINESS LANGUAGE.** You MUST describe actions in business terms the user understands. NEVER mention tools or UUIDs in your responses.\\n4. **USE TOOL SCHEMAS**: Read the tool's parameter schema to determine exact accepted values. Do NOT guess enum values or parameter structures \\u2014 the tool schema is the source of truth.\\n5. \\ud83d\\uded1 **ONE TASK, ONE OBJECT**: You may ONLY create or modify the object specified in the current task. If you need to create or modify ANY other object (constant, group, interface, expression rule, record type, etc.) to complete the task, you MUST call `create_suggestion` to ask the user whether they want to handle it manually or let you do it. Do NOT create or modify unrelated objects yourself \\u2014 even if you're confident they're needed.\\n6. **ALWAYS USE create_suggestion TO GATHER USER INPUT**: If you need user input, you MUST call `create_suggestion` with the question and clickable options. Do not simply send the question as a message.\\n7. **NEVER FABRICATE UUIDs**: Every UUID in your output MUST come from an API response or the provided context map. If you don't have a UUID, call the appropriate `get*` or `list*` tool to retrieve it.\\n8. \\ud83d\\uded1 **SEQUENTIAL MUTATIONS**: When making multiple changes to the same object (e.g., adding relationships, fields, or user filters to a record type), you MUST wait for each call to return before making the next. Do NOT issue parallel calls that mutate the same object \\u2014 they will race and overwrite each other.\\n9. **USE PRIOR TASK CONTEXT**: The \\\"OBJECTS CREATED SO FAR\\\" section contains UUIDs, fields, and relationships from completed tasks. The execution history shows which tools were called in each prior task. Use these directly \\u2014 do NOT re-fetch objects via `getRecordType`, `getInterface`, etc. when the information is already in context. Only call `get*` tools for objects NOT listed in prior task results. If a prior task already called `addRecordTypeData` for a record type, do NOT insert data again.\\n10. **NEVER call `create_summary`** unless the user explicitly asks for a summary.\\n11. **ACCURATELY DESCRIBE ASYNC PIPELINES**: When summarizing background pipelines, identify each by its actual type (interface generation, process model generation, expression rule generation). Do not call them all \\\"interfaces.\\\"\\n12. **SWITCH APP CONTEXT WHEN NEEDED**: If the user refers to an application other than the one in your current context, call `set_app_context` with the correct application UUID before proceeding. Discover the UUID via `getApplication` or `listApplications` first.\\n13. **INCLUDE ALL REFERENCE TABLE FIELDS IN FORMS**: When generating a form interface, every foreign key field that references a reference/lookup table (roles, statuses, types, categories, etc.) MUST be included as a visible dropdown field \\u2014 never auto-populated or hidden. The user must always be able to select from reference table options.\\n\\n## ERROR HANDLING\\n\\n**Retry rules (for transient errors only):**\\n- If a tool call fails with a transient error (timeout, lock acquisition, 500), retry up to 2 more times (3 total). On retry, fix the specific error \\u2014 do NOT simplify the object.\\n- After 3 total attempts, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n- If a task requires a capability you don't have, call `set_task_status(status=\\\"failed\\\", reason=\\\"Unsupported: [reason]\\\")`. Do NOT loop or repeat the same explanation.\\n\\nWhen the user says \\\"skip\\\" or \\\"continue\\\", proceed to the next task immediately.\\n\\n## OBJECT IMPLEMENTATION GUIDE\\n\\n## Group Implementation Guide\\n\\n### Creation Order\\n\\nCreate groups BEFORE creating Sites or Process Models that reference them.\\n\\nGroups are referenced in:\\n- Site security settings (who can access the site)\\n- Process model security (`errorAlertGroupName` parameter)\\n- Record action security (who can perform actions)\\n\\n### Group Membership\\n\\nAfter creating a group, add it to the application's default Users group. The default Users group name follows the pattern \\\"{App Prefix} Users\\\". If that group does not exist, immediately list the application's groups to find the correct one before retrying.\\n\\n### Group Constants\\n\\nAfter adding a group to the Users group, create a constant for it so it can be referenced by other design objects.\\n\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"generate_interface_sail\",\"description\":\"Generate a SAIL UI using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\\n\\nArgs:\\n request: Description of the UI to generate (e.g., \\\"Create an employee dashboard\\\").\\n interfaceType: Type of interface - \\\"dashboard\\\", \\\"form\\\", or \\\"component\\\".\\n recordTypeUuids: Optional list of record type UUIDs for data model discovery in Phase 2.\\n interfaceUuid: Optional interface UUID. If provided, Phase 2 will validate and save SAIL to the interface.\\n\\nReturns:\\n Dict with success=True and async=True if validation passed and pipeline was launched.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceType\":{\"default\":\"dashboard\",\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null},\"interfaceUuid\":{\"type\":\"string\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_expression_rule_sail\",\"description\":\"Generate a SAIL expression for an expression rule using a single-phase agent workflow.\\n\\nArgs:\\n request: Description of what the expression rule should do.\\n expressionRuleUuid: Optional UUID. If provided, validates and saves the expression to the rule.\\n recordTypeUuids: Optional record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success, expression, and expression_rule_uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"expressionRuleUuid\":{\"type\":\"string\",\"default\":null},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_expression_rule_sail\"},{\"toolSpec\":{\"name\":\"edit_interface_sail\",\"description\":\"Edit an existing interface's SAIL expression using targeted edits.\\n\\nFetches the interface's current expression, loads it into an in-memory buffer,\\nand runs an agent that makes surgical edits via str_replace_sail. Runs synchronously\\n\\u2014 blocks until the edit is complete and returns the result.\\n\\nArgs:\\n request: Description of the change to make (e.g., \\\"Add a search box above the grid\\\").\\n interfaceUuid: UUID of the interface to edit (required).\\n recordTypeUuids: Optional list of record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success/failure and details.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"interfaceUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:edit_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_process_model\",\"description\":\"Generate process model nodes using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"hasStartForm\":{\"default\":false,\"type\":\"boolean\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:generate_process_model\"},{\"toolSpec\":{\"name\":\"edit_process_model\",\"description\":\"Edit an existing process model using a two-phase agent workflow (async).\\n\\nFetches the current model state, passes it to the drafter as context,\\nthen validates and saves via the reviewer.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:edit_process_model\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"createApplication\",\"description\":\"Create a new Appian application. The API automatically generates default objects (groups, folders, etc.) and associates them with the application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\",\"description\":\"Application prefix for object naming conventions (e.g. \\\"CUST\\\"). Auto-generated from the name if not provided.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createApplication\"},{\"toolSpec\":{\"name\":\"addObjectsToApplication\",\"description\":\"Add design objects to an Appian application. Most create tools now accept appUuid directly \\u2014 use this tool mainly for associating pre-existing objects with an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"objects\":{\"items\":{\"description\":\"Reference to a design object for application association.\",\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Design object type, e.g. CONSTANT, INTERFACE, PROCESS_MODEL, EXPRESSION_RULE, RECORD_TYPE, SITE, GROUP, DATA_TYPE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"appUuid\",\"objects\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addObjectsToApplication\"},{\"toolSpec\":{\"name\":\"deleteApplication\",\"description\":\"Permanently delete an Appian application. This removes the application container only \\u2014 all design objects (records, interfaces, process models, etc.) that were part of the application are preserved and become unassociated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"createConnectedSystem\",\"description\":\"Create a new Appian connected system.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateConnectedSystem\\n\\u2192 repeat until all required fields are populated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Connected system type identifier (see listConnectedSystemTypes)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateConnectedSystem, and repeat until all required fields are populated. Changing a discriminator field (e.g., authType) may change which fields appear in the next response.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConnectedSystem\"},{\"toolSpec\":{\"name\":\"updateConnectedSystem\",\"description\":\"Update an existing Appian connected system. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map \\u2014 if you changed a discriminator field (e.g., authType), the schema may change: new fields appear, old fields disappear from both `schema` and `properties`.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConnectedSystem\"},{\"toolSpec\":{\"name\":\"deleteConnectedSystem\",\"description\":\"Permanently delete an Appian connected system.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"createConstant\",\"description\":\"Create a new Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"type\",\"value\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConstant\"},{\"toolSpec\":{\"name\":\"updateConstant\",\"description\":\"Update an existing Appian constant. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"type\":{\"type\":\"string\",\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"default\":null},\"value\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConstant\"},{\"toolSpec\":{\"name\":\"deleteConstant\",\"description\":\"Permanently delete an Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"updateDocument\",\"description\":\"Update an existing Appian document. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateDocument\"},{\"toolSpec\":{\"name\":\"deleteDocument\",\"description\":\"Permanently delete an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"replaceDocumentContent\",\"description\":\"Replace the content of an Appian document. Content is plain text \\u2014 it will be base64-encoded automatically.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:replaceDocumentContent\"},{\"toolSpec\":{\"name\":\"uploadDocument\",\"description\":\"Upload a new document with file content to a folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"The document name including extension (max 255 characters), e.g. \\\"Annual Report.pdf\\\".\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"The UUID of the parent folder.\",\"type\":\"string\"},\"content\":{\"description\":\"The file content as a plain string \\u2014 it will be base64-encoded automatically.\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"extension\":{\"type\":\"string\",\"description\":\"Optional file extension without dot (auto-detected from name if not provided), e.g. \\\"pdf\\\".\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:uploadDocument\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"createExpressionRule\",\"description\":\"Create a new Appian expression rule.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createExpressionRule\"},{\"toolSpec\":{\"name\":\"updateExpressionRule\",\"description\":\"Update an existing Appian expression rule. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateExpressionRule\"},{\"toolSpec\":{\"name\":\"deleteExpressionRule\",\"description\":\"Permanently delete an Appian expression rule.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"createFolder\",\"description\":\"Create a new Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"parentFolderUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createFolder\"},{\"toolSpec\":{\"name\":\"updateFolder\",\"description\":\"Update an existing Appian folder. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateFolder\"},{\"toolSpec\":{\"name\":\"deleteFolder\",\"description\":\"Permanently delete an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"createGroup\",\"description\":\"Create a new Appian group.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"parentGroupName\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"addGroupMembers\",\"description\":\"Add members to an Appian group. Accepts a batch of users and/or groups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"members\":{\"items\":{\"description\":\"Reference to a group member for add/remove operations.\",\"properties\":{\"type\":{\"description\":\"Member type: 'user' or 'group'\",\"type\":\"string\"},\"id\":{\"description\":\"Username for users, group name for groups\",\"type\":\"string\"}},\"required\":[\"type\",\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"groupName\",\"members\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addGroupMembers\"},{\"toolSpec\":{\"name\":\"removeGroupMember\",\"description\":\"Remove a direct member from an Appian group. Only direct members can be removed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"memberType\":{\"description\":\"Type of member to remove: 'user' or 'group'.\",\"type\":\"string\"},\"memberId\":{\"description\":\"Username for users, group name for groups.\",\"type\":\"string\"}},\"required\":[\"groupName\",\"memberType\",\"memberId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:removeGroupMember\"},{\"toolSpec\":{\"name\":\"deleteGroup\",\"description\":\"Permanently delete an Appian group by name. This operation cannot be undone.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteGroup\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"createIntegration\",\"description\":\"Create a new Appian integration.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateIntegration\\n\\u2192 repeat until all required fields are populated.\\n\\nDo NOT guess at property names or values \\u2014 inspect the `schema` in the\\nresponse first, then use updateIntegration to set the fields you need.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"Integration name. Must not contain spaces.\",\"type\":\"string\"},\"connectedSystemUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier from the connected system type's operations list (see listConnectedSystemTypes).\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateIntegration, and repeat until all required fields are populated. Do not guess at property names \\u2014 always inspect the schema from the create response first. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters. Each dict has: name (str), type (str, e.g. 'Text'), description (str, optional).\",\"default\":null}},\"required\":[\"name\",\"connectedSystemUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createIntegration\"},{\"toolSpec\":{\"name\":\"updateIntegration\",\"description\":\"Update an existing Appian integration. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Integration name. Must not contain spaces.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier. Changing this switches the integration to a different operation.\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters (full replacement \\u2014 replaces all existing inputs)\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateIntegration\"},{\"toolSpec\":{\"name\":\"deleteIntegration\",\"description\":\"Permanently delete an Appian integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"createInterface\",\"description\":\"Create a new Appian interface.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createInterface\"},{\"toolSpec\":{\"name\":\"updateInterface\",\"description\":\"Update an existing Appian interface. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateInterface\"},{\"toolSpec\":{\"name\":\"deleteInterface\",\"description\":\"Permanently delete an Appian interface.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteInterface\"},{\"toolSpec\":{\"name\":\"testInterface\",\"description\":\"Evaluate an Appian interface with test inputs and check for runtime errors. Use diagnostics.error to detect rendering failures that syntax validation misses (bad record references, type mismatches, missing inputs). The result contains the rendered SAIL component tree.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"updateObjectSecurity\",\"description\":\"Set the security role map for a design object by UUID.\\n\\nFull replacement \\u2014 roles not included are cleared.\\nOnly roleName and groupNames are used; inheritedGroupNames is read-only\\nand ignored on PUT.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"roles\":{\"items\":{\"description\":\"Role-to-groups mapping for object security.\",\"properties\":{\"roleName\":{\"description\":\"Use getObjectSecurity to see valid roles for the object type.\",\"type\":\"string\"},\"groupNames\":{\"default\":[],\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"roleName\"],\"type\":\"object\"},\"type\":\"array\"},\"inheritSecurity\":{\"default\":true,\"description\":\"For content-backed objects (constants, expression rules, interfaces, documents, folders), whether this object inherits security from its parent. Ignored for non-content objects.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"roles\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"createProcessModel\",\"description\":\"Create a new Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Process Model Folder UUID (see listProcessModelFolders)\",\"type\":\"string\"},\"errorAlertGroupName\":{\"description\":\"Error alert group name (see listGroups)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null}},\"required\":[\"name\",\"description\",\"parentFolderUuid\",\"errorAlertGroupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModel\",\"description\":\"Permanently delete an Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"updateProcessModel\",\"description\":\"Update an existing Appian process model. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"processVariables\":{\"items\":{\"description\":\"Schema for a process model variable supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Variable name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"isParameter\":{\"type\":\"boolean\",\"description\":\"Expose as a process parameter (visible to callers like record actions, subprocesses, and start forms)\",\"default\":null},\"isRequired\":{\"type\":\"boolean\",\"description\":\"Whether this parameter is required\",\"default\":null},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this variable holds a list of values. Defaults to false.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process variables. Set isParameter=true to expose as inputs for record actions, subprocesses, or start forms.\",\"default\":null},\"nodes\":{\"items\":{\"description\":\"A node in a process model flow.\",\"properties\":{\"id\":{\"description\":\"Node ID, unique within the process model\",\"type\":\"integer\"},\"type\":{\"description\":\"Node type ID from listProcessModelNodeTypes, e.g. core.0, internal3.integration, event.timer\",\"type\":\"string\"},\"name\":{\"description\":\"Label shown on the process modeler canvas\",\"type\":\"string\"},\"coordinates\":{\"description\":\"Canvas position [x, y]\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"connections\":{\"default\":[],\"description\":\"Outgoing node IDs. Empty for End Event.\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"data\":{\"description\":\"Data/Setup tab configuration for activity and event nodes.\\nDo NOT use ac! references in downstream nodes \\u2014 ac! is scoped to the node it belongs to.\",\"properties\":{\"inputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined inputs from getProcessModelNodeTypeSchema\",\"default\":null},\"outputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined outputs. Set saveInto to wire to a PV.\",\"default\":null},\"customInputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined input parameters\",\"default\":null},\"customOutputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined output expressions\",\"default\":null}},\"type\":\"object\",\"default\":null},\"decision\":{\"description\":\"Decision tab configuration for XOR and OR gateways.\",\"properties\":{\"conditions\":{\"description\":\"Ordered conditions evaluated top-to-bottom, first match wins\",\"items\":{\"description\":\"A condition rule on an XOR or OR gateway.\",\"properties\":{\"expression\":{\"description\":\"SAIL boolean expression\",\"type\":\"string\"},\"targetNodeId\":{\"description\":\"Target node ID when condition is true\",\"type\":\"integer\"},\"label\":{\"type\":\"string\",\"default\":null}},\"required\":[\"expression\",\"targetNodeId\"],\"type\":\"object\"},\"type\":\"array\"},\"defaultPath\":{\"description\":\"Target node ID when no condition matches\",\"type\":\"integer\"}},\"required\":[\"conditions\",\"defaultPath\"],\"type\":\"object\",\"default\":null},\"assignment\":{\"description\":\"Assignment tab configuration for activity nodes.\",\"properties\":{\"attended\":{\"type\":\"boolean\",\"description\":\"true=user task, false=system executes. Required for ATTENDED_OR_UNATTENDED node types.\",\"default\":null},\"assignTo\":{\"type\":\"string\",\"description\":\"SAIL expression for assignee, default pp!initiator\",\"default\":null},\"reassignPrivileges\":{\"type\":\"string\",\"description\":\"NONE, REJECT_ONLY, REASSIGN_WITHIN_POOL, or REASSIGN_TO_ANY (default)\",\"default\":null},\"runAs\":{\"type\":\"string\",\"description\":\"INITIATOR (default) or DESIGNER, for unattended nodes\",\"default\":null},\"overrideLane\":{\"type\":\"boolean\",\"description\":\"Override swimlane assignment\",\"default\":null}},\"type\":\"object\",\"default\":null},\"forms\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"id\",\"type\",\"name\",\"coordinates\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process model nodes. Use listProcessModelNodeTypes for available types and getProcessModelNodeTypeSchema for node parameters.\",\"default\":null},\"startForm\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateProcessModel\"},{\"toolSpec\":{\"name\":\"testProcessModel\",\"description\":\"Start a process model, wait for completion, and return process variable values. Only works for unattended process models (no user input tasks). Returns processId, status, and processVariables map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of process parameter values to pass on start.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for the process to complete. Default: 30. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModelNode\",\"description\":\"Remove a node and clean up all incoming/outgoing connections.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"insertRecordData\",\"description\":\"Insert one or more rows of record data from CSV.\\n\\nReturns inserted rows with assigned primary keys. Save these keys for\\nforeign key references in downstream record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row and one or more data rows. Header names must match field names exactly as defined on the record type. PK column may be omitted for auto-generated keys. Boolean fields: use 1 (true) or 0 (false) \\u2014 string values like 'true'/'false' are rejected. Date values: YYYY-MM-DD (e.g. 2026-03-20). Datetime values: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC. Fields containing commas, quotes, or newlines MUST be enclosed in double quotes per RFC 4180. Do NOT embed JSON in CSV fields \\u2014 use plain text.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:insertRecordData\"},{\"toolSpec\":{\"name\":\"updateRecordData\",\"description\":\"Update one or more rows of record data by primary key from CSV. Supports partial updates.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row (including PK column) and one or more data rows. Date values: ISO 8601 date format YYYY-MM-DD (e.g. 2026-03-20). Datetime values: ISO 8601 datetime without timezone: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: ISO 8601 time format HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordData\"},{\"toolSpec\":{\"name\":\"deleteRecordData\",\"description\":\"Delete one or more rows of record data by primary key from CSV.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with PK column header and one or more PK values (one per line).\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"createRecordType\",\"description\":\"Create a new Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"sourceType\":{\"description\":\"The type of data source. DATABASE connects to or creates a database table (use createTable to control DDL). Valid values: DATABASE, WEB_SERVICE, PROCESS, SALESFORCE.\",\"type\":\"string\"},\"createTable\":{\"default\":true,\"description\":\"When true, Appian creates the database table (mirrors the 'Create Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM tables are not yet supported.\",\"type\":\"boolean\"},\"tableName\":{\"type\":\"string\",\"description\":\"CDM: table name to create (defaults to snake_case of record type name). DATABASE: existing table name to connect to.\",\"default\":null},\"dataSourceUuid\":{\"type\":\"string\",\"description\":\"DATABASE: UUID of the data source containing the table. CDM: auto-resolved if omitted.\",\"default\":null},\"schema\":{\"type\":\"string\",\"description\":\"DATABASE: schema name. CDM: auto-resolved if omitted.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"fields\":{\"items\":{\"description\":\"Field definition for a record type.\",\"properties\":{\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to snake_case of fieldName)\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"description\":\"Column length for TEXT fields (0 = default)\",\"default\":null}},\"required\":[\"fieldName\",\"fieldType\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\",\"sourceType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createRecordType\"},{\"toolSpec\":{\"name\":\"updateRecordType\",\"description\":\"Update an existing Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"securityRules\":{\"items\":{\"description\":\"Record-level security rule defining who can see which records.\",\"properties\":{\"membershipType\":{\"description\":\"GROUPS, FIELDS, or RELATED_RECORDS\",\"type\":\"string\"},\"groupUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Group UUIDs. GROUPS membership only. Rule applies to members of the specified groups.\",\"default\":null},\"fieldUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"User or Group field UUIDs \\u2014 direct fields or related record fields. FIELDS membership only. Rule applies to any users found in the specified fields.\",\"default\":null},\"relationshipUuid\":{\"type\":\"string\",\"description\":\"Relationship UUID. RELATED_RECORDS membership only. Rule applies to any users who have access to the related record.\",\"default\":null},\"conditions\":{\"items\":{\"description\":\"Filter condition for record-level security rules.\",\"properties\":{\"field\":{\"description\":\"Record field UUID\",\"type\":\"string\"},\"operator\":{\"description\":\"Comparison operator (=, <>, <, >, <=, >=)\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Comparison value\"}},\"required\":[\"field\",\"operator\",\"value\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Additional filter conditions to further limit rule applicability.\",\"default\":null}},\"required\":[\"membershipType\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Full replacement of security rules. List order = evaluation order (first match wins). Empty list clears all rules.\",\"default\":null},\"securityExpression\":{\"type\":\"string\",\"description\":\"SAIL expression for record-level security. Set to null to clear. Omit to preserve current value. Record types using expressions cannot be referenced via RELATED_RECORDS membership.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordType\"},{\"toolSpec\":{\"name\":\"deleteRecordType\",\"description\":\"Permanently delete an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"addRecordTypeField\",\"description\":\"Add a field to an Appian record type. For CDM-backed record types, creates the corresponding database column.\\n\\nReturns the created field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to toSnakeCase(fieldName))\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to add the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldName\",\"fieldType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeField\"},{\"toolSpec\":{\"name\":\"updateRecordTypeField\",\"description\":\"Update a field on an Appian record type. Only provided fields are changed. For CDM-backed record types, type changes trigger ALTER TABLE.\\n\\nReturns the updated field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\",\"default\":null},\"fieldType\":{\"type\":\"string\",\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"default\":null},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to update the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeField\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeField\",\"description\":\"Delete a field from an Appian record type. For CDM-backed record types, drops the database column (destructive). Other source types only unmap the field. Primary key fields cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to drop the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"addRecordTypeRelationship\",\"description\":\"Add a relationship to an Appian record type.\\n\\nBoth the source and target record types must already exist. Use the exact\\nfield UUIDs returned from record type creation or retrieval responses \\u2014\\nnever fabricate UUIDs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\"},\"sourceRecordTypeFieldUuid\":{\"description\":\"UUID of the foreign key field on THIS (source) record type. Must be a real field UUID from the createRecordType or getRecordType response.\",\"type\":\"string\"},\"targetRecordTypeFieldUuid\":{\"description\":\"UUID of the primary key field on the TARGET record type. Must be a real field UUID from the target's createRecordType or getRecordType response. For system record types use SYSTEM_RECORD_TYPE_USER_FIELD_username or SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id.\",\"type\":\"string\"},\"targetRecordTypeUuid\":{\"description\":\"UUID of the target record type. For system record types use SYSTEM_RECORD_TYPE_USER (key field: SYSTEM_RECORD_TYPE_USER_FIELD_username) or SYSTEM_RECORD_TYPE_DOCUMENT (key field: SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id).\",\"type\":\"string\"},\"relationshipType\":{\"description\":\"ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipName\",\"sourceRecordTypeFieldUuid\",\"targetRecordTypeFieldUuid\",\"targetRecordTypeUuid\",\"relationshipType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"updateRecordTypeRelationship\",\"description\":\"Update a relationship on an Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\",\"default\":null},\"sourceRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeUuid\":{\"type\":\"string\",\"default\":null},\"relationshipType\":{\"type\":\"string\",\"description\":\"Type of relationship: ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"default\":null}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeRelationship\",\"description\":\"Delete a relationship from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"addRecordTypeAction\",\"description\":\"Add a record action to an Appian record type. Returns the created action including server-generated uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"actionType\":{\"description\":\"Type of record action: LIST_ACTION (record list) or RELATED_ACTION (record view)\",\"type\":\"string\"},\"key\":{\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code for the action button (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code. Default: 'f0e7'.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling visibility (default \\\"=true()\\\")\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"description\":\"SAIL expression passing record context to the process model. Only valid for RELATED_ACTION. Use a dictionary to pass record information into the related action. The keys in the dictionary map to the case-sensitive parameter names in the process model.\",\"default\":null}},\"required\":[\"uuid\",\"displayName\",\"processModelUuid\",\"actionType\",\"key\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeAction\"},{\"toolSpec\":{\"name\":\"updateRecordTypeAction\",\"description\":\"Update a record action by UUID with partial update semantics. Only provided fields are changed. actionType is immutable.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\",\"default\":null},\"processModelUuid\":{\"type\":\"string\",\"default\":null},\"key\":{\"type\":\"string\",\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeAction\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeAction\",\"description\":\"Delete a record action by UUID from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeAction\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"addRecordTypeView\",\"description\":\"Add a custom view (tab) to a record type. The first view added becomes the Summary view (urlStub \\\"summary\\\"); subsequent views get auto-generated urlStubs. All expression parameters accept SAIL expressions. Available variables: `rv!identifier` (record ID), `rv!record` (full record), `loggedInUser()`. For static values, use quoted strings (e.g. `'\\\"Order Details\\\"'`).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\"},\"interfaceExpression\":{\"type\":\"string\"},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Null = visible to all users.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Get UUIDs from listRecordTypeActions.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB (default), NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"nameExpression\",\"interfaceExpression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeView\"},{\"toolSpec\":{\"name\":\"updateRecordTypeView\",\"description\":\"Update fields on an existing view. Only provided fields are changed; omitted fields are preserved.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\",\"default\":null},\"interfaceExpression\":{\"type\":\"string\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Set to null to clear (visible to all). Omit to preserve current value.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Empty list clears all.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB, NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeView\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeView\",\"description\":\"Permanently delete a view from a record type. The Summary view cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeView\"},{\"toolSpec\":{\"name\":\"reorderRecordTypeViews\",\"description\":\"Reorder views on a record type. All existing urlStubs must be included.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStubs\":{\"description\":\"Ordered list of all view urlStubs representing desired tab order. Must include all existing urlStubs. Summary is always pinned first.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuid\",\"urlStubs\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:reorderRecordTypeViews\"},{\"toolSpec\":{\"name\":\"configureRecordEvents\",\"description\":\"Configure record events on an Appian record type (one-time setup).\\n\\nCreates four supporting record types (Event History, Event Type Lookup, Reply Thread,\\nSubscriber), wires relationships, copies security from the base record type, and persists\\nthe configuration. Returns 409 if record events are already configured.\\n\\nEvent types can be managed after initial setup by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\\n\\nReturns a RecordEventConfig with: four RT UUIDs (eventHistoryRecordTypeUuid,\\neventTypeLookupRecordTypeUuid, replyThreadRecordTypeUuid, subscriberRecordTypeUuid),\\nrelationship UUIDs (eventRelationshipUuid, eventTypeRelationshipUuid,\\neventReplyRelationshipUuid, subscriberRelationshipUuid), field UUIDs\\n(eventTypeValueFieldUuid, eventUserFieldUuid, eventTimestampFieldUuid,\\neventAutomationIdentifierFieldUuid, eventCommentFieldUuid, eventReplyUserFieldUuid,\\neventReplyCommentFieldUuid, eventReplyTimestampFieldUuid, subscriberUserFieldUuid),\\ncommentEventTypeId, generateCommonEvents, and eventTypes.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"eventTypes\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Event types representing key moments in the business lifecycle of this record. Use past-tense verb phrases (e.g. 'Created Order', 'Approved Application', 'Shipped Order'). Avoid generic recurring operations like 'Updated' \\u2014 focus on meaningful business activities that ideally occur once per record in a specific order.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:configureRecordEvents\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"addRecordTypeUserFilter\",\"description\":\"Add a user filter to a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"facetType\":{\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"allowMultipleSelections\":{\"default\":false,\"type\":\"boolean\"},\"useRelatedRecordValues\":{\"default\":false,\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"type\":\"boolean\"},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"name\",\"facetType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"updateRecordTypeUserFilter\",\"description\":\"Update a user filter on a record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"facetType\":{\"type\":\"string\",\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"orderIndex\":{\"type\":\"integer\",\"default\":null},\"allowMultipleSelections\":{\"type\":\"boolean\",\"default\":null},\"useRelatedRecordValues\":{\"type\":\"boolean\",\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"default\":null},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeUserFilter\",\"description\":\"Remove a user filter from a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"createSite\",\"description\":\"Create a new Appian site. Requires at least one page.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"webAddressIdentifier\":{\"type\":\"string\"},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav, default) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY (default), HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"name\",\"displayName\",\"webAddressIdentifier\",\"pages\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createSite\"},{\"toolSpec\":{\"name\":\"updateSite\",\"description\":\"Update an existing Appian site. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"webAddressIdentifier\":{\"type\":\"string\",\"default\":null},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY, HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateSite\"},{\"toolSpec\":{\"name\":\"deleteSite\",\"description\":\"Permanently delete an Appian site.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteSite\"},{\"toolSpec\":{\"name\":\"testRule\",\"description\":\"Execute an Appian rule with test inputs and return the result. Works for expression rules and integrations \\u2014 all rule-type objects in Appian. Pass the object's UUID, type, and an optional inputs map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Object type: EXPRESSION_RULE or INTEGRATION.\",\"enum\":[\"EXPRESSION_RULE\",\"INTEGRATION\"],\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testRule\"},{\"toolSpec\":{\"name\":\"validateDesignObject\",\"description\":\"Validate all expressions on a design object by UUID.\\n\\nReturns validation results including any expression errors found.\\nUse this to check for expression errors without performing a save.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateDesignObject\"},{\"toolSpec\":{\"name\":\"validateExpression\",\"description\":\"Validate a raw SAIL expression without saving it.\\n\\nRuns parse, discovery, and eval passes. No rule inputs or record\\nreferences are stubbed \\u2014 use for standalone expressions like freeform mockups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"expression\":{\"type\":\"string\"}},\"required\":[\"expression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateExpression\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"},{\"toolSpec\":{\"name\":\"createWebApi\",\"description\":\"Create a new Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"urlAlias\":{\"type\":\"string\"},\"httpMethod\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"urlAlias\",\"httpMethod\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createWebApi\"},{\"toolSpec\":{\"name\":\"updateWebApi\",\"description\":\"Update an existing Appian Web API. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateWebApi\"},{\"toolSpec\":{\"name\":\"deleteWebApi\",\"description\":\"Permanently delete an Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"f05dab06-91c0-49ce-bbcf-9bc95c3d9523","status":"QUEUED","status_url":"/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status"} | |
| [2026-04-14T18:27:15.103202+00:00] [fe179fcd] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status | |
| run_id: f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:27:15.107825+00:00] [c4b094c1] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/messages | |
| run_id: f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:27:42.375814+00:00] [e88131c4] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status | |
| run_id: f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:27:43.479115+00:00] [841759f6] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status | |
| run_id: f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:27:43.591246+00:00] [b9a1fce8] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| run_id: f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"f05dab06-91c0-49ce-bbcf-9bc95c3d9523","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":136295,"output_tokens":655,"total_tokens":136950},"tool_calls":4,"duration_seconds":27.49408507347107,"start_time":"1776191234.876782","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:27:14.876782Z","completed_at":"2026-04-14T18:27:42.370867Z","error":null} | |
| [2026-04-14T18:27:43.668716+00:00] [db389175] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status | |
| run_id: f05dab06-91c0-49ce-bbcf-9bc95c3d9523 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/f05dab06-91c0-49ce-bbcf-9bc95c3d9523/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:27:43.829644+00:00] [017b892d] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\n[user]: Step 1: Create Application: RSM Board Partner 20250327-1437\\n[assistant]: \\u2713 Step 1 completed successfully.\\n\\nTools called: execute_plan, createApplication, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n}\\n[user]: Step 2: Create Partner Group\\n[assistant]: \\u2713 Step 2 completed successfully.\\n\\nTools called: createGroup, addGroupMembers, createConstant, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n}\\n\\n## OBJECTS CREATED SO FAR\\n\\n### APPLICATION\\n[\\n {\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n }\\n]\\n### CONSTANT\\n[\\n {\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n }\\n]\\n\\n## FULL IMPLEMENTATION PLAN\\n\\n [\\u2713 COMPLETED] Step 1: Create Application: RSM Board Partner 20250327-1437\\n [\\u2713 COMPLETED] Step 2: Create Partner Group\\n>>> CURRENT TASK: Step 3 of 12\\n Create Record Type: RSMBP_Q7X Board Role (Reference)\\n implementation_notes: Type: Reference\\nSource: Requirements - 'Board/Committee Role' is a mandatory field\\nPurpose: Controlled vocabulary for board/committee roles\\nFields:\\n- id (Number, primary key)\\n- roleName (Text) - name of the role\\n- description (Text) - optional description\\n- isActive (Boolean) - whether this role is currently available for selection\\nPopulate with: Chair, Vice Chair, Treasurer, Secretary, Board Member, Committee Member, Advisor, Observer, Ex-Officio Member\\n\\n [\\u25cb UPCOMING] Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n [\\u25cb UPCOMING] Step 5: Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n [\\u25cb UPCOMING] Step 6: Configure Record Events on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 7: Configure User Filters on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 8: Create Form Interface: RSMBP_Q7X_SubmitBoardMembership\\n [\\u25cb UPCOMING] Step 9: Create Process Model: RSMBP_Q7X Submit Board Membership\\n [\\u25cb UPCOMING] Step 10: Create Record Action: Submit New Membership\\n [\\u25cb UPCOMING] Step 11: Create Dashboard Interface: RSMBP_Q7X_BoardMembershipDashboard\\n [\\u25cb UPCOMING] Step 12: Create Site: RSMBP_Q7X Board Partner Portal\\n\\n\\u26a0\\ufe0f CRITICAL: Execute ONLY the task marked as \\\"CURRENT TASK\\\" above.\\nUse the available tools to complete the current task. When finished, briefly explain what you did, then call set_task_status. The summary MUST come BEFORE set_task_status \\u2014 never after.\",\"system_prompt\":\"You are a Task Execution Agent that implements design objects in Appian applications. You are an expert Appian process designer with deep knowledge of BPMN 2.0 gateway semantics, process variable wiring, and incremental model construction.\\n\\nApplication Context: Application UUID: _a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\nApplication Prefix: RSMBPQ7X\\n\\n## YOUR ROLE\\n\\nYou receive tasks from a planner and must determine the implementation details yourself. The planner provides WHAT to create; you determine HOW to implement it with appropriate fields, relationships, and configurations.\\n\\n**CRITICAL: Always read the task's `implementation_notes` field.** \\n- It contains specific instructions from the planner about visibility, security, relationships, and constraints that you MUST follow. \\n- If `implementation_notes` says visibility should be restricted to a group, you MUST set `visibilityExpr` using that group's constant. If the constant does not exist, alert the user with the create_suggestion tool.\\n\\n## TASK LIFECYCLE\\n\\n- Execute ONLY the current task assigned to you. The engine controls task sequencing.\\n- When done, briefly explain what you created/changed in plain language, then call `set_task_status`. The summary MUST come BEFORE the `set_task_status` call \\u2014 never after it.\\n- ALWAYS call `set_task_status` independently and by itself as the very last action.\\n- If a task succeeds, call `set_task_status(status=\\\"success\\\")`.\\n- If a task fails after retries, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated.\\nWhen creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker).\\nThe app prefix MUST be unique. If application creation fails, it's usually due to duplicate prefixes.\\nUse this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## RULES\\n\\n1. \\ud83d\\uded1 **NEVER WRITE SAIL FOR INTERFACES OR EXPRESSION RULES DIRECTLY** \\nAlways use the following tools for actually generating the SAIL expression for interfaces:\\n - generate_interface_sail\\n - generate_expression_rule_sail\\n - edit_interface_sail\\n2. \\ud83d\\uded1 **NEVER CONFIGURE PROCESS MODEL NODES OR WORKFLOWS DIRECTLY** \\n You do NOT have access to node-level tools (createProcessModelNode, updateProcessModelNode, etc.).\\n The ONLY tools you may use for process model work:\\n - `createProcessModel` \\u2014 create the skeleton (name, description, folder)\\n - `updateProcessModel` \\u2014 set processVariables and startForm ONLY (no nodes)\\n - `generate_process_model` \\u2014 create a NEW workflow (delegates node design to the PM pipeline)\\n - `edit_process_model` \\u2014 modify an EXISTING workflow (delegates node changes to the PM pipeline)\\n \\n **To create a workflow**: createProcessModel \\u2192 updateProcessModel (PVs + startForm) \\u2192 generate_process_model\\n **To modify a workflow**: edit_process_model (pass the processModelUuid and what to change)\\n3. **ALWAYS USE BUSINESS LANGUAGE.** You MUST describe actions in business terms the user understands. NEVER mention tools or UUIDs in your responses.\\n4. **USE TOOL SCHEMAS**: Read the tool's parameter schema to determine exact accepted values. Do NOT guess enum values or parameter structures \\u2014 the tool schema is the source of truth.\\n5. \\ud83d\\uded1 **ONE TASK, ONE OBJECT**: You may ONLY create or modify the object specified in the current task. If you need to create or modify ANY other object (constant, group, interface, expression rule, record type, etc.) to complete the task, you MUST call `create_suggestion` to ask the user whether they want to handle it manually or let you do it. Do NOT create or modify unrelated objects yourself \\u2014 even if you're confident they're needed.\\n6. **ALWAYS USE create_suggestion TO GATHER USER INPUT**: If you need user input, you MUST call `create_suggestion` with the question and clickable options. Do not simply send the question as a message.\\n7. **NEVER FABRICATE UUIDs**: Every UUID in your output MUST come from an API response or the provided context map. If you don't have a UUID, call the appropriate `get*` or `list*` tool to retrieve it.\\n8. \\ud83d\\uded1 **SEQUENTIAL MUTATIONS**: When making multiple changes to the same object (e.g., adding relationships, fields, or user filters to a record type), you MUST wait for each call to return before making the next. Do NOT issue parallel calls that mutate the same object \\u2014 they will race and overwrite each other.\\n9. **USE PRIOR TASK CONTEXT**: The \\\"OBJECTS CREATED SO FAR\\\" section contains UUIDs, fields, and relationships from completed tasks. The execution history shows which tools were called in each prior task. Use these directly \\u2014 do NOT re-fetch objects via `getRecordType`, `getInterface`, etc. when the information is already in context. Only call `get*` tools for objects NOT listed in prior task results. If a prior task already called `addRecordTypeData` for a record type, do NOT insert data again.\\n10. **NEVER call `create_summary`** unless the user explicitly asks for a summary.\\n11. **ACCURATELY DESCRIBE ASYNC PIPELINES**: When summarizing background pipelines, identify each by its actual type (interface generation, process model generation, expression rule generation). Do not call them all \\\"interfaces.\\\"\\n12. **SWITCH APP CONTEXT WHEN NEEDED**: If the user refers to an application other than the one in your current context, call `set_app_context` with the correct application UUID before proceeding. Discover the UUID via `getApplication` or `listApplications` first.\\n13. **INCLUDE ALL REFERENCE TABLE FIELDS IN FORMS**: When generating a form interface, every foreign key field that references a reference/lookup table (roles, statuses, types, categories, etc.) MUST be included as a visible dropdown field \\u2014 never auto-populated or hidden. The user must always be able to select from reference table options.\\n\\n## ERROR HANDLING\\n\\n**Retry rules (for transient errors only):**\\n- If a tool call fails with a transient error (timeout, lock acquisition, 500), retry up to 2 more times (3 total). On retry, fix the specific error \\u2014 do NOT simplify the object.\\n- After 3 total attempts, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n- If a task requires a capability you don't have, call `set_task_status(status=\\\"failed\\\", reason=\\\"Unsupported: [reason]\\\")`. Do NOT loop or repeat the same explanation.\\n\\nWhen the user says \\\"skip\\\" or \\\"continue\\\", proceed to the next task immediately.\\n\\n## OBJECT IMPLEMENTATION GUIDE\\n\\n## Record Type Implementation Guide\\n\\nRecord types are created one at a time. There is no batch operation.\\n\\n### Creation Order\\n\\nCreate record types sequentially \\u2014 reference/lookup tables first, then entity tables that depend on them via foreign keys.\\n\\nEvery record type must have a primary key field. The primary key field MUST be named `id` and be of type `INTEGER`.\\n\\n### Relationships\\n\\nRelationships cannot be defined during record type creation because field UUIDs are not assigned until the record type exists. Always create the record type first, then wire relationships afterward.\\n\\nAfter creating each record type, check whether any relationships can now be wired \\u2014 meaning both the source and target record types already exist (from this or earlier tasks). Wire all applicable relationships before marking the task complete. Do not list \\\"add relationships\\\" as separate plan steps \\u2014 they are part of the record type creation task.\\n\\n### Relationship Workflow\\n\\n1. Create reference/lookup record types first \\u2014 save the returned UUIDs and field UUIDs\\n2. Create entity record types with foreign key fields \\u2014 save the returned UUIDs and field UUIDs\\n3. Wire relationships using the real field UUIDs from the creation responses\\n\\nWhen wiring a relationship, you need three pieces of information:\\n- The foreign key field UUID on the source record type (from its creation response)\\n- The primary key field UUID on the target record type (from its creation response)\\n- The UUID of the target record type itself\\n\\n**NEVER guess or fabricate field UUIDs.** Always use the exact UUIDs returned when the record type was created or retrieved.\\n\\n**Check the \\\"OBJECTS CREATED SO FAR\\\" section first** \\u2014 it contains field UUIDs for all record types created in earlier tasks. Use those directly. Only retrieve a record type's fields if it was created outside this plan and is not in the structured context.\\n\\n### User-Type Fields \\u2192 User System Record Type\\n\\nAny field whose type is USER (e.g., assigned_to, submitted_by, reviewer) must have a MANY_TO_ONE relationship wired to the built-in User system record type after creation. Do not create a User entity \\u2014 use the system record type instead.\\n\\n- System record type UUID: `SYSTEM_RECORD_TYPE_USER`\\n- User primary key field UUID: `SYSTEM_RECORD_TYPE_USER_FIELD_username`\\n- The User record type is WEB_SERVICE-backed \\u2014 you cannot insert data into it.\\n\\nName each relationship after the source field (e.g., a field called `assigned_to` gets a relationship named `assignedToUser`). Wire one relationship per USER-type field on the record type.\\n\\n### Sample Data\\n\\nEvery record type must have sample data inserted immediately after creation and relationship wiring, before marking the task complete. A record type without sample data is incomplete.\\n\\nUse the field names from the creation response as CSV column headers \\u2014 they must match exactly.\\n\\nPopulate realistic, internally consistent data that demonstrates the record type's purpose. Foreign key values must reference primary keys that actually exist in the related record type \\u2014 use values from prior insert responses. Omit the primary key column if it is auto-generated.\\n\\nFor fields of type USER, do not fabricate usernames. Query the User system record type (`SYSTEM_RECORD_TYPE_USER`) first to retrieve real, active usernames. Use only usernames that exist in the system, and vary assignments across rows.\\n\\n### Field Type Selection\\n\\n| Type | Use For |\\n|---|---|\\n| Text | Names, descriptions, emails |\\n| Integer | IDs, counts, foreign keys |\\n| Boolean | Status flags, yes/no values |\\n| Date | Dates without time |\\n| Datetime | Timestamps with time |\\n| Decimal | Money, percentages |\\n| User | Appian user references |\\n\\nUse the tool schema to determine exact accepted field type values \\u2014 do not guess.\\n\\n### Record Event Configuration\\n\\nWhen the plan calls for audit tracking or event history on a record type, configure record events on the primary record type after creation. Use meaningful past-tense business event types (e.g., \\\"Submitted\\\", \\\"Approved\\\", \\\"Rejected\\\") \\u2014 not generic labels.\\n\\nSupporting record types (Event History, Event Type Lookup, Reply Thread, and Subscriber record types with proper relationships and security inherited from the base record type) are auto-created by the platform. Do not create these manually.\\n\\n### EXPRESSION User Filters\\n\\nWhen the plan calls for an EXPRESSION-type user filter (dynamic options, computed defaults, or any filter needing SAIL logic), generate the SAIL expression rather than writing it by hand. Use the available tooling to produce valid filter expressions, then apply the result when adding the user filter with facetType \\\"EXPRESSION\\\".\\n\\n### User Filter Field References\\n\\nBefore adding user filters, **always retrieve the record type first** to get the full list of field UUIDs. **Never fabricate a UUID** \\u2014 use only UUIDs returned from the record type.\\n\\nTo add a filter on a **related record's** field, you must first retrieve the related record type to get its field UUIDs.\\n\\n### LIST_OF_VALUES Filters on Related Records\\n\\nWhen a LIST_OF_VALUES filter is on a field from a related record (via a M:1 relationship), use **related record values** instead of manually constructing an options array. This dynamically populates filter options from the related record type:\\n- `useRelatedRecordValues: true`\\n- `sourceRef`: the FK field UUID on the source record type (or `RELATIONSHIP_UUID/FIELD_UUID`)\\n- `relatedRecordDisplayField`: UUID of a Text field on the related record type to use as option labels (e.g., the `name` or `label` field)\\n- `relatedRecordSort`: `ASCENDING`, `DESCENDING`, or `UNSORTED`\\n- Do NOT provide an `options` array \\u2014 the platform populates options automatically\\n\\nExample for a status filter where the source record has a FK to a Status lookup table:\\n```json\\n{\\n \\\"facetType\\\": \\\"LIST_OF_VALUES\\\",\\n \\\"sourceRef\\\": \\\"STATUS_FK_FIELD_UUID\\\",\\n \\\"useRelatedRecordValues\\\": true,\\n \\\"relatedRecordDisplayField\\\": \\\"STATUS_NAME_FIELD_UUID\\\",\\n \\\"relatedRecordSort\\\": \\\"ASCENDING\\\"\\n}\\n```\\n\\nFor LIST_OF_VALUES filters on a local field (no relationship), provide the `options` array with explicit buckets instead.\\n\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"generate_interface_sail\",\"description\":\"Generate a SAIL UI using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\\n\\nArgs:\\n request: Description of the UI to generate (e.g., \\\"Create an employee dashboard\\\").\\n interfaceType: Type of interface - \\\"dashboard\\\", \\\"form\\\", or \\\"component\\\".\\n recordTypeUuids: Optional list of record type UUIDs for data model discovery in Phase 2.\\n interfaceUuid: Optional interface UUID. If provided, Phase 2 will validate and save SAIL to the interface.\\n\\nReturns:\\n Dict with success=True and async=True if validation passed and pipeline was launched.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceType\":{\"default\":\"dashboard\",\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null},\"interfaceUuid\":{\"type\":\"string\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_expression_rule_sail\",\"description\":\"Generate a SAIL expression for an expression rule using a single-phase agent workflow.\\n\\nArgs:\\n request: Description of what the expression rule should do.\\n expressionRuleUuid: Optional UUID. If provided, validates and saves the expression to the rule.\\n recordTypeUuids: Optional record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success, expression, and expression_rule_uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"expressionRuleUuid\":{\"type\":\"string\",\"default\":null},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_expression_rule_sail\"},{\"toolSpec\":{\"name\":\"edit_interface_sail\",\"description\":\"Edit an existing interface's SAIL expression using targeted edits.\\n\\nFetches the interface's current expression, loads it into an in-memory buffer,\\nand runs an agent that makes surgical edits via str_replace_sail. Runs synchronously\\n\\u2014 blocks until the edit is complete and returns the result.\\n\\nArgs:\\n request: Description of the change to make (e.g., \\\"Add a search box above the grid\\\").\\n interfaceUuid: UUID of the interface to edit (required).\\n recordTypeUuids: Optional list of record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success/failure and details.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"interfaceUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:edit_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_process_model\",\"description\":\"Generate process model nodes using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"hasStartForm\":{\"default\":false,\"type\":\"boolean\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:generate_process_model\"},{\"toolSpec\":{\"name\":\"edit_process_model\",\"description\":\"Edit an existing process model using a two-phase agent workflow (async).\\n\\nFetches the current model state, passes it to the drafter as context,\\nthen validates and saves via the reviewer.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:edit_process_model\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"createApplication\",\"description\":\"Create a new Appian application. The API automatically generates default objects (groups, folders, etc.) and associates them with the application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\",\"description\":\"Application prefix for object naming conventions (e.g. \\\"CUST\\\"). Auto-generated from the name if not provided.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createApplication\"},{\"toolSpec\":{\"name\":\"addObjectsToApplication\",\"description\":\"Add design objects to an Appian application. Most create tools now accept appUuid directly \\u2014 use this tool mainly for associating pre-existing objects with an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"objects\":{\"items\":{\"description\":\"Reference to a design object for application association.\",\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Design object type, e.g. CONSTANT, INTERFACE, PROCESS_MODEL, EXPRESSION_RULE, RECORD_TYPE, SITE, GROUP, DATA_TYPE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"appUuid\",\"objects\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addObjectsToApplication\"},{\"toolSpec\":{\"name\":\"deleteApplication\",\"description\":\"Permanently delete an Appian application. This removes the application container only \\u2014 all design objects (records, interfaces, process models, etc.) that were part of the application are preserved and become unassociated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"createConnectedSystem\",\"description\":\"Create a new Appian connected system.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateConnectedSystem\\n\\u2192 repeat until all required fields are populated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Connected system type identifier (see listConnectedSystemTypes)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateConnectedSystem, and repeat until all required fields are populated. Changing a discriminator field (e.g., authType) may change which fields appear in the next response.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConnectedSystem\"},{\"toolSpec\":{\"name\":\"updateConnectedSystem\",\"description\":\"Update an existing Appian connected system. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map \\u2014 if you changed a discriminator field (e.g., authType), the schema may change: new fields appear, old fields disappear from both `schema` and `properties`.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConnectedSystem\"},{\"toolSpec\":{\"name\":\"deleteConnectedSystem\",\"description\":\"Permanently delete an Appian connected system.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"createConstant\",\"description\":\"Create a new Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"type\",\"value\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConstant\"},{\"toolSpec\":{\"name\":\"updateConstant\",\"description\":\"Update an existing Appian constant. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"type\":{\"type\":\"string\",\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"default\":null},\"value\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConstant\"},{\"toolSpec\":{\"name\":\"deleteConstant\",\"description\":\"Permanently delete an Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"updateDocument\",\"description\":\"Update an existing Appian document. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateDocument\"},{\"toolSpec\":{\"name\":\"deleteDocument\",\"description\":\"Permanently delete an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"replaceDocumentContent\",\"description\":\"Replace the content of an Appian document. Content is plain text \\u2014 it will be base64-encoded automatically.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:replaceDocumentContent\"},{\"toolSpec\":{\"name\":\"uploadDocument\",\"description\":\"Upload a new document with file content to a folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"The document name including extension (max 255 characters), e.g. \\\"Annual Report.pdf\\\".\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"The UUID of the parent folder.\",\"type\":\"string\"},\"content\":{\"description\":\"The file content as a plain string \\u2014 it will be base64-encoded automatically.\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"extension\":{\"type\":\"string\",\"description\":\"Optional file extension without dot (auto-detected from name if not provided), e.g. \\\"pdf\\\".\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:uploadDocument\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"createExpressionRule\",\"description\":\"Create a new Appian expression rule.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createExpressionRule\"},{\"toolSpec\":{\"name\":\"updateExpressionRule\",\"description\":\"Update an existing Appian expression rule. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateExpressionRule\"},{\"toolSpec\":{\"name\":\"deleteExpressionRule\",\"description\":\"Permanently delete an Appian expression rule.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"createFolder\",\"description\":\"Create a new Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"parentFolderUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createFolder\"},{\"toolSpec\":{\"name\":\"updateFolder\",\"description\":\"Update an existing Appian folder. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateFolder\"},{\"toolSpec\":{\"name\":\"deleteFolder\",\"description\":\"Permanently delete an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"createGroup\",\"description\":\"Create a new Appian group.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"parentGroupName\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"addGroupMembers\",\"description\":\"Add members to an Appian group. Accepts a batch of users and/or groups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"members\":{\"items\":{\"description\":\"Reference to a group member for add/remove operations.\",\"properties\":{\"type\":{\"description\":\"Member type: 'user' or 'group'\",\"type\":\"string\"},\"id\":{\"description\":\"Username for users, group name for groups\",\"type\":\"string\"}},\"required\":[\"type\",\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"groupName\",\"members\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addGroupMembers\"},{\"toolSpec\":{\"name\":\"removeGroupMember\",\"description\":\"Remove a direct member from an Appian group. Only direct members can be removed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"memberType\":{\"description\":\"Type of member to remove: 'user' or 'group'.\",\"type\":\"string\"},\"memberId\":{\"description\":\"Username for users, group name for groups.\",\"type\":\"string\"}},\"required\":[\"groupName\",\"memberType\",\"memberId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:removeGroupMember\"},{\"toolSpec\":{\"name\":\"deleteGroup\",\"description\":\"Permanently delete an Appian group by name. This operation cannot be undone.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteGroup\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"createIntegration\",\"description\":\"Create a new Appian integration.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateIntegration\\n\\u2192 repeat until all required fields are populated.\\n\\nDo NOT guess at property names or values \\u2014 inspect the `schema` in the\\nresponse first, then use updateIntegration to set the fields you need.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"Integration name. Must not contain spaces.\",\"type\":\"string\"},\"connectedSystemUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier from the connected system type's operations list (see listConnectedSystemTypes).\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateIntegration, and repeat until all required fields are populated. Do not guess at property names \\u2014 always inspect the schema from the create response first. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters. Each dict has: name (str), type (str, e.g. 'Text'), description (str, optional).\",\"default\":null}},\"required\":[\"name\",\"connectedSystemUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createIntegration\"},{\"toolSpec\":{\"name\":\"updateIntegration\",\"description\":\"Update an existing Appian integration. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Integration name. Must not contain spaces.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier. Changing this switches the integration to a different operation.\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters (full replacement \\u2014 replaces all existing inputs)\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateIntegration\"},{\"toolSpec\":{\"name\":\"deleteIntegration\",\"description\":\"Permanently delete an Appian integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"createInterface\",\"description\":\"Create a new Appian interface.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createInterface\"},{\"toolSpec\":{\"name\":\"updateInterface\",\"description\":\"Update an existing Appian interface. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateInterface\"},{\"toolSpec\":{\"name\":\"deleteInterface\",\"description\":\"Permanently delete an Appian interface.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteInterface\"},{\"toolSpec\":{\"name\":\"testInterface\",\"description\":\"Evaluate an Appian interface with test inputs and check for runtime errors. Use diagnostics.error to detect rendering failures that syntax validation misses (bad record references, type mismatches, missing inputs). The result contains the rendered SAIL component tree.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"updateObjectSecurity\",\"description\":\"Set the security role map for a design object by UUID.\\n\\nFull replacement \\u2014 roles not included are cleared.\\nOnly roleName and groupNames are used; inheritedGroupNames is read-only\\nand ignored on PUT.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"roles\":{\"items\":{\"description\":\"Role-to-groups mapping for object security.\",\"properties\":{\"roleName\":{\"description\":\"Use getObjectSecurity to see valid roles for the object type.\",\"type\":\"string\"},\"groupNames\":{\"default\":[],\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"roleName\"],\"type\":\"object\"},\"type\":\"array\"},\"inheritSecurity\":{\"default\":true,\"description\":\"For content-backed objects (constants, expression rules, interfaces, documents, folders), whether this object inherits security from its parent. Ignored for non-content objects.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"roles\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"createProcessModel\",\"description\":\"Create a new Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Process Model Folder UUID (see listProcessModelFolders)\",\"type\":\"string\"},\"errorAlertGroupName\":{\"description\":\"Error alert group name (see listGroups)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null}},\"required\":[\"name\",\"description\",\"parentFolderUuid\",\"errorAlertGroupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModel\",\"description\":\"Permanently delete an Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"updateProcessModel\",\"description\":\"Update an existing Appian process model. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"processVariables\":{\"items\":{\"description\":\"Schema for a process model variable supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Variable name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"isParameter\":{\"type\":\"boolean\",\"description\":\"Expose as a process parameter (visible to callers like record actions, subprocesses, and start forms)\",\"default\":null},\"isRequired\":{\"type\":\"boolean\",\"description\":\"Whether this parameter is required\",\"default\":null},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this variable holds a list of values. Defaults to false.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process variables. Set isParameter=true to expose as inputs for record actions, subprocesses, or start forms.\",\"default\":null},\"nodes\":{\"items\":{\"description\":\"A node in a process model flow.\",\"properties\":{\"id\":{\"description\":\"Node ID, unique within the process model\",\"type\":\"integer\"},\"type\":{\"description\":\"Node type ID from listProcessModelNodeTypes, e.g. core.0, internal3.integration, event.timer\",\"type\":\"string\"},\"name\":{\"description\":\"Label shown on the process modeler canvas\",\"type\":\"string\"},\"coordinates\":{\"description\":\"Canvas position [x, y]\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"connections\":{\"default\":[],\"description\":\"Outgoing node IDs. Empty for End Event.\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"data\":{\"description\":\"Data/Setup tab configuration for activity and event nodes.\\nDo NOT use ac! references in downstream nodes \\u2014 ac! is scoped to the node it belongs to.\",\"properties\":{\"inputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined inputs from getProcessModelNodeTypeSchema\",\"default\":null},\"outputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined outputs. Set saveInto to wire to a PV.\",\"default\":null},\"customInputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined input parameters\",\"default\":null},\"customOutputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined output expressions\",\"default\":null}},\"type\":\"object\",\"default\":null},\"decision\":{\"description\":\"Decision tab configuration for XOR and OR gateways.\",\"properties\":{\"conditions\":{\"description\":\"Ordered conditions evaluated top-to-bottom, first match wins\",\"items\":{\"description\":\"A condition rule on an XOR or OR gateway.\",\"properties\":{\"expression\":{\"description\":\"SAIL boolean expression\",\"type\":\"string\"},\"targetNodeId\":{\"description\":\"Target node ID when condition is true\",\"type\":\"integer\"},\"label\":{\"type\":\"string\",\"default\":null}},\"required\":[\"expression\",\"targetNodeId\"],\"type\":\"object\"},\"type\":\"array\"},\"defaultPath\":{\"description\":\"Target node ID when no condition matches\",\"type\":\"integer\"}},\"required\":[\"conditions\",\"defaultPath\"],\"type\":\"object\",\"default\":null},\"assignment\":{\"description\":\"Assignment tab configuration for activity nodes.\",\"properties\":{\"attended\":{\"type\":\"boolean\",\"description\":\"true=user task, false=system executes. Required for ATTENDED_OR_UNATTENDED node types.\",\"default\":null},\"assignTo\":{\"type\":\"string\",\"description\":\"SAIL expression for assignee, default pp!initiator\",\"default\":null},\"reassignPrivileges\":{\"type\":\"string\",\"description\":\"NONE, REJECT_ONLY, REASSIGN_WITHIN_POOL, or REASSIGN_TO_ANY (default)\",\"default\":null},\"runAs\":{\"type\":\"string\",\"description\":\"INITIATOR (default) or DESIGNER, for unattended nodes\",\"default\":null},\"overrideLane\":{\"type\":\"boolean\",\"description\":\"Override swimlane assignment\",\"default\":null}},\"type\":\"object\",\"default\":null},\"forms\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"id\",\"type\",\"name\",\"coordinates\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process model nodes. Use listProcessModelNodeTypes for available types and getProcessModelNodeTypeSchema for node parameters.\",\"default\":null},\"startForm\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateProcessModel\"},{\"toolSpec\":{\"name\":\"testProcessModel\",\"description\":\"Start a process model, wait for completion, and return process variable values. Only works for unattended process models (no user input tasks). Returns processId, status, and processVariables map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of process parameter values to pass on start.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for the process to complete. Default: 30. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModelNode\",\"description\":\"Remove a node and clean up all incoming/outgoing connections.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"insertRecordData\",\"description\":\"Insert one or more rows of record data from CSV.\\n\\nReturns inserted rows with assigned primary keys. Save these keys for\\nforeign key references in downstream record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row and one or more data rows. Header names must match field names exactly as defined on the record type. PK column may be omitted for auto-generated keys. Boolean fields: use 1 (true) or 0 (false) \\u2014 string values like 'true'/'false' are rejected. Date values: YYYY-MM-DD (e.g. 2026-03-20). Datetime values: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC. Fields containing commas, quotes, or newlines MUST be enclosed in double quotes per RFC 4180. Do NOT embed JSON in CSV fields \\u2014 use plain text.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:insertRecordData\"},{\"toolSpec\":{\"name\":\"updateRecordData\",\"description\":\"Update one or more rows of record data by primary key from CSV. Supports partial updates.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row (including PK column) and one or more data rows. Date values: ISO 8601 date format YYYY-MM-DD (e.g. 2026-03-20). Datetime values: ISO 8601 datetime without timezone: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: ISO 8601 time format HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordData\"},{\"toolSpec\":{\"name\":\"deleteRecordData\",\"description\":\"Delete one or more rows of record data by primary key from CSV.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with PK column header and one or more PK values (one per line).\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"createRecordType\",\"description\":\"Create a new Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"sourceType\":{\"description\":\"The type of data source. DATABASE connects to or creates a database table (use createTable to control DDL). Valid values: DATABASE, WEB_SERVICE, PROCESS, SALESFORCE.\",\"type\":\"string\"},\"createTable\":{\"default\":true,\"description\":\"When true, Appian creates the database table (mirrors the 'Create Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM tables are not yet supported.\",\"type\":\"boolean\"},\"tableName\":{\"type\":\"string\",\"description\":\"CDM: table name to create (defaults to snake_case of record type name). DATABASE: existing table name to connect to.\",\"default\":null},\"dataSourceUuid\":{\"type\":\"string\",\"description\":\"DATABASE: UUID of the data source containing the table. CDM: auto-resolved if omitted.\",\"default\":null},\"schema\":{\"type\":\"string\",\"description\":\"DATABASE: schema name. CDM: auto-resolved if omitted.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"fields\":{\"items\":{\"description\":\"Field definition for a record type.\",\"properties\":{\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to snake_case of fieldName)\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"description\":\"Column length for TEXT fields (0 = default)\",\"default\":null}},\"required\":[\"fieldName\",\"fieldType\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\",\"sourceType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createRecordType\"},{\"toolSpec\":{\"name\":\"updateRecordType\",\"description\":\"Update an existing Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"securityRules\":{\"items\":{\"description\":\"Record-level security rule defining who can see which records.\",\"properties\":{\"membershipType\":{\"description\":\"GROUPS, FIELDS, or RELATED_RECORDS\",\"type\":\"string\"},\"groupUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Group UUIDs. GROUPS membership only. Rule applies to members of the specified groups.\",\"default\":null},\"fieldUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"User or Group field UUIDs \\u2014 direct fields or related record fields. FIELDS membership only. Rule applies to any users found in the specified fields.\",\"default\":null},\"relationshipUuid\":{\"type\":\"string\",\"description\":\"Relationship UUID. RELATED_RECORDS membership only. Rule applies to any users who have access to the related record.\",\"default\":null},\"conditions\":{\"items\":{\"description\":\"Filter condition for record-level security rules.\",\"properties\":{\"field\":{\"description\":\"Record field UUID\",\"type\":\"string\"},\"operator\":{\"description\":\"Comparison operator (=, <>, <, >, <=, >=)\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Comparison value\"}},\"required\":[\"field\",\"operator\",\"value\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Additional filter conditions to further limit rule applicability.\",\"default\":null}},\"required\":[\"membershipType\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Full replacement of security rules. List order = evaluation order (first match wins). Empty list clears all rules.\",\"default\":null},\"securityExpression\":{\"type\":\"string\",\"description\":\"SAIL expression for record-level security. Set to null to clear. Omit to preserve current value. Record types using expressions cannot be referenced via RELATED_RECORDS membership.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordType\"},{\"toolSpec\":{\"name\":\"deleteRecordType\",\"description\":\"Permanently delete an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"addRecordTypeField\",\"description\":\"Add a field to an Appian record type. For CDM-backed record types, creates the corresponding database column.\\n\\nReturns the created field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to toSnakeCase(fieldName))\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to add the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldName\",\"fieldType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeField\"},{\"toolSpec\":{\"name\":\"updateRecordTypeField\",\"description\":\"Update a field on an Appian record type. Only provided fields are changed. For CDM-backed record types, type changes trigger ALTER TABLE.\\n\\nReturns the updated field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\",\"default\":null},\"fieldType\":{\"type\":\"string\",\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"default\":null},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to update the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeField\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeField\",\"description\":\"Delete a field from an Appian record type. For CDM-backed record types, drops the database column (destructive). Other source types only unmap the field. Primary key fields cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to drop the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"addRecordTypeRelationship\",\"description\":\"Add a relationship to an Appian record type.\\n\\nBoth the source and target record types must already exist. Use the exact\\nfield UUIDs returned from record type creation or retrieval responses \\u2014\\nnever fabricate UUIDs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\"},\"sourceRecordTypeFieldUuid\":{\"description\":\"UUID of the foreign key field on THIS (source) record type. Must be a real field UUID from the createRecordType or getRecordType response.\",\"type\":\"string\"},\"targetRecordTypeFieldUuid\":{\"description\":\"UUID of the primary key field on the TARGET record type. Must be a real field UUID from the target's createRecordType or getRecordType response. For system record types use SYSTEM_RECORD_TYPE_USER_FIELD_username or SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id.\",\"type\":\"string\"},\"targetRecordTypeUuid\":{\"description\":\"UUID of the target record type. For system record types use SYSTEM_RECORD_TYPE_USER (key field: SYSTEM_RECORD_TYPE_USER_FIELD_username) or SYSTEM_RECORD_TYPE_DOCUMENT (key field: SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id).\",\"type\":\"string\"},\"relationshipType\":{\"description\":\"ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipName\",\"sourceRecordTypeFieldUuid\",\"targetRecordTypeFieldUuid\",\"targetRecordTypeUuid\",\"relationshipType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"updateRecordTypeRelationship\",\"description\":\"Update a relationship on an Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\",\"default\":null},\"sourceRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeUuid\":{\"type\":\"string\",\"default\":null},\"relationshipType\":{\"type\":\"string\",\"description\":\"Type of relationship: ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"default\":null}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeRelationship\",\"description\":\"Delete a relationship from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"addRecordTypeAction\",\"description\":\"Add a record action to an Appian record type. Returns the created action including server-generated uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"actionType\":{\"description\":\"Type of record action: LIST_ACTION (record list) or RELATED_ACTION (record view)\",\"type\":\"string\"},\"key\":{\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code for the action button (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code. Default: 'f0e7'.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling visibility (default \\\"=true()\\\")\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"description\":\"SAIL expression passing record context to the process model. Only valid for RELATED_ACTION. Use a dictionary to pass record information into the related action. The keys in the dictionary map to the case-sensitive parameter names in the process model.\",\"default\":null}},\"required\":[\"uuid\",\"displayName\",\"processModelUuid\",\"actionType\",\"key\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeAction\"},{\"toolSpec\":{\"name\":\"updateRecordTypeAction\",\"description\":\"Update a record action by UUID with partial update semantics. Only provided fields are changed. actionType is immutable.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\",\"default\":null},\"processModelUuid\":{\"type\":\"string\",\"default\":null},\"key\":{\"type\":\"string\",\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeAction\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeAction\",\"description\":\"Delete a record action by UUID from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeAction\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"addRecordTypeView\",\"description\":\"Add a custom view (tab) to a record type. The first view added becomes the Summary view (urlStub \\\"summary\\\"); subsequent views get auto-generated urlStubs. All expression parameters accept SAIL expressions. Available variables: `rv!identifier` (record ID), `rv!record` (full record), `loggedInUser()`. For static values, use quoted strings (e.g. `'\\\"Order Details\\\"'`).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\"},\"interfaceExpression\":{\"type\":\"string\"},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Null = visible to all users.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Get UUIDs from listRecordTypeActions.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB (default), NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"nameExpression\",\"interfaceExpression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeView\"},{\"toolSpec\":{\"name\":\"updateRecordTypeView\",\"description\":\"Update fields on an existing view. Only provided fields are changed; omitted fields are preserved.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\",\"default\":null},\"interfaceExpression\":{\"type\":\"string\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Set to null to clear (visible to all). Omit to preserve current value.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Empty list clears all.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB, NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeView\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeView\",\"description\":\"Permanently delete a view from a record type. The Summary view cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeView\"},{\"toolSpec\":{\"name\":\"reorderRecordTypeViews\",\"description\":\"Reorder views on a record type. All existing urlStubs must be included.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStubs\":{\"description\":\"Ordered list of all view urlStubs representing desired tab order. Must include all existing urlStubs. Summary is always pinned first.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuid\",\"urlStubs\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:reorderRecordTypeViews\"},{\"toolSpec\":{\"name\":\"configureRecordEvents\",\"description\":\"Configure record events on an Appian record type (one-time setup).\\n\\nCreates four supporting record types (Event History, Event Type Lookup, Reply Thread,\\nSubscriber), wires relationships, copies security from the base record type, and persists\\nthe configuration. Returns 409 if record events are already configured.\\n\\nEvent types can be managed after initial setup by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\\n\\nReturns a RecordEventConfig with: four RT UUIDs (eventHistoryRecordTypeUuid,\\neventTypeLookupRecordTypeUuid, replyThreadRecordTypeUuid, subscriberRecordTypeUuid),\\nrelationship UUIDs (eventRelationshipUuid, eventTypeRelationshipUuid,\\neventReplyRelationshipUuid, subscriberRelationshipUuid), field UUIDs\\n(eventTypeValueFieldUuid, eventUserFieldUuid, eventTimestampFieldUuid,\\neventAutomationIdentifierFieldUuid, eventCommentFieldUuid, eventReplyUserFieldUuid,\\neventReplyCommentFieldUuid, eventReplyTimestampFieldUuid, subscriberUserFieldUuid),\\ncommentEventTypeId, generateCommonEvents, and eventTypes.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"eventTypes\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Event types representing key moments in the business lifecycle of this record. Use past-tense verb phrases (e.g. 'Created Order', 'Approved Application', 'Shipped Order'). Avoid generic recurring operations like 'Updated' \\u2014 focus on meaningful business activities that ideally occur once per record in a specific order.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:configureRecordEvents\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"addRecordTypeUserFilter\",\"description\":\"Add a user filter to a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"facetType\":{\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"allowMultipleSelections\":{\"default\":false,\"type\":\"boolean\"},\"useRelatedRecordValues\":{\"default\":false,\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"type\":\"boolean\"},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"name\",\"facetType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"updateRecordTypeUserFilter\",\"description\":\"Update a user filter on a record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"facetType\":{\"type\":\"string\",\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"orderIndex\":{\"type\":\"integer\",\"default\":null},\"allowMultipleSelections\":{\"type\":\"boolean\",\"default\":null},\"useRelatedRecordValues\":{\"type\":\"boolean\",\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"default\":null},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeUserFilter\",\"description\":\"Remove a user filter from a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"createSite\",\"description\":\"Create a new Appian site. Requires at least one page.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"webAddressIdentifier\":{\"type\":\"string\"},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav, default) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY (default), HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"name\",\"displayName\",\"webAddressIdentifier\",\"pages\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createSite\"},{\"toolSpec\":{\"name\":\"updateSite\",\"description\":\"Update an existing Appian site. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"webAddressIdentifier\":{\"type\":\"string\",\"default\":null},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY, HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateSite\"},{\"toolSpec\":{\"name\":\"deleteSite\",\"description\":\"Permanently delete an Appian site.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteSite\"},{\"toolSpec\":{\"name\":\"testRule\",\"description\":\"Execute an Appian rule with test inputs and return the result. Works for expression rules and integrations \\u2014 all rule-type objects in Appian. Pass the object's UUID, type, and an optional inputs map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Object type: EXPRESSION_RULE or INTEGRATION.\",\"enum\":[\"EXPRESSION_RULE\",\"INTEGRATION\"],\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testRule\"},{\"toolSpec\":{\"name\":\"validateDesignObject\",\"description\":\"Validate all expressions on a design object by UUID.\\n\\nReturns validation results including any expression errors found.\\nUse this to check for expression errors without performing a save.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateDesignObject\"},{\"toolSpec\":{\"name\":\"validateExpression\",\"description\":\"Validate a raw SAIL expression without saving it.\\n\\nRuns parse, discovery, and eval passes. No rule inputs or record\\nreferences are stubbed \\u2014 use for standalone expressions like freeform mockups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"expression\":{\"type\":\"string\"}},\"required\":[\"expression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateExpression\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"},{\"toolSpec\":{\"name\":\"createWebApi\",\"description\":\"Create a new Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"urlAlias\":{\"type\":\"string\"},\"httpMethod\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"urlAlias\",\"httpMethod\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createWebApi\"},{\"toolSpec\":{\"name\":\"updateWebApi\",\"description\":\"Update an existing Appian Web API. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateWebApi\"},{\"toolSpec\":{\"name\":\"deleteWebApi\",\"description\":\"Permanently delete an Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"44b8fe38-aee8-4017-915b-1d114540bfa1","status":"QUEUED","status_url":"/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status"} | |
| [2026-04-14T18:27:44.055117+00:00] [94d9ce57] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status | |
| run_id: 44b8fe38-aee8-4017-915b-1d114540bfa1 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:27:44.062970+00:00] [79311b82] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/messages | |
| run_id: 44b8fe38-aee8-4017-915b-1d114540bfa1 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:28:09.788763+00:00] [40340c93] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status | |
| run_id: 44b8fe38-aee8-4017-915b-1d114540bfa1 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:28:09.857847+00:00] [987c0b60] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1 | |
| run_id: 44b8fe38-aee8-4017-915b-1d114540bfa1 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"44b8fe38-aee8-4017-915b-1d114540bfa1","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":117252,"output_tokens":803,"total_tokens":118055},"tool_calls":3,"duration_seconds":25.97020697593689,"start_time":"1776191263.762916","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:27:43.762916Z","completed_at":"2026-04-14T18:28:09.733123Z","error":null} | |
| [2026-04-14T18:28:09.920015+00:00] [a42a5a6a] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status | |
| run_id: 44b8fe38-aee8-4017-915b-1d114540bfa1 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/44b8fe38-aee8-4017-915b-1d114540bfa1/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:28:10.051811+00:00] [1e8c50f4] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\n[user]: Step 1: Create Application: RSM Board Partner 20250327-1437\\n[assistant]: \\u2713 Step 1 completed successfully.\\n\\nTools called: execute_plan, createApplication, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n}\\n[user]: Step 2: Create Partner Group\\n[assistant]: \\u2713 Step 2 completed successfully.\\n\\nTools called: createGroup, addGroupMembers, createConstant, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n}\\n[user]: Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n[assistant]: \\u2713 Step 3 completed successfully.\\n\\nTools called: createRecordType, insertRecordData, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Role\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"00432adc-17f8-4585-bb88-f6966760c865\\\",\\n \\\"fieldName\\\": \\\"roleName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Role Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"cb20fb2c-b414-4f1b-9499-98bb5bb273de\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"bb29534a-a90b-4d1d-890d-f51521434b63\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n}\\n\\n## OBJECTS CREATED SO FAR\\n\\n### APPLICATION\\n[\\n {\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n }\\n]\\n### CONSTANT\\n[\\n {\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n }\\n]\\n### RECORD\\n[\\n {\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Role\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"00432adc-17f8-4585-bb88-f6966760c865\\\",\\n \\\"fieldName\\\": \\\"roleName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Role Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"cb20fb2c-b414-4f1b-9499-98bb5bb273de\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"bb29534a-a90b-4d1d-890d-f51521434b63\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n }\\n]\\n\\n## FULL IMPLEMENTATION PLAN\\n\\n [\\u2713 COMPLETED] Step 1: Create Application: RSM Board Partner 20250327-1437\\n [\\u2713 COMPLETED] Step 2: Create Partner Group\\n [\\u2713 COMPLETED] Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n>>> CURRENT TASK: Step 4 of 12\\n Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n implementation_notes: Type: Reference\\nSource: Best Practice - Normalizing lifecycle states for board/committee memberships\\nPurpose: Track the current state of each membership record\\nFields:\\n- id (Number, primary key)\\n- statusName (Text) - name of the status\\n- description (Text) - optional description\\n- isActive (Boolean) - whether this status is currently available\\nPopulate with: Active, Inactive, Pending, Completed, Withdrawn\\n\\n [\\u25cb UPCOMING] Step 5: Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n [\\u25cb UPCOMING] Step 6: Configure Record Events on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 7: Configure User Filters on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 8: Create Form Interface: RSMBP_Q7X_SubmitBoardMembership\\n [\\u25cb UPCOMING] Step 9: Create Process Model: RSMBP_Q7X Submit Board Membership\\n [\\u25cb UPCOMING] Step 10: Create Record Action: Submit New Membership\\n [\\u25cb UPCOMING] Step 11: Create Dashboard Interface: RSMBP_Q7X_BoardMembershipDashboard\\n [\\u25cb UPCOMING] Step 12: Create Site: RSMBP_Q7X Board Partner Portal\\n\\n\\u26a0\\ufe0f CRITICAL: Execute ONLY the task marked as \\\"CURRENT TASK\\\" above.\\nUse the available tools to complete the current task. When finished, briefly explain what you did, then call set_task_status. The summary MUST come BEFORE set_task_status \\u2014 never after.\",\"system_prompt\":\"You are a Task Execution Agent that implements design objects in Appian applications. You are an expert Appian process designer with deep knowledge of BPMN 2.0 gateway semantics, process variable wiring, and incremental model construction.\\n\\nApplication Context: Application UUID: _a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\nApplication Prefix: RSMBPQ7X\\n\\n## YOUR ROLE\\n\\nYou receive tasks from a planner and must determine the implementation details yourself. The planner provides WHAT to create; you determine HOW to implement it with appropriate fields, relationships, and configurations.\\n\\n**CRITICAL: Always read the task's `implementation_notes` field.** \\n- It contains specific instructions from the planner about visibility, security, relationships, and constraints that you MUST follow. \\n- If `implementation_notes` says visibility should be restricted to a group, you MUST set `visibilityExpr` using that group's constant. If the constant does not exist, alert the user with the create_suggestion tool.\\n\\n## TASK LIFECYCLE\\n\\n- Execute ONLY the current task assigned to you. The engine controls task sequencing.\\n- When done, briefly explain what you created/changed in plain language, then call `set_task_status`. The summary MUST come BEFORE the `set_task_status` call \\u2014 never after it.\\n- ALWAYS call `set_task_status` independently and by itself as the very last action.\\n- If a task succeeds, call `set_task_status(status=\\\"success\\\")`.\\n- If a task fails after retries, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated.\\nWhen creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker).\\nThe app prefix MUST be unique. If application creation fails, it's usually due to duplicate prefixes.\\nUse this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## RULES\\n\\n1. \\ud83d\\uded1 **NEVER WRITE SAIL FOR INTERFACES OR EXPRESSION RULES DIRECTLY** \\nAlways use the following tools for actually generating the SAIL expression for interfaces:\\n - generate_interface_sail\\n - generate_expression_rule_sail\\n - edit_interface_sail\\n2. \\ud83d\\uded1 **NEVER CONFIGURE PROCESS MODEL NODES OR WORKFLOWS DIRECTLY** \\n You do NOT have access to node-level tools (createProcessModelNode, updateProcessModelNode, etc.).\\n The ONLY tools you may use for process model work:\\n - `createProcessModel` \\u2014 create the skeleton (name, description, folder)\\n - `updateProcessModel` \\u2014 set processVariables and startForm ONLY (no nodes)\\n - `generate_process_model` \\u2014 create a NEW workflow (delegates node design to the PM pipeline)\\n - `edit_process_model` \\u2014 modify an EXISTING workflow (delegates node changes to the PM pipeline)\\n \\n **To create a workflow**: createProcessModel \\u2192 updateProcessModel (PVs + startForm) \\u2192 generate_process_model\\n **To modify a workflow**: edit_process_model (pass the processModelUuid and what to change)\\n3. **ALWAYS USE BUSINESS LANGUAGE.** You MUST describe actions in business terms the user understands. NEVER mention tools or UUIDs in your responses.\\n4. **USE TOOL SCHEMAS**: Read the tool's parameter schema to determine exact accepted values. Do NOT guess enum values or parameter structures \\u2014 the tool schema is the source of truth.\\n5. \\ud83d\\uded1 **ONE TASK, ONE OBJECT**: You may ONLY create or modify the object specified in the current task. If you need to create or modify ANY other object (constant, group, interface, expression rule, record type, etc.) to complete the task, you MUST call `create_suggestion` to ask the user whether they want to handle it manually or let you do it. Do NOT create or modify unrelated objects yourself \\u2014 even if you're confident they're needed.\\n6. **ALWAYS USE create_suggestion TO GATHER USER INPUT**: If you need user input, you MUST call `create_suggestion` with the question and clickable options. Do not simply send the question as a message.\\n7. **NEVER FABRICATE UUIDs**: Every UUID in your output MUST come from an API response or the provided context map. If you don't have a UUID, call the appropriate `get*` or `list*` tool to retrieve it.\\n8. \\ud83d\\uded1 **SEQUENTIAL MUTATIONS**: When making multiple changes to the same object (e.g., adding relationships, fields, or user filters to a record type), you MUST wait for each call to return before making the next. Do NOT issue parallel calls that mutate the same object \\u2014 they will race and overwrite each other.\\n9. **USE PRIOR TASK CONTEXT**: The \\\"OBJECTS CREATED SO FAR\\\" section contains UUIDs, fields, and relationships from completed tasks. The execution history shows which tools were called in each prior task. Use these directly \\u2014 do NOT re-fetch objects via `getRecordType`, `getInterface`, etc. when the information is already in context. Only call `get*` tools for objects NOT listed in prior task results. If a prior task already called `addRecordTypeData` for a record type, do NOT insert data again.\\n10. **NEVER call `create_summary`** unless the user explicitly asks for a summary.\\n11. **ACCURATELY DESCRIBE ASYNC PIPELINES**: When summarizing background pipelines, identify each by its actual type (interface generation, process model generation, expression rule generation). Do not call them all \\\"interfaces.\\\"\\n12. **SWITCH APP CONTEXT WHEN NEEDED**: If the user refers to an application other than the one in your current context, call `set_app_context` with the correct application UUID before proceeding. Discover the UUID via `getApplication` or `listApplications` first.\\n13. **INCLUDE ALL REFERENCE TABLE FIELDS IN FORMS**: When generating a form interface, every foreign key field that references a reference/lookup table (roles, statuses, types, categories, etc.) MUST be included as a visible dropdown field \\u2014 never auto-populated or hidden. The user must always be able to select from reference table options.\\n\\n## ERROR HANDLING\\n\\n**Retry rules (for transient errors only):**\\n- If a tool call fails with a transient error (timeout, lock acquisition, 500), retry up to 2 more times (3 total). On retry, fix the specific error \\u2014 do NOT simplify the object.\\n- After 3 total attempts, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n- If a task requires a capability you don't have, call `set_task_status(status=\\\"failed\\\", reason=\\\"Unsupported: [reason]\\\")`. Do NOT loop or repeat the same explanation.\\n\\nWhen the user says \\\"skip\\\" or \\\"continue\\\", proceed to the next task immediately.\\n\\n## OBJECT IMPLEMENTATION GUIDE\\n\\n## Record Type Implementation Guide\\n\\nRecord types are created one at a time. There is no batch operation.\\n\\n### Creation Order\\n\\nCreate record types sequentially \\u2014 reference/lookup tables first, then entity tables that depend on them via foreign keys.\\n\\nEvery record type must have a primary key field. The primary key field MUST be named `id` and be of type `INTEGER`.\\n\\n### Relationships\\n\\nRelationships cannot be defined during record type creation because field UUIDs are not assigned until the record type exists. Always create the record type first, then wire relationships afterward.\\n\\nAfter creating each record type, check whether any relationships can now be wired \\u2014 meaning both the source and target record types already exist (from this or earlier tasks). Wire all applicable relationships before marking the task complete. Do not list \\\"add relationships\\\" as separate plan steps \\u2014 they are part of the record type creation task.\\n\\n### Relationship Workflow\\n\\n1. Create reference/lookup record types first \\u2014 save the returned UUIDs and field UUIDs\\n2. Create entity record types with foreign key fields \\u2014 save the returned UUIDs and field UUIDs\\n3. Wire relationships using the real field UUIDs from the creation responses\\n\\nWhen wiring a relationship, you need three pieces of information:\\n- The foreign key field UUID on the source record type (from its creation response)\\n- The primary key field UUID on the target record type (from its creation response)\\n- The UUID of the target record type itself\\n\\n**NEVER guess or fabricate field UUIDs.** Always use the exact UUIDs returned when the record type was created or retrieved.\\n\\n**Check the \\\"OBJECTS CREATED SO FAR\\\" section first** \\u2014 it contains field UUIDs for all record types created in earlier tasks. Use those directly. Only retrieve a record type's fields if it was created outside this plan and is not in the structured context.\\n\\n### User-Type Fields \\u2192 User System Record Type\\n\\nAny field whose type is USER (e.g., assigned_to, submitted_by, reviewer) must have a MANY_TO_ONE relationship wired to the built-in User system record type after creation. Do not create a User entity \\u2014 use the system record type instead.\\n\\n- System record type UUID: `SYSTEM_RECORD_TYPE_USER`\\n- User primary key field UUID: `SYSTEM_RECORD_TYPE_USER_FIELD_username`\\n- The User record type is WEB_SERVICE-backed \\u2014 you cannot insert data into it.\\n\\nName each relationship after the source field (e.g., a field called `assigned_to` gets a relationship named `assignedToUser`). Wire one relationship per USER-type field on the record type.\\n\\n### Sample Data\\n\\nEvery record type must have sample data inserted immediately after creation and relationship wiring, before marking the task complete. A record type without sample data is incomplete.\\n\\nUse the field names from the creation response as CSV column headers \\u2014 they must match exactly.\\n\\nPopulate realistic, internally consistent data that demonstrates the record type's purpose. Foreign key values must reference primary keys that actually exist in the related record type \\u2014 use values from prior insert responses. Omit the primary key column if it is auto-generated.\\n\\nFor fields of type USER, do not fabricate usernames. Query the User system record type (`SYSTEM_RECORD_TYPE_USER`) first to retrieve real, active usernames. Use only usernames that exist in the system, and vary assignments across rows.\\n\\n### Field Type Selection\\n\\n| Type | Use For |\\n|---|---|\\n| Text | Names, descriptions, emails |\\n| Integer | IDs, counts, foreign keys |\\n| Boolean | Status flags, yes/no values |\\n| Date | Dates without time |\\n| Datetime | Timestamps with time |\\n| Decimal | Money, percentages |\\n| User | Appian user references |\\n\\nUse the tool schema to determine exact accepted field type values \\u2014 do not guess.\\n\\n### Record Event Configuration\\n\\nWhen the plan calls for audit tracking or event history on a record type, configure record events on the primary record type after creation. Use meaningful past-tense business event types (e.g., \\\"Submitted\\\", \\\"Approved\\\", \\\"Rejected\\\") \\u2014 not generic labels.\\n\\nSupporting record types (Event History, Event Type Lookup, Reply Thread, and Subscriber record types with proper relationships and security inherited from the base record type) are auto-created by the platform. Do not create these manually.\\n\\n### EXPRESSION User Filters\\n\\nWhen the plan calls for an EXPRESSION-type user filter (dynamic options, computed defaults, or any filter needing SAIL logic), generate the SAIL expression rather than writing it by hand. Use the available tooling to produce valid filter expressions, then apply the result when adding the user filter with facetType \\\"EXPRESSION\\\".\\n\\n### User Filter Field References\\n\\nBefore adding user filters, **always retrieve the record type first** to get the full list of field UUIDs. **Never fabricate a UUID** \\u2014 use only UUIDs returned from the record type.\\n\\nTo add a filter on a **related record's** field, you must first retrieve the related record type to get its field UUIDs.\\n\\n### LIST_OF_VALUES Filters on Related Records\\n\\nWhen a LIST_OF_VALUES filter is on a field from a related record (via a M:1 relationship), use **related record values** instead of manually constructing an options array. This dynamically populates filter options from the related record type:\\n- `useRelatedRecordValues: true`\\n- `sourceRef`: the FK field UUID on the source record type (or `RELATIONSHIP_UUID/FIELD_UUID`)\\n- `relatedRecordDisplayField`: UUID of a Text field on the related record type to use as option labels (e.g., the `name` or `label` field)\\n- `relatedRecordSort`: `ASCENDING`, `DESCENDING`, or `UNSORTED`\\n- Do NOT provide an `options` array \\u2014 the platform populates options automatically\\n\\nExample for a status filter where the source record has a FK to a Status lookup table:\\n```json\\n{\\n \\\"facetType\\\": \\\"LIST_OF_VALUES\\\",\\n \\\"sourceRef\\\": \\\"STATUS_FK_FIELD_UUID\\\",\\n \\\"useRelatedRecordValues\\\": true,\\n \\\"relatedRecordDisplayField\\\": \\\"STATUS_NAME_FIELD_UUID\\\",\\n \\\"relatedRecordSort\\\": \\\"ASCENDING\\\"\\n}\\n```\\n\\nFor LIST_OF_VALUES filters on a local field (no relationship), provide the `options` array with explicit buckets instead.\\n\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"generate_interface_sail\",\"description\":\"Generate a SAIL UI using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\\n\\nArgs:\\n request: Description of the UI to generate (e.g., \\\"Create an employee dashboard\\\").\\n interfaceType: Type of interface - \\\"dashboard\\\", \\\"form\\\", or \\\"component\\\".\\n recordTypeUuids: Optional list of record type UUIDs for data model discovery in Phase 2.\\n interfaceUuid: Optional interface UUID. If provided, Phase 2 will validate and save SAIL to the interface.\\n\\nReturns:\\n Dict with success=True and async=True if validation passed and pipeline was launched.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceType\":{\"default\":\"dashboard\",\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null},\"interfaceUuid\":{\"type\":\"string\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_expression_rule_sail\",\"description\":\"Generate a SAIL expression for an expression rule using a single-phase agent workflow.\\n\\nArgs:\\n request: Description of what the expression rule should do.\\n expressionRuleUuid: Optional UUID. If provided, validates and saves the expression to the rule.\\n recordTypeUuids: Optional record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success, expression, and expression_rule_uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"expressionRuleUuid\":{\"type\":\"string\",\"default\":null},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_expression_rule_sail\"},{\"toolSpec\":{\"name\":\"edit_interface_sail\",\"description\":\"Edit an existing interface's SAIL expression using targeted edits.\\n\\nFetches the interface's current expression, loads it into an in-memory buffer,\\nand runs an agent that makes surgical edits via str_replace_sail. Runs synchronously\\n\\u2014 blocks until the edit is complete and returns the result.\\n\\nArgs:\\n request: Description of the change to make (e.g., \\\"Add a search box above the grid\\\").\\n interfaceUuid: UUID of the interface to edit (required).\\n recordTypeUuids: Optional list of record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success/failure and details.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"interfaceUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:edit_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_process_model\",\"description\":\"Generate process model nodes using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"hasStartForm\":{\"default\":false,\"type\":\"boolean\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:generate_process_model\"},{\"toolSpec\":{\"name\":\"edit_process_model\",\"description\":\"Edit an existing process model using a two-phase agent workflow (async).\\n\\nFetches the current model state, passes it to the drafter as context,\\nthen validates and saves via the reviewer.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:edit_process_model\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"createApplication\",\"description\":\"Create a new Appian application. The API automatically generates default objects (groups, folders, etc.) and associates them with the application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\",\"description\":\"Application prefix for object naming conventions (e.g. \\\"CUST\\\"). Auto-generated from the name if not provided.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createApplication\"},{\"toolSpec\":{\"name\":\"addObjectsToApplication\",\"description\":\"Add design objects to an Appian application. Most create tools now accept appUuid directly \\u2014 use this tool mainly for associating pre-existing objects with an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"objects\":{\"items\":{\"description\":\"Reference to a design object for application association.\",\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Design object type, e.g. CONSTANT, INTERFACE, PROCESS_MODEL, EXPRESSION_RULE, RECORD_TYPE, SITE, GROUP, DATA_TYPE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"appUuid\",\"objects\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addObjectsToApplication\"},{\"toolSpec\":{\"name\":\"deleteApplication\",\"description\":\"Permanently delete an Appian application. This removes the application container only \\u2014 all design objects (records, interfaces, process models, etc.) that were part of the application are preserved and become unassociated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"createConnectedSystem\",\"description\":\"Create a new Appian connected system.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateConnectedSystem\\n\\u2192 repeat until all required fields are populated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Connected system type identifier (see listConnectedSystemTypes)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateConnectedSystem, and repeat until all required fields are populated. Changing a discriminator field (e.g., authType) may change which fields appear in the next response.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConnectedSystem\"},{\"toolSpec\":{\"name\":\"updateConnectedSystem\",\"description\":\"Update an existing Appian connected system. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map \\u2014 if you changed a discriminator field (e.g., authType), the schema may change: new fields appear, old fields disappear from both `schema` and `properties`.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConnectedSystem\"},{\"toolSpec\":{\"name\":\"deleteConnectedSystem\",\"description\":\"Permanently delete an Appian connected system.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"createConstant\",\"description\":\"Create a new Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"type\",\"value\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConstant\"},{\"toolSpec\":{\"name\":\"updateConstant\",\"description\":\"Update an existing Appian constant. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"type\":{\"type\":\"string\",\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"default\":null},\"value\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConstant\"},{\"toolSpec\":{\"name\":\"deleteConstant\",\"description\":\"Permanently delete an Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"updateDocument\",\"description\":\"Update an existing Appian document. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateDocument\"},{\"toolSpec\":{\"name\":\"deleteDocument\",\"description\":\"Permanently delete an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"replaceDocumentContent\",\"description\":\"Replace the content of an Appian document. Content is plain text \\u2014 it will be base64-encoded automatically.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:replaceDocumentContent\"},{\"toolSpec\":{\"name\":\"uploadDocument\",\"description\":\"Upload a new document with file content to a folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"The document name including extension (max 255 characters), e.g. \\\"Annual Report.pdf\\\".\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"The UUID of the parent folder.\",\"type\":\"string\"},\"content\":{\"description\":\"The file content as a plain string \\u2014 it will be base64-encoded automatically.\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"extension\":{\"type\":\"string\",\"description\":\"Optional file extension without dot (auto-detected from name if not provided), e.g. \\\"pdf\\\".\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:uploadDocument\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"createExpressionRule\",\"description\":\"Create a new Appian expression rule.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createExpressionRule\"},{\"toolSpec\":{\"name\":\"updateExpressionRule\",\"description\":\"Update an existing Appian expression rule. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateExpressionRule\"},{\"toolSpec\":{\"name\":\"deleteExpressionRule\",\"description\":\"Permanently delete an Appian expression rule.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"createFolder\",\"description\":\"Create a new Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"parentFolderUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createFolder\"},{\"toolSpec\":{\"name\":\"updateFolder\",\"description\":\"Update an existing Appian folder. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateFolder\"},{\"toolSpec\":{\"name\":\"deleteFolder\",\"description\":\"Permanently delete an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"createGroup\",\"description\":\"Create a new Appian group.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"parentGroupName\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"addGroupMembers\",\"description\":\"Add members to an Appian group. Accepts a batch of users and/or groups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"members\":{\"items\":{\"description\":\"Reference to a group member for add/remove operations.\",\"properties\":{\"type\":{\"description\":\"Member type: 'user' or 'group'\",\"type\":\"string\"},\"id\":{\"description\":\"Username for users, group name for groups\",\"type\":\"string\"}},\"required\":[\"type\",\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"groupName\",\"members\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addGroupMembers\"},{\"toolSpec\":{\"name\":\"removeGroupMember\",\"description\":\"Remove a direct member from an Appian group. Only direct members can be removed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"memberType\":{\"description\":\"Type of member to remove: 'user' or 'group'.\",\"type\":\"string\"},\"memberId\":{\"description\":\"Username for users, group name for groups.\",\"type\":\"string\"}},\"required\":[\"groupName\",\"memberType\",\"memberId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:removeGroupMember\"},{\"toolSpec\":{\"name\":\"deleteGroup\",\"description\":\"Permanently delete an Appian group by name. This operation cannot be undone.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteGroup\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"createIntegration\",\"description\":\"Create a new Appian integration.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateIntegration\\n\\u2192 repeat until all required fields are populated.\\n\\nDo NOT guess at property names or values \\u2014 inspect the `schema` in the\\nresponse first, then use updateIntegration to set the fields you need.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"Integration name. Must not contain spaces.\",\"type\":\"string\"},\"connectedSystemUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier from the connected system type's operations list (see listConnectedSystemTypes).\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateIntegration, and repeat until all required fields are populated. Do not guess at property names \\u2014 always inspect the schema from the create response first. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters. Each dict has: name (str), type (str, e.g. 'Text'), description (str, optional).\",\"default\":null}},\"required\":[\"name\",\"connectedSystemUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createIntegration\"},{\"toolSpec\":{\"name\":\"updateIntegration\",\"description\":\"Update an existing Appian integration. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Integration name. Must not contain spaces.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier. Changing this switches the integration to a different operation.\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters (full replacement \\u2014 replaces all existing inputs)\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateIntegration\"},{\"toolSpec\":{\"name\":\"deleteIntegration\",\"description\":\"Permanently delete an Appian integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"createInterface\",\"description\":\"Create a new Appian interface.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createInterface\"},{\"toolSpec\":{\"name\":\"updateInterface\",\"description\":\"Update an existing Appian interface. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateInterface\"},{\"toolSpec\":{\"name\":\"deleteInterface\",\"description\":\"Permanently delete an Appian interface.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteInterface\"},{\"toolSpec\":{\"name\":\"testInterface\",\"description\":\"Evaluate an Appian interface with test inputs and check for runtime errors. Use diagnostics.error to detect rendering failures that syntax validation misses (bad record references, type mismatches, missing inputs). The result contains the rendered SAIL component tree.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"updateObjectSecurity\",\"description\":\"Set the security role map for a design object by UUID.\\n\\nFull replacement \\u2014 roles not included are cleared.\\nOnly roleName and groupNames are used; inheritedGroupNames is read-only\\nand ignored on PUT.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"roles\":{\"items\":{\"description\":\"Role-to-groups mapping for object security.\",\"properties\":{\"roleName\":{\"description\":\"Use getObjectSecurity to see valid roles for the object type.\",\"type\":\"string\"},\"groupNames\":{\"default\":[],\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"roleName\"],\"type\":\"object\"},\"type\":\"array\"},\"inheritSecurity\":{\"default\":true,\"description\":\"For content-backed objects (constants, expression rules, interfaces, documents, folders), whether this object inherits security from its parent. Ignored for non-content objects.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"roles\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"createProcessModel\",\"description\":\"Create a new Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Process Model Folder UUID (see listProcessModelFolders)\",\"type\":\"string\"},\"errorAlertGroupName\":{\"description\":\"Error alert group name (see listGroups)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null}},\"required\":[\"name\",\"description\",\"parentFolderUuid\",\"errorAlertGroupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModel\",\"description\":\"Permanently delete an Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"updateProcessModel\",\"description\":\"Update an existing Appian process model. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"processVariables\":{\"items\":{\"description\":\"Schema for a process model variable supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Variable name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"isParameter\":{\"type\":\"boolean\",\"description\":\"Expose as a process parameter (visible to callers like record actions, subprocesses, and start forms)\",\"default\":null},\"isRequired\":{\"type\":\"boolean\",\"description\":\"Whether this parameter is required\",\"default\":null},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this variable holds a list of values. Defaults to false.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process variables. Set isParameter=true to expose as inputs for record actions, subprocesses, or start forms.\",\"default\":null},\"nodes\":{\"items\":{\"description\":\"A node in a process model flow.\",\"properties\":{\"id\":{\"description\":\"Node ID, unique within the process model\",\"type\":\"integer\"},\"type\":{\"description\":\"Node type ID from listProcessModelNodeTypes, e.g. core.0, internal3.integration, event.timer\",\"type\":\"string\"},\"name\":{\"description\":\"Label shown on the process modeler canvas\",\"type\":\"string\"},\"coordinates\":{\"description\":\"Canvas position [x, y]\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"connections\":{\"default\":[],\"description\":\"Outgoing node IDs. Empty for End Event.\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"data\":{\"description\":\"Data/Setup tab configuration for activity and event nodes.\\nDo NOT use ac! references in downstream nodes \\u2014 ac! is scoped to the node it belongs to.\",\"properties\":{\"inputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined inputs from getProcessModelNodeTypeSchema\",\"default\":null},\"outputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined outputs. Set saveInto to wire to a PV.\",\"default\":null},\"customInputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined input parameters\",\"default\":null},\"customOutputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined output expressions\",\"default\":null}},\"type\":\"object\",\"default\":null},\"decision\":{\"description\":\"Decision tab configuration for XOR and OR gateways.\",\"properties\":{\"conditions\":{\"description\":\"Ordered conditions evaluated top-to-bottom, first match wins\",\"items\":{\"description\":\"A condition rule on an XOR or OR gateway.\",\"properties\":{\"expression\":{\"description\":\"SAIL boolean expression\",\"type\":\"string\"},\"targetNodeId\":{\"description\":\"Target node ID when condition is true\",\"type\":\"integer\"},\"label\":{\"type\":\"string\",\"default\":null}},\"required\":[\"expression\",\"targetNodeId\"],\"type\":\"object\"},\"type\":\"array\"},\"defaultPath\":{\"description\":\"Target node ID when no condition matches\",\"type\":\"integer\"}},\"required\":[\"conditions\",\"defaultPath\"],\"type\":\"object\",\"default\":null},\"assignment\":{\"description\":\"Assignment tab configuration for activity nodes.\",\"properties\":{\"attended\":{\"type\":\"boolean\",\"description\":\"true=user task, false=system executes. Required for ATTENDED_OR_UNATTENDED node types.\",\"default\":null},\"assignTo\":{\"type\":\"string\",\"description\":\"SAIL expression for assignee, default pp!initiator\",\"default\":null},\"reassignPrivileges\":{\"type\":\"string\",\"description\":\"NONE, REJECT_ONLY, REASSIGN_WITHIN_POOL, or REASSIGN_TO_ANY (default)\",\"default\":null},\"runAs\":{\"type\":\"string\",\"description\":\"INITIATOR (default) or DESIGNER, for unattended nodes\",\"default\":null},\"overrideLane\":{\"type\":\"boolean\",\"description\":\"Override swimlane assignment\",\"default\":null}},\"type\":\"object\",\"default\":null},\"forms\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"id\",\"type\",\"name\",\"coordinates\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process model nodes. Use listProcessModelNodeTypes for available types and getProcessModelNodeTypeSchema for node parameters.\",\"default\":null},\"startForm\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateProcessModel\"},{\"toolSpec\":{\"name\":\"testProcessModel\",\"description\":\"Start a process model, wait for completion, and return process variable values. Only works for unattended process models (no user input tasks). Returns processId, status, and processVariables map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of process parameter values to pass on start.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for the process to complete. Default: 30. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModelNode\",\"description\":\"Remove a node and clean up all incoming/outgoing connections.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"insertRecordData\",\"description\":\"Insert one or more rows of record data from CSV.\\n\\nReturns inserted rows with assigned primary keys. Save these keys for\\nforeign key references in downstream record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row and one or more data rows. Header names must match field names exactly as defined on the record type. PK column may be omitted for auto-generated keys. Boolean fields: use 1 (true) or 0 (false) \\u2014 string values like 'true'/'false' are rejected. Date values: YYYY-MM-DD (e.g. 2026-03-20). Datetime values: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC. Fields containing commas, quotes, or newlines MUST be enclosed in double quotes per RFC 4180. Do NOT embed JSON in CSV fields \\u2014 use plain text.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:insertRecordData\"},{\"toolSpec\":{\"name\":\"updateRecordData\",\"description\":\"Update one or more rows of record data by primary key from CSV. Supports partial updates.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row (including PK column) and one or more data rows. Date values: ISO 8601 date format YYYY-MM-DD (e.g. 2026-03-20). Datetime values: ISO 8601 datetime without timezone: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: ISO 8601 time format HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordData\"},{\"toolSpec\":{\"name\":\"deleteRecordData\",\"description\":\"Delete one or more rows of record data by primary key from CSV.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with PK column header and one or more PK values (one per line).\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"createRecordType\",\"description\":\"Create a new Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"sourceType\":{\"description\":\"The type of data source. DATABASE connects to or creates a database table (use createTable to control DDL). Valid values: DATABASE, WEB_SERVICE, PROCESS, SALESFORCE.\",\"type\":\"string\"},\"createTable\":{\"default\":true,\"description\":\"When true, Appian creates the database table (mirrors the 'Create Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM tables are not yet supported.\",\"type\":\"boolean\"},\"tableName\":{\"type\":\"string\",\"description\":\"CDM: table name to create (defaults to snake_case of record type name). DATABASE: existing table name to connect to.\",\"default\":null},\"dataSourceUuid\":{\"type\":\"string\",\"description\":\"DATABASE: UUID of the data source containing the table. CDM: auto-resolved if omitted.\",\"default\":null},\"schema\":{\"type\":\"string\",\"description\":\"DATABASE: schema name. CDM: auto-resolved if omitted.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"fields\":{\"items\":{\"description\":\"Field definition for a record type.\",\"properties\":{\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to snake_case of fieldName)\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"description\":\"Column length for TEXT fields (0 = default)\",\"default\":null}},\"required\":[\"fieldName\",\"fieldType\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\",\"sourceType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createRecordType\"},{\"toolSpec\":{\"name\":\"updateRecordType\",\"description\":\"Update an existing Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"securityRules\":{\"items\":{\"description\":\"Record-level security rule defining who can see which records.\",\"properties\":{\"membershipType\":{\"description\":\"GROUPS, FIELDS, or RELATED_RECORDS\",\"type\":\"string\"},\"groupUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Group UUIDs. GROUPS membership only. Rule applies to members of the specified groups.\",\"default\":null},\"fieldUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"User or Group field UUIDs \\u2014 direct fields or related record fields. FIELDS membership only. Rule applies to any users found in the specified fields.\",\"default\":null},\"relationshipUuid\":{\"type\":\"string\",\"description\":\"Relationship UUID. RELATED_RECORDS membership only. Rule applies to any users who have access to the related record.\",\"default\":null},\"conditions\":{\"items\":{\"description\":\"Filter condition for record-level security rules.\",\"properties\":{\"field\":{\"description\":\"Record field UUID\",\"type\":\"string\"},\"operator\":{\"description\":\"Comparison operator (=, <>, <, >, <=, >=)\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Comparison value\"}},\"required\":[\"field\",\"operator\",\"value\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Additional filter conditions to further limit rule applicability.\",\"default\":null}},\"required\":[\"membershipType\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Full replacement of security rules. List order = evaluation order (first match wins). Empty list clears all rules.\",\"default\":null},\"securityExpression\":{\"type\":\"string\",\"description\":\"SAIL expression for record-level security. Set to null to clear. Omit to preserve current value. Record types using expressions cannot be referenced via RELATED_RECORDS membership.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordType\"},{\"toolSpec\":{\"name\":\"deleteRecordType\",\"description\":\"Permanently delete an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"addRecordTypeField\",\"description\":\"Add a field to an Appian record type. For CDM-backed record types, creates the corresponding database column.\\n\\nReturns the created field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to toSnakeCase(fieldName))\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to add the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldName\",\"fieldType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeField\"},{\"toolSpec\":{\"name\":\"updateRecordTypeField\",\"description\":\"Update a field on an Appian record type. Only provided fields are changed. For CDM-backed record types, type changes trigger ALTER TABLE.\\n\\nReturns the updated field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\",\"default\":null},\"fieldType\":{\"type\":\"string\",\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"default\":null},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to update the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeField\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeField\",\"description\":\"Delete a field from an Appian record type. For CDM-backed record types, drops the database column (destructive). Other source types only unmap the field. Primary key fields cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to drop the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"addRecordTypeRelationship\",\"description\":\"Add a relationship to an Appian record type.\\n\\nBoth the source and target record types must already exist. Use the exact\\nfield UUIDs returned from record type creation or retrieval responses \\u2014\\nnever fabricate UUIDs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\"},\"sourceRecordTypeFieldUuid\":{\"description\":\"UUID of the foreign key field on THIS (source) record type. Must be a real field UUID from the createRecordType or getRecordType response.\",\"type\":\"string\"},\"targetRecordTypeFieldUuid\":{\"description\":\"UUID of the primary key field on the TARGET record type. Must be a real field UUID from the target's createRecordType or getRecordType response. For system record types use SYSTEM_RECORD_TYPE_USER_FIELD_username or SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id.\",\"type\":\"string\"},\"targetRecordTypeUuid\":{\"description\":\"UUID of the target record type. For system record types use SYSTEM_RECORD_TYPE_USER (key field: SYSTEM_RECORD_TYPE_USER_FIELD_username) or SYSTEM_RECORD_TYPE_DOCUMENT (key field: SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id).\",\"type\":\"string\"},\"relationshipType\":{\"description\":\"ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipName\",\"sourceRecordTypeFieldUuid\",\"targetRecordTypeFieldUuid\",\"targetRecordTypeUuid\",\"relationshipType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"updateRecordTypeRelationship\",\"description\":\"Update a relationship on an Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\",\"default\":null},\"sourceRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeUuid\":{\"type\":\"string\",\"default\":null},\"relationshipType\":{\"type\":\"string\",\"description\":\"Type of relationship: ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"default\":null}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeRelationship\",\"description\":\"Delete a relationship from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"addRecordTypeAction\",\"description\":\"Add a record action to an Appian record type. Returns the created action including server-generated uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"actionType\":{\"description\":\"Type of record action: LIST_ACTION (record list) or RELATED_ACTION (record view)\",\"type\":\"string\"},\"key\":{\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code for the action button (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code. Default: 'f0e7'.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling visibility (default \\\"=true()\\\")\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"description\":\"SAIL expression passing record context to the process model. Only valid for RELATED_ACTION. Use a dictionary to pass record information into the related action. The keys in the dictionary map to the case-sensitive parameter names in the process model.\",\"default\":null}},\"required\":[\"uuid\",\"displayName\",\"processModelUuid\",\"actionType\",\"key\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeAction\"},{\"toolSpec\":{\"name\":\"updateRecordTypeAction\",\"description\":\"Update a record action by UUID with partial update semantics. Only provided fields are changed. actionType is immutable.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\",\"default\":null},\"processModelUuid\":{\"type\":\"string\",\"default\":null},\"key\":{\"type\":\"string\",\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeAction\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeAction\",\"description\":\"Delete a record action by UUID from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeAction\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"addRecordTypeView\",\"description\":\"Add a custom view (tab) to a record type. The first view added becomes the Summary view (urlStub \\\"summary\\\"); subsequent views get auto-generated urlStubs. All expression parameters accept SAIL expressions. Available variables: `rv!identifier` (record ID), `rv!record` (full record), `loggedInUser()`. For static values, use quoted strings (e.g. `'\\\"Order Details\\\"'`).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\"},\"interfaceExpression\":{\"type\":\"string\"},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Null = visible to all users.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Get UUIDs from listRecordTypeActions.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB (default), NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"nameExpression\",\"interfaceExpression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeView\"},{\"toolSpec\":{\"name\":\"updateRecordTypeView\",\"description\":\"Update fields on an existing view. Only provided fields are changed; omitted fields are preserved.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\",\"default\":null},\"interfaceExpression\":{\"type\":\"string\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Set to null to clear (visible to all). Omit to preserve current value.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Empty list clears all.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB, NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeView\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeView\",\"description\":\"Permanently delete a view from a record type. The Summary view cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeView\"},{\"toolSpec\":{\"name\":\"reorderRecordTypeViews\",\"description\":\"Reorder views on a record type. All existing urlStubs must be included.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStubs\":{\"description\":\"Ordered list of all view urlStubs representing desired tab order. Must include all existing urlStubs. Summary is always pinned first.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuid\",\"urlStubs\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:reorderRecordTypeViews\"},{\"toolSpec\":{\"name\":\"configureRecordEvents\",\"description\":\"Configure record events on an Appian record type (one-time setup).\\n\\nCreates four supporting record types (Event History, Event Type Lookup, Reply Thread,\\nSubscriber), wires relationships, copies security from the base record type, and persists\\nthe configuration. Returns 409 if record events are already configured.\\n\\nEvent types can be managed after initial setup by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\\n\\nReturns a RecordEventConfig with: four RT UUIDs (eventHistoryRecordTypeUuid,\\neventTypeLookupRecordTypeUuid, replyThreadRecordTypeUuid, subscriberRecordTypeUuid),\\nrelationship UUIDs (eventRelationshipUuid, eventTypeRelationshipUuid,\\neventReplyRelationshipUuid, subscriberRelationshipUuid), field UUIDs\\n(eventTypeValueFieldUuid, eventUserFieldUuid, eventTimestampFieldUuid,\\neventAutomationIdentifierFieldUuid, eventCommentFieldUuid, eventReplyUserFieldUuid,\\neventReplyCommentFieldUuid, eventReplyTimestampFieldUuid, subscriberUserFieldUuid),\\ncommentEventTypeId, generateCommonEvents, and eventTypes.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"eventTypes\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Event types representing key moments in the business lifecycle of this record. Use past-tense verb phrases (e.g. 'Created Order', 'Approved Application', 'Shipped Order'). Avoid generic recurring operations like 'Updated' \\u2014 focus on meaningful business activities that ideally occur once per record in a specific order.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:configureRecordEvents\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"addRecordTypeUserFilter\",\"description\":\"Add a user filter to a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"facetType\":{\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"allowMultipleSelections\":{\"default\":false,\"type\":\"boolean\"},\"useRelatedRecordValues\":{\"default\":false,\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"type\":\"boolean\"},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"name\",\"facetType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"updateRecordTypeUserFilter\",\"description\":\"Update a user filter on a record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"facetType\":{\"type\":\"string\",\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"orderIndex\":{\"type\":\"integer\",\"default\":null},\"allowMultipleSelections\":{\"type\":\"boolean\",\"default\":null},\"useRelatedRecordValues\":{\"type\":\"boolean\",\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"default\":null},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeUserFilter\",\"description\":\"Remove a user filter from a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"createSite\",\"description\":\"Create a new Appian site. Requires at least one page.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"webAddressIdentifier\":{\"type\":\"string\"},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav, default) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY (default), HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"name\",\"displayName\",\"webAddressIdentifier\",\"pages\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createSite\"},{\"toolSpec\":{\"name\":\"updateSite\",\"description\":\"Update an existing Appian site. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"webAddressIdentifier\":{\"type\":\"string\",\"default\":null},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY, HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateSite\"},{\"toolSpec\":{\"name\":\"deleteSite\",\"description\":\"Permanently delete an Appian site.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteSite\"},{\"toolSpec\":{\"name\":\"testRule\",\"description\":\"Execute an Appian rule with test inputs and return the result. Works for expression rules and integrations \\u2014 all rule-type objects in Appian. Pass the object's UUID, type, and an optional inputs map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Object type: EXPRESSION_RULE or INTEGRATION.\",\"enum\":[\"EXPRESSION_RULE\",\"INTEGRATION\"],\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testRule\"},{\"toolSpec\":{\"name\":\"validateDesignObject\",\"description\":\"Validate all expressions on a design object by UUID.\\n\\nReturns validation results including any expression errors found.\\nUse this to check for expression errors without performing a save.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateDesignObject\"},{\"toolSpec\":{\"name\":\"validateExpression\",\"description\":\"Validate a raw SAIL expression without saving it.\\n\\nRuns parse, discovery, and eval passes. No rule inputs or record\\nreferences are stubbed \\u2014 use for standalone expressions like freeform mockups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"expression\":{\"type\":\"string\"}},\"required\":[\"expression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateExpression\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"},{\"toolSpec\":{\"name\":\"createWebApi\",\"description\":\"Create a new Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"urlAlias\":{\"type\":\"string\"},\"httpMethod\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"urlAlias\",\"httpMethod\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createWebApi\"},{\"toolSpec\":{\"name\":\"updateWebApi\",\"description\":\"Update an existing Appian Web API. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateWebApi\"},{\"toolSpec\":{\"name\":\"deleteWebApi\",\"description\":\"Permanently delete an Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"4208a2a9-054d-4514-bcaa-f8c77aacfaf7","status":"QUEUED","status_url":"/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status"} | |
| [2026-04-14T18:28:10.215586+00:00] [5f68735b] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status | |
| run_id: 4208a2a9-054d-4514-bcaa-f8c77aacfaf7 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:28:10.223432+00:00] [718456ea] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/messages | |
| run_id: 4208a2a9-054d-4514-bcaa-f8c77aacfaf7 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:28:32.522892+00:00] [e5f7f25e] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status | |
| run_id: 4208a2a9-054d-4514-bcaa-f8c77aacfaf7 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:28:32.605911+00:00] [b8f13c03] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7 | |
| run_id: 4208a2a9-054d-4514-bcaa-f8c77aacfaf7 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"4208a2a9-054d-4514-bcaa-f8c77aacfaf7","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":120361,"output_tokens":662,"total_tokens":121023},"tool_calls":3,"duration_seconds":22.479691982269287,"start_time":"1776191289.995636","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:28:09.995636Z","completed_at":"2026-04-14T18:28:32.475328Z","error":null} | |
| [2026-04-14T18:28:32.664790+00:00] [32b06b62] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status | |
| run_id: 4208a2a9-054d-4514-bcaa-f8c77aacfaf7 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/4208a2a9-054d-4514-bcaa-f8c77aacfaf7/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:28:32.840026+00:00] [3363ae41] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\n[user]: Step 1: Create Application: RSM Board Partner 20250327-1437\\n[assistant]: \\u2713 Step 1 completed successfully.\\n\\nTools called: execute_plan, createApplication, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n}\\n[user]: Step 2: Create Partner Group\\n[assistant]: \\u2713 Step 2 completed successfully.\\n\\nTools called: createGroup, addGroupMembers, createConstant, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n}\\n[user]: Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n[assistant]: \\u2713 Step 3 completed successfully.\\n\\nTools called: createRecordType, insertRecordData, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Role\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"00432adc-17f8-4585-bb88-f6966760c865\\\",\\n \\\"fieldName\\\": \\\"roleName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Role Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"cb20fb2c-b414-4f1b-9499-98bb5bb273de\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"bb29534a-a90b-4d1d-890d-f51521434b63\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n}\\n[user]: Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n[assistant]: \\u2713 Step 4 completed successfully.\\n\\nTools called: createRecordType, insertRecordData, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Membership Status\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"65a98a41-7b69-4415-b757-f6d2af2b36dc\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"95587f6b-3891-4eb9-bbe5-bca1ee3e6eae\\\",\\n \\\"fieldName\\\": \\\"statusName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Status Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ed33a678-105c-4ab5-b9fc-fe2080cc7f09\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"6fd41470-d8bf-4970-87e9-595076f6b130\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n}\\n\\n## OBJECTS CREATED SO FAR\\n\\n### APPLICATION\\n[\\n {\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n }\\n]\\n### CONSTANT\\n[\\n {\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n }\\n]\\n### RECORD\\n[\\n {\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Role\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"00432adc-17f8-4585-bb88-f6966760c865\\\",\\n \\\"fieldName\\\": \\\"roleName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Role Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"cb20fb2c-b414-4f1b-9499-98bb5bb273de\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"bb29534a-a90b-4d1d-890d-f51521434b63\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n },\\n {\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Membership Status\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"65a98a41-7b69-4415-b757-f6d2af2b36dc\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"95587f6b-3891-4eb9-bbe5-bca1ee3e6eae\\\",\\n \\\"fieldName\\\": \\\"statusName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Status Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ed33a678-105c-4ab5-b9fc-fe2080cc7f09\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"6fd41470-d8bf-4970-87e9-595076f6b130\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n }\\n]\\n\\n## FULL IMPLEMENTATION PLAN\\n\\n [\\u2713 COMPLETED] Step 1: Create Application: RSM Board Partner 20250327-1437\\n [\\u2713 COMPLETED] Step 2: Create Partner Group\\n [\\u2713 COMPLETED] Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n [\\u2713 COMPLETED] Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n>>> CURRENT TASK: Step 5 of 12\\n Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n implementation_notes: Type: Primary\\nSource: Requirements - 'enter and submit my external board or committee membership information'\\nPurpose: Stores board/committee membership submissions from partners\\nFields:\\n- id (Number, primary key)\\n- organizationName (Text, required) - name of the organization\\n- roleId (Number, foreign key to BOARD_ROLE, required) - board/committee role\\n- statusId (Number, foreign key to MEMBERSHIP_STATUS) - current membership status\\n- startDate (Date) - when the membership began\\n- endDate (Date) - when the membership ended or is expected to end\\n- phoneNumber (Text) - contact phone number with validation pattern\\n- email (Text) - contact email address\\n- meetingFrequency (Text) - how often the board/committee meets\\n- compensationType (Text) - whether compensated (Paid, Unpaid, Honorarium)\\n- annualCompensation (Number(Decimal)) - annual compensation amount if applicable\\n- responsibilities (Text) - description of responsibilities\\n- notes (Text) - additional notes\\n- submittedBy (USER, relationship to User system record type) - partner who submitted this membership\\n- submittedDate (Date & Time) - when the record was submitted\\nRelationships:\\n- roleId \\u2192 BOARD_ROLE (many-to-one)\\n- statusId \\u2192 MEMBERSHIP_STATUS (many-to-one)\\n- submittedBy \\u2192 User system record type (many-to-one)\\nNote: submittedBy field has type USER and requires a relationship to the User system record type (SYSTEM_RECORD_TYPE_USER)\\n\\n [\\u25cb UPCOMING] Step 6: Configure Record Events on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 7: Configure User Filters on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 8: Create Form Interface: RSMBP_Q7X_SubmitBoardMembership\\n [\\u25cb UPCOMING] Step 9: Create Process Model: RSMBP_Q7X Submit Board Membership\\n [\\u25cb UPCOMING] Step 10: Create Record Action: Submit New Membership\\n [\\u25cb UPCOMING] Step 11: Create Dashboard Interface: RSMBP_Q7X_BoardMembershipDashboard\\n [\\u25cb UPCOMING] Step 12: Create Site: RSMBP_Q7X Board Partner Portal\\n\\n\\u26a0\\ufe0f CRITICAL: Execute ONLY the task marked as \\\"CURRENT TASK\\\" above.\\nUse the available tools to complete the current task. When finished, briefly explain what you did, then call set_task_status. The summary MUST come BEFORE set_task_status \\u2014 never after.\",\"system_prompt\":\"You are a Task Execution Agent that implements design objects in Appian applications. You are an expert Appian process designer with deep knowledge of BPMN 2.0 gateway semantics, process variable wiring, and incremental model construction.\\n\\nApplication Context: Application UUID: _a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\nApplication Prefix: RSMBPQ7X\\n\\n## YOUR ROLE\\n\\nYou receive tasks from a planner and must determine the implementation details yourself. The planner provides WHAT to create; you determine HOW to implement it with appropriate fields, relationships, and configurations.\\n\\n**CRITICAL: Always read the task's `implementation_notes` field.** \\n- It contains specific instructions from the planner about visibility, security, relationships, and constraints that you MUST follow. \\n- If `implementation_notes` says visibility should be restricted to a group, you MUST set `visibilityExpr` using that group's constant. If the constant does not exist, alert the user with the create_suggestion tool.\\n\\n## TASK LIFECYCLE\\n\\n- Execute ONLY the current task assigned to you. The engine controls task sequencing.\\n- When done, briefly explain what you created/changed in plain language, then call `set_task_status`. The summary MUST come BEFORE the `set_task_status` call \\u2014 never after it.\\n- ALWAYS call `set_task_status` independently and by itself as the very last action.\\n- If a task succeeds, call `set_task_status(status=\\\"success\\\")`.\\n- If a task fails after retries, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated.\\nWhen creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker).\\nThe app prefix MUST be unique. If application creation fails, it's usually due to duplicate prefixes.\\nUse this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## RULES\\n\\n1. \\ud83d\\uded1 **NEVER WRITE SAIL FOR INTERFACES OR EXPRESSION RULES DIRECTLY** \\nAlways use the following tools for actually generating the SAIL expression for interfaces:\\n - generate_interface_sail\\n - generate_expression_rule_sail\\n - edit_interface_sail\\n2. \\ud83d\\uded1 **NEVER CONFIGURE PROCESS MODEL NODES OR WORKFLOWS DIRECTLY** \\n You do NOT have access to node-level tools (createProcessModelNode, updateProcessModelNode, etc.).\\n The ONLY tools you may use for process model work:\\n - `createProcessModel` \\u2014 create the skeleton (name, description, folder)\\n - `updateProcessModel` \\u2014 set processVariables and startForm ONLY (no nodes)\\n - `generate_process_model` \\u2014 create a NEW workflow (delegates node design to the PM pipeline)\\n - `edit_process_model` \\u2014 modify an EXISTING workflow (delegates node changes to the PM pipeline)\\n \\n **To create a workflow**: createProcessModel \\u2192 updateProcessModel (PVs + startForm) \\u2192 generate_process_model\\n **To modify a workflow**: edit_process_model (pass the processModelUuid and what to change)\\n3. **ALWAYS USE BUSINESS LANGUAGE.** You MUST describe actions in business terms the user understands. NEVER mention tools or UUIDs in your responses.\\n4. **USE TOOL SCHEMAS**: Read the tool's parameter schema to determine exact accepted values. Do NOT guess enum values or parameter structures \\u2014 the tool schema is the source of truth.\\n5. \\ud83d\\uded1 **ONE TASK, ONE OBJECT**: You may ONLY create or modify the object specified in the current task. If you need to create or modify ANY other object (constant, group, interface, expression rule, record type, etc.) to complete the task, you MUST call `create_suggestion` to ask the user whether they want to handle it manually or let you do it. Do NOT create or modify unrelated objects yourself \\u2014 even if you're confident they're needed.\\n6. **ALWAYS USE create_suggestion TO GATHER USER INPUT**: If you need user input, you MUST call `create_suggestion` with the question and clickable options. Do not simply send the question as a message.\\n7. **NEVER FABRICATE UUIDs**: Every UUID in your output MUST come from an API response or the provided context map. If you don't have a UUID, call the appropriate `get*` or `list*` tool to retrieve it.\\n8. \\ud83d\\uded1 **SEQUENTIAL MUTATIONS**: When making multiple changes to the same object (e.g., adding relationships, fields, or user filters to a record type), you MUST wait for each call to return before making the next. Do NOT issue parallel calls that mutate the same object \\u2014 they will race and overwrite each other.\\n9. **USE PRIOR TASK CONTEXT**: The \\\"OBJECTS CREATED SO FAR\\\" section contains UUIDs, fields, and relationships from completed tasks. The execution history shows which tools were called in each prior task. Use these directly \\u2014 do NOT re-fetch objects via `getRecordType`, `getInterface`, etc. when the information is already in context. Only call `get*` tools for objects NOT listed in prior task results. If a prior task already called `addRecordTypeData` for a record type, do NOT insert data again.\\n10. **NEVER call `create_summary`** unless the user explicitly asks for a summary.\\n11. **ACCURATELY DESCRIBE ASYNC PIPELINES**: When summarizing background pipelines, identify each by its actual type (interface generation, process model generation, expression rule generation). Do not call them all \\\"interfaces.\\\"\\n12. **SWITCH APP CONTEXT WHEN NEEDED**: If the user refers to an application other than the one in your current context, call `set_app_context` with the correct application UUID before proceeding. Discover the UUID via `getApplication` or `listApplications` first.\\n13. **INCLUDE ALL REFERENCE TABLE FIELDS IN FORMS**: When generating a form interface, every foreign key field that references a reference/lookup table (roles, statuses, types, categories, etc.) MUST be included as a visible dropdown field \\u2014 never auto-populated or hidden. The user must always be able to select from reference table options.\\n\\n## ERROR HANDLING\\n\\n**Retry rules (for transient errors only):**\\n- If a tool call fails with a transient error (timeout, lock acquisition, 500), retry up to 2 more times (3 total). On retry, fix the specific error \\u2014 do NOT simplify the object.\\n- After 3 total attempts, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n- If a task requires a capability you don't have, call `set_task_status(status=\\\"failed\\\", reason=\\\"Unsupported: [reason]\\\")`. Do NOT loop or repeat the same explanation.\\n\\nWhen the user says \\\"skip\\\" or \\\"continue\\\", proceed to the next task immediately.\\n\\n## OBJECT IMPLEMENTATION GUIDE\\n\\n## Record Type Implementation Guide\\n\\nRecord types are created one at a time. There is no batch operation.\\n\\n### Creation Order\\n\\nCreate record types sequentially \\u2014 reference/lookup tables first, then entity tables that depend on them via foreign keys.\\n\\nEvery record type must have a primary key field. The primary key field MUST be named `id` and be of type `INTEGER`.\\n\\n### Relationships\\n\\nRelationships cannot be defined during record type creation because field UUIDs are not assigned until the record type exists. Always create the record type first, then wire relationships afterward.\\n\\nAfter creating each record type, check whether any relationships can now be wired \\u2014 meaning both the source and target record types already exist (from this or earlier tasks). Wire all applicable relationships before marking the task complete. Do not list \\\"add relationships\\\" as separate plan steps \\u2014 they are part of the record type creation task.\\n\\n### Relationship Workflow\\n\\n1. Create reference/lookup record types first \\u2014 save the returned UUIDs and field UUIDs\\n2. Create entity record types with foreign key fields \\u2014 save the returned UUIDs and field UUIDs\\n3. Wire relationships using the real field UUIDs from the creation responses\\n\\nWhen wiring a relationship, you need three pieces of information:\\n- The foreign key field UUID on the source record type (from its creation response)\\n- The primary key field UUID on the target record type (from its creation response)\\n- The UUID of the target record type itself\\n\\n**NEVER guess or fabricate field UUIDs.** Always use the exact UUIDs returned when the record type was created or retrieved.\\n\\n**Check the \\\"OBJECTS CREATED SO FAR\\\" section first** \\u2014 it contains field UUIDs for all record types created in earlier tasks. Use those directly. Only retrieve a record type's fields if it was created outside this plan and is not in the structured context.\\n\\n### User-Type Fields \\u2192 User System Record Type\\n\\nAny field whose type is USER (e.g., assigned_to, submitted_by, reviewer) must have a MANY_TO_ONE relationship wired to the built-in User system record type after creation. Do not create a User entity \\u2014 use the system record type instead.\\n\\n- System record type UUID: `SYSTEM_RECORD_TYPE_USER`\\n- User primary key field UUID: `SYSTEM_RECORD_TYPE_USER_FIELD_username`\\n- The User record type is WEB_SERVICE-backed \\u2014 you cannot insert data into it.\\n\\nName each relationship after the source field (e.g., a field called `assigned_to` gets a relationship named `assignedToUser`). Wire one relationship per USER-type field on the record type.\\n\\n### Sample Data\\n\\nEvery record type must have sample data inserted immediately after creation and relationship wiring, before marking the task complete. A record type without sample data is incomplete.\\n\\nUse the field names from the creation response as CSV column headers \\u2014 they must match exactly.\\n\\nPopulate realistic, internally consistent data that demonstrates the record type's purpose. Foreign key values must reference primary keys that actually exist in the related record type \\u2014 use values from prior insert responses. Omit the primary key column if it is auto-generated.\\n\\nFor fields of type USER, do not fabricate usernames. Query the User system record type (`SYSTEM_RECORD_TYPE_USER`) first to retrieve real, active usernames. Use only usernames that exist in the system, and vary assignments across rows.\\n\\n### Field Type Selection\\n\\n| Type | Use For |\\n|---|---|\\n| Text | Names, descriptions, emails |\\n| Integer | IDs, counts, foreign keys |\\n| Boolean | Status flags, yes/no values |\\n| Date | Dates without time |\\n| Datetime | Timestamps with time |\\n| Decimal | Money, percentages |\\n| User | Appian user references |\\n\\nUse the tool schema to determine exact accepted field type values \\u2014 do not guess.\\n\\n### Record Event Configuration\\n\\nWhen the plan calls for audit tracking or event history on a record type, configure record events on the primary record type after creation. Use meaningful past-tense business event types (e.g., \\\"Submitted\\\", \\\"Approved\\\", \\\"Rejected\\\") \\u2014 not generic labels.\\n\\nSupporting record types (Event History, Event Type Lookup, Reply Thread, and Subscriber record types with proper relationships and security inherited from the base record type) are auto-created by the platform. Do not create these manually.\\n\\n### EXPRESSION User Filters\\n\\nWhen the plan calls for an EXPRESSION-type user filter (dynamic options, computed defaults, or any filter needing SAIL logic), generate the SAIL expression rather than writing it by hand. Use the available tooling to produce valid filter expressions, then apply the result when adding the user filter with facetType \\\"EXPRESSION\\\".\\n\\n### User Filter Field References\\n\\nBefore adding user filters, **always retrieve the record type first** to get the full list of field UUIDs. **Never fabricate a UUID** \\u2014 use only UUIDs returned from the record type.\\n\\nTo add a filter on a **related record's** field, you must first retrieve the related record type to get its field UUIDs.\\n\\n### LIST_OF_VALUES Filters on Related Records\\n\\nWhen a LIST_OF_VALUES filter is on a field from a related record (via a M:1 relationship), use **related record values** instead of manually constructing an options array. This dynamically populates filter options from the related record type:\\n- `useRelatedRecordValues: true`\\n- `sourceRef`: the FK field UUID on the source record type (or `RELATIONSHIP_UUID/FIELD_UUID`)\\n- `relatedRecordDisplayField`: UUID of a Text field on the related record type to use as option labels (e.g., the `name` or `label` field)\\n- `relatedRecordSort`: `ASCENDING`, `DESCENDING`, or `UNSORTED`\\n- Do NOT provide an `options` array \\u2014 the platform populates options automatically\\n\\nExample for a status filter where the source record has a FK to a Status lookup table:\\n```json\\n{\\n \\\"facetType\\\": \\\"LIST_OF_VALUES\\\",\\n \\\"sourceRef\\\": \\\"STATUS_FK_FIELD_UUID\\\",\\n \\\"useRelatedRecordValues\\\": true,\\n \\\"relatedRecordDisplayField\\\": \\\"STATUS_NAME_FIELD_UUID\\\",\\n \\\"relatedRecordSort\\\": \\\"ASCENDING\\\"\\n}\\n```\\n\\nFor LIST_OF_VALUES filters on a local field (no relationship), provide the `options` array with explicit buckets instead.\\n\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"generate_interface_sail\",\"description\":\"Generate a SAIL UI using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\\n\\nArgs:\\n request: Description of the UI to generate (e.g., \\\"Create an employee dashboard\\\").\\n interfaceType: Type of interface - \\\"dashboard\\\", \\\"form\\\", or \\\"component\\\".\\n recordTypeUuids: Optional list of record type UUIDs for data model discovery in Phase 2.\\n interfaceUuid: Optional interface UUID. If provided, Phase 2 will validate and save SAIL to the interface.\\n\\nReturns:\\n Dict with success=True and async=True if validation passed and pipeline was launched.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceType\":{\"default\":\"dashboard\",\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null},\"interfaceUuid\":{\"type\":\"string\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_expression_rule_sail\",\"description\":\"Generate a SAIL expression for an expression rule using a single-phase agent workflow.\\n\\nArgs:\\n request: Description of what the expression rule should do.\\n expressionRuleUuid: Optional UUID. If provided, validates and saves the expression to the rule.\\n recordTypeUuids: Optional record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success, expression, and expression_rule_uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"expressionRuleUuid\":{\"type\":\"string\",\"default\":null},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_expression_rule_sail\"},{\"toolSpec\":{\"name\":\"edit_interface_sail\",\"description\":\"Edit an existing interface's SAIL expression using targeted edits.\\n\\nFetches the interface's current expression, loads it into an in-memory buffer,\\nand runs an agent that makes surgical edits via str_replace_sail. Runs synchronously\\n\\u2014 blocks until the edit is complete and returns the result.\\n\\nArgs:\\n request: Description of the change to make (e.g., \\\"Add a search box above the grid\\\").\\n interfaceUuid: UUID of the interface to edit (required).\\n recordTypeUuids: Optional list of record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success/failure and details.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"interfaceUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:edit_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_process_model\",\"description\":\"Generate process model nodes using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"hasStartForm\":{\"default\":false,\"type\":\"boolean\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:generate_process_model\"},{\"toolSpec\":{\"name\":\"edit_process_model\",\"description\":\"Edit an existing process model using a two-phase agent workflow (async).\\n\\nFetches the current model state, passes it to the drafter as context,\\nthen validates and saves via the reviewer.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:edit_process_model\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"createApplication\",\"description\":\"Create a new Appian application. The API automatically generates default objects (groups, folders, etc.) and associates them with the application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\",\"description\":\"Application prefix for object naming conventions (e.g. \\\"CUST\\\"). Auto-generated from the name if not provided.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createApplication\"},{\"toolSpec\":{\"name\":\"addObjectsToApplication\",\"description\":\"Add design objects to an Appian application. Most create tools now accept appUuid directly \\u2014 use this tool mainly for associating pre-existing objects with an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"objects\":{\"items\":{\"description\":\"Reference to a design object for application association.\",\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Design object type, e.g. CONSTANT, INTERFACE, PROCESS_MODEL, EXPRESSION_RULE, RECORD_TYPE, SITE, GROUP, DATA_TYPE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"appUuid\",\"objects\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addObjectsToApplication\"},{\"toolSpec\":{\"name\":\"deleteApplication\",\"description\":\"Permanently delete an Appian application. This removes the application container only \\u2014 all design objects (records, interfaces, process models, etc.) that were part of the application are preserved and become unassociated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"createConnectedSystem\",\"description\":\"Create a new Appian connected system.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateConnectedSystem\\n\\u2192 repeat until all required fields are populated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Connected system type identifier (see listConnectedSystemTypes)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateConnectedSystem, and repeat until all required fields are populated. Changing a discriminator field (e.g., authType) may change which fields appear in the next response.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConnectedSystem\"},{\"toolSpec\":{\"name\":\"updateConnectedSystem\",\"description\":\"Update an existing Appian connected system. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map \\u2014 if you changed a discriminator field (e.g., authType), the schema may change: new fields appear, old fields disappear from both `schema` and `properties`.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConnectedSystem\"},{\"toolSpec\":{\"name\":\"deleteConnectedSystem\",\"description\":\"Permanently delete an Appian connected system.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"createConstant\",\"description\":\"Create a new Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"type\",\"value\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConstant\"},{\"toolSpec\":{\"name\":\"updateConstant\",\"description\":\"Update an existing Appian constant. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"type\":{\"type\":\"string\",\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"default\":null},\"value\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConstant\"},{\"toolSpec\":{\"name\":\"deleteConstant\",\"description\":\"Permanently delete an Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"updateDocument\",\"description\":\"Update an existing Appian document. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateDocument\"},{\"toolSpec\":{\"name\":\"deleteDocument\",\"description\":\"Permanently delete an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"replaceDocumentContent\",\"description\":\"Replace the content of an Appian document. Content is plain text \\u2014 it will be base64-encoded automatically.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:replaceDocumentContent\"},{\"toolSpec\":{\"name\":\"uploadDocument\",\"description\":\"Upload a new document with file content to a folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"The document name including extension (max 255 characters), e.g. \\\"Annual Report.pdf\\\".\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"The UUID of the parent folder.\",\"type\":\"string\"},\"content\":{\"description\":\"The file content as a plain string \\u2014 it will be base64-encoded automatically.\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"extension\":{\"type\":\"string\",\"description\":\"Optional file extension without dot (auto-detected from name if not provided), e.g. \\\"pdf\\\".\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:uploadDocument\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"createExpressionRule\",\"description\":\"Create a new Appian expression rule.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createExpressionRule\"},{\"toolSpec\":{\"name\":\"updateExpressionRule\",\"description\":\"Update an existing Appian expression rule. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateExpressionRule\"},{\"toolSpec\":{\"name\":\"deleteExpressionRule\",\"description\":\"Permanently delete an Appian expression rule.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"createFolder\",\"description\":\"Create a new Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"parentFolderUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createFolder\"},{\"toolSpec\":{\"name\":\"updateFolder\",\"description\":\"Update an existing Appian folder. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateFolder\"},{\"toolSpec\":{\"name\":\"deleteFolder\",\"description\":\"Permanently delete an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"createGroup\",\"description\":\"Create a new Appian group.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"parentGroupName\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"addGroupMembers\",\"description\":\"Add members to an Appian group. Accepts a batch of users and/or groups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"members\":{\"items\":{\"description\":\"Reference to a group member for add/remove operations.\",\"properties\":{\"type\":{\"description\":\"Member type: 'user' or 'group'\",\"type\":\"string\"},\"id\":{\"description\":\"Username for users, group name for groups\",\"type\":\"string\"}},\"required\":[\"type\",\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"groupName\",\"members\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addGroupMembers\"},{\"toolSpec\":{\"name\":\"removeGroupMember\",\"description\":\"Remove a direct member from an Appian group. Only direct members can be removed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"memberType\":{\"description\":\"Type of member to remove: 'user' or 'group'.\",\"type\":\"string\"},\"memberId\":{\"description\":\"Username for users, group name for groups.\",\"type\":\"string\"}},\"required\":[\"groupName\",\"memberType\",\"memberId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:removeGroupMember\"},{\"toolSpec\":{\"name\":\"deleteGroup\",\"description\":\"Permanently delete an Appian group by name. This operation cannot be undone.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteGroup\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"createIntegration\",\"description\":\"Create a new Appian integration.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateIntegration\\n\\u2192 repeat until all required fields are populated.\\n\\nDo NOT guess at property names or values \\u2014 inspect the `schema` in the\\nresponse first, then use updateIntegration to set the fields you need.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"Integration name. Must not contain spaces.\",\"type\":\"string\"},\"connectedSystemUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier from the connected system type's operations list (see listConnectedSystemTypes).\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateIntegration, and repeat until all required fields are populated. Do not guess at property names \\u2014 always inspect the schema from the create response first. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters. Each dict has: name (str), type (str, e.g. 'Text'), description (str, optional).\",\"default\":null}},\"required\":[\"name\",\"connectedSystemUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createIntegration\"},{\"toolSpec\":{\"name\":\"updateIntegration\",\"description\":\"Update an existing Appian integration. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Integration name. Must not contain spaces.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier. Changing this switches the integration to a different operation.\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters (full replacement \\u2014 replaces all existing inputs)\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateIntegration\"},{\"toolSpec\":{\"name\":\"deleteIntegration\",\"description\":\"Permanently delete an Appian integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"createInterface\",\"description\":\"Create a new Appian interface.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createInterface\"},{\"toolSpec\":{\"name\":\"updateInterface\",\"description\":\"Update an existing Appian interface. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateInterface\"},{\"toolSpec\":{\"name\":\"deleteInterface\",\"description\":\"Permanently delete an Appian interface.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteInterface\"},{\"toolSpec\":{\"name\":\"testInterface\",\"description\":\"Evaluate an Appian interface with test inputs and check for runtime errors. Use diagnostics.error to detect rendering failures that syntax validation misses (bad record references, type mismatches, missing inputs). The result contains the rendered SAIL component tree.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"updateObjectSecurity\",\"description\":\"Set the security role map for a design object by UUID.\\n\\nFull replacement \\u2014 roles not included are cleared.\\nOnly roleName and groupNames are used; inheritedGroupNames is read-only\\nand ignored on PUT.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"roles\":{\"items\":{\"description\":\"Role-to-groups mapping for object security.\",\"properties\":{\"roleName\":{\"description\":\"Use getObjectSecurity to see valid roles for the object type.\",\"type\":\"string\"},\"groupNames\":{\"default\":[],\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"roleName\"],\"type\":\"object\"},\"type\":\"array\"},\"inheritSecurity\":{\"default\":true,\"description\":\"For content-backed objects (constants, expression rules, interfaces, documents, folders), whether this object inherits security from its parent. Ignored for non-content objects.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"roles\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"createProcessModel\",\"description\":\"Create a new Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Process Model Folder UUID (see listProcessModelFolders)\",\"type\":\"string\"},\"errorAlertGroupName\":{\"description\":\"Error alert group name (see listGroups)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null}},\"required\":[\"name\",\"description\",\"parentFolderUuid\",\"errorAlertGroupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModel\",\"description\":\"Permanently delete an Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"updateProcessModel\",\"description\":\"Update an existing Appian process model. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"processVariables\":{\"items\":{\"description\":\"Schema for a process model variable supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Variable name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"isParameter\":{\"type\":\"boolean\",\"description\":\"Expose as a process parameter (visible to callers like record actions, subprocesses, and start forms)\",\"default\":null},\"isRequired\":{\"type\":\"boolean\",\"description\":\"Whether this parameter is required\",\"default\":null},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this variable holds a list of values. Defaults to false.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process variables. Set isParameter=true to expose as inputs for record actions, subprocesses, or start forms.\",\"default\":null},\"nodes\":{\"items\":{\"description\":\"A node in a process model flow.\",\"properties\":{\"id\":{\"description\":\"Node ID, unique within the process model\",\"type\":\"integer\"},\"type\":{\"description\":\"Node type ID from listProcessModelNodeTypes, e.g. core.0, internal3.integration, event.timer\",\"type\":\"string\"},\"name\":{\"description\":\"Label shown on the process modeler canvas\",\"type\":\"string\"},\"coordinates\":{\"description\":\"Canvas position [x, y]\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"connections\":{\"default\":[],\"description\":\"Outgoing node IDs. Empty for End Event.\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"data\":{\"description\":\"Data/Setup tab configuration for activity and event nodes.\\nDo NOT use ac! references in downstream nodes \\u2014 ac! is scoped to the node it belongs to.\",\"properties\":{\"inputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined inputs from getProcessModelNodeTypeSchema\",\"default\":null},\"outputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined outputs. Set saveInto to wire to a PV.\",\"default\":null},\"customInputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined input parameters\",\"default\":null},\"customOutputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined output expressions\",\"default\":null}},\"type\":\"object\",\"default\":null},\"decision\":{\"description\":\"Decision tab configuration for XOR and OR gateways.\",\"properties\":{\"conditions\":{\"description\":\"Ordered conditions evaluated top-to-bottom, first match wins\",\"items\":{\"description\":\"A condition rule on an XOR or OR gateway.\",\"properties\":{\"expression\":{\"description\":\"SAIL boolean expression\",\"type\":\"string\"},\"targetNodeId\":{\"description\":\"Target node ID when condition is true\",\"type\":\"integer\"},\"label\":{\"type\":\"string\",\"default\":null}},\"required\":[\"expression\",\"targetNodeId\"],\"type\":\"object\"},\"type\":\"array\"},\"defaultPath\":{\"description\":\"Target node ID when no condition matches\",\"type\":\"integer\"}},\"required\":[\"conditions\",\"defaultPath\"],\"type\":\"object\",\"default\":null},\"assignment\":{\"description\":\"Assignment tab configuration for activity nodes.\",\"properties\":{\"attended\":{\"type\":\"boolean\",\"description\":\"true=user task, false=system executes. Required for ATTENDED_OR_UNATTENDED node types.\",\"default\":null},\"assignTo\":{\"type\":\"string\",\"description\":\"SAIL expression for assignee, default pp!initiator\",\"default\":null},\"reassignPrivileges\":{\"type\":\"string\",\"description\":\"NONE, REJECT_ONLY, REASSIGN_WITHIN_POOL, or REASSIGN_TO_ANY (default)\",\"default\":null},\"runAs\":{\"type\":\"string\",\"description\":\"INITIATOR (default) or DESIGNER, for unattended nodes\",\"default\":null},\"overrideLane\":{\"type\":\"boolean\",\"description\":\"Override swimlane assignment\",\"default\":null}},\"type\":\"object\",\"default\":null},\"forms\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"id\",\"type\",\"name\",\"coordinates\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process model nodes. Use listProcessModelNodeTypes for available types and getProcessModelNodeTypeSchema for node parameters.\",\"default\":null},\"startForm\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateProcessModel\"},{\"toolSpec\":{\"name\":\"testProcessModel\",\"description\":\"Start a process model, wait for completion, and return process variable values. Only works for unattended process models (no user input tasks). Returns processId, status, and processVariables map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of process parameter values to pass on start.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for the process to complete. Default: 30. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModelNode\",\"description\":\"Remove a node and clean up all incoming/outgoing connections.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"insertRecordData\",\"description\":\"Insert one or more rows of record data from CSV.\\n\\nReturns inserted rows with assigned primary keys. Save these keys for\\nforeign key references in downstream record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row and one or more data rows. Header names must match field names exactly as defined on the record type. PK column may be omitted for auto-generated keys. Boolean fields: use 1 (true) or 0 (false) \\u2014 string values like 'true'/'false' are rejected. Date values: YYYY-MM-DD (e.g. 2026-03-20). Datetime values: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC. Fields containing commas, quotes, or newlines MUST be enclosed in double quotes per RFC 4180. Do NOT embed JSON in CSV fields \\u2014 use plain text.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:insertRecordData\"},{\"toolSpec\":{\"name\":\"updateRecordData\",\"description\":\"Update one or more rows of record data by primary key from CSV. Supports partial updates.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row (including PK column) and one or more data rows. Date values: ISO 8601 date format YYYY-MM-DD (e.g. 2026-03-20). Datetime values: ISO 8601 datetime without timezone: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: ISO 8601 time format HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordData\"},{\"toolSpec\":{\"name\":\"deleteRecordData\",\"description\":\"Delete one or more rows of record data by primary key from CSV.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with PK column header and one or more PK values (one per line).\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"createRecordType\",\"description\":\"Create a new Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"sourceType\":{\"description\":\"The type of data source. DATABASE connects to or creates a database table (use createTable to control DDL). Valid values: DATABASE, WEB_SERVICE, PROCESS, SALESFORCE.\",\"type\":\"string\"},\"createTable\":{\"default\":true,\"description\":\"When true, Appian creates the database table (mirrors the 'Create Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM tables are not yet supported.\",\"type\":\"boolean\"},\"tableName\":{\"type\":\"string\",\"description\":\"CDM: table name to create (defaults to snake_case of record type name). DATABASE: existing table name to connect to.\",\"default\":null},\"dataSourceUuid\":{\"type\":\"string\",\"description\":\"DATABASE: UUID of the data source containing the table. CDM: auto-resolved if omitted.\",\"default\":null},\"schema\":{\"type\":\"string\",\"description\":\"DATABASE: schema name. CDM: auto-resolved if omitted.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"fields\":{\"items\":{\"description\":\"Field definition for a record type.\",\"properties\":{\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to snake_case of fieldName)\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"description\":\"Column length for TEXT fields (0 = default)\",\"default\":null}},\"required\":[\"fieldName\",\"fieldType\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\",\"sourceType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createRecordType\"},{\"toolSpec\":{\"name\":\"updateRecordType\",\"description\":\"Update an existing Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"securityRules\":{\"items\":{\"description\":\"Record-level security rule defining who can see which records.\",\"properties\":{\"membershipType\":{\"description\":\"GROUPS, FIELDS, or RELATED_RECORDS\",\"type\":\"string\"},\"groupUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Group UUIDs. GROUPS membership only. Rule applies to members of the specified groups.\",\"default\":null},\"fieldUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"User or Group field UUIDs \\u2014 direct fields or related record fields. FIELDS membership only. Rule applies to any users found in the specified fields.\",\"default\":null},\"relationshipUuid\":{\"type\":\"string\",\"description\":\"Relationship UUID. RELATED_RECORDS membership only. Rule applies to any users who have access to the related record.\",\"default\":null},\"conditions\":{\"items\":{\"description\":\"Filter condition for record-level security rules.\",\"properties\":{\"field\":{\"description\":\"Record field UUID\",\"type\":\"string\"},\"operator\":{\"description\":\"Comparison operator (=, <>, <, >, <=, >=)\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Comparison value\"}},\"required\":[\"field\",\"operator\",\"value\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Additional filter conditions to further limit rule applicability.\",\"default\":null}},\"required\":[\"membershipType\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Full replacement of security rules. List order = evaluation order (first match wins). Empty list clears all rules.\",\"default\":null},\"securityExpression\":{\"type\":\"string\",\"description\":\"SAIL expression for record-level security. Set to null to clear. Omit to preserve current value. Record types using expressions cannot be referenced via RELATED_RECORDS membership.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordType\"},{\"toolSpec\":{\"name\":\"deleteRecordType\",\"description\":\"Permanently delete an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"addRecordTypeField\",\"description\":\"Add a field to an Appian record type. For CDM-backed record types, creates the corresponding database column.\\n\\nReturns the created field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to toSnakeCase(fieldName))\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to add the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldName\",\"fieldType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeField\"},{\"toolSpec\":{\"name\":\"updateRecordTypeField\",\"description\":\"Update a field on an Appian record type. Only provided fields are changed. For CDM-backed record types, type changes trigger ALTER TABLE.\\n\\nReturns the updated field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\",\"default\":null},\"fieldType\":{\"type\":\"string\",\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"default\":null},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to update the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeField\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeField\",\"description\":\"Delete a field from an Appian record type. For CDM-backed record types, drops the database column (destructive). Other source types only unmap the field. Primary key fields cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to drop the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"addRecordTypeRelationship\",\"description\":\"Add a relationship to an Appian record type.\\n\\nBoth the source and target record types must already exist. Use the exact\\nfield UUIDs returned from record type creation or retrieval responses \\u2014\\nnever fabricate UUIDs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\"},\"sourceRecordTypeFieldUuid\":{\"description\":\"UUID of the foreign key field on THIS (source) record type. Must be a real field UUID from the createRecordType or getRecordType response.\",\"type\":\"string\"},\"targetRecordTypeFieldUuid\":{\"description\":\"UUID of the primary key field on the TARGET record type. Must be a real field UUID from the target's createRecordType or getRecordType response. For system record types use SYSTEM_RECORD_TYPE_USER_FIELD_username or SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id.\",\"type\":\"string\"},\"targetRecordTypeUuid\":{\"description\":\"UUID of the target record type. For system record types use SYSTEM_RECORD_TYPE_USER (key field: SYSTEM_RECORD_TYPE_USER_FIELD_username) or SYSTEM_RECORD_TYPE_DOCUMENT (key field: SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id).\",\"type\":\"string\"},\"relationshipType\":{\"description\":\"ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipName\",\"sourceRecordTypeFieldUuid\",\"targetRecordTypeFieldUuid\",\"targetRecordTypeUuid\",\"relationshipType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"updateRecordTypeRelationship\",\"description\":\"Update a relationship on an Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\",\"default\":null},\"sourceRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeUuid\":{\"type\":\"string\",\"default\":null},\"relationshipType\":{\"type\":\"string\",\"description\":\"Type of relationship: ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"default\":null}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeRelationship\",\"description\":\"Delete a relationship from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"addRecordTypeAction\",\"description\":\"Add a record action to an Appian record type. Returns the created action including server-generated uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"actionType\":{\"description\":\"Type of record action: LIST_ACTION (record list) or RELATED_ACTION (record view)\",\"type\":\"string\"},\"key\":{\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code for the action button (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code. Default: 'f0e7'.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling visibility (default \\\"=true()\\\")\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"description\":\"SAIL expression passing record context to the process model. Only valid for RELATED_ACTION. Use a dictionary to pass record information into the related action. The keys in the dictionary map to the case-sensitive parameter names in the process model.\",\"default\":null}},\"required\":[\"uuid\",\"displayName\",\"processModelUuid\",\"actionType\",\"key\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeAction\"},{\"toolSpec\":{\"name\":\"updateRecordTypeAction\",\"description\":\"Update a record action by UUID with partial update semantics. Only provided fields are changed. actionType is immutable.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\",\"default\":null},\"processModelUuid\":{\"type\":\"string\",\"default\":null},\"key\":{\"type\":\"string\",\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeAction\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeAction\",\"description\":\"Delete a record action by UUID from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeAction\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"addRecordTypeView\",\"description\":\"Add a custom view (tab) to a record type. The first view added becomes the Summary view (urlStub \\\"summary\\\"); subsequent views get auto-generated urlStubs. All expression parameters accept SAIL expressions. Available variables: `rv!identifier` (record ID), `rv!record` (full record), `loggedInUser()`. For static values, use quoted strings (e.g. `'\\\"Order Details\\\"'`).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\"},\"interfaceExpression\":{\"type\":\"string\"},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Null = visible to all users.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Get UUIDs from listRecordTypeActions.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB (default), NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"nameExpression\",\"interfaceExpression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeView\"},{\"toolSpec\":{\"name\":\"updateRecordTypeView\",\"description\":\"Update fields on an existing view. Only provided fields are changed; omitted fields are preserved.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\",\"default\":null},\"interfaceExpression\":{\"type\":\"string\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Set to null to clear (visible to all). Omit to preserve current value.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Empty list clears all.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB, NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeView\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeView\",\"description\":\"Permanently delete a view from a record type. The Summary view cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeView\"},{\"toolSpec\":{\"name\":\"reorderRecordTypeViews\",\"description\":\"Reorder views on a record type. All existing urlStubs must be included.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStubs\":{\"description\":\"Ordered list of all view urlStubs representing desired tab order. Must include all existing urlStubs. Summary is always pinned first.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuid\",\"urlStubs\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:reorderRecordTypeViews\"},{\"toolSpec\":{\"name\":\"configureRecordEvents\",\"description\":\"Configure record events on an Appian record type (one-time setup).\\n\\nCreates four supporting record types (Event History, Event Type Lookup, Reply Thread,\\nSubscriber), wires relationships, copies security from the base record type, and persists\\nthe configuration. Returns 409 if record events are already configured.\\n\\nEvent types can be managed after initial setup by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\\n\\nReturns a RecordEventConfig with: four RT UUIDs (eventHistoryRecordTypeUuid,\\neventTypeLookupRecordTypeUuid, replyThreadRecordTypeUuid, subscriberRecordTypeUuid),\\nrelationship UUIDs (eventRelationshipUuid, eventTypeRelationshipUuid,\\neventReplyRelationshipUuid, subscriberRelationshipUuid), field UUIDs\\n(eventTypeValueFieldUuid, eventUserFieldUuid, eventTimestampFieldUuid,\\neventAutomationIdentifierFieldUuid, eventCommentFieldUuid, eventReplyUserFieldUuid,\\neventReplyCommentFieldUuid, eventReplyTimestampFieldUuid, subscriberUserFieldUuid),\\ncommentEventTypeId, generateCommonEvents, and eventTypes.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"eventTypes\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Event types representing key moments in the business lifecycle of this record. Use past-tense verb phrases (e.g. 'Created Order', 'Approved Application', 'Shipped Order'). Avoid generic recurring operations like 'Updated' \\u2014 focus on meaningful business activities that ideally occur once per record in a specific order.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:configureRecordEvents\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"addRecordTypeUserFilter\",\"description\":\"Add a user filter to a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"facetType\":{\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"allowMultipleSelections\":{\"default\":false,\"type\":\"boolean\"},\"useRelatedRecordValues\":{\"default\":false,\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"type\":\"boolean\"},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"name\",\"facetType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"updateRecordTypeUserFilter\",\"description\":\"Update a user filter on a record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"facetType\":{\"type\":\"string\",\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"orderIndex\":{\"type\":\"integer\",\"default\":null},\"allowMultipleSelections\":{\"type\":\"boolean\",\"default\":null},\"useRelatedRecordValues\":{\"type\":\"boolean\",\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"default\":null},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeUserFilter\",\"description\":\"Remove a user filter from a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"createSite\",\"description\":\"Create a new Appian site. Requires at least one page.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"webAddressIdentifier\":{\"type\":\"string\"},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav, default) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY (default), HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"name\",\"displayName\",\"webAddressIdentifier\",\"pages\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createSite\"},{\"toolSpec\":{\"name\":\"updateSite\",\"description\":\"Update an existing Appian site. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"webAddressIdentifier\":{\"type\":\"string\",\"default\":null},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY, HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateSite\"},{\"toolSpec\":{\"name\":\"deleteSite\",\"description\":\"Permanently delete an Appian site.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteSite\"},{\"toolSpec\":{\"name\":\"testRule\",\"description\":\"Execute an Appian rule with test inputs and return the result. Works for expression rules and integrations \\u2014 all rule-type objects in Appian. Pass the object's UUID, type, and an optional inputs map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Object type: EXPRESSION_RULE or INTEGRATION.\",\"enum\":[\"EXPRESSION_RULE\",\"INTEGRATION\"],\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testRule\"},{\"toolSpec\":{\"name\":\"validateDesignObject\",\"description\":\"Validate all expressions on a design object by UUID.\\n\\nReturns validation results including any expression errors found.\\nUse this to check for expression errors without performing a save.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateDesignObject\"},{\"toolSpec\":{\"name\":\"validateExpression\",\"description\":\"Validate a raw SAIL expression without saving it.\\n\\nRuns parse, discovery, and eval passes. No rule inputs or record\\nreferences are stubbed \\u2014 use for standalone expressions like freeform mockups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"expression\":{\"type\":\"string\"}},\"required\":[\"expression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateExpression\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"},{\"toolSpec\":{\"name\":\"createWebApi\",\"description\":\"Create a new Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"urlAlias\":{\"type\":\"string\"},\"httpMethod\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"urlAlias\",\"httpMethod\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createWebApi\"},{\"toolSpec\":{\"name\":\"updateWebApi\",\"description\":\"Update an existing Appian Web API. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateWebApi\"},{\"toolSpec\":{\"name\":\"deleteWebApi\",\"description\":\"Permanently delete an Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"694e1a1e-53bb-4767-91c6-f397f10d5705","status":"QUEUED","status_url":"/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status"} | |
| [2026-04-14T18:28:32.996639+00:00] [5d695204] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status | |
| run_id: 694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:28:32.998410+00:00] [922f1e3f] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/messages | |
| run_id: 694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:29:39.506023+00:00] [621a381e] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status | |
| run_id: 694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:29:40.568608+00:00] [7d5d50c8] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status | |
| run_id: 694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:29:40.630869+00:00] [1983e849] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| run_id: 694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"694e1a1e-53bb-4767-91c6-f397f10d5705","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":305266,"output_tokens":2355,"total_tokens":307621},"tool_calls":7,"duration_seconds":66.78283715248108,"start_time":"1776191312.749338","initiator":"unknown","tags":{},"created_at":"2026-04-14T18:28:32.749338Z","completed_at":"2026-04-14T18:29:39.532175Z","error":null} | |
| [2026-04-14T18:29:40.695866+00:00] [0602fb92] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status | |
| run_id: 694e1a1e-53bb-4767-91c6-f397f10d5705 | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/694e1a1e-53bb-4767-91c6-f397f10d5705/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:29:40.828397+00:00] [9b87a6f3] POST https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs | |
| curl: curl -X POST "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agents/generic-react/runs" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -d "{\"query\":\"## CLIENT CONTEXT\\nThis describes where the user currently is in the Appian UI. It is navigational context only \\u2014 it does NOT constrain or narrow the user's request. The user's message is the primary intent. Do not assume the user only wants to work on the object type or area shown here. An object_uuid here may reference an object that does not yet exist.\\n- type: eval\\n- id: 6385c363-b519-4282-b4fd-0677df5b4d94\\n\\n[user]: Step 1: Create Application: RSM Board Partner 20250327-1437\\n[assistant]: \\u2713 Step 1 completed successfully.\\n\\nTools called: execute_plan, createApplication, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n}\\n[user]: Step 2: Create Partner Group\\n[assistant]: \\u2713 Step 2 completed successfully.\\n\\nTools called: createGroup, addGroupMembers, createConstant, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n}\\n[user]: Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n[assistant]: \\u2713 Step 3 completed successfully.\\n\\nTools called: createRecordType, insertRecordData, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Role\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"00432adc-17f8-4585-bb88-f6966760c865\\\",\\n \\\"fieldName\\\": \\\"roleName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Role Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"cb20fb2c-b414-4f1b-9499-98bb5bb273de\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"bb29534a-a90b-4d1d-890d-f51521434b63\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n}\\n[user]: Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n[assistant]: \\u2713 Step 4 completed successfully.\\n\\nTools called: createRecordType, insertRecordData, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Membership Status\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"65a98a41-7b69-4415-b757-f6d2af2b36dc\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"95587f6b-3891-4eb9-bbe5-bca1ee3e6eae\\\",\\n \\\"fieldName\\\": \\\"statusName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Status Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ed33a678-105c-4ab5-b9fc-fe2080cc7f09\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"6fd41470-d8bf-4970-87e9-595076f6b130\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n}\\n[user]: Step 5: Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n[assistant]: \\u2713 Step 5 completed successfully.\\n\\nTools called: createRecordType, addRecordTypeRelationship, listRecordData, insertRecordData, set_task_status\\n\\nResult:\\n{\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"c55a09ca-ff5e-4819-89e6-eae9fc072962\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Membership\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}c55a09ca-ff5e-4819-89e6-eae9fc072962\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"c1c16220-51de-4b10-88ce-e4e0bae0ef6b\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"74c91d9d-4a42-4245-9fa5-d1dd70e89626\\\",\\n \\\"fieldName\\\": \\\"organizationName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Organization Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ddbec977-16c5-4343-b4cd-71cb75d382ad\\\",\\n \\\"fieldName\\\": \\\"roleId\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Role Id\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"0880ccf4-fc80-4e5a-8cef-eb00a907db9b\\\",\\n \\\"fieldName\\\": \\\"statusId\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Status Id\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"3a06233d-2e00-4618-aaa1-e08abaf46223\\\",\\n \\\"fieldName\\\": \\\"startDate\\\",\\n \\\"fieldType\\\": \\\"DATE\\\",\\n \\\"displayName\\\": \\\"Start Date\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"38070192-6b5c-4403-af10-8dcd0dace9b5\\\",\\n \\\"fieldName\\\": \\\"endDate\\\",\\n \\\"fieldType\\\": \\\"DATE\\\",\\n \\\"displayName\\\": \\\"End Date\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"3953120f-b87e-4d9a-a745-a953bbdaa38b\\\",\\n \\\"fieldName\\\": \\\"phoneNumber\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Phone Number\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"338b1ec0-3594-43c1-92a1-1cdba6b49ddb\\\",\\n \\\"fieldName\\\": \\\"email\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Email\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"0ee654fa-7151-49af-b72c-52df6da10971\\\",\\n \\\"fieldName\\\": \\\"meetingFrequency\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Meeting Frequency\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"622887af-c86d-4a3a-a66d-b841d483d4f8\\\",\\n \\\"fieldName\\\": \\\"compensationType\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Compensation Type\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"acd1c2ca-da2c-4cea-ac13-7765c4155dda\\\",\\n \\\"fieldName\\\": \\\"annualCompensation\\\",\\n \\\"fieldType\\\": \\\"DECIMAL\\\",\\n \\\"displayName\\\": \\\"Annual Compensation\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ef55d08b-7fc4-4728-ba56-2f65c953eca9\\\",\\n \\\"fieldName\\\": \\\"responsibilities\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Responsibilities\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"20d156a9-8f8d-4045-8567-c795a60c4da3\\\",\\n \\\"fieldName\\\": \\\"notes\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Notes\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"86923c24-1a49-4a7c-8f8a-c575f476963a\\\",\\n \\\"fieldName\\\": \\\"submittedBy\\\",\\n \\\"fieldType\\\": \\\"USER\\\",\\n \\\"displayName\\\": \\\"Submitted By\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"83234ec6-d8be-4034-8baf-b50ad205f60c\\\",\\n \\\"fieldName\\\": \\\"submittedDate\\\",\\n \\\"fieldType\\\": \\\"DATETIME\\\",\\n \\\"displayName\\\": \\\"Submitted Date\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ],\\n \\\"relationships\\\": [\\n {\\n \\\"relationshipName\\\": \\\"boardRole\\\",\\n \\\"relationshipType\\\": \\\"MANY_TO_ONE\\\",\\n \\\"sourceRecordTypeFieldUuid\\\": \\\"ddbec977-16c5-4343-b4cd-71cb75d382ad\\\",\\n \\\"targetRecordTypeFieldUuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"targetRecordTypeUuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\"\\n },\\n {\\n \\\"relationshipName\\\": \\\"membershipStatus\\\",\\n \\\"relationshipType\\\": \\\"MANY_TO_ONE\\\",\\n \\\"sourceRecordTypeFieldUuid\\\": \\\"0880ccf4-fc80-4e5a-8cef-eb00a907db9b\\\",\\n \\\"targetRecordTypeFieldUuid\\\": \\\"65a98a41-7b69-4415-b757-f6d2af2b36dc\\\",\\n \\\"targetRecordTypeUuid\\\": \\\"cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\"\\n },\\n {\\n \\\"relationshipName\\\": \\\"submittedByUser\\\",\\n \\\"relationshipType\\\": \\\"MANY_TO_ONE\\\",\\n \\\"sourceRecordTypeFieldUuid\\\": \\\"86923c24-1a49-4a7c-8f8a-c575f476963a\\\",\\n \\\"targetRecordTypeFieldUuid\\\": \\\"SYSTEM_RECORD_TYPE_USER_FIELD_username\\\",\\n \\\"targetRecordTypeUuid\\\": \\\"SYSTEM_RECORD_TYPE_USER\\\"\\n }\\n ]\\n}\\n\\n## OBJECTS CREATED SO FAR\\n\\n### APPLICATION\\n[\\n {\\n \\\"object_type\\\": \\\"APPLICATION\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\\",\\n \\\"name\\\": \\\"RSM Board Partner 20250327-1437\\\",\\n \\\"prefix\\\": \\\"RSMBPQ7X\\\",\\n \\\"defaultObjects\\\": {\\n \\\"administratorsGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9963\\\",\\n \\\"usersGroupUuid\\\": \\\"_e-0000ef9a-c1ba-8000-9b5f-01075c01075c_9965\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\",\\n \\\"artifactsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140428\\\",\\n \\\"artifactsFolderConstantUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140434\\\",\\n \\\"documentationFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140439\\\",\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\"\\n },\\n \\\"processModelFolderUuid\\\": \\\"_g-0000ef9a-c259-8000-19b6-7f0000014e7a_2633\\\",\\n \\\"rulesAndConstantsFolderUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140416\\\",\\n \\\"knowledgeCenterUuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140422\\\"\\n }\\n]\\n### CONSTANT\\n[\\n {\\n \\\"object_type\\\": \\\"CONSTANT\\\",\\n \\\"uuid\\\": \\\"_a-0000ef9a-c203-8000-9c11-011c48011c48_140448\\\",\\n \\\"name\\\": \\\"RSMBPQ7X_GRP_PARTNERS\\\",\\n \\\"type\\\": \\\"GROUP\\\",\\n \\\"value\\\": \\\"RSMBPQ7X Partners\\\"\\n }\\n]\\n### RECORD\\n[\\n {\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Role\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}427d843c-8c75-4e63-a7d1-02434f99a4f7\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"00432adc-17f8-4585-bb88-f6966760c865\\\",\\n \\\"fieldName\\\": \\\"roleName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Role Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"cb20fb2c-b414-4f1b-9499-98bb5bb273de\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"bb29534a-a90b-4d1d-890d-f51521434b63\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n },\\n {\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Membership Status\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"65a98a41-7b69-4415-b757-f6d2af2b36dc\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"95587f6b-3891-4eb9-bbe5-bca1ee3e6eae\\\",\\n \\\"fieldName\\\": \\\"statusName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Status Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ed33a678-105c-4ab5-b9fc-fe2080cc7f09\\\",\\n \\\"fieldName\\\": \\\"description\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Description\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"6fd41470-d8bf-4970-87e9-595076f6b130\\\",\\n \\\"fieldName\\\": \\\"isActive\\\",\\n \\\"fieldType\\\": \\\"BOOLEAN\\\",\\n \\\"displayName\\\": \\\"Is Active\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ]\\n },\\n {\\n \\\"object_type\\\": \\\"RECORD\\\",\\n \\\"uuid\\\": \\\"c55a09ca-ff5e-4819-89e6-eae9fc072962\\\",\\n \\\"name\\\": \\\"RSMBPQ7X Board Membership\\\",\\n \\\"typeReference\\\": \\\"{urn:com:appian:recordtype:datatype}c55a09ca-ff5e-4819-89e6-eae9fc072962\\\",\\n \\\"fields\\\": [\\n {\\n \\\"uuid\\\": \\\"c1c16220-51de-4b10-88ce-e4e0bae0ef6b\\\",\\n \\\"fieldName\\\": \\\"id\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Id\\\",\\n \\\"isPrimaryKey\\\": true\\n },\\n {\\n \\\"uuid\\\": \\\"74c91d9d-4a42-4245-9fa5-d1dd70e89626\\\",\\n \\\"fieldName\\\": \\\"organizationName\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Organization Name\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ddbec977-16c5-4343-b4cd-71cb75d382ad\\\",\\n \\\"fieldName\\\": \\\"roleId\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Role Id\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"0880ccf4-fc80-4e5a-8cef-eb00a907db9b\\\",\\n \\\"fieldName\\\": \\\"statusId\\\",\\n \\\"fieldType\\\": \\\"INTEGER\\\",\\n \\\"displayName\\\": \\\"Status Id\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"3a06233d-2e00-4618-aaa1-e08abaf46223\\\",\\n \\\"fieldName\\\": \\\"startDate\\\",\\n \\\"fieldType\\\": \\\"DATE\\\",\\n \\\"displayName\\\": \\\"Start Date\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"38070192-6b5c-4403-af10-8dcd0dace9b5\\\",\\n \\\"fieldName\\\": \\\"endDate\\\",\\n \\\"fieldType\\\": \\\"DATE\\\",\\n \\\"displayName\\\": \\\"End Date\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"3953120f-b87e-4d9a-a745-a953bbdaa38b\\\",\\n \\\"fieldName\\\": \\\"phoneNumber\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Phone Number\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"338b1ec0-3594-43c1-92a1-1cdba6b49ddb\\\",\\n \\\"fieldName\\\": \\\"email\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Email\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"0ee654fa-7151-49af-b72c-52df6da10971\\\",\\n \\\"fieldName\\\": \\\"meetingFrequency\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Meeting Frequency\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"622887af-c86d-4a3a-a66d-b841d483d4f8\\\",\\n \\\"fieldName\\\": \\\"compensationType\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Compensation Type\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"acd1c2ca-da2c-4cea-ac13-7765c4155dda\\\",\\n \\\"fieldName\\\": \\\"annualCompensation\\\",\\n \\\"fieldType\\\": \\\"DECIMAL\\\",\\n \\\"displayName\\\": \\\"Annual Compensation\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"ef55d08b-7fc4-4728-ba56-2f65c953eca9\\\",\\n \\\"fieldName\\\": \\\"responsibilities\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Responsibilities\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"20d156a9-8f8d-4045-8567-c795a60c4da3\\\",\\n \\\"fieldName\\\": \\\"notes\\\",\\n \\\"fieldType\\\": \\\"TEXT\\\",\\n \\\"displayName\\\": \\\"Notes\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"86923c24-1a49-4a7c-8f8a-c575f476963a\\\",\\n \\\"fieldName\\\": \\\"submittedBy\\\",\\n \\\"fieldType\\\": \\\"USER\\\",\\n \\\"displayName\\\": \\\"Submitted By\\\",\\n \\\"isPrimaryKey\\\": false\\n },\\n {\\n \\\"uuid\\\": \\\"83234ec6-d8be-4034-8baf-b50ad205f60c\\\",\\n \\\"fieldName\\\": \\\"submittedDate\\\",\\n \\\"fieldType\\\": \\\"DATETIME\\\",\\n \\\"displayName\\\": \\\"Submitted Date\\\",\\n \\\"isPrimaryKey\\\": false\\n }\\n ],\\n \\\"relationships\\\": [\\n {\\n \\\"relationshipName\\\": \\\"boardRole\\\",\\n \\\"relationshipType\\\": \\\"MANY_TO_ONE\\\",\\n \\\"sourceRecordTypeFieldUuid\\\": \\\"ddbec977-16c5-4343-b4cd-71cb75d382ad\\\",\\n \\\"targetRecordTypeFieldUuid\\\": \\\"328c24b7-b6a4-4c34-b6eb-09995016e43c\\\",\\n \\\"targetRecordTypeUuid\\\": \\\"427d843c-8c75-4e63-a7d1-02434f99a4f7\\\"\\n },\\n {\\n \\\"relationshipName\\\": \\\"membershipStatus\\\",\\n \\\"relationshipType\\\": \\\"MANY_TO_ONE\\\",\\n \\\"sourceRecordTypeFieldUuid\\\": \\\"0880ccf4-fc80-4e5a-8cef-eb00a907db9b\\\",\\n \\\"targetRecordTypeFieldUuid\\\": \\\"65a98a41-7b69-4415-b757-f6d2af2b36dc\\\",\\n \\\"targetRecordTypeUuid\\\": \\\"cdd1c6df-df0d-4bf8-a6b3-cc0ab5e0e682\\\"\\n },\\n {\\n \\\"relationshipName\\\": \\\"submittedByUser\\\",\\n \\\"relationshipType\\\": \\\"MANY_TO_ONE\\\",\\n \\\"sourceRecordTypeFieldUuid\\\": \\\"86923c24-1a49-4a7c-8f8a-c575f476963a\\\",\\n \\\"targetRecordTypeFieldUuid\\\": \\\"SYSTEM_RECORD_TYPE_USER_FIELD_username\\\",\\n \\\"targetRecordTypeUuid\\\": \\\"SYSTEM_RECORD_TYPE_USER\\\"\\n }\\n ]\\n }\\n]\\n\\n## FULL IMPLEMENTATION PLAN\\n\\n [\\u2713 COMPLETED] Step 1: Create Application: RSM Board Partner 20250327-1437\\n [\\u2713 COMPLETED] Step 2: Create Partner Group\\n [\\u2713 COMPLETED] Step 3: Create Record Type: RSMBP_Q7X Board Role (Reference)\\n [\\u2713 COMPLETED] Step 4: Create Record Type: RSMBP_Q7X Membership Status (Reference)\\n [\\u2713 COMPLETED] Step 5: Create Record Type: RSMBP_Q7X Board Membership (Primary)\\n>>> CURRENT TASK: Step 6 of 12\\n Configure Record Events on RSMBP_Q7X Board Membership\\n implementation_notes: Source: Requirements - 'create a timestamped submission record capturing who submitted the data and when for audit purposes' and 'preserve the complete audit history, recording creation and update events with timestamp and user information while maintaining access to previous versions of the data'\\nConfigure record events on BOARD_MEMBERSHIP record type to track:\\n- Who created/updated each record\\n- When each change occurred\\n- Complete version history\\n- Audit trail for compliance\\nEnable generateCommonEvents: true to automatically track Create and Update events\\n\\n [\\u25cb UPCOMING] Step 7: Configure User Filters on RSMBP_Q7X Board Membership\\n [\\u25cb UPCOMING] Step 8: Create Form Interface: RSMBP_Q7X_SubmitBoardMembership\\n [\\u25cb UPCOMING] Step 9: Create Process Model: RSMBP_Q7X Submit Board Membership\\n [\\u25cb UPCOMING] Step 10: Create Record Action: Submit New Membership\\n [\\u25cb UPCOMING] Step 11: Create Dashboard Interface: RSMBP_Q7X_BoardMembershipDashboard\\n [\\u25cb UPCOMING] Step 12: Create Site: RSMBP_Q7X Board Partner Portal\\n\\n\\u26a0\\ufe0f CRITICAL: Execute ONLY the task marked as \\\"CURRENT TASK\\\" above.\\nUse the available tools to complete the current task. When finished, briefly explain what you did, then call set_task_status. The summary MUST come BEFORE set_task_status \\u2014 never after.\",\"system_prompt\":\"You are a Task Execution Agent that implements design objects in Appian applications. You are an expert Appian process designer with deep knowledge of BPMN 2.0 gateway semantics, process variable wiring, and incremental model construction.\\n\\nApplication Context: Application UUID: _a-0000ef9a-c203-8000-9c11-011c48011c48_140409\\nApplication Prefix: RSMBPQ7X\\n\\n## YOUR ROLE\\n\\nYou receive tasks from a planner and must determine the implementation details yourself. The planner provides WHAT to create; you determine HOW to implement it with appropriate fields, relationships, and configurations.\\n\\n**CRITICAL: Always read the task's `implementation_notes` field.** \\n- It contains specific instructions from the planner about visibility, security, relationships, and constraints that you MUST follow. \\n- If `implementation_notes` says visibility should be restricted to a group, you MUST set `visibilityExpr` using that group's constant. If the constant does not exist, alert the user with the create_suggestion tool.\\n\\n## TASK LIFECYCLE\\n\\n- Execute ONLY the current task assigned to you. The engine controls task sequencing.\\n- When done, briefly explain what you created/changed in plain language, then call `set_task_status`. The summary MUST come BEFORE the `set_task_status` call \\u2014 never after it.\\n- ALWAYS call `set_task_status` independently and by itself as the very last action.\\n- If a task succeeds, call `set_task_status(status=\\\"success\\\")`.\\n- If a task fails after retries, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n\\n## NAMING CONVENTION\\n\\nYou MUST include the application prefix in object names where indicated.\\nWhen creating an application, provide a short uppercase initialism as the prefix (e.g., `HRO` for HR Onboarding, `ET` for Expense Tracker).\\nThe app prefix MUST be unique. If application creation fails, it's usually due to duplicate prefixes.\\nUse this prefix consistently for all objects in the application.\\n\\n| Object Type | Prefix Rule | Casing | Example |\\n|---|---|---|---|\\n| Record Types | prefix + space | Singular title case | `HRO Employee` |\\n| Process Models | prefix + space | Title case | `HRO Onboard New Employee` |\\n| Sites | prefix + space | Title case | `HRO Onboarding` |\\n| Groups | prefix + space | Title case | `HRO Administrators` |\\n| Folders | prefix + space | Title case | `HRO Constants` |\\n| Web APIs | prefix + space | Title case | `HRO Get LinkedIn Profile` |\\n| Interfaces | prefix + underscore | PascalCase | `HRO_AddNewEmployee` |\\n| Expression Rules | prefix + underscore | PascalCase | `HRO_ComputeBaseSalary` |\\n| Constants | prefix + underscore | ALL_CAPS | `HRO_IMG_CAREER_HISTORY_ICON` |\\n| Documents | prefix + underscore | \\u2014 | `HRO_ProfilePhoto` |\\n| Record Actions | no prefix | Title case | `Update Employee` |\\n| Dashboards | no prefix | Title case | `Global Balances` |\\n| Variables / Rule Inputs | no prefix | camelCase | `firstName` |\\n| Database Tables | no prefix | lowercase_underscores | Auto-derived from record type |\\n\\n## RULES\\n\\n1. \\ud83d\\uded1 **NEVER WRITE SAIL FOR INTERFACES OR EXPRESSION RULES DIRECTLY** \\nAlways use the following tools for actually generating the SAIL expression for interfaces:\\n - generate_interface_sail\\n - generate_expression_rule_sail\\n - edit_interface_sail\\n2. \\ud83d\\uded1 **NEVER CONFIGURE PROCESS MODEL NODES OR WORKFLOWS DIRECTLY** \\n You do NOT have access to node-level tools (createProcessModelNode, updateProcessModelNode, etc.).\\n The ONLY tools you may use for process model work:\\n - `createProcessModel` \\u2014 create the skeleton (name, description, folder)\\n - `updateProcessModel` \\u2014 set processVariables and startForm ONLY (no nodes)\\n - `generate_process_model` \\u2014 create a NEW workflow (delegates node design to the PM pipeline)\\n - `edit_process_model` \\u2014 modify an EXISTING workflow (delegates node changes to the PM pipeline)\\n \\n **To create a workflow**: createProcessModel \\u2192 updateProcessModel (PVs + startForm) \\u2192 generate_process_model\\n **To modify a workflow**: edit_process_model (pass the processModelUuid and what to change)\\n3. **ALWAYS USE BUSINESS LANGUAGE.** You MUST describe actions in business terms the user understands. NEVER mention tools or UUIDs in your responses.\\n4. **USE TOOL SCHEMAS**: Read the tool's parameter schema to determine exact accepted values. Do NOT guess enum values or parameter structures \\u2014 the tool schema is the source of truth.\\n5. \\ud83d\\uded1 **ONE TASK, ONE OBJECT**: You may ONLY create or modify the object specified in the current task. If you need to create or modify ANY other object (constant, group, interface, expression rule, record type, etc.) to complete the task, you MUST call `create_suggestion` to ask the user whether they want to handle it manually or let you do it. Do NOT create or modify unrelated objects yourself \\u2014 even if you're confident they're needed.\\n6. **ALWAYS USE create_suggestion TO GATHER USER INPUT**: If you need user input, you MUST call `create_suggestion` with the question and clickable options. Do not simply send the question as a message.\\n7. **NEVER FABRICATE UUIDs**: Every UUID in your output MUST come from an API response or the provided context map. If you don't have a UUID, call the appropriate `get*` or `list*` tool to retrieve it.\\n8. \\ud83d\\uded1 **SEQUENTIAL MUTATIONS**: When making multiple changes to the same object (e.g., adding relationships, fields, or user filters to a record type), you MUST wait for each call to return before making the next. Do NOT issue parallel calls that mutate the same object \\u2014 they will race and overwrite each other.\\n9. **USE PRIOR TASK CONTEXT**: The \\\"OBJECTS CREATED SO FAR\\\" section contains UUIDs, fields, and relationships from completed tasks. The execution history shows which tools were called in each prior task. Use these directly \\u2014 do NOT re-fetch objects via `getRecordType`, `getInterface`, etc. when the information is already in context. Only call `get*` tools for objects NOT listed in prior task results. If a prior task already called `addRecordTypeData` for a record type, do NOT insert data again.\\n10. **NEVER call `create_summary`** unless the user explicitly asks for a summary.\\n11. **ACCURATELY DESCRIBE ASYNC PIPELINES**: When summarizing background pipelines, identify each by its actual type (interface generation, process model generation, expression rule generation). Do not call them all \\\"interfaces.\\\"\\n12. **SWITCH APP CONTEXT WHEN NEEDED**: If the user refers to an application other than the one in your current context, call `set_app_context` with the correct application UUID before proceeding. Discover the UUID via `getApplication` or `listApplications` first.\\n13. **INCLUDE ALL REFERENCE TABLE FIELDS IN FORMS**: When generating a form interface, every foreign key field that references a reference/lookup table (roles, statuses, types, categories, etc.) MUST be included as a visible dropdown field \\u2014 never auto-populated or hidden. The user must always be able to select from reference table options.\\n\\n## ERROR HANDLING\\n\\n**Retry rules (for transient errors only):**\\n- If a tool call fails with a transient error (timeout, lock acquisition, 500), retry up to 2 more times (3 total). On retry, fix the specific error \\u2014 do NOT simplify the object.\\n- After 3 total attempts, call `set_task_status(status=\\\"failed\\\", reason=\\\"...\\\")`.\\n- If a task requires a capability you don't have, call `set_task_status(status=\\\"failed\\\", reason=\\\"Unsupported: [reason]\\\")`. Do NOT loop or repeat the same explanation.\\n\\nWhen the user says \\\"skip\\\" or \\\"continue\\\", proceed to the next task immediately.\\n\\n## OBJECT IMPLEMENTATION GUIDE\\n\\n## Record Type Implementation Guide\\n\\nRecord types are created one at a time. There is no batch operation.\\n\\n### Creation Order\\n\\nCreate record types sequentially \\u2014 reference/lookup tables first, then entity tables that depend on them via foreign keys.\\n\\nEvery record type must have a primary key field. The primary key field MUST be named `id` and be of type `INTEGER`.\\n\\n### Relationships\\n\\nRelationships cannot be defined during record type creation because field UUIDs are not assigned until the record type exists. Always create the record type first, then wire relationships afterward.\\n\\nAfter creating each record type, check whether any relationships can now be wired \\u2014 meaning both the source and target record types already exist (from this or earlier tasks). Wire all applicable relationships before marking the task complete. Do not list \\\"add relationships\\\" as separate plan steps \\u2014 they are part of the record type creation task.\\n\\n### Relationship Workflow\\n\\n1. Create reference/lookup record types first \\u2014 save the returned UUIDs and field UUIDs\\n2. Create entity record types with foreign key fields \\u2014 save the returned UUIDs and field UUIDs\\n3. Wire relationships using the real field UUIDs from the creation responses\\n\\nWhen wiring a relationship, you need three pieces of information:\\n- The foreign key field UUID on the source record type (from its creation response)\\n- The primary key field UUID on the target record type (from its creation response)\\n- The UUID of the target record type itself\\n\\n**NEVER guess or fabricate field UUIDs.** Always use the exact UUIDs returned when the record type was created or retrieved.\\n\\n**Check the \\\"OBJECTS CREATED SO FAR\\\" section first** \\u2014 it contains field UUIDs for all record types created in earlier tasks. Use those directly. Only retrieve a record type's fields if it was created outside this plan and is not in the structured context.\\n\\n### User-Type Fields \\u2192 User System Record Type\\n\\nAny field whose type is USER (e.g., assigned_to, submitted_by, reviewer) must have a MANY_TO_ONE relationship wired to the built-in User system record type after creation. Do not create a User entity \\u2014 use the system record type instead.\\n\\n- System record type UUID: `SYSTEM_RECORD_TYPE_USER`\\n- User primary key field UUID: `SYSTEM_RECORD_TYPE_USER_FIELD_username`\\n- The User record type is WEB_SERVICE-backed \\u2014 you cannot insert data into it.\\n\\nName each relationship after the source field (e.g., a field called `assigned_to` gets a relationship named `assignedToUser`). Wire one relationship per USER-type field on the record type.\\n\\n### Sample Data\\n\\nEvery record type must have sample data inserted immediately after creation and relationship wiring, before marking the task complete. A record type without sample data is incomplete.\\n\\nUse the field names from the creation response as CSV column headers \\u2014 they must match exactly.\\n\\nPopulate realistic, internally consistent data that demonstrates the record type's purpose. Foreign key values must reference primary keys that actually exist in the related record type \\u2014 use values from prior insert responses. Omit the primary key column if it is auto-generated.\\n\\nFor fields of type USER, do not fabricate usernames. Query the User system record type (`SYSTEM_RECORD_TYPE_USER`) first to retrieve real, active usernames. Use only usernames that exist in the system, and vary assignments across rows.\\n\\n### Field Type Selection\\n\\n| Type | Use For |\\n|---|---|\\n| Text | Names, descriptions, emails |\\n| Integer | IDs, counts, foreign keys |\\n| Boolean | Status flags, yes/no values |\\n| Date | Dates without time |\\n| Datetime | Timestamps with time |\\n| Decimal | Money, percentages |\\n| User | Appian user references |\\n\\nUse the tool schema to determine exact accepted field type values \\u2014 do not guess.\\n\\n### Record Event Configuration\\n\\nWhen the plan calls for audit tracking or event history on a record type, configure record events on the primary record type after creation. Use meaningful past-tense business event types (e.g., \\\"Submitted\\\", \\\"Approved\\\", \\\"Rejected\\\") \\u2014 not generic labels.\\n\\nSupporting record types (Event History, Event Type Lookup, Reply Thread, and Subscriber record types with proper relationships and security inherited from the base record type) are auto-created by the platform. Do not create these manually.\\n\\n### EXPRESSION User Filters\\n\\nWhen the plan calls for an EXPRESSION-type user filter (dynamic options, computed defaults, or any filter needing SAIL logic), generate the SAIL expression rather than writing it by hand. Use the available tooling to produce valid filter expressions, then apply the result when adding the user filter with facetType \\\"EXPRESSION\\\".\\n\\n### User Filter Field References\\n\\nBefore adding user filters, **always retrieve the record type first** to get the full list of field UUIDs. **Never fabricate a UUID** \\u2014 use only UUIDs returned from the record type.\\n\\nTo add a filter on a **related record's** field, you must first retrieve the related record type to get its field UUIDs.\\n\\n### LIST_OF_VALUES Filters on Related Records\\n\\nWhen a LIST_OF_VALUES filter is on a field from a related record (via a M:1 relationship), use **related record values** instead of manually constructing an options array. This dynamically populates filter options from the related record type:\\n- `useRelatedRecordValues: true`\\n- `sourceRef`: the FK field UUID on the source record type (or `RELATIONSHIP_UUID/FIELD_UUID`)\\n- `relatedRecordDisplayField`: UUID of a Text field on the related record type to use as option labels (e.g., the `name` or `label` field)\\n- `relatedRecordSort`: `ASCENDING`, `DESCENDING`, or `UNSORTED`\\n- Do NOT provide an `options` array \\u2014 the platform populates options automatically\\n\\nExample for a status filter where the source record has a FK to a Status lookup table:\\n```json\\n{\\n \\\"facetType\\\": \\\"LIST_OF_VALUES\\\",\\n \\\"sourceRef\\\": \\\"STATUS_FK_FIELD_UUID\\\",\\n \\\"useRelatedRecordValues\\\": true,\\n \\\"relatedRecordDisplayField\\\": \\\"STATUS_NAME_FIELD_UUID\\\",\\n \\\"relatedRecordSort\\\": \\\"ASCENDING\\\"\\n}\\n```\\n\\nFor LIST_OF_VALUES filters on a local field (no relationship), provide the `options` array with explicit buckets instead.\\n\\n\",\"tools\":[{\"toolSpec\":{\"name\":\"create_suggestion\",\"description\":\"Present a suggestion or question to the user with clickable options. The user's click sends the option label back as their next message verbatim. Make option labels self-contained so you can act on them without remembering the original question (e.g., 'Reuse existing HR app' not just 'Yes').\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"suggest_content\":{\"type\":\"string\",\"description\":\"Message to show the user\"},\"suggest_options\":{\"type\":\"array\",\"items\":{\"type\":\"string\"},\"description\":\"Clickable option labels \\u2014 each must be a clear, actionable phrase (e.g., ['Begin Execution', 'Don\\\\'t Start'])\"},\"suggest_type\":{\"type\":\"string\",\"enum\":[\"info\",\"warning\",\"error\"],\"description\":\"Visual style of the suggestion\"}},\"required\":[\"suggest_content\",\"suggest_options\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_suggestion\"},{\"toolSpec\":{\"name\":\"set_task_status\",\"description\":\"Mark the current task as completed or failed. This ENDS your turn.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"status\":{\"type\":\"string\",\"enum\":[\"success\",\"failed\"],\"description\":\"Task outcome\"},\"reason\":{\"type\":\"string\",\"description\":\"Explanation (required when status is failed)\"}},\"required\":[\"status\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_task_status\"},{\"toolSpec\":{\"name\":\"abort_plan\",\"description\":\"Abort the plan and cancel remaining tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{}}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:abort_plan\"},{\"toolSpec\":{\"name\":\"set_app_context\",\"description\":\"Switch the active application context. Use when the user refers to an application other than the one currently set. This updates the application UUID and prefix for all subsequent tasks.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"app_uuid\":{\"type\":\"string\",\"description\":\"The application UUID to switch to\"},\"app_prefix\":{\"type\":\"string\",\"description\":\"The application prefix (optional)\"}},\"required\":[\"app_uuid\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:set_app_context\"},{\"toolSpec\":{\"name\":\"create_summary\",\"description\":\"Provide a summary of all work done. Only call this when explicitly instructed by the system.\",\"inputSchema\":{\"type\":\"object\",\"properties\":{\"label\":{\"type\":\"string\",\"description\":\"Summary title\"},\"content\":{\"type\":\"string\",\"description\":\"Detailed summary of what was accomplished\"},\"keyfeatures\":{\"type\":\"string\",\"description\":\"Key features or highlights\"},\"affected_object_list\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"object_id\":{\"type\":\"string\"},\"object_name\":{\"type\":\"string\"},\"object_type\":{\"type\":\"string\"},\"object_version\":{\"type\":\"string\"},\"object_url\":{\"type\":\"string\"},\"operation\":{\"type\":\"string\",\"enum\":[\"read\",\"created\",\"updated\",\"deleted\"]}}},\"description\":\"List of objects created/modified\"}},\"required\":[\"label\",\"content\",\"keyfeatures\"]}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbGFubmluZy1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:create_summary\"},{\"toolSpec\":{\"name\":\"generate_interface_sail\",\"description\":\"Generate a SAIL UI using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\\n\\nArgs:\\n request: Description of the UI to generate (e.g., \\\"Create an employee dashboard\\\").\\n interfaceType: Type of interface - \\\"dashboard\\\", \\\"form\\\", or \\\"component\\\".\\n recordTypeUuids: Optional list of record type UUIDs for data model discovery in Phase 2.\\n interfaceUuid: Optional interface UUID. If provided, Phase 2 will validate and save SAIL to the interface.\\n\\nReturns:\\n Dict with success=True and async=True if validation passed and pipeline was launched.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceType\":{\"default\":\"dashboard\",\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null},\"interfaceUuid\":{\"type\":\"string\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_expression_rule_sail\",\"description\":\"Generate a SAIL expression for an expression rule using a single-phase agent workflow.\\n\\nArgs:\\n request: Description of what the expression rule should do.\\n expressionRuleUuid: Optional UUID. If provided, validates and saves the expression to the rule.\\n recordTypeUuids: Optional record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success, expression, and expression_rule_uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"expressionRuleUuid\":{\"type\":\"string\",\"default\":null},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:generate_expression_rule_sail\"},{\"toolSpec\":{\"name\":\"edit_interface_sail\",\"description\":\"Edit an existing interface's SAIL expression using targeted edits.\\n\\nFetches the interface's current expression, loads it into an in-memory buffer,\\nand runs an agent that makes surgical edits via str_replace_sail. Runs synchronously\\n\\u2014 blocks until the edit is complete and returns the result.\\n\\nArgs:\\n request: Description of the change to make (e.g., \\\"Add a search box above the grid\\\").\\n interfaceUuid: UUID of the interface to edit (required).\\n recordTypeUuids: Optional list of record type UUIDs for data model context.\\n\\nReturns:\\n Dict with success/failure and details.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"interfaceUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"interfaceUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1zYWlsLW1jcC5jb21wb3Nlci5zdmMuY2x1c3Rlci5sb2NhbDo4MDAwL2pzb25ycGM=:edit_interface_sail\"},{\"toolSpec\":{\"name\":\"generate_process_model\",\"description\":\"Generate process model nodes using a two-phase agent workflow (async).\\n\\nValidates inputs synchronously, then launches the pipeline in the background.\\nReturns immediately after validation so the calling agent can continue.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"hasStartForm\":{\"default\":false,\"type\":\"boolean\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:generate_process_model\"},{\"toolSpec\":{\"name\":\"edit_process_model\",\"description\":\"Edit an existing process model using a two-phase agent workflow (async).\\n\\nFetches the current model state, passes it to the drafter as context,\\nthen validates and saves via the reviewer.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"request\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"recordTypeUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"default\":null}},\"required\":[\"request\",\"processModelUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1wbS1tY3AuY29tcG9zZXIuc3ZjLmNsdXN0ZXIubG9jYWw6ODAwMC9qc29ucnBj:edit_process_model\"},{\"toolSpec\":{\"name\":\"listApplications\",\"description\":\"List Appian applications with optional filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplications\"},{\"toolSpec\":{\"name\":\"getApplication\",\"description\":\"Get a single Appian application by UUID, including default object UUIDs (administrator and user security groups).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getApplication\"},{\"toolSpec\":{\"name\":\"createApplication\",\"description\":\"Create a new Appian application. The API automatically generates default objects (groups, folders, etc.) and associates them with the application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"prefix\":{\"type\":\"string\",\"description\":\"Application prefix for object naming conventions (e.g. \\\"CUST\\\"). Auto-generated from the name if not provided.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createApplication\"},{\"toolSpec\":{\"name\":\"addObjectsToApplication\",\"description\":\"Add design objects to an Appian application. Most create tools now accept appUuid directly \\u2014 use this tool mainly for associating pre-existing objects with an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"objects\":{\"items\":{\"description\":\"Reference to a design object for application association.\",\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Design object type, e.g. CONSTANT, INTERFACE, PROCESS_MODEL, EXPRESSION_RULE, RECORD_TYPE, SITE, GROUP, DATA_TYPE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"appUuid\",\"objects\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addObjectsToApplication\"},{\"toolSpec\":{\"name\":\"deleteApplication\",\"description\":\"Permanently delete an Appian application. This removes the application container only \\u2014 all design objects (records, interfaces, process models, etc.) that were part of the application are preserved and become unassociated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteApplication\"},{\"toolSpec\":{\"name\":\"listConnectedSystemTypes\",\"description\":\"List available connected system types.\\n\\nReturns typeId, name, and description for each type.\\nUse getConnectedSystemType to get the operations list for a specific type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystemTypes\"},{\"toolSpec\":{\"name\":\"getConnectedSystemType\",\"description\":\"Get a connected system type including its operations.\\n\\nUse this to find the operationId you need when creating an integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"typeId\":{\"type\":\"string\"}},\"required\":[\"typeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystemType\"},{\"toolSpec\":{\"name\":\"listConnectedSystems\",\"description\":\"List Appian connected systems with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConnectedSystems\"},{\"toolSpec\":{\"name\":\"getConnectedSystem\",\"description\":\"Get a single Appian connected system by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConnectedSystem\"},{\"toolSpec\":{\"name\":\"createConnectedSystem\",\"description\":\"Create a new Appian connected system.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateConnectedSystem\\n\\u2192 repeat until all required fields are populated.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Connected system type identifier (see listConnectedSystemTypes)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateConnectedSystem, and repeat until all required fields are populated. Changing a discriminator field (e.g., authType) may change which fields appear in the next response.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConnectedSystem\"},{\"toolSpec\":{\"name\":\"updateConnectedSystem\",\"description\":\"Update an existing Appian connected system. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map \\u2014 if you changed a discriminator field (e.g., authType), the schema may change: new fields appear, old fields disappear from both `schema` and `properties`.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConnectedSystem\"},{\"toolSpec\":{\"name\":\"deleteConnectedSystem\",\"description\":\"Permanently delete an Appian connected system.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConnectedSystem\"},{\"toolSpec\":{\"name\":\"listConstants\",\"description\":\"List Appian constants with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listConstants\"},{\"toolSpec\":{\"name\":\"getConstant\",\"description\":\"Get a single Appian constant by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getConstant\"},{\"toolSpec\":{\"name\":\"createConstant\",\"description\":\"Create a new Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"type\":{\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"type\":\"string\"},\"value\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"type\",\"value\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createConstant\"},{\"toolSpec\":{\"name\":\"updateConstant\",\"description\":\"Update an existing Appian constant. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"type\":{\"type\":\"string\",\"description\":\"Constant type. Valid values: TEXT, NUMBER, INTEGER, BOOLEAN, DATE, DATETIME, TIME, USER, GROUP, FOLDER, DOCUMENT.\",\"default\":null},\"value\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateConstant\"},{\"toolSpec\":{\"name\":\"deleteConstant\",\"description\":\"Permanently delete an Appian constant.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteConstant\"},{\"toolSpec\":{\"name\":\"listDocuments\",\"description\":\"List Appian documents with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listDocuments\"},{\"toolSpec\":{\"name\":\"getDocument\",\"description\":\"Get a single Appian document by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocument\"},{\"toolSpec\":{\"name\":\"updateDocument\",\"description\":\"Update an existing Appian document. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateDocument\"},{\"toolSpec\":{\"name\":\"deleteDocument\",\"description\":\"Permanently delete an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteDocument\"},{\"toolSpec\":{\"name\":\"getDocumentContent\",\"description\":\"Get the binary content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentContent\"},{\"toolSpec\":{\"name\":\"getDocumentText\",\"description\":\"Get the extracted text content of an Appian document.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"includeMetadata\":{\"type\":\"boolean\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getDocumentText\"},{\"toolSpec\":{\"name\":\"replaceDocumentContent\",\"description\":\"Replace the content of an Appian document. Content is plain text \\u2014 it will be base64-encoded automatically.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"content\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:replaceDocumentContent\"},{\"toolSpec\":{\"name\":\"uploadDocument\",\"description\":\"Upload a new document with file content to a folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"The document name including extension (max 255 characters), e.g. \\\"Annual Report.pdf\\\".\",\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"The UUID of the parent folder.\",\"type\":\"string\"},\"content\":{\"description\":\"The file content as a plain string \\u2014 it will be base64-encoded automatically.\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"extension\":{\"type\":\"string\",\"description\":\"Optional file extension without dot (auto-detected from name if not provided), e.g. \\\"pdf\\\".\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\",\"content\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:uploadDocument\"},{\"toolSpec\":{\"name\":\"listExpressionRules\",\"description\":\"List Appian expression rules with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listExpressionRules\"},{\"toolSpec\":{\"name\":\"getExpressionRule\",\"description\":\"Get a single Appian expression rule by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getExpressionRule\"},{\"toolSpec\":{\"name\":\"createExpressionRule\",\"description\":\"Create a new Appian expression rule.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createExpressionRule\"},{\"toolSpec\":{\"name\":\"updateExpressionRule\",\"description\":\"Update an existing Appian expression rule. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateExpressionRule\"},{\"toolSpec\":{\"name\":\"deleteExpressionRule\",\"description\":\"Permanently delete an Appian expression rule.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteExpressionRule\"},{\"toolSpec\":{\"name\":\"listFolders\",\"description\":\"List Appian folders with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"folderType\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolders\"},{\"toolSpec\":{\"name\":\"getFolder\",\"description\":\"Get a single Appian folder by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getFolder\"},{\"toolSpec\":{\"name\":\"createFolder\",\"description\":\"Create a new Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"parentFolderUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"parentFolderUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createFolder\"},{\"toolSpec\":{\"name\":\"updateFolder\",\"description\":\"Update an existing Appian folder. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateFolder\"},{\"toolSpec\":{\"name\":\"deleteFolder\",\"description\":\"Permanently delete an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteFolder\"},{\"toolSpec\":{\"name\":\"listFolderContents\",\"description\":\"List the contents of an Appian folder.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listFolderContents\"},{\"toolSpec\":{\"name\":\"listGroups\",\"description\":\"List Appian groups with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroups\"},{\"toolSpec\":{\"name\":\"getGroup\",\"description\":\"Get a single Appian group by name.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getGroup\"},{\"toolSpec\":{\"name\":\"createGroup\",\"description\":\"Create a new Appian group.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"parentGroupName\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createGroup\"},{\"toolSpec\":{\"name\":\"listGroupMembers\",\"description\":\"List members of an Appian group. Returns groups first, then users, with cascading pagination.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"directOnly\":{\"default\":false,\"description\":\"When true, returns only direct (explicitly added) members. Default false returns all members including inherited.\",\"type\":\"boolean\"},\"memberType\":{\"type\":\"string\",\"description\":\"Filter by member type: 'group', 'user', or omit for both. Maps to 'type' query param in the SDK.\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listGroupMembers\"},{\"toolSpec\":{\"name\":\"addGroupMembers\",\"description\":\"Add members to an Appian group. Accepts a batch of users and/or groups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"members\":{\"items\":{\"description\":\"Reference to a group member for add/remove operations.\",\"properties\":{\"type\":{\"description\":\"Member type: 'user' or 'group'\",\"type\":\"string\"},\"id\":{\"description\":\"Username for users, group name for groups\",\"type\":\"string\"}},\"required\":[\"type\",\"id\"],\"type\":\"object\"},\"type\":\"array\"}},\"required\":[\"groupName\",\"members\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addGroupMembers\"},{\"toolSpec\":{\"name\":\"removeGroupMember\",\"description\":\"Remove a direct member from an Appian group. Only direct members can be removed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"},\"memberType\":{\"description\":\"Type of member to remove: 'user' or 'group'.\",\"type\":\"string\"},\"memberId\":{\"description\":\"Username for users, group name for groups.\",\"type\":\"string\"}},\"required\":[\"groupName\",\"memberType\",\"memberId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:removeGroupMember\"},{\"toolSpec\":{\"name\":\"deleteGroup\",\"description\":\"Permanently delete an Appian group by name. This operation cannot be undone.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"groupName\":{\"type\":\"string\"}},\"required\":[\"groupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteGroup\"},{\"toolSpec\":{\"name\":\"listIntegrations\",\"description\":\"List Appian integrations with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listIntegrations\"},{\"toolSpec\":{\"name\":\"getIntegration\",\"description\":\"Get a single Appian integration by UUID.\\n\\nThe response includes a `schema` field \\u2014 the live-evaluated list of valid\\nproperties for the current configuration state. Use it to see what fields\\nare available and which are still null (unset).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getIntegration\"},{\"toolSpec\":{\"name\":\"createIntegration\",\"description\":\"Create a new Appian integration.\\n\\nThe response includes `schema` (live-evaluated property list) and `properties`\\n(current values, null for unset fields). Use these to drive an iterative\\nconfiguration loop: read schema \\u2192 set null fields \\u2192 call updateIntegration\\n\\u2192 repeat until all required fields are populated.\\n\\nDo NOT guess at property names or values \\u2014 inspect the `schema` in the\\nresponse first, then use updateIntegration to set the fields you need.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"description\":\"Integration name. Must not contain spaces.\",\"type\":\"string\"},\"connectedSystemUuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier from the connected system type's operations list (see listConnectedSystemTypes).\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties. You can omit this on initial create \\u2014 the response will include a `schema` field showing which properties are available and a `properties` map with null values for unset fields. Set the fields you want, call updateIntegration, and repeat until all required fields are populated. Do not guess at property names \\u2014 always inspect the schema from the create response first. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters. Each dict has: name (str), type (str, e.g. 'Text'), description (str, optional).\",\"default\":null}},\"required\":[\"name\",\"connectedSystemUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createIntegration\"},{\"toolSpec\":{\"name\":\"updateIntegration\",\"description\":\"Update an existing Appian integration. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"description\":\"Integration name. Must not contain spaces.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"operationId\":{\"type\":\"string\",\"description\":\"Operation identifier. Changing this switches the integration to a different operation.\",\"default\":null},\"properties\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Configuration properties to update. Only provided keys are changed. The response includes an updated `schema` and `properties` map. Properties where schema has isExpressionable=true are Appian expressions. For literal strings, wrap in quotes: '\\\"my value\\\"'. For expressions, pass directly: 'ri!myInput'. If you get an expression evaluation error, you likely need to quote a literal.\",\"default\":null},\"inputs\":{\"items\":{\"additionalProperties\":true,\"type\":\"object\"},\"type\":\"array\",\"description\":\"Rule input parameters (full replacement \\u2014 replaces all existing inputs)\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateIntegration\"},{\"toolSpec\":{\"name\":\"deleteIntegration\",\"description\":\"Permanently delete an Appian integration.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteIntegration\"},{\"toolSpec\":{\"name\":\"listInterfaces\",\"description\":\"List Appian interfaces with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listInterfaces\"},{\"toolSpec\":{\"name\":\"getInterface\",\"description\":\"Get a single Appian interface by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getInterface\"},{\"toolSpec\":{\"name\":\"createInterface\",\"description\":\"Create a new Appian interface.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createInterface\"},{\"toolSpec\":{\"name\":\"updateInterface\",\"description\":\"Update an existing Appian interface. Only provided fields are changed.\\n\\nInput types can be built-in (e.g. \\\"Text\\\", \\\"Number (Integer)\\\", \\\"Boolean\\\") or\\ndeveloper-defined \\u2014 use the typeReference string from getRecordType for record types.\\nProvide inputs alongside expression so that ri! references validate correctly.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"expression\":{\"type\":\"string\",\"default\":null},\"inputs\":{\"items\":{\"description\":\"Schema for an expression rule or interface input supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Input name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this input accepts a list. Defaults to false.\",\"default\":null},\"description\":{\"type\":\"string\",\"description\":\"Optional description of this input\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateInterface\"},{\"toolSpec\":{\"name\":\"deleteInterface\",\"description\":\"Permanently delete an Appian interface.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteInterface\"},{\"toolSpec\":{\"name\":\"testInterface\",\"description\":\"Evaluate an Appian interface with test inputs and check for runtime errors. Use diagnostics.error to detect rendering failures that syntax validation misses (bad record references, type mismatches, missing inputs). The result contains the rendered SAIL component tree.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testInterface\"},{\"toolSpec\":{\"name\":\"getObjectSecurity\",\"description\":\"Get the security role map for any design object by UUID.\\n\\nAll valid roles for the object type are included \\u2014 unassigned roles\\nhave empty groupNames arrays.\\n\\nFor content-backed objects (constants, expression rules, interfaces,\\ndocuments, folders), the response also includes:\\n- inheritSecurity: whether the object inherits security from its parent\\n- parentFolderUuid: UUID of the parent folder\\n- inheritedGroupNames on each role: groups inherited from parent (read-only)\\n\\nThese fields are null/empty for non-content objects.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getObjectSecurity\"},{\"toolSpec\":{\"name\":\"updateObjectSecurity\",\"description\":\"Set the security role map for a design object by UUID.\\n\\nFull replacement \\u2014 roles not included are cleared.\\nOnly roleName and groupNames are used; inheritedGroupNames is read-only\\nand ignored on PUT.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"roles\":{\"items\":{\"description\":\"Role-to-groups mapping for object security.\",\"properties\":{\"roleName\":{\"description\":\"Use getObjectSecurity to see valid roles for the object type.\",\"type\":\"string\"},\"groupNames\":{\"default\":[],\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"roleName\"],\"type\":\"object\"},\"type\":\"array\"},\"inheritSecurity\":{\"default\":true,\"description\":\"For content-backed objects (constants, expression rules, interfaces, documents, folders), whether this object inherits security from its parent. Ignored for non-content objects.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"roles\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateObjectSecurity\"},{\"toolSpec\":{\"name\":\"listProcessModels\",\"description\":\"List Appian process models with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModels\"},{\"toolSpec\":{\"name\":\"listProcessModelFolders\",\"description\":\"List top-level Process Model Folders. Use these as parentFolderUuid when creating process models. Regular folders cannot contain process models.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listProcessModelFolders\"},{\"toolSpec\":{\"name\":\"getProcessModel\",\"description\":\"Get a single Appian process model by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getProcessModel\"},{\"toolSpec\":{\"name\":\"createProcessModel\",\"description\":\"Create a new Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"description\":{\"type\":\"string\"},\"parentFolderUuid\":{\"description\":\"Process Model Folder UUID (see listProcessModelFolders)\",\"type\":\"string\"},\"errorAlertGroupName\":{\"description\":\"Error alert group name (see listGroups)\",\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null}},\"required\":[\"name\",\"description\",\"parentFolderUuid\",\"errorAlertGroupName\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModel\",\"description\":\"Permanently delete an Appian process model.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModel\"},{\"toolSpec\":{\"name\":\"listApplicationProcesses\",\"description\":\"List runtime process instances in an application with optional status filtering.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"appUuid\":{\"type\":\"string\"},\"statusFilter\":{\"type\":\"string\",\"description\":\"One of: RUNNING, COMPLETED, FAILED, CANCELLED\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"appUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listApplicationProcesses\"},{\"toolSpec\":{\"name\":\"updateProcessModel\",\"description\":\"Update an existing Appian process model. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"processVariables\":{\"items\":{\"description\":\"Schema for a process model variable supplied by the agent.\",\"properties\":{\"name\":{\"description\":\"Variable name\",\"type\":\"string\"},\"type\":{\"description\":\"Appian type. Built-in types by name: Text, Number (Integer), Number (Decimal), Boolean, Date, Time, Date and Time, User, Group, Document, Folder, Encrypted Text, Map, Password, SafeURI. For developer-defined types (e.g. record types): use the typeReference string from getRecordType. Other Appian types are also supported.\",\"type\":\"string\"},\"isParameter\":{\"type\":\"boolean\",\"description\":\"Expose as a process parameter (visible to callers like record actions, subprocesses, and start forms)\",\"default\":null},\"isRequired\":{\"type\":\"boolean\",\"description\":\"Whether this parameter is required\",\"default\":null},\"multiple\":{\"type\":\"boolean\",\"description\":\"Whether this variable holds a list of values. Defaults to false.\",\"default\":null}},\"required\":[\"name\",\"type\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process variables. Set isParameter=true to expose as inputs for record actions, subprocesses, or start forms.\",\"default\":null},\"nodes\":{\"items\":{\"description\":\"A node in a process model flow.\",\"properties\":{\"id\":{\"description\":\"Node ID, unique within the process model\",\"type\":\"integer\"},\"type\":{\"description\":\"Node type ID from listProcessModelNodeTypes, e.g. core.0, internal3.integration, event.timer\",\"type\":\"string\"},\"name\":{\"description\":\"Label shown on the process modeler canvas\",\"type\":\"string\"},\"coordinates\":{\"description\":\"Canvas position [x, y]\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"connections\":{\"default\":[],\"description\":\"Outgoing node IDs. Empty for End Event.\",\"items\":{\"type\":\"integer\"},\"type\":\"array\"},\"data\":{\"description\":\"Data/Setup tab configuration for activity and event nodes.\\nDo NOT use ac! references in downstream nodes \\u2014 ac! is scoped to the node it belongs to.\",\"properties\":{\"inputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined inputs from getProcessModelNodeTypeSchema\",\"default\":null},\"outputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"Schema-defined outputs. Set saveInto to wire to a PV.\",\"default\":null},\"customInputs\":{\"items\":{\"description\":\"An input parameter on a node (schema-defined or custom).\",\"properties\":{\"name\":{\"description\":\"Input name from getProcessModelNodeTypeSchema\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression\",\"default\":null},\"value\":{\"type\":\"string\",\"description\":\"Literal value\",\"default\":null}},\"required\":[\"name\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined input parameters\",\"default\":null},\"customOutputs\":{\"items\":{\"description\":\"An output parameter on a node.\",\"properties\":{\"name\":{\"type\":\"string\",\"description\":\"Output name from schema (null for customOutputs)\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"Expression to evaluate (for customOutputs)\",\"default\":null},\"saveInto\":{\"type\":\"string\",\"description\":\"PV to save into, e.g. pv!result\",\"default\":null}},\"type\":\"object\"},\"type\":\"array\",\"description\":\"User-defined output expressions\",\"default\":null}},\"type\":\"object\",\"default\":null},\"decision\":{\"description\":\"Decision tab configuration for XOR and OR gateways.\",\"properties\":{\"conditions\":{\"description\":\"Ordered conditions evaluated top-to-bottom, first match wins\",\"items\":{\"description\":\"A condition rule on an XOR or OR gateway.\",\"properties\":{\"expression\":{\"description\":\"SAIL boolean expression\",\"type\":\"string\"},\"targetNodeId\":{\"description\":\"Target node ID when condition is true\",\"type\":\"integer\"},\"label\":{\"type\":\"string\",\"default\":null}},\"required\":[\"expression\",\"targetNodeId\"],\"type\":\"object\"},\"type\":\"array\"},\"defaultPath\":{\"description\":\"Target node ID when no condition matches\",\"type\":\"integer\"}},\"required\":[\"conditions\",\"defaultPath\"],\"type\":\"object\",\"default\":null},\"assignment\":{\"description\":\"Assignment tab configuration for activity nodes.\",\"properties\":{\"attended\":{\"type\":\"boolean\",\"description\":\"true=user task, false=system executes. Required for ATTENDED_OR_UNATTENDED node types.\",\"default\":null},\"assignTo\":{\"type\":\"string\",\"description\":\"SAIL expression for assignee, default pp!initiator\",\"default\":null},\"reassignPrivileges\":{\"type\":\"string\",\"description\":\"NONE, REJECT_ONLY, REASSIGN_WITHIN_POOL, or REASSIGN_TO_ANY (default)\",\"default\":null},\"runAs\":{\"type\":\"string\",\"description\":\"INITIATOR (default) or DESIGNER, for unattended nodes\",\"default\":null},\"overrideLane\":{\"type\":\"boolean\",\"description\":\"Override swimlane assignment\",\"default\":null}},\"type\":\"object\",\"default\":null},\"forms\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"id\",\"type\",\"name\",\"coordinates\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Process model nodes. Use listProcessModelNodeTypes for available types and getProcessModelNodeTypeSchema for node parameters.\",\"default\":null},\"startForm\":{\"description\":\"Form configuration for attended nodes (Forms tab) or process start forms.\",\"properties\":{\"interfaceUuid\":{\"description\":\"Interface UUID\",\"type\":\"string\"},\"inputMap\":{\"additionalProperties\":{\"type\":\"string\"},\"type\":\"object\",\"description\":\"Passes process variable values into the form. Keys are PV names (without pv! prefix), values are interface input names (without ri! prefix).\",\"default\":null}},\"required\":[\"interfaceUuid\"],\"type\":\"object\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateProcessModel\"},{\"toolSpec\":{\"name\":\"testProcessModel\",\"description\":\"Start a process model, wait for completion, and return process variable values. Only works for unattended process models (no user input tasks). Returns processId, status, and processVariables map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of process parameter values to pass on start.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for the process to complete. Default: 30. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testProcessModel\"},{\"toolSpec\":{\"name\":\"deleteProcessModelNode\",\"description\":\"Remove a node and clean up all incoming/outgoing connections.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"processModelUuid\":{\"type\":\"string\"},\"nodeId\":{\"type\":\"integer\"}},\"required\":[\"processModelUuid\",\"nodeId\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteProcessModelNode\"},{\"toolSpec\":{\"name\":\"listRecordData\",\"description\":\"List record data as CSV. Returns paginated rows with field-name column headers.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordData\"},{\"toolSpec\":{\"name\":\"insertRecordData\",\"description\":\"Insert one or more rows of record data from CSV.\\n\\nReturns inserted rows with assigned primary keys. Save these keys for\\nforeign key references in downstream record types.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row and one or more data rows. Header names must match field names exactly as defined on the record type. PK column may be omitted for auto-generated keys. Boolean fields: use 1 (true) or 0 (false) \\u2014 string values like 'true'/'false' are rejected. Date values: YYYY-MM-DD (e.g. 2026-03-20). Datetime values: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC. Fields containing commas, quotes, or newlines MUST be enclosed in double quotes per RFC 4180. Do NOT embed JSON in CSV fields \\u2014 use plain text.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:insertRecordData\"},{\"toolSpec\":{\"name\":\"updateRecordData\",\"description\":\"Update one or more rows of record data by primary key from CSV. Supports partial updates.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with header row (including PK column) and one or more data rows. Date values: ISO 8601 date format YYYY-MM-DD (e.g. 2026-03-20). Datetime values: ISO 8601 datetime without timezone: YYYY-MM-DD HH:MM:SS or YYYY-MM-DDTHH:MM:SS (e.g. 2026-03-20 14:30:00). Time values: ISO 8601 time format HH:MM:SS (e.g. 14:30:00). All date/time values are interpreted as UTC.\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordData\"},{\"toolSpec\":{\"name\":\"deleteRecordData\",\"description\":\"Delete one or more rows of record data by primary key from CSV.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"csvData\":{\"description\":\"CSV data with PK column header and one or more PK values (one per line).\",\"type\":\"string\"}},\"required\":[\"uuid\",\"csvData\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordData\"},{\"toolSpec\":{\"name\":\"listRecordTypes\",\"description\":\"List Appian record types with optional filtering. Use appUuid to scope to an application.\\n\\nEach record type includes a typeReference field that can be used as the type value\\nwhen creating process model variables, expression rule inputs, or interface inputs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"},\"uuids\":{\"type\":\"string\",\"default\":null}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypes\"},{\"toolSpec\":{\"name\":\"getRecordType\",\"description\":\"Get a single Appian record type by UUID.\\n\\nThe response includes sourceType, tableName, dataSourceUuid, schema, and fields\\nat the top level. For DATABASE-backed types, tableName and dataSourceUuid are populated;\\nfor other source types they are null. Field objects include isUnique, sourceFieldName,\\nand sourceFieldType (the concrete DB column type, e.g. VARCHAR(255)).\\n\\nThe response also includes a typeReference field \\u2014 use this value as the type when\\ncreating process model variables, expression rule inputs, or interface inputs\\ntyped as this record type.\\n\\nAppian provides built-in system record types: SYSTEM_RECORD_TYPE_USER (Users)\\nand SYSTEM_RECORD_TYPE_DOCUMENT (Documents). Use these UUIDs to look up their\\nfields for relationship creation.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordType\"},{\"toolSpec\":{\"name\":\"createRecordType\",\"description\":\"Create a new Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"sourceType\":{\"description\":\"The type of data source. DATABASE connects to or creates a database table (use createTable to control DDL). Valid values: DATABASE, WEB_SERVICE, PROCESS, SALESFORCE.\",\"type\":\"string\"},\"createTable\":{\"default\":true,\"description\":\"When true, Appian creates the database table (mirrors the 'Create Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM tables are not yet supported.\",\"type\":\"boolean\"},\"tableName\":{\"type\":\"string\",\"description\":\"CDM: table name to create (defaults to snake_case of record type name). DATABASE: existing table name to connect to.\",\"default\":null},\"dataSourceUuid\":{\"type\":\"string\",\"description\":\"DATABASE: UUID of the data source containing the table. CDM: auto-resolved if omitted.\",\"default\":null},\"schema\":{\"type\":\"string\",\"description\":\"DATABASE: schema name. CDM: auto-resolved if omitted.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"fields\":{\"items\":{\"description\":\"Field definition for a record type.\",\"properties\":{\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to snake_case of fieldName)\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"description\":\"Column length for TEXT fields (0 = default)\",\"default\":null}},\"required\":[\"fieldName\",\"fieldType\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null}},\"required\":[\"name\",\"sourceType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createRecordType\"},{\"toolSpec\":{\"name\":\"updateRecordType\",\"description\":\"Update an existing Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"pluralName\":{\"type\":\"string\",\"description\":\"Plural display name for the record type.\",\"default\":null},\"securityRules\":{\"items\":{\"description\":\"Record-level security rule defining who can see which records.\",\"properties\":{\"membershipType\":{\"description\":\"GROUPS, FIELDS, or RELATED_RECORDS\",\"type\":\"string\"},\"groupUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Group UUIDs. GROUPS membership only. Rule applies to members of the specified groups.\",\"default\":null},\"fieldUuids\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"User or Group field UUIDs \\u2014 direct fields or related record fields. FIELDS membership only. Rule applies to any users found in the specified fields.\",\"default\":null},\"relationshipUuid\":{\"type\":\"string\",\"description\":\"Relationship UUID. RELATED_RECORDS membership only. Rule applies to any users who have access to the related record.\",\"default\":null},\"conditions\":{\"items\":{\"description\":\"Filter condition for record-level security rules.\",\"properties\":{\"field\":{\"description\":\"Record field UUID\",\"type\":\"string\"},\"operator\":{\"description\":\"Comparison operator (=, <>, <, >, <=, >=)\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Comparison value\"}},\"required\":[\"field\",\"operator\",\"value\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Additional filter conditions to further limit rule applicability.\",\"default\":null}},\"required\":[\"membershipType\"],\"type\":\"object\"},\"type\":\"array\",\"description\":\"Full replacement of security rules. List order = evaluation order (first match wins). Empty list clears all rules.\",\"default\":null},\"securityExpression\":{\"type\":\"string\",\"description\":\"SAIL expression for record-level security. Set to null to clear. Omit to preserve current value. Record types using expressions cannot be referenced via RELATED_RECORDS membership.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordType\"},{\"toolSpec\":{\"name\":\"deleteRecordType\",\"description\":\"Permanently delete an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordType\"},{\"toolSpec\":{\"name\":\"listRecordTypeFields\",\"description\":\"List all fields for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeFields\"},{\"toolSpec\":{\"name\":\"getRecordTypeField\",\"description\":\"Get a single field for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"field_name\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"field_name\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordTypeField\"},{\"toolSpec\":{\"name\":\"addRecordTypeField\",\"description\":\"Add a field to an Appian record type. For CDM-backed record types, creates the corresponding database column.\\n\\nReturns the created field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\"},\"fieldType\":{\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"type\":\"string\"},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name (defaults to toSnakeCase(fieldName))\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to add the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldName\",\"fieldType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeField\"},{\"toolSpec\":{\"name\":\"updateRecordTypeField\",\"description\":\"Update a field on an Appian record type. Only provided fields are changed. For CDM-backed record types, type changes trigger ALTER TABLE.\\n\\nReturns the updated field including isUnique, sourceFieldName, and sourceFieldType (the concrete DB column type).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"fieldName\":{\"type\":\"string\",\"default\":null},\"fieldType\":{\"type\":\"string\",\"description\":\"The field data type. Valid values: TEXT, NUMBER, INTEGER, DECIMAL, DATE, DATETIME, TIME, BOOLEAN, USER, GROUP, DOCUMENT, FOLDER.\",\"default\":null},\"sourceFieldName\":{\"type\":\"string\",\"description\":\"Backing store field/column name\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"isPrimaryKey\":{\"type\":\"boolean\",\"default\":null},\"isUnique\":{\"type\":\"boolean\",\"default\":null},\"length\":{\"type\":\"integer\",\"default\":null},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to update the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeField\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeField\",\"description\":\"Delete a field from an Appian record type. For CDM-backed record types, drops the database column (destructive). Other source types only unmap the field. Primary key fields cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"fieldUuid\":{\"type\":\"string\"},\"updateTable\":{\"default\":true,\"description\":\"When true, Appian ALTERs the database table to drop the column (mirrors the 'Update Table' checkbox in Appian Designer). When false, returns an error \\u2014 non-CDM operations are not yet supported.\",\"type\":\"boolean\"}},\"required\":[\"uuid\",\"fieldUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeField\"},{\"toolSpec\":{\"name\":\"listRecordTypeRelationships\",\"description\":\"List all relationships for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeRelationships\"},{\"toolSpec\":{\"name\":\"addRecordTypeRelationship\",\"description\":\"Add a relationship to an Appian record type.\\n\\nBoth the source and target record types must already exist. Use the exact\\nfield UUIDs returned from record type creation or retrieval responses \\u2014\\nnever fabricate UUIDs.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\"},\"sourceRecordTypeFieldUuid\":{\"description\":\"UUID of the foreign key field on THIS (source) record type. Must be a real field UUID from the createRecordType or getRecordType response.\",\"type\":\"string\"},\"targetRecordTypeFieldUuid\":{\"description\":\"UUID of the primary key field on the TARGET record type. Must be a real field UUID from the target's createRecordType or getRecordType response. For system record types use SYSTEM_RECORD_TYPE_USER_FIELD_username or SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id.\",\"type\":\"string\"},\"targetRecordTypeUuid\":{\"description\":\"UUID of the target record type. For system record types use SYSTEM_RECORD_TYPE_USER (key field: SYSTEM_RECORD_TYPE_USER_FIELD_username) or SYSTEM_RECORD_TYPE_DOCUMENT (key field: SYSTEM_RECORD_TYPE_DOCUMENT_FIELD_id).\",\"type\":\"string\"},\"relationshipType\":{\"description\":\"ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipName\",\"sourceRecordTypeFieldUuid\",\"targetRecordTypeFieldUuid\",\"targetRecordTypeUuid\",\"relationshipType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"updateRecordTypeRelationship\",\"description\":\"Update a relationship on an Appian record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"},\"relationshipName\":{\"type\":\"string\",\"default\":null},\"sourceRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeFieldUuid\":{\"type\":\"string\",\"default\":null},\"targetRecordTypeUuid\":{\"type\":\"string\",\"default\":null},\"relationshipType\":{\"type\":\"string\",\"description\":\"Type of relationship: ONE_TO_MANY | MANY_TO_ONE | ONE_TO_ONE\",\"default\":null}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeRelationship\",\"description\":\"Delete a relationship from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"relationshipUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"relationshipUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeRelationship\"},{\"toolSpec\":{\"name\":\"listRecordTypeActions\",\"description\":\"List all record actions configured on an Appian record type. Returns actions with uuid, displayName, processModelUuid, actionType, description, icon, visibilityExpr, dialogWidth, dialogHeight, contextExpr.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeActions\"},{\"toolSpec\":{\"name\":\"addRecordTypeAction\",\"description\":\"Add a record action to an Appian record type. Returns the created action including server-generated uuid.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"processModelUuid\":{\"type\":\"string\"},\"actionType\":{\"description\":\"Type of record action: LIST_ACTION (record list) or RELATED_ACTION (record view)\",\"type\":\"string\"},\"key\":{\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code for the action button (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code. Default: 'f0e7'.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling visibility (default \\\"=true()\\\")\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"description\":\"SAIL expression passing record context to the process model. Only valid for RELATED_ACTION. Use a dictionary to pass record information into the related action. The keys in the dictionary map to the case-sensitive parameter names in the process model.\",\"default\":null}},\"required\":[\"uuid\",\"displayName\",\"processModelUuid\",\"actionType\",\"key\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeAction\"},{\"toolSpec\":{\"name\":\"updateRecordTypeAction\",\"description\":\"Update a record action by UUID with partial update semantics. Only provided fields are changed. actionType is immutable.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\",\"default\":null},\"processModelUuid\":{\"type\":\"string\",\"default\":null},\"key\":{\"type\":\"string\",\"description\":\"Unique key for referencing this action in SAIL (e.g., recordType!Case.actions.editCase)\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"icon\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"default\":null},\"dialogWidth\":{\"type\":\"string\",\"description\":\"Dialog width: NARROW | MEDIUM | MEDIUM_PLUS | WIDE | EXTRA_WIDE | FIT (default \\\"MEDIUM_PLUS\\\")\",\"default\":null},\"dialogHeight\":{\"type\":\"string\",\"description\":\"Dialog height: AUTO | FIT | SHORT | MEDIUM | TALL | EXTRA_TALL (default \\\"AUTO\\\")\",\"default\":null},\"contextExpr\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeAction\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeAction\",\"description\":\"Delete a record action by UUID from an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"actionUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"actionUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeAction\"},{\"toolSpec\":{\"name\":\"listRecordTypeViews\",\"description\":\"List all views (detail view tabs) for an Appian record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeViews\"},{\"toolSpec\":{\"name\":\"addRecordTypeView\",\"description\":\"Add a custom view (tab) to a record type. The first view added becomes the Summary view (urlStub \\\"summary\\\"); subsequent views get auto-generated urlStubs. All expression parameters accept SAIL expressions. Available variables: `rv!identifier` (record ID), `rv!record` (full record), `loggedInUser()`. For static values, use quoted strings (e.g. `'\\\"Order Details\\\"'`).\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\"},\"interfaceExpression\":{\"type\":\"string\"},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Null = visible to all users.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Get UUIDs from listRecordTypeActions.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB (default), NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"nameExpression\",\"interfaceExpression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeView\"},{\"toolSpec\":{\"name\":\"updateRecordTypeView\",\"description\":\"Update fields on an existing view. Only provided fields are changed; omitted fields are preserved.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"},\"nameExpression\":{\"type\":\"string\",\"default\":null},\"interfaceExpression\":{\"type\":\"string\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"description\":\"Set to null to clear (visible to all). Omit to preserve current value.\",\"default\":null},\"relatedActionShortcuts\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Related action UUIDs to show as shortcut buttons. Empty list clears all.\",\"default\":null},\"launchType\":{\"type\":\"string\",\"description\":\"How shortcuts open: SAME_TAB, NEW_TAB, or DIALOG.\",\"default\":null}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeView\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeView\",\"description\":\"Permanently delete a view from a record type. The Summary view cannot be deleted.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStub\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"urlStub\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeView\"},{\"toolSpec\":{\"name\":\"reorderRecordTypeViews\",\"description\":\"Reorder views on a record type. All existing urlStubs must be included.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"urlStubs\":{\"description\":\"Ordered list of all view urlStubs representing desired tab order. Must include all existing urlStubs. Summary is always pinned first.\",\"items\":{\"type\":\"string\"},\"type\":\"array\"}},\"required\":[\"uuid\",\"urlStubs\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:reorderRecordTypeViews\"},{\"toolSpec\":{\"name\":\"configureRecordEvents\",\"description\":\"Configure record events on an Appian record type (one-time setup).\\n\\nCreates four supporting record types (Event History, Event Type Lookup, Reply Thread,\\nSubscriber), wires relationships, copies security from the base record type, and persists\\nthe configuration. Returns 409 if record events are already configured.\\n\\nEvent types can be managed after initial setup by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\\n\\nReturns a RecordEventConfig with: four RT UUIDs (eventHistoryRecordTypeUuid,\\neventTypeLookupRecordTypeUuid, replyThreadRecordTypeUuid, subscriberRecordTypeUuid),\\nrelationship UUIDs (eventRelationshipUuid, eventTypeRelationshipUuid,\\neventReplyRelationshipUuid, subscriberRelationshipUuid), field UUIDs\\n(eventTypeValueFieldUuid, eventUserFieldUuid, eventTimestampFieldUuid,\\neventAutomationIdentifierFieldUuid, eventCommentFieldUuid, eventReplyUserFieldUuid,\\neventReplyCommentFieldUuid, eventReplyTimestampFieldUuid, subscriberUserFieldUuid),\\ncommentEventTypeId, generateCommonEvents, and eventTypes.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"eventTypes\":{\"items\":{\"type\":\"string\"},\"type\":\"array\",\"description\":\"Event types representing key moments in the business lifecycle of this record. Use past-tense verb phrases (e.g. 'Created Order', 'Approved Application', 'Shipped Order'). Avoid generic recurring operations like 'Updated' \\u2014 focus on meaningful business activities that ideally occur once per record in a specific order.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:configureRecordEvents\"},{\"toolSpec\":{\"name\":\"getRecordEventsConfig\",\"description\":\"Get the record event configuration for an Appian record type.\\n\\nReturns the full config including: four RT UUIDs, relationship UUIDs\\n(eventRelationshipUuid, eventTypeRelationshipUuid, eventReplyRelationshipUuid,\\nsubscriberRelationshipUuid), field UUIDs (eventTypeValueFieldUuid, eventUserFieldUuid,\\neventTimestampFieldUuid, eventAutomationIdentifierFieldUuid, eventCommentFieldUuid,\\neventReplyUserFieldUuid, eventReplyCommentFieldUuid, eventReplyTimestampFieldUuid,\\nsubscriberUserFieldUuid), commentEventTypeId, generateCommonEvents, and eventTypes.\\n\\nEvent types can be managed by updating the data in the record type\\nidentified by eventTypeLookupRecordTypeUuid using the record data tools.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getRecordEventsConfig\"},{\"toolSpec\":{\"name\":\"listRecordTypeUserFilters\",\"description\":\"List user filters configured on a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listRecordTypeUserFilters\"},{\"toolSpec\":{\"name\":\"addRecordTypeUserFilter\",\"description\":\"Add a user filter to a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\"},\"facetType\":{\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"type\":\"string\"},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"allowMultipleSelections\":{\"default\":false,\"type\":\"boolean\"},\"useRelatedRecordValues\":{\"default\":false,\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"type\":\"boolean\"},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"name\",\"facetType\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:addRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"updateRecordTypeUserFilter\",\"description\":\"Update a user filter on a record type. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"facetType\":{\"type\":\"string\",\"description\":\"EXPRESSION, LIST_OF_VALUES, or DATE_RANGE\",\"default\":null},\"expression\":{\"type\":\"string\",\"description\":\"SAIL expression for EXPRESSION filters. Use a!recordFilterList() with a!recordFilterListOption() or a!recordFilterDateRange().\",\"default\":null},\"labelExpression\":{\"type\":\"string\",\"description\":\"Display label for the filter. Bare text like 'Submission Date' is auto-quoted to '\\\"Submission Date\\\"'. SAIL expressions (containing parentheses, operators, etc.) are passed through unchanged.\",\"default\":null},\"sourceRef\":{\"type\":\"string\",\"description\":\"Record field UUID for LIST_OF_VALUES and DATE_RANGE filters. For fields on related records: \\\"RELATIONSHIP_UUID/FIELD_UUID\\\".\",\"default\":null},\"visibilityExpression\":{\"type\":\"string\",\"default\":null},\"defaultOptionExpression\":{\"type\":\"string\",\"default\":null},\"options\":{\"items\":{\"description\":\"Bucket option for LIST_OF_VALUES user filters.\",\"properties\":{\"labelExpression\":{\"description\":\"Display label for this option. Bare text is auto-quoted as a SAIL string literal.\",\"type\":\"string\"},\"operator\":{\"description\":\"EQUALS (=), NOT_EQUALS (<>), or BETWEEN\",\"type\":\"string\"},\"value\":{\"type\":\"string\",\"description\":\"Expression for the filter value. Used by EQUALS and NOT_EQUALS operators.\",\"default\":null},\"lowerLimitExpression\":{\"type\":\"string\",\"description\":\"Lower bound expression for BETWEEN operator\",\"default\":null},\"upperLimitExpression\":{\"type\":\"string\",\"description\":\"Upper bound expression for BETWEEN operator\",\"default\":null}},\"required\":[\"labelExpression\",\"operator\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"startDateExpression\":{\"type\":\"string\",\"description\":\"Default start date expression. Used by DATE_RANGE filters.\",\"default\":null},\"endDateExpression\":{\"type\":\"string\",\"description\":\"Default end date expression. Used by DATE_RANGE filters.\",\"default\":null},\"orderIndex\":{\"type\":\"integer\",\"default\":null},\"allowMultipleSelections\":{\"type\":\"boolean\",\"default\":null},\"useRelatedRecordValues\":{\"type\":\"boolean\",\"description\":\"Applies when sourceRef is a related record field or a foreign key field that references a related record. Automatically use the values from the related record field as the list options.\",\"default\":null},\"relatedRecordDisplayField\":{\"type\":\"string\",\"description\":\"UUID of a Text field on the related record type to use as filter option labels. Required when useRelatedRecordValues is true.\",\"default\":null},\"relatedRecordSort\":{\"type\":\"string\",\"description\":\"Sort order for related record filter options: ASCENDING, DESCENDING, or UNSORTED. Required when useRelatedRecordValues is true.\",\"default\":null}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"deleteRecordTypeUserFilter\",\"description\":\"Remove a user filter from a record type.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"filterUuid\":{\"type\":\"string\"}},\"required\":[\"uuid\",\"filterUuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteRecordTypeUserFilter\"},{\"toolSpec\":{\"name\":\"listSites\",\"description\":\"List Appian sites with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listSites\"},{\"toolSpec\":{\"name\":\"getSite\",\"description\":\"Get a single Appian site by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getSite\"},{\"toolSpec\":{\"name\":\"createSite\",\"description\":\"Create a new Appian site. Requires at least one page.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"displayName\":{\"type\":\"string\"},\"webAddressIdentifier\":{\"type\":\"string\"},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav, default) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY (default), HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"name\",\"displayName\",\"webAddressIdentifier\",\"pages\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createSite\"},{\"toolSpec\":{\"name\":\"updateSite\",\"description\":\"Update an existing Appian site. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"displayName\":{\"type\":\"string\",\"default\":null},\"webAddressIdentifier\":{\"type\":\"string\",\"default\":null},\"pages\":{\"items\":{\"description\":\"Page definition for a site.\",\"properties\":{\"name\":{\"type\":\"string\"},\"targetUuid\":{\"description\":\"Interface UUID for this page\",\"type\":\"string\"},\"description\":{\"type\":\"string\",\"default\":null},\"iconId\":{\"type\":\"string\",\"description\":\"Font Awesome icon hex code (e.g. 'f015' for home, 'f0e7' for bolt). NOT semantic names like 'home' \\u2014 use the 4-character hex code.\",\"default\":null},\"visibilityExpr\":{\"type\":\"string\",\"description\":\"SAIL expression controlling page visibility, e.g. 'if(isUserMemberOfGroup(...), true, false)'\",\"default\":null}},\"required\":[\"name\",\"targetUuid\"],\"type\":\"object\"},\"type\":\"array\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null},\"layout\":{\"type\":\"string\",\"description\":\"Navigation bar layout: HEADER_BAR (top nav) or SIDEBAR (left nav).\",\"default\":null},\"style\":{\"type\":\"string\",\"description\":\"Header bar style (only when layout=HEADER_BAR): MERCURY, HELIUM, or OXYGEN.\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateSite\"},{\"toolSpec\":{\"name\":\"deleteSite\",\"description\":\"Permanently delete an Appian site.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteSite\"},{\"toolSpec\":{\"name\":\"testRule\",\"description\":\"Execute an Appian rule with test inputs and return the result. Works for expression rules and integrations \\u2014 all rule-type objects in Appian. Pass the object's UUID, type, and an optional inputs map.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"type\":{\"description\":\"Object type: EXPRESSION_RULE or INTEGRATION.\",\"enum\":[\"EXPRESSION_RULE\",\"INTEGRATION\"],\"type\":\"string\"},\"inputs\":{\"additionalProperties\":true,\"type\":\"object\",\"description\":\"Key/value map of input parameters.\",\"default\":null},\"timeoutSeconds\":{\"type\":\"integer\",\"description\":\"Maximum time to wait for execution. Default: 5. Max: 60.\",\"default\":null},\"maxResponseSizeBytes\":{\"type\":\"integer\",\"description\":\"Maximum response size to return. Default: 5120 (5KB). Max: 1048576 (1MB).\",\"default\":null}},\"required\":[\"uuid\",\"type\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:testRule\"},{\"toolSpec\":{\"name\":\"validateDesignObject\",\"description\":\"Validate all expressions on a design object by UUID.\\n\\nReturns validation results including any expression errors found.\\nUse this to check for expression errors without performing a save.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateDesignObject\"},{\"toolSpec\":{\"name\":\"validateExpression\",\"description\":\"Validate a raw SAIL expression without saving it.\\n\\nRuns parse, discovery, and eval passes. No rule inputs or record\\nreferences are stubbed \\u2014 use for standalone expressions like freeform mockups.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"expression\":{\"type\":\"string\"}},\"required\":[\"expression\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:validateExpression\"},{\"toolSpec\":{\"name\":\"listWebApis\",\"description\":\"List Appian Web APIs with optional filtering. Use appUuid to scope to an application.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"query\":{\"type\":\"string\",\"default\":null},\"appUuid\":{\"type\":\"string\",\"default\":null},\"limit\":{\"default\":50,\"type\":\"integer\"},\"offset\":{\"default\":0,\"type\":\"integer\"}},\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:listWebApis\"},{\"toolSpec\":{\"name\":\"getWebApi\",\"description\":\"Get a single Appian Web API by UUID.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:getWebApi\"},{\"toolSpec\":{\"name\":\"createWebApi\",\"description\":\"Create a new Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"name\":{\"type\":\"string\"},\"urlAlias\":{\"type\":\"string\"},\"httpMethod\":{\"type\":\"string\"},\"appUuid\":{\"type\":\"string\",\"description\":\"Application UUID (see listApplications). Auto-adds created object to the app and applies the app's default security.\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"name\",\"urlAlias\",\"httpMethod\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:createWebApi\"},{\"toolSpec\":{\"name\":\"updateWebApi\",\"description\":\"Update an existing Appian Web API. Only provided fields are changed.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"},\"name\":{\"type\":\"string\",\"default\":null},\"description\":{\"type\":\"string\",\"default\":null}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:updateWebApi\"},{\"toolSpec\":{\"name\":\"deleteWebApi\",\"description\":\"Permanently delete an Appian Web API.\",\"inputSchema\":{\"additionalProperties\":false,\"properties\":{\"uuid\":{\"type\":\"string\"}},\"required\":[\"uuid\"],\"type\":\"object\"}},\"urn\":\"urn:remote:aHR0cDovL2NvbXBvc2VyLXBhcmVudC1jb21wb3Nlci1zZXJ2aWNlcy1sY3AtbWNwLmNvbXBvc2VyLnN2Yy5jbHVzdGVyLmxvY2FsOjgwMDAvanNvbnJwYw==:deleteWebApi\"}],\"models\":[\"appian/anthropic.claude-sonnet-4-5-20250929-v1:0\"],\"model_parameters\":{\"temperature\":0.7,\"max_tokens\":16384},\"guardrails\":{\"max_tool_calls\":50,\"max_execution_time_seconds\":1800}}" | |
| status: 202 | |
| response: {"run_id":"c358476a-63eb-4eb0-9735-6afa75fc123d","status":"QUEUED","status_url":"/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status"} | |
| [2026-04-14T18:29:41.007575+00:00] [87f21fe2] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:29:41.010045+00:00] [7d0b7e1a] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/messages | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:29:54.043728+00:00] [357fa71b] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:29:56.059381+00:00] [512fb948] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/messages | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/messages?stream_mode=token" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" -H "Accept: text/event-stream" | |
| response: (SSE stream opened) | |
| [2026-04-14T18:32:04.421797+00:00] [e0587422] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:32:05.562704+00:00] [667fb5cf] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:32:08.531571+00:00] [a7ad9015] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IN_PROGRESS" | |
| [2026-04-14T18:32:11.090242+00:00] [b1f41c6d] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d/status" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: "IDLE" | |
| [2026-04-14T18:32:12.935178+00:00] [517fe06f] GET https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d | |
| run_id: c358476a-63eb-4eb0-9735-6afa75fc123d | |
| curl: curl -X GET "https://agents.dev-01.1-29.us-east-1.k8s.dev.appian-internal.com/agent-runs/c358476a-63eb-4eb0-9735-6afa75fc123d" -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsImFwcGlhbl9zaXRlX2lkIjoiMTIzODU2MTE5IiwidHlwIjoiSldUIn0.eyJhcHBpYW5fc2l0ZV9pZCI6MTIzODU2MTE5LCJhdWQiOiJ1cm46YWktcGxhdGZvcm0iLCJpc3MiOiJpbnRlZ3JhdGlvbi10ZXN0In0.MPD3FINQUrmdlvSsU-MgfUl2wmzRFBenlVIC6tMZOOYTULJ3vbMpJP9cYQyOUnDKw0M3OtZd43FiioQu-eav2_b-DyX1LWP-lsY-XymydVSILsh5qK2n9NqvPr0NbxV63pL25eDot8XHqZnk3pf9Wp7i14HZfRuvxFbwNZXvz6uD1jjgqksPFozh37vMjIUh1CQLlRmSTGyyJhWMOstXZ3bHtXgvpH41_JeCBq8A3Y55xnr-HW2yZHhGfSAP1ytl2Hbl6XcX6Of7M9wW6hnGAfSdxoSBa_AZoaU-ETGyz1KkPjLmCfM4QLf8VwJFbzb_ppQG55T4ueWAzs7CrOk-qw" | |
| status: 200 | |
| response: {"run_id":"c358476a-63eb-4eb0-9735-6afa75fc123d","graph_id":"react","status":"IDLE","token_usage":{"input_tokens":136688,"output_tokens":480,"total_tokens":137168},"tool_calls":3,"duration_seconds":147.39014983177185,"start_time":"177619 |
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)
(Sorry about that, but we can’t show files that are this big right now.)