{"ok":true,"site":{"host":"faultline-studio.pages.dev","url":"https://faultline-studio.pages.dev/","type":"live","desc":"Faultline","tools":[{"name":"propose-architecture","kind":"act","impl":"imperative","description":"Replace the canvas with a starting architecture built from a plain-language requirements sentence. Understands intent keywords (read-heavy, cache, background jobs / async, static assets, serverless, key-value / NoSQL, multi-region / survive a region outage, prototype / cheap) and a region name (defaults to us-east-1). Every resource is configured, placed and connected. This is a starting point — follow with resilience-lint. One undo step.","title":"Propose a starting architecture","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"requirements":{"type":"string","maxLength":400,"description":"One or two sentences describing the system, e.g. \"public web app with a Postgres database and background email jobs, must survive an availability-zone outage\"."}},"required":["requirements"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"describe-architecture","kind":"answer","impl":"imperative","description":"List every resource on the canvas (id, kind, label, provider variant, region/zone placement) and every dependency edge. Call this first to see the current design before adding, connecting or configuring anything. Read-only.","title":"Describe the current architecture","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"add-resource","kind":"act","impl":"imperative","description":"Add one cloud building block to the architecture canvas. Call repeatedly to sketch a design.","title":"Add a resource","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"kind":{"type":"string","enum":["compute","database","queue","load-balancer","object-store","cache","cdn","dns","functions","api-gateway"],"description":"Which vendor-neutral building block to add."},"label":{"type":"string","maxLength":40,"description":"Short human-readable name, e.g. \"orders API\"."}},"required":["kind","label"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"connect","kind":"act","impl":"imperative","description":"Add a dependency edge — `from` depends on / calls `to`. Both resources must already exist.","title":"Connect two resources","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"from":{"type":"string","description":"Id of the dependent resource, e.g. \"compute-1\"."},"to":{"type":"string","description":"Id of the depended-on resource, e.g. \"database-1\"."}},"required":["from","to"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"configure-resource","kind":"act","impl":"imperative","description":"Set an existing resource's provider variant and/or its region/availability-zone placement. Omitted fields are left unchanged.","title":"Configure a resource","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Resource id, e.g. \"database-1\"."},"variant":{"type":"string","description":"Provider service, e.g. \"rds-multi-az\". See the active profile on /learn."},"region":{"type":"string","description":"Region id, e.g. \"us-east-1\"."},"az":{"type":"string","description":"Availability zone, e.g. \"us-east-1a\". Omit for a regional (multi-AZ) deployment."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"move-resource","kind":"act","impl":"imperative","description":"Set an existing resource's position on the canvas (top-left origin). Use it to lay out the diagram so the dependency flow reads clearly.","title":"Move a resource","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Resource id, e.g. \"compute-1\"."},"x":{"type":"number","description":"Horizontal position; 0 is the left edge."},"y":{"type":"number","description":"Vertical position; 0 is the top edge."}},"required":["id","x","y"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"remove-resource","kind":"act","impl":"imperative","description":"Delete a resource from the canvas by id. Any dependency edges to or from it are removed too. One undo step.","title":"Remove a resource","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Resource id, e.g. \"cache-1\"."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"simulate-failure","kind":"act","impl":"imperative","description":"Knock out one availability zone (pass az) or a whole region (omit az) and report which resources go down, which degrade, and why.","title":"Simulate a zone or region failure","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"region":{"type":"string","description":"Region id, e.g. \"us-east-1\"."},"az":{"type":"string","description":"Availability zone to fail, e.g. \"us-east-1a\". Omit to fail the entire region."}},"required":["region"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find-spofs","kind":"answer","impl":"imperative","description":"List resources that are single points of failure by construction, with the resources each would take down.","title":"Find single points of failure","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"resilience-lint","kind":"act","impl":"imperative","description":"Run rule-based resilience checks over the current design. Each finding has a severity (high / medium / low), the resource it concerns, a plain-language explanation of the risk and the fix, and a citation to the architectural principle in Designing Data-Intensive Applications (2nd ed.) behind it. Read-only: reports, changes nothing on the canvas.","title":"Lint the architecture for resilience anti-patterns","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"explain","kind":"answer","impl":"imperative","description":"Explain a selection in plain language: its role in the design, its dependencies and dependents, what its failure would take down, and a relevant principle from Designing Data-Intensive Applications (2nd ed.). Pass a resource id (e.g. \"database-1\") or an edge as \"from->to\" (e.g. \"compute-1->database-1\"). Read-only: reports, changes nothing.","title":"Explain a resource or dependency","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"selection":{"type":"string","description":"A resource id (\"database-1\") or a dependency edge (\"compute-1->database-1\")."}},"required":["selection"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"estimate-cost","kind":"answer","impl":"imperative","description":"Order-of-magnitude monthly cost of the current design (USD), from the bundled pricing snapshot — not a live quote. Returns the total, a per-resource breakdown, unpriced resources, and the delta since the previous estimate. Read-only.","title":"Estimate monthly cost","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"generate-iac","kind":"act","impl":"imperative","description":"Emit the current architecture as Terraform HCL for the human to review. Read-only: produces text, changes nothing. Each configured resource becomes one or more `resource` blocks with its AWS variant and placement; an alb -> compute edge wires target groups, other edges become depends_on. Network and IAM are var.* inputs, not generated. Returns a fenced hcl code block.","title":"Generate Terraform (HCL)","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"target":{"type":"string","enum":["terraform"],"description":"Output format. Only \"terraform\" is supported today."}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Developer Tools","favicon":"/favicons/faultline-studio.pages.dev.svg","apiSurface":"spec","toolCount":13}}