Server definition
- Hash
- sha256:ffcc005c953c8cff8e79e3a14487d5fe77c7661ddfc2f5a14cd6902b9ffd112a
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "In Da Mix by Diving Technics is the calculation engine for scuba breathing gases (nitrox, trimix, heliair, heliox; open circuit and CCR). Its tools run the same engine and the same settings as the In Da Mix app. In Da Mix calculates; you present its result briefly and ask the next relevant question.\n\n0. WHEN TO USE IN DA MIX\n- Whenever the user asks about scuba breathing gases (choosing, comparing or checking a mix, MOD, END, EAD, gas density, partial pressures, blending or filling a tank, topping up, source banks, decanting, CCR diluent or oxygen), call the matching In Da Mix tool automatically, before you present any number. The user does not need to mention In Da Mix.\n- Each tool's description says when to use it, what to show and which question to ask next. Follow it.\n- Never say a result came from In Da Mix unless a tool call returned it. If a tool fails or is unavailable, say so; never present your own numbers as In Da Mix results.\n\n1. CALCULATE ONLY WITH THESE TOOLS\n- Every number about a gas (MOD, minimum depth, ppO2, END, EAD, density, best mix, blend steps, top-ups, What If mixes, bank usage, number of fills, decanting) must come from an In Da Mix tool call. Never compute these yourself, even when the arithmetic looks trivial, and never round, \"sanity check\" or adjust a tool result into a different number.\n- If a follow-up changes any input (depth, ppO2, mix, pressure, tank, banks, cylinders, OC/CCR, method), call the tool again. Never adjust an earlier result by hand.\n- If no tool covers the question (decompression, gas consumption on a dive, CNS/OTU, turn pressures, the exact ppO2 / END / density of a gas at some other depth than its MODs, the CCR loop at a setpoint), say plainly \"In Da Mix has no tool for this\", and mark any estimate as \"my estimate, not In Da Mix\". Never mix estimates and tool results in one table without labelling which is which.\n- Reference values that are not calculations (e.g. gas density guidance: 5.2 g/L recommended, 6.2 g/L maximum, Anthony & Mitchell 2016) may be quoted, labelled as reference values.\n\n2. WHICH TOOL\n- Maximum depth of an existing gas, minimum depth of a hypoxic gas, \"can I take gas X to depth Y\" -> mod (the MOD by ppO2 first; the complete MOD with END and density only when asked: complete: true)\n- Best mix for a planned depth, CCR diluent for a depth -> best_mix\n- How to make a target mix in a tank -> blend\n- Gas one fill takes from the source banks -> gas_usage\n- How many fills the banks give -> fills_from_bank\n- Topping up with a ready-made gas (air, EAN32, a premix) -> top_up\n- The mix after given additions of O2, He or air -> what_if (a target mix -> blend)\n- Decanting O2 or He between cylinders, CCR oxygen refills -> decant (plan \"refills\"); diving days the cylinders give -> decant (plan \"diving_days\")\n- Calculation methods (equations of state) -> list_methods\n- Start with the tool that answers the main question. Call more tools only for what the user asked or a follow-up they accepted.\n\n3. SETTINGS AND INPUTS\n- The In Da Mix settings are the defaults and they are authoritative. Leave optional inputs (ppO2 limit, max END, max density, O2 narcotic, method, temperature, banks) out of the call unless the user gave a value: the tool takes them from the settings and lists them in `assumed`. Never put in a value of your own (a \"usual\" ppO2 of 1.4 or 1.6, an END of 30, another method).\n- A value the user states overrides the setting for that calculation: pass it.\n- Ask before calling only for inputs that change the answer a lot and have no setting: the start pressure and mix of the tank, the target pressure, the source banks or cylinders when they matter, partial pressure or continuous, a booster. Never assume an empty tank. Ask one focused question, not several.\n- Dive mode: a rebreather, CCR, closed circuit or diluent means dive_mode CCR; bailout gas is breathed on open circuit (OC); OC when the user says so. If the user doesn't name it, use the mode of the last In Da Mix calculation in this conversation (OC at the start) and pass dive_mode on every call that takes it. If the user takes up the offer of the other mode (the result names it: other_dive_mode), recalculate with it and keep it for every later calculation, with every tool, until the user changes it.\n- Follow-ups keep the inputs already given: \"and with density?\" after a MOD -> mod again with complete: true, same gas and mode; \"and NX40?\" -> the same calculation with 40 % O2.\n- If the user gives a range (e.g. 60-80 bar left in the tanks), run the tool for both ends and the middle and show all results.\n- Units: pressures in bar unless the user works in psi; depths in metres unless the user works in feet; tank and bank volumes in litres (water volume).\n\n4. LIMITS\n- Never add tables of other ppO2 values, alternative limits or a \"recommended\" limit of your own. If the user asks for another limit (e.g. ppO2 1.6 for a deco gas), call the tool again with it.\n- The configured limits (ppO2, END, gas density, O2 narcotic; separate for OC and CCR) are the user's chosen and accepted criteria. Don't add stricter numbers or safety margins of your own unless the user asks.\n- A value at its limit complies. Where a result has limits_check (best_mix, mod with the complete MOD), report it as it is: all within -> say the mix satisfies all configured In Da Mix limits for that depth and dive mode; at_limit -> \"at the configured limit, not over it\"; over -> name the parameter, the value against the limit and by how much. Never turn a compliant result into a recommendation against the mix.\n- Meeting the gas limits is not a complete dive safety check: equipment, CCR procedures (diluent flush), hypoxic gas handling, bailout, decompression and gas analysis stay separate. Mention them briefly when relevant, without contradicting the result.\n\n5. CCR\n- \"Which gas\" for a rebreather -> best_mix with dive_mode CCR. Call the result the diluent, not an open-circuit bottom gas, and not the loop gas.\n- O2 counts as narcotic for CCR as the settings say (the tool applies them).\n- A best_mix result is the mathematical optimum within the limits, not approval of the gas for the unit. When it matters, name in one sentence what the calculation doesn't check: the loop at the setpoint, the unit maker's diluent limits, a hypoxic diluent near the surface, bailout planning.\n\n6. ANSWERS\n- Answer in the user's language (pass language \"en\" or \"hr\" to every tool that takes it). Keep gas names, symbols and units as the tool gives them.\n- Short questions get short answers: the main result first; then the settings used, in one line (from `assumed` / `limits`); then only the secondary numbers the tool description lists. No unrequested theory (Dalton's law, equations of state, decompression) and no unrequested alternatives. Explain how it was calculated only when asked (call the tool again with include_steps: true).\n- End with the follow-up question from the tool's description, and, when the user didn't name the dive mode, the offer of the other mode. No other questions.\n- Include the share_url from the result, exactly as returned, as an \"Open in In Da Mix\" link. Never make up a link.\n- Every calculation answer has excel_url, the app's View in Excel workbook: give it when the user wants a spreadsheet, a file or the full working.\n- Terms of use: the first time you use In Da Mix in a conversation, show the user the `terms` field (with the link), before or with that first answer. Don't repeat it later in the same conversation unless the user asks.\n- These are gas calculations, not a dive plan or a safety assessment. Close with one line: analyse every gas before use (the disclaimer field); for trimix, CCR or depths beyond recreational limits, add that it needs the matching training.",
"tools": [
{
"description": "Use this FIRST when the user asks which breathing gas to use for a planned depth, or to select, recommend, optimise or compare one, even if they don't mention In Da Mix. The best nitrox or trimix for a planned depth within the diver's limits, as an open-circuit bottom gas or as CCR diluent (dive_mode CCR for any rebreather question): the richest O2 that keeps the ppO2 limit (rounded down), and for trimix the helium that keeps END and gas density within the limits. For CCR it is the mathematical optimum within the limits, not a full check of the diluent for the unit. Use for \"best nitrox for 30 m\", \"what trimix for 60 m with END 30\", \"best gas for a 65 m rebreather dive\", \"what diluent for my CCR at 75 m\", \"koji je najbolji mix za 65 m\", \"koji trimix za 60 metara\", \"koji diluent za rebreather\". Leave the limits out unless the user gave them: the In Da Mix settings apply. Answer: the one mix, the depth, its ppO2, END and gas density, and the limits used; say briefly which limit set the mix; for CCR call it the diluent. Report limits_check as it is: a value at its limit complies (the configured limits are the user's accepted criteria), so when all_within is true say the mix satisfies all configured limits; never recommend against a compliant mix or add margins of your own. Don't add other mixes. Then ask whether to compare it with another mix or other END / density limits.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"depth": {
"description": "Planned maximum depth, in depth_unit.",
"exclusiveMinimum": 0,
"type": "number"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"gas_type": {
"default": "nitrox",
"description": "nitrox or trimix. If nitrox comes out past the END / density limits, the answer says so: then ask for trimix.",
"enum": [
"nitrox",
"trimix"
],
"type": "string"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"max_density_g_per_l": {
"description": "Maximum gas density, g/L. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"exclusiveMinimum": 0,
"type": "number"
},
"max_end": {
"description": "Maximum END, in depth_unit. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"minimum": 0,
"type": "number"
},
"o2_narcotic": {
"description": "Count O2 as narcotic in the END. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"type": "boolean"
},
"ppo2_bar": {
"description": "ppO2 limit, bar. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"exclusiveMinimum": 0,
"type": "number"
}
},
"required": [
"depth"
],
"type": "object"
},
"name": "best_mix",
"outputSchema": null
},
{
"description": "Use whenever the user asks how to blend, mix, fill or prepare a breathing gas, even if they don't mention In Da Mix. Step-by-step fill plan for blending nitrox, trimix, heliair or heliox into a scuba tank, from what is in it now to the mix and pressure wanted: how much helium and oxygen to add, the order, cooling waits, the O2 test, the air top-up, and booster bars. Partial pressure or continuous, with the app's calculation methods. Use for \"how do I blend 18/45 to 220 bar\", \"how much O2 do I add for EAN32\", \"fill from the gas left in the tank\", \"kako napraviti trimix 12/65\", \"koliko helija trebam za 200 bara\", \"napravi plan punjenja boce\". Needs the target mix and pressure, and what is in the tank now: if the start is unknown, ask; never assume an empty tank. The method, temperature and banks come from the settings. Answer: the start gas, the target, the additions in order with their pressures, the resulting mix, and the key filling and analysis precautions. Then ask whether to calculate the gas this fill takes from the source banks (gas_usage).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"banks": {
"additionalProperties": false,
"description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
"properties": {
"helium": {
"additionalProperties": false,
"description": "The helium bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"oxygen": {
"additionalProperties": false,
"description": "The oxygen bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"top_up": {
"additionalProperties": false,
"description": "The bank the Top Up supply gas comes from.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
}
},
"type": "object"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"heat_correction": {
"default": false,
"description": "Correct for the heating of the gas while filling.",
"type": "boolean"
},
"helium_first": {
"default": true,
"description": "Partial pressure: add helium before oxygen (trimix, heliox).",
"type": "boolean"
},
"how": {
"default": "partial_pressure",
"description": "partial_pressure: add pure He and O2 to the tank, then top up with air. continuous: He / O2 go into the compressor intake (a premix stream).",
"enum": [
"partial_pressure",
"continuous"
],
"type": "string"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"method": {
"description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks.",
"enum": [
"IDEAL_GAS_DALTON",
"IDEAL_GAS_Z_FACTOR",
"VAN_DER_WAALS",
"REDLICH_KWONG",
"PENG_ROBINSON",
"MULTIDECO_Z_FACTOR",
"GASGURU_REAL_GAS",
"GASGURU_IDEAL_GAS",
"DIVESOFT_IDEAL_GAS",
"DIVESOFT_REAL_GAS"
],
"type": "string"
},
"mix_type": {
"description": "nitrox (O2 + air), trimix (He + O2 + air), heliair (He + air), heliox (He + O2).",
"enum": [
"nitrox",
"trimix",
"heliair",
"heliox"
],
"type": "string"
},
"pressure_unit": {
"default": "bar",
"description": "Unit of every pressure in the question and the answer.",
"enum": [
"bar",
"psi"
],
"type": "string"
},
"start_he_percent": {
"default": 0,
"description": "He percent of the gas already in the tank.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_o2_percent": {
"default": 21,
"description": "O2 percent of the gas already in the tank (21 for air).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_pressure": {
"description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`.",
"minimum": 0,
"type": "number"
},
"tank_volume_l": {
"default": 12,
"description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use.",
"exclusiveMinimum": 0,
"type": "number"
},
"target_he_percent": {
"description": "He percent of the mix wanted (trimix, heliair, heliox).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"target_o2_percent": {
"description": "O2 percent of the mix wanted (nitrox, trimix, heliox).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"target_pressure": {
"description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi).",
"exclusiveMinimum": 0,
"type": "number"
},
"temperature": {
"description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`.",
"type": "number"
},
"temperature_unit": {
"default": "C",
"description": "Unit of the fill temperature.",
"enum": [
"C",
"F"
],
"type": "string"
},
"use_booster": {
"default": false,
"description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas.",
"type": "boolean"
}
},
"required": [
"mix_type",
"target_pressure"
],
"type": "object"
},
"name": "blend",
"outputSchema": null
},
{
"description": "Decanting one gas (oxygen, or helium) from source cylinders into a small cylinder without a compressor, as the app's Decant: a cascade, each cylinder equalised in turn (ideal gas). plan refills: one refill or a series (e.g. a CCR O2 cylinder from 75 to 150 bar after every dive): which cylinders each refill uses, the pressures after, how many refills the cylinders give, why it stops, and how many cylinders would be needed. plan diving_days: the app's diving-days planner (use per day, dives a day, Extra cylinders). For linked banks or a booster use fills_from_bank. Prefer it for CCR oxygen logistics. Use for \"how many 3 L O2 cylinders do I need to refill my 2 L CCR cylinder after 10 dives\", \"how many CCR diving days do these O2 cylinders give\", \"koliko dana mogu roniti s ovim bocama kisika\", \"koliko puta mogu pretočiti kisik\". Don't invent cylinders and don't change the user's gas use per dive or per day. Answer for refills: the number of complete refills, which cylinders each uses, the pressures after where useful, the cylinder that limits it, and why one more refill isn't possible. Answer for diving days: the days, dives a day, use per day, the pressures it keeps to, the cylinders used, and the Extra cylinders. Then ask whether to compare with an extra cylinder, another start pressure or another daily use.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dives_per_day": {
"default": 2,
"description": "diving_days: dives a day.",
"minimum": 1,
"type": "integer"
},
"fill_before_every_dive": {
"default": false,
"description": "diving_days: refill before every dive (true) or once a day (false).",
"type": "boolean"
},
"gas_he_percent": {
"default": 0,
"description": "He percent of that gas.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"gas_o2_percent": {
"default": 100,
"description": "O2 percent of the gas decanted (100 for oxygen, 0 for helium); only names it in the answer.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"min_pressure_before_dive": {
"default": 100,
"description": "diving_days: the cylinder needs at least this before a dive, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"min_pressure_to_start_day": {
"description": "diving_days, daily fill: the cylinder must start the day with at least this. Default: min_pressure_before_dive + use_per_day_max × (dives_per_day − 1) / dives_per_day.",
"minimum": 0,
"type": "number"
},
"plan": {
"default": "refills",
"description": "refills: the tank goes from start_pressure to target_pressure at every refill. diving_days: the app's Decant planner (use per day, dives a day).",
"enum": [
"refills",
"diving_days"
],
"type": "string"
},
"pressure_unit": {
"default": "bar",
"description": "Unit of every pressure in the question and the answer.",
"enum": [
"bar",
"psi"
],
"type": "string"
},
"refills": {
"description": "refills: how many refills in a row are wanted (e.g. dives − 1). Left out: as many as the cylinders give.",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"sources": {
"description": "The source cylinders, each with its volume and pressure; several identical ones: one entry with count. refills: needed; opened lowest pressure first. diving_days: decanted in this order; left out = the app's defaults (listed in `assumed`).",
"items": {
"additionalProperties": false,
"properties": {
"count": {
"default": 1,
"description": "Number of identical cylinders.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"extra": {
"default": false,
"description": "diving_days: an Extra (reserve) cylinder; the answer says how many days it adds.",
"type": "boolean"
},
"included": {
"default": true,
"description": "Use this cylinder.",
"type": "boolean"
},
"label": {
"description": "Name shown in the plan (e.g. \"O2 3L\").",
"maxLength": 40,
"type": "string"
},
"pressure": {
"description": "Pressure now, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres.",
"minimum": 0,
"type": "number"
}
},
"required": [
"volume_l",
"pressure"
],
"type": "object"
},
"maxItems": 20,
"minItems": 1,
"type": "array"
},
"start_pressure": {
"description": "refills: the tank's pressure before each refill (what is left after a dive), in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`. diving_days: its pressure now.",
"minimum": 0,
"type": "number"
},
"tank_volume_l": {
"default": 2,
"description": "Water volume of the cylinder being refilled, litres (e.g. a rebreather's 2 or 3 L).",
"exclusiveMinimum": 0,
"type": "number"
},
"target_pressure": {
"description": "refills: the pressure wanted after each refill, in pressure_unit (needed). diving_days: the pressure it is filled to at most.",
"exclusiveMinimum": 0,
"type": "number"
},
"use_per_day_max": {
"default": 150,
"description": "diving_days: highest O2 use a day. Give one use: both are taken as it.",
"exclusiveMinimum": 0,
"type": "number"
},
"use_per_day_min": {
"default": 130,
"description": "diving_days: lowest O2 use a day, in pressure_unit of the cylinder.",
"exclusiveMinimum": 0,
"type": "number"
}
},
"required": [],
"type": "object"
},
"name": "decant",
"outputSchema": null
},
{
"description": "How many identical fills the source banks give before a bank can't supply the next one, and why it stops (bank down to the minimum pressure, or it can't decant high enough without a booster). Every tank is assumed to start the same (start_pressure / mix). Use for \"how many tanks can I fill with NX32 from my 50 L O2 bank at 180 bar\", \"how many trimix fills can I make\", \"koliko boca mogu napuniti\", \"za koliko punjenja imam kisika\". Answer: the number of complete fills, the banks and the start of each tank, the bank that limits it, the bank pressures after, and why one more fill isn't possible; say that every fill is assumed to start the same. Then ask whether to see what a booster or an extra bank would add.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"banks": {
"additionalProperties": false,
"description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
"properties": {
"helium": {
"additionalProperties": false,
"description": "The helium bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"oxygen": {
"additionalProperties": false,
"description": "The oxygen bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"top_up": {
"additionalProperties": false,
"description": "The bank the Top Up supply gas comes from.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
}
},
"type": "object"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"heat_correction": {
"default": false,
"description": "Correct for the heating of the gas while filling.",
"type": "boolean"
},
"helium_first": {
"default": true,
"description": "Partial pressure: add helium before oxygen (trimix, heliox).",
"type": "boolean"
},
"how": {
"default": "partial_pressure",
"description": "partial_pressure: add pure He and O2 to the tank, then top up with air. continuous: He / O2 go into the compressor intake (a premix stream).",
"enum": [
"partial_pressure",
"continuous"
],
"type": "string"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"max_fills": {
"default": 500,
"description": "Stop counting here.",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"method": {
"description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks.",
"enum": [
"IDEAL_GAS_DALTON",
"IDEAL_GAS_Z_FACTOR",
"VAN_DER_WAALS",
"REDLICH_KWONG",
"PENG_ROBINSON",
"MULTIDECO_Z_FACTOR",
"GASGURU_REAL_GAS",
"GASGURU_IDEAL_GAS",
"DIVESOFT_IDEAL_GAS",
"DIVESOFT_REAL_GAS"
],
"type": "string"
},
"min_bank_pressure": {
"default": 10,
"description": "A bank isn't used below this pressure (regulator / compressor intake / booster inlet), in pressure_unit. Default 10 bar.",
"minimum": 0,
"type": "number"
},
"mix_type": {
"description": "nitrox, trimix, heliair, heliox, or top_up (a ready-made supply gas from the top-up bank).",
"enum": [
"nitrox",
"trimix",
"heliair",
"heliox",
"top_up"
],
"type": "string"
},
"pressure_unit": {
"default": "bar",
"description": "Unit of every pressure in the question and the answer.",
"enum": [
"bar",
"psi"
],
"type": "string"
},
"start_he_percent": {
"default": 0,
"description": "He percent of the gas already in the tank.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_o2_percent": {
"default": 21,
"description": "O2 percent of the gas already in the tank (21 for air).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_pressure": {
"description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`.",
"minimum": 0,
"type": "number"
},
"supply_he_percent": {
"default": 0,
"description": "He percent of the supply gas.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"supply_o2_percent": {
"description": "O2 percent of the ready-made supply gas (20.9 for air, 32 for EAN32).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"tank_volume_l": {
"default": 12,
"description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use.",
"exclusiveMinimum": 0,
"type": "number"
},
"target_he_percent": {
"description": "He percent of the mix wanted (trimix, heliair, heliox).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"target_o2_percent": {
"description": "O2 percent of the mix wanted (nitrox, trimix, heliox).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"target_pressure": {
"description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi).",
"exclusiveMinimum": 0,
"type": "number"
},
"temperature": {
"description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`.",
"type": "number"
},
"temperature_unit": {
"default": "C",
"description": "Unit of the fill temperature.",
"enum": [
"C",
"F"
],
"type": "string"
},
"use_booster": {
"default": false,
"description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas.",
"type": "boolean"
}
},
"required": [
"mix_type",
"target_pressure"
],
"type": "object"
},
"name": "fills_from_bank",
"outputSchema": null
},
{
"description": "For one blend: the litres of each gas it takes from the banks, each bank's pressure afterwards, and whether a bank can still decant (or needs boosting, or runs short). Same inputs as blend, plus the banks. Use for \"how much helium will this fill use\", \"is my O2 bank enough for this fill\", \"koliko helija trošim za ovu mješavinu\", \"koliko plina ostaje u bankama\". Banks not given come from the settings. Answer: the oxygen, helium and other gas used, each bank's pressure before and after, whether the fill works, and whether decanting is enough or a booster is needed; keep the litres of gas and the bank pressure drop apart. Then ask whether to calculate how many such fills the banks give (fills_from_bank).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"banks": {
"additionalProperties": false,
"description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
"properties": {
"helium": {
"additionalProperties": false,
"description": "The helium bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"oxygen": {
"additionalProperties": false,
"description": "The oxygen bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"top_up": {
"additionalProperties": false,
"description": "The bank the Top Up supply gas comes from.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
}
},
"type": "object"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"heat_correction": {
"default": false,
"description": "Correct for the heating of the gas while filling.",
"type": "boolean"
},
"helium_first": {
"default": true,
"description": "Partial pressure: add helium before oxygen (trimix, heliox).",
"type": "boolean"
},
"how": {
"default": "partial_pressure",
"description": "partial_pressure: add pure He and O2 to the tank, then top up with air. continuous: He / O2 go into the compressor intake (a premix stream).",
"enum": [
"partial_pressure",
"continuous"
],
"type": "string"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"method": {
"description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks.",
"enum": [
"IDEAL_GAS_DALTON",
"IDEAL_GAS_Z_FACTOR",
"VAN_DER_WAALS",
"REDLICH_KWONG",
"PENG_ROBINSON",
"MULTIDECO_Z_FACTOR",
"GASGURU_REAL_GAS",
"GASGURU_IDEAL_GAS",
"DIVESOFT_IDEAL_GAS",
"DIVESOFT_REAL_GAS"
],
"type": "string"
},
"mix_type": {
"description": "nitrox (O2 + air), trimix (He + O2 + air), heliair (He + air), heliox (He + O2).",
"enum": [
"nitrox",
"trimix",
"heliair",
"heliox"
],
"type": "string"
},
"pressure_unit": {
"default": "bar",
"description": "Unit of every pressure in the question and the answer.",
"enum": [
"bar",
"psi"
],
"type": "string"
},
"start_he_percent": {
"default": 0,
"description": "He percent of the gas already in the tank.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_o2_percent": {
"default": 21,
"description": "O2 percent of the gas already in the tank (21 for air).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_pressure": {
"description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`.",
"minimum": 0,
"type": "number"
},
"tank_volume_l": {
"default": 12,
"description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use.",
"exclusiveMinimum": 0,
"type": "number"
},
"target_he_percent": {
"description": "He percent of the mix wanted (trimix, heliair, heliox).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"target_o2_percent": {
"description": "O2 percent of the mix wanted (nitrox, trimix, heliox).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"target_pressure": {
"description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi).",
"exclusiveMinimum": 0,
"type": "number"
},
"temperature": {
"description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`.",
"type": "number"
},
"temperature_unit": {
"default": "C",
"description": "Unit of the fill temperature.",
"enum": [
"C",
"F"
],
"type": "string"
},
"use_booster": {
"default": false,
"description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas.",
"type": "boolean"
}
},
"required": [
"mix_type",
"target_pressure"
],
"type": "object"
},
"name": "gas_usage",
"outputSchema": null
},
{
"description": "The calculation methods (equations of state) In Da Mix offers, with their ids for the method input. The current default is in the `default` field. Use when the user asks about calculation models: ideal versus real gas, compressibility, Z-factors, Peng-Robinson, MultiDeco. Use for \"which gas models are supported\", \"ideal gas versus Peng-Robinson\", \"koje modele izračuna podržava aplikacija\", \"razlika između real gas i ideal gas\". Always call it rather than relying on a remembered list. Answer: the methods and the current default; the differences briefly, only when asked; don't recommend switching unless the user asks. Then offer to compare the same blend across methods (blend with each method, the same inputs).",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"required": [],
"type": "object"
},
"name": "list_methods",
"outputSchema": null
},
{
"description": "Use whenever the user asks how deep a gas can go or checks an existing breathing gas (nitrox, trimix, CCR diluent) against a depth, even if they don't mention In Da Mix; never work a MOD out by hand. Maximum operating depth of a breathing gas: the MOD by the ppO2 limit (as on a cylinder label), and for hypoxic gases the minimum depth. With complete: true also the complete MOD, the deepest depth within the ppO2, END and gas density limits together, with the limit that sets it. Call it with only the gas (o2_percent, he_percent) and the dive mode: leave ppo2_bar out unless the user gave one, so the In Da Mix setting is used. Answer: the gas and its MOD, the ppO2 limit used and the dive mode (and the minimum depth for a hypoxic gas); nothing else, no table of other ppO2 values, no ppO2 recommendation of your own. Then ask whether to also calculate the complete MOD within the END and gas density limits; if yes, call it again with complete: true (same gas and mode). Only when the user asks for END, density or all the limits, call with complete: true at once, and answer: the complete MOD and the limit that sets it, the MOD by ppO2, END and gas density at the complete MOD, and the limits used; report limits_check as it is (a value at its limit complies). Use for \"what is the MOD of EAN32\", \"max depth for NX38\", \"how deep can I take 18/45\", \"can I take air to 50 m\", \"can I use 10/70 at 65 m\", \"is this diluent OK for 70 m\", \"koja je maksimalna dubina za NX38\", \"koliko duboko mogu s 18/45\", \"je li 12/65 dobar za 65 metara\".",
"inputSchema": {
"additionalProperties": false,
"properties": {
"complete": {
"default": false,
"description": "Also the complete MOD (within the END and gas density limits too). Leave it out at first; set true only when the user says yes to it. Giving max_end or max_density_g_per_l turns it on.",
"type": "boolean"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"he_percent": {
"default": 0,
"description": "Helium in the gas, percent (0 for nitrox).",
"maximum": 99,
"minimum": 0,
"type": "number"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"max_density_g_per_l": {
"description": "Maximum gas density for the complete MOD, g/L. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"exclusiveMinimum": 0,
"type": "number"
},
"max_end": {
"description": "Maximum END for the complete MOD, in depth_unit. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"minimum": 0,
"type": "number"
},
"o2_narcotic": {
"description": "Count O2 as narcotic in the END. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"type": "boolean"
},
"o2_percent": {
"description": "Oxygen in the gas, percent (32 for EAN32, 18 for trimix 18/45).",
"maximum": 100,
"minimum": 1,
"type": "number"
},
"ppo2_bar": {
"description": "ppO2 limit, bar. Default from the In Da Mix settings for the dive mode; the value used is listed in `assumed`.",
"maximum": 2,
"minimum": 0.16,
"type": "number"
}
},
"required": [
"o2_percent"
],
"type": "object"
},
"name": "mod",
"outputSchema": null
},
{
"description": "Top a tank up with a ready-made supply gas (air, EAN32, a trimix premix…): the pressure added, the mix you end up with, its MOD, and the gas density at a depth. For a ready-made supply gas; to add pure oxygen or helium use what_if or blend. Use for \"I have 50 bar of EAN32 left, what do I get if I top up with air to 200\", \"dopuni mi bocu s 50 bara EAN32 zrakom do 220 bara\", \"koji će biti konačni postotak kisika\". Needs the start pressure and mix, the final pressure and the supply gas: ask if one is unknown, don't assume. Answer: the start, the gas added and the final pressure, the resulting mix, and its MOD by the settings. Then ask whether to check the mix for a planned depth (mod, with the complete MOD).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"banks": {
"additionalProperties": false,
"description": "Source banks (storage cylinders). Any bank not given is taken from the In Da Mix settings and listed in `assumed`.",
"properties": {
"helium": {
"additionalProperties": false,
"description": "The helium bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"oxygen": {
"additionalProperties": false,
"description": "The oxygen bank.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
},
"top_up": {
"additionalProperties": false,
"description": "The bank the Top Up supply gas comes from.",
"properties": {
"pressure": {
"description": "Current pressure, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"volume_l": {
"description": "Water volume, litres (a \"50 L\" bank = 50; several linked cylinders = their sum).",
"minimum": 0,
"type": "number"
}
},
"type": "object"
}
},
"type": "object"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"heat_correction": {
"default": false,
"description": "Correct for the heating of the gas while filling.",
"type": "boolean"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"method": {
"description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks.",
"enum": [
"IDEAL_GAS_DALTON",
"IDEAL_GAS_Z_FACTOR",
"VAN_DER_WAALS",
"REDLICH_KWONG",
"PENG_ROBINSON",
"MULTIDECO_Z_FACTOR",
"GASGURU_REAL_GAS",
"GASGURU_IDEAL_GAS",
"DIVESOFT_IDEAL_GAS",
"DIVESOFT_REAL_GAS"
],
"type": "string"
},
"pressure_unit": {
"default": "bar",
"description": "Unit of every pressure in the question and the answer.",
"enum": [
"bar",
"psi"
],
"type": "string"
},
"start_he_percent": {
"default": 0,
"description": "He percent of the gas already in the tank.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_o2_percent": {
"default": 21,
"description": "O2 percent of the gas already in the tank (21 for air).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_pressure": {
"description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`.",
"minimum": 0,
"type": "number"
},
"supply_he_percent": {
"default": 0,
"description": "He percent of the supply gas.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"supply_o2_percent": {
"description": "O2 percent of the ready-made supply gas (20.9 for air, 32 for EAN32).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"tank_volume_l": {
"default": 12,
"description": "Water volume of the tank being filled, litres (a twin 12 = 24). Used for gas litres and bank use.",
"exclusiveMinimum": 0,
"type": "number"
},
"target_depth": {
"default": 30,
"description": "Depth for the gas density, in depth_unit. Default 30 m.",
"minimum": 0,
"type": "number"
},
"target_pressure": {
"description": "Fill pressure wanted, in pressure_unit (e.g. 200 or 232 bar, 3000 psi).",
"exclusiveMinimum": 0,
"type": "number"
},
"temperature": {
"description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`.",
"type": "number"
},
"temperature_unit": {
"default": "C",
"description": "Unit of the fill temperature.",
"enum": [
"C",
"F"
],
"type": "string"
},
"use_booster": {
"default": false,
"description": "A gas booster is available: banks that can't decant high enough are boosted. With DIVESOFT_REAL_GAS it changes the plan; with other methods it only plans the gas.",
"type": "boolean"
}
},
"required": [
"target_pressure",
"supply_o2_percent"
],
"type": "object"
},
"name": "top_up",
"outputSchema": null
},
{
"description": "What mix you get when you add given pressures of oxygen, helium and/or air to what is in the tank (the app's What If): the pressure after each addition, the resulting mix, its MOD, EAD, END and gas density. Use for \"what if\" additions: \"I have 50 bar of air, what do I get if I add 30 bar of O2 and top up with 120 bar of air\", \"what if I add 40 bar of helium\", \"što dobijem ako dodam 30 bara kisika\", \"dodam 40 bara helija, što dobijem\". what_if: given additions -> the resulting mix; blend: a target mix -> how to make it. Pass only the additions and the tank's start the user gave. Answer: the start, the additions in order, the final pressure, the resulting O2 and He, and its MOD by the settings. Then ask whether to check its complete MOD or to adjust the additions for a target mix (blend).",
"inputSchema": {
"additionalProperties": false,
"properties": {
"add_air": {
"default": 0,
"description": "Pressure of air added, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"add_helium": {
"default": 0,
"description": "Pressure of pure helium added, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"add_oxygen": {
"default": 0,
"description": "Pressure of pure oxygen added, in pressure_unit.",
"minimum": 0,
"type": "number"
},
"depth_unit": {
"default": "m",
"description": "Unit of every depth in the question and the answer.",
"enum": [
"m",
"ft"
],
"type": "string"
},
"dive_mode": {
"default": "OC",
"description": "Open circuit (OC) or closed-circuit rebreather (CCR). Sets which defaults apply (from the In Da Mix settings: ppO2, END, density, O2 narcotic). The values used are listed in `assumed`.",
"enum": [
"OC",
"CCR"
],
"type": "string"
},
"helium_first": {
"default": true,
"description": "Partial pressure: add helium before oxygen (trimix, heliox).",
"type": "boolean"
},
"include_steps": {
"default": false,
"description": "Also return the app's ƒx steps (\"How this was calculated\"): every formula with its numbers. Long: only when the user asks how it was calculated.",
"type": "boolean"
},
"language": {
"default": "en",
"description": "Language of the texts in the answer: en (English) or hr (Croatian). Use the user's language.",
"enum": [
"en",
"hr"
],
"type": "string"
},
"method": {
"description": "Calculation method (equation of state), as in the app. Default from the In Da Mix settings (see list_methods for the current default); listed in `assumed`. IDEAL_GAS_DALTON is the simple ideal-gas method; DIVESOFT_REAL_GAS also plans the decant from the banks.",
"enum": [
"IDEAL_GAS_DALTON",
"IDEAL_GAS_Z_FACTOR",
"VAN_DER_WAALS",
"REDLICH_KWONG",
"PENG_ROBINSON",
"MULTIDECO_Z_FACTOR",
"GASGURU_REAL_GAS",
"GASGURU_IDEAL_GAS",
"DIVESOFT_IDEAL_GAS",
"DIVESOFT_REAL_GAS"
],
"type": "string"
},
"pressure_unit": {
"default": "bar",
"description": "Unit of every pressure in the question and the answer.",
"enum": [
"bar",
"psi"
],
"type": "string"
},
"start_he_percent": {
"default": 0,
"description": "He percent of the gas already in the tank.",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_o2_percent": {
"default": 21,
"description": "O2 percent of the gas already in the tank (21 for air).",
"maximum": 100,
"minimum": 0,
"type": "number"
},
"start_pressure": {
"description": "Pressure already in the tank, in pressure_unit. 0 = empty. This changes the result a lot: if the user did not give it, ask before calling. If you call without it, the tool assumes an empty tank and lists that in `assumed`.",
"minimum": 0,
"type": "number"
},
"target_depth": {
"default": 30,
"description": "Depth for the gas density, in depth_unit. Default 30 m.",
"minimum": 0,
"type": "number"
},
"temperature": {
"description": "Fill-site (ambient) temperature, in temperature_unit. Default from the In Da Mix settings; listed in `assumed`.",
"type": "number"
},
"temperature_unit": {
"default": "C",
"description": "Unit of the fill temperature.",
"enum": [
"C",
"F"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "what_if",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:ffcc005c953c8cff8e79e3a14487d5fe77c7661ddfc2f5a14cd6902b9ffd112a | sha256sum