CranleyGitHub

Tracks

Photon: Build a Messaging Agent using Photon 2.0

The same agent and the same measuring tools answer in iMessage and on a phone call. Merged; a live round trip was not yet confirmed when this page was built.

Prizes: winner, runner-up, and Best Voice Agent. Built on ws/photon (merged at a8c7348); details in docs/PHOTON.md.

Angle. The people who need a building checked are rarely at a desk: they are walking through a viewing, driving to one, or standing in a doorway with a tape measure. On Photon, the same agent and the same measuring tools answer in iMessage and on a phone call.

What a person does Why it is a real use of Photon 2.0
Asks in plain words, gets the floor plan picture marked with findings, the verdict, the measurements and a workspace link Shared iMessage line, native replies, attachment upload, typing indicator
Replies to an earlier answer (“what about a 76 cm chair?”) The reply thread is the investigation (parentMessageId in and out)
Says “yes”, “no” or “always” to a slow step Approvals by native reply
Sends a photo of a doorway with a bank card, a ceiling photo, a short video, a voice note, a location Inbound attachments, video, audio and vCard locations each run a tool
Types “visit” Unsettled checks arrive one at a time; each reply settles one and the desktop workspace updates live
Types “report” The PDF arrives in the chat, ready to forward
Turns “voice on” Answers also arrive as native iMessage voice messages
Does nothing The chat background becomes the building’s plan; a National Weather Service alert at that building arrives once with their own flood result
Calls the number An ElevenLabs agent over SIP runs the same checks by voice; the plan and link follow in iMessage after the call (Best Voice Agent)

Rules it keeps: every sent line is built from the tool result, never from model text; a typed size needs a unit; only rendered pictures leave the server; the main API stays private behind one signature-checked relay; each event is handled once, in order per chat.

State (7:50 pm): merged with 14 tests; the live line is up with sends limited to an allowlist; a first real round trip had not been confirmed; the phone agent needs a voice number.

Demo path. Text the line “will an F-150 fit in this garage?” with a building link, get the marked plan back, reply “what about two?”, then “report” for the PDF. For Best Voice: call, ask the same, hang up, show the iMessage that follows.

In the docs