{"ok":true,"site":{"host":"daymaker.fun","url":"https://daymaker.fun/needs","type":"live","desc":"daymaker.fun is a live day plan shared by people and their agents.","tools":[{"name":"get_mission_state","kind":"answer","impl":"imperative","description":"Read the current daymaker.fun needs and proposed schedule: revision, brief, needs, stable stop IDs, times, places, locks, sources, and its portable session URL. Use before changing it.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/needs","pages":["/needs","/schedule"]},{"name":"update_day_context","kind":"act","impl":"imperative","description":"Extract and set Needs plus the planning brief, title, timezone, time, location, and pace. With replacePlan true, atomically discard the complete previous proposal and start a new one. Returns the new revision and portable session URL.","inputSchema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Revision returned by the latest mission read or write."},"brief":{"type":"string","maxLength":8000,"description":"What the person needs the proposed schedule to accomplish."},"needs":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"fixed":{"type":"boolean","description":"True when the need cannot be traded off."},"label":{"type":"string","minLength":1,"maxLength":80,"description":"One concise planning need."}},"required":["fixed","label"],"additionalProperties":false},"description":"Editable planning needs parsed from the person's brief."},"currentLocation":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80,"description":"Human-readable place or address."},"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude from -90 to 90."},"lng":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude from -180 to 180."}},"required":["label","lat","lng"],"additionalProperties":false,"description":"Where the group is now."},"currentTime":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO 8601 date-time with an explicit UTC offset."},"energy":{"type":"string","enum":["high","medium","low"],"description":"Desired pace: low is easy, medium is balanced, high is full."},"reason":{"type":"string","minLength":1,"maxLength":160,"description":"Why the context changed."},"replacePlan":{"type":"boolean","description":"True starts a new plan and replaces the complete previous proposal; false updates in place."},"timezone":{"type":"string","minLength":1,"maxLength":80,"description":"IANA timezone, such as Europe/Warsaw."},"title":{"type":"string","minLength":1,"maxLength":80,"description":"Concise user-facing plan title."}},"required":["expectedRevision","brief","needs","currentLocation","currentTime","energy","reason","replacePlan","timezone","title"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/needs","pages":["/needs","/schedule"]},{"name":"update_mission_stop","kind":"act","impl":"imperative","description":"Set one existing stop's planned, active, completed, or skipped status by stable ID, or remove an obsolete stop. Locked commitments stay unchanged. Returns the new revision and portable session URL.","inputSchema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Revision returned by the latest mission read or write."},"note":{"description":"Optional concise user-facing note.","type":"string","minLength":1,"maxLength":240},"reason":{"type":"string","minLength":1,"maxLength":160,"description":"Why this status fits the current mission."},"status":{"type":"string","enum":["planned","active","completed","skipped","removed"],"description":"New lifecycle status, or removed to delete an obsolete stop."},"stopId":{"type":"string","minLength":1,"maxLength":160,"description":"Stable ID from get_mission_state."}},"required":["expectedRevision","reason","status","stopId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/needs","pages":["/needs","/schedule"]},{"name":"add_mission_stop","kind":"act","impl":"imperative","description":"Add one researched stop with time, duration, coordinates, travel estimate, rationale, and HTTPS source. Returns its ID, the new revision, and portable session URL.","inputSchema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Revision returned by the latest mission read or write."},"durationMinutes":{"type":"integer","minimum":5,"maximum":720,"description":"Planned duration in minutes."},"kind":{"type":"string","enum":["activity","service","meal","transition"],"description":"Operational kind of stop."},"location":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":80,"description":"Human-readable place or address."},"lat":{"type":"number","minimum":-90,"maximum":90,"description":"Latitude from -90 to 90."},"lng":{"type":"number","minimum":-180,"maximum":180,"description":"Longitude from -180 to 180."}},"required":["label","lat","lng"],"additionalProperties":false,"description":"Place and map coordinates."},"note":{"description":"Optional concise user-facing note.","type":"string","minLength":1,"maxLength":240},"rationale":{"type":"string","minLength":1,"maxLength":240,"description":"Why this stop fits the current constraints."},"source":{"type":"object","properties":{"checkedAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO 8601 date-time with an explicit UTC offset."},"title":{"type":"string","minLength":1,"maxLength":100,"description":"Short source title."},"url":{"type":"string","maxLength":2048,"format":"uri","description":"Public HTTPS source URL."}},"required":["checkedAt","title","url"],"additionalProperties":false,"description":"Evidence used to choose this stop."},"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO 8601 date-time with an explicit UTC offset."},"title":{"type":"string","minLength":1,"maxLength":80,"description":"Concise user-facing stop name."},"travelMinutesFromPrevious":{"type":"integer","minimum":0,"maximum":240,"description":"Estimated travel minutes from the prior stop."}},"required":["expectedRevision","durationMinutes","kind","location","rationale","source","startsAt","title","travelMinutesFromPrevious"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/needs","pages":["/needs","/schedule"]},{"name":"reorder_mission_stops","kind":"act","impl":"imperative","description":"Set the order and start times of every active or planned stop. Include each future stop once; locked commitments keep their time. Returns the new revision and portable session URL.","inputSchema":{"type":"object","properties":{"expectedRevision":{"type":"integer","minimum":0,"maximum":9007199254740991,"description":"Revision returned by the latest mission read or write."},"orderedStops":{"minItems":1,"maxItems":8,"type":"array","items":{"type":"object","properties":{"startsAt":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$","description":"ISO 8601 date-time with an explicit UTC offset."},"stopId":{"type":"string","minLength":1,"maxLength":160,"description":"Stable future stop ID."}},"required":["startsAt","stopId"],"additionalProperties":false},"description":"Every active or planned stop, once, in the new order."},"reason":{"type":"string","minLength":1,"maxLength":160,"description":"Why this order fits the mission."}},"required":["expectedRevision","orderedStops","reason"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/needs","pages":["/needs","/schedule"]}],"category":"Productivity & Business","favicon":"/favicons/daymaker.fun.png","apiSurface":"spec","toolCount":5}}