Tango
Was dieses MCP kann
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, progress records, and signed completion receipts.
Tools
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'outcome'], 'properties': {'note': {'type': 'string', 'description': 'Required for `accepted_with_exceptions` (what the shortfalls are) and `rejected` (what must change).'}, 'outcome': {'enum': ['accepted', 'accepted_with_exceptions', 'rejected', 'superseded'], 'type': 'string', 'description': 'The acceptance decision.'}, 'task_id': {'type': 'string', 'description': 'Task id, the short reference, or a pasted Tango task URL.'}, 'superseded_by_task_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)$', 'description': 'For `superseded`: the task that replaces this work.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'name'], 'properties': {'name': {'type': 'string', 'minLength': 1, 'description': 'Filename or artifact label. Keep the real extension (.pptx, .pdf, .mp3) so the type is detected.'}, 'content': {'type': 'string', 'description': 'Inline text content.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'fetch_url': {'type': 'string', 'format': 'uri', 'description': 'An https URL Tango downloads and stores as a durable copy (up to 50 MB). Use this when the file is already hosted somewhere.'}, 'mime_type': {'type': 'string', 'description': 'MIME type. Optional — Tango sniffs the real type from the bytes.'}, 'worker_kid': {'type': 'string', 'description': 'kid of the registered key that produced worker_signature.'}, 'external_url': {'type': 'string', 'format': 'uri', 'description': 'Or, a publicly reachable https URL to an externally hosted artifact (recorded as a link; Tango does not copy it). Never a file:// path or a path on your own machine — upload those bytes instead.'}, 'upload_token': {'type': 'string', 'description': 'Finalize a signed upload: the upload_token returned by create_artifact_upload, after you PUT the bytes to its upload_url.'}, 'evidence_kind': {'enum': ['plan', 'tests', 'screenshot', 'document', 'data', 'link', 'review'], 'type': 'string', 'description': 'What kind of proof this output is. Tasks can require specific kinds before completion is accepted — get_task shows the checklist. Left unset, Tango infers it from the file type where it can.'}, 'content_base64': {'type': 'string', 'description': 'Base64-encoded file bytes for binary artifacts (pptx, docx, pdf, mp3, wav, m4a, images…). Up to ~6 MB decoded; larger files use create_artifact_upload.'}, 'acting_worker_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)$', 'description': 'Optional. Self-asserted worker performing this action. Ignored if a lease is active (lease holder wins). Verified against caller ownership.'}, 'transparency_seq': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Transparency anchor seq you signed.'}, 'worker_signature': {'type': 'string', 'description': "Attested mode only. Detached JWS ('header..signature') over the JCS-canonical artifact payload. See /verify."}, 'worker_signed_at': {'type': 'string', 'description': 'The exact `signed_at` inside the signed payload (ISO 8601).'}, 'transparency_hash': {'type': 'string', 'description': 'Transparency anchor hash you signed.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'body'], 'properties': {'body': {'type': 'string', 'minLength': 1, 'description': 'Comment text. Mention teammates with @handle.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'note'], 'properties': {'note': {'type': 'string', 'minLength': 1, 'description': 'Free-text progress note.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'acting_worker_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)$', 'description': 'Optional. Self-asserted worker performing this action. Ignored if a lease is active (lease holder wins). Verified against caller ownership.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['question_id', 'answer'], 'properties': {'answer': {'type': 'string', 'maxLength': 4000, 'minLength': 1, 'description': 'Your answer.'}, 'question_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)$', 'description': 'Question id from list_open_questions or get_task.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'reason': {'type': 'string', 'maxLength': 280, 'minLength': 1, 'description': 'Why this worker is being retired.'}, 'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['question'], 'properties': {'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL. Optional in Tango Lite — without it the workspace owner is notified and answers in a thread.'}, 'question': {'type': 'string', 'minLength': 1, 'description': 'The exact question you need answered.'}, 'to_user_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)$', 'description': "Optional recipient user id. Defaults to the task's approver or owner."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$', 'description': 'A worker you own, from whoami.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_ids', 'action'], 'properties': {'action': {'enum': ['move', 'set_deadline', 'clear_deadline', 'set_status', 'park', 'unpark', 'reassign'], 'type': 'string'}, 'client': {'type': 'string', 'description': 'move: destination client name, @handle or UUID.'}, 'reason': {'type': 'string', 'description': 'Reason — required for cancel/block, optional note for park/move.'}, 'status': {'enum': ['queued', 'assigned', 'in_progress', 'review', 'approved', 'done', 'escalated', 'blocked', 'cancelled', 'archived'], 'type': 'string', 'description': 'set_status: the new status.'}, 'assignee': {'type': 'string', 'description': 'reassign: exact @handle, email, or unambiguous name. Empty string unassigns.'}, 'deadline': {'type': 'string', 'description': 'set_deadline: ISO 8601 date-time.'}, 'task_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 100, 'minItems': 1}, 'park_until': {'type': 'string', 'description': 'park: optional ISO wake date; the task comes back on its own that day.'}, 'project_id': {'anyOf': [{'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)$'}, {'type': 'null'}], 'description': 'move: destination project (optional).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['tool_name'], 'properties': {'method': {'enum': ['tools/call', 'invoke'], 'type': 'string', 'description': "Protocol shape: 'tools/call' (MCP Streamable HTTP, default) or 'invoke' (simple {tool, arguments})."}, 'arguments': {'type': 'object', 'description': 'Arguments object to pass to the tool.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'tool_name': {'type': 'string', 'minLength': 1, 'description': 'Name of the tool on the external gateway.'}, 'timeout_seconds': {'type': 'integer', 'maximum': 120, 'minimum': 1, 'description': 'Max wait time, default 25s.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'since': {'type': 'string', 'description': 'ISO timestamp override. Omit to use your stored cursor (falls back to the last 24h on first call).'}, 'worker': {'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)$', 'description': 'Optional. Defaults to the worker bound to this MCP connection, so each harness keeps its own cursor.'}, 'advance_cursor': {'type': 'boolean', 'description': 'Set false to peek without moving your cursor forward (default true).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'worker_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)$', 'description': 'Optional. Defaults to the worker bound to this MCP connection (one worker per harness). Must belong to the signed-in user.'}, 'lease_seconds': {'type': 'integer', 'maximum': 14400, 'minimum': 30, 'description': 'Default 2700 (45 min); max 14400 (4 h).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'outcome', 'summary'], 'properties': {'outcome': {'enum': ['review', 'done'], 'type': 'string', 'description': "'review' hands to a human. 'done' self-approves and is available to humans only — an agent's 'done' is recorded as 'review'."}, 'summary': {'type': 'string', 'minLength': 1, 'description': 'What was done, in plain language.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'worker_kid': {'type': 'string', 'description': 'The kid of the registered worker key that produced worker_signature.'}, 'open_questions': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Questions the next reviewer or agent should answer.'}, 'acting_worker_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)$', 'description': 'Optional. Self-asserted worker completing this task. Ignored if a lease is active (lease holder wins). Verified against caller ownership; never inferred from the assignee.'}, 'transparency_seq': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'The transparency anchor seq you signed (from prepare_completion).'}, 'worker_signature': {'type': 'string', 'description': "Attested mode only. Detached JWS ('header..signature') over the JCS-canonicalized completion payload returned by prepare_completion."}, 'worker_signed_at': {'type': 'string', 'description': 'The exact `signed_at` value used inside the signed payload (ISO 8601).'}, 'decompose_outcome': {'enum': ['unblock', 'supersede'], 'type': 'string', 'description': "For tasks of type 'decompose' only. 'unblock' (default) drops the decompose→original dependency so the original becomes workable. 'supersede' closes the original as done because its subtasks fully replace it."}, 'transparency_hash': {'type': 'string', 'description': 'The transparency anchor hash you signed (from prepare_completion).'}, 'evidence_artifact_ids': {'type': 'array', 'items': {'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)$'}, 'description': 'Artifact ids that back the summary.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key'], 'properties': {'key': {'type': 'string', 'minLength': 1, 'description': 'The fact key, exactly as it appears in the context.'}, 'client': {'type': 'string', 'description': 'Client name, @handle, or UUID (for a client fact).'}, 'restore': {'type': 'boolean', 'description': 'Un-retire a previously retired fact.'}, 'client_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)$'}, 'project_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)$', 'description': 'Project id (for a project fact).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Filename, with its real extension (report.pptx, call.m4a).'}, 'task_id': {'type': 'string', 'description': 'Task the file belongs to.'}, 'mime_type': {'type': 'string', 'description': 'Optional. Content-Type you will send on the PUT.'}, 'size_bytes': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Optional. Expected file size.', 'exclusiveMinimum': 0}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Client/workspace name, e.g. 'Bowen eBikes'."}, 'reuse': {'type': 'boolean', 'description': 'Default true. Returns the existing workspace with this name instead of creating a duplicate.'}, 'description': {'type': 'string', 'maxLength': 2000, 'description': 'Optional one-liner about the client — status, tags like [PROSPECT], or key context.'}, 'organization': {'type': 'string', 'description': 'Organization name or slug. Defaults to your active organization when you belong to only one.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'goal': {'type': 'string', 'description': 'One line: what this project is trying to achieve.'}, 'name': {'type': 'string', 'minLength': 1}, 'client': {'type': 'string', 'description': 'Name or @handle of the client. Fuzzy-resolved.'}, 'brief_md': {'type': 'string', 'description': 'Longer markdown brief seeded into the project context.'}, 'deadline': {'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+)?)?(?:Z))$'}, 'client_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'goal': {'type': 'string', 'description': 'What outcome are we after?'}, 'role': {'type': 'string', 'description': "Role tag, e.g. 'coder', 'reviewer'."}, 'type': {'enum': ['epic', 'feature', 'task', 'subtask'], 'type': 'string', 'description': "Default 'task'."}, 'title': {'type': 'string', 'minLength': 1}, 'client': {'type': 'string', 'description': 'REQUIRED unless parent_id is set. Name or @handle of the client/workspace. Fuzzy-resolved.'}, 'inputs': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'note': {'type': 'string'}, 'label': {'type': 'string', 'minLength': 1, 'description': "What this input is, e.g. 'Approved brief' or 'Brand guidelines'."}, 'artifact_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)$', 'description': 'An existing Tango artifact this work starts from.'}, 'external_url': {'type': 'string', 'format': 'uri', 'description': 'A link, when the input lives outside Tango.'}}}, 'description': 'The governed inputs this work starts from. Each artifact input is pinned to its current content fingerprint, so the task records exactly which version was handed over and flags it later if the source moves on.'}, 'project': {'type': 'string', 'description': 'REQUIRED unless parent_id is set. Name or @handle of the project this task belongs to (e.g. "Website", "Google Ads"). Call list_projects first and ask the human — never invent a project.'}, 'sources': {'type': 'array', 'items': {'type': 'string'}, 'description': 'URLs or references the assignee should read first.'}, 'assignee': {'type': 'string', 'description': 'Name, @handle, or email of the assignee. Fuzzy-resolved.'}, 'deadline': {'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+)?)?(?:Z))$', 'description': 'ISO 8601 deadline.'}, 'subtasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'goal': {'type': 'string'}, 'title': {'type': 'string', 'minLength': 1}, 'assignee': {'type': 'string', 'description': 'Name, @handle, or email. Fuzzy-resolved.'}, 'deadline': {'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+)?)?(?:Z))$'}, 'definition_of_done': {'type': 'string'}}}, 'description': 'Break the ask down in one call: the parent plus its children, each created with a parent link, inheriting client, project and organization. Use this whenever the ask has more than one deliverable.'}, 'authority': {'type': 'object', 'properties': {'note': {'type': 'string', 'maxLength': 500, 'description': 'A boundary in plain words.'}, 'send': {'type': 'boolean', 'description': 'May send to a recipient outside the organization.'}, 'merge': {'type': 'boolean', 'description': 'May merge code to a protected branch.'}, 'spend': {'type': 'boolean', 'description': 'May spend money.'}, 'deploy': {'type': 'boolean', 'description': 'May deploy to production.'}, 'publish': {'type': 'boolean', 'description': 'May publish externally without asking.'}, 'spend_cap_usd': {'type': 'number', 'description': 'Ceiling on spend, in USD.', 'exclusiveMinimum': 0}, 'contact_client': {'type': 'boolean', 'description': 'May contact the client directly.'}}, 'description': "What the worker may do unattended. Everything is off unless granted; anything not granted must be escalated to the approver. Omit to inherit the organization's default for this role."}, 'client_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)$', 'description': 'Scope the task to a Tango client (shared workspace).'}, 'parent_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)$'}, 'depends_on': {'type': 'array', 'items': {'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)$'}, 'description': 'Ids of tasks that must reach done or approved before this one is workable. Must be in the same organization; cycles are rejected.'}, 'project_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)$', 'description': 'Project id, if already known.'}, 'approver_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)$'}, 'assignee_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)$', 'description': 'Human user id to assign to.'}, 'constraints': {'type': 'string', 'description': 'Limits: budget, style, do-not-touch, deadlines context.'}, 'description': {'type': 'string'}, 'acting_worker_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)$', 'description': 'Optional. The worker raising this task, recorded as the creator so whoever picks it up knows who to go back to for clarity. Defaults to the worker bound to this connection. Verified against caller ownership.'}, 'estimate_minutes': {'type': 'integer', 'maximum': 9007199254740991, 'description': 'Rough effort in minutes. Anything over 240 is treated as more than one task.', 'exclusiveMinimum': 0}, 'allow_cross_agency': {'type': 'boolean', 'description': 'Explicit opt-in to assign across agencies. Audited.'}, 'assignee_worker_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)$', 'description': 'Worker id to assign to.'}, 'definition_of_done': {'type': 'string', 'description': 'Concrete acceptance criteria.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Display name, e.g. 'claude-desktop-1'."}, 'reuse': {'type': 'boolean', 'description': 'Default true. If you already own a worker with this name or handle, it is linked into the target organization and returned instead of creating a duplicate identity. Set false to force a separate worker.'}, 'roles': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 20, 'description': "Roles this worker accepts work for, e.g. ['coder','researcher']. Defaults to ['agent']."}, 'clients': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 20, 'description': 'Client names or @handles this worker should be scoped to. Omit for org-wide.'}, 'harness': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': "Runtime you run on, e.g. 'claude-desktop', 'hermes', 'custom'. Defaults to 'custom'."}, 'key_mode': {'enum': ['delegated', 'attested'], 'type': 'string', 'description': 'delegated (default): Tango signs for you. attested: you hold the Ed25519 private key.'}, 'capabilities': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'organization': {'type': 'string', 'description': 'Organization name or slug. Defaults to your active organization when you belong to only one.'}, 'idempotency_key': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Optional client-generated key. Retrying with the same key returns the worker created by the first call instead of creating a duplicate.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'confirm'], 'properties': {'reason': {'type': 'string', 'description': 'Short note explaining why the task is being removed.'}, 'confirm': {'type': 'boolean', 'const': True, 'description': 'Must be true to acknowledge this hides the task from everyone.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'kind': {'enum': ['worker', 'human', 'client', 'any'], 'type': 'string', 'description': "Filter by kind. Default 'any' — kinds are interleaved by score."}, 'limit': {'type': 'integer', 'maximum': 25, 'minimum': 1}, 'query': {'type': 'string', 'minLength': 1, 'description': 'Free text: a name, first name, @handle, or email.'}, 'scope': {'enum': ['active_agency', 'global'], 'type': 'string', 'description': "'active_agency' (default) or 'global' across all orgs the caller can see."}, 'agency_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)$', 'description': 'Restrict to a specific agency (defaults to active agency).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'reason': {'type': 'string', 'maxLength': 500, 'description': 'One sentence on what you could not determine.'}, 'task_id': {'type': 'string', 'description': 'The under-specified task. Id or task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'name': {'type': 'string', 'description': 'Artifact name/filename within that task.'}, 'task_id': {'type': 'string', 'description': "Task id — use with `name` when you don't have the artifact id."}, 'max_bytes': {'type': 'integer', 'maximum': 1000000, 'minimum': 1000, 'description': 'Inline body cap in bytes. Default 200000.'}, 'artifact_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)$', 'description': "Artifact id (from get_task's artifacts list)."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string', 'description': 'Name, @handle, or UUID of the client (e.g. "Avalore" or "@avaloregroup"). Fuzzy-resolved.'}, 'client_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)$'}, 'decision_limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many recent decisions to return (default 20).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'worker': {'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)$', 'description': 'Worker id to tailor the snippet to. Defaults to your first worker.'}, 'platform': {'enum': ['macos', 'linux', 'any'], 'type': 'string'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string', 'description': 'Client to scope the project lookup to.'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'client_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)$'}, 'project_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)$'}, 'decision_limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'scope': {'enum': ['me', 'client'], 'type': 'string', 'description': "Default 'me'."}, 'client': {'type': 'string', 'description': "Client name, @handle, or UUID (required for scope 'client', optional filter for 'me')."}, 'format': {'enum': ['text', 'json'], 'type': 'string', 'description': "Default 'text' (short summary)."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Tango task id, the 8-character short reference agents quote (e.g. `fd959117`), or a pasted Tango task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Entries per page. Default 50.'}, 'types': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional event types to include, e.g. ['progress_note','comment','status_changed']."}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Skip this many entries for paging.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Task id or task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many attempts to return. Default 20.'}, 'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'term': {'type': 'string', 'description': "A term, slug or alias to look up (e.g. 'epic', 'lease', 'byok'). Omit for everything."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'note'], 'properties': {'to': {'type': 'string', 'description': 'Name, @handle, or email of the recipient. Fuzzy-resolved.'}, 'note': {'type': 'string', 'minLength': 1}, 'to_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)$'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'to_kind': {'enum': ['worker', 'human'], 'type': 'string'}, 'auto_lease': {'type': 'boolean', 'description': 'If true and the recipient is a worker owned by the caller, immediately take a lease on the task so the recipient can start work without a separate claim_task call.'}, 'lease_seconds': {'type': 'integer', 'maximum': 14400, 'minimum': 30}, 'acting_worker_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)$', 'description': 'Optional. Self-asserted worker initiating this handoff. Ignored if a lease is active. Verified against caller ownership.'}, 'allow_cross_agency': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'label': {'type': 'string', 'maxLength': 120, 'description': 'Optional note about where this key will run.'}, 'worker_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)$', 'description': 'The worker to mint a key for. Must be yours.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'client': {'type': 'string', 'description': 'Client name, @handle, or UUID.'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'parked': {'enum': ['exclude', 'include', 'only'], 'type': 'string', 'description': 'Parked tasks: exclude (default), include, or only.'}, 'search': {'type': 'string', 'description': 'Match in the title.'}, 'status': {'type': 'array', 'items': {'enum': ['queued', 'assigned', 'in_progress', 'review', 'approved', 'done', 'escalated', 'blocked', 'cancelled', 'archived'], 'type': 'string'}, 'description': 'Only these statuses. Default: open work (queued, assigned, in_progress, review, blocked, escalated).'}, 'overdue': {'type': 'boolean'}, 'summary': {'type': 'boolean', 'description': 'Summary rows (default true). Pass false for full task rows.'}, 'client_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)$'}, 'project_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string', 'description': 'Client name or @handle. Fuzzy-resolved.'}, 'client_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)$', 'description': 'Client id. Use this when you already know it.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string', 'description': 'Name, @handle, or UUID of the client.'}, 'client_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string', 'description': 'Name, @handle, or UUID of the client.'}, 'client_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client_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)$', 'description': 'Resolve the organization from this client instead of your active organization.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'mine': {'type': 'boolean', 'description': 'Only tasks assigned to you (as a human) or to one of your workers.'}, 'role': {'type': 'string'}, 'sort': {'enum': ['created_desc', 'updated_desc', 'due_asc', 'due_desc'], 'type': 'string', 'description': 'Result ordering. Defaults to updated_desc. due_asc puts the soonest deadline first.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'since': {'type': 'string', 'description': 'ISO timestamp — only tasks created or updated after this. Use for cheap polling (or use check_in).'}, 'status': {'enum': ['queued', 'assigned', 'in_progress', 'review', 'approved', 'done', 'escalated', 'blocked', 'cancelled', 'archived'], 'type': 'string', 'description': "Optional status filter. Omit it when checking for your own work — tasks routed to you sit in 'assigned', so status='queued' hides them."}, 'overdue': {'type': 'boolean', 'description': 'Shortcut: unfinished tasks whose deadline has already passed.'}, 'agency_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)$', 'description': 'Restrict to one agency.'}, 'client_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)$'}, 'due_after': {'type': 'string', 'description': 'ISO timestamp — only tasks with a deadline at or after this.'}, 'parent_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)$', 'description': 'Only subtasks of this parent task.'}, 'due_before': {'type': 'string', 'description': "ISO timestamp — only tasks with a deadline before this. Pass 'now' semantics by sending the current time to get overdue work."}, 'has_deadline': {'type': 'boolean', 'description': 'true = only tasks with a deadline, false = only tasks without one.'}, 'unacknowledged': {'type': 'boolean', 'description': 'Only tasks nobody has acknowledged yet.'}, 'context_changed': {'type': 'boolean', 'description': 'Only tasks whose client/project context was revised after they were assigned.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'task_id': {'type': 'string', 'description': 'Limit to one task id.'}, 'include_answered': {'type': 'boolean', 'description': 'Include already-answered questions. Default false.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'to': {'type': 'string', 'description': 'YYYY-MM-DD upper bound on occurred_on.'}, 'from': {'type': 'string', 'description': 'YYYY-MM-DD lower bound on occurred_on.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'client': {'type': 'string'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'client_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)$'}, 'project_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'client': {'type': 'string'}, 'status': {'enum': ['open', 'in_progress', 'resolved', 'wont_fix', 'all'], 'type': 'string', 'description': 'Defaults to open + in_progress.'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'client_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)$'}, 'project_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'client_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)$'}, 'project_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)$'}, 'include_finished': {'type': 'boolean', 'description': 'Include done and cancelled milestones.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'client': {'type': 'string', 'description': 'Name or @handle of the client. Fuzzy-resolved.'}, 'client_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)$'}, 'include_archived': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'status': {'enum': ['open', 'waiting_on_customer', 'waiting_on_us', 'resolved', 'closed', 'all'], 'type': 'string', 'default': 'all'}, 'ticket_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)$', 'description': 'Fetch the full thread for this ticket.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['kind', 'summary'], 'properties': {'kind': {'enum': ['decision', 'learning', 'preference', 'constraint'], 'type': 'string'}, 'client': {'type': 'string', 'description': 'Name, @handle, or UUID of the client. Fuzzy-resolved.'}, 'detail': {'type': 'string', 'description': 'Longer context/rationale.'}, 'summary': {'type': 'string', 'minLength': 1, 'description': 'One-line summary — this is what agents skim.'}, 'task_id': {'type': 'string', 'description': 'Link this entry to a specific task, if applicable. Id or task URL.'}, 'client_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['summary'], 'properties': {'kind': {'enum': ['decision', 'learning', 'preference', 'constraint'], 'type': 'string'}, 'client': {'type': 'string'}, 'detail': {'type': 'string'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'summary': {'type': 'string', 'minLength': 1}, 'task_id': {'type': 'string', 'description': 'Task this came out of, if any. Id or task URL.'}, 'client_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)$'}, 'project_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string', 'minLength': 1}, 'client': {'type': 'string'}, 'impact': {'type': 'string', 'description': 'What this is expected to move in the data.'}, 'ends_on': {'type': 'string', 'description': 'YYYY-MM-DD for events that span a period.'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'task_id': {'type': 'string'}, 'category': {'enum': ['change', 'launch', 'incident', 'external', 'milestone'], 'type': 'string'}, 'client_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)$'}, 'project_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)$'}, 'description': {'type': 'string'}, 'occurred_on': {'type': 'string', 'description': 'YYYY-MM-DD. Defaults to today.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title'], 'properties': {'url': {'type': 'string', 'description': 'Deep link to the issue, if it has one.'}, 'title': {'type': 'string', 'minLength': 1, 'description': 'One-line statement of the issue.'}, 'client': {'type': 'string'}, 'detail': {'type': 'string', 'description': 'Full text of the issue, verbatim where possible.'}, 'source': {'type': 'string', 'description': "Where you found it, e.g. 'Google Ads', 'GA4', 'Shopify'."}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'task_id': {'type': 'string', 'description': 'Task created to fix this, if it already exists.'}, 'severity': {'enum': ['blocker', 'high', 'medium', 'low'], 'type': 'string'}, 'client_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)$'}, 'project_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)$'}, 'discovered_on': {'type': 'string', 'description': 'YYYY-MM-DD. Defaults to today.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['memory_id'], 'properties': {'memory_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)$', 'description': 'Id returned by memory_search or memory_save.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['title', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 20000, 'minLength': 3, 'description': 'The memory itself, in markdown.'}, 'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'description': 'Free-form tags to search on later.'}, 'title': {'type': 'string', 'maxLength': 200, 'minLength': 3, 'description': 'A short, searchable title.'}, 'client': {'type': 'string', 'description': 'Client/workspace name or @handle this memory belongs to.'}, 'task_id': {'type': 'string', 'description': 'The task this memory came out of, if any.'}, 'client_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)$'}, 'project_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)$', 'description': 'Narrow the memory to one project.'}, 'source_harness': {'type': 'string', 'maxLength': 40, 'description': 'The harness writing this memory.'}, 'target_harness': {'type': 'string', 'maxLength': 40, 'description': "Harness this handoff is addressed to (e.g. 'codex', 'claude'). Leave empty for a general memory."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'description': 'Only memories carrying all of these tags.'}, 'limit': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': -9007199254740991, 'description': 'Max results, default 10.'}, 'query': {'type': 'string', 'maxLength': 300, 'description': 'Text to match in the title or body.'}, 'client': {'type': 'string', 'description': 'Limit to a client/workspace by name or @handle.'}, 'client_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)$'}, 'project_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)$'}, 'target_harness': {'type': 'string', 'maxLength': 40, 'description': "Only handoffs addressed to this harness (e.g. 'codex')."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'checkpoint'], 'properties': {'note': {'type': 'string', 'description': 'Short handoff note for whoever resumes.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'checkpoint': {'type': 'object', 'description': 'Free-form JSON object holding your working state: e.g. { scratchpad, plan, next_steps, context }.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'outcome', 'summary'], 'properties': {'outcome': {'enum': ['review', 'done'], 'type': 'string'}, 'summary': {'type': 'string', 'minLength': 1, 'description': 'The exact summary string you will pass to complete_task.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'acting_worker_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)$'}, 'evidence_artifact_ids': {'type': 'array', 'items': {'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)$'}}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'worker_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)$', 'description': 'Optional. Defaults to the worker bound to this MCP connection (one worker per harness).'}, 'lease_seconds': {'type': 'integer', 'maximum': 14400, 'minimum': 30, 'description': 'Lease duration in seconds (default 2700 = 45 min, max 14400 = 4 h).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['view'], 'properties': {'view': {'type': 'string', 'description': 'View key from list_context_sources, e.g. "copywriting_frameworks".'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'client': {'type': 'string', 'description': 'Name, @handle, or UUID of the client.'}, 'search': {'type': 'string', 'description': "Free-text match across the view's filterable columns."}, 'source': {'type': 'string', 'description': 'Source name, only needed when two sources share a view key.'}, 'filters': {'type': 'object', 'description': 'Equality filters. Only columns listed as filterable on the view are accepted.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'anyOf': [{'type': 'string'}, {'type': 'number'}, {'type': 'boolean'}]}}, 'client_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'provider', 'action'], 'properties': {'query': {'type': 'object', 'description': 'Query string parameters.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'action': {'type': 'string', 'description': "Native connections: the provider endpoint path, e.g. '/conversations.history' or '/repos/acme/site/issues'. Gateway connections: the action or tool name."}, 'task_id': {'type': 'string', 'description': 'A task you hold the lease on. Its client decides which connection is used.'}, 'provider': {'type': 'string', 'description': "Which connected system to call, e.g. 'slack', 'linear', 'github', 'notion', 'jira'."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'thread_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)$'}, 'include_read': {'type': 'boolean'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id', 'public_key_jwk', 'signed_nonce'], 'properties': {'nonce': {'type': 'string', 'description': 'The nonce you signed. Optional; defaults to your latest challenge.'}, 'worker_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)$'}, 'signed_nonce': {'type': 'string', 'minLength': 40, 'description': 'base64url Ed25519 signature over the raw nonce bytes.'}, 'public_key_jwk': {'type': 'object', 'description': 'Ed25519 public JWK: { "kty": "OKP", "crv": "Ed25519", "x": "<base64url>" }. No "d".', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'depends_on_task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'The dependent task. Id or task URL.'}, 'depends_on_task_id': {'type': 'string', 'description': 'The blocker task to detach. Id or task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['handle'], 'properties': {'handle': {'type': 'string', 'maxLength': 40, 'minLength': 2, 'description': 'New canonical handle. 2-39 chars: a-z, 0-9, - and _; must start with a letter or digit.'}, 'worker_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)$', 'description': 'Rename this agent instead of your human profile. Must be a worker you own.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'worker_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)$', 'description': 'Optional. Defaults to the worker bound to this MCP connection.'}, 'lease_seconds': {'type': 'integer', 'maximum': 14400, 'minimum': 30}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['ticket_id', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 20000, 'minLength': 1}, 'ticket_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id', 'target_agency_handle'], 'properties': {'message': {'type': 'string', 'maxLength': 2000}, 'worker_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)$', 'description': 'The sandbox worker requesting access. Must be owned by the authenticated caller.'}, 'requested_client_ids': {'type': 'array', 'items': {'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)$'}, 'maxItems': 50}, 'target_agency_handle': {'type': 'string', 'minLength': 1, 'description': 'Slug or exact name of the target organization.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'note': {'type': 'string', 'description': 'Why decomposition is needed / hints for the planner.'}, 'task_id': {'type': 'string', 'description': 'The under-specified task to be broken down. Id or task URL.'}, 'assignee': {'type': 'string', 'description': 'Name, @handle, or email of the person or worker who should do the decomposition. Fuzzy-resolved.'}, 'assignee_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)$'}, 'assignee_worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$', 'description': 'The worker you are registering a key for. Must be yours.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['handle'], 'properties': {'handle': {'type': 'string', 'minLength': 1, 'description': 'The @handle to resolve, e.g. "@hermes" or "hermes".'}, 'agency_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)$', 'description': 'Restrict resolution to a specific organization (skips the global fallback).'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'goal', 'definition_of_done'], 'properties': {'goal': {'type': 'string', 'minLength': 1, 'description': 'What outcome this task must produce.'}, 'note': {'type': 'string', 'description': 'Optional message back to whoever sent it back.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'constraints': {'type': 'string', 'description': 'Optional limits, must-nots, or required inputs.'}, 'definition_of_done': {'type': 'string', 'minLength': 1, 'description': 'How a reviewer will know it is finished.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'note': {'type': 'string', 'description': 'Why the task is being resumed.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'unassign': {'type': 'boolean', 'description': 'Clear the pinned agent so any matching agent can pick the task up again.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['key', 'reason'], 'properties': {'key': {'type': 'string', 'minLength': 1, 'description': 'The fact key, exactly as it appears in the context.'}, 'client': {'type': 'string', 'description': 'Client name, @handle, or UUID (for a client fact).'}, 'reason': {'type': 'string', 'minLength': 1, 'description': 'Why it is no longer true.'}, 'client_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)$'}, 'project_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)$', 'description': 'Project id (for a project fact).'}, 'superseded_by': {'type': 'string', 'description': 'Key of the fact that replaces it, if any.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'key_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)$', 'description': 'Key id returned by issue_worker_key.'}, 'worker_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)$', 'description': 'The worker the key belongs to.'}, 'key_prefix': {'type': 'string', 'maxLength': 64, 'minLength': 4, 'description': 'Key prefix returned by issue_worker_key.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id', 'kid', 'reason'], 'properties': {'kid': {'type': 'string', 'minLength': 4, 'description': 'The key identifier to revoke.'}, 'reason': {'type': 'string', 'maxLength': 280, 'minLength': 1, 'description': 'Why the key is being revoked.'}, 'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'reason': {'type': 'string', 'maxLength': 280}, 'key_mode': {'enum': ['attested', 'delegated'], 'type': 'string', 'description': "Assurance mode for the new key. Defaults to the worker's current mode."}, 'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'minLength': 1}, 'agency_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)$'}, 'client_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)$'}, 'parent_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)$', 'description': 'Only subtasks of this parent task.'}, 'project_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)$', 'description': 'Only tasks in this project.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'agency_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)$', 'description': "Organization to read. Defaults to the caller's active organization."}, 'include_resolved': {'type': 'boolean', 'description': 'Include findings that have since been fixed.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'note'], 'properties': {'note': {'type': 'string', 'minLength': 1, 'description': 'What the creator has to clarify — the missing context, goal, or definition of done.'}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['body'], 'properties': {'to': {'anyOf': [{'type': 'string'}, {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 50}], 'description': '@handle, list of @handles, or "all". Optional when replying with thread_id.'}, 'body': {'type': 'string', 'maxLength': 16000, 'minLength': 1, 'description': 'Markdown message.'}, 'subject': {'type': 'string', 'maxLength': 200, 'description': 'Subject for a new thread.'}, 'thread_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)$', 'description': 'Reply in this thread.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['health', 'note'], 'properties': {'note': {'type': 'string', 'minLength': 1, 'description': 'Why — one line, specific.'}, 'client': {'type': 'string'}, 'health': {'enum': ['on_track', 'at_risk', 'off_track'], 'type': 'string'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'client_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)$'}, 'project_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id', 'url'], 'properties': {'url': {'type': 'string', 'format': 'uri'}, 'events': {'type': 'array', 'items': {'enum': ['task.assigned', 'task.commented', 'task.mentioned', 'task.handoff_received', 'task.deadline_soon', 'task.changes_requested', 'task.unblocked', 'task.question_answered', 'task.approved'], 'type': 'string'}}, 'worker_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)$'}, 'rotate_secret': {'type': 'boolean', 'description': 'Mint a new signing secret and reveal it once. The previous secret stops validating immediately.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subject', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 20000, 'minLength': 3, 'description': 'What you tried, what happened, exact error text, and what you expected.'}, 'context': {'type': 'object', 'description': 'Optional machine context: tool name, task id, raw error payload.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'subject': {'type': 'string', 'maxLength': 300, 'minLength': 3, 'description': 'One-line summary of the problem.'}, 'category': {'enum': ['question', 'bug', 'connection', 'billing', 'feature_request', 'other'], 'type': 'string', 'default': 'question'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id'], 'properties': {'worker_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'facts': {'type': 'object', 'description': 'Key/value structured facts (domain, industry, timezone, primary contact, brand voice, etc.). Values must be strings.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'client': {'type': 'string', 'description': 'Name, @handle, or UUID of the client. Fuzzy-resolved.'}, 'brief_md': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Full brief as markdown. Omit to leave the brief untouched. Pass an empty string or null to clear it.'}, 'client_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)$'}, 'facts_mode': {'enum': ['merge', 'replace'], 'type': 'string', 'description': "How to apply `facts`. Default 'merge'."}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'goal': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'name': {'type': 'string', 'minLength': 1}, 'stage': {'enum': ['planning', 'active', 'on_hold', 'complete', 'archived'], 'type': 'string', 'description': 'Where the project is in its life. Sets status too.'}, 'client': {'type': 'string', 'description': 'Client to scope the project lookup to.'}, 'health': {'enum': ['on_track', 'at_risk', 'off_track'], 'type': 'string', 'description': 'A judgement call, not a computed value. Pair it with health_note.'}, 'status': {'enum': ['active', 'archived'], 'type': 'string'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'deadline': {'anyOf': [{'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+)?)?(?:Z))$'}, {'type': 'null'}]}, 'owner_id': {'anyOf': [{'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)$'}, {'type': 'null'}], 'description': 'User id of the person accountable for the project.'}, 'client_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)$'}, 'project_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)$'}, 'start_date': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'YYYY-MM-DD'}, 'health_note': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stakeholder_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stakeholder_role': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'stakeholder_email': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'goal': {'type': 'string', 'description': 'One-line intent, stored on the project itself.'}, 'facts': {'type': 'object', 'description': 'Structured key/value facts. Merged into existing facts.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'client': {'type': 'string'}, 'project': {'type': 'string', 'description': 'Name or @handle of the project. Fuzzy-resolved.'}, 'brief_md': {'type': 'string', 'description': 'Markdown brief. Replaces the existing brief.'}, 'add_links': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'url'], 'properties': {'url': {'type': 'string'}, 'kind': {'type': 'string'}, 'label': {'type': 'string'}, 'notes': {'type': 'string'}}}}, 'client_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)$'}, 'project_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['decision_id'], 'properties': {'kind': {'enum': ['decision', 'learning', 'preference', 'constraint'], 'type': 'string'}, 'detail': {'type': 'string'}, 'summary': {'type': 'string', 'minLength': 1}, 'task_id': {'type': 'string'}, 'decision_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)$'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event_id'], 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string', 'minLength': 1}, 'impact': {'type': 'string'}, 'ends_on': {'type': 'string', 'description': 'YYYY-MM-DD, for a period. Empty string clears it.'}, 'task_id': {'type': 'string'}, 'category': {'enum': ['change', 'launch', 'incident', 'external', 'milestone'], 'type': 'string'}, 'event_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)$'}, 'description': {'type': 'string'}, 'occurred_on': {'type': 'string', 'description': 'YYYY-MM-DD.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['issue_id'], 'properties': {'url': {'type': 'string'}, 'title': {'type': 'string', 'minLength': 1}, 'detail': {'type': 'string'}, 'source': {'type': 'string'}, 'status': {'enum': ['open', 'in_progress', 'resolved', 'wont_fix'], 'type': 'string'}, 'task_id': {'type': 'string', 'description': 'Task that fixes this issue.'}, 'issue_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)$'}, 'severity': {'enum': ['blocker', 'high', 'medium', 'low'], 'type': 'string'}, 'resolution': {'type': 'string', 'description': 'What was done, required in spirit when closing an issue.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'goal': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'role': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'type': {'enum': ['epic', 'feature', 'task', 'subtask'], 'type': 'string'}, 'title': {'type': 'string', 'minLength': 1}, 'inputs': {'type': 'array', 'items': {'type': 'object', 'required': ['label'], 'properties': {'note': {'type': 'string'}, 'label': {'type': 'string', 'minLength': 1}, 'artifact_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)$'}, 'external_url': {'type': 'string', 'format': 'uri'}}}, 'description': 'Additional governed inputs to pin to this task. Each artifact input records the content fingerprint at the moment it is pinned. Adds to the existing inputs; it does not replace them.'}, 'status': {'enum': ['queued', 'assigned', 'in_progress', 'review', 'escalated', 'blocked', 'cancelled', 'archived'], 'type': 'string', 'description': 'Move the task. Use `blocked` for work parked on a dependency, `cancelled` for work called off, and `archived` to shelve a task nobody will ever pick up. Agents cannot set `done`/`approved` — hand back for review instead.'}, 'project': {'type': 'string', 'description': "Move the task to this project (name or @handle). Must belong to the task's client."}, 'sources': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'deadline': {'anyOf': [{'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+)?)?(?:Z))$'}, {'type': 'null'}]}, 'authority': {'type': 'object', 'properties': {'note': {'type': 'string', 'maxLength': 500}, 'send': {'type': 'boolean'}, 'merge': {'type': 'boolean'}, 'spend': {'type': 'boolean'}, 'deploy': {'type': 'boolean'}, 'publish': {'type': 'boolean'}, 'spend_cap_usd': {'type': 'number', 'exclusiveMinimum': 0}, 'contact_client': {'type': 'boolean'}}, 'description': 'Replace what the worker may do unattended. Everything omitted is off; anything off must be escalated to the approver.'}, 'client_id': {'anyOf': [{'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)$'}, {'type': 'null'}]}, 'parent_id': {'anyOf': [{'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)$'}, {'type': 'null'}]}, 'depends_on': {'anyOf': [{'type': 'array', 'items': {'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)$'}}, {'type': 'null'}], 'description': 'Replace the full set of prerequisite task ids. Pass [] to clear.'}, 'project_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)$', 'description': 'Move the task to this project id.'}, 'constraints': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'description': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'status_reason': {'anyOf': [{'type': 'string', 'maxLength': 500}, {'type': 'null'}], 'description': 'Required when setting `blocked` or `cancelled`: a short human-readable why.'}, 'evidence_required': {'anyOf': [{'type': 'array', 'items': {'enum': ['plan', 'tests', 'screenshot', 'document', 'data', 'link', 'review'], 'type': 'string'}}, {'type': 'null'}], 'description': 'Set the evidence this task must carry before complete_task is accepted. Replaces any existing policy; pass [] to fall back to the organization default, or null to clear the override.'}, 'allow_cross_agency': {'type': 'boolean'}, 'definition_of_done': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['worker_id', 'monthly_spend_cap_usd'], 'properties': {'roles': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60, 'minLength': 1}, 'maxItems': 20, 'description': "Full replacement role list (comma-split parts of the original roles string, e.g. ['coder','tester']). Deduplicated case-insensitively. The worker pulls tasks whose required role matches any of these."}, 'worker_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)$', 'description': 'Worker id to update.'}, 'monthly_spend_cap_usd': {'anyOf': [{'type': 'number', 'maximum': 1000000, 'minimum': 0}, {'type': 'null'}], 'description': 'Monthly spend ceiling in USD, or null to remove the cap.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id'], 'properties': {'task_id': {'type': 'string', 'description': 'Task id, or a pasted Tango task URL.'}, 'include_events': {'type': 'boolean', 'description': 'If true (default), include the full ordered event list in the response.'}}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['task_id', 'provider', 'action'], 'properties': {'body': {'type': 'object', 'description': "JSON request body, or the action's arguments.", 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'query': {'type': 'object', 'description': 'Query string parameters.', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'action': {'type': 'string', 'description': "Native connections: the provider endpoint path, e.g. '/conversations.history' or '/repos/acme/site/issues'. Gateway connections: the action or tool name."}, 'method': {'enum': ['POST', 'PATCH'], 'type': 'string', 'description': 'HTTP method for native connections. Default POST.'}, 'task_id': {'type': 'string', 'description': 'A task you hold the lease on. Its client decides which connection is used.'}, 'provider': {'type': 'string', 'description': "Which connected system to call, e.g. 'slack', 'linear', 'github', 'notion', 'jira'."}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
AIOProductOS MCP
Combines customer records, support conversations, feedback, product analytics, roadmaps, tasks, experiments, releases, and retent…
agendaforge
Manages events, agendas, sessions, speakers, attendees, sponsors, forms, contacts, email templates, approvals, and organizer work…
Refine Job Search
Tracks job applications, interviews, offers, recruiter email, and company openings, with Gmail synchronization and workflow actio…
Chronary
Manages calendars, availability, events, scheduling proposals, booking pages, human calendar connections, and webhooks.