Reference
The app's API
The web app talks to Conch over HTTP and one WebSocket. A script with an access key can use the same doors.
This is the app's own API, at protocol version 7 today. It moves with the app, so treat it as a map and not a promise. Every body is checked against the schemas in packages/protocol, on both sides.
curl -H "Authorization: Bearer conch_…" http://localhost:4317/api/stateMake the key with conch key. Changes that grant trust also need a password or key from the last ten minutes.
Over HTTP
The live socket
One WebSocket at /ws carries everything that happens while you watch.
What the app sends
- conversation.send
- conversation.configure
- conversation.subscribe
- conversation.unsubscribe
- conversation.interrupt
- permission.respond
- ping
- Nothing else.
- presence
- hello
- conversation.created
- conversation.updated
- conversation.deleted
- folders.changed
- conversation.event
- conversation.reset
- conversation.synced
- engine.status
- engine.login
- memory.changed
- Nothing else.
- learning.changed
- Nothing else.
- routine.changed
- routine.deleted
- routine.run
- routines.spending
- integration.changed
- integration.deleted
- skills.changed
- Nothing else.
- skills.offered
- vault.changed
- Nothing else.
- usage.changed
- terminal.changed
- Nothing else.
- browser.status
- network.status
- doctor.report
- updates.changed
- channel.changed
- channel.deleted
- channel.link
- channel.door
- healed
- backups.changed
- Nothing else.
- import.progress
- conch-apps.changed
- Nothing else.
- artifact.changed
- artifact.deleted
- task.changed
- task.deleted
- voice.changed
- wake.stop
- Nothing else.
- access.changed
- address.changed
- pong
- Nothing else.
- error
What a conversation is made of
A conversation is an append-only log. Each event has a seq; a client that reconnects says the last one it saw, and Conch replays the rest.
- user.message
- assistant.delta
- assistant.done
- tool.started
- tool.finished
- permission.requested
- permission.resolved
- memory.saved
- memory.forgotten
- memory.decided
- learning.noted
- learning.decided
- taint
- chats.looked
- files.changed
- files.restored
- artifact
- task
- status
- turn.usage
- turn.completed
- title
- turn.capped
- turn.capped.settled
- spend.notice
- skill.used
- skill.hold.ended
- notice
- options
- vault.request
- browser.step
- browser.handoff
- turn.held
- turn.needs-apps
- context.compacted
- turn.routed
- routine
- integration.issue
- integration.suggestion
- integration.suggestion.dismissed
- offer
- offer.resolved
- question
- question.answered
- replies
- conch-app.offer
- plan