Serveur MCP

Datoka Agent

dev.workers.bhazarstudio.datoka-agent/agent
Infrastructure MCP et agents Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Prepares, issues, and verifies signed declarations and receipts for agent execution events.

get_agent_public_keys
Return public keys of this issuer. The operator must establish trust in this issuer independently.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['issuer', 'keys'], 'properties': {'keys': {'type': 'array', 'items': {'type': 'object', 'required': ['keyId', 'jwk'], 'properties': {'jwk': {'type': 'object', 'required': ['kty', 'crv', 'x'], 'properties': {'x': {'type': 'string'}, 'crv': {'type': 'string', 'const': 'Ed25519'}, 'ext': {'type': 'boolean'}, 'kty': {'type': 'string', 'const': 'OKP'}, 'key_ops': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}, 'keyId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}}, 'additionalProperties': False}}, 'issuer': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}}, 'additionalProperties': False}
issue_agent_receipt
Persist a signed execution declaration receipt. Public price: 0.002 USDC via x402 on the advertised network. Preserve event, idempotencyKey and payment authorization on retries. Signed declarations do not independently prove execution.
Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event', 'idempotencyKey'], 'properties': {'event': {'type': 'object', 'required': ['version', 'agentId', 'runId', 'stepId', 'tool', 'outcome', 'startedAt', 'completedAt', 'inputHash', 'outputHash'], 'properties': {'tool': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'runId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'stepId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'agentId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'outcome': {'enum': ['success', 'error'], 'type': 'string'}, 'version': {'type': 'string', 'const': 'datoka.agent.execution.v1'}, 'inputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'startedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'outputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'completedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}, 'idempotencyKey': {'type': 'string', 'pattern': '^[\\x21-\\x7e]{16,200}$'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event', 'receipt'], 'properties': {'event': {'type': 'object', 'required': ['version', 'agentId', 'runId', 'stepId', 'tool', 'outcome', 'startedAt', 'completedAt', 'inputHash', 'outputHash'], 'properties': {'tool': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'runId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'stepId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'agentId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'outcome': {'enum': ['success', 'error'], 'type': 'string'}, 'version': {'type': 'string', 'const': 'datoka.agent.execution.v1'}, 'inputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'startedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'outputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'completedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': ['body', 'algorithm', 'signature'], 'properties': {'body': {'type': 'object', 'required': ['version', 'id', 'issuer', 'keyId', 'issuedAt', 'request', 'sequence', 'previous'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'keyId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'issuer': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'request': {'type': 'object', 'required': ['scope', 'chain', 'eventType', 'subject'], 'properties': {'chain': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'scope': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'subject': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['jcs', 'bytes'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'eventType': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}}, 'additionalProperties': False}, 'version': {'type': 'string', 'const': 'datoka.receipt.v1'}, 'issuedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'previous': {'anyOf': [{'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, {'type': 'null'}]}, 'sequence': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'algorithm': {'type': 'string', 'const': 'Ed25519'}, 'signature': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{86}$'}}, 'additionalProperties': False}}, 'additionalProperties': False}
issue_proof_receipt
Issue a Datoka Proof Receipt v0.1 from a commitment-only statement. Authenticated non-production pilot only; not sold through x402 in this release. Never send raw prompts or artifacts.
Accès externe Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['statement', 'chain', 'idempotencyKey'], 'properties': {'chain': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'statement': {'type': 'object', 'required': ['version', 'createdAt', 'artifact', 'sources', 'transformations', 'parentReceipts', 'attestation', 'independentlyVerified', 'references'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['uri', 'retrievedAt'], 'properties': {'uri': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'snapshot': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['bytes', 'jcs'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'description': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'retrievedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}, 'maxItems': 64}, 'version': {'type': 'string', 'const': 'datoka.proof.v0.1'}, 'artifact': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest', 'mediaType'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['bytes', 'jcs'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}, 'mediaType': {'type': 'string', 'maxLength': 512, 'minLength': 1}}, 'additionalProperties': False}, 'createdAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'protocol', 'reference'], 'properties': {'kind': {'enum': ['payment', 'authorization', 'anchor'], 'type': 'string'}, 'protocol': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'reference': {'type': 'string', 'maxLength': 512, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 16}, 'validUntil': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'attestation': {'type': 'string', 'const': 'signed_declaration'}, 'parentReceipts': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'maxItems': 64}, 'transformations': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 512, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 32}, 'independentlyVerified': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, 'idempotencyKey': {'type': 'string', 'pattern': '^[\\x21-\\x7e]{16,200}$'}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['statement', 'receipt'], 'properties': {'receipt': {'type': 'object', 'required': ['body', 'algorithm', 'signature'], 'properties': {'body': {'type': 'object', 'required': ['version', 'id', 'issuer', 'keyId', 'issuedAt', 'request', 'sequence', 'previous'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'keyId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'issuer': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'request': {'type': 'object', 'required': ['scope', 'chain', 'eventType', 'subject'], 'properties': {'chain': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'scope': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'subject': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['jcs', 'bytes'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'eventType': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}}, 'additionalProperties': False}, 'version': {'type': 'string', 'const': 'datoka.receipt.v1'}, 'issuedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'previous': {'anyOf': [{'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, {'type': 'null'}]}, 'sequence': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'algorithm': {'type': 'string', 'const': 'Ed25519'}, 'signature': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{86}$'}}, 'additionalProperties': False}, 'statement': {'type': 'object', 'required': ['version', 'createdAt', 'artifact', 'sources', 'transformations', 'parentReceipts', 'attestation', 'independentlyVerified', 'references'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['uri', 'retrievedAt'], 'properties': {'uri': {'type': 'string', 'format': 'uri', 'maxLength': 2048}, 'snapshot': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['bytes', 'jcs'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'description': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'retrievedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}, 'maxItems': 64}, 'version': {'type': 'string', 'const': 'datoka.proof.v0.1'}, 'artifact': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest', 'mediaType'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['bytes', 'jcs'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}, 'mediaType': {'type': 'string', 'maxLength': 512, 'minLength': 1}}, 'additionalProperties': False}, 'createdAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'references': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'protocol', 'reference'], 'properties': {'kind': {'enum': ['payment', 'authorization', 'anchor'], 'type': 'string'}, 'protocol': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'reference': {'type': 'string', 'maxLength': 512, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 16}, 'validUntil': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'attestation': {'type': 'string', 'const': 'signed_declaration'}, 'parentReceipts': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'maxItems': 64}, 'transformations': {'type': 'array', 'items': {'type': 'object', 'required': ['id'], 'properties': {'id': {'type': 'string', 'maxLength': 512, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 512, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 32}, 'independentlyVerified': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}}, 'additionalProperties': False}
prepare_agent_event
Validate an agent execution declaration and compute its commitment. Does not create a receipt.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event'], 'properties': {'event': {'type': 'object', 'required': ['version', 'agentId', 'runId', 'stepId', 'tool', 'outcome', 'startedAt', 'completedAt', 'inputHash', 'outputHash'], 'properties': {'tool': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'runId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'stepId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'agentId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'outcome': {'enum': ['success', 'error'], 'type': 'string'}, 'version': {'type': 'string', 'const': 'datoka.agent.execution.v1'}, 'inputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'startedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'outputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'completedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event', 'commitment', 'chain'], 'properties': {'chain': {'type': 'string'}, 'event': {'type': 'object', 'required': ['version', 'agentId', 'runId', 'stepId', 'tool', 'outcome', 'startedAt', 'completedAt', 'inputHash', 'outputHash'], 'properties': {'tool': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'runId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'stepId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'agentId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'outcome': {'enum': ['success', 'error'], 'type': 'string'}, 'version': {'type': 'string', 'const': 'datoka.agent.execution.v1'}, 'inputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'startedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'outputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'completedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}, 'commitment': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest'], 'properties': {'digest': {'type': 'string'}, 'encoding': {'type': 'string', 'const': 'jcs'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}}, 'additionalProperties': False}
verify_agent_receipt
Verify the declaration against a trusted Datoka receipt. A valid signature does not independently prove the action occurred.
Lecture seule Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event', 'receipt'], 'properties': {'event': {'type': 'object', 'required': ['version', 'agentId', 'runId', 'stepId', 'tool', 'outcome', 'startedAt', 'completedAt', 'inputHash', 'outputHash'], 'properties': {'tool': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'runId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'stepId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'agentId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'outcome': {'enum': ['success', 'error'], 'type': 'string'}, 'version': {'type': 'string', 'const': 'datoka.agent.execution.v1'}, 'inputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'startedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'outputHash': {'type': 'object', 'required': ['algorithm', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'completedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}}, 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': ['body', 'algorithm', 'signature'], 'properties': {'body': {'type': 'object', 'required': ['version', 'id', 'issuer', 'keyId', 'issuedAt', 'request', 'sequence', 'previous'], 'properties': {'id': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'keyId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'issuer': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'request': {'type': 'object', 'required': ['scope', 'chain', 'eventType', 'subject'], 'properties': {'chain': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'scope': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'subject': {'type': 'object', 'required': ['algorithm', 'encoding', 'digest'], 'properties': {'digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'encoding': {'enum': ['jcs', 'bytes'], 'type': 'string'}, 'algorithm': {'type': 'string', 'const': 'sha256'}}, 'additionalProperties': False}, 'eventType': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}}, 'additionalProperties': False}, 'version': {'type': 'string', 'const': 'datoka.receipt.v1'}, 'issuedAt': {'type': 'string', 'format': 'date-time', 'pattern': '^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{3}(?:Z))$'}, 'previous': {'anyOf': [{'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, {'type': 'null'}]}, 'sequence': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'algorithm': {'type': 'string', 'const': 'Ed25519'}, 'signature': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]{86}$'}}, 'additionalProperties': False}}, 'additionalProperties': False}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['valid', 'receiptId', 'scope', 'agentId', 'runId', 'stepId', 'attestation'], 'properties': {'runId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'scope': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'valid': {'type': 'boolean', 'const': True}, 'stepId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'agentId': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$'}, 'receiptId': {'type': 'string', 'format': 'uuid', 'pattern': '^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$'}, 'attestation': {'type': 'string', 'const': 'signed_declaration'}}, 'additionalProperties': False}
Ajouté
issue_proof_receipt
2 October 2026 02:40
Ajouté
get_agent_public_keys
30 September 2026 02:40
Ajouté
verify_agent_receipt
30 September 2026 02:40
Ajouté
issue_agent_receipt
30 September 2026 02:40
Ajouté
prepare_agent_event
30 September 2026 02:40