{"ok":true,"site":{"host":"davide.im","url":"https://davide.im/decisionwise/","type":"live","desc":"Compare homes, job offers, cars or anything else on every criterion that matters to you.","tools":[{"name":"create_decision","kind":"act","impl":"imperative","description":"Creates a new empty decision in DecisionWise and opens it. Then use update_decision, create_parameter and create_option to fill it in.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Short title, e.g. \"Apartment in Bologna\"."}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"get_decision","kind":"answer","impl":"imperative","description":"Reads the current state of the decision: parameters (with id, type, choices) and options with their values. Operates on the decision open in DecisionWise.","annotations":{"readOnlyHint":true},"inputSchema":{"type":"object","properties":{},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"update_decision","kind":"act","impl":"imperative","description":"Sets the name, description and emoji of the decision and what the options are called (singular/plural, e.g. \"home\"/\"homes\"). Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Short title, e.g. \"Apartment in Bologna\"."},"description":{"type":"string","description":"The context in one sentence: for whom, budget, timing."},"emoji":{"type":"string","description":"A single representative emoji."},"option_singular":{"type":"string","description":"Name of a single option, lowercase (e.g. \"offer\")."},"option_plural":{"type":"string","description":"Plural (e.g. \"offers\")."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"create_parameter","kind":"act","impl":"imperative","description":"Creates a parameter (comparison criterion). Choose the type that reflects how the user thinks about that criterion and fill in only the fields relevant to that type. Set hard constraints (hard_min/hard_max/constraint/min_acceptable/excluded/required/deadline) only for stated must-have requirements. Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Short name of the criterion, e.g. \"Price\", \"Commute to work\"."},"type":{"type":"string","enum":["boolean","rating","number","ideal","count","percentage","ordinal","categorical","tags","date"],"description":"boolean: present/absent. number: a quantity where higher or lower is better. count: how many things of a kind (e.g. pizzerias within 2 km). percentage: 0-100. ideal: a number with an optimal value (not too much, not too little). rating: subjective score on a 5 or 10 scale. ordinal: levels ordered from worst to best. categorical: one of several unordered options. tags: several features together. date: a date."},"description":{"type":"string","description":"Useful context: how it is measured, from where, at what time… (optional)."},"unit":{"type":"string","description":"Unit of measure for numeric types: \"€\", \"m²\", \"min\", \"km\"…"},"importance":{"type":"integer","minimum":1,"maximum":5,"description":"Declared initial importance 1-5 (3 if unclear). It will be refined by the \"would you rather\" game."},"missing":{"type":"string","enum":["penalize","neutral","ignore"],"description":"What to do when an option has no value. Default neutral."},"direction":{"type":"string","enum":["higher","lower","earlier","later"],"description":"number/count/percentage: whether higher or lower is better. date: whether earlier or later is better."},"curve":{"type":"string","enum":["linear","saturating","threshold"],"description":"number/count/percentage. linear: every unit counts the same. saturating: nothing more is gained beyond \"saturation\". threshold: only crossing \"threshold\" counts."},"range_min":{"type":"number","description":"number/count/percentage: realistic minimum (for normalization)."},"range_max":{"type":"number","description":"number/count/percentage: realistic maximum."},"saturation":{"type":"number","description":"curve=saturating: value beyond which it no longer improves."},"threshold":{"type":"number","description":"curve=threshold: threshold value."},"hard_min":{"type":"number","description":"Hard constraint (number/count/percentage/ideal/rating): below this value the option is excluded. Only if the user says so explicitly."},"hard_max":{"type":"number","description":"Hard constraint (number/count/percentage/ideal): above this value the option is excluded (e.g. maximum budget)."},"count_definition":{"type":"string","description":"count: what is counted and by which rule."},"ideal":{"type":"number","description":"ideal: the optimal value (required for type=ideal)."},"tolerance_below":{"type":"number","description":"ideal: how far below the ideal it can go before it becomes terrible."},"tolerance_above":{"type":"number","description":"ideal: how far above the ideal it can go before it becomes terrible."},"scale_max":{"type":"integer","enum":[5,10],"description":"rating: rating scale (default 10)."},"assessor":{"type":"string","enum":["me","other","external"],"description":"rating: who gives the rating (me, another person, an external source)."},"preference":{"type":"string","enum":["positive","negative","neutral"],"description":"boolean: whether having it is positive, negative or neutral."},"constraint":{"type":"string","enum":["none","must_have","must_not_have"],"description":"boolean: must-have requirement (must_have) or exclusion (must_not_have)."},"choices":{"type":"array","items":{"type":"string"},"description":"ordinal: levels FROM WORST TO BEST (at least 2). categorical: the possible categories (at least 2). tags: the possible tags (at least 1)."},"equal_steps":{"type":"boolean","description":"ordinal: are all steps between levels worth the same? (default true)"},"min_acceptable":{"type":"string","description":"ordinal: lowest acceptable level (hard constraint), one of the choices."},"excluded":{"type":"array","items":{"type":"string"},"description":"categorical: categories excluded up front (hard constraint)."},"required":{"type":"array","items":{"type":"string"},"description":"tags: required tags (hard constraint)."},"tags_mode":{"type":"string","enum":["each","count"],"description":"tags: each tag counts on its own (each) or only how many there are counts (count)."},"deadline":{"type":"string","description":"date: ISO yyyy-mm-dd deadline (hard constraint)."},"deadline_type":{"type":"string","enum":["not_after","not_before"],"description":"date: whether the deadline means \"not after\" or \"not before\"."}},"required":["name","type"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"update_parameter","kind":"act","impl":"imperative","description":"Edits an existing parameter. Pass only the fields to change; null clears an optional field. \"choices\" replaces the full list, keeping the values of choices with the same label. Changing \"type\" resets the configuration and the values already entered for that parameter. Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"parameter":{"type":"string","description":"Id or current name of the parameter."},"name":{"type":"string","description":"Short name of the criterion, e.g. \"Price\", \"Commute to work\"."},"type":{"type":"string","enum":["boolean","rating","number","ideal","count","percentage","ordinal","categorical","tags","date"],"description":"boolean: present/absent. number: a quantity where higher or lower is better. count: how many things of a kind (e.g. pizzerias within 2 km). percentage: 0-100. ideal: a number with an optimal value (not too much, not too little). rating: subjective score on a 5 or 10 scale. ordinal: levels ordered from worst to best. categorical: one of several unordered options. tags: several features together. date: a date."},"description":{"type":"string","description":"Useful context: how it is measured, from where, at what time… (optional)."},"unit":{"type":"string","description":"Unit of measure for numeric types: \"€\", \"m²\", \"min\", \"km\"…"},"importance":{"type":"integer","minimum":1,"maximum":5,"description":"Declared initial importance 1-5 (3 if unclear). It will be refined by the \"would you rather\" game."},"missing":{"type":"string","enum":["penalize","neutral","ignore"],"description":"What to do when an option has no value. Default neutral."},"direction":{"type":"string","enum":["higher","lower","earlier","later"],"description":"number/count/percentage: whether higher or lower is better. date: whether earlier or later is better."},"curve":{"type":"string","enum":["linear","saturating","threshold"],"description":"number/count/percentage. linear: every unit counts the same. saturating: nothing more is gained beyond \"saturation\". threshold: only crossing \"threshold\" counts."},"range_min":{"type":"number","description":"number/count/percentage: realistic minimum (for normalization)."},"range_max":{"type":"number","description":"number/count/percentage: realistic maximum."},"saturation":{"type":"number","description":"curve=saturating: value beyond which it no longer improves."},"threshold":{"type":"number","description":"curve=threshold: threshold value."},"hard_min":{"type":"number","description":"Hard constraint (number/count/percentage/ideal/rating): below this value the option is excluded. Only if the user says so explicitly."},"hard_max":{"type":"number","description":"Hard constraint (number/count/percentage/ideal): above this value the option is excluded (e.g. maximum budget)."},"count_definition":{"type":"string","description":"count: what is counted and by which rule."},"ideal":{"type":"number","description":"ideal: the optimal value (required for type=ideal)."},"tolerance_below":{"type":"number","description":"ideal: how far below the ideal it can go before it becomes terrible."},"tolerance_above":{"type":"number","description":"ideal: how far above the ideal it can go before it becomes terrible."},"scale_max":{"type":"integer","enum":[5,10],"description":"rating: rating scale (default 10)."},"assessor":{"type":"string","enum":["me","other","external"],"description":"rating: who gives the rating (me, another person, an external source)."},"preference":{"type":"string","enum":["positive","negative","neutral"],"description":"boolean: whether having it is positive, negative or neutral."},"constraint":{"type":"string","enum":["none","must_have","must_not_have"],"description":"boolean: must-have requirement (must_have) or exclusion (must_not_have)."},"choices":{"type":"array","items":{"type":"string"},"description":"ordinal: levels FROM WORST TO BEST (at least 2). categorical: the possible categories (at least 2). tags: the possible tags (at least 1)."},"equal_steps":{"type":"boolean","description":"ordinal: are all steps between levels worth the same? (default true)"},"min_acceptable":{"type":"string","description":"ordinal: lowest acceptable level (hard constraint), one of the choices."},"excluded":{"type":"array","items":{"type":"string"},"description":"categorical: categories excluded up front (hard constraint)."},"required":{"type":"array","items":{"type":"string"},"description":"tags: required tags (hard constraint)."},"tags_mode":{"type":"string","enum":["each","count"],"description":"tags: each tag counts on its own (each) or only how many there are counts (count)."},"deadline":{"type":"string","description":"date: ISO yyyy-mm-dd deadline (hard constraint)."},"deadline_type":{"type":"string","enum":["not_after","not_before"],"description":"date: whether the deadline means \"not after\" or \"not before\"."}},"required":["parameter"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"delete_parameter","kind":"transact","impl":"imperative","description":"Deletes a parameter and its values in all options. Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"parameter":{"type":"string","description":"Id or name of the parameter."}},"required":["parameter"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"create_option","kind":"act","impl":"imperative","description":"Adds an option to compare (a home, an offer, a car…) with the known values for the parameters. Create the parameters first. For categorical/tags a new label is added to the parameter choices. Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Recognizable name, e.g. \"Two-bedroom flat on Via Mazzini\"."},"notes":{"type":"string","description":"Free notes (optional)."},"link":{"type":"string","description":"URL of the listing or source (optional)."},"values":{"type":"array","description":"Known values of the option, one per parameter. Omit parameters whose value is unknown: do not invent. boolean → true/false; numeric, ideal, rating → number; ordinal/categorical → label of a choice; tags → array of labels; date → \"yyyy-mm-dd\"; null to clear.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name or id of the parameter."},"value":{"description":"Value in the format of the parameter type.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["parameter","value"],"additionalProperties":false}}},"required":["name"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"update_option","kind":"act","impl":"imperative","description":"Edits an existing option: name, notes, link and/or some values (the others stay unchanged; value null clears). Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"option":{"type":"string","description":"Id or current name of the option."},"name":{"type":"string"},"notes":{"type":"string"},"link":{"type":"string"},"values":{"type":"array","description":"Known values of the option, one per parameter. Omit parameters whose value is unknown: do not invent. boolean → true/false; numeric, ideal, rating → number; ordinal/categorical → label of a choice; tags → array of labels; date → \"yyyy-mm-dd\"; null to clear.","items":{"type":"object","properties":{"parameter":{"type":"string","description":"Name or id of the parameter."},"value":{"description":"Value in the format of the parameter type.","anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}},{"type":"null"}]}},"required":["parameter","value"],"additionalProperties":false}}},"required":["option"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"},{"name":"delete_option","kind":"transact","impl":"imperative","description":"Deletes an option. Operates on the decision open in DecisionWise.","inputSchema":{"type":"object","properties":{"option":{"type":"string","description":"Id or name of the option."}},"required":["option"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/decisionwise/"}],"favicon":"/favicons/davide.im.png","apiSurface":"spec","category":"Productivity & Business","toolCount":9}}