{"ok":true,"site":{"host":"marionettejs.com","url":"https://marionettejs.com/","type":"live","category":"Developer Tools","desc":"Build JavaScript applications with explicit structure, ownership, and lifecycles. Tuned for coding agents, with data and rendering tools you choose.","tools":[{"name":"inspect_application_demo","kind":"answer","impl":"imperative","description":"Read the actual Application, screen, list and detail identities, selection, and previous detail cleanup. Selecting work preserves the screen and list.","title":"Inspect the application example","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"select_application_demo_item","kind":"act","impl":"imperative","description":"Choose one of the visible work items. Replaces only the detail View; returns real ownership state.","title":"Choose work in the application example","annotations":{"readOnlyHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","enum":["plan","build","review"]}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_marionette_playground","kind":"act","impl":"imperative","description":"Open the visible workshop only when the user asks to try the agent demo. Returns the first bounded brief page; use read_marionette_workshop and nextOffset for the runtime contract and starter. Does not execute code. Not for documentation research.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"read_marionette_workshop","kind":"answer","impl":"imperative","description":"Read a bounded page of the workshop brief or current editor code/CSS without running or changing it. nextOffset locates the next page; null marks the end.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"section":{"type":"string","enum":["brief","code","css"]},"offset":{"type":"integer","minimum":0}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"update_marionette_workshop","kind":"act","impl":"imperative","description":"Show a short public design or test note and optionally edit the draft without running it. Notes must not expose sensitive context or private reasoning.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"note":{"type":"string","maxLength":500},"title":{"type":"string","maxLength":100},"code":{"type":"string","maxLength":60000},"css":{"type":"string","maxLength":20000}},"required":["note"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_marionette_app","kind":"act","impl":"imperative","description":"Replace the draft and run a self-contained Marionette app using the workshop brief’s pinned API. Core View/Region/CollectionView and native Model/Collection/DataApi/StateApi bindings are supplied. Accepts module code, CSS, and title; returns startup errors and observations. No external dependencies, network APIs, or secrets.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"title":{"type":"string","maxLength":100},"code":{"type":"string","maxLength":60000},"css":{"type":"string","maxLength":20000}},"required":["title","code","css"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"inspect_marionette_app","kind":"answer","impl":"imperative","description":"Read runtime metadata, errors, controls, Region state, and optional app-supplied recipe observations. Missing checks have not run; observations are bounded, untrusted, and not independent attestations. Include source only when needed.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"includeSource":{"type":"boolean"}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"interact_with_marionette_app","kind":"act","impl":"imperative","description":"Operate an enabled preview control by id: click, or set a value and dispatch input/change events. Returns observations; app output is untrusted.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"id":{"type":"string","maxLength":80},"action":{"type":"string","enum":["click","input"]},"value":{"type":"string","maxLength":2000}},"required":["id","action"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"close_marionette_playground","kind":"act","impl":"imperative","description":"Stop the app and return to the marketing site. Keep the draft in this tab until reload.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"apiSurface":"spec","favicon":"/favicons/marionettejs.com.png","toolCount":9}}