이 MCP로 할 수 있는 일
Provides governed workflows for consulting, outreach, sales deals, invoices, marketing campaigns, content approvals, accounting analysis, and audit exports.
도구
입력 스키마
{'type': 'object', 'properties': {'models': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1, 'description': 'Model names to narrow to, which is how a caller pages a table that truncated without re-reading the others. Omit to export every model the coverage block lists as served.'}, 'rows_per_model': {'type': 'integer', 'maximum': 5000, 'minimum': 1, 'description': 'Row ceiling applied to each model separately. Defaults to 500, maximum 5000.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id', 'session_ids'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}, 'session_ids': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['invoice_id', 'description', 'unit_price'], 'properties': {'quantity': {'type': 'number', 'maximum': 1000000, 'description': 'Default 1.', 'exclusiveMinimum': 0}, 'invoice_id': {'type': 'string'}, 'unit_price': {'type': 'number', 'maximum': 999999999, 'minimum': 0}, 'description': {'type': 'string', 'maxLength': 500}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'email': {'type': 'string', 'description': 'Optional published work email; omitted means held research.'}, 'notes': {'type': 'string', 'description': 'Optional free-text notes.'}, 'domain': {'type': 'string', 'description': 'Optional company domain.'}, 'company': {'type': 'string', 'description': 'Optional company name.'}, 'segment': {'type': 'string', 'description': 'Optional segment label.'}, 'contact_name': {'type': 'string', 'description': 'Optional contact full name.'}, 'contact_title': {'type': 'string', 'description': 'Optional contact job title.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id', 'action'], 'properties': {'notes': {'type': 'string', 'description': 'Optional reviewer notes recorded with the decision.'}, 'action': {'enum': ['approve', 'reject'], 'type': 'string', 'description': "Explicit checkpoint decision: 'approve' or 'reject'."}, 'session_id': {'type': 'string', 'description': 'The workflow session id (must be awaiting a checkpoint).'}, 'expected_step_id': {'type': 'string', 'description': 'For routed workflows, the paused result step_id returned by get_workflow_session.'}, 'expected_execution_seq': {'type': 'integer', 'minimum': 1, 'description': 'For routed workflows, the paused result execution_seq returned by get_workflow_session.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deliverable_id', 'expected_version', 'expected_content_hash'], 'properties': {'deliverable_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'minimum': 1}, 'expected_content_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['document_id', 'expected_version', 'expected_content_hash'], 'properties': {'document_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'minimum': 1}, 'expected_content_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['asset_id'], 'properties': {'notes': {'type': 'string', 'maxLength': 10000}, 'asset_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'DraftApprovalRequest', 'required': ['lead_id', 'expected_draft_sha256'], 'properties': {'body': {'anyOf': [{'type': 'string', 'maxLength': 100000}, {'type': 'null'}], 'title': 'Body', 'default': None}, 'lead_id': {'type': 'string', 'format': 'uuid'}, 'subject': {'anyOf': [{'type': 'string', 'maxLength': 998}, {'type': 'null'}], 'title': 'Subject', 'default': None}, 'recipient': {'anyOf': [{'type': 'string', 'maxLength': 320}, {'type': 'null'}], 'title': 'Recipient', 'default': None}, 'expected_draft_sha256': {'type': 'string', 'title': 'Expected Draft Sha256', 'pattern': '^[0-9a-f]{64}$'}}, 'description': 'Approve only against a reviewed current draft, including its campaign/recipient.', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider', 'request_id', 'expected_revision'], 'properties': {'provider': {'enum': ['github', 'gitlab', 'azure_devops', 'asana', 'jira', 'linear'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'expected_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['question'], 'properties': {'context': {'type': 'string', 'default': '', 'maxLength': 2000, 'description': 'Optional factual context; treated as unverified input. The normalized question plus context must fit 2,000 characters total.'}, 'domains': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'default': [], 'maxItems': 8, 'description': 'Optional domain hints such as OSHA, building_codes, or sports_regulation.'}, 'quality': {'enum': ['fast', 'balanced', 'deep'], 'type': 'string', 'default': 'balanced', 'description': 'Policy for proposed, unexecuted model-quality and reasoning-effort routes.'}, 'question': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'Laws or regulations research question (no credentials or secrets). After normalized context is appended, the combined provider question must fit 2,000 characters.'}, 'jurisdiction': {'enum': ['auto', 'federal', 'california', 'both'], 'type': 'string', 'default': 'auto', 'description': 'Request hint forwarded to the legacy provider; it does not prove corpus coverage.'}, 'max_sections': {'type': 'integer', 'maximum': 20, 'minimum': 1, 'description': 'Optional maximum number of provider-returned source/citation records.'}, 'research_mode': {'enum': ['check_law', 'themis'], 'type': 'string', 'default': 'check_law', 'description': 'Fixed legacy provider-record retrieval or an explicit request for fail-closed, neutral Themis generation.'}, 'model_overrides': {'type': 'object', 'default': {}, 'description': 'Optional model-id overrides for proposed, unexecuted agent routes.', 'maxProperties': 8, 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 160, 'minLength': 1}}, 'requested_agents': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'default': [], 'maxItems': 7, 'description': 'Up to seven catalog agent additions for the proposed plan; one of the eight total agent slots is reserved for its baseline agent.'}, 'reasoning_effort_overrides': {'type': 'object', 'default': {}, 'description': 'Optional effort overrides for proposed, unexecuted agent routes.', 'maxProperties': 8, 'propertyNames': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'additionalProperties': {'enum': ['low', 'medium', 'high', 'max'], 'type': 'string'}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id', 'lead_ids'], 'properties': {'lead_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Lead ids to assign (from search_outreach_leads).'}, 'campaign_id': {'type': 'string', 'description': 'Target campaign id (from list_outreach_campaigns).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Events per page. Defaults to 100, maximum 500.'}, 'since': {'type': 'string', 'minLength': 1, 'description': 'ISO-8601 lower bound, inclusive, for example 2026-08-01T00:00:00Z. Omit for no lower bound.'}, 'until': {'type': 'string', 'minLength': 1, 'description': 'ISO-8601 upper bound, inclusive. Omit for no upper bound.'}, 'action': {'type': 'string', 'minLength': 1, 'description': 'Exact event action to filter to, for example mcp.tool_call. Omit to return every action this workspace can export.'}, 'after_id': {'type': 'integer', 'minimum': 0, 'description': 'Resume cursor. Pass the next_cursor from the previous page to continue without re-reading it.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['preview_id', 'preview_hash', 'confirmation_id'], 'properties': {'preview_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}, 'preview_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'confirmation_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'description': 'Campaign UUID (from list_outreach_campaigns).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['preview_id', 'preview_hash', 'confirmation_id'], 'properties': {'preview_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}, 'preview_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'confirmation_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['root_id', 'request_id'], 'properties': {'weeks': {'type': 'integer', 'maximum': 26, 'minimum': 1}, 'root_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider', 'request_id', 'expected_revision'], 'properties': {'provider': {'enum': ['github', 'gitlab', 'azure_devops', 'asana', 'jira', 'linear'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'expected_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider'], 'properties': {'provider': {'enum': ['jira', 'linear'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['earlier_id', 'later_id'], 'properties': {'later_id': {'type': 'string', 'format': 'uuid'}, 'earlier_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['baseline_id'], 'properties': {'baseline_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['activity_id'], 'properties': {'done': {'type': 'boolean', 'description': 'Default true (complete). Pass false to reopen.'}, 'activity_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deal_id'], 'properties': {'notes': {'type': 'string', 'maxLength': 10000}, 'deal_id': {'type': 'string'}, 'due_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}, 'tax_rate': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'client_name': {'type': 'string', 'maxLength': 200, 'description': "Defaults to the deal's company or title."}, 'client_email': {'type': 'string', 'maxLength': 320}, 'payment_terms': {'type': 'string', 'maxLength': 100}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['lead_id'], 'properties': {'notes': {'type': 'string'}, 'stage': {'enum': ['qualification', 'discovery', 'proposal', 'negotiation', 'closed_won', 'closed_lost'], 'type': 'string'}, 'title': {'type': 'string', 'maxLength': 200}, 'amount': {'type': 'number', 'maximum': 999999999999, 'minimum': 0}, 'company': {'type': 'string', 'maxLength': 200}, 'lead_id': {'type': 'string'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Exactly three ASCII letters, such as USD; saved uppercase. Omit for USD. Syntax only, not an ISO registry.'}, 'probability': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'expected_close_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['documents', 'scope'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'description': "Optional private label for this audit run. Name it for the entity and tax year it covers, for example 'Example, LLC 2024'."}, 'scope': {'type': 'object', 'required': ['entity', 'tax_year'], 'properties': {'entity': {'type': 'string', 'maxLength': 256, 'minLength': 1}, 'tax_year': {'type': 'integer', 'maximum': 9998, 'minimum': 1900}, 'period_end': {'type': 'string', 'description': 'Inclusive ISO date within tax_year'}, 'period_start': {'type': 'string', 'description': 'Inclusive ISO date within tax_year'}}, 'additionalProperties': False}, 'context': {'type': 'string', 'maxLength': 20480, 'description': 'Optional business/tax context used by the deterministic engine.'}, 'documents': {'type': 'array', 'items': {'type': 'object', 'required': ['filename', 'content'], 'properties': {'content': {'type': 'string', 'maxLength': 1048576, 'minLength': 1}, 'filename': {'type': 'string', 'maxLength': 255, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1, 'description': '1-50 documents of prepared text. PDFs and other binaries are rejected at the byte-validation boundary by design, so extract text on the client and send canonical Date,Description,Amount,Type rows. Statements already in .csv/.ofx/.qfx/.qif form are parsed row per line, so do not retype their rows -- but do not send one unread: a semicolon-delimited .csv is read in the European convention and books -20.00 as 2000.00, and an OFX or QIF row whose amount is positive is dropped without TRNTYPE being consulted. Both are silent and neither raises an error.'}, 'marginal_rate': {'type': 'string', 'maxLength': 32, 'description': 'Optional decimal or percent, for example 0.24 or 24%.'}, 'replaces_run_id': {'type': 'string', 'format': 'uuid'}, 'scope_assignments': {'type': 'array', 'items': {'type': 'object', 'required': ['source', 'entity', 'booking_date'], 'properties': {'entity': {'type': 'string'}, 'record': {'type': ['integer', 'null'], 'minimum': 1}, 'source': {'type': 'string'}, 'review_note': {'type': 'string', 'maxLength': 4096}, 'booking_date': {'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 10000}, 'duplicate_resolutions': {'type': 'array', 'items': {'type': 'object', 'required': ['sources', 'decision', 'review_note'], 'properties': {'sources': {'type': 'array', 'items': {'type': 'string', 'maxLength': 320, 'minLength': 1}, 'maxItems': 500, 'minItems': 2, 'uniqueItems': True}, 'decision': {'enum': ['distinct_payments', 'same_payment'], 'type': 'string'}, 'review_note': {'type': 'string', 'maxLength': 4096, 'minLength': 1}, 'counted_source': {'type': ['string', 'null'], 'maxLength': 320}}, 'additionalProperties': False}, 'maxItems': 500, 'description': 'Replacement reviewed duplicate decisions for this new run; omit or use [] to leave candidates pending.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id', 'baseline_session_id', 'candidate_session_id'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}, 'baseline_session_id': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'candidate_session_id': {'type': 'string', 'maxLength': 64, 'minLength': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id', 'artifact_ids'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}, 'thresholds': {'anyOf': [{'type': 'object', 'properties': {'min_decisive': {'anyOf': [{'type': 'integer', 'maximum': 10000, 'minimum': 1}, {'type': 'null'}], 'default': None}, 'min_improved': {'anyOf': [{'type': 'integer', 'maximum': 10000, 'minimum': 0}, {'type': 'null'}], 'default': None}, 'max_regressed': {'anyOf': [{'type': 'integer', 'maximum': 10000, 'minimum': 0}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}, {'type': 'null'}], 'default': None}, 'artifact_ids': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 100, 'minItems': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'notes': {'type': 'string', 'maxLength': 50000}, 'status': {'enum': ['active', 'inactive'], 'type': 'string'}, 'contact_name': {'type': 'string', 'maxLength': 200}, 'external_ref': {'type': 'string', 'maxLength': 180, 'minLength': 1}, 'organization': {'type': 'string', 'maxLength': 200}, 'contact_email': {'type': 'string', 'maxLength': 255}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['engagement_id', 'key', 'title'], 'properties': {'key': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9_-]{0,79}$'}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'due_date': {'type': 'string', 'format': 'date'}, 'description': {'type': 'string', 'maxLength': 50000}, 'milestone_id': {'type': 'string', 'format': 'uuid'}, 'engagement_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['engagement_id', 'kind', 'title', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 50000, 'minLength': 1}, 'kind': {'enum': ['proposal', 'sow'], 'type': 'string'}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'engagement_id': {'type': 'string', 'format': 'uuid'}, 'expected_latest_revision': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['client_id', 'title'], 'properties': {'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'status': {'enum': ['draft', 'active', 'on_hold', 'completed', 'cancelled'], 'type': 'string'}, 'client_id': {'type': 'string', 'format': 'uuid'}, 'objective': {'type': 'string', 'maxLength': 50000}, 'start_date': {'type': 'string', 'format': 'date'}, 'external_ref': {'type': 'string', 'maxLength': 180, 'minLength': 1}, 'sales_deal_ref': {'type': 'string', 'maxLength': 240}, 'target_end_date': {'type': 'string', 'format': 'date'}, 'accounting_run_ref': {'type': 'string', 'maxLength': 240}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id', 'title', 'content'], 'properties': {'title': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'channel': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'content': {'type': 'string', 'maxLength': 100000, 'minLength': 1}, 'asset_type': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'campaign_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'scheduled_for': {'type': 'string', 'format': 'date-time'}, 'revision_notes': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['asset_id'], 'properties': {'title': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'channel': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'content': {'type': 'string', 'maxLength': 100000, 'minLength': 1}, 'asset_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'asset_type': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'scheduled_for': {'type': 'string', 'format': 'date-time'}, 'revision_notes': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'notes': {'type': 'string'}, 'stage': {'enum': ['qualification', 'discovery', 'proposal', 'negotiation', 'closed_won', 'closed_lost'], 'type': 'string', 'description': 'Pipeline stage (default qualification).'}, 'title': {'type': 'string', 'maxLength': 200, 'description': 'Deal title (required unless lead_id is given).'}, 'amount': {'type': 'number', 'maximum': 999999999999, 'minimum': 0, 'description': 'Deal value (>= 0).'}, 'company': {'type': 'string', 'maxLength': 200}, 'lead_id': {'type': 'string', 'description': 'Link to an existing owned lead.'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Exactly three ASCII letters, such as USD; saved uppercase. Omit for USD. Syntax only, not an ISO registry.'}, 'campaign_id': {'type': 'string', 'description': 'Link to an owned campaign.'}, 'probability': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Win probability 0-100.'}, 'expected_close_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['client_name'], 'properties': {'notes': {'type': 'string', 'maxLength': 10000}, 'deal_id': {'type': 'string', 'description': 'Optional: link to an owned deal.'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Three ASCII letters; normalized to uppercase (default USD). ISO membership is not checked.'}, 'due_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}, 'tax_rate': {'type': 'number', 'maximum': 100, 'minimum': 0, 'description': 'Percentage, e.g. 8.5 for 8.5%.'}, 'line_items': {'type': 'array', 'items': {'type': 'object', 'required': ['description', 'unit_price'], 'properties': {'quantity': {'type': 'number', 'maximum': 1000000, 'exclusiveMinimum': 0}, 'unit_price': {'type': 'number', 'maximum': 999999999, 'minimum': 0}, 'description': {'type': 'string', 'maxLength': 500}}}, 'maxItems': 200}, 'client_name': {'type': 'string', 'maxLength': 200}, 'client_email': {'type': 'string', 'maxLength': 320}, 'payment_terms': {'type': 'string', 'maxLength': 100, 'description': "e.g. 'Net 30', 'Due on receipt'."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'channels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 20}, 'description': {'type': 'string', 'maxLength': 20000}, 'pain_points': {'type': 'string', 'maxLength': 20000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'voice': {'type': 'string', 'maxLength': 10000}, 'guidelines': {'type': 'string', 'maxLength': 20000}, 'value_proposition': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'status': {'enum': ['draft', 'planned', 'active', 'paused', 'completed', 'archived'], 'type': 'string'}, 'ends_on': {'type': 'string', 'format': 'date'}, 'brand_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'channels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 20}, 'objective': {'type': 'string', 'maxLength': 20000}, 'starts_on': {'type': 'string', 'format': 'date'}, 'audience_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name', 'subject', 'comparator', 'threshold', 'action'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Human label for the watch, e.g. 'Backlog over 50'."}, 'action': {'enum': ['start_workflow', 'notify_slack'], 'type': 'string', 'description': 'What to do when the condition holds.'}, 'subject': {'enum': ['tickets', 'leads', 'invoices'], 'type': 'string', 'description': 'Which of your counts to watch.'}, 'threshold': {'type': 'integer', 'maximum': 1000000, 'minimum': 0, 'description': 'The line the count must cross.'}, 'comparator': {'enum': ['gt', 'gte', 'lt', 'lte', 'eq'], 'type': 'string', 'description': 'How the count is compared against threshold.'}, 'action_config': {'type': 'object', 'properties': {'query': {'type': 'string', 'maxLength': 2000, 'description': 'start_workflow only: optional query handed to the workflow.'}, 'message': {'type': 'string', 'maxLength': 2000, 'minLength': 1, 'description': 'notify_slack only: the message to send.'}, 'workflow_slug': {'type': 'string', 'maxLength': 100, 'minLength': 1, 'description': 'start_workflow only: slug of the workflow to run, from list_workflows.'}}, 'description': 'Settings for the chosen action. start_workflow needs workflow_slug; notify_slack needs message.', 'additionalProperties': False}, 'status_filter': {'type': 'string', 'maxLength': 40, 'description': "Optional: count only rows in this status, e.g. 'todo'. Omit to count them all."}, 'cooldown_seconds': {'type': 'integer', 'minimum': 0, 'description': 'Minimum gap between firings. Defaults to 3600. Values below one scheduler tick are raised to 60, and the stored value reflects that.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'description': 'Campaign name (required).'}, 'status': {'type': 'string', 'description': 'Optional initial status: draft (default) | active | paused | completed.'}, 'description': {'type': 'string', 'description': 'Optional description.'}, 'target_segment': {'type': 'string', 'description': 'Optional target segment label.'}, 'target_audience': {'type': 'string', 'description': 'Optional target-audience note.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name', 'subject_template', 'body_template'], 'properties': {'name': {'type': 'string', 'description': 'Pitch name (required).'}, 'tone': {'type': 'string', 'description': "Optional tone (default 'professional')."}, 'prompt': {'type': 'string', 'description': 'Optional AI drafting instruction.'}, 'category': {'type': 'string', 'description': 'Optional category label.'}, 'body_template': {'type': 'string', 'description': 'Email-body template (required).'}, 'target_segment': {'type': 'string', 'description': 'Optional target segment label.'}, 'subject_template': {'type': 'string', 'description': 'Subject-line template (required).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'ShareCreate', 'required': ['snapshot_id', 'request_id', 'expected_projection_hash', 'expires_at', 'acknowledge_public'], 'properties': {'expires_at': {'type': 'string', 'title': 'Expires At', 'format': 'date-time', 'pattern': '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?Z$'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'snapshot_id': {'type': 'string', 'title': 'Snapshot Id', 'format': 'uuid'}, 'acknowledge_public': {'type': 'boolean', 'const': True, 'title': 'Acknowledge Public'}, 'expected_projection_hash': {'type': 'string', 'title': 'Expected Projection Hash', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'ScheduleCreate', 'required': ['request_id', 'definition'], 'properties': {'definition': {'type': 'object', 'title': 'ScheduleDefinition', 'required': ['name', 'frequency', 'timezone', 'hour', 'minute'], 'properties': {'hour': {'type': 'integer', 'title': 'Hour', 'maximum': 23, 'minimum': 0}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}, 'minute': {'type': 'integer', 'title': 'Minute', 'maximum': 59, 'minimum': 0}, 'enabled': {'type': 'boolean', 'title': 'Enabled', 'default': False}, 'weekday': {'anyOf': [{'type': 'integer', 'maximum': 6, 'minimum': 0}, {'type': 'null'}], 'title': 'Weekday', 'default': None}, 'archived': {'type': 'boolean', 'title': 'Archived', 'default': False}, 'monthday': {'anyOf': [{'type': 'integer', 'maximum': 31, 'minimum': 1}, {'type': 'null'}], 'title': 'Monthday', 'default': None}, 'timezone': {'type': 'string', 'title': 'Timezone', 'maxLength': 100, 'minLength': 1}, 'frequency': {'enum': ['daily', 'weekly', 'monthly'], 'type': 'string', 'title': 'Frequency'}, 'project_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Project Id', 'default': None, 'description': 'Owned project UUID from project_list. Omit or pass null for a portfolio-wide schedule; project identity is frozen in each capture.'}}, 'additionalProperties': False}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'label': {'type': 'string', 'maxLength': 200, 'description': 'Optional human label, e.g. the review it was taken for. Omitted leaves the snapshot unlabelled.'}, 'project_id': {'type': 'string', 'format': 'uuid', 'description': 'Owned ProjectWorkspace UUID from project_list. Omit for the whole portfolio.'}, 'request_id': {'type': 'string', 'format': 'uuid', 'description': 'Reuse this UUID and the exact label/project scope to recover an uncertain capture.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 10000, 'minLength': 1, 'description': 'What was decided or observed.'}, 'kind': {'enum': ['comment', 'decision'], 'type': 'string', 'default': 'comment', 'description': 'Whether this records a decision or an ordinary comment. Defaults to comment.'}, 'snapshot_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The snapshot's id, from list_portfolio_snapshots."}, 'expected_content_hash': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': "The snapshot's content_hash as you read it. A mismatch is refused."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id', 'snapshot_id', 'expected_source_schema', 'expected_source_hash'], 'properties': {'request_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'snapshot_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'expected_source_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}, 'expected_source_schema': {'enum': [1, 2, 3, 4], 'type': 'integer'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name', 'columns'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'What to call the view.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Which ticket columns the view shows, in order. At most 20.'}, 'filters': {'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Saved-view filter: q.'}, 'kind': {'type': 'string', 'description': 'Saved-view filter: kind.'}, 'scope': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': 'Saved-view filter: scope.'}, 'state': {'enum': [None, 'unresolved', 'resolved', 'all'], 'type': ['string', 'null'], 'description': 'Saved-view filter: state.'}, 'reader': {'enum': ['tickets', 'attention', 'reviewed_attention'], 'type': 'string', 'default': 'tickets', 'description': 'Saved-view filter: reader.'}, 'reason': {'enum': [None, 'stale', 'aging', 'blocked', 'dependency_blocked', 'completion_blocked', 'missed_due_date', 'integration_drift', 'forecast_degradation'], 'type': ['string', 'null'], 'description': 'Saved-view filter: reason.'}, 'status': {'type': 'string', 'description': 'Saved-view filter: status.'}, 'assignee': {'type': 'string', 'description': 'Saved-view filter: assignee.'}, 'priority': {'type': 'string', 'description': 'Saved-view filter: priority.'}, 'follow_up': {'enum': [None, 'all', 'due'], 'type': ['string', 'null'], 'description': 'Saved-view filter: follow_up.'}, 'parent_id': {'type': 'string', 'description': 'Saved-view filter: parent_id.'}, 'recursive': {'type': 'boolean', 'description': 'Saved-view filter: recursive.'}, 'session_id': {'type': 'string', 'description': 'Saved-view filter: session_id.'}, 'action_type': {'type': 'string', 'description': 'Saved-view filter: action_type.'}, 'workflow_session_id': {'type': 'string', 'description': 'Saved-view filter: workflow_session_id.'}}, 'description': 'Saved question. Omitted reader selects ordinary tickets. Attention accepts reason; reviewed_attention accepts state and follow_up. Triage refuses other non-default ticket filters, grouping and sorting. Save intent only, never result pages.', 'additionalProperties': False}, 'sort_by': {'type': 'string', 'description': 'Optional ticket field to sort rows by.'}, 'group_by': {'type': 'string', 'description': 'Optional ticket field to group rows by.'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'default': 'asc', 'description': 'Sort direction. Defaults to asc.'}, 'scorecard': {'type': ['object', 'null'], 'required': ['version', 'preset', 'cards'], 'properties': {'cards': {'type': 'array', 'items': {'type': 'object', 'required': ['metric', 'threshold'], 'properties': {'metric': {'enum': ['total', 'open', 'todo', 'in_progress', 'blocked', 'done', 'cancelled'], 'type': 'string'}, 'threshold': {'type': ['object', 'null'], 'required': ['operator', 'value'], 'properties': {'value': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0}, 'operator': {'enum': ['gte', 'lte'], 'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 7, 'minItems': 1}, 'preset': {'enum': ['custom', 'executive', 'pmo', 'manager'], 'type': 'string'}, 'version': {'type': 'integer', 'const': 1}}, 'description': 'Optional private ordinary live ticket counts; omit to retain, null to clear while retaining a nonzero revision. At most 10000 matching tickets, no actions or role grants. Shared and triage definitions cannot enroll.', 'additionalProperties': False}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['root_id', 'request_id', 'label'], 'properties': {'label': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'root_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name', 'steps'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Template name, e.g. 'Competitor Teardown'. The saved slug is derived from this."}, 'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 20, 'description': 'Optional tags for discovery.'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'allOf': [{'not': {'required': ['id', 'step_id']}}], 'required': ['name', 'agent_template'], 'properties': {'id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Optional stable identifier for this step. Supply one only if another step names it in depends_on.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Human-readable step name, e.g. 'Draft the brief'."}, 'role': {'type': 'string', 'maxLength': 200, 'description': 'Optional short role label shown alongside the step.'}, 'type': {'enum': ['agent', 'transform', 'connector'], 'type': 'string', 'description': "Optional executable node kind. Defaults to 'agent', which asks a model a question. 'transform' runs a supported deterministic local operation; 'connector' invokes the configured connector runtime and fails that step if the runtime is unavailable."}, 'model': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Optional model id override for this step; omit to use the agent template's own model."}, 'tools': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 100, 'description': 'Optional subset of persona tools. [] disables tools for supplied-evidence drafts; omission inherits.', 'uniqueItems': True}, 'params': {'type': 'object', 'description': "Optional configuration for a non-agent step. Must be omitted or empty for an 'agent' step, whose configuration is the named fields above (model, temperature, instruction, ...); params would be silently ignored there, so it is refused."}, 'step_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Canonical stable identifier for routed steps. Do not supply both step_id and the legacy id field.'}, 'next_step': {'type': 'string', 'pattern': '^(?:__end__|[A-Za-z0-9][A-Za-z0-9_.:-]*)$', 'maxLength': 100, 'minLength': 1, 'description': 'Optional next step id for an explicitly routed workflow. Do not combine routed fields with depends_on.'}, 'checkpoint': {'type': 'boolean', 'description': 'Whether the run pauses for human approval after this step. Defaults to true when omitted.'}, 'depends_on': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 20, 'description': 'Optional ids of steps this one builds on. A step starts only once every id it names has finished. Steps ready together share one bounded parallel layer in authored order. A definition with no arrows still runs in list order. Do not combine depends_on with routed fields.'}, 'human_gate': {'type': 'boolean', 'description': 'Require approval from the authenticated human review UI. API-key and MCP callers cannot cross this gate.'}, 'max_tokens': {'type': 'integer', 'maximum': 65536, 'minimum': 1, 'description': 'Optional output token cap for this step.'}, 'instruction': {'type': 'string', 'maxLength': 20000, 'description': 'Optional step-specific instruction for the agent.'}, 'temperature': {'type': 'number', 'maximum': 2.0, 'minimum': 0.0, 'description': 'Optional sampling temperature override for this step.'}, 'quality_gate': {'type': 'object', 'allOf': [{'if': {'required': ['schema'], 'properties': {'schema': {'const': 'scope_decision/v1'}}}, 'then': {'properties': {'max_iterations': {'const': 1}, 'blocking_severities': {'const': ['P0', 'P1']}}}}], 'required': ['schema', 'loop_to', 'pass_to', 'max_iterations'], 'properties': {'schema': {'enum': ['severity_findings/v1', 'scope_decision/v1'], 'type': 'string'}, 'loop_to': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1}, 'pass_to': {'type': 'string', 'pattern': '^(?:__end__|[A-Za-z0-9][A-Za-z0-9_.:-]*)$', 'maxLength': 100, 'minLength': 1}, 'max_iterations': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'blocking_severities': {'type': 'array', 'items': {'enum': ['P0', 'P1', 'P2', 'P3', 'P4', 'P5'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1, 'uniqueItems': True}}, 'additionalProperties': False}, 'agent_template': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9_-]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Slug of the agent template this step runs, from list_agents.'}, 'requires_distinct_provider_from': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1, 'description': "Require this step's actual provider to differ from the provider that produced the named earlier step."}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1, 'description': 'The pipeline steps, in the order they will run.'}, 'domain': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': "Optional grouping domain, e.g. 'research'. Defaults to 'general'."}, 'description': {'type': 'string', 'maxLength': 4000, 'description': 'Optional description of what the workflow does.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['approval_id', 'decision'], 'properties': {'notes': {'type': 'string', 'maxLength': 2000, 'description': 'What you want changed or why. Required when decision is amend; optional otherwise.'}, 'decision': {'enum': ['approve', 'reject', 'amend'], 'type': 'string', 'description': 'approve continues the run; reject sends the step back to be redone; amend does the same but requires notes saying what to change.'}, 'approval_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The request's id, from list_approvals."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'expected_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0, 'description': 'Optional visibility revision from get/list; refuses a stale visibility change.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['monitor_id'], 'properties': {'monitor_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The monitor's id, from create_monitor or list_monitors."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Slug of the template to delete, from list_workflows.'}, 'expected_template_fingerprint': {'type': 'string', 'maxLength': 64, 'minLength': 64, 'description': 'Optional. The definition fingerprint you last saw for this template, returned by update_workflow_template when it last succeeded. Supply it and the write refuses, changing nothing, if the stored template is no longer the one that fingerprint names -- someone else edited or deleted it since you read it. Omit it and the write proceeds as it always has, overwriting whatever is there. This is not the definition_sha reported for a run: that one also reflects global configuration, this one names the stored file alone.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'against': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The baseline to compare against -- the 'from' side. Omit for your newest snapshot older than snapshot_id."}, 'snapshot_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The snapshot being examined -- the 'to' side, from list_portfolio_snapshots."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['lead_id'], 'properties': {'lead_id': {'type': 'string', 'description': 'Lead id to draft for (from search_outreach_leads).'}, 'email_body': {'type': 'string', 'description': 'Draft email body.'}, 'subject_line': {'type': 'string', 'description': 'Draft subject line.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'Enable', 'required': ['request_id', 'expected_revision', 'expected_configuration_hash', 'acknowledge_delivery', 'rule_id'], 'properties': {'rule_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'expected_revision': {'type': 'integer', 'title': 'Expected Revision', 'maximum': 2147483646, 'minimum': 1}, 'acknowledge_delivery': {'type': 'boolean', 'const': True, 'title': 'Acknowledge Delivery'}, 'expected_configuration_hash': {'type': 'string', 'title': 'Expected Configuration Hash', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['council', 'workflow'], 'type': 'string', 'description': 'What to price: a council panel or a saved workflow.'}, 'runs': {'type': 'integer', 'maximum': 1000, 'minimum': 1, 'description': 'How many runs to price (default 1).'}, 'model': {'type': 'string', 'description': 'Optional single model override applied to every agent or step. A model absent from the pricing catalog is reported in unpriced_models rather than silently priced as the default.'}, 'panel': {'type': 'string', 'description': "Panel slug when kind is 'council' (default: 'default')."}, 'workflow': {'type': 'string', 'description': "Workflow slug — required when kind is 'workflow'."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': "Page size: ordinary defaults200/max500, attention defaults100/max500, reviewed work defaults20/max50. Omit for the reader's default."}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1, 'description': 'Reviewed-work next_cursor only; never saved in the definition.'}, 'offset': {'type': 'integer', 'default': 0, 'maximum': 2147483647, 'minimum': 0, 'description': 'How many tickets to skip. Defaults to 0.'}, 'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}, 'expected_definition_token': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'Required on triage continuation; bind to the preceding saved definition.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'format': {'enum': ['json', 'csv', 'html', 'pdf'], 'type': 'string', 'default': 'json'}, 'snapshot_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['envelope_id'], 'properties': {'format': {'enum': ['json', 'csv', 'html', 'pdf'], 'type': 'string'}, 'envelope_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider', 'expected_export_hash'], 'properties': {'provider': {'enum': ['jira', 'linear'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'destination': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'expected_export_hash': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'maxLength': 36, 'minLength': 36}, 'include_input': {'type': 'boolean', 'default': False, 'description': "Also return the caller's decrypted source text; use sparingly."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': "The agent slug, e.g. 'safety_officer'."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['delivery_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'delivery_id': {'type': 'string', 'format': 'uuid'}, 'before_attempt': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}, 'before_recovery_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['rule_id'], 'properties': {'rule_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['meeting_type_id', 'window_start', 'window_end'], 'properties': {'window_end': {'type': 'string', 'format': 'date-time', 'maxLength': 32}, 'window_start': {'type': 'string', 'format': 'date-time', 'maxLength': 32}, 'meeting_type_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['booking_id'], 'properties': {'booking_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id', 'artifact_id'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}, 'artifact_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id', 'verdict_id'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}, 'verdict_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['engagement_id'], 'properties': {'engagement_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'end': {'type': 'string', 'format': 'date-time'}, 'start': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deal_id'], 'properties': {'deal_id': {'type': 'string', 'description': 'The deal id.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['root_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'root_id': {'type': 'string', 'format': 'uuid'}, 'baseline_id': {'type': 'string', 'format': 'uuid'}, 'after_ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['root_id'], 'properties': {'weeks': {'type': 'integer', 'maximum': 26, 'minimum': 1}, 'root_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['observation_id'], 'properties': {'observation_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['invoice_id'], 'properties': {'invoice_id': {'type': 'string', 'description': 'The invoice id.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['audience_id'], 'properties': {'audience_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['brand_id'], 'properties': {'brand_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'snapshot_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'before_relation_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['share_id'], 'properties': {'share_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['schedule_id'], 'properties': {'schedule_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'snapshot_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The snapshot's id, from list_portfolio_snapshots."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'snapshot_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['project_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'before_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['envelope_id'], 'properties': {'envelope_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['baseline_id'], 'properties': {'baseline_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'description': 'The session ID to retrieve'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Whole UTC days to cover, ending today. Defaults to 7.'}, 'digest_limit': {'type': 'integer', 'maximum': 52, 'minimum': 1}, 'digest_before_week': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'before_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'offset': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0}, 'reason': {'enum': ['stale', 'aging', 'blocked', 'dependency_blocked', 'completion_blocked', 'missed_due_date', 'integration_drift', 'forecast_degradation'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'ticket_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'before_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'ticket_id': {'type': 'string', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$', 'maxLength': 36, 'minLength': 36}, 'before_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'days': {'type': 'integer', 'maximum': 180, 'minimum': 7}, 'root_id': {'type': 'string', 'maxLength': 64}, 'baseline_id': {'type': 'string', 'format': 'uuid'}, 'target_date': {'type': 'string', 'maxLength': 32, 'description': 'Optional plan-line end date, YYYY-MM-DD. Must be strictly after the window start. Omitting it leaves the output exactly as it is without a plan line.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['label'], 'properties': {'days': {'type': 'integer', 'maximum': 180, 'minimum': 1}, 'label': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 4096, 'minLength': 1}, 'end_date': {'type': 'string', 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$', 'maxLength': 10, 'minLength': 10}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 4096, 'minLength': 1}, 'ticket_id': {'type': 'string', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['artifact_id'], 'properties': {'artifact_id': {'type': 'string', 'description': '32-hex artifact id from a visualization reference'}, 'include_svg': {'type': 'boolean', 'description': 'Also return the full SVG markup (default false)'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id'], 'properties': {'session_id': {'type': 'string', 'description': 'The workflow session ID returned by run_workflow.'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'execution'], 'properties': {'text': {'type': 'string'}, 'execution': {'type': ['object', 'null'], 'required': ['order', 'layers', 'dependency_graph', 'degraded_to_list_order', 'degradation_reason', 'parallelism_used'], 'properties': {'order': {'type': 'array', 'items': {'type': 'string'}}, 'layers': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'string'}}}, 'dependency_graph': {'type': 'object', 'additionalProperties': {'type': 'array', 'items': {'type': 'string'}}}, 'parallelism_used': {'type': 'boolean'}, 'degradation_reason': {'type': ['string', 'null']}, 'degraded_to_list_order': {'type': 'boolean'}}, 'description': 'The execution plan frozen at run creation, or null when the run recorded none. Never recomputed from the current template.', 'additionalProperties': False}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['engagement_id'], 'properties': {'milestones': {'type': 'array', 'items': {'type': 'object', 'required': ['key', 'title'], 'properties': {'key': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9_-]{0,79}$'}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'due_date': {'type': 'string', 'format': 'date'}, 'description': {'type': 'string', 'maxLength': 8000}, 'order_index': {'type': 'integer', 'maximum': 10000, 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 10}, 'engagement_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider', 'request_id', 'expected_revision', 'target'], 'properties': {'target': {'type': 'object', 'required': ['container', 'item'], 'properties': {'item': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'container': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}, 'provider': {'enum': ['github', 'gitlab', 'azure_devops', 'asana', 'jira', 'linear'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'credential_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}]}, 'expected_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1}, 'offset': {'type': 'integer', 'default': 0, 'minimum': 0}, 'status': {'enum': ['pending', 'running', 'completed', 'failed'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'domain': {'type': 'string', 'description': "Filter agents by domain (e.g., 'finance', 'technology', 'healthcare')"}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'status': {'enum': ['pending', 'resolved', 'expired', 'superseded'], 'type': 'string', 'description': 'Which lifecycle status to list. Defaults to pending -- the ones still waiting for an answer.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'state': {'enum': ['all', 'pending', 'attempting', 'delivered', 'retryable', 'uncertain', 'failed', 'cancelled', 'received'], 'type': 'string'}, 'rule_id': {'type': 'string', 'format': 'uuid'}, 'before_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['rule_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'rule_id': {'type': 'string', 'format': 'uuid'}, 'before_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'scope': {'enum': ['active', 'archived', 'all'], 'type': 'string'}, 'before_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view', 'after', 'limit'], 'properties': {'view': {'enum': ['upcoming', 'outcomes', 'due'], 'type': 'string'}, 'after': {'anyOf': [{'type': 'string', 'format': 'uuid', 'maxLength': 36}, {'type': 'null'}]}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'after': {'type': 'string', 'format': 'uuid', 'maxLength': 36}, 'archived': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id'], 'properties': {'limit': {'type': 'integer', 'description': 'Max rows (default 50, max 200).'}, 'direction': {'type': 'string', 'description': "'inbound' (replies from prospects — the default), 'outbound' (sent), or '' for all."}, 'campaign_id': {'type': 'string', 'description': 'Campaign UUID (from list_outreach_campaigns).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id'], 'properties': {'campaign_id': {'type': 'string', 'description': 'Campaign UUID (from list_outreach_campaigns).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'status': {'enum': ['active', 'inactive'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'status': {'enum': ['draft', 'active', 'on_hold', 'completed', 'cancelled'], 'type': 'string'}, 'client_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'campaign_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'approval_state': {'enum': ['draft', 'pending_approval', 'approved', 'rejected'], 'type': 'string'}, 'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'stage': {'enum': ['qualification', 'discovery', 'proposal', 'negotiation', 'closed_won', 'closed_lost'], 'type': 'string', 'description': 'Optional stage filter.'}, 'lead_id': {'type': 'string', 'description': 'Optional: only deals linked to this lead.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['root_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'root_id': {'type': 'string', 'format': 'uuid'}, 'before_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'status': {'enum': ['draft', 'sent', 'paid', 'void'], 'type': 'string', 'description': 'Optional status filter.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'status': {'enum': ['draft', 'planned', 'active', 'paused', 'completed', 'archived'], 'type': 'string'}, 'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1}, 'status': {'enum': ['new', 'triaged', 'planned', 'resolved', 'dismissed'], 'type': 'string'}, 'category': {'enum': ['performance', 'missing_feature', 'bug', 'ux', 'docs', 'general'], 'type': 'string'}, 'severity': {'enum': ['blocker', 'major', 'minor', 'suggestion'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 200, 'minimum': 1}, 'scope': {'enum': ['portfolio', 'project', 'all'], 'type': 'string'}, 'before_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'project_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'scope': {'enum': ['all', 'active', 'expired', 'revoked'], 'type': 'string', 'default': 'all'}, 'before_id': {'type': 'string', 'format': 'uuid'}, 'snapshot_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['schedule_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'before_id': {'type': 'string', 'format': 'uuid'}, 'schedule_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['schedule_id'], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'schedule_id': {'type': 'string', 'format': 'uuid'}, 'before_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 100, 'minimum': 1}, 'scope': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active'}, 'before_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'limit': {'type': 'integer', 'default': 100, 'maximum': 500, 'minimum': 1, 'description': 'How many notes to return. Defaults to 100.'}, 'snapshot_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The snapshot's id, from list_portfolio_snapshots."}, 'after_note_id': {'type': 'string', 'format': 'uuid', 'description': 'Continue after this note in the same owned snapshot, using next_after_id.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'How many snapshots to return. Defaults to 50.'}, 'scope': {'enum': ['portfolio', 'project', 'all'], 'type': 'string'}, 'project_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['envelope_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'before_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'envelope_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'before_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'snapshot_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'default': 20, 'maximum': 50, 'minimum': 1}, 'state': {'enum': ['unresolved', 'resolved', 'all'], 'type': 'string', 'default': 'unresolved'}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'follow_up': {'enum': ['all', 'due'], 'type': 'string', 'default': 'all'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'default': 50, 'maximum': 200, 'minimum': 1, 'description': 'How many views per page. Defaults to 50.'}, 'scope': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'description': 'Which of YOUR OWN views to include: active (the default, excluding archived), archived (your recovery list), or all. Shared views are unaffected by archived and never appear under it.'}, 'cursor': {'type': 'string', 'maxLength': 1024, 'minLength': 1, 'description': 'Opaque next_cursor from the same caller and scope; expires after 24 hours. Omit to refresh.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['root_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'root_id': {'type': 'string', 'format': 'uuid'}, 'before_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'before_version': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'provider': {'enum': ['jira', 'linear'], 'type': 'string'}, 'before_id': {'type': 'string', 'format': 'uuid'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'before_id': {'type': 'string', 'format': 'uuid'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'provider': {'enum': ['jira', 'linear'], 'type': 'string'}, 'before_id': {'type': 'string', 'format': 'uuid'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'D4A_Stress': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Recovery Environment — Stress (1-5).'}, 'D4B_Support': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Recovery Environment — Support (1-5).'}, 'agent_scores': {'type': 'object', 'description': 'Per-reviewer scores keyed by reviewer name, aggregated by median. Shape: {"<reviewer>": {"D1_RiskOfHarm": 4, ...}}. Mutually exclusive with the flat D* fields — sending both is refused (422), not merged. An empty map {} counts as not supplied.'}, 'D1_RiskOfHarm': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Risk of Harm (1-5).'}, 'D6_Engagement': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Engagement & Recovery Status (1-5).'}, 'D3_CoMorbidity': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Medical/Addictive/Psychiatric Co-Morbidity (1-5). Capital M in CoMorbidity.'}, 'D2_FunctionalStatus': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Functional Status (1-5).'}, 'D5_TreatmentHistory': {'type': 'integer', 'maximum': 5, 'minimum': 1, 'description': 'Treatment & Recovery History (1-5).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'body': {'type': 'string'}, 'done': {'type': 'boolean', 'description': 'Mark a task already done.'}, 'type': {'enum': ['note', 'call', 'meeting', 'email', 'task'], 'type': 'string', 'description': 'note|call|meeting|email|task (default note).'}, 'deal_id': {'type': 'string', 'description': 'Owned deal to attach to.'}, 'lead_id': {'type': 'string', 'description': 'Owned lead to attach to.'}, 'subject': {'type': 'string', 'maxLength': 255}, 'due_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD (for tasks).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['invoice_id'], 'properties': {'invoice_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['scopes'], 'properties': {'name': {'type': 'string', 'description': "Label for the child key (default 'delegated key')."}, 'scopes': {'type': 'array', 'items': {'type': 'string'}, 'description': "Scopes to grant the child. Must be a subset of the calling key's own scopes and may not include keys:mint."}, 'expires_in_minutes': {'type': 'integer', 'maximum': 1440, 'minimum': 1, 'description': 'Child lifetime in minutes (default 60, maximum 1440).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'Pause', 'required': ['request_id', 'expected_revision', 'rule_id'], 'properties': {'rule_id': {'type': 'string', 'format': 'uuid'}, 'archived': {'type': 'boolean', 'title': 'Archived', 'default': False}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'expected_revision': {'type': 'integer', 'title': 'Expected Revision', 'maximum': 2147483646, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'model': {'type': 'string', 'description': 'Optional model override for every Council agent'}, 'panel': {'type': 'string', 'description': 'Panel slug; omit to use the default panel'}, 'query': {'type': 'string', 'description': 'The question used for panel selection'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['workflow'], 'properties': {'workflow': {'type': 'string', 'description': "The workflow slug (from list_workflows), e.g. 'due_diligence'."}, 'parameters': {'type': 'object', 'description': 'Optional values for the workflow\'s declared parameters, as a flat name-to-value object, e.g. {"region": "EU"}. Supply them to have them validated; omit to skip validation.', 'additionalProperties': True}, 'step_models': {'type': 'object', 'description': 'Optional per-run model choices, keyed by zero-based step index (for example {"0": "claude-sonnet-4-6"}). Uses the same catalog validation as run_workflow; send the same choices when starting. Does not change the saved template or grant provider access.', 'additionalProperties': {'type': 'string'}}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'oneOf': [{'required': ['definition'], 'properties': {'rule_id': {'type': 'null'}, 'definition': {'type': 'object'}}}, {'required': ['rule_id'], 'properties': {'rule_id': {'type': 'string', 'format': 'uuid'}, 'definition': {'type': 'null'}}}], 'title': 'Preview', 'properties': {'limit': {'type': 'integer', 'title': 'Limit', 'default': 20, 'maximum': 100, 'minimum': 1}, 'rule_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Rule Id', 'default': None}, 'before_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Before Id', 'default': None}, 'definition': {'anyOf': [{'type': 'object', 'title': 'Definition', 'required': ['name', 'selector', 'quiet_hours', 'destinations', 'stages'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}, 'stages': {'type': 'array', 'items': {'type': 'object', 'title': 'Stage', 'required': ['key', 'name', 'after_minutes', 'destination_key'], 'properties': {'key': {'type': 'string', 'title': 'Key', 'pattern': '^[a-z][a-z0-9_-]{0,31}$', 'maxLength': 32, 'minLength': 1}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}, 'after_minutes': {'type': 'integer', 'title': 'After Minutes', 'maximum': 10080, 'minimum': 0}, 'destination_key': {'type': 'string', 'title': 'Destination Key', 'pattern': '^[a-z][a-z0-9_-]{0,31}$', 'maxLength': 32, 'minLength': 1}}, 'additionalProperties': False}, 'title': 'Stages', 'maxItems': 5, 'minItems': 1}, 'selector': {'type': 'object', 'title': 'Selector', 'required': ['reader', 'reasons', 'priorities', 'review_state', 'saved_view'], 'properties': {'reader': {'enum': ['attention', 'due_followups'], 'type': 'string', 'title': 'Reader'}, 'reasons': {'type': 'array', 'items': {'enum': ['stale', 'aging', 'blocked', 'dependency_blocked', 'completion_blocked', 'missed_due_date', 'integration_drift', 'forecast_degradation'], 'type': 'string'}, 'title': 'Reasons'}, 'priorities': {'type': 'array', 'items': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'title': 'Priorities', 'maxItems': 4, 'minItems': 1}, 'saved_view': {'anyOf': [{'type': 'object', 'title': 'SavedSelection', 'required': ['id', 'definition_token'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'format': 'uuid'}, 'definition_token': {'type': 'string', 'title': 'Definition Token', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}}, 'additionalProperties': False}, {'type': 'null'}]}, 'review_state': {'enum': ['unresolved', 'resolved', 'all'], 'type': 'string', 'title': 'Review State'}}, 'additionalProperties': False}, 'quiet_hours': {'anyOf': [{'type': 'object', 'title': 'QuietHours', 'required': ['timezone', 'windows'], 'properties': {'windows': {'type': 'array', 'items': {'type': 'object', 'title': 'QuietWindow', 'required': ['days', 'start_minute', 'end_minute'], 'properties': {'days': {'type': 'array', 'items': {'type': 'integer'}, 'title': 'Days', 'maxItems': 7, 'minItems': 1}, 'end_minute': {'type': 'integer', 'title': 'End Minute', 'maximum': 1439, 'minimum': 0}, 'start_minute': {'type': 'integer', 'title': 'Start Minute', 'maximum': 1439, 'minimum': 0}}, 'additionalProperties': False}, 'title': 'Windows'}, 'timezone': {'type': 'string', 'title': 'Timezone', 'minLength': 1}}, 'additionalProperties': False}, {'type': 'null'}]}, 'destinations': {'type': 'array', 'items': {'type': 'object', 'title': 'Destination', 'required': ['key', 'name', 'url'], 'properties': {'key': {'type': 'string', 'title': 'Key', 'pattern': '^[a-z][a-z0-9_-]{0,31}$', 'maxLength': 32, 'minLength': 1}, 'url': {'type': 'string', 'title': 'Url', 'minLength': 1}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}, 'title': 'Destinations', 'maxItems': 3, 'minItems': 1}}, 'additionalProperties': False}, {'type': 'null'}], 'default': None}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'SharePreview', 'required': ['snapshot_id'], 'properties': {'snapshot_id': {'type': 'string', 'title': 'Snapshot Id', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id', 'proposal'], 'properties': {'proposal': {'oneOf': [{'type': 'object', 'required': ['action', 'meeting_type_id', 'offering_hash', 'start_at', 'timezone', 'name', 'email'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'email': {'type': 'string', 'format': 'email', 'maxLength': 255, 'minLength': 1}, 'notes': {'type': 'string', 'maxLength': 10000}, 'action': {'const': 'create'}, 'answers': {'type': 'object', 'maxProperties': 20, 'propertyNames': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 1000}}, 'start_at': {'type': 'string', 'format': 'date-time', 'maxLength': 32}, 'timezone': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'offering_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'meeting_type_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'booking_id', 'start_at', 'offering_hash'], 'properties': {'action': {'const': 'reschedule'}, 'start_at': {'type': 'string', 'format': 'date-time', 'maxLength': 32}, 'booking_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}, 'offering_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['action', 'booking_id'], 'properties': {'action': {'const': 'cancel'}, 'reason': {'type': 'string', 'maxLength': 255}, 'booking_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}]}, 'request_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider'], 'properties': {'provider': {'enum': ['jira', 'linear'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'destination': {'type': 'string', 'maxLength': 80, 'minLength': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name', 'request_id'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 120, 'minLength': 1}, 'goals': {'type': 'string', 'title': 'Goals', 'default': '', 'maxLength': 10000}, 'summary': {'type': 'string', 'title': 'Summary', 'default': '', 'maxLength': 4000}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'context_kind': {'enum': ['personal', 'business', 'client', 'contract', 'unclassified'], 'type': 'string', 'title': 'Context Kind'}, 'repository_url': {'type': 'string', 'title': 'Repository Url', 'default': '', 'maxLength': 2000}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id', 'title', 'kind', 'body', 'project_id'], 'properties': {'body': {'type': 'string', 'title': 'Body', 'maxLength': 100000}, 'kind': {'enum': ['brief', 'prd', 'tech_spec', 'decision'], 'type': 'string', 'title': 'Kind'}, 'title': {'type': 'string', 'title': 'Title', 'maxLength': 200, 'minLength': 1}, 'status': {'enum': ['draft', 'reviewed'], 'type': 'string', 'title': 'Status', 'default': 'draft'}, 'ticket_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Ticket Id', 'default': None}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['project_id', 'document_id'], 'properties': {'revision': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'document_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id', 'title', 'kind', 'body', 'expected_revision', 'project_id', 'document_id'], 'properties': {'body': {'type': 'string', 'title': 'Body', 'maxLength': 100000}, 'kind': {'enum': ['brief', 'prd', 'tech_spec', 'decision'], 'type': 'string', 'title': 'Kind'}, 'title': {'type': 'string', 'title': 'Title', 'maxLength': 200, 'minLength': 1}, 'status': {'enum': ['draft', 'reviewed'], 'type': 'string', 'title': 'Status', 'default': 'draft'}, 'ticket_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Ticket Id', 'default': None}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'document_id': {'type': 'string', 'format': 'uuid'}, 'expected_revision': {'type': 'integer', 'title': 'Expected Revision', 'minimum': 1}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['project_id'], 'properties': {'project_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'project_id'], 'properties': {'ticket_id': {'type': 'string', 'title': 'Ticket Id', 'format': 'uuid'}, 'project_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'context_kind': {'enum': ['personal', 'business', 'client', 'contract', 'unclassified'], 'type': 'string', 'title': 'Context Kind'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['project_id', 'ticket_id', 'expected_binding_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'expected_binding_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['request_id', 'expected_revision', 'project_id'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 120, 'minLength': 1}, 'goals': {'type': 'string', 'title': 'Goals', 'maxLength': 10000}, 'summary': {'type': 'string', 'title': 'Summary', 'maxLength': 4000}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'context_kind': {'enum': ['personal', 'business', 'client', 'contract', 'unclassified'], 'type': 'string', 'title': 'Context Kind'}, 'repository_url': {'type': 'string', 'title': 'Repository Url', 'maxLength': 2000}, 'expected_revision': {'type': 'integer', 'title': 'Expected Revision', 'minimum': 1}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text', 'data'], 'properties': {'data': {'type': 'object'}, 'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'The question or decision to match to a panel.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'Reconcile', 'required': ['request_id', 'expected_version', 'decision', 'note', 'delivery_id'], 'properties': {'note': {'type': 'string', 'title': 'Note', 'maxLength': 2000, 'minLength': 1}, 'decision': {'enum': ['received', 'cancel'], 'type': 'string', 'title': 'Decision'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'delivery_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'title': 'Expected Version', 'maximum': 2147483646, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'provider', 'intent_id'], 'properties': {'provider': {'enum': ['jira', 'linear'], 'type': 'string'}, 'intent_id': {'type': 'string', 'format': 'uuid'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'LeadEvidenceRequest', 'required': ['lead_id'], 'properties': {'email': {'anyOf': [{'type': 'string', 'maxLength': 255}, {'type': 'null'}], 'title': 'Email', 'default': None}, 'company': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Company', 'default': None}, 'lead_id': {'type': 'string', 'format': 'uuid'}, 'contact_name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}], 'title': 'Contact Name', 'default': None}, 'employer_url': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Employer Url', 'default': None}, 'identity_url': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Identity Url', 'default': None}, 'mailbox_result': {'anyOf': [{'type': 'string', 'maxLength': 30}, {'type': 'null'}], 'title': 'Mailbox Result', 'default': None}, 'mailbox_expires_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Mailbox Expires At', 'default': None}, 'mailbox_verified_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Mailbox Verified At', 'default': None}, 'upstream_source_key': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}], 'title': 'Upstream Source Key', 'default': None}, 'email_provenance_url': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}], 'title': 'Email Provenance Url', 'default': None}, 'employer_observed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Employer Observed At', 'default': None}, 'identity_observed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Identity Observed At', 'default': None}, 'source_policy_approved': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'title': 'Source Policy Approved', 'default': None}, 'email_provenance_observed_at': {'anyOf': [{'type': 'string', 'format': 'date-time'}, {'type': 'null'}], 'title': 'Email Provenance Observed At', 'default': None}}, 'description': 'Explicit research and mailbox evidence; omitted fields stay unchanged.', 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'review_id', 'expected_review_revision', 'expected_resolution_revision', 'expected_assessment_digest', 'idempotency_key', 'disposition', 'explanation'], 'properties': {'review_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'ticket_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'disposition': {'enum': ['resolved', 'withdrawn'], 'type': 'string'}, 'explanation': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_.:-]{8,128}$', 'maxLength': 128, 'minLength': 8}, 'expected_review_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 1}, 'expected_assessment_digest': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}, 'expected_resolution_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['asset_id'], 'properties': {'notes': {'type': 'string', 'maxLength': 10000}, 'asset_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deliverable_id'], 'properties': {'deliverable_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['preview_id', 'preview_hash', 'confirmation_id'], 'properties': {'preview_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}, 'preview_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'confirmation_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['run_id'], 'properties': {'run_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'expected_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0, 'description': 'Optional visibility revision from get/list; refuses a stale visibility change.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views with scope=archived."}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'Retry', 'required': ['request_id', 'expected_version', 'acknowledge_possible_duplicate', 'delivery_id'], 'properties': {'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'delivery_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'title': 'Expected Version', 'maximum': 2147483646, 'minimum': 1}, 'acknowledge_possible_duplicate': {'type': 'boolean', 'const': True, 'title': 'Acknowledge Possible Duplicate'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id'], 'properties': {'from_step': {'type': 'integer', 'minimum': 0, 'description': 'Zero-based index of the first step to actually execute. Defaults to the first step with no recorded output.'}, 'session_id': {'type': 'string', 'description': 'The workflow session id to continue from.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id', 'step_index', 'input_sha', 'decision'], 'properties': {'notes': {'type': 'string', 'maxLength': 4000}, 'decision': {'enum': ['approve', 'reject']}, 'input_sha': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'session_id': {'type': 'string', 'format': 'uuid'}, 'step_index': {'type': 'integer', 'maximum': 19, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'ShareRevoke', 'required': ['request_id', 'share_id'], 'properties': {'share_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'expires_in_days': {'type': 'integer', 'maximum': 365, 'minimum': 1, 'description': 'Lifetime of the replacement key in days (default 90).'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['set_id', 'baseline_session_id'], 'properties': {'set_id': {'type': 'string', 'format': 'uuid'}, 'baseline_session_id': {'type': 'string', 'maxLength': 64, 'minLength': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['query'], 'properties': {'model': {'type': 'string', 'description': "Model to use (e.g., 'claude-sonnet-4-6', 'gpt-4o', 'deepseek-chat'). Omit to use user's default."}, 'panel': {'type': 'string', 'description': "Panel slug to use (e.g., 'default', 'technology', 'healthcare'). Use 'auto' for automatic panel selection. Omit to use default panel."}, 'query': {'type': 'string', 'description': 'The question or decision to analyze'}, 'wait_seconds': {'type': 'integer', 'default': 0, 'maximum': 90, 'minimum': 0, 'description': 'Optional synchronous wait (0-90 seconds). Default 0 returns the session id immediately, avoiding reverse-proxy timeouts.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['workflow', 'query'], 'properties': {'query': {'type': 'string', 'description': "The input to run the pipeline on. Be specific, e.g. 'Analyze NVDA as an investment'."}, 'workflow': {'type': 'string', 'description': "The workflow slug (from list_workflows), e.g. 'live_market_pipeline', 'due_diligence', 'coding_tdd'."}, 'parameters': {'type': 'object', 'description': 'Values for the workflow\'s declared parameters, as a flat name-to-value object, e.g. {"region": "EU"}. Omitted names use their declared defaults. Workflows that declare no parameters take none.'}, 'step_models': {'type': 'object', 'description': 'Per-run model choices, keyed by zero-based step index, exactly as supplied to plan_workflow. IDs are catalog-validated; existing key, tier and platform fallback rules still apply. These choices must also match when recovering a start with an idempotency key.', 'additionalProperties': {'type': 'string'}}, 'wait_seconds': {'type': 'integer', 'default': 0, 'maximum': 90, 'minimum': 0, 'description': 'Optional synchronous wait; default 0 returns immediately.'}, 'idempotency_key': {'type': 'string', 'description': 'Caller-supplied key: sending the same key again returns the run that already exists instead of starting a second, paid run. Use a stable key derived from your own request so an uncertain retry converges. Max 120 chars, [A-Za-z0-9._:-].'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'Save', 'required': ['request_id', 'definition', 'expected_preview_hash'], 'properties': {'rule_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Rule Id', 'default': None}, 'definition': {'type': 'object', 'title': 'Definition', 'required': ['name', 'selector', 'quiet_hours', 'destinations', 'stages'], 'properties': {'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}, 'stages': {'type': 'array', 'items': {'type': 'object', 'title': 'Stage', 'required': ['key', 'name', 'after_minutes', 'destination_key'], 'properties': {'key': {'type': 'string', 'title': 'Key', 'pattern': '^[a-z][a-z0-9_-]{0,31}$', 'maxLength': 32, 'minLength': 1}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}, 'after_minutes': {'type': 'integer', 'title': 'After Minutes', 'maximum': 10080, 'minimum': 0}, 'destination_key': {'type': 'string', 'title': 'Destination Key', 'pattern': '^[a-z][a-z0-9_-]{0,31}$', 'maxLength': 32, 'minLength': 1}}, 'additionalProperties': False}, 'title': 'Stages', 'maxItems': 5, 'minItems': 1}, 'selector': {'type': 'object', 'title': 'Selector', 'required': ['reader', 'reasons', 'priorities', 'review_state', 'saved_view'], 'properties': {'reader': {'enum': ['attention', 'due_followups'], 'type': 'string', 'title': 'Reader'}, 'reasons': {'type': 'array', 'items': {'enum': ['stale', 'aging', 'blocked', 'dependency_blocked', 'completion_blocked', 'missed_due_date', 'integration_drift', 'forecast_degradation'], 'type': 'string'}, 'title': 'Reasons'}, 'priorities': {'type': 'array', 'items': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'title': 'Priorities', 'maxItems': 4, 'minItems': 1}, 'saved_view': {'anyOf': [{'type': 'object', 'title': 'SavedSelection', 'required': ['id', 'definition_token'], 'properties': {'id': {'type': 'string', 'title': 'Id', 'format': 'uuid'}, 'definition_token': {'type': 'string', 'title': 'Definition Token', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}}, 'additionalProperties': False}, {'type': 'null'}]}, 'review_state': {'enum': ['unresolved', 'resolved', 'all'], 'type': 'string', 'title': 'Review State'}}, 'additionalProperties': False}, 'quiet_hours': {'anyOf': [{'type': 'object', 'title': 'QuietHours', 'required': ['timezone', 'windows'], 'properties': {'windows': {'type': 'array', 'items': {'type': 'object', 'title': 'QuietWindow', 'required': ['days', 'start_minute', 'end_minute'], 'properties': {'days': {'type': 'array', 'items': {'type': 'integer'}, 'title': 'Days', 'maxItems': 7, 'minItems': 1}, 'end_minute': {'type': 'integer', 'title': 'End Minute', 'maximum': 1439, 'minimum': 0}, 'start_minute': {'type': 'integer', 'title': 'Start Minute', 'maximum': 1439, 'minimum': 0}}, 'additionalProperties': False}, 'title': 'Windows'}, 'timezone': {'type': 'string', 'title': 'Timezone', 'minLength': 1}}, 'additionalProperties': False}, {'type': 'null'}]}, 'destinations': {'type': 'array', 'items': {'type': 'object', 'title': 'Destination', 'required': ['key', 'name', 'url'], 'properties': {'key': {'type': 'string', 'title': 'Key', 'pattern': '^[a-z][a-z0-9_-]{0,31}$', 'maxLength': 32, 'minLength': 1}, 'url': {'type': 'string', 'title': 'Url', 'minLength': 1}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}, 'title': 'Destinations', 'maxItems': 3, 'minItems': 1}}, 'additionalProperties': False}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'expected_revision': {'anyOf': [{'type': 'integer', 'maximum': 2147483646, 'minimum': 1}, {'type': 'null'}], 'title': 'Expected Revision', 'default': None}, 'rotate_destinations': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}], 'title': 'Rotate Destinations', 'default': None}, 'expected_preview_hash': {'type': 'string', 'title': 'Expected Preview Hash', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'allOf': [{'if': {'properties': {'mode': {'const': 'override'}}}, 'else': {'properties': {'policy': {'type': 'null'}}}, 'then': {'required': ['policy'], 'properties': {'policy': {'type': 'object', 'required': ['thresholds', 'status_overrides', 'paused_statuses'], 'properties': {'thresholds': {'type': 'object', 'required': ['stale', 'aging', 'blocked', 'dependency_blocked'], 'properties': {'aging': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'paused_statuses': {'type': 'object', 'required': ['stale', 'aging', 'blocked', 'dependency_blocked'], 'properties': {'aging': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'stale': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'blocked': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'dependency_blocked': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}}, 'additionalProperties': False}, 'status_overrides': {'type': 'object', 'required': [], 'properties': {'todo': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'backlog': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'in_review': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'in_progress': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}}}}], 'title': 'ProjectPolicySave', 'required': ['project_id', 'expected_revision', 'idempotency_key', 'mode'], 'properties': {'mode': {'enum': ['inherit', 'override'], 'type': 'string', 'title': 'Mode'}, 'policy': {'anyOf': [{'type': 'object', 'required': ['thresholds', 'status_overrides', 'paused_statuses'], 'properties': {'thresholds': {'type': 'object', 'required': ['stale', 'aging', 'blocked', 'dependency_blocked'], 'properties': {'aging': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'paused_statuses': {'type': 'object', 'required': ['stale', 'aging', 'blocked', 'dependency_blocked'], 'properties': {'aging': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'stale': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'blocked': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'dependency_blocked': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}}, 'additionalProperties': False}, 'status_overrides': {'type': 'object', 'required': [], 'properties': {'todo': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'backlog': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'in_review': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'in_progress': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, {'type': 'null'}], 'title': 'Policy', 'default': None}, 'project_id': {'type': 'string', 'format': 'uuid'}, 'idempotency_key': {'type': 'string', 'title': 'Idempotency Key', 'pattern': '^[A-Za-z0-9_.:-]{8,128}$', 'maxLength': 128, 'minLength': 8}, 'expected_revision': {'type': 'integer', 'title': 'Expected Revision', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['expected_revision', 'idempotency_key', 'policy'], 'properties': {'policy': {'type': 'object', 'required': ['thresholds', 'status_overrides'], 'properties': {'thresholds': {'type': 'object', 'required': ['stale', 'aging', 'blocked', 'dependency_blocked'], 'properties': {'aging': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': ['critical', 'high', 'medium', 'low'], 'properties': {'low': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'high': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'medium': {'type': 'number', 'maximum': 3650, 'minimum': 0}, 'critical': {'type': 'number', 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'paused_statuses': {'type': 'object', 'required': ['stale', 'aging', 'blocked', 'dependency_blocked'], 'properties': {'aging': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'stale': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'blocked': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}, 'dependency_blocked': {'type': 'array', 'items': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'maxItems': 7, 'uniqueItems': True}}, 'additionalProperties': False}, 'status_overrides': {'type': 'object', 'required': [], 'properties': {'todo': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'backlog': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'in_review': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'in_progress': {'type': 'object', 'required': [], 'properties': {'aging': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'stale': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'dependency_blocked': {'type': 'object', 'required': [], 'properties': {'low': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'high': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'medium': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}, 'critical': {'type': ['number', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_.:-]{8,128}$', 'maxLength': 128, 'minLength': 8}, 'expected_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'expected_evidence_digest', 'expected_review_revision', 'idempotency_key'], 'properties': {'note': {'type': ['string', 'null'], 'maxLength': 2000}, 'ticket_id': {'type': 'string', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$', 'maxLength': 36, 'minLength': 36}, 'follow_up_date': {'type': ['string', 'null'], 'pattern': '^[0-9]{4}-[0-9]{2}-[0-9]{2}$'}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_.:-]{8,128}$', 'maxLength': 128, 'minLength': 8}, 'follow_up_timezone': {'type': ['string', 'null'], 'maxLength': 100, 'minLength': 1}, 'expected_evidence_digest': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'expected_review_revision': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'request_id', 'expected_version', 'plan'], 'properties': {'plan': {'type': ['object', 'null'], 'required': ['planned_start', 'due_date', 'estimated_duration_days', 'timezone', 'calendar', 'milestone'], 'properties': {'calendar': {'enum': [None, 'calendar_days', 'weekdays']}, 'due_date': {'type': ['string', 'null'], 'format': 'date'}, 'timezone': {'type': ['string', 'null'], 'maxLength': 64, 'minLength': 1}, 'milestone': {'type': 'boolean'}, 'planned_start': {'type': ['string', 'null'], 'format': 'date'}, 'estimated_duration_days': {'type': ['integer', 'null'], 'maximum': 3650, 'minimum': 0}}, 'additionalProperties': False}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'request_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'maximum': 2147483646, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['case'], 'properties': {'case': {'type': 'string', 'description': 'The anonymized clinical case text (presentation, history, substance use, functional status, environment, engagement).'}, 'model': {'type': 'string', 'description': 'Optional model override; omit for the platform default.'}, 'wait_seconds': {'type': 'integer', 'default': 0, 'maximum': 90, 'minimum': 0, 'description': 'Optional synchronous wait; default 0 returns immediately.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'Max leads to return (default 20, max 100).'}, 'search': {'type': 'string', 'description': 'Text to match against company / contact name / title / email.'}, 'status': {'type': 'string', 'description': "Filter by pipeline status (e.g. 'ready', 'sent', 'replied')."}, 'campaign_id': {'type': 'string', 'description': 'Filter to a single campaign id.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['invoice_id'], 'properties': {'invoice_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'SenderStateRequest', 'required': ['campaign_id', 'sender_state', 'sender_state_checked_at'], 'properties': {'campaign_id': {'type': 'string', 'format': 'uuid'}, 'sender_state': {'type': 'string', 'title': 'Sender State', 'maxLength': 24, 'minLength': 1}, 'sender_state_checked_at': {'type': 'string', 'title': 'Sender State Checked At', 'format': 'date-time'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id', 'team_id'], 'properties': {'team_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'The id of a team you belong to. Sharing with a team you are not a member of is refused.'}, 'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['workflow', 'query', 'request_id'], 'properties': {'query': {'type': 'string', 'pattern': '\\S', 'maxLength': 24000, 'minLength': 1}, 'workflow': {'enum': ['email_lead_pipeline_evidence', 'sales_pipeline_evidence', 'lead_outreach_tracker_evidence', 'client_proposal_generator_evidence']}, 'request_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deliverable_id'], 'properties': {'deliverable_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['session_id', 'step_index', 'input_sha', 'output', 'model_label'], 'properties': {'output': {'type': 'string', 'pattern': '\\S', 'maxLength': 16000, 'minLength': 1}, 'input_sha': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'session_id': {'type': 'string', 'format': 'uuid'}, 'step_index': {'type': 'integer', 'maximum': 19, 'minimum': 0}, 'model_label': {'type': 'string', 'pattern': '\\S', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['title'], 'properties': {'body': {'type': 'string', 'maxLength': 8000}, 'title': {'type': 'string', 'maxLength': 300}, 'context': {'type': 'object', 'description': 'Machine context: tool name, session id, model, timings.'}, 'category': {'enum': ['performance', 'missing_feature', 'bug', 'ux', 'docs', 'general'], 'type': 'string'}, 'severity': {'enum': ['blocker', 'major', 'minor', 'suggestion'], 'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['snapshot_id', 'replacement_id', 'reason', 'idempotency_key', 'expected_source_hash', 'expected_replacement_hash'], 'properties': {'reason': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'snapshot_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'replacement_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'idempotency_key': {'type': 'string', 'pattern': '^[A-Za-z0-9_.:-]{8,128}$', 'maxLength': 128, 'minLength': 8}, 'expected_source_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}, 'expected_replacement_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'maxLength': 64, 'minLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['run_id', 'expected_plan_hash'], 'properties': {'run_id': {'type': 'string', 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'expected_plan_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'Exact plan_hash returned by preview_accounting_ticket_sync.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['workflow', 'step_index'], 'properties': {'query': {'type': 'string', 'description': 'The input the step works on, exactly as you would pass it to run_workflow. Optional -- omit for a step whose instruction already carries everything it needs.'}, 'workflow': {'type': 'string', 'description': "The workflow slug (from list_workflows), e.g. 'due_diligence'."}, 'parameters': {'type': 'object', 'description': 'Optional values for the workflow\'s declared parameters, as a flat name-to-value object, e.g. {"region": "EU"}. They are substituted into the step wording the same way a real run substitutes them.', 'additionalProperties': True}, 'step_index': {'type': 'integer', 'description': 'Which step to run, counting from 0. A workflow with 4 steps accepts 0 to 3; anything else is refused without spending.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'action': {'enum': ['archive', 'restore'], 'type': 'string', 'default': 'archive'}, 'ticket_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'allOf': [{'if': {'required': ['mode'], 'properties': {'mode': {'const': 'commit'}}}, 'then': {'required': ['preview_token']}}], 'required': ['mode', 'idempotency_key', 'tickets'], 'properties': {'mode': {'enum': ['preview', 'commit'], 'type': 'string'}, 'tickets': {'type': 'array', 'items': {'type': 'object', 'required': ['ref', 'title'], 'properties': {'ref': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9._:/-]{0,99}$', 'maxLength': 100, 'minLength': 1}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'effort': {'enum': ['trivial', 'small', 'medium', 'large', 'epic', None], 'type': ['string', 'null']}, 'labels': {'type': ['array', 'null'], 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 20}, 'status': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string', 'description': 'Terminal task states are allowed; an explicit or legacy-inferred epic cannot start done.'}, 'assignee': {'type': ['string', 'null'], 'maxLength': 100}, 'priority': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'session_id': {'type': ['string', 'null'], 'maxLength': 64}, 'subtickets': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 50}, 'action_type': {'enum': ['strategy', 'implementation', 'research', 'validation', 'testing', 'coordination', None], 'type': ['string', 'null']}, 'description': {'type': 'string', 'maxLength': 20000}, 'ticket_type': {'enum': ['task', 'epic', None], 'type': ['string', 'null'], 'description': "Immutable ticket kind. When omitted, legacy effort='epic' inference remains supported."}, 'external_ref': {'type': ['object', 'null'], 'maxProperties': 19, 'propertyNames': {'maxLength': 40}, 'additionalProperties': {'type': 'string', 'maxLength': 200}}, 'effort_points': {'type': ['integer', 'null']}, 'acceptance_criteria': {'type': ['string', 'null'], 'maxLength': 10000}, 'workflow_session_id': {'type': ['string', 'null'], 'maxLength': 64}}, 'additionalProperties': False}, 'maxItems': 50, 'minItems': 1}, 'parent_id': {'type': ['string', 'null'], 'format': 'uuid', 'maxLength': 36, 'minLength': 36}, 'preview_token': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'Exact preview_token returned by preview mode.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[!-~]+$', 'maxLength': 128, 'minLength': 1, 'description': 'Caller-stable visible-ASCII key. Reuse only for the exact same operation and payload.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'assignee'], 'properties': {'force': {'type': 'boolean', 'description': 'Take over a ticket another agent holds.'}, 'assignee': {'type': 'string', 'maxLength': 100, 'description': "Your agent name, e.g. 'claude_code_local'."}, 'ticket_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'body'], 'properties': {'body': {'type': 'string', 'maxLength': 10000, 'description': 'Comment text (Markdown ok). Lead with a plain-language summary: what changed as observable behaviour, and what still needs a human decision — or say plainly that nothing does. Keep SHAs, paths and symbol names out of that opening; put them in the detail below it.'}, 'kind': {'enum': ['comment', 'progress'], 'type': 'string'}, 'ticket_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'maxLength': 300}, 'effort': {'enum': ['trivial', 'small', 'medium', 'large', 'epic'], 'type': 'string'}, 'labels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20}, 'status': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string', 'description': 'New epics cannot be created already done; task statuses use the lifecycle authority.'}, 'assignee': {'type': 'string', 'maxLength': 100}, 'priority': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'parent_id': {'type': 'string', 'description': 'Parent ticket UUID.'}, 'session_id': {'type': 'string', 'maxLength': 64}, 'action_type': {'enum': ['strategy', 'implementation', 'research', 'validation', 'testing', 'coordination'], 'type': 'string'}, 'description': {'type': 'string', 'maxLength': 20000, 'description': 'Open with one plain sentence saying what needs to happen and why it matters, for someone picking this up cold; put specifics and jargon after it.'}, 'order_index': {'type': 'integer', 'maximum': 100000, 'minimum': 0}, 'ticket_type': {'enum': ['task', 'epic', None], 'type': ['string', 'null'], 'description': 'Immutable ticket kind; omit or use null to infer from effort.'}, 'external_ref': {'type': 'object', 'maxProperties': 20, 'propertyNames': {'maxLength': 40, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 200}}, 'effort_points': {'type': 'integer', 'maximum': 1000000, 'minimum': 0}, 'acceptance_criteria': {'type': 'string', 'maxLength': 10000}, 'workflow_session_id': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'depends_on_ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}, 'depends_on_ticket_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}, 'include_removed': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'dependency_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}, 'dependency_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['label_id'], 'properties': {'label_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': [], 'properties': {'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['label_id'], 'properties': {'color': {'type': ['string', 'null'], 'pattern': '^#[0-9A-Fa-f]{6}$'}, 'archived': {'type': 'boolean'}, 'label_id': {'type': 'string', 'format': 'uuid'}, 'group_key': {'type': ['string', 'null'], 'maxLength': 50}, 'description': {'type': ['string', 'null'], 'maxLength': 500}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['name'], 'properties': {'name': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'color': {'type': ['string', 'null'], 'pattern': '^#[0-9A-Fa-f]{6}$'}, 'group_key': {'type': ['string', 'null'], 'maxLength': 50}, 'description': {'type': ['string', 'null'], 'maxLength': 500}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'properties': {'q': {'type': 'string', 'maxLength': 200}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'scope': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': "Archived tickets are out of the working set and hidden by default. Archiving never changed their status, so an archived ticket listed under scope='archived' still shows the status it had."}, 'cursor': {'type': 'string', 'maxLength': 2048, 'minLength': 1}, 'status': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'assignee': {'type': 'string', 'maxLength': 100}, 'priority': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'parent_id': {'type': 'string', 'description': "Parent ticket UUID, or 'none' for roots only."}, 'recursive': {'type': 'boolean'}, 'labels_all': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 20}, 'labels_any': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 20}, 'session_id': {'type': 'string', 'maxLength': 64}, 'action_type': {'enum': ['strategy', 'implementation', 'research', 'validation', 'testing', 'coordination'], 'type': 'string'}, 'labels_none': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 20}, 'output_format': {'enum': ['markdown', 'json'], 'type': 'string', 'default': 'markdown'}, 'workflow_session_id': {'type': 'string', 'maxLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'allOf': [{'if': {'required': ['mode'], 'properties': {'mode': {'const': 'commit'}}}, 'then': {'required': ['plan', 'preview_token']}}], 'required': ['mode', 'idempotency_key', 'prompt'], 'properties': {'mode': {'enum': ['preview', 'commit'], 'type': 'string'}, 'plan': {'type': 'object', 'required': ['tickets'], 'properties': {'summary': {'type': ['string', 'null'], 'maxLength': 2000}, 'tickets': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'effort': {'enum': ['trivial', 'small', 'medium', 'large', 'epic', None], 'type': ['string', 'null']}, 'labels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 10}, 'assignee': {'type': ['string', 'null'], 'maxLength': 100}, 'priority': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'subtickets': {'type': 'array', 'items': {'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'effort': {'enum': ['trivial', 'small', 'medium', 'large', 'epic', None], 'type': ['string', 'null']}, 'labels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 10}, 'assignee': {'type': ['string', 'null'], 'maxLength': 100}, 'priority': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'subtickets': {'type': 'array', 'maxItems': 0}, 'action_type': {'enum': ['strategy', 'implementation', 'research', 'validation', 'testing', 'coordination', None], 'type': ['string', 'null']}, 'description': {'type': ['string', 'null'], 'maxLength': 20000}, 'acceptance_criteria': {'type': ['string', 'null'], 'maxLength': 10000}, 'assignee_suggestion': {'type': ['string', 'null'], 'maxLength': 100}}, 'additionalProperties': False}, 'maxItems': 30}, 'action_type': {'enum': ['strategy', 'implementation', 'research', 'validation', 'testing', 'coordination', None], 'type': ['string', 'null']}, 'description': {'type': ['string', 'null'], 'maxLength': 20000}, 'acceptance_criteria': {'type': ['string', 'null'], 'maxLength': 10000}, 'assignee_suggestion': {'type': ['string', 'null'], 'maxLength': 100}}, 'additionalProperties': False}, 'maxItems': 30, 'minItems': 1}, 'behavior': {'type': ['string', 'null'], 'maxLength': 2000}, 'plan_title': {'type': ['string', 'null'], 'maxLength': 300}}, 'additionalProperties': False}, 'model': {'type': 'string', 'maxLength': 100}, 'prompt': {'type': 'string', 'maxLength': 8000, 'minLength': 1}, 'context': {'type': ['string', 'null'], 'maxLength': 8000}, 'session_id': {'type': ['string', 'null'], 'maxLength': 64}, 'auto_assign': {'type': 'boolean'}, 'max_tickets': {'type': 'integer', 'maximum': 30, 'minimum': 1}, 'preview_token': {'type': 'string', 'pattern': '^[0-9a-f]{64}$', 'description': 'Exact preview_token returned by preview mode.'}, 'idempotency_key': {'type': 'string', 'pattern': '^[!-~]+$', 'maxLength': 128, 'minLength': 1, 'description': 'Caller-stable visible-ASCII key. Reuse only for the exact same operation and payload.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$', 'maxLength': 36, 'minLength': 36}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'name', 'given_steps', 'when_steps', 'then_steps'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'required': {'type': 'boolean'}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'then_steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered clause steps; blank-only steps are rejected.'}, 'when_steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered clause steps; blank-only steps are rejected.'}, 'given_steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered clause steps; blank-only steps are rejected.'}, 'order_index': {'type': 'integer', 'maximum': 100000, 'minimum': 0}, 'scenario_key': {'type': ['string', 'null'], 'maxLength': 64}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'ticket_id': {'type': 'string', 'format': 'uuid'}, 'include_archived': {'type': 'boolean'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'scenario_id', 'expected_version', 'name', 'given_steps', 'when_steps', 'then_steps'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'then_steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered clause steps; blank-only steps are rejected.'}, 'when_steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered clause steps; blank-only steps are rejected.'}, 'given_steps': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 50, 'minItems': 1, 'description': 'Ordered clause steps; blank-only steps are rejected.'}, 'scenario_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'status'], 'properties': {'status': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string'}, 'ticket_id': {'type': 'string', 'format': 'uuid', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'}, 'expected_completed_at': {'type': 'string', 'format': 'date-time', 'pattern': '^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,6})?(?:Z|[+-]\\d{2}:\\d{2})$', 'maxLength': 40}, 'completion_idempotency_key': {'type': 'string', 'pattern': '^[!-~]+$', 'maxLength': 128, 'minLength': 1}, 'expected_completion_record_id': {'type': 'string', 'format': 'uuid', 'pattern': '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id'], 'properties': {'title': {'type': 'string', 'maxLength': 300}, 'effort': {'enum': ['trivial', 'small', 'medium', 'large', 'epic'], 'type': 'string'}, 'labels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50}, 'maxItems': 20}, 'status': {'enum': ['backlog', 'todo', 'in_progress', 'blocked', 'in_review', 'done', 'cancelled'], 'type': 'string', 'description': 'Task moves are audited. Epic done or terminal reopen requires an explicit lifecycle operation with retry/version evidence.'}, 'assignee': {'type': 'string', 'maxLength': 100}, 'priority': {'enum': ['critical', 'high', 'medium', 'low'], 'type': 'string'}, 'parent_id': {'type': 'string', 'format': 'uuid'}, 'ticket_id': {'type': 'string'}, 'labels_add': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 20}, 'session_id': {'type': 'string', 'maxLength': 64}, 'action_type': {'enum': ['strategy', 'implementation', 'research', 'validation', 'testing', 'coordination'], 'type': 'string'}, 'description': {'type': 'string', 'maxLength': 20000}, 'order_index': {'type': 'integer', 'maximum': 100000, 'minimum': 0}, 'clear_parent': {'type': 'boolean'}, 'external_ref': {'type': 'object', 'maxProperties': 20, 'propertyNames': {'maxLength': 40, 'minLength': 1}, 'additionalProperties': {'type': 'string', 'maxLength': 200}}, 'clear_session': {'type': 'boolean'}, 'effort_points': {'type': 'integer', 'maximum': 1000000, 'minimum': 0}, 'labels_remove': {'type': 'array', 'items': {'type': 'string', 'maxLength': 50, 'minLength': 1}, 'maxItems': 20}, 'acceptance_criteria': {'type': 'string', 'maxLength': 10000}, 'clear_effort_points': {'type': 'boolean'}, 'workflow_session_id': {'type': 'string', 'maxLength': 64}, 'clear_workflow_session': {'type': 'boolean'}, 'expected_label_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['ticket_id', 'scenario_id', 'scenario_version', 'scenario_hash', 'verdict', 'runner', 'environment', 'source_revision', 'evidence', 'idempotency_key'], 'properties': {'runner': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'summary': {'type': ['string', 'null'], 'maxLength': 10000}, 'verdict': {'enum': ['passed', 'failed', 'skipped', 'blocked'], 'type': 'string'}, 'evidence': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'payload'], 'properties': {'kind': {'enum': ['assertion', 'artifact', 'log', 'metric', 'link'], 'type': 'string'}, 'payload': {'type': 'object'}}, 'additionalProperties': False}, 'maxItems': 100}, 'ticket_id': {'type': 'string', 'format': 'uuid'}, 'environment': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'scenario_id': {'type': 'string', 'format': 'uuid'}, 'scenario_hash': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'idempotency_key': {'type': 'string', 'pattern': '^[!-~]+$', 'maxLength': 128, 'minLength': 1}, 'source_revision': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'scenario_version': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['feedback_id'], 'properties': {'status': {'enum': ['new', 'triaged', 'planned', 'resolved', 'dismissed'], 'type': 'string'}, 'admin_notes': {'type': 'string', 'maxLength': 8000, 'description': 'Triage notes; an empty string clears them.'}, 'feedback_id': {'type': 'string', 'description': 'Full feedback UUID from list_meta_council_feedback.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['client_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'notes': {'type': 'string', 'maxLength': 50000}, 'status': {'enum': ['active', 'inactive'], 'type': 'string'}, 'client_id': {'type': 'string', 'format': 'uuid'}, 'contact_name': {'type': 'string', 'maxLength': 200}, 'organization': {'type': 'string', 'maxLength': 200}, 'contact_email': {'type': 'string', 'maxLength': 255}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deliverable_id'], 'properties': {'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'due_date': {'type': 'string', 'format': 'date'}, 'description': {'type': 'string', 'maxLength': 50000}, 'milestone_id': {'type': 'string', 'format': 'uuid'}, 'deliverable_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['document_id'], 'properties': {'body': {'type': 'string', 'maxLength': 50000, 'minLength': 1}, 'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'document_id': {'type': 'string', 'format': 'uuid'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['engagement_id'], 'properties': {'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'status': {'enum': ['draft', 'active', 'on_hold', 'completed', 'cancelled'], 'type': 'string'}, 'client_id': {'type': 'string', 'format': 'uuid'}, 'objective': {'type': 'string', 'maxLength': 50000}, 'start_date': {'type': 'string', 'format': 'date'}, 'engagement_id': {'type': 'string', 'format': 'uuid'}, 'sales_deal_ref': {'type': 'string', 'maxLength': 240}, 'target_end_date': {'type': 'string', 'format': 'date'}, 'accounting_run_ref': {'type': 'string', 'maxLength': 240}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['milestone_id', 'expected_version'], 'properties': {'title': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'status': {'enum': ['planned', 'in_progress', 'blocked', 'done'], 'type': 'string'}, 'due_date': {'type': 'string', 'format': 'date'}, 'description': {'type': 'string', 'maxLength': 50000}, 'order_index': {'type': 'integer', 'maximum': 10000, 'minimum': 0}, 'milestone_id': {'type': 'string', 'format': 'uuid'}, 'expected_version': {'type': 'integer', 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['asset_id'], 'properties': {'title': {'type': 'string', 'maxLength': 240, 'minLength': 1}, 'channel': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'content': {'type': 'string', 'maxLength': 100000, 'minLength': 1}, 'asset_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'asset_type': {'type': 'string', 'maxLength': 40, 'minLength': 1}, 'scheduled_for': {'type': 'string', 'format': 'date-time'}, 'revision_notes': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['deal_id'], 'properties': {'notes': {'type': 'string'}, 'stage': {'enum': ['qualification', 'discovery', 'proposal', 'negotiation', 'closed_won', 'closed_lost'], 'type': 'string'}, 'title': {'type': 'string', 'maxLength': 200}, 'amount': {'type': 'number', 'maximum': 999999999999, 'minimum': 0}, 'company': {'type': 'string', 'maxLength': 200}, 'deal_id': {'type': 'string'}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Exactly three ASCII letters, such as USD; saved uppercase. Omit to keep the current currency. Syntax only, not an ISO registry.'}, 'probability': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'expected_close_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['invoice_id'], 'properties': {'notes': {'type': 'string', 'maxLength': 10000}, 'currency': {'type': 'string', 'pattern': '^[A-Za-z]{3}$', 'maxLength': 3, 'minLength': 3, 'description': 'Three ASCII letters; normalized to uppercase. ISO membership is not checked.'}, 'due_date': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}, 'tax_rate': {'type': 'number', 'maximum': 100, 'minimum': 0}, 'invoice_id': {'type': 'string'}, 'client_name': {'type': 'string', 'maxLength': 200}, 'client_email': {'type': 'string', 'maxLength': 320}, 'payment_terms': {'type': 'string', 'maxLength': 100}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['audience_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'channels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 20}, 'audience_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'description': {'type': 'string', 'maxLength': 20000}, 'pain_points': {'type': 'string', 'maxLength': 20000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['brand_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'voice': {'type': 'string', 'maxLength': 10000}, 'brand_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'guidelines': {'type': 'string', 'maxLength': 20000}, 'value_proposition': {'type': 'string', 'maxLength': 10000}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['campaign_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'status': {'enum': ['draft', 'planned', 'active', 'paused', 'completed', 'archived'], 'type': 'string'}, 'ends_on': {'type': 'string', 'format': 'date'}, 'brand_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'channels': {'type': 'array', 'items': {'type': 'string', 'maxLength': 40}, 'maxItems': 20}, 'objective': {'type': 'string', 'maxLength': 20000}, 'starts_on': {'type': 'string', 'format': 'date'}, 'audience_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}, 'campaign_id': {'type': 'string', 'description': 'Full UUID from the matching list tool.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['lead_id'], 'properties': {'notes': {'type': 'string', 'description': 'Optional free-text notes.'}, 'status': {'type': 'string', 'description': "New pipeline status (e.g. 'ready', 'sent', 'replied', 'closed_won', 'closed_lost')."}, 'lead_id': {'type': 'string', 'description': 'Lead id to update (from search_outreach_leads).'}, 'pitch_id': {'type': 'string', 'description': 'Optional pitch id to attach to the lead.'}, 'response_text': {'type': 'string', 'description': 'Optional recorded reply text.'}, 'response_type': {'type': 'string', 'description': "Optional reply classification (e.g. 'positive', 'negative', 'neutral')."}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'title': 'ScheduleUpdate', 'required': ['request_id', 'definition', 'expected_revision', 'schedule_id'], 'properties': {'definition': {'type': 'object', 'title': 'ScheduleDefinition', 'required': ['name', 'frequency', 'timezone', 'hour', 'minute'], 'properties': {'hour': {'type': 'integer', 'title': 'Hour', 'maximum': 23, 'minimum': 0}, 'name': {'type': 'string', 'title': 'Name', 'maxLength': 200, 'minLength': 1}, 'minute': {'type': 'integer', 'title': 'Minute', 'maximum': 59, 'minimum': 0}, 'enabled': {'type': 'boolean', 'title': 'Enabled', 'default': False}, 'weekday': {'anyOf': [{'type': 'integer', 'maximum': 6, 'minimum': 0}, {'type': 'null'}], 'title': 'Weekday', 'default': None}, 'archived': {'type': 'boolean', 'title': 'Archived', 'default': False}, 'monthday': {'anyOf': [{'type': 'integer', 'maximum': 31, 'minimum': 1}, {'type': 'null'}], 'title': 'Monthday', 'default': None}, 'timezone': {'type': 'string', 'title': 'Timezone', 'maxLength': 100, 'minLength': 1}, 'frequency': {'enum': ['daily', 'weekly', 'monthly'], 'type': 'string', 'title': 'Frequency'}, 'project_id': {'anyOf': [{'type': 'string', 'format': 'uuid'}, {'type': 'null'}], 'title': 'Project Id', 'default': None, 'description': 'Owned project UUID from project_list. Omit or pass null for a portfolio-wide schedule; project identity is frozen in each capture.'}}, 'additionalProperties': False}, 'request_id': {'type': 'string', 'title': 'Request Id', 'format': 'uuid'}, 'schedule_id': {'type': 'string', 'format': 'uuid'}, 'expected_revision': {'type': 'integer', 'title': 'Expected Revision', 'maximum': 2147483646, 'minimum': 1}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['view_id'], 'properties': {'name': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'New name for the view.'}, 'columns': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 20, 'description': 'Replacement column list, in order. At most 20.'}, 'filters': {'type': 'object', 'properties': {'q': {'type': 'string', 'description': 'Saved-view filter: q.'}, 'kind': {'type': 'string', 'description': 'Saved-view filter: kind.'}, 'scope': {'enum': ['active', 'archived', 'all'], 'type': 'string', 'default': 'active', 'description': 'Saved-view filter: scope.'}, 'state': {'enum': [None, 'unresolved', 'resolved', 'all'], 'type': ['string', 'null'], 'description': 'Saved-view filter: state.'}, 'reader': {'enum': ['tickets', 'attention', 'reviewed_attention'], 'type': 'string', 'default': 'tickets', 'description': 'Saved-view filter: reader.'}, 'reason': {'enum': [None, 'stale', 'aging', 'blocked', 'dependency_blocked', 'completion_blocked', 'missed_due_date', 'integration_drift', 'forecast_degradation'], 'type': ['string', 'null'], 'description': 'Saved-view filter: reason.'}, 'status': {'type': 'string', 'description': 'Saved-view filter: status.'}, 'assignee': {'type': 'string', 'description': 'Saved-view filter: assignee.'}, 'priority': {'type': 'string', 'description': 'Saved-view filter: priority.'}, 'follow_up': {'enum': [None, 'all', 'due'], 'type': ['string', 'null'], 'description': 'Saved-view filter: follow_up.'}, 'parent_id': {'type': 'string', 'description': 'Saved-view filter: parent_id.'}, 'recursive': {'type': 'boolean', 'description': 'Saved-view filter: recursive.'}, 'session_id': {'type': 'string', 'description': 'Saved-view filter: session_id.'}, 'action_type': {'type': 'string', 'description': 'Saved-view filter: action_type.'}, 'workflow_session_id': {'type': 'string', 'description': 'Saved-view filter: workflow_session_id.'}}, 'description': 'Saved question. Omitted reader selects ordinary tickets. Attention accepts reason; reviewed_attention accepts state and follow_up. Triage refuses other non-default ticket filters, grouping and sorting. Save intent only, never result pages.', 'additionalProperties': False}, 'sort_by': {'type': ['string', 'null'], 'description': 'New sorting field; null clears it. Clear explicit grouping and sorting when switching to triage.'}, 'view_id': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': "The view's id, from list_saved_views."}, 'group_by': {'type': ['string', 'null'], 'description': 'New grouping field; null clears it. Clear explicit grouping and sorting when switching to triage.'}, 'sort_dir': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'New sort direction.'}, 'scorecard': {'type': ['object', 'null'], 'required': ['version', 'preset', 'cards'], 'properties': {'cards': {'type': 'array', 'items': {'type': 'object', 'required': ['metric', 'threshold'], 'properties': {'metric': {'enum': ['total', 'open', 'todo', 'in_progress', 'blocked', 'done', 'cancelled'], 'type': 'string'}, 'threshold': {'type': ['object', 'null'], 'required': ['operator', 'value'], 'properties': {'value': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0}, 'operator': {'enum': ['gte', 'lte'], 'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'maxItems': 7, 'minItems': 1}, 'preset': {'enum': ['custom', 'executive', 'pmo', 'manager'], 'type': 'string'}, 'version': {'type': 'integer', 'const': 1}}, 'description': 'Optional private ordinary live ticket counts; omit to retain, null to clear while retaining a nonzero revision. At most 10000 matching tickets, no actions or role grants. Shared and triage definitions cannot enroll.', 'additionalProperties': False}, 'expected_revision': {'type': 'integer', 'maximum': 2147483647, 'minimum': 0, 'description': 'Current definition_revision, required to configure a scorecard or change any previously enrolled view. On conflict or uncertain reply, read current state and deliberately reconcile; this is not an exact-retry receipt.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['slug'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': 'Template name after the update.'}, 'slug': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Slug of the template to replace, from list_workflows.'}, 'tags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 20, 'description': 'Tags after the update.'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'allOf': [{'not': {'required': ['id', 'step_id']}}], 'required': ['name', 'agent_template'], 'properties': {'id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Optional stable identifier for this step. Supply one only if another step names it in depends_on.'}, 'name': {'type': 'string', 'maxLength': 120, 'minLength': 1, 'description': "Human-readable step name, e.g. 'Draft the brief'."}, 'role': {'type': 'string', 'maxLength': 200, 'description': 'Optional short role label shown alongside the step.'}, 'type': {'enum': ['agent', 'transform', 'connector'], 'type': 'string', 'description': "Optional executable node kind. Defaults to 'agent', which asks a model a question. 'transform' runs a supported deterministic local operation; 'connector' invokes the configured connector runtime and fails that step if the runtime is unavailable."}, 'model': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': "Optional model id override for this step; omit to use the agent template's own model."}, 'tools': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 100, 'description': 'Optional subset of persona tools. [] disables tools for supplied-evidence drafts; omission inherits.', 'uniqueItems': True}, 'params': {'type': 'object', 'description': "Optional configuration for a non-agent step. Must be omitted or empty for an 'agent' step, whose configuration is the named fields above (model, temperature, instruction, ...); params would be silently ignored there, so it is refused."}, 'step_id': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Canonical stable identifier for routed steps. Do not supply both step_id and the legacy id field.'}, 'next_step': {'type': 'string', 'pattern': '^(?:__end__|[A-Za-z0-9][A-Za-z0-9_.:-]*)$', 'maxLength': 100, 'minLength': 1, 'description': 'Optional next step id for an explicitly routed workflow. Do not combine routed fields with depends_on.'}, 'checkpoint': {'type': 'boolean', 'description': 'Whether the run pauses for human approval after this step. Defaults to true when omitted.'}, 'depends_on': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1}, 'maxItems': 20, 'description': 'Optional ids of steps this one builds on. A step starts only once every id it names has finished. Steps ready together share one bounded parallel layer in authored order. A definition with no arrows still runs in list order. Do not combine depends_on with routed fields.'}, 'human_gate': {'type': 'boolean', 'description': 'Require approval from the authenticated human review UI. API-key and MCP callers cannot cross this gate.'}, 'max_tokens': {'type': 'integer', 'maximum': 65536, 'minimum': 1, 'description': 'Optional output token cap for this step.'}, 'instruction': {'type': 'string', 'maxLength': 20000, 'description': 'Optional step-specific instruction for the agent.'}, 'temperature': {'type': 'number', 'maximum': 2.0, 'minimum': 0.0, 'description': 'Optional sampling temperature override for this step.'}, 'quality_gate': {'type': 'object', 'allOf': [{'if': {'required': ['schema'], 'properties': {'schema': {'const': 'scope_decision/v1'}}}, 'then': {'properties': {'max_iterations': {'const': 1}, 'blocking_severities': {'const': ['P0', 'P1']}}}}], 'required': ['schema', 'loop_to', 'pass_to', 'max_iterations'], 'properties': {'schema': {'enum': ['severity_findings/v1', 'scope_decision/v1'], 'type': 'string'}, 'loop_to': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1}, 'pass_to': {'type': 'string', 'pattern': '^(?:__end__|[A-Za-z0-9][A-Za-z0-9_.:-]*)$', 'maxLength': 100, 'minLength': 1}, 'max_iterations': {'type': 'integer', 'maximum': 5, 'minimum': 1}, 'blocking_severities': {'type': 'array', 'items': {'enum': ['P0', 'P1', 'P2', 'P3', 'P4', 'P5'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1, 'uniqueItems': True}}, 'additionalProperties': False}, 'agent_template': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9_-]*$', 'maxLength': 100, 'minLength': 1, 'description': 'Slug of the agent template this step runs, from list_agents.'}, 'requires_distinct_provider_from': {'type': 'string', 'pattern': '^[A-Za-z0-9][A-Za-z0-9_.:-]*$', 'maxLength': 100, 'minLength': 1, 'description': "Require this step's actual provider to differ from the provider that produced the named earlier step."}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 1, 'description': 'The complete step list after the update, in run order.'}, 'domain': {'type': 'string', 'maxLength': 80, 'minLength': 1, 'description': 'Grouping domain after the update.'}, 'description': {'type': 'string', 'maxLength': 4000, 'description': 'Description after the update.'}, 'expected_template_fingerprint': {'type': 'string', 'maxLength': 64, 'minLength': 64, 'description': 'Optional. The definition fingerprint you last saw for this template, returned by update_workflow_template when it last succeeded. Supply it and the write refuses, changing nothing, if the stored template is no longer the one that fingerprint names -- someone else edited or deleted it since you read it. Omit it and the write proceeds as it always has, overwriting whatever is there. This is not the definition_sha reported for a run: that one also reflects global configuration, this one names the stored file alone.'}}, 'additionalProperties': False}
입력 스키마
{'type': 'object', 'required': ['invoice_id'], 'properties': {'invoice_id': {'type': 'string'}}, 'additionalProperties': False}
최근 도구 변경
유사한 MCP 서버
GrowthKit Revenue Intelligence
Supports B2B revenue operations with lead campaigns, ICP and company enrichment, CRM records and activities, outreach drafting, t…
TradePilot Agent Commerce
Offers pay-per-use services for marketing content, sales account planning, customer success, business planning, data conversion, …
StackSwap
Researches and compares B2B go-to-market software, audits technology stacks, identifies overlaps and savings, recommends replacem…
Ergora Specialists
Provides cited guidance from specialist knowledge bases covering business strategy, marketing, advertising, ecommerce, sales, fin…
Income Factory Toll Fabric
Offers paid intelligence tools for B2B lead discovery, hiring demand, procurement opportunities, social-media trends, content opp…
Business Studio
Provides business back-office functions for tasks, deals, customers, publishing, and tracked links.
D50 AI — Sales, Marketing & Hiring Automation
Provides tools for CRM, lead generation, sales calling, marketing content, recruiting, and SEO automation.
businessmcp
Provides business analytics, CRM, SEO, advertising, and revenue data with scoped access.