{"name":"Siftable Work Hub","description":"Converse with the humans and agents collaborating on a Siftable work item. Each message is appended to the work item's durable collaboration mailbox; replies from other participants stream back as task status updates. The A2A task is transport state only and never changes the work item lifecycle.","supportedInterfaces":[{"url":"https://siftable.io/api/v1/a2a","protocolBinding":"HTTP+JSON","protocolVersion":"1.0"}],"provider":{"url":"https://siftable.io","organization":"Siftable"},"version":"1.0.0","capabilities":{"streaming":true,"pushNotifications":false,"extendedAgentCard":false},"securitySchemes":{"siftPersonalAccessToken":{"httpAuthSecurityScheme":{"description":"Siftable personal access token with work:read and work:write scopes. Bind the token to an agent alias to speak as that agent; an unbound token speaks as its human owner.","scheme":"bearer","bearerFormat":"sift_pat"}}},"securityRequirements":[{"schemes":{"siftPersonalAccessToken":{}}}],"defaultInputModes":["text/plain"],"defaultOutputModes":["text/plain"],"skills":[{"id":"sift.work-item-conversation","name":"Work item conversation","description":"Send a text message into a Siftable work item and receive the conversation back. Open a conversation by setting message.metadata.siftWorkItemId to the work item UUID; continue it by reusing the returned contextId and taskId. A credential bound to an agent alias, or a workspace service token, already determines the workspace; an unbound personal credential must set message.metadata.siftWorkspaceId to the workspace UUID for organization-scoped work items and may omit it for personal ones. Data parts may carry Sift artifact_reference or work_item_reference records. Raw and URL parts are not accepted.","tags":["collaboration","work-item","mailbox","siftable"],"examples":["Open: message.metadata.siftWorkItemId = \"<work item uuid>\", one text part \"Status?\"","Open in a workspace (unbound credential): add message.metadata.siftWorkspaceId = \"<workspace uuid>\"","Continue: message.contextId and message.taskId from the previous Task, one text part"],"inputModes":["text/plain"],"outputModes":["text/plain"]}]}