Tool tree
gradeNot graded
log_entriesAction
Log one or more entries in the person's health diary. Accepts several at once: if someone mentions a symptom and a medication in the same sentence, log them in a single call rather than calling this tool twice. Only records what the person said — it does not interpret, diagnose or suggest dosages.
View tool JSON
{
"name": "log_entries",
"kind": "act",
"impl": "imperative",
"description": "Log one or more entries in the person's health diary. Accepts several at once: if someone mentions a symptom and a medication in the same sentence, log them in a single call rather than calling this tool twice. Only records what the person said — it does not interpret, diagnose or suggest dosages.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"entries": {
"minItems": 1,
"maxItems": 20,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "symptom"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"severity": {
"type": "integer",
"minimum": 0,
"maximum": 10
},
"location": {
"type": "string",
"maxLength": 80
}
},
"required": [
"kind",
"name",
"severity"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "dose"
},
"medId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"amount": {
"type": "string",
"maxLength": 40
}
},
"required": [
"kind",
"name",
"amount"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "sleep"
},
"hours": {
"type": "number",
"minimum": 0,
"maximum": 24
},
"quality": {
"type": "integer",
"minimum": 0,
"maximum": 10
}
},
"required": [
"kind",
"hours",
"quality"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "note"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"kind",
"text"
],
"additionalProperties": false
}
]
}
}
},
"required": [
"entries"
],
"additionalProperties": false
}
}get_todayAnswer
Read what the person has logged today: symptoms, medication doses, sleep and notes. Returns entries exactly as they were recorded, without interpreting them. Never gives medical advice and never suggests dosages.
View tool JSON
{
"name": "get_today",
"kind": "answer",
"impl": "imperative",
"description": "Read what the person has logged today: symptoms, medication doses, sleep and notes. Returns entries exactly as they were recorded, without interpreting them. Never gives medical advice and never suggests dosages.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
}list_entriesAnswer
List diary entries, optionally between two dates. Each line starts with a short id — use that id to edit or delete a specific entry.
View tool JSON
{
"name": "list_entries",
"kind": "answer",
"impl": "imperative",
"description": "List diary entries, optionally between two dates. Each line starts with a short id — use that id to edit or delete a specific entry.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO timestamp, inclusive"
},
"to": {
"type": "string",
"description": "ISO timestamp, exclusive"
}
},
"additionalProperties": false
}
}edit_entryAction
Correct an entry that was recorded wrongly. Takes the short id from list_entries and replaces what the entry says. The original author is kept, so it stays visible who wrote it first.
View tool JSON
{
"name": "edit_entry",
"kind": "act",
"impl": "imperative",
"description": "Correct an entry that was recorded wrongly. Takes the short id from list_entries and replaces what the entry says. The original author is kept, so it stays visible who wrote it first.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Short id from list_entries"
},
"payload": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "symptom"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"severity": {
"type": "integer",
"minimum": 0,
"maximum": 10
},
"location": {
"type": "string",
"maxLength": 80
}
},
"required": [
"kind",
"name",
"severity"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "dose"
},
"medId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"amount": {
"type": "string",
"maxLength": 40
}
},
"required": [
"kind",
"name",
"amount"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "sleep"
},
"hours": {
"type": "number",
"minimum": 0,
"maximum": 24
},
"quality": {
"type": "integer",
"minimum": 0,
"maximum": 10
}
},
"required": [
"kind",
"hours",
"quality"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "note"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"kind",
"text"
],
"additionalProperties": false
}
]
}
},
"required": [
"id",
"payload"
],
"additionalProperties": false
}
}delete_entrySensitive Action
Remove an entry from the diary. Takes the short id from list_entries. Undo brings it back.
View tool JSON
{
"name": "delete_entry",
"kind": "transact",
"impl": "imperative",
"description": "Remove an entry from the diary. Takes the short id from list_entries. Undo brings it back.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
}
}undoAction
Toggle the last change made in this session — logging, editing or deleting an entry, a medication change, or loading, importing or erasing the whole diary. This is not a multi-step history: it undoes one operation, and calling it again redoes that same operation rather than stepping further back. The history lives in this browser tab, so it starts empty after a reload.
View tool JSON
{
"name": "undo",
"kind": "act",
"impl": "imperative",
"description": "Toggle the last change made in this session — logging, editing or deleting an entry, a medication change, or loading, importing or erasing the whole diary. This is not a multi-step history: it undoes one operation, and calling it again redoes that same operation rather than stepping further back. The history lives in this browser tab, so it starts empty after a reload.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
}list_medicationsAnswer
List medications currently being tracked, with dose, schedule, and a short id. Use that id with update_medication or remove_medication.
View tool JSON
{
"name": "list_medications",
"kind": "answer",
"impl": "imperative",
"description": "List medications currently being tracked, with dose, schedule, and a short id. Use that id with update_medication or remove_medication.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
}add_medicationAction
Start tracking a medication: its name, dose amount, and the times of day it is taken. Only records what the person is already taking — it does not suggest a dose or a schedule.
View tool JSON
{
"name": "add_medication",
"kind": "act",
"impl": "imperative",
"description": "Start tracking a medication: its name, dose amount, and the times of day it is taken. Only records what the person is already taking — it does not suggest a dose or a schedule.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"amount": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"schedule": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string"
},
"description": "Times of day this dose is taken, e.g. [\"08:00\", \"20:00\"]"
}
},
"required": [
"name",
"amount",
"schedule"
],
"additionalProperties": false
}
}update_medicationAction
Change the name, dose amount, or schedule of a medication already being tracked. Takes the short id from list_medications. Closes the previous dosing so a dose logged before the change still reflects the schedule that was actually in force then.
View tool JSON
{
"name": "update_medication",
"kind": "act",
"impl": "imperative",
"description": "Change the name, dose amount, or schedule of a medication already being tracked. Takes the short id from list_medications. Closes the previous dosing so a dose logged before the change still reflects the schedule that was actually in force then.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Short id from list_medications"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"amount": {
"type": "string",
"minLength": 1,
"maxLength": 40
},
"schedule": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string"
},
"description": "Times of day this dose is taken, e.g. [\"08:00\", \"20:00\"]"
}
},
"required": [
"id",
"name",
"amount",
"schedule"
],
"additionalProperties": false
}
}remove_medicationAction
Stop tracking a medication. Takes the short id from list_medications. This does not erase its history — past doses logged against it stay resolvable, so adherence for the period it was taken can still be calculated. Undo brings it back.
View tool JSON
{
"name": "remove_medication",
"kind": "act",
"impl": "imperative",
"description": "Stop tracking a medication. Takes the short id from list_medications. This does not erase its history — past doses logged against it stay resolvable, so adherence for the period it was taken can still be calculated. Undo brings it back.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "Short id from list_medications"
}
},
"required": [
"id"
],
"additionalProperties": false
}
}get_summaryAnswer
Summarize symptoms, medication adherence, and as-needed doses between two dates — the report a person would hand to a doctor. Defaults to the last 90 days when no dates are given. Only aggregates what was actually logged; it does not interpret, diagnose, or suggest anything.
View tool JSON
{
"name": "get_summary",
"kind": "answer",
"impl": "imperative",
"description": "Summarize symptoms, medication adherence, and as-needed doses between two dates — the report a person would hand to a doctor. Defaults to the last 90 days when no dates are given. Only aggregates what was actually logged; it does not interpret, diagnose, or suggest anything.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO timestamp, inclusive"
},
"to": {
"type": "string",
"description": "ISO timestamp, exclusive"
}
},
"additionalProperties": false
}
}prepare_doctor_summaryAction
Prepare the printable doctor summary and show it on screen so the person can save or print it. Covers the same symptoms, adherence and as-needed doses as get_summary, defaulting to the last 90 days. This reveals the summary and moves focus to it; it does not print or download on its own — the person taps Download PDF to save it as a file (works in any browser, including in-app ones) or Print / Ctrl+P in a standalone browser. Nothing leaves the browser.
View tool JSON
{
"name": "prepare_doctor_summary",
"kind": "act",
"impl": "imperative",
"description": "Prepare the printable doctor summary and show it on screen so the person can save or print it. Covers the same symptoms, adherence and as-needed doses as get_summary, defaulting to the last 90 days. This reveals the summary and moves focus to it; it does not print or download on its own — the person taps Download PDF to save it as a file (works in any browser, including in-app ones) or Print / Ctrl+P in a standalone browser. Nothing leaves the browser.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "ISO timestamp, inclusive"
},
"to": {
"type": "string",
"description": "ISO timestamp, exclusive"
}
},
"additionalProperties": false
}
}export_vaultAction
Export everything in the diary — every entry, medication and setting — as a single JSON backup the person can save or move elsewhere. Does not change anything in the diary, but it does reveal the whole thing in one response, so it asks for confirmation like any other data-moving tool.
View tool JSON
{
"name": "export_vault",
"kind": "act",
"impl": "imperative",
"description": "Export everything in the diary — every entry, medication and setting — as a single JSON backup the person can save or move elsewhere. Does not change anything in the diary, but it does reveal the whole thing in one response, so it asks for confirmation like any other data-moving tool.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
}import_vaultAction
Replace everything in the diary with a previously exported JSON backup (the object export_vault returns). This replaces, it does not merge: anything currently logged is discarded first. Undo restores what was there before the import.
View tool JSON
{
"name": "import_vault",
"kind": "act",
"impl": "imperative",
"description": "Replace everything in the diary with a previously exported JSON backup (the object export_vault returns). This replaces, it does not merge: anything currently logged is discarded first. Undo restores what was there before the import.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"version": {
"type": "number",
"const": 1
},
"entries": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"at": {
"type": "string"
},
"author": {
"type": "string",
"enum": [
"human",
"agent"
]
},
"editedBy": {
"type": "string",
"enum": [
"human",
"agent"
]
},
"payload": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "symptom"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"severity": {
"type": "integer",
"minimum": 0,
"maximum": 10
},
"location": {
"type": "string",
"maxLength": 80
}
},
"required": [
"kind",
"name",
"severity"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "dose"
},
"medId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"amount": {
"type": "string",
"maxLength": 40
}
},
"required": [
"kind",
"name",
"amount"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "sleep"
},
"hours": {
"type": "number",
"minimum": 0,
"maximum": 24
},
"quality": {
"type": "integer",
"minimum": 0,
"maximum": 10
}
},
"required": [
"kind",
"hours",
"quality"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "note"
},
"text": {
"type": "string",
"minLength": 1,
"maxLength": 1000
}
},
"required": [
"kind",
"text"
],
"additionalProperties": false
}
]
}
},
"required": [
"id",
"at",
"author",
"payload"
],
"additionalProperties": false
}
},
"meds": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"medId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"amount": {
"type": "string",
"maxLength": 40
},
"schedule": {
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string"
},
"description": "Times of day this dose is taken, e.g. [\"08:00\", \"20:00\"]"
},
"effectiveFrom": {
"type": "string"
},
"effectiveTo": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"medId",
"name",
"amount",
"schedule",
"effectiveFrom",
"effectiveTo"
],
"additionalProperties": false
}
},
"prefs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string",
"minLength": 1
},
"value": {
"type": [
"boolean",
"number"
]
}
},
"required": [
"key",
"value"
],
"additionalProperties": false
}
}
},
"required": [
"version",
"entries",
"meds",
"prefs"
],
"additionalProperties": false
}
}erase_allAction
Permanently erase every entry and medication in the diary. Requires confirm: true — only set that after the person has said out loud that they want everything erased; otherwise nothing is touched. Undo restores everything.
View tool JSON
{
"name": "erase_all",
"kind": "act",
"impl": "imperative",
"description": "Permanently erase every entry and medication in the diary. Requires confirm: true — only set that after the person has said out loud that they want everything erased; otherwise nothing is touched. Undo restores everything.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"confirm": {
"default": false,
"description": "Must be true. Set it only after the person has explicitly said, out loud, that they want everything erased.",
"type": "boolean"
}
},
"required": [
"confirm"
],
"additionalProperties": false
}
}load_sample_dataAction
Load example diary data for a demo — about two weeks of symptoms, medication doses and notes for a fictional person with rheumatoid arthritis, dated relative to today. Only works when the diary is completely empty, so it can never overwrite real records. Undo removes it again.
View tool JSON
{
"name": "load_sample_data",
"kind": "act",
"impl": "imperative",
"description": "Load example diary data for a demo — about two weeks of symptoms, medication doses and notes for a fictional person with rheumatoid arthritis, dated relative to today. Only works when the diary is completely empty, so it can never overwrite real records. Undo removes it again.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_app_stateAnswer
Report what is currently on screen: the focused section, accessibility settings, how many entries and medications are tracked, and whether an undo is available. Use this to answer 'what am I looking at' before deciding what to do next.
View tool JSON
{
"name": "get_app_state",
"kind": "answer",
"impl": "imperative",
"description": "Report what is currently on screen: the focused section, accessibility settings, how many entries and medications are tracked, and whether an undo is available. Use this to answer 'what am I looking at' before deciding what to do next.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
}
}focus_sectionAction
Scroll to and focus one section of the diary: today, history, medications, or settings. There is only one screen, so this does not navigate anywhere — it exists so someone who cannot scroll precisely can say 'take me to my medications'.
View tool JSON
{
"name": "focus_section",
"kind": "act",
"impl": "imperative",
"description": "Scroll to and focus one section of the diary: today, history, medications, or settings. There is only one screen, so this does not navigate anywhere — it exists so someone who cannot scroll precisely can say 'take me to my medications'.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"section": {
"type": "string",
"enum": [
"today",
"history",
"medications",
"settings"
]
}
},
"required": [
"section"
],
"additionalProperties": false
}
}set_accessibilityAction
Set text size (100, 150, or 200 percent) and/or high-contrast mode. Only the fields provided are changed; the rest stay as they are. This is what lets someone who cannot read the screen ask their agent to make it bigger.
View tool JSON
{
"name": "set_accessibility",
"kind": "act",
"impl": "imperative",
"description": "Set text size (100, 150, or 200 percent) and/or high-contrast mode. Only the fields provided are changed; the rest stay as they are. This is what lets someone who cannot read the screen ask their agent to make it bigger.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"textScale": {
"anyOf": [
{
"type": "number",
"const": 100
},
{
"type": "number",
"const": 150
},
{
"type": "number",
"const": 200
}
]
},
"highContrast": {
"type": "boolean"
}
},
"additionalProperties": false
}
}