openapi: 3.2.0 info: title: HiveMorph v0.1 Agent Receipts API description: 'Polymorphic agent runtime — single shape (Merchant), single supermodel (W2 MERCHANT). Three gates: NEED + YIELD + CLEAN-MONEY.' version: 0.1.0 tags: - name: agent-receipts paths: /v1/agent-receipts/adapters: get: tags: - agent-receipts summary: Agent Adapters description: List the agent-task rails and their configured status (Manus today). operationId: agent_adapters_v1_agent_receipts_adapters_get responses: '200': description: Successful Response content: application/json: schema: {} /v1/agent-receipts/manus/health: get: tags: - agent-receipts summary: Manus Health description: 'Non-mutating Manus health: reports configured status + docs only. Manus has no documented non-mutating probe endpoint, and creating a task would consume Manus credits, so health deliberately does NOT create a task. It reports whether MANUS_API_KEY is present; a live task requires POST /v1/agent-receipts/manus/create.' operationId: manus_health_v1_agent_receipts_manus_health_get responses: '200': description: Successful Response content: application/json: schema: {} /v1/agent-receipts/manus/create: post: tags: - agent-receipts summary: Manus Create description: Create a Manus agent task and sign a receipt over the create API path. operationId: manus_create_v1_agent_receipts_manus_create_post requestBody: content: application/json: schema: $ref: '#/components/schemas/ManusCreateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/agent-receipts/manus/detail: post: tags: - agent-receipts summary: Manus Detail Post description: Fetch a Manus task's status and sign a status receipt. operationId: manus_detail_post_v1_agent_receipts_manus_detail_post requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ManusDetailRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - agent-receipts summary: Manus Detail Get description: Fetch a Manus task's status via ?task_id= and sign a status receipt. operationId: manus_detail_get_v1_agent_receipts_manus_detail_get parameters: - name: task_id in: query required: true schema: type: string minLength: 1 maxLength: 256 title: Task Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError ManusCreateRequest: properties: message: anyOf: - type: string maxLength: 4000 - type: 'null' title: Message description: 'Task instruction for the Manus agent. Alias: ''prompt''. Omit to use the safe demo task.' prompt: anyOf: - type: string maxLength: 4000 - type: 'null' title: Prompt description: Alias for 'message'. title: anyOf: - type: string maxLength: 200 - type: 'null' title: Title hidden: type: boolean title: Hidden description: Create the task hidden (default true — safe for a demo). default: true share_visibility: anyOf: - type: string - type: 'null' title: Share Visibility description: 'Optional Manus share visibility: private | unlisted | public.' agent_profile: anyOf: - type: string maxLength: 64 - type: 'null' title: Agent Profile ask_followup_questions: type: boolean title: Ask Followup Questions description: Default false so the demo task does not block on interactive input. default: false type: object title: ManusCreateRequest ManusDetailRequest: properties: task_id: type: string maxLength: 256 minLength: 1 title: Task Id type: object required: - task_id title: ManusDetailRequest