Dayze — Life Context
Was dieses MCP kann
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and provenance.
Tools
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'What the user calls the item, e.g. "MacBook Pro 14 (2023)".'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replaces the tag list.'}, 'brand': {'type': 'string'}, 'model': {'type': 'string'}, 'notes': {'type': 'string', 'description': 'Free text from the user.'}, 'specs': {'type': 'object', 'description': "Stable facts, by the template's field names (computer.v1: nickname, manufacturer, model_name, model_identifier, year, primary_uses, capability_tags, product_family, form_factor, chip, cpu, architecture, performance_cores, efficiency_cores, total_cores, threads, gpu, gpu_cores, gpu_memory_bytes, neural_engine_cores, memory_bytes, memory, storage_devices, display, ports). Merged per key on update; null removes a key; other keys are kept as written. Only what the user or the device says, never inferred from a model name. Never device or account identifiers."}, 'state': {'type': 'object', 'description': 'Changing facts, as one observation: observed_at (ISO, default now), source (e.g. user_reported, system_profiler), confidence (0-1), and values such as os { name, version, build }, available_storage_bytes, battery, security { sip, gatekeeper, filevault }, services { bluebubbles: { installed_version, running, configured, blockers, checked_at } }. Merged per key; a key observed more recently is kept. Never changes specs or notes. Never device or account identifiers.'}, 'status': {'type': 'string', 'description': 'wishlist | ordered | owned | listed_for_sale | sold | returned | lost | disposed | donated. Default owned. To archive, use archive_inventory_item.'}, 'subtype': {'type': 'string', 'description': 'Specific kind: laptop, sweatshirt, guitar. Alias: item_type.'}, 'category': {'type': 'string', 'description': "electronics | instruments | clothing | shoes | bags | accessories | jewelry | watches | collectibles | sports | health | home | tools | vehicles | furniture | other. Computers, phones and cameras are electronics; synths are instruments. Defaults to the spec_template's category, else other."}, 'currency': {'type': 'string', 'description': 'ISO 4217, e.g. USD, SGD. Default USD.'}, 'location': {'type': 'string', 'description': 'Where it is kept.'}, 'condition': {'enum': ['new', 'excellent', 'good', 'worn', 'needs_repair', 'retired'], 'type': 'string'}, 'item_type': {'type': 'string', 'description': 'Alias for subtype (the stored column).'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contacts to link: purchased_from, or inherited_from when acquisition_type is inheritance.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'acquired_date': {'type': 'string', 'description': "YYYY-MM-DD it came into the user's life (gift, inheritance). add_inventory_item also stores it as purchase_date when none is given."}, 'acquired_from': {'type': 'string', 'description': 'Shop or person it came from.'}, 'current_value': {'type': 'number', 'description': 'Alias for estimated_value (the stored column).'}, 'purchase_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'spec_template': {'enum': ['computer.v1', 'phone.v1', 'camera.v1', 'synth.v1'], 'type': 'string', 'description': 'Which typed fields specs uses. Templates are listed in docs/MCP_LIFE_GRAPH.md. null (update) clears it.'}, 'purchase_price': {'type': 'number'}, 'estimated_value': {'type': 'number', 'description': 'What it is worth now. Alias: current_value.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'acquisition_type': {'type': 'string', 'description': 'purchase | gift | inheritance | …'}, 'reference_number': {'type': 'string', 'description': 'Manufacturer reference or model number (e.g. a watch reference).'}, 'subtype_confidence': {'type': 'number', 'description': '0-1, when the subtype is a guess.'}, 'specs_schema_version': {'type': 'integer', 'description': 'Layout of specs and state. Only 1 (the default).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'item': {'type': 'object', 'description': 'Inventory item record. With specs: spec_template, specs, state (a timestamped snapshot), state_freshness and capability_summary.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'inventory_id': {'type': 'string'}, 'idempotent_replay': {'type': 'boolean', 'description': 'true when this request_id already ran: the first result, nothing new written.'}, 'people_not_linked': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['inventory_id', 'value'], 'properties': {'notes': {'type': 'string'}, 'value': {'type': 'number', 'description': 'What it is worth.'}, 'source': {'type': 'string', 'description': 'Where the value comes from: appraisal, listing, estimate, …'}, 'currency': {'type': 'string', 'description': 'ISO 4217, default USD.'}, 'valued_at': {'type': 'string', 'description': 'ISO date or date-time; default now.'}, 'confidence': {'type': 'number', 'description': '0-1'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'inventory_id': {'type': 'string', 'description': 'The item id from add_inventory_item, get_inventory or search_inventory.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'valuation': {'type': 'object', 'additionalProperties': True}, 'inventory_id': {'type': 'string'}, 'idempotent_replay': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id', 'alias'], 'properties': {'alias': {'type': 'string'}, 'source': {'type': 'string'}, 'person_id': {'type': 'string'}, 'alias_kind': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'alias': {'type': 'string'}, 'aliases': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}, 'person_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['asset_id', 'preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'asset_id': {'type': 'string'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'asset': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'archived': {'type': 'boolean'}, 'asset_id': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['event_id', 'request_id'], 'properties': {'reason': {'type': 'string'}, 'event_id': {'type': 'string'}, 'request_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['expense_id', 'request_id'], 'properties': {'reason': {'type': 'string'}, 'expense_id': {'type': 'string'}, 'request_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['inventory_id', 'preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'reason': {'type': 'string', 'description': 'Why it is archived (kept on the receipt).'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'inventory_id': {'type': 'string', 'description': 'The item id from add_inventory_item, get_inventory or search_inventory.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'archived': {'type': 'boolean'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'inventory_id': {'type': 'string'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['trip_id', 'request_id'], 'properties': {'reason': {'type': 'string'}, 'trip_id': {'type': 'string'}, 'request_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['entity_type', 'entity_id'], 'properties': {'url': {'type': 'string', 'description': 'A web link (https://…) to an image. Not a storage path: upload a file, then attach its asset_id.'}, 'role': {'enum': ['original', 'processed', 'thumbnail', 'cover', 'document', 'receipt', 'certificate', 'photo', 'other'], 'type': 'string', 'description': 'original | cover | thumbnail | …'}, 'asset_id': {'type': 'string'}, 'metadata': {'type': 'object', 'description': 'Free-form metadata, merged into the stored metadata (metadata.source becomes the asset source).'}, 'entity_id': {'type': 'string'}, 'asset_type': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string', 'description': 'Caption for the attached asset (kept on a linked copy too).'}, 'entity_type': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'asset': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'asset_id': {'type': 'string'}, 'attached': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['food_id'], 'properties': {'url': {'type': 'string', 'description': 'Public https image URL to fetch and store. Use this or image_base64.'}, 'food_id': {'type': 'string', 'description': 'UUID of a Food Diary row the authenticated user owns'}, 'filename': {'type': 'string', 'description': 'Optional original filename'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'image_base64': {'type': 'string', 'description': 'Image bytes as base64 (optional data:image/...;base64, prefix). Use this or url.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'keep_consumed_at': {'type': 'boolean', 'description': 'true keeps the entry time even if the photo EXIF has a capture time'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['food_id', 'photo_url', 'replaced', 'previous_photo_url', 'consumed_at', 'consumed_at_changed', 'event_id', 'photo', 'life_state_rebuilt'], 'properties': {'photo': {'type': 'object', 'description': 'Stored image summary (mime_type, file_size_bytes, taken_at).', 'additionalProperties': True}, 'food_id': {'type': 'string'}, 'event_id': {'type': ['string', 'null']}, 'replaced': {'type': 'boolean', 'description': 'True when the entry already had a photo.'}, 'photo_url': {'type': 'string', 'description': 'Stored photo URL, re-read from the Food Diary row.'}, 'consumed_at': {'type': 'string'}, 'life_state_rebuilt': {'type': 'boolean'}, 'previous_photo_url': {'type': ['string', 'null']}, 'consumed_at_changed': {'type': 'boolean', 'description': 'True when photo EXIF moved the entry time.'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number'}, 'checks': {'type': 'array', 'items': {'type': 'string'}}, 'min_confidence': {'type': 'number'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['candidates', 'summary', 'count'], 'properties': {'count': {'type': 'number'}, 'summary': {'type': 'object', 'additionalProperties': True}, 'guidance': {'type': 'string'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max targets this run (1–100, default 25).'}, 'cursor': {'type': 'string', 'description': 'Resume token from a previous next_cursor.'}, 'dry_run': {'type': 'boolean'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'done': {'type': 'boolean'}, 'named': {'type': 'number'}, 'quota': {'type': 'object', 'description': 'Per-account monthly Places usage.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'next_cursor': {'type': ['string', 'null']}, 'rate_limited': {'type': 'boolean'}, 'skipped_named': {'type': 'number'}, 'skipped_no_match': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'reason': {'type': 'string'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'entity_type': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'dismissed': {'type': 'number'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['entity_type'], 'properties': {'source': {'type': 'string'}, 'entity_id': {'type': 'string'}, 'person_id': {'type': 'string'}, 'confidence': {'type': 'number'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'entity_type': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'identity_status': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'person': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'candidate_hash', 'request_id'], 'properties': {'preview_id': {'type': 'string'}, 'request_id': {'type': 'string'}, 'candidate_hash': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['family'], 'properties': {'family': {'enum': ['events', 'expenses', 'trips'], 'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['proposal_id', 'payload_hash', 'owner_session_id'], 'properties': {'request_id': {'type': 'string'}, 'proposal_id': {'type': 'string'}, 'payload_hash': {'type': 'string'}, 'idempotency_key': {'type': 'string'}, 'owner_session_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'enabled': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'assertionIds': {'type': 'array', 'items': {'type': 'string'}}, 'graphVersion': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['slug_a', 'slug_b'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD target date for both packs'}, 'peers': {'type': 'number', 'default': 6}, 'slug_a': {'type': 'string', 'description': 'First person slug'}, 'slug_b': {'type': 'string', 'description': 'Second person slug'}, 'similar': {'type': 'number', 'default': 4}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['pack', 'a', 'b', 'compare'], 'properties': {'a': {'type': 'object', 'description': 'First notable-person knowledge pack.', 'additionalProperties': True}, 'b': {'type': 'object', 'description': 'Second notable-person knowledge pack.', 'additionalProperties': True}, 'pack': {'type': 'string'}, 'compare': {'type': 'object', 'description': 'Computed comparison fields and URLs.', 'additionalProperties': True}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'entity_id': {'type': 'string'}, 'person_id': {'type': 'string'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'target_type': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'person': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_name'], 'properties': {'draft': {'type': 'string', 'description': 'The reply text to send later, max 20,000 characters. Replaces the saved draft; empty or null clears. Alias: draft_message.'}, 'source': {'type': 'object', 'properties': {'kind': {'enum': ['gmail', 'email', 'other'], 'type': 'string'}, 'thread_id': {'type': 'string'}, 'message_id': {'type': 'string'}}, 'description': 'The email the reply answers, as ids only (e.g. a search_gmail id is a message_id). Never a subject, sender or text. On update, null clears it.', 'additionalProperties': False}, 'channel': {'type': 'string', 'description': 'Where to reply: whatsapp, email, sms, call, imessage, telegram, instagram, facebook, signal, linkedin, twitter, slack, teams, work_email, zoom, dayze, other. Default email when source is set, else other.'}, 'summary': {'type': 'string', 'description': 'One line (max 280) in your own words: what the reply is about. Never paste the email body, subject line or sender address.'}, 'category': {'enum': ['personal', 'work'], 'type': 'string', 'description': 'Default personal.'}, 'person_id': {'type': 'string', 'description': 'An owned contact id; links that contact directly.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'person_name': {'type': 'string', 'description': 'Who the reply is owed to, as the user said it (e.g. "Ilana").'}, 'received_at': {'type': 'string', 'description': 'When they wrote (ISO date-time). Default now.'}, 'draft_message': {'type': 'string', 'description': 'Alias for draft.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'update_existing': {'type': 'boolean', 'description': 'When an unsent reply for this thread or person exists, write draft/summary onto it instead of returning it unchanged.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['reply', 'created', 'updated', 'deduplicated', 'matched_on', 'person_link', 'source_saved', 'message', 'life_state_rebuilt'], 'properties': {'reply': {'type': 'object', 'required': ['reply_id', 'person_name', 'person_id', 'channel', 'category', 'summary', 'draft', 'status', 'state', 'due', 'received_at', 'source'], 'properties': {'due': {'type': 'boolean', 'description': 'Owed now: pending, or snoozed with snooze_until passed. False while a snooze runs, and when sent or dismissed.'}, 'draft': {'type': ['string', 'null'], 'description': 'The reply text saved for later.'}, 'state': {'type': 'string', 'description': 'unsent (pending or snoozed), sent (the owner replied) or dismissed'}, 'source': {'type': ['object', 'null'], 'properties': {'kind': {'type': 'string', 'description': 'gmail, email or other'}, 'thread_id': {'type': ['string', 'null']}, 'message_id': {'type': ['string', 'null']}}, 'description': 'The email it answers, as ids only; null when none was saved.', 'additionalProperties': False}, 'status': {'type': 'string', 'description': 'pending, snoozed, responded or dismissed'}, 'channel': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'category': {'type': 'string', 'description': 'personal or work'}, 'reply_id': {'type': 'string'}, 'person_id': {'type': ['string', 'null'], 'description': 'Linked contact id; null when the reply is unlinked.'}, 'created_at': {'type': ['string', 'null']}, 'updated_at': {'type': ['string', 'null']}, 'approved_at': {'type': ['string', 'null'], 'description': 'PHI-427: when the owner approved the draft and opened it in Gmail, or null. Dayze never sends; the Gmail sync closes the reply when the email goes out.'}, 'person_name': {'type': 'string'}, 'received_at': {'type': 'string'}, 'responded_at': {'type': ['string', 'null']}, 'snooze_until': {'type': ['string', 'null']}}, 'description': 'One reply the user owes (Inbox → Pending Replies). Dayze never sends it.', 'additionalProperties': False}, 'app_url': {'type': 'string'}, 'created': {'type': 'boolean', 'description': 'True when this call saved a new reply.'}, 'message': {'type': 'string'}, 'updated': {'type': 'boolean', 'description': 'True when an existing unsent reply was changed (update_existing).'}, 'matched_on': {'type': ['string', 'null'], 'description': 'source_thread, source_message or person when deduplicated.'}, 'person_link': {'type': 'object', 'required': ['status', 'person_id', 'note'], 'properties': {'note': {'type': 'string'}, 'status': {'type': 'string', 'description': 'linked, ambiguous, no_match or lookup_failed'}, 'person_id': {'type': ['string', 'null']}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}}, 'matched_via': {'type': ['string', 'null']}, 'contact_name': {'type': ['string', 'null']}}, 'description': 'Whether a contact was linked. Linked only on one resolve_person match or an owned person_id.', 'additionalProperties': False}, 'deduplicated': {'type': 'boolean', 'description': 'True when an unsent reply for the same thread or person was returned instead of a new one.'}, 'source_saved': {'type': 'boolean', 'description': 'False when a source was given and could not be stored.'}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}, 'tier': {'enum': ['vip', 'normal', 'low'], 'type': 'string'}, 'email': {'type': 'string'}, 'notes': {'type': 'string'}, 'phone': {'type': 'string'}, 'aliases': {'type': 'array', 'items': {'type': 'string'}}, 'birthday': {'type': 'string', 'description': 'YYYY-MM-DD, YYYY-MM, YYYY, or MM-DD / --MM-DD when the year is unknown (same as update_person)'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'is_favorite': {'type': 'boolean'}, 'context_tags': {'type': 'array', 'items': {'type': 'string'}}, 'relationship': {'type': 'string'}, 'relationships': {'type': 'array', 'items': {'type': 'string'}}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'hint': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': ['string', 'null']}, 'people': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'person': {'type': 'object', 'description': 'CRM person record.', 'additionalProperties': True}, 'aliases': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Aliases saved on the new contact.'}, 'created': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'birthday': {'type': 'string', 'description': 'As stored: YYYY-MM-DD. A year-unknown birthday is 1900-MM-DD (Feb 29: 1904-02-29).'}, 'duplicate': {'type': 'boolean', 'description': 'True when the contact already existed: nothing on it was changed.'}, 'person_id': {'type': 'string', 'description': 'The new contact, or the existing one on a duplicate.'}, 'created_at': {'type': 'string'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}}, 'matched_via': {'type': ['string', 'null']}, 'not_applied': {'type': 'array', 'items': {'type': 'string'}, 'description': 'On a duplicate: the fields sent that were not saved.'}, 'role_expand': {'type': 'boolean'}, 'aliases_not_saved': {'type': 'array', 'items': {'type': 'object', 'required': ['alias', 'reason'], 'properties': {'alias': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Aliases not saved (another contact has them); the contact was still created.'}, 'idempotent_replay': {'type': 'boolean'}, 'birthday_precision': {'type': ['string', 'null'], 'description': 'day, month, year, month_day (year unknown) or approximate.'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'area': {'type': 'string'}, 'city': {'type': 'string'}, 'name': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'hours': {'type': 'string', 'description': 'Alias for opening_hours'}, 'notes': {'type': 'string'}, 'phone': {'type': 'string'}, 'address': {'type': 'string'}, 'country': {'type': 'string'}, 'website': {'type': 'string'}, 'category': {'type': 'string', 'description': 'restaurant|cafe|supermarket|shop|hawker|… (aliases mapped to business_contacts.category)'}, 'latitude': {'type': 'number'}, 'longitude': {'type': 'number'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string'}, 'price_level': {'type': 'string', 'description': 'Alias for affordability'}, 'hours_source': {'type': 'string', 'description': 'agent | google_places | user'}, 'affordability': {'type': 'string', 'description': '$ | $$ | $$$ (or 1–3)'}, 'opening_hours': {'type': 'string'}, 'phone_numbers': {'type': 'array', 'items': {'type': 'string'}}, 'idempotency_key': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'place': {'type': 'object', 'description': 'Saved place card.', 'additionalProperties': True}, 'created': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'place_id': {'type': 'string'}, 'duplicate': {'type': 'boolean'}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['event_id', 'request_id'], 'properties': {'event_id': {'type': 'string', 'description': 'UUID of a calendar event the authenticated user owns'}, 'request_id': {'type': 'string', 'description': 'Required client idempotency key; a replay returns the first result.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['event_id', 'deleted', 'food_deleted_ids', 'life_state_rebuilt'], 'properties': {'deleted': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}, 'event_id': {'type': 'string'}, 'food_deleted_ids': {'type': 'array', 'items': {'type': 'string'}}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['food_id', 'preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'food_id': {'type': 'string', 'description': 'UUID of a Food Diary row the authenticated user owns'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['food_id', 'deleted', 'life_state_rebuilt'], 'properties': {'deleted': {'type': 'object', 'description': 'Deleted food diary row.', 'additionalProperties': True}, 'food_id': {'type': 'string'}, 'event_id': {'type': ['string', 'null']}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'life_state_rebuilt': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['person_id', 'preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'person_id': {'type': 'string', 'description': 'UUID of the owned contact to delete.'}, 'preview_id': {'type': 'string', 'description': 'Durable preview_id returned by delete_person_preview.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original result.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'deleted': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'restore_id': {'type': 'string'}, 'reversible': {'type': 'boolean'}, 'deleted_person': {'type': 'object', 'description': 'CRM person record.', 'additionalProperties': True}, 'deleted_person_id': {'type': 'string'}, 'life_state_rebuilt': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string', 'description': 'UUID of the owned contact to review.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['preview_id', 'person_id', 'restore_window_days', 'reversible'], 'properties': {'person': {'type': 'object', 'description': 'CRM person record.', 'additionalProperties': True}, 'manifest': {'type': 'object', 'additionalProperties': True}, 'person_id': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'reversible': {'type': 'boolean'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'id': {'type': 'string'}, 'place_id': {'type': 'string'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'business_contact_id': {'type': 'string'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['place_id', 'business_contact_id', 'deleted'], 'properties': {'deleted': {'type': 'object', 'description': 'Deleted saved place card row.', 'additionalProperties': True}, 'place_id': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'business_contact_id': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['visit_id', 'preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'visit_id': {'type': 'string', 'description': 'UUID of a place_visits row: visit_id from get_place_visits or log_place_visit.'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['visit_id', 'place_visit_id', 'deleted'], 'properties': {'deleted': {'type': 'object', 'description': 'Deleted place visit row.', 'additionalProperties': True}, 'visit_id': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'place_visit_id': {'type': 'string'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['clarification_id'], 'properties': {'reason': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'clarification_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'dismissed': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'place_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'fill_empty_only': {'type': 'boolean'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'code': {'type': 'string', 'description': 'Capability or enrich outcome (not_configured, no_match, …).'}, 'place': {'type': 'object', 'description': 'Saved place card.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'enriched': {'type': 'boolean'}, 'place_id': {'type': 'string'}, 'capability': {'type': 'string'}, 'applied_fields': {'type': 'array', 'items': {'type': 'string'}}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'fact': {'type': 'string', 'description': 'Alias for query'}, 'limit': {'type': 'number', 'description': 'Max evidence rows 1–20, default 8'}, 'query': {'type': 'string', 'description': 'Fact or phrase to explain'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['query', 'evidence', 'count'], 'properties': {'count': {'type': 'number'}, 'query': {'type': 'string'}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'message': {'type': ['string', 'null']}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'description': 'Provenance row from learned facts, life events, or memories.', 'additionalProperties': True}}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number'}, 'query': {'type': 'string'}, 'person_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['candidates', 'count'], 'properties': {'count': {'type': 'number'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string'}, 'include_signed_url': {'type': 'boolean'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'asset': {'type': 'object', 'additionalProperties': True}, 'count': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['cities', 'count'], 'properties': {'count': {'type': 'number'}, 'cities': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Alias for query.'}, 'at': {'type': 'string', 'description': 'ISO date-time to answer as of (default now), e.g. 2026-09-26T09:00:00+08:00.'}, 'focus': {'type': 'string', 'description': 'Optional focus hint echoed in the pack (e.g. places, travel, people)'}, 'query': {'type': 'string', 'description': 'Question that guides facts and memories.'}, 'timezone': {'type': 'string', 'description': 'IANA time zone for today (default: where the user is now, else their home zone).'}, 'include_money': {'type': 'boolean', 'default': False, 'description': 'Include the private cashflow summary'}, 'include_trips': {'type': 'boolean', 'default': False, 'description': 'Include recent/upcoming trips from completed travel history'}, 'include_places': {'type': 'boolean', 'default': False, 'description': 'Include recent canonical places.'}, 'include_location': {'type': 'boolean', 'default': False, 'description': 'Include city/country label; never returns a precise address'}, 'include_memories': {'type': 'boolean', 'default': True, 'description': 'Include recent memories.'}, 'include_place_visits': {'type': 'boolean', 'default': True, 'description': 'Include recent venue visits; never a GPS trail'}, 'include_quiz_results': {'type': 'boolean', 'default': True, 'description': 'Include latest quiz results.'}, 'include_relationships': {'type': 'boolean', 'default': True, 'description': 'Include people and relationship context.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['protocol', 'preferred_tool', 'identity', 'pulse', 'whats_next'], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string', 'description': 'Present when life state is unavailable.'}, 'facts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind', 'text', 'state', 'source_label'], 'properties': {'id': {'type': 'string', 'description': 'Table-qualified record id, e.g. people:<uuid> or events:<id>.'}, 'kind': {'type': 'string'}, 'text': {'type': 'string'}, 'tier': {'type': 'string', 'description': 'entity, join, static, dynamic or vector.'}, 'state': {'type': 'string', 'description': 'current, planned, completed, stale (age_label set) or disputed.'}, 'source': {'type': 'string'}, 'age_label': {'type': ['string', 'null']}, 'confidence': {'type': ['number', 'null']}, 'provenance': {'type': 'string', 'description': 'stated, observed, inferred or imported.'}, 'source_ref': {'type': ['string', 'null']}, 'inspect_url': {'type': 'string', 'description': 'PHI-434: the Dayze page for this record, when it has one. Cite with it.'}, 'observed_at': {'type': ['string', 'null']}, 'evidence_ref': {'type': ['string', 'null']}, 'source_label': {'type': 'string', 'description': 'Where the fact came from, e.g. "from Contacts".'}, 'last_confirmed_at': {'type': ['string', 'null']}}, 'description': 'One personal fact chosen for the question. Same ids as Dayze chat.', 'additionalProperties': True}, 'description': 'Question-aware personal facts, in selection order.'}, 'focus': {'type': ['string', 'null']}, 'pulse': {'type': 'object', 'additionalProperties': True}, 'query': {'type': ['string', 'null']}, 'trace': {'type': 'object', 'required': ['fact_ids', 'assembler'], 'properties': {'caller': {'type': 'string'}, 'fact_ids': {'type': 'array', 'items': {'type': 'string'}}, 'question': {'type': 'string'}, 'assembler': {'type': 'string'}, 'scope_key': {'type': 'string'}, 'used_tokens': {'type': 'number'}, 'budget_tokens': {'type': 'number'}, 'selection_notes': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Which facts were supplied and why. fact_ids equals facts[].id.', 'additionalProperties': True}, 'trips': {'type': 'object', 'description': 'Recent trips when include_trips=true.', 'additionalProperties': True}, 'places': {'type': 'object', 'description': 'Recent canonical places when include_places=true.', 'additionalProperties': True}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'omitted': {'type': 'array', 'items': {'type': 'object', 'required': ['reason', 'kind', 'count'], 'properties': {'kind': {'type': 'string'}, 'count': {'type': 'number'}, 'reason': {'type': 'string'}}, 'additionalProperties': True}, 'description': 'Facts left out, counted by reason.'}, 'partial': {'type': 'boolean'}, 'identity': {'type': 'object', 'additionalProperties': True}, 'memories': {'type': 'object', 'additionalProperties': True}, 'protocol': {'type': 'object', 'description': 'Life Context metadata.', 'additionalProperties': True}, 'sections': {'type': 'object', 'description': 'Per-section ok/error status for partial packs.', 'additionalProperties': True}, 'redaction': {'type': 'object', 'description': 'pii redacted|raw; sensitive_topics the caller may receive; counts of sensitive trackers / memories withheld.', 'additionalProperties': True}, 'whats_next': {'type': 'object', 'additionalProperties': True}, 'known_facts': {'type': 'array', 'items': {'type': 'object', 'description': 'A correctable contact, learned fact or memory from the facts slice: ref (in trace.fact_ids), kind, text, source. Disputed or no-longer-true facts are left out.', 'additionalProperties': True}}, 'who_matters': {'type': 'object', 'additionalProperties': True}, 'generated_at': {'type': 'string'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'place_visits': {'type': 'array', 'items': {'type': 'object', 'description': 'Recent place visit.', 'additionalProperties': True}}, 'preferred_tool': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'include_residence': {'type': 'boolean'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['countries', 'count'], 'properties': {'count': {'type': 'number'}, 'countries': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'known_at': {'type': 'string'}, 'valid_at': {'type': 'string'}, 'people_id': {'type': 'string', 'description': 'CRM people.id UUID'}, 'person_id': {'type': 'string', 'description': 'Alias for people_id'}, 'predicates': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'states': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'enabled': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['entity_type', 'entity_id'], 'properties': {'entity_id': {'type': 'string'}, 'asset_type': {'type': 'string'}, 'entity_type': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'assets': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['entity_type', 'entity_id'], 'properties': {'entity_id': {'type': 'string'}, 'entity_type': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'links': {'type': 'array', 'items': {'type': 'object', 'description': 'A stored life_entity_links row plus its derived confirmation (explicit | pending | confirmed | rejected). A rejected link is kept only as a record of the decision and is not a relationship.', 'additionalProperties': True}}, 'message': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'at': {'type': 'string', 'description': 'ISO date-time to answer as of (default now), e.g. 2026-09-26T09:00:00+08:00.'}, 'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD (preferred over range)'}, 'kinds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by event_kind: life_event, calendar_block, todo, goal, travel_segment, food_log, health_record, transaction, media_log, work, family, personal. Alias "food" (also meal/drink/snack) matches the displayed Food category: food_log rows plus Meal/Drink/Snack life_events. total/has_more count only matching rows.'}, 'limit': {'type': 'number', 'maximum': 500, 'minimum': 1}, 'range': {'enum': ['today', 'week', 'month', 'year', 'decade', 'all'], 'type': 'string'}, 'cursor': {'type': 'string'}, 'timezone': {'type': 'string', 'description': 'IANA time zone for today (default: where the user is now, else their home zone).'}, 'include_archived': {'type': 'boolean'}, 'include_browsing': {'type': 'boolean', 'description': 'Include extension "Browsed domain · Xm" auto-events (default false)'}, 'include_calendar_blocks': {'type': 'boolean', 'description': 'Include Focus Time / calendar_block rows (default false)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['events', 'timezone', 'range', 'from', 'to', 'cap', 'truncated'], 'properties': {'to': {'type': ['string', 'null'], 'description': 'Inclusive YYYY-MM-DD upper bound; null for all records.'}, 'cap': {'type': 'number'}, 'from': {'type': ['string', 'null'], 'description': 'Inclusive YYYY-MM-DD lower bound; null for all records.'}, 'range': {'type': 'string'}, 'total': {'type': 'number'}, 'events': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'has_more': {'type': 'boolean'}, 'ordering': {'type': 'string'}, 'timezone': {'type': 'string', 'description': 'Resolved timezone used for this event window and as fallback for rows without one.'}, 'truncated': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'next_cursor': {'type': ['string', 'null']}, 'server_time': {'type': 'string'}, 'snapshot_at': {'type': 'string'}, 'snapshot_id': {'type': 'string'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'period': {'enum': ['month', 'year'], 'type': 'string', 'description': 'Summary window. Default month.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['period'], 'properties': {'net': {'type': 'number'}, 'usd': {'type': 'object', 'description': 'Totals converted to USD (approximate FX).', 'additionalProperties': True}, 'count': {'type': 'number'}, 'spend': {'type': 'number'}, 'income': {'type': 'number'}, 'period': {'enum': ['month', 'year'], 'type': 'string'}, 'currency': {'type': ['string', 'null']}, 'by_currency': {'type': 'array', 'items': {'type': 'object', 'description': 'Per-currency spend/income/net — never FX-converted.', 'additionalProperties': True}}, 'period_days': {'type': 'number'}, 'multi_currency': {'type': 'boolean'}, 'top_categories': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD'}, 'limit': {'type': 'number', 'description': 'Max 1–50, default 25'}, 'event_id': {'type': 'string'}, 'place_id': {'type': 'string'}, 'person_id': {'type': 'string'}, 'expense_id': {'type': 'string'}, 'person_name': {'type': 'string'}, 'place_query': {'type': 'string', 'description': 'Venue/merchant substring'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': ['string', 'null']}, 'window': {'type': 'object', 'description': 'Bounded from/to lookback window.', 'additionalProperties': True}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'no_data': {'type': 'boolean'}, 'truncated': {'type': 'boolean'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'interactions': {'type': 'array', 'items': {'type': 'object', 'description': 'life_update row with hops + sources provenance.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': '1-200, default 50'}, 'offset': {'type': 'number'}, 'search': {'type': 'string', 'description': 'Match name, brand, model, notes or reference number.'}, 'status': {'type': 'string', 'description': 'wishlist | ordered | owned | listed_for_sale | sold | returned | lost | disposed | donated | archived'}, 'sort_by': {'enum': ['created_at', 'name', 'value'], 'type': 'string'}, 'category': {'type': 'string', 'description': 'e.g. electronics, watches, clothing'}, 'include_archived': {'type': 'boolean', 'description': 'Include archived and no-longer-owned items.'}, 'include_sensitive': {'type': 'boolean', 'description': 'API keys only: include stored identifiers. Ignored for connectors without pii:read.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'items': {'type': 'array', 'items': {'type': 'object', 'description': 'Inventory item record. With specs: spec_template, specs, state (a timestamped snapshot), state_freshness and capability_summary.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['inventory_id'], 'properties': {'inventory_id': {'type': 'string', 'description': 'The item id from add_inventory_item, get_inventory or search_inventory.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'item': {'type': 'object', 'description': 'Inventory item record. With specs: spec_template, specs, state (a timestamped snapshot), state_freshness and capability_summary.', 'additionalProperties': True}, 'assets': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'people': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'valuations': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'people_links': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'capability_summary': {'type': 'string', 'description': 'One line to plan from: the item, its stored specs, and its last observed state with its date.'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['inventory_id'], 'properties': {'inventory_id': {'type': 'string', 'description': 'The item id from add_inventory_item, get_inventory or search_inventory.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'valuations': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'inventory_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Alias for query.'}, 'at': {'type': 'string', 'description': 'ISO date-time to answer as of (default now), e.g. 2026-09-26T09:00:00+08:00.'}, 'query': {'type': 'string', 'maxLength': 500, 'description': 'Optional question. Drives the question-aware facts slice (family, names, dates, merchants) returned in facts/trace.'}, 'timezone': {'type': 'string', 'description': 'IANA time zone for today (default: where the user is now, else their home zone).'}, 'include_money': {'type': 'boolean', 'default': False, 'description': 'Include money facts in the question-aware facts slice (opt-in; the grant must allow financial details).'}, 'include_location': {'type': 'boolean', 'default': False, 'description': 'Include city/country label; never returns a precise address'}, 'include_memories': {'type': 'boolean', 'default': True, 'description': 'Include recent memory summaries (default true; set false to omit)'}, 'include_relationships': {'type': 'boolean', 'default': True, 'description': 'Include inner-circle and relationship summaries (default true; set false to omit)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['identity', 'today_events', 'upcoming_events'], 'properties': {'facts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'kind', 'text', 'state', 'source_label'], 'properties': {'id': {'type': 'string', 'description': 'Table-qualified record id, e.g. people:<uuid> or events:<id>.'}, 'kind': {'type': 'string'}, 'text': {'type': 'string'}, 'tier': {'type': 'string', 'description': 'entity, join, static, dynamic or vector.'}, 'state': {'type': 'string', 'description': 'current, planned, completed, stale (age_label set) or disputed.'}, 'source': {'type': 'string'}, 'age_label': {'type': ['string', 'null']}, 'confidence': {'type': ['number', 'null']}, 'provenance': {'type': 'string', 'description': 'stated, observed, inferred or imported.'}, 'source_ref': {'type': ['string', 'null']}, 'inspect_url': {'type': 'string', 'description': 'PHI-434: the Dayze page for this record, when it has one. Cite with it.'}, 'observed_at': {'type': ['string', 'null']}, 'evidence_ref': {'type': ['string', 'null']}, 'source_label': {'type': 'string', 'description': 'Where the fact came from, e.g. "from Contacts".'}, 'last_confirmed_at': {'type': ['string', 'null']}}, 'description': 'One personal fact chosen for the question. Same ids as Dayze chat.', 'additionalProperties': True}, 'description': 'Question-aware personal facts, in selection order.'}, 'trace': {'type': 'object', 'required': ['fact_ids', 'assembler'], 'properties': {'caller': {'type': 'string'}, 'fact_ids': {'type': 'array', 'items': {'type': 'string'}}, 'question': {'type': 'string'}, 'assembler': {'type': 'string'}, 'scope_key': {'type': 'string'}, 'used_tokens': {'type': 'number'}, 'budget_tokens': {'type': 'number'}, 'selection_notes': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Which facts were supplied and why. fact_ids equals facts[].id.', 'additionalProperties': True}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'omitted': {'type': 'array', 'items': {'type': 'object', 'required': ['reason', 'kind', 'count'], 'properties': {'kind': {'type': 'string'}, 'count': {'type': 'number'}, 'reason': {'type': 'string'}}, 'additionalProperties': True}, 'description': 'Facts left out, counted by reason.'}, 'partial': {'type': 'boolean', 'description': 'True when the facts slice is incomplete; never read a missing fact as "none on file".'}, 'identity': {'type': 'object', 'description': 'Account identity and timezone.', 'additionalProperties': True}, 'sections': {'type': 'object', 'description': 'sections.harness: ok, or error (HARNESS_FAILED / HARNESS_DEGRADED with failed_sources) when facts may be missing.', 'additionalProperties': True}, 'redaction': {'type': 'object', 'description': 'pii redacted|raw; sensitive_topics the caller may receive; counts of sensitive trackers / memories withheld.', 'additionalProperties': True}, 'mood_score': {'type': ['number', 'null']}, 'energy_score': {'type': ['number', 'null']}, 'inner_circle': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'pulse_streak': {'type': ['number', 'null']}, 'social_edges': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'today_events': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}}, 'active_trackers': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'recent_memories': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze agent memory record.', 'additionalProperties': True}}, 'upcoming_events': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}}, 'pending_responses': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'social_edges_limit': {'type': 'number', 'description': 'Max edges returned in social_edges.'}, 'social_edges_total': {'type': ['number', 'null'], 'description': 'person_connections rows on file; null when unknown.'}, 'relationship_health': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'social_edges_truncated': {'type': 'boolean', 'description': 'True when more edges exist than social_edges lists.'}, 'pending_responses_count': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'full': {'type': 'boolean', 'default': False, 'description': 'Include additional people by last interaction, up to max_people'}, 'max_people': {'type': 'number', 'default': 80}, 'event_links_limit': {'type': 'number', 'default': 25}, 'include_event_links': {'type': 'boolean', 'default': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['hot', 'node_count', 'edge_count', 'nodes', 'edges'], 'properties': {'hot': {'type': 'boolean'}, 'edges': {'type': 'array', 'items': {'type': 'object', 'description': 'A relationship edge between people.', 'additionalProperties': True}}, 'nodes': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'edge_count': {'type': 'number'}, 'node_count': {'type': 'number'}, 'event_people_links': {'type': 'array', 'items': {'type': 'object', 'description': 'A recent event-to-person link.', 'additionalProperties': True}}, 'max_people_requested': {'type': 'number'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'at': {'type': 'string', 'description': 'ISO timestamp'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'at': {'type': ['string', 'null']}, 'place': {'type': ['object', 'null'], 'description': 'Canonical place record.', 'additionalProperties': True}, 'confidence': {'type': 'number'}, 'provenance': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'city': {'type': 'string'}, 'from': {'type': 'string'}, 'place': {'type': 'string'}, 'country': {'type': 'string'}, 'precision': {'enum': ['point', 'venue', 'neighborhood', 'city', 'country'], 'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'visits': {'type': 'array', 'items': {'type': 'object', 'description': 'Normalized place visit. visit_id (= id) is the place_visits row id delete_place_visit takes; null on event/GPS evidence rows.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Alias for query.'}, 'focus': {'type': 'string', 'description': 'Ranks memories toward this focus. next_actions (or current, now) returns only up to 4 next-action memories.'}, 'limit': {'type': 'number', 'description': 'Max rows 1–50, default 20'}, 'query': {'type': 'string', 'description': 'Semantic focus (optional)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'memories'], 'properties': {'mode': {'enum': ['semantic', 'keyword', 'blended', 'chronological'], 'type': 'string'}, 'query': {'type': 'string'}, 'events': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}}, 'people': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'memories': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze agent memory record.', 'additionalProperties': True}}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD filter'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD filter'}, 'name': {'type': 'string', 'description': 'Surface name if person_id unknown'}, 'limit': {'type': 'number', 'description': 'Max rows 1–200, default 50'}, 'person_id': {'type': 'string', 'description': 'CRM people.id'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'name': {'type': 'string'}, 'model': {'type': 'string'}, 'totals': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'entries': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'person_id': {'type': 'string'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'person_inspect_url': {'type': 'string', 'description': "The contact's Dayze page."}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': '1-200, default 50.'}, 'status': {'enum': ['unsent', 'sent', 'dismissed', 'all'], 'type': 'string'}, 'reply_id': {'type': 'string', 'description': 'Read one reply (ignores the filters).'}, 'person_id': {'type': 'string'}, 'person_name': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['pending_replies', 'count', 'has_more', 'status'], 'properties': {'count': {'type': 'number'}, 'status': {'type': 'string', 'description': 'The filter applied: unsent, sent, dismissed or all.'}, 'app_url': {'type': 'string'}, 'has_more': {'type': 'boolean'}, 'pending_replies': {'type': 'array', 'items': {'type': 'object', 'required': ['reply_id', 'person_name', 'person_id', 'channel', 'category', 'summary', 'draft', 'status', 'state', 'due', 'received_at', 'source'], 'properties': {'due': {'type': 'boolean', 'description': 'Owed now: pending, or snoozed with snooze_until passed. False while a snooze runs, and when sent or dismissed.'}, 'draft': {'type': ['string', 'null'], 'description': 'The reply text saved for later.'}, 'state': {'type': 'string', 'description': 'unsent (pending or snoozed), sent (the owner replied) or dismissed'}, 'source': {'type': ['object', 'null'], 'properties': {'kind': {'type': 'string', 'description': 'gmail, email or other'}, 'thread_id': {'type': ['string', 'null']}, 'message_id': {'type': ['string', 'null']}}, 'description': 'The email it answers, as ids only; null when none was saved.', 'additionalProperties': False}, 'status': {'type': 'string', 'description': 'pending, snoozed, responded or dismissed'}, 'channel': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'category': {'type': 'string', 'description': 'personal or work'}, 'reply_id': {'type': 'string'}, 'person_id': {'type': ['string', 'null'], 'description': 'Linked contact id; null when the reply is unlinked.'}, 'created_at': {'type': ['string', 'null']}, 'updated_at': {'type': ['string', 'null']}, 'approved_at': {'type': ['string', 'null'], 'description': 'PHI-427: when the owner approved the draft and opened it in Gmail, or null. Dayze never sends; the Gmail sync closes the reply when the email goes out.'}, 'person_name': {'type': 'string'}, 'received_at': {'type': 'string'}, 'responded_at': {'type': ['string', 'null']}, 'snooze_until': {'type': ['string', 'null']}}, 'description': 'One reply the user owes (Inbox → Pending Replies). Dayze never sends it.', 'additionalProperties': False}}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size (default 100, max 500)'}, 'query': {'type': 'string', 'description': 'Literal substring search over contact name, slug, or email. No fuzzy fallback.'}, 'cursor': {'type': 'string'}, 'offset': {'type': 'number', 'description': 'Skip N rows (default 0)'}, 'include_notes': {'type': 'boolean', 'description': 'When true, include notes (server-redacted). Default false.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['people', 'total', 'limit', 'offset', 'truncated'], 'properties': {'limit': {'type': 'number'}, 'query': {'type': ['string', 'null']}, 'total': {'type': 'number'}, 'offset': {'type': 'number'}, 'people': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'has_more': {'type': 'boolean'}, 'no_match': {'type': 'boolean', 'description': 'True when a non-empty query matched no contacts.'}, 'ordering': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'match_mode': {'type': 'string', 'description': 'unfiltered or literal_substring; get_people has no fuzzy fallback.'}, 'next_cursor': {'type': ['string', 'null']}, 'server_time': {'type': 'string'}, 'snapshot_at': {'type': 'string'}, 'snapshot_id': {'type': 'string'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'include_notes': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['cleanup_id'], 'properties': {'cleanup_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['cleanup_id', 'status'], 'properties': {'status': {'type': 'string'}, 'cleanup_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'person': {'type': 'object', 'additionalProperties': True}, 'connections': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Surface name if person_id unknown'}, 'person_id': {'type': 'string', 'description': 'CRM people.id'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'name': {'type': ['string', 'null']}, 'aliases': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'person_id': {'type': ['string', 'null']}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'person': {'type': 'object', 'additionalProperties': True}, 'connections': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD filter'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD filter'}, 'kind': {'type': 'string', 'description': 'Optional filter: meeting, visit, gift, stayed_over, met, …'}, 'name': {'type': 'string'}, 'limit': {'type': 'number', 'description': 'Max rows 1–100, default 40'}, 'person_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'name': {'type': 'string'}, 'count': {'type': 'number'}, 'events': {'type': 'array', 'items': {'type': 'object', 'description': 'Interaction or co-tagged event row.', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'person_id': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'matched_via': {'type': ['string', 'null']}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'person_inspect_url': {'type': 'string', 'description': "The contact's Dayze page."}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string', 'description': 'UUID'}, 'include_notes': {'type': 'boolean', 'description': 'When true, include center.notes (server-redacted). Default false.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['center', 'connection_count', 'connections'], 'properties': {'center': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'connections': {'type': 'array', 'items': {'type': 'object', 'description': 'A declared connection to the center person.', 'additionalProperties': True}}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'include_notes': {'type': 'boolean'}, 'connection_count': {'type': 'number'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'person_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'photos': {'type': 'array', 'items': {'type': 'object', 'description': 'Photo or entity asset metadata.', 'additionalProperties': True}}, 'person_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD filter'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD filter'}, 'name': {'type': 'string', 'description': 'Surface name if person_id unknown'}, 'limit': {'type': 'number', 'description': 'Max rows 1–200, default 50'}, 'person_id': {'type': 'string', 'description': 'CRM people.id'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'name': {'type': 'string'}, 'count': {'type': 'number'}, 'totals': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'entries': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'person_id': {'type': 'string'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'person_inspect_url': {'type': 'string', 'description': "The contact's Dayze page."}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['photo_id'], 'properties': {'photo_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'photo': {'type': 'object', 'description': 'Photo or entity asset metadata.', 'additionalProperties': True}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['event_id'], 'properties': {'event_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'photos': {'type': 'array', 'items': {'type': 'object', 'description': 'Photo or entity asset metadata.', 'additionalProperties': True}}, 'event_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['place_id'], 'properties': {'place_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'photos': {'type': 'array', 'items': {'type': 'object', 'description': 'Photo or entity asset metadata.', 'additionalProperties': True}}, 'place_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'place_id': {'type': 'string'}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'place': {'type': 'object', 'description': 'Saved place card.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'place_id': {'type': 'string'}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'tag': {'type': 'string'}, 'area': {'type': 'string'}, 'city': {'type': 'string'}, 'near': {'type': 'string', 'description': 'Filter saved cards by area/tag/notes (e.g. Madeira).'}, 'limit': {'type': 'number'}, 'query': {'type': 'string', 'description': 'Name contains, case-insensitive (e.g. "QA Map Probe Tokyo").'}, 'country': {'type': 'string'}, 'affordability': {'type': 'string', 'description': '$ | $$ | $$$'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'places': {'type': 'array', 'items': {'type': 'object', 'description': 'Canonical place record.', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'saved_count': {'type': 'number'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'saved_places': {'type': 'array', 'items': {'type': 'object', 'description': 'Saved place card (business_contacts).', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['place'], 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'place': {'type': 'string'}, 'place_id': {'type': 'string'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['place', 'visits', 'count'], 'properties': {'count': {'type': 'number'}, 'place': {'type': 'string'}, 'visits': {'type': 'array', 'items': {'type': 'object', 'description': 'Normalized place visit. visit_id (= id) is the place_visits row id delete_place_visit takes; null on event/GPS evidence rows.', 'additionalProperties': True}}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'confidence': {'type': 'number'}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'people_present': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'matching_events': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'limit': {'type': 'number'}, 'include_eras': {'type': 'boolean', 'description': 'Include life_eras rows (default true)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'eras': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'count': {'type': 'number'}, 'residences': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'limit': {'type': 'number'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'sleeps': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'range': {'enum': ['day', 'week', 'month'], 'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'range': {'type': 'string'}, 'nights': {'type': 'number'}, 'total_minutes': {'type': 'number'}, 'average_minutes': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['trackers'], 'properties': {'note': {'type': 'string'}, 'trackers': {'type': 'array', 'items': {'type': 'object', 'description': 'A currently active tracker.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'tag': {'type': 'string', 'description': 'Exact tag, e.g. project:max-soko-poker-venture or rail:zelle'}, 'from': {'type': 'string'}, 'type': {'type': 'string'}, 'limit': {'type': 'number', 'description': 'Page size 1-500, default 100.'}, 'cursor': {'type': 'string', 'description': 'Continue the same immutable one-hour snapshot; other filters remain frozen.'}, 'offset': {'type': 'number', 'description': 'Skip this many rows of a new snapshot (a cursor carries its own).'}, 'project': {'type': 'string', 'description': 'Project label or slug → project:{slug}'}, 'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'transactions': {'type': 'array', 'items': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'trips': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['trip_id'], 'properties': {'trip_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'trip': {'type': 'object', 'additionalProperties': True}, 'people': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'places': {'type': 'array', 'items': {'type': 'object', 'description': 'Canonical place record.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string'}, 'from': {'type': 'string'}, 'limit': {'type': 'number'}, 'cursor': {'type': 'string', 'description': 'Continue the same immutable one-hour snapshot; other filters remain frozen.'}, 'status': {'type': 'string'}, 'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'trips': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'email': {'type': 'string'}, 'query': {'type': 'string', 'description': 'Override Gmail search (default from:uber.com receipt/trip)'}, 'account': {'type': 'string'}, 'dry_run': {'type': 'boolean'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'max_results': {'type': 'number'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['query', 'scanned', 'imported', 'duplicates', 'skipped', 'results'], 'properties': {'query': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'scanned': {'type': 'number'}, 'skipped': {'type': 'number'}, 'imported': {'type': 'number'}, 'duplicates': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'email': {'type': 'string', 'description': 'Alias for account'}, 'query': {'type': 'string', 'description': 'Override Gmail search (default from:venmo.com paid/payment)'}, 'account': {'type': 'string', 'description': 'Mailbox email or connection id'}, 'dry_run': {'type': 'boolean'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'max_results': {'type': 'number'}, 'mirror_event': {'type': 'boolean', 'description': 'Also create Money · calendar annotations'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['query', 'scanned', 'imported', 'duplicates', 'skipped', 'results'], 'properties': {'query': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'scanned': {'type': 'number'}, 'skipped': {'type': 'number'}, 'imported': {'type': 'number'}, 'duplicates': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['from_type', 'from_id', 'to_type', 'to_id'], 'properties': {'notes': {'type': 'string'}, 'to_id': {'type': 'string'}, 'source': {'type': 'string', 'description': 'Provenance tag, e.g. manual, inferred:name_match:title.'}, 'status': {'enum': ['confirmed', 'rejected'], 'type': 'string', 'description': "confirmed: confirm an existing edge (usually an inferred one: +confirmed, confidence 1), or create the edge if it does not exist yet, as a call without status does. rejected: tombstone an existing edge (+rejected, confidence 0). A rejected edge is not a relationship: the event's people, timelines, get_interactions and every other read leave it out. It is kept so automated writers never recreate it; linking the same pair again without status replaces it. Errors and saves nothing when the edge does not exist."}, 'from_id': {'type': 'string'}, 'to_type': {'type': 'string'}, 'from_type': {'type': 'string'}, 'link_type': {'type': 'string', 'description': 'trip_stay | trip_flight | stay_place | event_place | event_person | transaction_trip | event_event | other. Aliases: participant/participants/attendee/attendees → event_person.'}, 'confidence': {'type': 'number', 'description': '0-1. Defaults to 1 for explicit links. 0 means rejected: every read leaves the edge out.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'link': {'type': 'object', 'description': 'The stored life_entity_links row.', 'additionalProperties': True}, 'linked': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'confirmation': {'enum': ['explicit', 'pending', 'confirmed', 'rejected'], 'type': 'string', 'description': 'Derived from the link source and confidence. explicit: a direct write; pending: an inferred guess nobody has confirmed; confirmed: a guess a person confirmed; rejected: a person rejected it (source ends in +rejected, or confidence 0). A rejected link is kept only so it is never proposed again; it is not a relationship.'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['inventory_id', 'person_id', 'relationship'], 'properties': {'notes': {'type': 'string'}, 'person_id': {'type': 'string', 'description': 'Contact id (from get_people or resolve_person).'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'inventory_id': {'type': 'string', 'description': 'The item id from add_inventory_item, get_inventory or search_inventory.'}, 'relationship': {'enum': ['inherited_from', 'gifted_by', 'purchased_from', 'co_owned_with', 'borrowed_from', 'loaned_to'], 'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'link': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'person_id': {'type': 'string'}, 'inventory_id': {'type': 'string'}, 'idempotent_replay': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id', 'other_person_id'], 'properties': {'notes': {'type': 'string'}, 'source': {'type': 'string'}, 'direction': {'type': 'string'}, 'person_id': {'type': 'string'}, 'confidence': {'type': 'number'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'other_person_id': {'type': 'string'}, 'relationship_type': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'linked': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'connection': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'Optional: entity_mention | duplicate_people'}, 'limit': {'type': 'number', 'description': 'Max rows 1–50, default 15'}, 'auto_cleanup': {'type': 'boolean', 'description': 'Auto-dismiss non-person / auto-link existing (default true)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['clarifications', 'count'], 'properties': {'count': {'type': 'number'}, 'message': {'type': ['string', 'null']}, 'truncated': {'type': 'boolean'}, 'clarifications': {'type': 'array', 'items': {'type': 'object', 'description': 'Ranked clarification candidate.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['accounts', 'count', 'connect_url'], 'properties': {'count': {'type': 'number'}, 'accounts': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'connect_url': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['title', 'event_date'], 'properties': {'city': {'type': 'string', 'description': 'Structured city (composed into location if location omitted)'}, 'date': {'type': 'string', 'description': 'Alias for event_date.'}, 'time': {'type': 'string', 'description': 'Alias for event_time.'}, 'with': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for people.'}, 'notes': {'type': 'string', 'description': 'Alias for description.'}, 'title': {'type': 'string', 'description': 'Event title (required).'}, 'amount': {'type': 'number', 'description': 'If set, also writes a /money transaction (dual-write). Prefer log_transaction / import_venmo_gmail for cashflow-first digs.'}, 'people': {'type': 'array', 'items': {'type': 'string'}, 'description': 'People names or person UUIDs to tag (event_people role=with).'}, 'source': {'type': 'string', 'description': 'With amount: venmo/zelle/…'}, 'country': {'type': 'string', 'description': 'Structured country'}, 'category': {'type': 'string', 'description': 'e.g. sleep, funeral, family, work, travel. Stored as events.category and event_type.'}, 'currency': {'type': 'string'}, 'end_date': {'type': 'string', 'description': 'Optional end date YYYY-MM-DD (multi-day, or a night that ends the next day).'}, 'end_time': {'type': 'string', 'description': 'Optional end time (same formats as event_time). Works without event_time, e.g. a wake time alone.'}, 'location': {'type': 'string', 'description': 'Free-text place. Or pass city + country.'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for wall-clock display (e.g. America/New_York).'}, 'direction': {'enum': ['from', 'to'], 'type': 'string', 'description': 'With amount: from=received, to=sent'}, 'image_url': {'type': 'string', 'description': 'Optional cover image URL for Explore + /e share cards.'}, 'person_id': {'type': 'string', 'description': 'With amount: CRM person UUID'}, 'event_date': {'type': 'string', 'description': 'Start date YYYY-MM-DD, YYYY-MM, or YYYY (required). Alias: date.'}, 'event_time': {'type': 'string', 'description': 'Optional start time: 8pm, 20:00, or 20:00:00. Alias: time. Leave it out when nobody said it.'}, 'event_type': {'type': 'string', 'description': 'Optional event kind (e.g. todo, goal, work). Worked out from category when omitted.'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Owned person UUIDs to tag (user-scoped).'}, 'request_id': {'type': 'string', 'description': 'Alias for idempotency_key (preferred by some clients).'}, 'scoreboard': {'type': 'object', 'properties': {'owner': {'type': 'string'}, 'state': {'enum': ['not_started', 'on_track', 'at_risk', 'blocked', 'done'], 'type': 'string'}, 'metric': {'type': 'string', 'description': 'Progress readout, e.g. 2/5'}, 'blocker': {'type': 'string'}, 'evidence': {'type': 'string'}, 'next_step': {'type': 'string'}, 'next_review': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'last_verified': {'type': 'string', 'description': 'YYYY-MM-DD'}}, 'description': 'Operating status as data (not description prose). state is required when the event has no scoreboard yet. On update_event fields merge; a null field clears it; scoreboard null removes the record.', 'additionalProperties': False}, 'share_with': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dayze profile handles to add as collaborators via shared_events (e.g. ["boof"]). Leading @ stripped.'}, 'visibility': {'enum': ['private', 'friends', 'public'], 'type': 'string', 'default': 'private', 'description': 'Calendar visibility. public → appears on /explore and gets share_url https://dayze.com/e/{id}. Default private.'}, 'description': {'type': 'string', 'description': 'Notes about the event. Alias: notes.'}, 'external_id': {'type': 'string', 'description': 'With amount: idempotency key'}, 'person_name': {'type': 'string', 'description': 'One person to tag, by name.'}, 'external_url': {'type': 'string'}, 'people_names': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for people.'}, 'date_precision': {'enum': ['day', 'month', 'year', 'approx'], 'type': 'string', 'description': 'Soft date precision stored in metadata. YYYY/YYYY-MM dates default to year/month.'}, 'idempotency_key': {'type': 'string', 'description': 'Optional client key (max 128 chars). Retries with the same key return the original result instead of creating a duplicate. If omitted, Dayze fingerprints args for ~15 minutes.'}, 'source_gmail_id': {'type': 'string', 'description': 'Gmail message id the event came from (kept in metadata).'}, 'reminder_enabled': {'type': 'boolean', 'description': 'Timed events default to a push reminder when omitted. Set false only for an explicit opt-out; all-day events stay off.'}, 'mirror_transaction': {'type': 'boolean', 'description': 'Default true when amount is set; set false to keep calendar-only'}, 'reminder_minutes_before': {'type': 'number', 'description': 'Push lead time. Uses the profile reminder_timing when omitted (fallback 30 minutes).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['event', 'people_tagged', 'unresolved_people', 'life_state_rebuilt'], 'properties': {'event': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}, 'people_tagged': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'unresolved_people': {'type': 'array', 'items': {'type': 'string'}}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['amount'], 'properties': {'date': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. Prefer project: / ext: / rail: grammar.'}, 'notes': {'type': 'string', 'description': 'Free text about the payment. Alias: description.'}, 'amount': {'type': 'number'}, 'source': {'type': 'string', 'description': 'Payment rail or app: venmo, zelle, cashapp, card, cash, … Alias: payment_method.'}, 'project': {'type': 'string', 'description': 'Venture/project label → stored as project:{slug} tag (e.g. Max Soko poker venture)'}, 'category': {'type': 'string', 'description': '"IOU repayment" = paying a contact back; "IOU lend" = lending a contact cash (both need person_id).'}, 'currency': {'type': 'string'}, 'merchant': {'type': 'string', 'description': 'Payee name (defaults when omitted)'}, 'person_id': {'type': 'string', 'description': 'The contact paid (needed for "IOU repayment" / "IOU lend").'}, 'cash_moved': {'type': 'boolean', 'description': 'With category "IOU lend": true (default) = cash changed hands as a loan (shows in Finance); false = an owed share, e.g. of a dinner logged as its own expense (IOU only).'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string', 'description': 'Alias for notes.'}, 'external_id': {'type': 'string', 'description': "The provider's id for this payment; dedupes imports. Without a request_id it is required."}, 'person_name': {'type': 'string', 'description': 'The contact by name, when there is no person_id (IOU categories need one or the other).'}, 'payment_method': {'type': 'string', 'description': 'Alias for source.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'expense': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'expense_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'url': {'type': 'string', 'description': 'Alias for source_url'}, 'title': {'type': 'string', 'description': 'Track title (required unless track blob parses)'}, 'track': {'type': 'string', 'description': 'Optional "Artist - Title (year remaster)" blob'}, 'artist': {'type': 'string', 'description': 'Artist name (required unless track blob parses)'}, 'year_note': {'type': 'string', 'description': 'Optional year or remaster note'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'source_url': {'type': 'string', 'description': 'Optional https link'}, 'remaster_note': {'type': 'string', 'description': 'Alias for year_note'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['track_id', 'track', 'created', 'message'], 'properties': {'track': {'type': 'object', 'description': 'Saved favorite-track record.', 'additionalProperties': True}, 'created': {'type': 'boolean', 'description': 'True when a new favorite was created.'}, 'message': {'type': 'string'}, 'track_id': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['what'], 'properties': {'kind': {'enum': ['meal', 'snack', 'drink'], 'type': 'string'}, 'what': {'type': 'string', 'description': 'What they ate or drank (required). Example: Mee Pok'}, 'with': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Companion names, aliases, ids, or group tokens. "my parents" / Mum / Dad resolve via aliases; "family" expands to CRM rows with family relationship labels'}, 'notes': {'type': 'string'}, 'place': {'type': 'string', 'description': 'Venue or location'}, 'amount': {'type': 'number', 'description': 'Price if mentioned'}, 'paid_by': {'type': 'string', 'description': 'Who paid (name or alias)'}, 'calories': {'type': 'number', 'maximum': 10000, 'minimum': 0, 'description': 'Kilocalories explicitly stated by the user; overrides the automatic heuristic and is stored with user provenance'}, 'currency': {'type': 'string', 'description': 'ISO currency, e.g. SGD'}, 'merchant': {'type': 'string', 'description': 'Restaurant, stall, or shop'}, 'dish_items': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}, 'price': {'type': 'number', 'minimum': 0}, 'rating': {'type': 'number', 'maximum': 5, 'minimum': 1}}, 'additionalProperties': False}, 'description': 'Ordered dishes in this entry. Each requires name; price and rating are optional.'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Owned person UUIDs to tag (user-scoped)'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'consumed_at': {'type': 'string', 'description': 'ISO instant; wins over meal_period'}, 'meal_period': {'type': 'string', 'description': 'Spoken period when consumed_at is omitted, e.g. "late lunch"'}, 'people_names': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for with'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['food_id', 'event_id', 'people_tagged', 'unresolved_people', 'food_log', 'message', 'life_state_rebuilt'], 'properties': {'food_id': {'type': 'string'}, 'message': {'type': 'string'}, 'event_id': {'type': ['string', 'null']}, 'food_log': {'type': 'object', 'description': 'Saved Food Diary row.', 'additionalProperties': True}, 'people_tagged': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'unresolved_people': {'type': 'array', 'items': {'type': 'string'}}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['amount'], 'properties': {'date': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. Prefer project: / ext: / rail: grammar.'}, 'notes': {'type': 'string', 'description': 'Free text about the payment. Alias: description.'}, 'amount': {'type': 'number'}, 'source': {'type': 'string'}, 'project': {'type': 'string', 'description': 'Venture/project label → stored as project:{slug} tag (e.g. Max Soko poker venture)'}, 'category': {'type': 'string', 'description': 'e.g. Salary, Gift, Refund. "IOU repayment" and "IOU lend" need person_id.'}, 'currency': {'type': 'string'}, 'merchant': {'type': 'string'}, 'person_id': {'type': 'string'}, 'cash_moved': {'type': 'boolean', 'description': 'With category "IOU lend": true (default) = cash changed hands as a loan (shows in Finance); false = an owed share, e.g. of a dinner logged as its own expense (IOU only).'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string', 'description': 'Alias for notes.'}, 'external_id': {'type': 'string'}, 'person_name': {'type': 'string', 'description': 'The contact by name, when there is no person_id (IOU categories need one or the other).'}, 'payment_method': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'not_iou_repayment': {'type': 'boolean', 'description': 'true only when income from a contact with an open IOU is unrelated to it.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'type': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'event_id': {'type': ['string', 'null']}, 'direction': {'type': 'string'}, 'duplicate': {'type': 'boolean'}, 'expense_id': {'type': 'string'}, 'transaction': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}, 'transaction_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'kind': {'enum': ['message', 'call', 'meeting', 'note', 'check_in', 'thought_of'], 'type': 'string', 'description': 'Default message.'}, 'summary': {'type': 'string', 'description': 'One line (max 280) in your own words. Never the email body, subject or sender.'}, 'reply_id': {'type': 'string', 'description': 'A Pending Reply (get_pending_replies) this closes as sent.'}, 'person_id': {'type': 'string', 'description': 'An owned contact id.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'occurred_at': {'type': 'string', 'description': 'When it happened (ISO date-time). Default now.'}, 'person_name': {'type': 'string', 'description': 'The contact as the user said it ("Vadim"); linked only on one match.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['interaction', 'created', 'reply', 'reply_resolved', 'message', 'life_state_rebuilt'], 'properties': {'reply': {'type': ['object', 'null'], 'required': ['reply_id', 'person_name', 'person_id', 'channel', 'category', 'summary', 'draft', 'status', 'state', 'due', 'received_at', 'source'], 'properties': {'due': {'type': 'boolean', 'description': 'Owed now: pending, or snoozed with snooze_until passed. False while a snooze runs, and when sent or dismissed.'}, 'draft': {'type': ['string', 'null'], 'description': 'The reply text saved for later.'}, 'state': {'type': 'string', 'description': 'unsent (pending or snoozed), sent (the owner replied) or dismissed'}, 'source': {'type': ['object', 'null'], 'properties': {'kind': {'type': 'string', 'description': 'gmail, email or other'}, 'thread_id': {'type': ['string', 'null']}, 'message_id': {'type': ['string', 'null']}}, 'description': 'The email it answers, as ids only; null when none was saved.', 'additionalProperties': False}, 'status': {'type': 'string', 'description': 'pending, snoozed, responded or dismissed'}, 'channel': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'category': {'type': 'string', 'description': 'personal or work'}, 'reply_id': {'type': 'string'}, 'person_id': {'type': ['string', 'null'], 'description': 'Linked contact id; null when the reply is unlinked.'}, 'created_at': {'type': ['string', 'null']}, 'updated_at': {'type': ['string', 'null']}, 'approved_at': {'type': ['string', 'null'], 'description': 'PHI-427: when the owner approved the draft and opened it in Gmail, or null. Dayze never sends; the Gmail sync closes the reply when the email goes out.'}, 'person_name': {'type': 'string'}, 'received_at': {'type': 'string'}, 'responded_at': {'type': ['string', 'null']}, 'snooze_until': {'type': ['string', 'null']}}, 'description': 'One reply the user owes (Inbox → Pending Replies). Dayze never sends it.', 'additionalProperties': False}, 'created': {'type': 'boolean', 'description': "False when it was already stored (a retry, or the reply's write-back)."}, 'message': {'type': 'string'}, 'interaction': {'type': 'object', 'required': ['interaction_id', 'person_id', 'person_name', 'kind', 'summary', 'occurred_at', 'source', 'visibility'], 'properties': {'kind': {'type': 'string', 'description': 'message, call, meeting, note, check_in or thought_of'}, 'source': {'type': 'string', 'description': 'mcp, or pending_reply when it closes a reply'}, 'summary': {'type': ['string', 'null']}, 'person_id': {'type': 'string'}, 'visibility': {'type': 'string', 'description': 'Always private.'}, 'occurred_at': {'type': 'string'}, 'person_name': {'type': 'string'}, 'interaction_id': {'type': 'string'}}, 'description': "The interaction in the contact's history (private to the owner).", 'additionalProperties': False}, 'reply_resolved': {'type': 'boolean', 'description': 'True when this call marked the reply sent.'}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'city': {'type': 'string'}, 'date': {'type': 'string', 'description': 'Alias for arrived_at'}, 'name': {'type': 'string', 'description': 'Alias for place'}, 'place': {'type': 'string'}, 'source': {'type': 'string'}, 'address': {'type': 'string'}, 'country': {'type': 'string'}, 'place_id': {'type': 'string'}, 'arrived_at': {'type': 'string', 'description': 'ISO or YYYY-MM-DD'}, 'confidence': {'type': 'number'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'departed_at': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'evidence_event_id': {'type': 'string'}, 'evidence_expense_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'place': {'type': 'object', 'description': 'Canonical place record.', 'additionalProperties': True}, 'visit': {'type': 'object', 'description': 'Normalized place visit. visit_id (= id) is the place_visits row id delete_place_visit takes; null on event/GPS evidence rows.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'place_id': {'type': 'string'}, 'duplicate': {'type': 'boolean'}, 'created_place': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['started_at', 'ended_at'], 'properties': {'notes': {'type': 'string'}, 'source': {'type': 'string'}, 'quality': {'type': 'number'}, 'ended_at': {'type': 'string', 'description': 'ISO end'}, 'timezone': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'sleep_type': {'enum': ['overnight', 'nap', 'unknown'], 'type': 'string'}, 'started_at': {'type': 'string', 'description': 'ISO start'}, 'timezone_end': {'type': 'string'}, 'timezone_start': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'sleep': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['amount', 'direction'], 'properties': {'date': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional tags. Prefer project: / ext: / rail: grammar.'}, 'type': {'enum': ['income', 'expense', 'transfer'], 'type': 'string'}, 'notes': {'type': 'string', 'description': 'Free text about the payment. Alias: description.'}, 'amount': {'type': 'number'}, 'source': {'type': 'string'}, 'project': {'type': 'string', 'description': 'Venture/project label → stored as project:{slug} tag (e.g. Max Soko poker venture)'}, 'category': {'type': 'string', 'description': 'Ledger category (e.g. Salary, Gift, Refund, Transfer in, Food & Dining). "IOU repayment" = a contact paying back an IOU; "IOU lend" = a cash loan to or from a contact (both need person_id).'}, 'currency': {'type': 'string'}, 'merchant': {'type': 'string'}, 'direction': {'enum': ['from', 'to'], 'type': 'string'}, 'person_id': {'type': 'string'}, 'account_id': {'type': 'string', 'description': 'Stable provider account identity for imported payments.'}, 'cash_moved': {'type': 'boolean', 'description': 'With category "IOU lend": true (default) = cash changed hands as a loan (shows in Finance); false = an owed share, e.g. of a dinner logged as its own expense (IOU only).'}, 'message_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string', 'description': 'Alias for notes.'}, 'external_id': {'type': 'string'}, 'person_name': {'type': 'string', 'description': 'The contact by name, when there is no person_id (IOU categories need one or the other).'}, 'mirror_event': {'type': 'boolean', 'description': 'Also insert optional Money · calendar event (default false)'}, 'payment_method': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'extractor_version': {'type': 'string'}, 'not_iou_repayment': {'type': 'boolean', 'description': 'true only when income from a contact with an open IOU is unrelated to it.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'type': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'event_id': {'type': ['string', 'null']}, 'direction': {'type': 'string'}, 'duplicate': {'type': 'boolean'}, 'expense_id': {'type': 'string'}, 'transaction': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}, 'transaction_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['city'], 'properties': {'city': {'type': 'string'}, 'date': {'type': 'string', 'description': 'Alias for start_date'}, 'kind': {'enum': ['trip', 'residence', 'soft_pin'], 'type': 'string'}, 'title': {'type': 'string'}, 'country': {'type': 'string'}, 'end_date': {'type': 'string'}, 'evidence': {'type': 'string', 'description': 'Source note (Gmail id, address, etc.)'}, 'confidence': {'enum': ['confirmed', 'likely', 'possible'], 'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'start_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'mirror_event': {'type': 'boolean', 'description': 'Also insert category=travel calendar event (default true)'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'kind': {'type': 'string'}, 'note': {'type': ['string', 'null']}, 'trip': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'event_id': {'type': ['string', 'null']}, 'confidence': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['primary_person_id', 'duplicate_person_ids', 'preview_id', 'restore_window_acknowledged'], 'properties': {'preview_id': {'type': 'string', 'description': 'Durable preview_id returned by merge_people_preview; review the 30-day restore window before applying.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'primary_person_id': {'type': 'string'}, 'duplicate_person_ids': {'type': 'array', 'items': {'type': 'string'}}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true — confirms the 30-day restore window was reviewed before apply.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'person': {'type': 'object', 'description': 'CRM person record.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'restore_id': {'type': 'string'}, 'reversible': {'type': 'boolean'}, 'merged_person_ids': {'type': 'array', 'items': {'type': 'string'}}, 'restore_expires_at': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['primary_person_id', 'duplicate_person_ids'], 'properties': {'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'field_choices': {'type': 'object', 'additionalProperties': True}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'primary_person_id': {'type': 'string'}, 'duplicate_person_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['primary_person_id', 'safe_to_merge'], 'properties': {'manifest': {'type': 'object', 'additionalProperties': True}, 'warnings': {'type': 'array', 'items': {'type': 'string'}}, 'preview_id': {'type': 'string'}, 'reversible': {'type': 'boolean'}, 'safe_to_merge': {'type': 'boolean'}, 'resulting_name': {'type': ['string', 'null']}, 'field_conflicts': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'photos_preserved': {'type': 'number'}, 'primary_person_id': {'type': 'string'}, 'resulting_aliases': {'type': 'array', 'items': {'type': 'string'}}, 'restore_window_days': {'type': 'number'}, 'graph_edges_preserved': {'type': 'number'}, 'interactions_preserved': {'type': 'number'}, 'transactions_preserved': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'candidate_hash', 'request_id'], 'properties': {'preview_id': {'type': 'string'}, 'request_id': {'type': 'string'}, 'candidate_hash': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'applied': {'type': 'number'}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'rules': {'type': 'array', 'items': {'type': 'string'}}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['preview_id', 'changes', 'count'], 'properties': {'count': {'type': 'number'}, 'changes': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'preview_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD target date'}, 'slug': {'type': 'string', 'description': 'Person slug, e.g. albert-einstein'}, 'peers': {'type': 'number', 'default': 12}, 'similar': {'type': 'number', 'default': 8}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'profile': {'type': 'object', 'description': 'Public notable-person profile.', 'additionalProperties': True}, 'timeline': {'type': 'array', 'items': {'type': 'object', 'description': 'Timeline item with a day number.', 'additionalProperties': True}}, 'life_in_days': {'type': 'object', 'description': 'Age and current day-number calculations.', 'additionalProperties': True}, 'birthday_peers': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'similar_people': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'date': {'type': 'string'}, 'slug': {'type': 'string', 'description': 'Person slug, e.g. elon-musk'}, 'peers': {'type': 'number', 'default': 20}, 'similar': {'type': 'number', 'default': 12}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'profile': {'type': 'object', 'description': 'Quality-gated public notable-person profile.', 'additionalProperties': True}, 'quality': {'type': 'object', 'description': 'Pack quality signals.', 'additionalProperties': True}, 'timeline': {'type': 'array', 'items': {'type': 'object', 'description': 'Timeline item with a day number.', 'additionalProperties': True}}, 'life_in_days': {'type': 'object', 'description': 'Age and current day-number calculations.', 'additionalProperties': True}, 'birthday_peers': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'similar_people': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Person slug, e.g. albert-einstein'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['slug', 'name', 'profile_url'], 'properties': {'bio': {'type': ['string', 'null']}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'about': {'type': ['string', 'null']}, 'handle': {'type': ['string', 'null']}, 'sources': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'timeline': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'image_url': {'type': ['string', 'null']}, 'birth_date': {'type': ['string', 'null']}, 'death_date': {'type': ['string', 'null']}, 'occupation': {'type': ['string', 'null']}, 'profile_url': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['q']}, {'required': ['query']}], 'properties': {'q': {'type': 'string', 'description': 'Primary search query.'}, 'limit': {'type': 'number', 'default': 8, 'description': 'Max results 1–20'}, 'query': {'type': 'string', 'description': 'Alias for q.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['results', 'total'], 'properties': {'total': {'type': 'number', 'description': 'Number of matches returned.'}, 'results': {'type': 'array', 'items': {'type': 'object', 'description': 'A matching public notable-person profile.', 'additionalProperties': True}}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['tool', 'arguments'], 'properties': {'tool': {'enum': ['delete_food', 'delete_place', 'delete_place_visit', 'archive_inventory_item', 'archive_asset', 'reset_tracker', 'unlink_people', 'remove_person_alias', 'convert_contact_entity', 'bulk_dismiss_clarifications'], 'type': 'string'}, 'arguments': {'type': 'object', 'description': 'The arguments you would pass to that tool (e.g. { food_id }).', 'additionalProperties': True}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['preview_id', 'tool', 'restore_window_days', 'reversible'], 'properties': {'tool': {'type': 'string'}, 'summary': {'type': 'object', 'additionalProperties': True}, 'next_step': {'type': 'string'}, 'target_id': {'type': ['string', 'null']}, 'expires_at': {'type': 'string'}, 'operations': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'preview_id': {'type': ['string', 'null']}, 'reversible': {'type': 'boolean'}, 'nothing_to_change': {'type': 'boolean'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'value': {'type': 'object', 'additionalProperties': True}, 'client_id': {'type': 'string'}, 'people_id': {'type': 'string'}, 'person_id': {'type': 'string'}, 'predicate': {'type': 'string'}, 'operations': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'request_id': {'type': 'string'}, 'source_text': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'enabled': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'proposal_id': {'type': 'string'}, 'payload_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['message_id', 'attachment_id'], 'properties': {'email': {'type': 'string'}, 'account': {'type': 'string'}, 'message_id': {'type': 'string'}, 'attachment_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['message_id', 'attachment'], 'properties': {'attachment': {'type': 'object', 'required': ['attachment_id', 'filename', 'mime_type', 'size', 'text', 'truncated', 'binary', 'note'], 'properties': {'note': {'type': ['string', 'null']}, 'size': {'type': 'number'}, 'text': {'type': ['string', 'null']}, 'binary': {'type': 'boolean'}, 'filename': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'truncated': {'type': 'boolean'}, 'attachment_id': {'type': 'string'}}, 'additionalProperties': False}, 'message_id': {'type': 'string'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['message_id'], 'properties': {'id': {'type': 'string', 'description': 'Alias for message_id'}, 'email': {'type': 'string', 'description': 'Alias for account'}, 'account': {'type': 'string', 'description': 'Mailbox selector (email or connection id)'}, 'message_id': {'type': 'string', 'description': 'Gmail message id from search_gmail'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['message'], 'properties': {'message': {'type': 'object', 'required': ['id', 'subject', 'from', 'date', 'date_local', 'time_zone', 'snippet', 'body', 'body_truncated', 'attachments'], 'properties': {'id': {'type': 'string'}, 'body': {'type': 'string'}, 'date': {'type': 'string'}, 'from': {'type': 'string'}, 'snippet': {'type': 'string'}, 'subject': {'type': 'string'}, 'time_zone': {'type': 'string'}, 'date_local': {'type': 'string'}, 'attachments': {'type': 'array', 'items': {'type': 'object', 'required': ['attachment_id', 'filename', 'mime_type', 'size'], 'properties': {'size': {'type': 'number'}, 'filename': {'type': 'string'}, 'mime_type': {'type': 'string'}, 'attachment_id': {'type': 'string'}}, 'additionalProperties': False}}, 'body_truncated': {'type': 'boolean'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['name', 'amount'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD; default today.'}, 'name': {'type': 'string', 'description': 'What was bought (also the Inventory item name). Alias: merchant.'}, 'amount': {'type': 'number'}, 'category': {'type': 'string', 'description': 'Expense category (default purchase); also the item category when inventory_details has none.'}, 'currency': {'type': 'string', 'description': 'ISO 4217; default USD.'}, 'merchant': {'type': 'string', 'description': 'Where it was bought; stands in for name when name is missing.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'create_inventory': {'type': 'boolean', 'description': 'false = the expense only, no Inventory item (default true).'}, 'inventory_details': {'type': 'object', 'properties': {'brand': {'type': 'string'}, 'model': {'type': 'string'}, 'notes': {'type': 'string'}, 'category': {'type': 'string'}, 'condition': {'enum': ['new', 'excellent', 'good', 'worn', 'needs_repair', 'retired'], 'type': 'string'}}, 'description': 'The Inventory item: category, brand, model, condition, notes.', 'additionalProperties': False}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'expense_id': {'type': ['string', 'null']}, 'transaction': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}, 'inventory_id': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['inventory_id', 'amount'], 'properties': {'date': {'type': 'string', 'description': 'Alias for sold_at.'}, 'notes': {'type': 'string'}, 'amount': {'type': 'number', 'description': 'Sale proceeds.'}, 'sold_at': {'type': 'string', 'description': 'YYYY-MM-DD; default today. Alias: date.'}, 'currency': {'type': 'string', 'description': 'ISO 4217; default USD.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'marketplace': {'type': 'string', 'description': 'Where it sold (the income row\'s merchant; default "sale").'}, 'inventory_id': {'type': 'string', 'description': 'The item sold (get_inventory / search_inventory).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'expense_id': {'type': ['string', 'null']}, 'inventory_id': {'type': 'string'}, 'realized_gain_loss': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id', 'alias', 'preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'alias': {'type': 'string'}, 'person_id': {'type': 'string'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'alias': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'removed': {'type': 'boolean'}, 'change_id': {'type': ['string', 'null']}, 'person_id': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'note': {'type': 'string', 'description': 'Optional note stored in tracking history'}, 'title': {'type': 'string', 'description': 'Alias of tracker_title'}, 'reset_at': {'type': 'string', 'description': 'ISO datetime of the reset (default now)'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'tracker_id': {'type': 'string', 'description': 'Event UUID of the tracker'}, 'tracker_title': {'type': 'string', 'description': 'Title match when id unknown'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': [], 'properties': {'ok': {'type': 'boolean'}, 'error': {'type': 'string'}, 'message': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'reset_date': {'type': 'string'}, 'reset_time': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'tracker_id': {'type': 'string'}, 'invalidates': {'type': 'array', 'items': {'type': 'string'}}, 'previous_days': {'type': 'number'}, 'tracker_title': {'type': ['string', 'null']}, 'idempotent_replay': {'type': 'boolean'}, 'life_state_rebuilt': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}, 'tracker_reset_count': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['clarification_id'], 'properties': {'person_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'person_name': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'clarification_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'resolved': {'type': 'boolean'}, 'person_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'outcome': {'enum': ['sent', 'dismissed'], 'type': 'string'}, 'reply_id': {'type': 'string'}, 'person_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'person_name': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['reply', 'resolved', 'already_resolved', 'outcome', 'message', 'life_state_rebuilt'], 'properties': {'reply': {'type': 'object', 'required': ['reply_id', 'person_name', 'person_id', 'channel', 'category', 'summary', 'draft', 'status', 'state', 'due', 'received_at', 'source'], 'properties': {'due': {'type': 'boolean', 'description': 'Owed now: pending, or snoozed with snooze_until passed. False while a snooze runs, and when sent or dismissed.'}, 'draft': {'type': ['string', 'null'], 'description': 'The reply text saved for later.'}, 'state': {'type': 'string', 'description': 'unsent (pending or snoozed), sent (the owner replied) or dismissed'}, 'source': {'type': ['object', 'null'], 'properties': {'kind': {'type': 'string', 'description': 'gmail, email or other'}, 'thread_id': {'type': ['string', 'null']}, 'message_id': {'type': ['string', 'null']}}, 'description': 'The email it answers, as ids only; null when none was saved.', 'additionalProperties': False}, 'status': {'type': 'string', 'description': 'pending, snoozed, responded or dismissed'}, 'channel': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'category': {'type': 'string', 'description': 'personal or work'}, 'reply_id': {'type': 'string'}, 'person_id': {'type': ['string', 'null'], 'description': 'Linked contact id; null when the reply is unlinked.'}, 'created_at': {'type': ['string', 'null']}, 'updated_at': {'type': ['string', 'null']}, 'approved_at': {'type': ['string', 'null'], 'description': 'PHI-427: when the owner approved the draft and opened it in Gmail, or null. Dayze never sends; the Gmail sync closes the reply when the email goes out.'}, 'person_name': {'type': 'string'}, 'received_at': {'type': 'string'}, 'responded_at': {'type': ['string', 'null']}, 'snooze_until': {'type': ['string', 'null']}}, 'description': 'One reply the user owes (Inbox → Pending Replies). Dayze never sends it.', 'additionalProperties': False}, 'message': {'type': 'string'}, 'outcome': {'type': 'string', 'description': 'sent or dismissed'}, 'resolved': {'type': 'boolean', 'description': 'True when this call changed the reply.'}, 'interaction': {'type': ['object', 'null'], 'required': ['logged', 'reason', 'interaction_id', 'person_id', 'visibility'], 'properties': {'logged': {'type': 'boolean', 'description': 'True when this call wrote it.'}, 'reason': {'type': 'string', 'description': 'logged, unlinked, already_logged, gmail_sync_logged or storage_error'}, 'summary': {'type': ['string', 'null']}, 'person_id': {'type': ['string', 'null']}, 'visibility': {'type': 'string', 'description': "Always private: interactions are the owner's alone."}, 'occurred_at': {'type': ['string', 'null']}, 'interaction_id': {'type': ['string', 'null']}}, 'description': 'The contact-history write-back of a reply marked sent by this call; null when nothing was marked sent now.', 'additionalProperties': False}, 'already_resolved': {'type': 'boolean'}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Nickname or display name to resolve'}, 'query': {'type': 'string', 'description': 'Alias for name'}, 'include_notes': {'type': 'boolean', 'default': False, 'description': 'Include redacted notes (default false)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'query': {'type': 'string'}, 'person': {'type': 'object', 'additionalProperties': True}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'aliases': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'resolved': {'type': 'boolean'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'matched_via': {'type': ['string', 'null']}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'name': {'type': 'string'}, 'place': {'type': 'string'}, 'query': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['query', 'resolved'], 'properties': {'place': {'type': ['object', 'null'], 'description': 'Canonical place record.', 'additionalProperties': True}, 'query': {'type': 'string'}, 'resolved': {'type': 'boolean'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'matched_via': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['restore_id'], 'properties': {'request_id': {'type': 'string', 'description': 'Optional idempotency key.'}, 'restore_id': {'type': 'string', 'description': 'restore_id returned by the destructive tool.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'tool': {'type': 'string'}, 'undone': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'restored': {'type': 'boolean'}, 'restore_id': {'type': 'string'}, 'linked_rows_skipped': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'operations_reverted': {'type': 'number'}, 'linked_rows_relinked': {'type': 'number'}, 'linked_rows_reinserted': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['restore_id', 'request_id'], 'properties': {'request_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['restore_id', 'request_id'], 'properties': {'request_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['restore_id', 'request_id'], 'properties': {'request_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['restore_id', 'request_id'], 'properties': {'request_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'changed': {'type': 'boolean'}, 'expires_at': {'type': 'string'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string'}, 'server_time': {'type': 'string'}, 'candidate_hash': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number'}, 'person_id': {'type': 'string', 'description': 'Score against one person; omit for global scan.'}, 'min_probability': {'type': 'number'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['candidates', 'count'], 'properties': {'count': {'type': 'number'}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['query']}, {'required': ['q']}], 'properties': {'q': {'type': 'string', 'description': 'Alias for query.'}, 'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD end for structured food search. Pair with from.'}, 'end': {'type': 'string', 'description': 'Alias for to.'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD start for structured food search. Pair with to.'}, 'limit': {'type': 'number', 'default': 10, 'description': 'Max results 1–50'}, 'query': {'type': 'string', 'description': 'Primary search query.'}, 'start': {'type': 'string', 'description': 'Alias for from.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['mode', 'results'], 'properties': {'mode': {'enum': ['semantic', 'keyword', 'blended', 'structured'], 'type': 'string'}, 'intent': {'type': 'string'}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'results': {'type': 'array', 'items': {'type': 'object', 'required': ['source_type', 'source_id', 'title', 'content', 'similarity'], 'properties': {'title': {'type': 'string'}, 'content': {'type': 'string'}, 'food_id': {'type': 'string'}, 'photo_url': {'type': 'string', 'description': 'Meal photo on a food result, when one is attached.'}, 'source_id': {'type': 'string'}, 'event_date': {'type': 'string'}, 'similarity': {'type': 'number'}, 'inspect_url': {'type': 'string', 'description': 'PHI-434: the Dayze page for this record, when it has one.'}, 'source_type': {'type': 'string'}}, 'additionalProperties': False}}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'q': {'type': 'string', 'description': 'Alias for query'}, 'after': {'type': 'string', 'description': 'Exclusive lower bound as account-local YYYY-MM-DDTHH:mm, or an offset-aware ISO instant'}, 'email': {'type': 'string', 'description': 'Alias for account'}, 'query': {'type': 'string', 'description': 'Gmail search query, e.g. "is:unread newer_than:7d", "from:airline subject:itinerary", "receipt newer_than:30d"'}, 'before': {'type': 'string', 'description': 'Exclusive upper bound as account-local YYYY-MM-DDTHH:mm, or an offset-aware ISO instant'}, 'account': {'type': 'string', 'description': 'Mailbox email, connection id, or Google subject (from list_gmail_accounts)'}, 'max_results': {'type': 'number', 'default': 10, 'description': 'Max messages to return (default 10, max 20)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['query', 'result_size_estimate', 'newest_first', 'messages', 'time_zone'], 'properties': {'note': {'type': 'string', 'description': 'What the ranking means for a "latest email" answer.'}, 'after': {'type': 'string'}, 'query': {'type': 'string'}, 'before': {'type': 'string'}, 'account': {'type': ['string', 'null']}, 'messages': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'subject', 'from', 'date', 'date_local', 'time_zone', 'snippet'], 'properties': {'id': {'type': 'string'}, 'date': {'type': 'string'}, 'from': {'type': 'string'}, 'snippet': {'type': 'string'}, 'subject': {'type': 'string'}, 'time_zone': {'type': 'string'}, 'date_local': {'type': 'string'}, 'sender_only': {'type': 'boolean', 'description': "From the sender-only check: the sender's mail, missing some of the topic terms."}}, 'additionalProperties': False}}, 'time_zone': {'type': 'string'}, 'newest_first': {'type': 'boolean', 'description': 'Messages are ranked newest first by received time.'}, 'sender_check': {'type': 'object', 'required': ['query', 'reason', 'window_days', 'added', 'failed'], 'properties': {'added': {'type': 'number'}, 'query': {'type': 'string'}, 'failed': {'type': 'boolean'}, 'reason': {'type': 'string'}, 'window_days': {'type': 'number'}}, 'description': 'A from: + topic search with no recent match also searched the sender alone (one extra search).', 'additionalProperties': False}, 'unavailable_count': {'type': 'number', 'description': 'Matches whose details could not be loaded; one may be newer.'}, 'result_size_estimate': {'type': ['number', 'null']}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': '1-200, default 50'}, 'query': {'type': 'string', 'description': 'Match name, brand, model, notes or reference number.'}, 'offset': {'type': 'number'}, 'status': {'type': 'string', 'description': 'wishlist | ordered | owned | listed_for_sale | sold | returned | lost | disposed | donated | archived'}, 'sort_by': {'enum': ['created_at', 'name', 'value'], 'type': 'string'}, 'category': {'type': 'string', 'description': 'e.g. electronics, watches, clothing'}, 'include_archived': {'type': 'boolean', 'description': 'Include archived and no-longer-owned items.'}, 'include_sensitive': {'type': 'boolean', 'description': 'API keys only: include stored identifiers. Ignored for connectors without pii:read.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'items': {'type': 'array', 'items': {'type': 'object', 'description': 'Inventory item record. With specs: spec_template, specs, state (a timestamped snapshot), state_freshness and capability_summary.', 'additionalProperties': True}}, 'query': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD: photos added on or before this day (UTC).'}, 'from': {'type': 'string', 'description': 'Inclusive YYYY-MM-DD: photos added on or after this day (UTC).'}, 'limit': {'type': 'number', 'description': 'Max photos 1-50, default 20.'}, 'query': {'type': 'string'}, 'place_id': {'type': 'string'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'query': {'type': ['string', 'null']}, 'photos': {'type': 'array', 'items': {'type': 'object', 'description': 'Photo or entity asset metadata.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'tag': {'type': 'string'}, 'limit': {'type': 'number', 'description': 'Page size 1-500, default 100.'}, 'query': {'type': 'string'}, 'cursor': {'type': 'string', 'description': 'Continue the same immutable one-hour snapshot; other filters remain frozen.'}, 'offset': {'type': 'number', 'description': 'Skip this many rows of a new snapshot (a cursor carries its own).'}, 'project': {'type': 'string'}, 'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['count'], 'properties': {'count': {'type': 'number'}, 'query': {'type': 'string'}, 'account': {'type': 'object', 'required': ['handle', 'display_name', 'qa_fixture', 'note'], 'properties': {'note': {'type': 'string', 'description': 'How to disclose the account to the user.'}, 'handle': {'type': ['string', 'null'], 'description': 'Account handle, e.g. @goh.'}, 'qa_fixture': {'type': 'boolean', 'description': 'True for a known QA test account: its records are fixture data, not a real life.'}, 'display_name': {'type': ['string', 'null'], 'description': 'Account display name.'}}, 'description': 'The Dayze account this data belongs to. With more than one Dayze connection, name it in the answer.', 'additionalProperties': False}, 'inspect_note': {'type': 'string', 'description': 'How to cite: link each record with its inspect_url, never a link built from an id; which record types here have no Dayze page.'}, 'transactions': {'type': 'array', 'items': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id', 'name'], 'properties': {'name': {'type': 'string'}, 'person_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'preserve_old_name_as_alias': {'type': 'boolean'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'person': {'type': 'object', 'description': 'CRM person record.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}, 'previous_name': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'checks': {'type': 'array', 'items': {'type': 'string'}}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'auto_merge_threshold': {'type': 'number'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'status': {'type': 'string'}, 'message': {'type': ['string', 'null']}, 'cleanup_id': {'type': 'string'}, 'auto_merged_count': {'type': 'number'}, 'items_needing_approval': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['change_id'], 'properties': {'change_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'undone': {'type': 'boolean'}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': 'string'}, 'not_restored': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'reason'], 'properties': {'field': {'type': 'string'}, 'reason': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Fields the undo left as they are, e.g. the birthday of an update_person saved before MCP 1.41.5.'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['preview_id', 'restore_window_acknowledged', 'request_id'], 'properties': {'person_id': {'type': 'string'}, 'preview_id': {'type': 'string', 'description': 'preview_id returned by preview_destructive_change for this tool.'}, 'request_id': {'type': 'string', 'description': 'Required idempotency key; retries return the original receipt.'}, 'connection_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'other_person_id': {'type': 'string'}, 'restore_window_acknowledged': {'type': 'boolean', 'description': 'Must be true after reviewing the preview and its 30-day restore window.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'unlinked': {'type': 'boolean'}, 'preview_id': {'type': 'string'}, 'restore_id': {'type': 'string', 'description': 'Pass to restore_change to undo within restore_window_days.'}, 'reversible': {'type': 'boolean'}, 'idempotent_replay': {'type': 'boolean'}, 'restore_expires_at': {'type': 'string'}, 'restore_window_days': {'type': 'number'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['asset_id'], 'properties': {'role': {'enum': ['original', 'processed', 'thumbnail', 'cover', 'document', 'receipt', 'certificate', 'photo', 'other'], 'type': 'string', 'description': 'original | cover | thumbnail | …'}, 'asset_id': {'type': 'string'}, 'filename': {'type': 'string'}, 'metadata': {'type': 'object', 'description': 'Free-form metadata, merged into the stored metadata (metadata.source becomes the asset source).'}, 'asset_type': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'parent_asset_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'asset': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'updated': {'type': 'boolean'}, 'asset_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'city': {'type': 'string'}, 'place': {'type': 'string', 'description': 'Venue / residence name (e.g. The Madeira)'}, 'venue': {'type': 'string', 'description': 'Alias for place'}, 'address': {'type': 'string'}, 'country': {'type': 'string'}, 'check_in': {'type': 'boolean', 'description': 'Write a location_visits row when place or coordinates are set (default true in that case)'}, 'latitude': {'type': 'number'}, 'location': {'type': 'string', 'description': 'Freeform “City, Country” or “Venue, City, Country”'}, 'set_home': {'type': 'boolean', 'description': 'Also write profiles.location / home_location (default true)'}, 'longitude': {'type': 'number'}, 'request_id': {'type': 'string'}, 'idempotency_key': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'place': {'type': ['string', 'null']}, 'context': {'type': 'object', 'description': 'Fresh get_location_context after write.', 'additionalProperties': True}, 'message': {'type': 'string'}, 'updated': {'type': 'boolean'}, 'check_in': {'type': 'boolean'}, 'location': {'type': ['string', 'null']}, 'set_home': {'type': 'boolean'}, 'visit_id': {'type': ['string', 'null']}, 'current_city': {'type': ['string', 'null']}, 'current_country': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['event_id'], 'properties': {'date': {'type': 'string', 'description': 'Alias for event_date.'}, 'time': {'type': 'string', 'description': 'Alias for event_time.'}, 'with': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for people.'}, 'notes': {'type': 'string', 'description': 'Alias for description.'}, 'title': {'type': 'string', 'description': 'Updated title (replaces). Cannot be empty.'}, 'people': {'type': 'array', 'items': {'type': 'string'}, 'description': 'People names or person UUIDs to add (event_people role=with). Does not remove existing tags.'}, 'category': {'type': 'string', 'description': 'e.g. sleep, funeral, family, work, travel. Stored as events.category and event_type.'}, 'end_date': {'type': 'string', 'description': 'Optional end date YYYY-MM-DD (multi-day, or a night that ends the next day).'}, 'end_time': {'type': 'string', 'description': 'Optional end time (same formats as event_time).'}, 'event_id': {'type': 'string', 'description': 'UUID of a calendar event the authenticated user owns'}, 'location': {'type': 'string', 'description': 'Empty or null clears'}, 'timezone': {'type': 'string', 'description': 'IANA timezone for wall-clock display. Empty or null clears.'}, 'image_url': {'type': 'string', 'description': 'Cover image URL. Empty or null clears.'}, 'event_date': {'type': 'string', 'description': 'Start date YYYY-MM-DD, YYYY-MM, or YYYY. Alias: date.'}, 'event_time': {'type': 'string', 'description': 'Start time: 8pm, 20:00, or 20:00:00. Empty or null clears. Alias: time.'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Owned person UUIDs to tag (user-scoped).'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original successful result).'}, 'scoreboard': {'type': 'object', 'properties': {'owner': {'type': 'string'}, 'state': {'enum': ['not_started', 'on_track', 'at_risk', 'blocked', 'done'], 'type': 'string'}, 'metric': {'type': 'string', 'description': 'Progress readout, e.g. 2/5'}, 'blocker': {'type': 'string'}, 'evidence': {'type': 'string'}, 'next_step': {'type': 'string'}, 'next_review': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'last_verified': {'type': 'string', 'description': 'YYYY-MM-DD'}}, 'description': 'Operating status as data (not description prose). state is required when the event has no scoreboard yet. On update_event fields merge; a null field clears it; scoreboard null removes the record.', 'additionalProperties': False}, 'visibility': {'enum': ['private', 'friends', 'public'], 'type': 'string', 'description': 'Updates both events.visibility and the enforced events.is_private flag.'}, 'description': {'type': 'string', 'description': 'Notes about the event (replaces). Empty or null clears. Alias: notes.'}, 'person_name': {'type': 'string', 'description': 'One person to tag, by name.'}, 'external_url': {'type': 'string'}, 'people_names': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for people.'}, 'date_precision': {'enum': ['day', 'month', 'year', 'approx'], 'type': 'string', 'description': 'Soft date precision stored in metadata.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['event', 'changed', 'people_tagged', 'unresolved_people', 'life_state_rebuilt'], 'properties': {'event': {'type': 'object', 'description': 'A Dayze calendar event record.', 'additionalProperties': True}, 'changed': {'type': 'object', 'description': 'Changed fields with before and after values.', 'additionalProperties': True}, 'people_tagged': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'unresolved_people': {'type': 'array', 'items': {'type': 'string'}}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['expense_id'], 'properties': {'date': {'type': 'string', 'description': 'YYYY-MM-DD expense_date'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'notes': {'type': 'string'}, 'amount': {'type': 'number'}, 'source': {'type': 'string', 'description': 'Alias of payment_method'}, 'project': {'type': 'string', 'description': 'Venture label → project:{slug} tag'}, 'category': {'type': 'string'}, 'currency': {'type': 'string'}, 'merchant': {'type': 'string'}, 'expense_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string'}, 'external_id': {'type': 'string', 'description': 'Optional; merges ext:{source}:{id} into tags'}, 'payment_method': {'type': 'string', 'description': 'e.g. venmo, cash, card'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'changed': {'type': 'object', 'additionalProperties': True}, 'expense': {'type': 'object', 'description': 'Expense/income transaction row.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['food_id'], 'properties': {'food': {'type': 'string', 'description': 'Alias for what.'}, 'item': {'type': 'string', 'description': 'Alias for what.'}, 'kind': {'enum': ['meal', 'snack', 'drink'], 'type': 'string'}, 'what': {'type': 'string', 'description': 'Full updated dish/drink text (replaces, does not append). Example: Salmon Bento + hot tea'}, 'with': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Companion names, aliases, or ids to add (does not remove existing tags)'}, 'notes': {'type': 'string', 'description': 'Replaces notes. Empty or null clears'}, 'place': {'type': 'string', 'description': 'Venue or location. Empty or null clears'}, 'amount': {'type': 'number', 'description': 'Price if mentioned'}, 'dishes': {'type': 'array', 'description': 'Alias for dish_items.'}, 'people': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for with'}, 'food_id': {'type': 'string', 'description': 'UUID of a food diary row the authenticated user owns'}, 'paid_by': {'type': 'string', 'description': 'Who paid (name or alias)'}, 'currency': {'type': 'string', 'description': 'ISO currency, e.g. SGD'}, 'merchant': {'type': 'string', 'description': 'Restaurant, stall, or shop. Empty or null clears'}, 'dish_items': {'type': 'array', 'items': {'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string'}, 'price': {'type': 'number', 'minimum': 0}, 'rating': {'type': 'number', 'maximum': 5, 'minimum': 1}}, 'additionalProperties': False}, 'description': 'Complete replacement ordered dish list; [] clears it.'}, 'person_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Owned person UUIDs to tag (user-scoped)'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'consumed_at': {'type': 'string', 'description': 'ISO instant; wins over meal_period'}, 'description': {'type': 'string', 'description': 'Alias for what (the dish, not notes).'}, 'meal_period': {'type': 'string', 'description': 'Spoken period when consumed_at is omitted, e.g. "late lunch"'}, 'person_name': {'type': 'string', 'description': 'One companion to add, by name'}, 'append_notes': {'type': 'string', 'description': 'Append text to existing notes (newline-separated)'}, 'people_names': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Alias for with'}, 'payment_method': {'type': 'string', 'description': 'Alias of paid_by for expense-style agents'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['food_id', 'event_id', 'food_log', 'changed', 'people_tagged', 'unresolved_people', 'life_state_rebuilt'], 'properties': {'changed': {'type': 'object', 'description': 'Changed fields with before and after values.', 'additionalProperties': True}, 'food_id': {'type': 'string'}, 'event_id': {'type': ['string', 'null']}, 'food_log': {'type': 'object', 'description': 'Updated Food Diary row.', 'additionalProperties': True}, 'people_tagged': {'type': 'array', 'items': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}}, 'unresolved_people': {'type': 'array', 'items': {'type': 'string'}}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'What the user calls the item, e.g. "MacBook Pro 14 (2023)".'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Replaces the tag list.'}, 'brand': {'type': 'string'}, 'model': {'type': 'string'}, 'notes': {'type': 'string', 'description': 'Free text from the user.'}, 'specs': {'type': 'object', 'description': "Stable facts, by the template's field names (computer.v1: nickname, manufacturer, model_name, model_identifier, year, primary_uses, capability_tags, product_family, form_factor, chip, cpu, architecture, performance_cores, efficiency_cores, total_cores, threads, gpu, gpu_cores, gpu_memory_bytes, neural_engine_cores, memory_bytes, memory, storage_devices, display, ports). Merged per key on update; null removes a key; other keys are kept as written. Only what the user or the device says, never inferred from a model name. Never device or account identifiers."}, 'state': {'type': 'object', 'description': 'Changing facts, as one observation: observed_at (ISO, default now), source (e.g. user_reported, system_profiler), confidence (0-1), and values such as os { name, version, build }, available_storage_bytes, battery, security { sip, gatekeeper, filevault }, services { bluebubbles: { installed_version, running, configured, blockers, checked_at } }. Merged per key; a key observed more recently is kept. Never changes specs or notes. Never device or account identifiers.'}, 'status': {'type': 'string', 'description': 'wishlist | ordered | owned | listed_for_sale | sold | returned | lost | disposed | donated. Default owned. To archive, use archive_inventory_item.'}, 'subtype': {'type': 'string', 'description': 'Specific kind: laptop, sweatshirt, guitar. Alias: item_type.'}, 'category': {'type': 'string', 'description': "electronics | instruments | clothing | shoes | bags | accessories | jewelry | watches | collectibles | sports | health | home | tools | vehicles | furniture | other. Computers, phones and cameras are electronics; synths are instruments. Defaults to the spec_template's category, else other."}, 'currency': {'type': 'string', 'description': 'ISO 4217, e.g. USD, SGD. Default USD.'}, 'location': {'type': 'string', 'description': 'Where it is kept.'}, 'nickname': {'type': 'string', 'description': 'In place of inventory_id: what the user calls the item ("MacBook", "work laptop"), matched to exactly one of their active items by nickname, name or model. Several matches are refused with the candidates. To rename it, set specs.nickname.'}, 'condition': {'enum': ['new', 'excellent', 'good', 'worn', 'needs_repair', 'retired'], 'type': 'string'}, 'item_type': {'type': 'string', 'description': 'Alias for subtype (the stored column).'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'inventory_id': {'type': 'string', 'description': 'The item id from add_inventory_item, get_inventory or search_inventory.'}, 'acquired_date': {'type': 'string', 'description': "YYYY-MM-DD it came into the user's life (gift, inheritance). add_inventory_item also stores it as purchase_date when none is given."}, 'acquired_from': {'type': 'string', 'description': 'Shop or person it came from.'}, 'current_value': {'type': 'number', 'description': 'Alias for estimated_value (the stored column).'}, 'purchase_date': {'type': 'string', 'description': 'YYYY-MM-DD'}, 'spec_template': {'enum': ['computer.v1', 'phone.v1', 'camera.v1', 'synth.v1'], 'type': 'string', 'description': 'Which typed fields specs uses. Templates are listed in docs/MCP_LIFE_GRAPH.md. null (update) clears it.'}, 'purchase_price': {'type': 'number'}, 'estimated_value': {'type': 'number', 'description': 'What it is worth now. Alias: current_value.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'acquisition_type': {'type': 'string', 'description': 'purchase | gift | inheritance | …'}, 'reference_number': {'type': 'string', 'description': 'Manufacturer reference or model number (e.g. a watch reference).'}, 'subtype_confidence': {'type': 'number', 'description': '0-1, when the subtype is a guess.'}, 'specs_schema_version': {'type': 'integer', 'description': 'Layout of specs and state. Only 1 (the default).'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'item': {'type': 'object', 'description': 'Inventory item record. With specs: spec_template, specs, state (a timestamped snapshot), state_freshness and capability_summary.', 'additionalProperties': True}, 'changed': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'state_note': {'type': 'string'}, 'inventory_id': {'type': 'string'}, 'resolved_from': {'type': 'object', 'description': 'PHI-448: present when nickname found the item: the nickname sent and matched_on (nickname, name or model).', 'additionalProperties': True}, 'changed_fields': {'type': 'object', 'description': 'Columns set, and the specs / state keys written.', 'additionalProperties': True}, 'idempotent_replay': {'type': 'boolean'}, 'state_not_applied': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['slug'], 'properties': {'bio': {'type': 'string'}, 'flag': {'type': 'string'}, 'slug': {'type': 'string', 'description': 'Notable person slug (e.g. taylor-swift)'}, 'about': {'type': 'string'}, 'trivia': {'type': 'string'}, 'zodiac': {'type': 'string'}, 'net_worth': {'type': 'string'}, 'residence': {'type': 'string'}, 'birth_date': {'type': 'string', 'description': 'YYYY, YYYY-MM, or YYYY-MM-DD. Null/empty clears'}, 'occupation': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'before_fame': {'type': 'string'}, 'birth_place': {'type': 'string'}, 'family_life': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['person', 'changed'], 'properties': {'person': {'type': 'object', 'description': 'Updated notable catalog row (name, slug).', 'additionalProperties': True}, 'changed': {'type': 'object', 'description': 'Changed fields with before and after values.', 'additionalProperties': True}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['reply_id'], 'properties': {'draft': {'type': 'string', 'description': 'The reply text to send later, max 20,000 characters. Replaces the saved draft; empty or null clears. Alias: draft_message.'}, 'source': {'type': 'object', 'properties': {'kind': {'enum': ['gmail', 'email', 'other'], 'type': 'string'}, 'thread_id': {'type': 'string'}, 'message_id': {'type': 'string'}}, 'description': 'The email the reply answers, as ids only (e.g. a search_gmail id is a message_id). Never a subject, sender or text. On update, null clears it.', 'additionalProperties': False}, 'status': {'enum': ['pending', 'snoozed'], 'type': 'string'}, 'channel': {'type': 'string', 'description': 'Where to reply: whatsapp, email, sms, call, imessage, telegram, instagram, facebook, signal, linkedin, twitter, slack, teams, work_email, zoom, dayze, other. Default email when source is set, else other.'}, 'summary': {'type': 'string', 'description': 'One line (max 280) in your own words: what the reply is about. Never paste the email body, subject line or sender address.'}, 'category': {'enum': ['personal', 'work'], 'type': 'string'}, 'reply_id': {'type': 'string', 'description': 'From create_pending_reply or get_pending_replies.'}, 'person_id': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'person_name': {'type': 'string'}, 'received_at': {'type': 'string'}, 'snooze_until': {'type': 'string', 'description': 'ISO date-time, with status snoozed.'}, 'draft_message': {'type': 'string', 'description': 'Alias for draft.'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['reply', 'changed_fields', 'source_saved', 'message', 'life_state_rebuilt'], 'properties': {'reply': {'type': 'object', 'required': ['reply_id', 'person_name', 'person_id', 'channel', 'category', 'summary', 'draft', 'status', 'state', 'due', 'received_at', 'source'], 'properties': {'due': {'type': 'boolean', 'description': 'Owed now: pending, or snoozed with snooze_until passed. False while a snooze runs, and when sent or dismissed.'}, 'draft': {'type': ['string', 'null'], 'description': 'The reply text saved for later.'}, 'state': {'type': 'string', 'description': 'unsent (pending or snoozed), sent (the owner replied) or dismissed'}, 'source': {'type': ['object', 'null'], 'properties': {'kind': {'type': 'string', 'description': 'gmail, email or other'}, 'thread_id': {'type': ['string', 'null']}, 'message_id': {'type': ['string', 'null']}}, 'description': 'The email it answers, as ids only; null when none was saved.', 'additionalProperties': False}, 'status': {'type': 'string', 'description': 'pending, snoozed, responded or dismissed'}, 'channel': {'type': 'string'}, 'summary': {'type': ['string', 'null']}, 'category': {'type': 'string', 'description': 'personal or work'}, 'reply_id': {'type': 'string'}, 'person_id': {'type': ['string', 'null'], 'description': 'Linked contact id; null when the reply is unlinked.'}, 'created_at': {'type': ['string', 'null']}, 'updated_at': {'type': ['string', 'null']}, 'approved_at': {'type': ['string', 'null'], 'description': 'PHI-427: when the owner approved the draft and opened it in Gmail, or null. Dayze never sends; the Gmail sync closes the reply when the email goes out.'}, 'person_name': {'type': 'string'}, 'received_at': {'type': 'string'}, 'responded_at': {'type': ['string', 'null']}, 'snooze_until': {'type': ['string', 'null']}}, 'description': 'One reply the user owes (Inbox → Pending Replies). Dayze never sends it.', 'additionalProperties': False}, 'message': {'type': 'string'}, 'person_link': {'type': ['object', 'null'], 'required': ['status', 'person_id', 'note'], 'properties': {'note': {'type': 'string'}, 'status': {'type': 'string', 'description': 'linked, ambiguous, no_match or lookup_failed'}, 'person_id': {'type': ['string', 'null']}, 'candidates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}}, 'additionalProperties': False}}, 'matched_via': {'type': ['string', 'null']}, 'contact_name': {'type': ['string', 'null']}}, 'description': 'Whether a contact was linked. Linked only on one resolve_person match or an owned person_id.', 'additionalProperties': False}, 'source_saved': {'type': 'boolean'}, 'changed_fields': {'type': 'array', 'items': {'type': 'string'}}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'properties': {'notes': {'type': 'string'}, 'source': {'type': 'string'}, 'person_id': {'type': 'string'}, 'confidence': {'type': 'number'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'connection_id': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'other_person_id': {'type': 'string'}, 'relationship_type': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'message': {'type': ['string', 'null']}, 'updated': {'type': 'boolean'}, 'connection': {'type': 'object', 'additionalProperties': True}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'name': {'type': 'string', 'description': 'Rename contact (also refreshes URL slug). Prefer this over create+merge for spelling fixes'}, 'tier': {'enum': ['vip', 'normal', 'low'], 'type': 'string', 'description': 'Relationship priority. VIP stays in inner_circle even when not favorited'}, 'notes': {'type': 'string', 'description': 'Replaces people.notes (does not append). Empty or null clears'}, 'birthday': {'type': 'string', 'description': 'YYYY, YYYY-MM, YYYY-MM-DD, or MM-DD / --MM-DD (year unknown; 02-29 ok). Null/empty clears'}, 'person_id': {'type': 'string', 'description': 'UUID of a person the authenticated user owns'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'is_favorite': {'type': 'boolean', 'description': 'Favorite flag. Favorites (and VIP) appear in get_context_pack inner_circle'}, 'context_tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Contexts such as Work, Personal, Family, plus custom tags'}, 'relationship': {'type': 'string', 'description': 'Relationship label (friend, sister, …). Empty or null clears'}, 'relationships': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Who they are to the user, in primary-first order (for example Friend + Client)'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'preserve_old_name_as_alias': {'type': 'boolean', 'description': 'When renaming, keep the previous name as a former_name alias (default true)'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'required': ['person', 'changed', 'life_state_rebuilt'], 'properties': {'person': {'type': 'object', 'description': 'A Dayze person or contact record.', 'additionalProperties': True}, 'changed': {'type': 'object', 'description': 'Changed fields with before and after values.', 'additionalProperties': True}, 'change_id': {'type': 'string', 'description': 'Pass to undo_contact_change to revert this change, birthday and birthday_precision included.'}, 'former_name_alias': {'type': 'object', 'description': 'After a rename that keeps the old name (preserve_old_name_as_alias, default true): alias, saved, and reason when it could not be kept.', 'additionalProperties': True}, 'life_state_rebuilt': {'type': 'boolean'}}, 'additionalProperties': False}
Eingabeschema
{'type': 'object', 'required': ['person_id', 'alias'], 'properties': {'alias': {'type': 'string'}, 'source': {'type': 'string'}, 'person_id': {'type': 'string'}, 'alias_kind': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'alias_display': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'alias': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}, 'person_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['person_id'], 'properties': {'force': {'type': 'boolean'}, 'aliases': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}, 'website': {'type': 'string'}, 'pronouns': {'type': 'string'}, 'person_id': {'type': 'string'}, 'legal_name': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'preferred_name': {'type': 'string'}, 'social_handles': {'type': 'object', 'additionalProperties': True}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'user_relationships': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'person': {'type': 'object', 'additionalProperties': True}, 'changed': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'change_id': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'id': {'type': 'string'}, 'area': {'type': 'string'}, 'city': {'type': 'string'}, 'name': {'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'hours': {'type': 'string'}, 'notes': {'type': 'string'}, 'phone': {'type': 'string'}, 'address': {'type': 'string'}, 'country': {'type': 'string'}, 'website': {'type': 'string'}, 'category': {'type': 'string'}, 'latitude': {'type': 'number'}, 'place_id': {'type': 'string'}, 'longitude': {'type': 'number'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string'}, 'price_level': {'type': 'string'}, 'hours_source': {'type': 'string'}, 'affordability': {'type': 'string'}, 'opening_hours': {'type': 'string'}, 'phone_numbers': {'type': 'array', 'items': {'type': 'string'}}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'place': {'type': 'object', 'description': 'Saved place card.', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'updated': {'type': 'boolean'}, 'place_id': {'type': 'string'}, 'business_contact_id': {'type': 'string'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['sleep_id'], 'properties': {'notes': {'type': 'string'}, 'quality': {'type': 'number'}, 'ended_at': {'type': 'string'}, 'sleep_id': {'type': 'string'}, 'timezone': {'type': 'string'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'sleep_type': {'enum': ['overnight', 'nap', 'unknown'], 'type': 'string'}, 'started_at': {'type': 'string'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'ok': {'type': 'boolean'}, 'sleep': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['image_base64']}, {'required': ['url']}], 'properties': {'url': {'type': 'string', 'description': 'Remote image URL to fetch and store.'}, 'role': {'enum': ['original', 'processed', 'thumbnail', 'cover', 'document', 'receipt', 'certificate', 'photo', 'other'], 'type': 'string', 'description': 'original | cover | thumbnail | …'}, 'filename': {'type': 'string'}, 'metadata': {'type': 'object', 'description': 'Free-form metadata, merged into the stored metadata (metadata.source becomes the asset source).'}, 'entity_id': {'type': 'string'}, 'mime_type': {'type': 'string', 'description': 'image/jpeg, image/png, image/webp, … Alias: content_type.'}, 'asset_type': {'type': 'string', 'description': 'photo | receipt | certificate | document | thumbnail | …'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string'}, 'entity_type': {'type': 'string', 'description': 'event | place | person | inventory (inventory_item maps to inventory) | …'}, 'content_type': {'type': 'string', 'description': 'Alias for mime_type.'}, 'image_base64': {'type': 'string', 'description': 'Base64 image bytes (optional data: URL prefix).'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}, 'parent_asset_id': {'type': 'string'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'asset': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'asset_id': {'type': 'string'}, 'metadata_stripped': {'type': 'boolean'}}, 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'anyOf': [{'required': ['image_base64']}, {'required': ['url']}], 'required': ['entity_type', 'entity_id'], 'properties': {'url': {'type': 'string', 'description': 'Remote image URL to fetch and store.'}, 'role': {'type': 'string', 'description': 'original | cover | thumbnail | … (photo is stored as original). set_as_avatar implies cover.'}, 'title': {'type': 'string'}, 'filename': {'type': 'string'}, 'entity_id': {'type': 'string'}, 'mime_type': {'type': 'string', 'description': 'Alias for content_type.'}, 'request_id': {'type': 'string', 'description': 'Client idempotency key (retries return original result).'}, 'description': {'type': 'string'}, 'entity_type': {'type': 'string'}, 'content_type': {'type': 'string'}, 'image_base64': {'type': 'string', 'description': 'Base64 image bytes (optional data: URL prefix).'}, 'set_as_avatar': {'type': 'boolean'}, 'idempotency_key': {'type': 'string', 'description': 'Alias for request_id.'}}, 'additionalProperties': False}
Ausgabeschema
{'type': 'object', 'properties': {'url': {'type': ['string', 'null']}, 'asset': {'type': 'object', 'additionalProperties': True}, 'message': {'type': ['string', 'null']}, 'asset_id': {'type': 'string'}, 'attached': {'type': 'boolean'}, 'photo_id': {'type': ['string', 'null']}, 'entity_id': {'type': 'string'}, 'optimized': {'type': 'object', 'additionalProperties': True}, 'entity_type': {'type': 'string'}, 'avatar_updated': {'type': 'boolean'}, 'metadata_stripped': {'type': 'boolean'}}, 'additionalProperties': True}
Letzte Tool-Änderungen
Ähnliche MCP-Server
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
YouSpot
Connects personal contacts, companies, notes, files, CRM records, email, Slack, LinkedIn, and calendars, with search, relationshi…
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
personalbrain-mcp
Provides read and write access to a personal knowledge graph, including thoughts, notes, links, attachments, queries, and change …
Kaiku
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
Dock
Provides collaborative workspaces with tables, documents, HTML surfaces, files, formulas, comments, activity tracking, agent mess…
ContextLayer
Stores and retrieves organizational documents and knowledge-graph context while managing projects, tasks, teams and work sessions.
Kythene
Provides shared team memory, collections, wikis, artifacts, comments, approvals, review workflows, presence, and controlled shari…