{"generatedAt":"2026-07-15T05:39:33.643Z","defaultAgentId":"fastapp-generic-app-operator","project":{"name":"FastApp","docs":{"htmlIndex":"https://creator.fastapp.cloud/fastapp/public-docs","llms":"https://creator.fastapp.cloud/fastapp/public-docs/llms.txt","llmsFull":"https://creator.fastapp.cloud/fastapp/public-docs/llms-full.txt","manifest":"https://creator.fastapp.cloud/fastapp/public-docs/manifest.json","agents":"https://creator.fastapp.cloud/fastapp/public-docs/agents.json"},"execution":{"catalog":"https://creator.fastapp.cloud/api/agent/catalog","execute":"https://creator.fastapp.cloud/api/agent/execute","mcp":"https://creator.fastapp.cloud/api/mcp"}},"agents":[{"id":"fastapp-generic-app-operator","name":"FastApp Generic App Operator","description":"A structured agent surface for reading docs, editing app schema, and managing generic data and RBAC records through Nuxt APIs.","status":"experimental","transport":"http","tags":["fastapp","llm","mcp-ready","nuxt-api","generic-app","schema-tools","rbac"],"instructions":"Use list_public_docs and get_public_doc to gather product and architecture context before changing app structure. Use list_apps and get_app to inspect current apps before mutating them. Prefer granular schema tools such as upsert_module, upsert_object, upsert_property, upsert_relation, upsert_action, and upsert_page over coarse whole-app patching. Use list_roles, create_role, list_permissions, list_memberships, create_permission, and assign_membership for RBAC management. Create roles only when the caller has platform/admin access or explicit role-create permission. Use the /api/v1/data-backed tools for runtime records inside an app and object context. Use lookup_identifier and extract_from_image to acquire external or visual data before form filling. Use aggregate_records, profile_object_data, and suggest_filters for generic analytics, summaries, grouping, KPI questions, and choosing useful table filters without hardcoded app logic. Use prepare_record_upsert before commit_record_upsert for safe generic writes across apps. Use ui_apply_filters after read/list tools when the frontend table/list should reflect the same generic filters or sort. Prefer dryRun mode before write operations when building higher-level orchestration.","tools":[{"name":"list_public_docs","title":"List Public Docs","description":"Return the public FastApp documentation manifest generated from repository markdown.","readOnly":true,"api":{"method":"GET","path":"/api/public-docs"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"list_public_docs","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"get_public_doc","title":"Get Public Doc","description":"Return a single public documentation record by slug path.","readOnly":true,"api":{"method":"GET","path":"/api/public-docs/{slugPath}"},"inputSchema":{"type":"object","required":["slugPath"],"additionalProperties":false,"properties":{"slugPath":{"type":"string","description":"Documentation slug path from the public docs manifest, for example docs/fastapp-agent-project-bootstrap."}}},"examples":[{"title":"Read the agent bootstrap document","input":{"slugPath":"docs/fastapp-agent-project-bootstrap"}}],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"get_public_doc","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_apps","title":"List Apps","description":"List all apps visible through the Nuxt app catalog.","readOnly":true,"api":{"method":"GET","path":"/api/app"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"list_apps","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"get_app","title":"Get App","description":"Load one app by numeric id.","readOnly":true,"api":{"method":"GET","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["id"],"additionalProperties":false,"properties":{"id":{"type":"integer","description":"Numeric app id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"get_app","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"create_app","title":"Create App","description":"Create a new generic app, including optional modules, objects, and pages.","readOnly":false,"api":{"method":"POST","path":"/api/app"},"inputSchema":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable app name."},"slug":{"type":"string","description":"Route-safe slug. Optional on create; inferred from name when omitted."},"description":{"type":"string","description":"High-level app purpose."},"version":{"type":"string","description":"Semantic version string."},"icon":{"type":"string","description":"Optional icon token."},"is_active":{"type":"boolean","description":"Whether the app is active."},"is_frozen":{"type":"boolean","description":"Whether editing should be blocked in the app."},"default_storage":{"type":"string","description":"Default persistence strategy.","enum":["generic","native","external"]},"provider":{"type":"string","description":"App provider identifier, usually local or external."},"api_base_url":{"type":"string","description":"Base URL for API-backed app objects."},"is_api_data_source":{"type":"boolean","description":"Marks the app as backed by an external API."},"api_auth_token":{"type":"string","description":"Optional upstream API auth token."},"modules":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"App modules array."},"objects":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"App object schema array."},"pages":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"App page definition array."},"theme_config":{"type":"object","additionalProperties":true,"description":"Optional theme configuration payload."}}},"examples":[{"title":"Create a minimal task app","input":{"name":"Task Board","slug":"task-board","description":"Track tasks, assignees, and due dates.","objects":[{"name":"task","label":"Task","properties":[{"name":"title","type":"string","required":true},{"name":"due_date","type":"date"}]}]}}],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"create_app","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"update_app","title":"Update App","description":"Patch an existing app by id using the same shape accepted by the Nuxt app API.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["id","patch"],"additionalProperties":false,"properties":{"id":{"type":"integer","description":"Numeric app id."},"patch":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable app name."},"slug":{"type":"string","description":"Route-safe slug. Optional on create; inferred from name when omitted."},"description":{"type":"string","description":"High-level app purpose."},"version":{"type":"string","description":"Semantic version string."},"icon":{"type":"string","description":"Optional icon token."},"is_active":{"type":"boolean","description":"Whether the app is active."},"is_frozen":{"type":"boolean","description":"Whether editing should be blocked in the app."},"default_storage":{"type":"string","description":"Default persistence strategy.","enum":["generic","native","external"]},"provider":{"type":"string","description":"App provider identifier, usually local or external."},"api_base_url":{"type":"string","description":"Base URL for API-backed app objects."},"is_api_data_source":{"type":"boolean","description":"Marks the app as backed by an external API."},"api_auth_token":{"type":"string","description":"Optional upstream API auth token."},"modules":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"App modules array."},"objects":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"App object schema array."},"pages":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"App page definition array."},"theme_config":{"type":"object","additionalProperties":true,"description":"Optional theme configuration payload."}},"description":"Partial app payload to patch."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"update_app","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_app","title":"Delete App","description":"Delete an app by numeric id.","readOnly":false,"api":{"method":"DELETE","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["id"],"additionalProperties":false,"properties":{"id":{"type":"integer","description":"Numeric app id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_app","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_records","title":"List Records","description":"List records from a generic app object using the existing /api/v1/data route.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/{object}"},"inputSchema":{"type":"object","required":["app","object"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"object":{"type":"string","description":"Technical object name."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the Nuxt data API."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"list_records","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"get_record","title":"Get Record","description":"Load one object record by id.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/{object}/{id}"},"inputSchema":{"type":"object","required":["app","object","id"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"object":{"type":"string","description":"Technical object name."},"id":{"type":"integer","description":"Record id."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"get_record","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"create_record","title":"Create Record","description":"Create one record for an object inside the selected app context.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/{object}"},"inputSchema":{"type":"object","required":["app","object","data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"object":{"type":"string","description":"Technical object name."},"data":{"type":"object","additionalProperties":true,"description":"Record payload accepted by the generic Nuxt data API."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"create_record","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"update_record","title":"Update Record","description":"Patch one record for an object inside the selected app context.","readOnly":false,"api":{"method":"PATCH","path":"/api/v1/data/{app}/{object}/{id}"},"inputSchema":{"type":"object","required":["app","object","id","data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"object":{"type":"string","description":"Technical object name."},"id":{"type":"integer","description":"Record id."},"data":{"type":"object","additionalProperties":true,"description":"Partial record payload accepted by the generic Nuxt data API."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"update_record","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_record","title":"Delete Record","description":"Delete one record for an object inside the selected app context.","readOnly":false,"api":{"method":"DELETE","path":"/api/v1/data/{app}/{object}/{id}"},"inputSchema":{"type":"object","required":["app","object","id"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"object":{"type":"string","description":"Technical object name."},"id":{"type":"integer","description":"Record id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_record","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"lookup_identifier","title":"Lookup Identifier","description":"Lookup public identifier data using pluggable providers. Works generically; CNPJ is currently implemented.","readOnly":true,"api":{"method":"POST","path":"/api/intel/lookup-identifier"},"inputSchema":{"type":"object","required":["type","value"],"additionalProperties":false,"properties":{"type":{"type":"string","description":"Identifier type, e.g. cnpj."},"value":{"type":"string","description":"Raw identifier value."},"country":{"type":"string","description":"Country code. Default BR for cnpj."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"lookup_identifier","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"extract_from_image","title":"Extract From Image","description":"Extract structured record fields from an image using vision. Generic over target object schema.","readOnly":true,"api":{"method":"POST","path":"/api/intel/extract-from-image"},"inputSchema":{"type":"object","required":["image_data"],"additionalProperties":false,"properties":{"image_data":{"type":"string","description":"Data URL or image URL."},"app":{"type":"string","description":"Optional app slug/id scope for schema resolution."},"object":{"type":"string","description":"Optional target object name."},"field_candidates":{"type":"array","items":{"type":"string"}},"locale":{"type":"string","description":"Locale hint (default pt-BR)."},"model":{"type":"string","description":"Optional vision model override."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"extract_from_image","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"prepare_record_upsert","title":"Prepare Record Upsert","description":"Prepare a generic create/update payload from arbitrary data, map to object schema, validate required fields, and detect duplicates.","readOnly":true,"api":{"method":"POST","path":"/api/intel/prepare-record-upsert"},"inputSchema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"Optional app slug/id (falls back to runtime context)."},"object":{"type":"string","description":"Optional object name (falls back to runtime context)."},"data":{"type":"object","additionalProperties":true},"match_by":{"type":"array","items":{"type":"string"}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"prepare_record_upsert","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"commit_record_upsert","title":"Commit Record Upsert","description":"Commit a generic create/update operation with duplicate handling policy. Requires confirm=true for actual writes.","readOnly":false,"api":{"method":"POST","path":"/api/intel/commit-record-upsert"},"inputSchema":{"type":"object","required":["data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"Optional app slug/id (falls back to runtime context)."},"object":{"type":"string","description":"Optional object name (falls back to runtime context)."},"data":{"type":"object","additionalProperties":true},"mode":{"type":"string","enum":["auto","create","update","upsert"],"description":"Write mode."},"record_id":{"type":"integer","description":"Optional explicit record id for update mode."},"match_by":{"type":"array","items":{"type":"string"}},"conflict_policy":{"type":"string","enum":["abort","update_first_match","create_anyway"],"description":"How to handle duplicates in auto/upsert modes."},"confirm":{"type":"boolean","description":"Must be true to execute the write operation."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"commit_record_upsert","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"aggregate_records","title":"Aggregate Records","description":"Compute generic count, sum, average, min, max, and distinct-count metrics over any object, with optional filters, grouping, date bucketing, sorting, and RBAC-aware data access.","readOnly":true,"api":{"method":"POST","path":"/api/intel/aggregate-records"},"inputSchema":{"type":"object","required":["app","object"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App slug/id."},"object":{"type":"string","description":"Object technical name."},"query":{"type":"object","additionalProperties":true},"group_by":{"type":"array","items":{"type":"string"}},"metrics":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string","description":"Optional field to aggregate. Omit for count."},"aggregate":{"type":"string","enum":["count","count_distinct","sum","avg","min","max"],"description":"Aggregation function."},"label":{"type":"string","description":"Optional output label."}}}},"date_bucket":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string"},"interval":{"type":"string","enum":["day","week","month","year"]}}},"sort_by":{"type":"object","additionalProperties":false,"properties":{"field":{"type":"string"},"direction":{"type":"string","enum":["asc","desc"]}}},"max_rows":{"type":"integer","description":"Maximum records to scan, capped at 1000."},"limit":{"type":"integer","description":"Maximum aggregate groups returned."}}},"examples":[{"title":"Count records by status","input":{"app":"my-app","object":"lead","group_by":["status"],"metrics":[{"aggregate":"count","label":"count"}]}},{"title":"Sum amount by state","input":{"app":"my-app","object":"customer","group_by":["state"],"metrics":[{"field":"total_amount","aggregate":"sum","label":"sum_total_amount"}],"sort_by":{"field":"sum_total_amount","direction":"desc"}}}],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"aggregate_records","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"profile_object_data","title":"Profile Object Data","description":"Profile any object data set generically: field fill rates, distinct values, numeric/date summaries, and useful filter/sort candidates.","readOnly":true,"api":{"method":"POST","path":"/api/intel/profile-object-data"},"inputSchema":{"type":"object","required":["app","object"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App slug/id."},"object":{"type":"string","description":"Object technical name."},"query":{"type":"object","additionalProperties":true},"sample_size":{"type":"integer","description":"Maximum records to sample, capped at 1000."},"max_distinct":{"type":"integer","description":"Maximum top values per field."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"profile_object_data","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"suggest_filters","title":"Suggest Filters","description":"Return generic filter and sort candidates for an object using schema metadata, relations, and optional user prompt keywords.","readOnly":true,"api":{"method":"POST","path":"/api/intel/suggest-filters"},"inputSchema":{"type":"object","required":["app","object"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App slug/id."},"object":{"type":"string","description":"Object technical name."},"prompt":{"type":"string","description":"Optional user request to rank filter suggestions."},"limit":{"type":"integer","description":"Maximum suggestions returned."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"suggest_filters","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_update_fields","title":"Update UI Fields","description":"Update the fields of the currently active form in the user interface. Use this to fill forms, change addresses, or update record data live.","readOnly":false,"api":{"method":"POST","path":"/api/ui/update-fields"},"inputSchema":{"type":"object","required":["fields"],"additionalProperties":false,"properties":{"fields":{"type":"object","additionalProperties":true,"description":"KV map of field names and their new values."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"ui_update_fields","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_navigate","title":"Navigate UI","description":"Trigger a navigation to a specific path in the application (e.g. object list, dashboard, page).","readOnly":true,"api":{"method":"POST","path":"/api/ui/navigate"},"inputSchema":{"type":"object","required":["path"],"additionalProperties":false,"properties":{"path":{"type":"string","description":"Target application path."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"ui_navigate","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_apply_filters","title":"Apply UI Filters","description":"Apply generic filters, search, and sorting to the active object list/table UI by updating the frontend query state. Use after list_records when the user is on a frontend data surface and expects the table/list to reflect the same filtered result.","readOnly":true,"api":{"method":"POST","path":"/api/ui/apply-filters"},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"app":{"type":"string","description":"Optional app slug for navigation when the target object is not the active object."},"module":{"type":"string","description":"Optional module slug for navigation."},"object":{"type":"string","description":"Optional target object technical name."},"path":{"type":"string","description":"Optional target path. If omitted, the active route is used."},"mode":{"type":"string","enum":["replace","merge"],"description":"replace clears existing filters/sort; merge keeps existing query keys."},"query":{"type":"object","additionalProperties":true,"description":"Query payload accepted by generic data views, e.g. filters[field][operator], field[operator], field=value, q, or $sort[field]."},"filters":{"type":"array","description":"Structured filters to apply.","items":{"type":"object","required":["field","value"],"additionalProperties":false,"properties":{"field":{"type":"string"},"operator":{"type":"string","description":"Generic operator such as =, $like, contains, in, >, >=, <, <=, between."},"value":{}}}},"sort":{"type":"object","additionalProperties":true,"description":"Sort map, e.g. { sale_at_max: \"desc\" } or { total: -1 }."},"search":{"type":"string","description":"Global search text."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"ui_apply_filters","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_set_wizard_step","title":"Set Wizard Step","description":"Set the active step index for wizard-style forms.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/set-step"},"inputSchema":{"type":"object","required":["step"],"additionalProperties":false,"properties":{"step":{"type":"integer","description":"Zero-based step index to activate."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"ui_set_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_next_wizard_step","title":"Next Wizard Step","description":"Advance the active wizard form to the next step.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/next-step"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"ui_next_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_prev_wizard_step","title":"Previous Wizard Step","description":"Move the active wizard form back to the previous step.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/prev-step"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"ui_prev_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_module","title":"Upsert Module","description":"Create or update one module inside an existing app.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","module"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"module":{"type":"object","additionalProperties":true,"properties":{"key":{"type":"string","description":"Module key."},"slug":{"type":"string","description":"Optional module slug."},"name":{"type":"string","description":"Human-readable module name."},"icon":{"type":"string","description":"Optional icon token."},"centralObject":{"type":"string","description":"Optional central object name."},"objects":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional object references array."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_module","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_module","title":"Delete Module","description":"Delete one module from an app by module key.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","moduleKey"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"moduleKey":{"type":"string","description":"Module key."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_module","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_object","title":"Upsert Object","description":"Create or update one object schema inside an app, with optional module assignment.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","object"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"moduleKey":{"type":"string","description":"Optional module key to attach the object to."},"object":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Object technical name."},"key":{"type":"string","description":"Optional object key alias."},"label":{"type":"string","description":"Human-readable object label."},"description":{"type":"string","description":"Optional object description."},"semantic":{"type":"string","description":"Object semantic classification."},"topology":{"type":"string","description":"Object topology classification."},"is_agent":{"type":"boolean","description":"Whether the object represents an agent actor."},"agent_metadata":{"type":"object","additionalProperties":true,"description":"Optional agent metadata payload."},"properties":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional full property list."},"relations":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional full relation list."},"actions":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional full action list."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_object","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_object","title":"Delete Object","description":"Delete one object schema from an app and remove module references to it.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_object","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_property","title":"Upsert Property","description":"Create or update one property inside an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","property"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"property":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Property technical name."},"label":{"type":"string","description":"Human-readable property label."},"type":{"type":"string","description":"Property data type."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_property","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_property","title":"Delete Property","description":"Delete one property from an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","propertyName"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"propertyName":{"type":"string","description":"Property technical name."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_property","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_relation","title":"Upsert Relation","description":"Create or update one relation inside an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","relation"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Source object name."},"relation":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Relation technical name."},"target":{"type":"string","description":"Target object name."},"type":{"type":"string","description":"Relation type."},"foreign_key":{"type":"string","description":"Foreign key field name."},"storage":{"type":"string","description":"Relation storage strategy."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_relation","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_relation","title":"Delete Relation","description":"Delete one relation from an object schema by target and optional type.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","targetObject"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Source object name."},"targetObject":{"type":"string","description":"Target object name."},"relationType":{"type":"string","description":"Optional relation type."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_relation","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_view","title":"Upsert View","description":"Create or update one visualization (table/kanban/list/calendar/map/gallery) on an object. Every view type has field requirements: bind the required role to an existing property (e.g. kanban.group_by → a status enum field; calendar.start → a date field; map.location → a location field). Ensure the bound property exists (via upsert_property) before adding the view.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","view"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name the view belongs to."},"view":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","description":"Stable view id (auto-generated from type+label if omitted)."},"type":{"type":"string","description":"View type: 'table' | 'kanban' | 'list' | 'calendar' | 'map' | 'gallery'."},"label":{"type":"string","description":"Human-readable view label."},"icon":{"type":"string","description":"Optional icon token."},"is_default":{"type":"boolean","description":"Whether this view opens by default."},"bindings":{"type":"object","additionalProperties":true,"description":"Maps view roles to property names. Each view type has REQUIRED roles: kanban→group_by (enum/foreign_key field), calendar→start (date field), map→location (location field), gallery→image, list→title.","properties":{"group_by":{"type":"string","description":"Kanban: property used for columns (enum or foreign_key)."},"title":{"type":"string","description":"Primary label property."},"subtitle":{"type":"string","description":"Secondary label property."},"start":{"type":"string","description":"Calendar: start date/datetime property."},"end":{"type":"string","description":"Calendar: end date/datetime property."},"location":{"type":"string","description":"Map: location property."},"color":{"type":"string","description":"Accent color property."},"image":{"type":"string","description":"Gallery/list: image url property."},"columns":{"type":"array","items":{"type":"string"},"description":"Table: explicit column order (property names)."}}},"filters":{"type":"object","additionalProperties":true,"description":"Optional saved filter applied when the view is active."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_view","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_view","title":"Delete View","description":"Delete one visualization from an object schema by view id.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","viewId"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"viewId":{"type":"string","description":"View id to remove."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_view","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_action","title":"Upsert Action","description":"Create or update one action inside an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","action"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"action":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Action technical name."},"label":{"type":"string","description":"Human-readable action label."},"method":{"type":"string","description":"HTTP verb used by the action."},"endpoint":{"type":"string","description":"Action endpoint path."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_action","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_action","title":"Delete Action","description":"Delete one action from an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","actionName"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"actionName":{"type":"string","description":"Action technical name."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_action","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_page","title":"Upsert Page","description":"Create or update one app page.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","page"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"page":{"type":"object","additionalProperties":true,"properties":{"slug":{"type":"string","description":"Page slug."},"name":{"type":"string","description":"Page name."},"label":{"type":"string","description":"Page label."},"type":{"type":"string","description":"Page type, usually cms."},"path":{"type":"string","description":"Optional page path."},"icon":{"type":"string","description":"Optional icon token."},"sections":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional CMS sections array."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"upsert_page","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_page","title":"Delete Page","description":"Delete one app page by slug.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","pageSlug"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"pageSlug":{"type":"string","description":"Page slug."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_page","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_roles","title":"List Roles","description":"List role records scoped to an app.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/role"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the underlying Nuxt route."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"list_roles","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"create_role","title":"Create Role","description":"Create a role row scoped to an app. Requires platform/admin access or explicit role-create permission.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/role"},"inputSchema":{"type":"object","required":["app","name"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"name":{"type":"string","description":"Role name."},"label":{"type":"string","description":"Human-readable role label."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"create_role","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"update_role","title":"Update Role","description":"Update an existing role row.","readOnly":false,"api":{"method":"PATCH","path":"/api/v1/data/{app}/role/{id}"},"inputSchema":{"type":"object","required":["app","id","data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Role record id."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"update_role","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_role","title":"Delete Role","description":"Delete an existing role row.","readOnly":false,"api":{"method":"DELETE","path":"/api/v1/data/{app}/role/{id}"},"inputSchema":{"type":"object","required":["app","id"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Role record id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_role","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_permissions","title":"List Permissions","description":"List permission rows scoped to an app.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/permission"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the underlying Nuxt route."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"list_permissions","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"create_permission","title":"Create Permission","description":"Create a permission row for an app, role, object, and action.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/permission"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"role":{"type":"string","description":"Role name."},"object":{"type":"string","description":"Target object name."},"targetObject":{"type":"string","description":"Alias for the target object name."},"action":{"type":"string","description":"Permission action."},"name":{"type":"string","description":"Optional explicit permission name."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"create_permission","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"update_permission","title":"Update Permission","description":"Update a permission row.","readOnly":false,"api":{"method":"PATCH","path":"/api/v1/data/{app}/permission/{id}"},"inputSchema":{"type":"object","required":["app","id","data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Permission record id."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"update_permission","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"delete_permission","title":"Delete Permission","description":"Delete a permission row.","readOnly":false,"api":{"method":"DELETE","path":"/api/v1/data/{app}/permission/{id}"},"inputSchema":{"type":"object","required":["app","id"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Permission record id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"delete_permission","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_memberships","title":"List Memberships","description":"List app membership rows from the user_app object.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/user_app"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the underlying Nuxt route."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"list_memberships","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"assign_membership","title":"Assign Membership","description":"Create one user_app membership row for a user and role.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/user_app"},"inputSchema":{"type":"object","required":["app","userId","role"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"userId":{"type":"integer","description":"User id."},"role":{"type":"string","description":"Role name."},"referenceObject":{"type":"string","description":"Optional constrained reference object."},"referenceId":{"type":"integer","description":"Optional constrained reference id."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"assign_membership","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"update_membership","title":"Update Membership","description":"Update one user_app membership row.","readOnly":false,"api":{"method":"PATCH","path":"/api/v1/data/{app}/user_app/{id}"},"inputSchema":{"type":"object","required":["app","id","data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Membership record id."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"update_membership","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"remove_membership","title":"Remove Membership","description":"Delete one user_app membership row.","readOnly":false,"api":{"method":"DELETE","path":"/api/v1/data/{app}/user_app/{id}"},"inputSchema":{"type":"object","required":["app","id"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Membership record id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-generic-app-operator","tool":"remove_membership","input":{},"context":{"app_slug":""},"dryRun":false}}}]},{"id":"fastapp-wizard-agent","name":"FastApp App Wizard","description":"Guided conversational wizard that translates business problem descriptions into fully configured FastApp applications through a discovery-first, propose-then-build conversation.","status":"active","transport":"http","tags":["fastapp","wizard","onboarding","app-creation","guided","llm","mcp-ready"],"instructions":"You are the FastApp Wizard. Your job: read a business description and immediately build a rich, production-quality first-draft app — or extend/modify an existing one. Always overshoot on structure; the user will trim what they don't need.\n\n## IDENTITY\n- Always reply in the user's language (Portuguese if they write Portuguese, English if English).\n- Never expose: \"schema\", \"object\", \"property\", \"taxonomy\", \"slug\", \"entity\", \"CRUD\", \"FADAP\", \"provider\", \"physical\", \"embedded\", \"virtual\", \"transactional\", \"master\". Use \"seção\" (module), plain business names (item types), \"campo\" (property).\n- Say \"quadro\" not kanban. \"Mapa\" not map mode. \"Agenda\" not resource_schedule.\n- Tone: direct, confident, no filler, no apologies.\n\n---\n\n## WHEN TO ASK VS WHEN TO BUILD\n\n**Build immediately** (no questions) when the first message contains a recognizable business domain — a single word like \"floricultura\", \"imobiliária\", \"oficina\", \"clínica\" is enough. Infer the full domain structure.\n\n**Ask at most ONE round of 2 short questions** only when the domain is completely ambiguous (e.g. \"preciso de um app\" with zero context). After ONE answer — however brief — always build. Never ask a second round.\n\nNever ask for confirmation before building. Never present a plan and wait. Just announce and build.\n\n---\n\n## OVERSHOOT PRINCIPLE — CRITICAL\nAlways build MORE than the user described. Think like a domain expert who knows what a fully operational business needs. Use your training knowledge to enumerate the full set of objects a real operator would need — not just what the user mentioned.\n\nIf the user only mentions 2-3 things, still build the FULL domain picture. The user trims extras; missing objects slow the whole project.\n\n**Minimum quality bar:** Every app MUST have at least: 2 master objects (reference data), 1 transactional object (with quadro view), 1 embedded sub-object (line items), and at least 2 explicit FK relations. Fewer than this is insufficient.\n\n---\n\n## BUILD SEQUENCE (strict order)\n\n**Step 0 — App target:**\n- No context.app_slug, or app is empty (no modules): run full creation from Step 1.\n- context.app_slug set and app has structure: skip to Step 5, apply changes directly.\n- context.app_slug set but app is empty: skip Step 2 (app already exists), run from Step 1.\n\n**Step 1:** Call wizard_get_taxonomy_guide (silent) — get the classification rules.\n\n**Step 2:** Using your own knowledge of the {domain} business type, design the complete object set internally. Do not ask — you already know what a real business in this sector needs.\n\n**Step 3:** Call wizard_create_app_with_owner — name from domain, one-sentence description, ownerUserId = context.user_id. SKIP if context.app_slug already exists.\n\n**Step 4:** Announce in one line: \"Montando o app agora...\" — then execute Steps 5-9 without stopping.\n\n**Step 5:** upsert_module for each section. After each: \"✓ Seção [Name].\"\n\n**Step 6:** upsert_object for each item type with correct taxonomy (category, nature, ui_mode, crud_mode, is_agent). After each: \"✓ [Name].\"\n\n**Step 7:** upsert_property for each field — all fields per object in sequence without pausing. Use domain example field definitions. After all fields of an object: \"✓ [N] campos para [Name].\"\n- FK fields (e.g. cliente_id) MUST be type: integer\n- Status enums MUST use domain-appropriate Portuguese stage names from the domain example (not generic New/In Progress/Done)\n- Always include: status for transactional objects, valor for financial objects, telefone+email for contact objects\n\n**Step 8 — Visualizations (quadro/agenda/mapa/galeria):** For every object that benefits from a non-table visualization, call upsert_view AFTER its fields exist. A view is generic: it binds a ROLE to one of the object's fields. Respect each view's field requirement:\n- \"quadro\" (kanban): `{ type: 'kanban', label: 'Quadro', is_default: true, bindings: { group_by: '<status enum field>', title: '<main text field>' } }` — REQUIRES an enum/foreign_key field to group by. If none exists, create the status field first (Step 7).\n- \"agenda\" (calendar): `{ type: 'calendar', label: 'Agenda', bindings: { start: '<date field>', end: '<date field>', title: '<text field>' } }` — REQUIRES a date/datetime field.\n- \"mapa\" (map): `{ type: 'map', label: 'Mapa', bindings: { location: '<location field>', title: '<text field>' } }` — REQUIRES a field of type location.\n- \"galeria\" (gallery): `{ type: 'gallery', bindings: { image: '<image url field>', title: '<text field>' } }` — REQUIRES an image field.\nSet the most useful view as is_default. Table is always implicitly available — do not create it explicitly. NEVER bind a role to a field that doesn't exist or whose type doesn't match.\n\n**Step 8b:** DO NOT call upsert_relation in this pass. Relations are handled automatically by the system in a dedicated second pass. Your job here is ONLY objects, properties, modules, views, and pages — do not output any upsert_relation calls.\n\n**Step 9:** upsert_page for each item type (auto list page).\n\n**Step 10:** If roles mentioned: create_role for each, then assign_membership.\n\n**Done:** Short summary (N seções, N tipos, N campos). Say: \"Estrutura criada! As ligações entre os tipos serão verificadas automaticamente.\"\n\n---\n\n## TAXONOMY (internal — never expose)\n- Stable reference data (clients, products, suppliers) → category: master, nature: physical\n- Event/flow records (orders, tickets, tasks) → category: transactional, nature: physical\n- Sub-items inside a parent (order lines, checklist items) → nature: embedded\n- Has status/stage field → add a kanban view (upsert_view, bindings.group_by = the status field)\n- Has location/address field → add a map view (upsert_view, bindings.location = the location field)\n- Scheduling/appointments → add a calendar view (upsert_view, bindings.start = the date field)\n- Represents a human role → is_agent: true, agent_metadata.role = role name\n- ≤8 fields → crud_mode: modal; 8–15 → crud_mode: sidebar; more → crud_mode: page\n\n## STANDARD FIELDS (apply silently — no asking)\n- Any entity with stages → status (enum, domain-specific options)\n- Any entity with ownership → responsavel (string)\n- Any entity with a deadline → data_entrega (date)\n- Any entity with money → valor (number, semantic: money)\n- People/contacts → email (semantic: email), telefone (semantic: phone)\n\n## EDITING AN EXISTING APP\nWhen context.app_slug is set and the app has structure, interpret user message as a change:\n- New section → upsert_module\n- New item type → upsert_object + upsert_page\n- New/changed fields → upsert_property\n- New relation → upsert_relation\n- New/changed visualization (\"quadro\", \"agenda\", \"mapa\", \"galeria\") → upsert_view with the correct bindings (create the required field first if missing)\n- New role/access → create_role + assign_membership\nAct immediately. No discovery phase. Confirm each change in one sentence.\n\n## ERROR HANDLING\nIf a tool call fails, say plainly what failed and ask to retry or skip. Never swallow errors.","tools":[{"name":"wizard_get_templates","title":"Get App Templates","description":"Return available app templates with descriptions and example use cases. Use this to suggest a starting point based on the user's business description.","readOnly":true,"api":{"method":"GET","path":"/api/wizard/templates"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"wizard_get_templates","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"wizard_get_taxonomy_guide","title":"Get Taxonomy Guide","description":"Return the FastApp taxonomy classification rules. Call this before creating objects to correctly classify each entity's category, nature, view mode, and actor designation.","readOnly":true,"api":{"method":"GET","path":"/api/wizard/taxonomy-guide"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"wizard_get_taxonomy_guide","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"wizard_create_app_with_owner","title":"Create App with Owner","description":"Create a new app and immediately assign the owner user as admin. Use this instead of create_app to ensure the creator has admin access from the start.","readOnly":false,"api":{"method":"POST","path":"/api/app"},"inputSchema":{"type":"object","required":["name"],"additionalProperties":false,"properties":{"name":{"type":"string","description":"Human-readable app name."},"slug":{"type":"string","description":"URL-safe slug. Inferred from name when omitted."},"description":{"type":"string","description":"One-sentence app purpose."},"icon":{"type":"string","description":"Optional icon token, e.g. pi pi-box."},"ownerUserId":{"type":"integer","description":"User ID to assign as admin. Pass context.user_id here when available."}}},"examples":[{"title":"Create a CRM app for the current user","input":{"name":"CRM Comercial","description":"Gestão de leads e oportunidades comerciais.","ownerUserId":1}}],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"wizard_create_app_with_owner","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_module","title":"Upsert Module","description":"Create or update one module inside an existing app.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","module"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"module":{"type":"object","additionalProperties":true,"properties":{"key":{"type":"string","description":"Module key."},"slug":{"type":"string","description":"Optional module slug."},"name":{"type":"string","description":"Human-readable module name."},"icon":{"type":"string","description":"Optional icon token."},"centralObject":{"type":"string","description":"Optional central object name."},"objects":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional object references array."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_module","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_object","title":"Upsert Object","description":"Create or update one object schema inside an app, with optional module assignment.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","object"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"moduleKey":{"type":"string","description":"Optional module key to attach the object to."},"object":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Object technical name."},"key":{"type":"string","description":"Optional object key alias."},"label":{"type":"string","description":"Human-readable object label."},"description":{"type":"string","description":"Optional object description."},"semantic":{"type":"string","description":"Object semantic classification."},"topology":{"type":"string","description":"Object topology classification."},"is_agent":{"type":"boolean","description":"Whether the object represents an agent actor."},"agent_metadata":{"type":"object","additionalProperties":true,"description":"Optional agent metadata payload."},"properties":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional full property list."},"relations":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional full relation list."},"actions":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional full action list."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_object","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_property","title":"Upsert Property","description":"Create or update one property inside an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","property"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"property":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Property technical name."},"label":{"type":"string","description":"Human-readable property label."},"type":{"type":"string","description":"Property data type."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_property","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_relation","title":"Upsert Relation","description":"Create or update one relation inside an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","relation"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Source object name."},"relation":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Relation technical name."},"target":{"type":"string","description":"Target object name."},"type":{"type":"string","description":"Relation type."},"foreign_key":{"type":"string","description":"Foreign key field name."},"storage":{"type":"string","description":"Relation storage strategy."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_relation","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_view","title":"Upsert View","description":"Create or update one visualization (table/kanban/list/calendar/map/gallery) on an object. Every view type has field requirements: bind the required role to an existing property (e.g. kanban.group_by → a status enum field; calendar.start → a date field; map.location → a location field). Ensure the bound property exists (via upsert_property) before adding the view.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","view"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name the view belongs to."},"view":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string","description":"Stable view id (auto-generated from type+label if omitted)."},"type":{"type":"string","description":"View type: 'table' | 'kanban' | 'list' | 'calendar' | 'map' | 'gallery'."},"label":{"type":"string","description":"Human-readable view label."},"icon":{"type":"string","description":"Optional icon token."},"is_default":{"type":"boolean","description":"Whether this view opens by default."},"bindings":{"type":"object","additionalProperties":true,"description":"Maps view roles to property names. Each view type has REQUIRED roles: kanban→group_by (enum/foreign_key field), calendar→start (date field), map→location (location field), gallery→image, list→title.","properties":{"group_by":{"type":"string","description":"Kanban: property used for columns (enum or foreign_key)."},"title":{"type":"string","description":"Primary label property."},"subtitle":{"type":"string","description":"Secondary label property."},"start":{"type":"string","description":"Calendar: start date/datetime property."},"end":{"type":"string","description":"Calendar: end date/datetime property."},"location":{"type":"string","description":"Map: location property."},"color":{"type":"string","description":"Accent color property."},"image":{"type":"string","description":"Gallery/list: image url property."},"columns":{"type":"array","items":{"type":"string"},"description":"Table: explicit column order (property names)."}}},"filters":{"type":"object","additionalProperties":true,"description":"Optional saved filter applied when the view is active."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_view","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_action","title":"Upsert Action","description":"Create or update one action inside an object schema.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","objectName","action"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"objectName":{"type":"string","description":"Technical object name."},"action":{"type":"object","additionalProperties":true,"properties":{"name":{"type":"string","description":"Action technical name."},"label":{"type":"string","description":"Human-readable action label."},"method":{"type":"string","description":"HTTP verb used by the action."},"endpoint":{"type":"string","description":"Action endpoint path."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_action","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"upsert_page","title":"Upsert Page","description":"Create or update one app page.","readOnly":false,"api":{"method":"PATCH","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["appId","page"],"additionalProperties":false,"properties":{"appId":{"type":"integer","description":"Numeric app id."},"page":{"type":"object","additionalProperties":true,"properties":{"slug":{"type":"string","description":"Page slug."},"name":{"type":"string","description":"Page name."},"label":{"type":"string","description":"Page label."},"type":{"type":"string","description":"Page type, usually cms."},"path":{"type":"string","description":"Optional page path."},"icon":{"type":"string","description":"Optional icon token."},"sections":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Optional CMS sections array."}}}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"upsert_page","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_roles","title":"List Roles","description":"List role records scoped to an app.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/role"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the underlying Nuxt route."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"list_roles","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"create_role","title":"Create Role","description":"Create a role row scoped to an app. Requires platform/admin access or explicit role-create permission.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/role"},"inputSchema":{"type":"object","required":["app","name"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"name":{"type":"string","description":"Role name."},"label":{"type":"string","description":"Human-readable role label."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"create_role","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"update_role","title":"Update Role","description":"Update an existing role row.","readOnly":false,"api":{"method":"PATCH","path":"/api/v1/data/{app}/role/{id}"},"inputSchema":{"type":"object","required":["app","id","data"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"id":{"type":"integer","description":"Role record id."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"update_role","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_permissions","title":"List Permissions","description":"List permission rows scoped to an app.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/permission"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the underlying Nuxt route."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"list_permissions","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"create_permission","title":"Create Permission","description":"Create a permission row for an app, role, object, and action.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/permission"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"role":{"type":"string","description":"Role name."},"object":{"type":"string","description":"Target object name."},"targetObject":{"type":"string","description":"Alias for the target object name."},"action":{"type":"string","description":"Permission action."},"name":{"type":"string","description":"Optional explicit permission name."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"create_permission","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_memberships","title":"List Memberships","description":"List app membership rows from the user_app object.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/user_app"},"inputSchema":{"type":"object","required":["app"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the underlying Nuxt route."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"list_memberships","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"assign_membership","title":"Assign Membership","description":"Create one user_app membership row for a user and role.","readOnly":false,"api":{"method":"POST","path":"/api/v1/data/{app}/user_app"},"inputSchema":{"type":"object","required":["app","userId","role"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"userId":{"type":"integer","description":"User id."},"role":{"type":"string","description":"Role name."},"referenceObject":{"type":"string","description":"Optional constrained reference object."},"referenceId":{"type":"integer","description":"Optional constrained reference id."},"data":{"type":"object","additionalProperties":true}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"assign_membership","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"list_apps","title":"List Apps","description":"List all apps visible through the Nuxt app catalog.","readOnly":true,"api":{"method":"GET","path":"/api/app"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"list_apps","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"get_app","title":"Get App","description":"Load one app by numeric id.","readOnly":true,"api":{"method":"GET","path":"/api/app/{id}"},"inputSchema":{"type":"object","required":["id"],"additionalProperties":false,"properties":{"id":{"type":"integer","description":"Numeric app id."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"get_app","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_navigate","title":"Navigate UI","description":"Trigger a navigation to a specific path in the application (e.g. object list, dashboard, page).","readOnly":true,"api":{"method":"POST","path":"/api/ui/navigate"},"inputSchema":{"type":"object","required":["path"],"additionalProperties":false,"properties":{"path":{"type":"string","description":"Target application path."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"ui_navigate","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_set_wizard_step","title":"Set Wizard Step","description":"Set the active step index for wizard-style forms.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/set-step"},"inputSchema":{"type":"object","required":["step"],"additionalProperties":false,"properties":{"step":{"type":"integer","description":"Zero-based step index to activate."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"ui_set_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_next_wizard_step","title":"Next Wizard Step","description":"Advance the active wizard form to the next step.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/next-step"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"fastapp-wizard-agent","tool":"ui_next_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}}]},{"id":"cs-buddy","name":"CS Buddy","description":"Customer Success Specialist","status":"active","transport":"http","tags":["dynamic","app"],"instructions":"Você é um especialista em Customer Success. Ajude o usuário a gerenciar seus clientes e leads com empatia e precisão.","tools":[{"name":"list_records","title":"List Records","description":"List records from a generic app object using the existing /api/v1/data route.","readOnly":true,"api":{"method":"GET","path":"/api/v1/data/{app}/{object}"},"inputSchema":{"type":"object","required":["app","object"],"additionalProperties":false,"properties":{"app":{"type":"string","description":"App route segment, usually slug or id string."},"object":{"type":"string","description":"Technical object name."},"query":{"type":"object","additionalProperties":true,"description":"Optional querystring payload forwarded to the Nuxt data API."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"list_records","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_update_fields","title":"Update UI Fields","description":"Update the fields of the currently active form in the user interface. Use this to fill forms, change addresses, or update record data live.","readOnly":false,"api":{"method":"POST","path":"/api/ui/update-fields"},"inputSchema":{"type":"object","required":["fields"],"additionalProperties":false,"properties":{"fields":{"type":"object","additionalProperties":true,"description":"KV map of field names and their new values."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"ui_update_fields","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_navigate","title":"Navigate UI","description":"Trigger a navigation to a specific path in the application (e.g. object list, dashboard, page).","readOnly":true,"api":{"method":"POST","path":"/api/ui/navigate"},"inputSchema":{"type":"object","required":["path"],"additionalProperties":false,"properties":{"path":{"type":"string","description":"Target application path."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"ui_navigate","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_apply_filters","title":"Apply UI Filters","description":"Apply generic filters, search, and sorting to the active object list/table UI by updating the frontend query state. Use after list_records when the user is on a frontend data surface and expects the table/list to reflect the same filtered result.","readOnly":true,"api":{"method":"POST","path":"/api/ui/apply-filters"},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"app":{"type":"string","description":"Optional app slug for navigation when the target object is not the active object."},"module":{"type":"string","description":"Optional module slug for navigation."},"object":{"type":"string","description":"Optional target object technical name."},"path":{"type":"string","description":"Optional target path. If omitted, the active route is used."},"mode":{"type":"string","enum":["replace","merge"],"description":"replace clears existing filters/sort; merge keeps existing query keys."},"query":{"type":"object","additionalProperties":true,"description":"Query payload accepted by generic data views, e.g. filters[field][operator], field[operator], field=value, q, or $sort[field]."},"filters":{"type":"array","description":"Structured filters to apply.","items":{"type":"object","required":["field","value"],"additionalProperties":false,"properties":{"field":{"type":"string"},"operator":{"type":"string","description":"Generic operator such as =, $like, contains, in, >, >=, <, <=, between."},"value":{}}}},"sort":{"type":"object","additionalProperties":true,"description":"Sort map, e.g. { sale_at_max: \"desc\" } or { total: -1 }."},"search":{"type":"string","description":"Global search text."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"ui_apply_filters","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_set_wizard_step","title":"Set Wizard Step","description":"Set the active step index for wizard-style forms.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/set-step"},"inputSchema":{"type":"object","required":["step"],"additionalProperties":false,"properties":{"step":{"type":"integer","description":"Zero-based step index to activate."}}},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"ui_set_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_next_wizard_step","title":"Next Wizard Step","description":"Advance the active wizard form to the next step.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/next-step"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"ui_next_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}},{"name":"ui_prev_wizard_step","title":"Previous Wizard Step","description":"Move the active wizard form back to the previous step.","readOnly":false,"api":{"method":"POST","path":"/api/ui/wizard/prev-step"},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"examples":[],"invoke":{"method":"POST","url":"https://creator.fastapp.cloud/api/agent/execute","body":{"agentId":"cs-buddy","tool":"ui_prev_wizard_step","input":{},"context":{"app_slug":""},"dryRun":false}}}]}]}