{"serverInfo":{"name":"kadal-store","title":"Kadal Store","version":"1.0.0","websiteUrl":"https://store.kadal.cc/agents/"},"authentication":{"required":true,"schemes":["oauth2"]},"tools":[{"name":"whoami","title":"Who am I connected as","description":"Report who this connection acts for (name and email), the permissions it was granted (`store:read`, `store:write`, `store:ops`) and whether the account is the store's operator. Call it first when you need to know whether report_problem will work (it needs `store:write`), or to tell the person which account their agent is using. Read-only, no arguments.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Who am I connected as"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":"string"}},"required":["id","name","email"],"additionalProperties":false},"scopes":{"type":"array","items":{"type":"string"}},"operator":{"type":"boolean","description":"The account is the store's operator (ops tools also need `store:ops`)."}},"required":["user","scopes","operator"],"additionalProperties":false}},{"name":"list_shelves","title":"List the shelves","description":"List the shop's shelves (categories) with how many products are live on each and the licence model each sells under: `standard` (one licence that covers paid work) or `tiered` (personal and commercial). Use it to learn the shelf slugs that search_products and recommend filter by. Read-only, no arguments.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"List the shelves"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"shelves":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"blurb":{"type":["string","null"]},"count":{"type":"number"},"licenceModel":{"type":"string","enum":["standard","tiered"]}},"required":["slug","name","blurb","count","licenceModel"],"additionalProperties":false}}},"required":["shelves"],"additionalProperties":false}},{"name":"search_products","title":"Search the shop","description":"Search live products by words and filters, the way the shop's own browse page does. Use it when the person names a thing or a filter (\"A5 planners\", \"seamless botanical patterns under $10\", \"GLB models\"); use recommend instead to match their current work, and get_product for one product's files and licences. Words are ANDed substrings of the name, description and tags. Example: { query: \"2027 planner\", shelf: \"printables\", format: \"pdf\", maxCents: 1500 }. Pages with `cursor` (pass back nextCursor). Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"query":{"description":"Words to match, e.g. \"weekly planner a5\".","type":"string","maxLength":120},"shelf":{"description":"A shelf slug from list_shelves.","type":"string","maxLength":40},"style":{"description":"A style tag, e.g. minimal, boho, japanese, retro.","type":"string","maxLength":40},"topic":{"description":"A topic tag, e.g. wedding, budget, fitness.","type":"string","maxLength":40},"format":{"description":"A file format tag: pdf, svg, png, wav, glb, lut…","type":"string","maxLength":40},"kind":{"description":"asset: single products; pack: bundles.","type":"string","enum":["asset","pack"]},"maxCents":{"description":"Only items whose lowest price is at most this, in US cents.","type":"integer","minimum":0,"maximum":9007199254740991},"sort":{"default":"relevance","type":"string","enum":["relevance","newest","price"]},"limit":{"default":20,"type":"integer","minimum":1,"maximum":50},"cursor":{"description":"nextCursor from the previous page.","type":"string","maxLength":20}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Search the shop"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]},"total":{"type":"number","description":"How many products match in all."}},"required":["items","nextCursor","total"],"additionalProperties":false}},{"name":"get_product","title":"Get a product","description":"Everything about one product: description, every file in the download (name, size, the licence it needs, its edition), the editions it comes in (year, week start, language, paper size), what a pack holds, the packs it is also sold in, each licence's terms in plain words, and its public update log. Use it before recommending something seriously, to answer \"what's in it\" or \"can I use it for client work\", or to pick an edition for get_download_links. Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"slug":{"type":"string","minLength":1,"maxLength":80,"description":"The product's slug, e.g. from search_products."}},"required":["slug"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Get a product"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"product":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"},"description":{"type":["string","null"]},"retired":{"type":"boolean","description":"No longer sold; everyone who bought it keeps it."},"files":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"bytes":{"type":"number"},"minTier":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"A file only this licence or a stronger one opens."},"edition":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]}},"required":["name","bytes","minTier","edition"],"additionalProperties":false}},"editions":{"anyOf":[{"type":"object","properties":{"summary":{"type":"string"},"axes":{"type":"array","items":{"type":"object","properties":{"axis":{"type":"string","enum":["year","week","lang","size"]},"label":{"type":"string"},"values":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"label":{"type":"string"}},"required":["value","label"],"additionalProperties":false}}},"required":["axis","label","values"],"additionalProperties":false}}},"required":["summary","axes"],"additionalProperties":false},{"type":"null"}],"description":"Every edition is included in one purchase; null when there is only one."},"recolor":{"anyOf":[{"type":"object","properties":{"base":{"type":"string"}},"required":["base"],"additionalProperties":false},{"type":"null"}],"description":"Recolourable: its SVGs come in any accent colour (get_download_links' color); base is the colour they are drawn in."},"contents":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned"],"additionalProperties":false},"description":"Packs: what it holds."},"inPacks":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned"],"additionalProperties":false},"description":"Packs this is also sold in."},"licence":{"type":"object","properties":{"model":{"type":"string","enum":["standard","tiered"]},"tiers":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"label":{"type":"string"},"blurb":{"type":"string"},"yes":{"type":"array","items":{"type":"string"}},"no":{"type":"array","items":{"type":"string"}}},"required":["tier","label","blurb","yes","no"],"additionalProperties":false}}},"required":["model","tiers"],"additionalProperties":false},"updates":{"type":"array","items":{"type":"object","properties":{"summary":{"type":"string"},"at":{"type":"string"},"reports":{"type":"number"}},"required":["summary","at","reports"],"additionalProperties":false}}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned","description","retired","files","editions","recolor","contents","inPacks","licence","updates"],"additionalProperties":false}},"required":["product"],"additionalProperties":false}},{"name":"recommend","title":"Recommend for my work","description":"Find products that fit the work in front of you. Pass a description of it in `context`: what the person is making, the tools and formats they use, the look, sizes, dates, budget — a few sentences, or a project's README summary (never secrets). Every item comes back with a one-line `why` and a `score`; `packs` suggests bundles that hold several picks or that the person already owns part of (`ownedOf`). Things they own are left out unless includeOwned is true. The ranking is simple word matching: you judge the fit, and get_product checks the details. Examples: { context: \"Notion-style weekly planning, A5 ring binder, minimal black and white, Monday start, for 2027\" }; { context: \"cosy farming game in Godot, low-poly, needs ambient sound\", formats: [\"glb\", \"wav\"], maxCents: 2000 }. Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"context":{"type":"string","minLength":1,"maxLength":6000,"description":"The work, in words: project, tools, formats, look, sizes, dates."},"shelves":{"description":"Only these shelf slugs.","maxItems":20,"type":"array","items":{"type":"string","maxLength":40}},"formats":{"description":"Only products with one of these formats.","maxItems":20,"type":"array","items":{"type":"string","maxLength":20}},"maxCents":{"description":"Only items whose lowest price is at most this.","type":"integer","minimum":0,"maximum":9007199254740991},"includeOwned":{"default":false,"type":"boolean"},"limit":{"default":8,"type":"integer","minimum":1,"maximum":20}},"required":["context"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Recommend for my work"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"},"why":{"type":"string"},"score":{"type":"number"}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned","why","score"],"additionalProperties":false}},"packs":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"},"why":{"type":"string"},"ownedOf":{"type":"number"}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned","why","ownedOf"],"additionalProperties":false}}},"required":["items","packs"],"additionalProperties":false}},{"name":"list_library","title":"List my library","description":"Everything the person owns, with the licence they hold and every file their licence opens (id, name, size, sha256, edition). Use it to answer \"what do I have\", before get_download_links, or to sync files into a folder: compare sha256 with what is on disk and download only what differs. `lockedFiles` counts files that need a stronger licence; `lastUpdate` is the newest correction published for the product. Read-only, no arguments.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"List my library"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"product":{"type":"object","properties":{"slug":{"type":"string","description":"The product's id in every other tool and in its URL."},"name":{"type":"string"},"kind":{"type":"string","enum":["asset","pack"],"description":"pack: a bundle of other products."},"shelf":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"}},"required":["slug","name"],"additionalProperties":false},"blurb":{"type":["string","null"]},"url":{"type":"string","description":"The product page."},"imageUrl":{"description":"Its first preview picture.","type":["string","null"]},"prices":{"type":"array","items":{"type":"object","properties":{"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"}},"required":["tier","cents"],"additionalProperties":false},"description":"Every licence on sale, in US cents."},"fromCents":{"description":"The lowest price; null when not on sale yet.","type":["number","null"]},"tags":{"type":"object","properties":{"style":{"type":"array","items":{"type":"string"}},"topic":{"type":"array","items":{"type":"string"}},"format":{"type":"array","items":{"type":"string"}}},"required":["style","topic","format"],"additionalProperties":false},"owned":{"anyOf":[{"type":"string","enum":["standard","personal","commercial"]},{"type":"null"}],"description":"The strongest licence the person already holds, if any."},"packOf":{"description":"Packs: how many products it holds.","type":"number"}},"required":["slug","name","kind","shelf","blurb","url","imageUrl","prices","fromCents","tags","owned"],"additionalProperties":false},"tier":{"type":"string","enum":["standard","personal","commercial"]},"files":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":"string"},"edition":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},{"type":"null"}]}},"required":["id","name","bytes","sha256","edition"],"additionalProperties":false}},"lockedFiles":{"type":"number"},"zipAvailable":{"type":"boolean"},"recolor":{"anyOf":[{"type":"object","properties":{"base":{"type":"string"},"color":{"type":"string"}},"required":["base","color"],"additionalProperties":false},{"type":"null"}],"description":"Recolourable: the drawn base, and the colour the person last chose."},"updatedAt":{"description":"When its files last changed.","type":["string","null"]},"lastUpdate":{"anyOf":[{"type":"object","properties":{"summary":{"type":"string"},"at":{"type":"string"}},"required":["summary","at"],"additionalProperties":false},{"type":"null"}]}},"required":["product","tier","files","lockedFiles","zipAvailable","recolor","updatedAt","lastUpdate"],"additionalProperties":false}}},"required":["items"],"additionalProperties":false}},{"name":"get_download_links","title":"Get download links","description":"Signed download links for files the person owns, one product at a time. Each link works for 10 minutes without a cookie, so fetch right away: `curl -fL -o \"<name>\" \"<url>\"`, then check the sha256. Narrow with `fileIds` (from list_library) or `edition` (e.g. { year: 2027, size: \"a5\", lang: \"en\" }; get_product lists the values); `zip: true` adds one link to a zip of the whole product (or that edition), which ignores fileIds. `color` (hex, recolourable products only) puts the SVGs in that accent colour; leave it out for the files as drawn. Packs keep their files on their items: ask per item. Read-only (each use is logged and counts against a per-minute download budget).","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"slug":{"type":"string","minLength":1,"maxLength":80},"fileIds":{"maxItems":200,"type":"array","items":{"type":"string","maxLength":64}},"edition":{"type":"object","properties":{"year":{"anyOf":[{"type":"string","maxLength":10},{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}]},"week":{"description":"sun or mon","type":"string","maxLength":10},"lang":{"description":"en, ja or en-ja","type":"string","maxLength":10},"size":{"description":"a4, a5, letter, ipad…","type":"string","maxLength":24}}},"zip":{"default":false,"type":"boolean"},"color":{"description":"Recolourable products: the accent colour, e.g. #2f9e44.","type":"string","maxLength":7}},"required":["slug"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Get download links"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"links":{"type":"array","items":{"type":"object","properties":{"fileId":{"type":"string"},"name":{"type":"string"},"bytes":{"type":"number"},"sha256":{"type":"string"},"url":{"type":"string"},"expiresAt":{"type":"string"}},"required":["fileId","name","bytes","sha256","url","expiresAt"],"additionalProperties":false}},"zip":{"anyOf":[{"type":"object","properties":{"url":{"type":"string"},"expiresAt":{"type":"string"}},"required":["url","expiresAt"],"additionalProperties":false},{"type":"null"}]}},"required":["links","zip"],"additionalProperties":false}},{"name":"create_buy_link","title":"Create a buy link","description":"Build a link to a review page where the person checks a list of products, changes licences, and pays. This tool does not buy anything and nothing is charged: give the person the URL and let them decide. Name a `tier` for tiered shelves when the use is known (commercial for client work, products for sale or monetised content; personal otherwise); leave it out to offer the cheapest. Items already owned are flagged and not charged. Example: { items: [{ slug: \"<a planner's slug>\" }, { slug: \"<a pattern pack's slug>\", tier: \"commercial\" }] }, with slugs from search_products or recommend. Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"items":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":80},"tier":{"type":"string","enum":["standard","personal","commercial"]}},"required":["slug"]}},"ref":{"description":"Leave out; the link is marked as from an agent.","type":"string","maxLength":40}},"required":["items"]},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Create a buy link"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"url":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"tier":{"type":"string","enum":["standard","personal","commercial"]},"cents":{"type":"number"},"owned":{"type":"boolean"}},"required":["slug","name","tier","cents","owned"],"additionalProperties":false}},"totalCents":{"type":"number"},"note":{"type":"string"}},"required":["url","items","totalCents","note"],"additionalProperties":false}},{"name":"report_problem","title":"Report a problem","description":"Tell Kadal about a mistake in a product (a typo, a wrong date, a broken or missing file), ask a question, or suggest an idea, for the person. Name the file with `fileName` (from list_library) when it is about one of their files, plus `page` for a PDF page (1-based) or `timeSeconds` for audio and video. The note is private to the person and Kadal; replies come by email and show in list_my_notes. Ask the person before sending, and write `body` in their words. Needs `store:write`. Not idempotent: each call files a new note.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"slug":{"type":"string","minLength":1,"maxLength":80},"fileName":{"type":"string","maxLength":200},"page":{"type":"integer","minimum":1,"maximum":10000},"timeSeconds":{"type":"number","minimum":0,"maximum":86400},"kind":{"type":"string","enum":["mistake","question","idea"]},"body":{"type":"string","minLength":1,"maxLength":4000}},"required":["slug","kind","body"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"title":"Report a problem"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["open","accepted","declined","duplicate","fixed"]},"url":{"type":"string"}},"required":["id","status","url"],"additionalProperties":false}},"required":["note"],"additionalProperties":false}},{"name":"list_my_notes","title":"List my notes","description":"The person's own notes (problems, questions, ideas they reported), newest change first, each with its status in plain words (`statusLine`), Kadal's replies, and whether something is unread. Use it to follow up on a report or answer \"did they fix it?\". Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":"string","enum":["open","accepted","declined","duplicate","fixed"]}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"List my notes"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["slug","name","url"],"additionalProperties":false},"kind":{"type":"string","enum":["mistake","question","idea"]},"body":{"type":"string"},"status":{"type":"string","enum":["open","accepted","declined","duplicate","fixed"]},"statusLine":{"type":"string"}},"required":["id","product","kind","body","status","statusLine"],"additionalProperties":{}}}},"required":["notes"],"additionalProperties":false}},{"name":"feedback_queue","title":"Feedback queue (operator)","description":"The operator's queue of notes from buyers: open ones oldest first by default, with every status's count and the waves in play. Filter by status (or \"all\"), kind, shelf or wave. Operator only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"status":{"type":"string","enum":["open","accepted","declined","duplicate","fixed","all"]},"kind":{"type":"string","enum":["mistake","question","idea"]},"shelf":{"type":"string","maxLength":40},"wave":{"type":"string","maxLength":40},"limit":{"type":"integer","minimum":1,"maximum":500}}},"annotations":{"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"title":"Feedback queue"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"notes":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["slug","name","url"],"additionalProperties":false},"kind":{"type":"string","enum":["mistake","question","idea"]},"body":{"type":"string"},"status":{"type":"string","enum":["open","accepted","declined","duplicate","fixed"]},"statusLine":{"type":"string"}},"required":["id","product","kind","body","status","statusLine"],"additionalProperties":{}}},"counts":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"number"}}},"required":["notes","counts"],"additionalProperties":{}}},{"name":"triage_note","title":"Triage a note (operator)","description":"Decide on one note: accept (with the wave the fix is planned for), decline (say why: the author reads `reply`), duplicate (name `duplicateOf`), reopen, or fixed (with `update`, the line for the product's public update log). The author is emailed. Operator only. Not idempotent.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"id":{"type":"string","minLength":1,"maxLength":64},"decision":{"type":"string","enum":["accept","decline","duplicate","reopen","fixed"]},"reply":{"type":"string","maxLength":4000},"wave":{"description":"e.g. wave-4","type":"string","maxLength":40},"duplicateOf":{"type":"string","maxLength":64},"update":{"description":"fixed: what changed, for the public update log.","type":"string","maxLength":300}},"required":["id","decision"]},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"title":"Triage a note"},"outputSchema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"note":{"type":"object","properties":{"id":{"type":"string"},"product":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"url":{"type":"string"}},"required":["slug","name","url"],"additionalProperties":false},"kind":{"type":"string","enum":["mistake","question","idea"]},"body":{"type":"string"},"status":{"type":"string","enum":["open","accepted","declined","duplicate","fixed"]},"statusLine":{"type":"string"}},"required":["id","product","kind","body","status","statusLine"],"additionalProperties":{}}},"required":["note"],"additionalProperties":false}}],"resources":[],"prompts":[]}