{"ok":true,"site":{"host":"synaptable-preview.elbertluta.workers.dev","url":"https://synaptable-preview.elbertluta.workers.dev/","type":"live","desc":"Capture connected ideas on a local-first canvas, organize them into editable tables, and export the result without uploading project content.","tools":[{"name":"get_workspace_summary","kind":"answer","impl":"imperative","description":"Read the active SynapTable project identity, revision, layer counts, and visible selection. Use this first and again after stale-context errors. It does not return note bodies or table cell values.","title":"Get workspace summary","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"find_layers","kind":"answer","impl":"imperative","description":"Find visible layers in the active project by a short text query and optional layer kinds. Returns stable IDs, kinds, truncated labels, and table dimensions only; it does not return note bodies or table cells.","title":"Find canvas layers","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["projectId","expectedRevision"],"properties":{"projectId":{"type":"string","minLength":1,"maxLength":160,"description":"Active project ID returned by get_workspace_summary."},"expectedRevision":{"type":"integer","minimum":0,"description":"Workspace revision returned by the latest successful tool call."},"query":{"type":"string","maxLength":200,"default":"","description":"Case-insensitive text to find. Empty text lists visible layers."},"kinds":{"type":"array","maxItems":4,"uniqueItems":true,"items":{"type":"string","enum":["concept","raster","vector","table"]},"description":"Optional layer kinds to include."},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10,"description":"Maximum matches to return; output budgeting may reduce this further."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_concept","kind":"act","impl":"imperative","description":"Create one concept layer in the active project. The operation is atomic, persists before success, creates one undo step, and uses the visible canvas center when position is omitted.","title":"Create a concept","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["projectId","expectedRevision"],"properties":{"projectId":{"type":"string","minLength":1,"maxLength":160,"description":"Active project ID returned by get_workspace_summary."},"expectedRevision":{"type":"integer","minimum":0,"description":"Workspace revision returned by the latest successful tool call."},"title":{"type":"string","maxLength":500,"default":"New concept","description":"Concept title; blank text becomes Untitled concept."},"body":{"type":"string","maxLength":20000,"default":"","description":"Optional plain-text concept body."},"eyebrow":{"type":"string","maxLength":500,"default":"Concept","description":"Short label displayed above the concept title."},"position":{"type":"object","additionalProperties":false,"required":["x","y"],"properties":{"x":{"type":"number","minimum":-1000000,"maximum":1000000,"description":"Horizontal canvas coordinate for the new layer center."},"y":{"type":"number","minimum":-1000000,"maximum":1000000,"description":"Vertical canvas coordinate for the new layer center."}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_table","kind":"act","impl":"imperative","description":"Create one bounded table in the active project with optional initial plain-text values. The operation is atomic, persists before success, and creates one undo step.","title":"Create a table","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["projectId","expectedRevision"],"properties":{"projectId":{"type":"string","minLength":1,"maxLength":160,"description":"Active project ID returned by get_workspace_summary."},"expectedRevision":{"type":"integer","minimum":0,"description":"Workspace revision returned by the latest successful tool call."},"name":{"type":"string","maxLength":500,"description":"Optional table name; blank text uses the next generated table name."},"rows":{"type":"integer","minimum":1,"maximum":100,"default":3,"description":"Total rows including the optional header row."},"columns":{"type":"integer","minimum":1,"maximum":30,"default":3,"description":"Total table columns. Rows multiplied by columns cannot exceed 2,000."},"headerRow":{"type":"boolean","default":true,"description":"Whether the first row is styled and treated as a header."},"values":{"type":"array","maxItems":100,"items":{"type":"array","maxItems":30,"items":{"type":"string","maxLength":2000}},"description":"Optional row-major initial cell text within the requested dimensions."},"position":{"type":"object","additionalProperties":false,"required":["x","y"],"properties":{"x":{"type":"number","minimum":-1000000,"maximum":1000000,"description":"Horizontal canvas coordinate for the new layer center."},"y":{"type":"number","minimum":-1000000,"maximum":1000000,"description":"Vertical canvas coordinate for the new layer center."}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"organize_layers_into_table","kind":"act","impl":"imperative","description":"Create a table whose rows summarize explicit visible, unlocked layers in canvas reading order. Original layers remain unchanged. The operation creates one undo step.","title":"Organize layers into a table","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["projectId","expectedRevision","layerIds"],"properties":{"projectId":{"type":"string","minLength":1,"maxLength":160,"description":"Active project ID returned by get_workspace_summary."},"expectedRevision":{"type":"integer","minimum":0,"description":"Workspace revision returned by the latest successful tool call."},"layerIds":{"type":"array","minItems":1,"maxItems":99,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":160},"description":"Explicit visible, unlocked layer IDs from the active project."},"name":{"type":"string","maxLength":500,"default":"Organized ideas","description":"Name for the new table."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"create_canvas_nodes_from_rows","kind":"act","impl":"imperative","description":"Create concept layers from zero-based row and column indexes of one visible, unlocked table. Use find_layers to obtain current table dimensions. The source table remains unchanged. One call supports at most 25 rows and creates one undo step.","title":"Create canvas nodes from rows","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","additionalProperties":false,"required":["projectId","expectedRevision","tableId","rowIndexes","columnIndexes"],"properties":{"projectId":{"type":"string","minLength":1,"maxLength":160,"description":"Active project ID returned by get_workspace_summary."},"expectedRevision":{"type":"integer","minimum":0,"description":"Workspace revision returned by the latest successful tool call."},"tableId":{"type":"string","minLength":1,"maxLength":160,"description":"Visible, unlocked source table ID."},"rowIndexes":{"type":"array","minItems":1,"maxItems":25,"uniqueItems":true,"items":{"type":"integer","minimum":0,"maximum":99},"description":"Zero-based physical row indexes. When headerRow is true, index 0 is the header and cannot be converted."},"columnIndexes":{"type":"array","minItems":1,"maxItems":30,"uniqueItems":true,"items":{"type":"integer","minimum":0,"maximum":29},"description":"Zero-based column indexes whose cell text forms each concept."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Productivity & Business","favicon":"/favicons/synaptable-preview.elbertluta.workers.dev.svg","apiSurface":"spec","toolCount":6}}