{"capabilities":[{"capability_id":"hi.email-binding","tool_name":"email_binding","title":"Email Binding","description":"Bind this pending Agent to a verified Hi identity. Call bind with email, then verify with the code.","handler_group":"identity_binding","scopes":[],"parameters":{"type":"object","properties":{"action":{"type":"string","enum":["bind","verify"]},"email":{"type":"string"},"code":{"type":"string"},"display_name":{"type":"string"}},"required":["action"],"additionalProperties":false},"bindings":[{"kind":"http","profile":"hi.capability-http.v1","method":"POST","path":"/v1/capabilities/hi.email-binding/call","schema_path":"/v1/capabilities/hi.email-binding/schema"}],"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false,"idempotentHint":true,"title":"Sign in with email"}},{"capability_id":"hi.google-link","tool_name":"google_link","title":"Google Link","description":"Bind this pending Agent to a verified Hi identity. Call start, open verification_url, then call poll.","handler_group":"identity_binding","scopes":[],"parameters":{"type":"object","properties":{"action":{"type":"string","enum":["start","poll"]}},"required":["action"],"additionalProperties":false},"bindings":[{"kind":"http","profile":"hi.capability-http.v1","method":"POST","path":"/v1/capabilities/hi.google-link/call","schema_path":"/v1/capabilities/hi.google-link/schema"}],"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false,"idempotentHint":true,"title":"Sign in with Google"}},{"capability_id":"hi.phone-binding","tool_name":"phone_binding","title":"Phone Binding","description":"Bind this pending Agent to a verified Hi identity. Call bind with phone, then verify with the code.","handler_group":"identity_binding","scopes":[],"parameters":{"type":"object","properties":{"action":{"type":"string","enum":["bind","verify"]},"phone":{"type":"string"},"code":{"type":"string"},"display_name":{"type":"string"}},"required":["action"],"additionalProperties":false},"bindings":[{"kind":"http","profile":"hi.capability-http.v1","method":"POST","path":"/v1/capabilities/hi.phone-binding/call","schema_path":"/v1/capabilities/hi.phone-binding/schema"}],"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false,"idempotentHint":true,"title":"Sign in with phone"}},{"capability_id":"hi.workspace-workflows","tool_name":"workspace_workflows","title":"Workspace Workflows","description":"Canonical Agent access to HiRey Person, Workspace, Moment, Page, Need, People and Message workflows. Use action=catalog to inspect the implemented operations and action=describe with payload.operation to inspect one machine-readable payload/result/error contract. Authority always comes from the authenticated Account, Person, Workspace, Agent and Agent Session; payload identity fields are ignored. Every write or external-effect payload requires a stable idempotency_key, reused only for an exact retry. A pending Agent installation credential is limited to people.find, people.explain and a staged capture.record that must be adopted after verified login.","handler_group":"core_workspace","scopes":["hirey.agent","hirey.f01.identity.me","hirey.f01.workspace.focused","hirey.f01.workspace.list","hirey.f01.workspace.focus","hirey.f01.workspace.members","hirey.f01.workspace.company.create","hirey.f01.workspace.team.create","hirey.f01.workspace.member.invitations","hirey.f01.workspace.member.invite","hirey.f01.workspace.member.decide","hirey.f01.workspace.member.capability_events","hirey.f01.workspace.member.capabilities.update","hirey.f01.workspace.member.revoke","hirey.f01.workspace.announcement.draft","hirey.f01.workspace.announcement.preview","hirey.f01.workspace.announcement.publish","hirey.f01.workspace.announcement.list","hirey.f01.workspace.announcement.get","hirey.f01.workspace.announcement.archive","hirey.f01.identity.update_display_name","hirey.f01.identity.claim_routed_person","hirey.f17.phone_route.upsert","hirey.f17.phone_route.list","hirey.f17.phone_route.revoke","hirey.f17.phone_call.list","hirey.f17.phone_call.get","hirey.f02.capture.record","hirey.f02.capture.list","hirey.f02.capture.get","hirey.f02.moment.create","hirey.f02.moment.list","hirey.f02.moment.get","hirey.f02.moment.evidence","hirey.f02.moment.withdraw","hirey.f02.diary.sync","hirey.f02.diary.snapshot","hirey.f02.diary.publish_moment","hirey.f02.diary.withdraw_public_moment","hirey.f03.person.observe","hirey.f03.person.observe_contact","hirey.f03.person.brief","hirey.f03.person.network.save","hirey.f03.person.note.add","hirey.f03.person.note.delete","hirey.f03.person.tag.add","hirey.f03.person.tag.remove","hirey.f03.person.follow_up.set","hirey.f03.person.private_contact.set","hirey.f03.person.private_contact.remove","hirey.f03.person.archive","hirey.f03.person.display_name.set","hirey.f03.person.introduced_by.set","hirey.f03.person.introduced_by.remove","hirey.f03.person.import.preview","hirey.f03.person.import.get","hirey.f03.person.import.commit","hirey.f03.commitment.create","hirey.f03.commitment.snooze","hirey.f03.commitment.complete","hirey.f03.commitment.cancel","hirey.f03.commitment.list","hirey.f03.commitment.get","hirey.f03.commitment.due","hirey.f04.people.find_private","hirey.f04.people.resolve_capture_subject","hirey.f04.people.snapshot.private","hirey.f04.people.explain_private","hirey.f04.people.detail","hirey.f04.enrichment.request","hirey.f04.enrichment.list","hirey.f04.enrichment.decide","hirey.f05.page.create","hirey.f05.page.mine","hirey.f05.page.compose","hirey.f05.page.draft","hirey.f05.page.grant_connector","hirey.f05.page.grant_owner","hirey.f05.page.authorize","hirey.f05.page.publish","hirey.f05.page.withdraw","hirey.f05.page.withdrawal_request","hirey.f05.page.recovery.start","hirey.f05.page.recovery.list","hirey.f05.page.recovery.get","hirey.f05.page.recovery.preview","hirey.f05.page.recovery.accept","hirey.f05.page.dispute.raise","hirey.f05.page.dispute.list","hirey.f05.claim.credential","hirey.f05.claim.invite","hirey.f05.claim.preview","hirey.f05.claim.execute","hirey.f06.need.create","hirey.f06.need.list","hirey.f06.need.get","hirey.f06.need.change_status","hirey.f06.listing.create","hirey.f06.listing.list","hirey.f06.listing.get","hirey.f06.listing.change_status","hirey.f06.discovery.find_for_need","hirey.f06.people.find","hirey.f06.people.explain","hirey.f06.match.record","hirey.f06.match.select","hirey.f06.match.dismiss","hirey.f06.pairing.create","hirey.f06.pairing.list","hirey.f06.pairing.get","hirey.f06.pairing.decide","hirey.f06.pairing.close","hirey.f07.contact.policy","hirey.f07.contact.intent","hirey.f07.contact.list","hirey.f07.contact.get","hirey.f07.contact.reject","hirey.f07.contact.block","hirey.f07.message.send","hirey.f07.outreach.draft","hirey.f07.outreach.prepare","hirey.f07.outreach.edit","hirey.f07.outreach.get","hirey.f07.outreach.list","hirey.f07.outreach.send","hirey.f07.outreach.mark_relayed","hirey.f07.message.reply","hirey.f07.message.deliver_after_claim","hirey.f07.message.withdraw","hirey.f07.message.inbox","hirey.f07.actions.overview","hirey.f07.message.read","hirey.f07.message.acknowledge","hirey.f07.agent_message.send","hirey.f07.agent_message.reply","hirey.f07.agent_message.list","hirey.f07.agent_message.claim","hirey.f07.agent_message.complete","hirey.f07.agent_message.fail","hirey.f08.contact.introduction_decide","hirey.f08.reach.policy","hirey.f08.reach.set_contact_policy","hirey.f08.reach.set_connector_availability","hirey.f08.reach.route.plan","hirey.f08.reach.route.get","hirey.f08.reach.route.decide","hirey.f08.reach.route.revalidate","hirey.f09.meeting.propose","hirey.f09.meeting.decide","hirey.f09.meeting.cancel","hirey.f09.meeting.reschedule","hirey.f09.meeting.occurred","hirey.f09.meeting.outcome","hirey.f09.meeting.list","hirey.f09.meeting.get","hirey.f09.meeting.calendar","hirey.f09.meeting.policy.get","hirey.f09.meeting.policy.update","hirey.f09.meeting_link.create","hirey.f09.meeting_link.list","hirey.f09.meeting_link.get","hirey.f09.meeting_link.revise","hirey.f09.meeting_link.respond","hirey.f09.meeting_link.cancel","hirey.f09.relationship.confirm","hirey.f09.relationship.list","hirey.f09.relationship.revoke","hirey.f09.followup.list","hirey.f13.product_signal.submit","hirey.f13.product_signal.list","hirey.f13.product_signal.get","hirey.f13.product_signal.draft.list","hirey.f13.product_signal.draft.get","hirey.f13.product_signal.draft.update","hirey.f13.product_signal.triage","hirey.f13.product_signal.daily_summary","hirey.f13.product_signal.verify_repair","hirey.f14.repair.case.create","hirey.f14.repair.case.list","hirey.f14.repair.case.get","hirey.f14.repair.case.link_signal","hirey.f14.repair.case.update_analysis","hirey.f14.repair.case.add_evidence","hirey.f14.repair.grant.create","hirey.f14.repair.grant.list","hirey.f14.repair.grant.revoke","hirey.f14.repair.run.claim","hirey.f14.repair.run.heartbeat","hirey.f14.repair.run.finish","hirey.f14.repair.run.list","hirey.f14.repair.release.advance","hirey.f10.media.create","hirey.f10.media.list","hirey.f10.media.get","hirey.f10.media.access.grant","hirey.f10.media.access.revoke","hirey.f10.media.access.list","hirey.f10.media.asset.attach","hirey.f10.media.retention.change","hirey.f10.media.request_review","hirey.f10.media.review_decide","hirey.f10.media.authorize","hirey.f10.media.publish","hirey.f10.media.withdraw","hirey.f10.media.job.request","hirey.f10.media.job.list","hirey.f10.media.job.get","hirey.f10.media.job.cancel","hirey.f10.media.candidate.list","hirey.f10.media.candidate.decide","hirey.f10.media.revision.rollback","hirey.f10.media.series.create","hirey.f10.media.series.list","hirey.f10.media.series.get","hirey.f10.media.series.add_item","hirey.f10.media.series.remove_item","hirey.f10.media.series.reorder","hirey.f10.media.series.archive","hirey.f10.agentic_media.work.create","hirey.f10.agentic_media.upload.describe","hirey.f10.agentic_media.upload.complete","hirey.f10.agentic_media.upload.cancel","hirey.f10.agentic_media.work.list","hirey.f10.agentic_media.work.status","hirey.f10.agentic_media.work.revise","hirey.f10.agentic_media.release.freeze","hirey.f10.agentic_media.publish","hirey.f10.agentic_media.withdraw","hirey.f15.interview.create","hirey.f15.interview.list","hirey.f15.interview.get","hirey.f15.interview.set_subject","hirey.f15.interview.bind_page","hirey.f15.interview.unbind_page","hirey.f15.interview.transcript.revise","hirey.f15.interview.qa.decide","hirey.f15.interview.request_processing","hirey.f15.interview.subject.object","hirey.f15.interview.subject.objection.list","hirey.f11.watch.create","hirey.f11.watch.list","hirey.f11.watch.change_status","hirey.f11.brief.settings","hirey.f11.brief.set_status","hirey.f11.connector_policy.get","hirey.f11.connector_policy.update","hirey.f11.watch.suppressions","hirey.f11.watch.suppress_person","hirey.f11.watch.allow_person","hirey.f11.watch.record_hit","hirey.f11.watch.inbox","hirey.f11.watch.mark_hit","hirey.f11.inbound.record","hirey.f11.external_source.authorize","hirey.f11.external_source.list","hirey.f11.external_source.revoke","hirey.f11.notification.settings","hirey.f11.notification.update_settings","hirey.f11.notification.list","hirey.f11.notification.mark","hirey.f12.work.create","hirey.f12.work.list","hirey.f12.work.ask.list","hirey.f12.work.ask.get","hirey.f12.work.get","hirey.f12.work.transition","hirey.f12.work.ask","hirey.f12.work.answer","hirey.f12.task.create","hirey.f12.task.list","hirey.f12.task.get","hirey.f12.task.transition","hirey.f12.task.assign","hirey.f12.task.takeover","hirey.f12.task.worker.request","hirey.f12.task.proposal.list","hirey.f12.task.proposal.decide","hirey.f13.company.official_record.get","hirey.f13.company.domain.begin","hirey.f13.company.domain.verify","hirey.f13.company.domain.list","hirey.f13.company.official_record.draft","hirey.f13.company.official_record.publish","hirey.f13.company.official_record.withdraw","hirey.f13.resource.register","hirey.f13.resource.list","hirey.f13.resource.get","hirey.f13.resource.share","hirey.f13.resource.revoke","hirey.f13.product.create","hirey.f13.product.list","hirey.f13.product.get","hirey.f13.product.draft","hirey.f13.product.publish","hirey.f13.product.withdraw","hirey.f13.product.public_list","hirey.f13.product.public_get","hirey.f13.product.try","hirey.f16.integration.list","hirey.f16.integration.x.begin","hirey.f16.integration.x.complete","hirey.f09.integration.google.begin","hirey.f09.integration.google.complete","hirey.f09.integration.zoom.begin","hirey.f09.integration.zoom.complete","hirey.f16.integration.revoke","hirey.f16.distribution.publish","hirey.f16.distribution.list","hirey.f16.distribution.get","hirey.f16.distribution.withdraw","hirey.f16.lead.list","hirey.f16.lead.assign","hirey.f16.lead.change_status","hirey.f07.message.presentation.decide","hirey.f07.message.presentation.list"],"parameters":{"type":"object","properties":{"action":{"type":"string","enum":["catalog","describe","identity.me","workspace.focused","workspace.list","workspace.focus","workspace.members","workspace.company.create","workspace.team.create","workspace.member.invitations","workspace.member.invite","workspace.member.decide","workspace.member.capability_events","workspace.member.capabilities.update","workspace.member.revoke","workspace.announcement.draft","workspace.announcement.preview","workspace.announcement.publish","workspace.announcement.list","workspace.announcement.get","workspace.announcement.archive","identity.update_display_name","identity.claim_routed_person","phone_route.upsert","phone_route.list","phone_route.revoke","phone_call.list","phone_call.get","capture.record","capture.list","capture.get","moment.create","moment.list","moment.get","moment.evidence","moment.withdraw","diary.sync","diary.snapshot","diary.publish_moment","diary.withdraw_public_moment","person.observe","person.observe_contact","person.brief","person.network.save","person.note.add","person.note.delete","person.tag.add","person.tag.remove","person.follow_up.set","person.private_contact.set","person.private_contact.remove","person.archive","person.display_name.set","person.introduced_by.set","person.introduced_by.remove","person.import.preview","person.import.get","person.import.commit","commitment.create","commitment.snooze","commitment.complete","commitment.cancel","commitment.list","commitment.get","commitment.due","people.find_private","people.resolve_capture_subject","people.snapshot.private","people.explain_private","people.detail","enrichment.request","enrichment.list","enrichment.decide","page.create","page.mine","page.compose","page.draft","page.grant_connector","page.grant_owner","page.authorize","page.publish","page.withdraw","page.withdrawal_request","page.recovery.start","page.recovery.list","page.recovery.get","page.recovery.preview","page.recovery.accept","page.dispute.raise","page.dispute.list","claim.credential","claim.invite","claim.preview","claim.execute","need.create","need.list","need.get","need.change_status","listing.create","listing.list","listing.get","listing.change_status","discovery.find_for_need","people.find","people.explain","match.record","match.select","match.dismiss","pairing.create","pairing.list","pairing.get","pairing.decide","pairing.close","contact.policy","contact.intent","contact.list","contact.get","contact.reject","contact.block","message.send","outreach.draft","outreach.prepare","outreach.edit","outreach.get","outreach.list","outreach.send","outreach.mark_relayed","message.reply","message.deliver_after_claim","message.withdraw","message.inbox","actions.overview","message.read","message.acknowledge","agent_message.send","agent_message.reply","agent_message.list","agent_message.claim","agent_message.complete","agent_message.fail","contact.introduction_decide","reach.policy","reach.set_contact_policy","reach.set_connector_availability","reach.route.plan","reach.route.get","reach.route.decide","reach.route.revalidate","meeting.propose","meeting.decide","meeting.cancel","meeting.reschedule","meeting.occurred","meeting.outcome","meeting.list","meeting.get","meeting.calendar","meeting.policy.get","meeting.policy.update","meeting_link.create","meeting_link.list","meeting_link.get","meeting_link.revise","meeting_link.respond","meeting_link.cancel","relationship.confirm","relationship.list","relationship.revoke","followup.list","product_signal.submit","product_signal.list","product_signal.get","product_signal.draft.list","product_signal.draft.get","product_signal.draft.update","product_signal.triage","product_signal.daily_summary","product_signal.verify_repair","repair.case.create","repair.case.list","repair.case.get","repair.case.link_signal","repair.case.update_analysis","repair.case.add_evidence","repair.grant.create","repair.grant.list","repair.grant.revoke","repair.run.claim","repair.run.heartbeat","repair.run.finish","repair.run.list","repair.release.advance","media.create","media.list","media.get","media.access.grant","media.access.revoke","media.access.list","media.asset.attach","media.retention.change","media.request_review","media.review_decide","media.authorize","media.publish","media.withdraw","media.job.request","media.job.list","media.job.get","media.job.cancel","media.candidate.list","media.candidate.decide","media.revision.rollback","media.series.create","media.series.list","media.series.get","media.series.add_item","media.series.remove_item","media.series.reorder","media.series.archive","agentic_media.work.create","agentic_media.upload.describe","agentic_media.upload.complete","agentic_media.upload.cancel","agentic_media.work.list","agentic_media.work.status","agentic_media.work.revise","agentic_media.release.freeze","agentic_media.publish","agentic_media.withdraw","interview.create","interview.list","interview.get","interview.set_subject","interview.bind_page","interview.unbind_page","interview.transcript.revise","interview.qa.decide","interview.request_processing","interview.subject.object","interview.subject.objection.list","watch.create","watch.list","watch.change_status","brief.settings","brief.set_status","connector_policy.get","connector_policy.update","watch.suppressions","watch.suppress_person","watch.allow_person","watch.record_hit","watch.inbox","watch.mark_hit","inbound.record","external_source.authorize","external_source.list","external_source.revoke","notification.settings","notification.update_settings","notification.list","notification.mark","work.create","work.list","work.ask.list","work.ask.get","work.get","work.transition","work.ask","work.answer","task.create","task.list","task.get","task.transition","task.assign","task.takeover","task.worker.request","task.proposal.list","task.proposal.decide","company.official_record.get","company.domain.begin","company.domain.verify","company.domain.list","company.official_record.draft","company.official_record.publish","company.official_record.withdraw","resource.register","resource.list","resource.get","resource.share","resource.revoke","product.create","product.list","product.get","product.draft","product.publish","product.withdraw","product.public_list","product.public_get","product.try","integration.list","integration.x.begin","integration.x.complete","integration.google.begin","integration.google.complete","integration.zoom.begin","integration.zoom.complete","integration.revoke","distribution.publish","distribution.list","distribution.get","distribution.withdraw","lead.list","lead.assign","lead.change_status","message.presentation.decide","message.presentation.list"],"description":"catalog, describe, or one exact implemented Core operation."},"payload":{"type":"object","description":"Operation payload. Do not include authority identifiers.","additionalProperties":true},"confirmation":{"type":"object","description":"Required when the operation catalog requires explicit user confirmation. A clear user instruction authorizes that exact action; do not ask again for the same recipient, content and scope. Agent-initiated actions or material changes need approval.","properties":{"approved":{"type":"boolean"},"operation":{"type":"string"}},"required":["approved","operation"]}},"required":["action"]},"bindings":[{"kind":"http","profile":"hi.capability-http.v1","method":"POST","path":"/v1/capabilities/hi.workspace-workflows/call","schema_path":"/v1/capabilities/hi.workspace-workflows/schema"}],"annotations":{"readOnlyHint":false,"openWorldHint":true,"destructiveHint":false,"idempotentHint":true,"title":"HiRey workspace workflows"}}],"_meta":{"hirey_plugin":{"host":"generic","name":"hirey-hi","latest":null,"minimum_supported":null,"update_required":null,"update_recommended":null,"update_command":null,"restart_required":false}}}