MCP 服务器

objekts Production Desk

ai.objekts.mcp/production-desk
设计与创意 媒体与内容 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Diagnoses, estimates and submits AI, VFX, CGI, motion and animation production briefs for human review.

create_upload_session
Prepare production file upload
Use this only when the user explicitly wants an original production file delivered to objekts and the current host cannot pass that original file natively. It creates a short-lived private upload URL. Do not use it merely to analyze files that are already available in the conversation.
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirmed', 'filename', 'mediaType', 'sizeBytes'], 'properties': {'filename': {'type': 'string', 'minLength': 1}, 'confirmed': {'type': 'boolean', 'const': True}, 'mediaType': {'type': 'string', 'minLength': 1}, 'sizeBytes': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['uploadId', 'uploadUrl', 'expiresAt'], 'properties': {'uploadId': {'type': 'string'}, 'expiresAt': {'type': 'string'}, 'uploadUrl': {'type': 'string', 'format': 'uri'}}, 'additionalProperties': False}
delete_production_brief
Delete submitted production brief
Use this only when the user explicitly asks to delete a production submission from objekts storage. This removes the stored submission record and is destructive.
可能执行破坏性操作
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirmed', 'submissionId'], 'properties': {'confirmed': {'type': 'boolean', 'const': True}, 'submissionId': {'type': 'string', 'minLength': 8}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['deleted'], 'properties': {'deleted': {'type': 'boolean', 'const': True}}, 'additionalProperties': False}
diagnose_production
Diagnose visual production
Use the objekts Production Desk production-diagnosis engine for production-heavy visual work before proposing execution. It checks reference authority, hard locks, truth-layer routing, asset fitness, continuity, versioning, revision impact, readiness and the highest-value proof-of-concept. It does not estimate price, collect contact data, upload files or send anything externally. Populate only facts available from the user's current request/files; mark unknowns explicitly instead of inventing production facts. After the call, use visibleVerdict as the complete default answer: do not add a generic checklist or extra recommendations unless the user explicitly asks for a broader audit.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['objective', 'deliverables', 'readiness'], 'properties': {'assets': {'type': 'array', 'items': {'type': 'object', 'required': ['assetId', 'label', 'approvalState', 'controls', 'fitness'], 'properties': {'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'assetId': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'fitness': {'enum': ['FIT', 'FIT_WITH_REBUILD', 'NOT_FIT', 'UNKNOWN'], 'type': 'string'}, 'controls': {'type': 'array', 'items': {'type': 'object', 'required': ['domain', 'strength'], 'properties': {'notes': {'anyOf': [{'type': 'string', 'maxLength': 1000}, {'type': 'null'}]}, 'domain': {'enum': ['CHARACTER_IDENTITY', 'FACE', 'BODY', 'WARDROBE', 'PRODUCT_GEOMETRY', 'PRODUCT_COLOR', 'PACKAGING', 'MATERIAL_RESPONSE', 'LOCATION_GEOMETRY', 'ARCHITECTURE', 'CAMERA', 'LENS', 'COMPOSITION', 'LIGHTING', 'COLOR', 'LOGO', 'TYPOGRAPHY', 'COPY', 'MOTION', 'POSE', 'INTERIOR_GEOMETRY', 'SCALE', 'DEPTH_PLANE', 'FOCUS_BEHAVIOR', 'SOUND', 'OTHER'], 'type': 'string'}, 'strength': {'enum': ['HARD', 'SOFT'], 'type': 'string'}}}, 'maxItems': 50}, 'supersedes': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 50}, 'fitnessNotes': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 30}, 'approvalState': {'enum': ['EXPLORATORY', 'CANDIDATE', 'APPROVED', 'FROZEN', 'SUPERSEDED', 'REJECTED'], 'type': 'string'}, 'doesNotControl': {'type': 'array', 'items': {'enum': ['CHARACTER_IDENTITY', 'FACE', 'BODY', 'WARDROBE', 'PRODUCT_GEOMETRY', 'PRODUCT_COLOR', 'PACKAGING', 'MATERIAL_RESPONSE', 'LOCATION_GEOMETRY', 'ARCHITECTURE', 'CAMERA', 'LENS', 'COMPOSITION', 'LIGHTING', 'COLOR', 'LOGO', 'TYPOGRAPHY', 'COPY', 'MOTION', 'POSE', 'INTERIOR_GEOMETRY', 'SCALE', 'DEPTH_PLANE', 'FOCUS_BEHAVIOR', 'SOUND', 'OTHER'], 'type': 'string'}, 'maxItems': 50}}}, 'maxItems': 100}, 'changes': {'type': 'array', 'items': {'type': 'object', 'required': ['changeId', 'label', 'input'], 'properties': {'input': {'type': 'object', 'required': ['classification', 'targetType', 'targetId'], 'properties': {'targetId': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'targetType': {'enum': ['PROJECT', 'CANON', 'ASSET', 'SHOT', 'ELEMENT', 'PRODUCTION_UNIT', 'DELIVERABLE', 'ESTIMATE'], 'type': 'string'}, 'changesAction': {'type': 'boolean'}, 'changesCamera': {'type': 'boolean'}, 'classification': {'enum': ['CANON_CORRECTION', 'EXECUTION_DEFECT', 'TASTE_REVISION', 'SCOPE_CHANGE', 'TECHNICAL_REQUIREMENT', 'ASSET_REPLACEMENT', 'REJECTION', 'APPROVAL', 'OPEN_QUESTION'], 'type': 'string'}, 'changesHardLock': {'type': 'boolean'}, 'changesCgConcept': {'type': 'boolean'}, 'changesCharacter': {'type': 'boolean'}, 'derivedExportOnly': {'type': 'boolean'}, 'changesMiseEnScene': {'type': 'boolean'}, 'targetApprovalState': {'enum': ['DRAFT', 'READY_FOR_REVIEW', 'APPROVED', 'FROZEN', 'CHANGES_REQUESTED'], 'type': 'string'}, 'replacesApprovedAsset': {'type': 'boolean'}, 'changesDurationMaterially': {'type': 'boolean'}, 'createsIndependentVerticalComposition': {'type': 'boolean'}}}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'changeId': {'type': 'string', 'maxLength': 200, 'minLength': 1}}}, 'maxItems': 100}, 'unknowns': {'type': 'array', 'items': {'type': 'object', 'required': ['unknownId', 'question', 'impact', 'affects'], 'properties': {'impact': {'enum': ['LOW', 'MEDIUM', 'HIGH', 'BLOCKING'], 'type': 'string'}, 'affects': {'type': 'array', 'items': {'enum': ['CREATIVE', 'FEASIBILITY', 'COST', 'SCHEDULE', 'RIGHTS', 'DELIVERY'], 'type': 'string'}, 'maxItems': 6, 'minItems': 1}, 'question': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'unknownId': {'type': 'string', 'maxLength': 200, 'minLength': 1}}}, 'maxItems': 100}, 'versions': {'type': 'array', 'items': {'type': 'object', 'required': ['versionId', 'label', 'input'], 'properties': {'input': {'type': 'object', 'properties': {'isMaster': {'type': 'boolean'}, 'safeCrop': {'type': 'boolean'}, 'changesAction': {'type': 'boolean'}, 'changesCamera': {'type': 'boolean'}, 'legalCopySwap': {'type': 'boolean'}, 'onlyExportChange': {'type': 'boolean'}, 'aspectRatioChange': {'type': 'boolean'}, 'requiresReframing': {'type': 'boolean'}, 'changesMiseEnScene': {'type': 'boolean'}, 'changesGraphicLayoutMaterially': {'type': 'boolean'}}}, 'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'versionId': {'type': 'string', 'maxLength': 200, 'minLength': 1}}}, 'maxItems': 100}, 'objective': {'type': 'string', 'maxLength': 2000, 'minLength': 1}, 'readiness': {'type': 'object', 'required': ['objectiveKnown', 'deliverablesKnown', 'routeKnown', 'criticalLocksKnown', 'assetFitnessKnown', 'shotOrUnitCountKnown', 'deadlineKnown', 'approvalOwnerKnown', 'rightsBlockingUnknowns', 'externalBidExposure', 'estimateInputsSufficient', 'productionInputsResolved'], 'properties': {'routeKnown': {'type': 'boolean'}, 'deadlineKnown': {'type': 'boolean'}, 'objectiveKnown': {'type': 'boolean'}, 'assetFitnessKnown': {'type': 'boolean'}, 'deliverablesKnown': {'type': 'boolean'}, 'approvalOwnerKnown': {'type': 'boolean'}, 'criticalLocksKnown': {'type': 'boolean'}, 'externalBidExposure': {'type': 'boolean'}, 'shotOrUnitCountKnown': {'type': 'boolean'}, 'rightsBlockingUnknowns': {'type': 'boolean'}, 'estimateInputsSufficient': {'type': 'boolean'}, 'productionInputsResolved': {'type': 'boolean'}}}, 'deliverables': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 100, 'minItems': 1}, 'elementRoutes': {'type': 'array', 'items': {'type': 'object', 'required': ['elementId', 'label', 'truthLayer', 'controlMode', 'exactness', 'domains'], 'properties': {'label': {'type': 'string', 'maxLength': 500, 'minLength': 1}, 'notes': {'type': 'string', 'maxLength': 1500}, 'domains': {'type': 'array', 'items': {'enum': ['CHARACTER_IDENTITY', 'FACE', 'BODY', 'WARDROBE', 'PRODUCT_GEOMETRY', 'PRODUCT_COLOR', 'PACKAGING', 'MATERIAL_RESPONSE', 'LOCATION_GEOMETRY', 'ARCHITECTURE', 'CAMERA', 'LENS', 'COMPOSITION', 'LIGHTING', 'COLOR', 'LOGO', 'TYPOGRAPHY', 'COPY', 'MOTION', 'POSE', 'INTERIOR_GEOMETRY', 'SCALE', 'DEPTH_PLANE', 'FOCUS_BEHAVIOR', 'SOUND', 'OTHER'], 'type': 'string'}, 'maxItems': 30, 'minItems': 1}, 'elementId': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'exactness': {'enum': ['HARD', 'SOFT'], 'type': 'string'}, 'truthLayer': {'enum': ['LIVE_ACTION', 'CONTROLLED_CGI', 'AI_GENERATED', 'SOURCE_ASSET', 'GRAPHICS', 'COMPOSITE'], 'type': 'string'}, 'controlMode': {'enum': ['DETERMINISTIC', 'REFERENCE_LOCKED', 'GENERATIVE'], 'type': 'string'}, 'recurringAcrossShots': {'type': 'boolean'}}}, 'maxItems': 100}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['responseContract', 'visibleVerdict'], 'properties': {'visibleVerdict': {'type': 'object', 'required': ['readiness', 'decisions', 'firstPoc', 'blockingInputs'], 'properties': {'firstPoc': {'anyOf': [{'type': 'object', 'required': ['title', 'reason', 'successCriterion'], 'properties': {'title': {'type': 'string'}, 'reason': {'type': 'string'}, 'successCriterion': {'type': 'string'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'decisions': {'type': 'array', 'items': {'type': 'object', 'required': ['severity', 'code', 'title', 'finding', 'action'], 'properties': {'code': {'enum': ['AUTHORITY_CONFLICT', 'UNBOUND_HARD_LOCK', 'UNSAFE_TRUTH_LAYER', 'ASSET_NOT_PRODUCTION_FIT', 'CONTINUITY_RISK', 'VERSION_CREATES_SCOPE', 'CHANGE_INVALIDATES_WORK', 'READINESS_BLOCKER'], 'type': 'string'}, 'title': {'type': 'string'}, 'action': {'type': 'string'}, 'finding': {'type': 'string'}, 'severity': {'enum': ['BLOCKER', 'HIGH', 'MEDIUM'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 3}, 'readiness': {'enum': ['IDEA', 'BRIEFABLE', 'ESTIMATABLE', 'QUOTE_READY', 'PRODUCTION_READY'], 'type': 'string'}, 'blockingInputs': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 3}}, 'additionalProperties': False}, 'responseContract': {'type': 'object', 'required': ['maxDecisions', 'maxPocs', 'maxQuestions', 'allowGenericChecklist'], 'properties': {'maxPocs': {'type': 'number', 'const': 1}, 'maxDecisions': {'type': 'number', 'const': 3}, 'maxQuestions': {'type': 'number', 'const': 3}, 'allowGenericChecklist': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}}, 'additionalProperties': False}
estimate_production
Estimate visual production
Return a directional RUB production range and timeline only when the user explicitly asks about price, cost, budget, quote, or budget fit. This tool is read-only, non-binding, and never collects contact details or submits a brief. Choose WHOLE_PRODUCTION for a finished deliverable and BOUNDED_SHOT_POST for named shots/scenes/post work; use INFERRED when that scope is genuinely ambiguous, or SCENARIO for a clearly labeled hypothetical. For production diagnosis without pricing, use diagnose_production instead.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode', 'scopeType', 'scopeDecision', 'scopeEvidence', 'runtimeSeconds', 'scopeBasis', 'units'], 'properties': {'mode': {'enum': ['ROM', 'SCOPED_ESTIMATE', 'BUDGET_FIT', 'DEADLINE_FIT'], 'type': 'string', 'description': 'ROM for an early range; SCOPED_ESTIMATE for a defined scope; BUDGET_FIT to compare scope with a target budget; DEADLINE_FIT to evaluate schedule pressure.'}, 'units': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'department'], 'properties': {'id': {'type': 'string', 'minLength': 1, 'description': 'Stable short ID for this production unit, such as hero-shots, compositing, or edit.'}, 'basis': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Short factual notes explaining why this unit, quantity, complexity, or lock count was chosen.'}, 'quantity': {'type': 'integer', 'maximum': 1000, 'description': 'Count of comparable units in this line item. Defaults to 1 when omitted.', 'exclusiveMinimum': 0}, 'reusable': {'type': 'boolean', 'description': 'True when the unit creates a reusable asset/system that materially reduces repeated production work.'}, 'hardLocks': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Number of exact visual constraints this unit must preserve, such as product geometry, identity, logo, camera, or wardrobe.'}, 'complexity': {'enum': ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'], 'type': 'string', 'description': 'LOW, MEDIUM, HIGH, or EXTREME execution complexity for this unit.'}, 'department': {'enum': ['CREATIVE', 'PREVIS', 'PRODUCTION', 'AI_VFX', 'CGI_3D', 'MOTION', 'COMPOSITING', 'EDIT', 'COLOR', 'SOUND', 'VERSIONING', 'PHOTO', 'RIGHTS', 'TRAVEL', 'RESERVE', 'OTHER'], 'type': 'string', 'description': 'Department responsible for this unit; use the closest production discipline from the enum.'}, 'recurringEntities': {'type': 'integer', 'maximum': 100, 'minimum': 0, 'description': 'Count of products, characters, vehicles, or other entities that must stay consistent across multiple outputs.'}}}, 'maxItems': 200, 'minItems': 1, 'description': 'Production line items that drive the estimate. Include every material discipline/unit being priced; each item explains quantity, complexity, locks, continuity, and basis.'}, 'scopeType': {'enum': ['WHOLE_PRODUCTION', 'BOUNDED_SHOT_POST'], 'type': 'string', 'description': 'WHOLE_PRODUCTION prices the complete requested finished deliverable; BOUNDED_SHOT_POST prices only named shots, scenes, VFX, or post tasks.'}, 'exclusions': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 50, 'description': 'Work explicitly outside this estimate, especially live-action, rights, media, extra versions, or unrequested disciplines.'}, 'scopeBasis': {'type': 'string', 'maxLength': 600, 'minLength': 1, 'description': 'One concise sentence stating exactly what the estimate includes and excludes from the priced object.'}, 'versioning': {'type': 'object', 'properties': {'derivedVersions': {'type': 'integer', 'maximum': 1000, 'minimum': 0, 'description': 'Count of low-effort versions derived from the master without new composition or production.'}, 'newProductionUnits': {'type': 'integer', 'maximum': 1000, 'minimum': 0, 'description': 'Count of versions that introduce new camera, action, mise-en-scène, shot, or equivalent fresh production.'}, 'recomposedVersions': {'type': 'integer', 'maximum': 1000, 'minimum': 0, 'description': 'Count of adaptations that require material reframing, redesign, or recomposition.'}}, 'description': 'Version/adaptation workload beyond the master deliverable; distinguish simple exports from recomposition and new production.'}, 'assumptions': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000}, 'maxItems': 50, 'description': 'Explicit factual assumptions used to make the estimate possible; do not invent client facts.'}, 'deadlineDays': {'anyOf': [{'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': 'Calendar days available until delivery when known; null or omit when no deadline is supplied.'}, 'scopeDecision': {'enum': ['USER_EXPLICIT', 'SCENARIO', 'INFERRED'], 'type': 'string', 'description': 'USER_EXPLICIT when the requested object is clear; SCENARIO for an explicitly labeled hypothetical; INFERRED only when scope is genuinely ambiguous, in which case no price is returned until clarified.'}, 'scopeEvidence': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': "Short evidence for the scope choice. For USER_EXPLICIT, copy a brief verbatim phrase from the user's request that identifies the priced object."}, 'runtimeSeconds': {'anyOf': [{'type': 'number', 'maximum': 36000, 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': 'Final master runtime in seconds when known; null only when genuinely unknown.'}, 'targetBudgetMax': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}], 'description': "Upper bound of the user's target budget in RUB for BUDGET_FIT; omit when no target ceiling is supplied."}, 'targetBudgetMin': {'anyOf': [{'type': 'number', 'minimum': 0}, {'type': 'null'}], 'description': "Lower bound of the user's target budget in RUB for BUDGET_FIT; omit when no budget floor exists."}, 'externalBidItems': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'reason'], 'properties': {'label': {'type': 'string', 'maxLength': 300, 'minLength': 1, 'description': 'External cost item that cannot be responsibly priced by this engine, such as talent, location, licensed music, or live-action vendor work.'}, 'reason': {'type': 'string', 'maxLength': 1000, 'minLength': 1, 'description': 'Why this cost requires an external quote or remains unknown.'}}}, 'maxItems': 50, 'description': 'Known cost exposures that require third-party bids; these remain outside the automated production range.'}, 'includeDepartments': {'type': 'array', 'items': {'enum': ['CREATIVE', 'PREVIS', 'PRODUCTION', 'AI_VFX', 'CGI_3D', 'MOTION', 'COMPOSITING', 'EDIT', 'COLOR', 'SOUND', 'VERSIONING', 'PHOTO', 'RIGHTS', 'TRAVEL', 'RESERVE', 'OTHER'], 'type': 'string'}, 'maxItems': 20, 'description': 'Optional whitelist of departments to include when the requested estimate intentionally covers only selected disciplines.'}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mode', 'scopeType', 'scopeDecision', 'scopeEvidence', 'runtimeSeconds', 'scopeBasis', 'currency', 'confidence', 'rangeMin', 'rangeMax', 'timelineMinDays', 'timelineMaxDays', 'departments', 'costDrivers', 'assumptions', 'exclusions', 'unknownCostExposure'], 'properties': {'mode': {'enum': ['ROM', 'SCOPED_ESTIMATE', 'BUDGET_FIT', 'DEADLINE_FIT'], 'type': 'string'}, 'currency': {'type': 'string'}, 'rangeMax': {'type': 'number', 'minimum': 0}, 'rangeMin': {'type': 'number', 'minimum': 0}, 'budgetFit': {'type': 'object', 'required': ['status', 'targetMin', 'targetMax', 'deltaToTarget'], 'properties': {'status': {'enum': ['WITHIN', 'TIGHT', 'OVER_BUDGET'], 'type': 'string'}, 'targetMax': {'type': 'number', 'minimum': 0}, 'targetMin': {'type': ['number', 'null']}, 'deltaToTarget': {'type': 'number'}}, 'additionalProperties': False}, 'scopeType': {'enum': ['WHOLE_PRODUCTION', 'BOUNDED_SHOT_POST'], 'type': 'string'}, 'confidence': {'enum': ['LOW', 'MEDIUM', 'HIGH'], 'type': 'string'}, 'exclusions': {'type': 'array', 'items': {'type': 'string'}}, 'scopeBasis': {'type': 'string'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'costDrivers': {'type': 'array', 'items': {'type': 'string'}}, 'departments': {'type': 'array', 'items': {'type': 'object', 'required': ['department', 'rangeMin', 'rangeMax', 'basis'], 'properties': {'basis': {'type': 'array', 'items': {'type': 'string'}}, 'rangeMax': {'type': 'number', 'minimum': 0}, 'rangeMin': {'type': 'number', 'minimum': 0}, 'department': {'enum': ['CREATIVE', 'PREVIS', 'PRODUCTION', 'AI_VFX', 'CGI_3D', 'MOTION', 'COMPOSITING', 'EDIT', 'COLOR', 'SOUND', 'VERSIONING', 'PHOTO', 'RIGHTS', 'TRAVEL', 'RESERVE', 'OTHER'], 'type': 'string'}}, 'additionalProperties': False}}, 'scheduleFit': {'type': 'object', 'required': ['status', 'targetDays', 'naturalMinDays', 'naturalMaxDays'], 'properties': {'status': {'enum': ['WITHIN', 'TIGHT', 'OVER_DEADLINE'], 'type': 'string'}, 'targetDays': {'type': 'integer', 'maximum': 9007199254740991, 'exclusiveMinimum': 0}, 'naturalMaxDays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'naturalMinDays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}}, 'additionalProperties': False}, 'scopeDecision': {'enum': ['USER_EXPLICIT', 'SCENARIO', 'INFERRED'], 'type': 'string'}, 'scopeEvidence': {'type': 'string'}, 'runtimeSeconds': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'timelineMaxDays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'timelineMinDays': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'unknownCostExposure': {'type': 'object', 'required': ['level', 'items'], 'properties': {'items': {'type': 'array', 'items': {'type': 'object', 'required': ['label', 'reason', 'requiresExternalBid'], 'properties': {'label': {'type': 'string'}, 'reason': {'type': 'string'}, 'requiresExternalBid': {'type': 'boolean'}}, 'additionalProperties': False}}, 'level': {'enum': ['LOW', 'MEDIUM', 'HIGH', 'UNBOUNDED'], 'type': 'string'}}, 'additionalProperties': False}}, 'additionalProperties': False}
get_production_brief_status
Check production review status
Use this when the user wants the current human-review status, producer questions or available human estimate for a production brief previously submitted to objekts. It does not modify the submission.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['submissionId'], 'properties': {'submissionId': {'type': 'string', 'minLength': 8}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['submissionId', 'status', 'questions'], 'properties': {'status': {'enum': ['RECEIVED', 'REVIEWING', 'NEED_INFO', 'HUMAN_ESTIMATE_READY', 'CALL_PROPOSED', 'WON', 'LOST', 'CLOSED', 'DELETED'], 'type': 'string'}, 'message': {'type': ['string', 'null']}, 'questions': {'type': 'array', 'items': {'type': 'string'}}, 'submissionId': {'type': 'string'}, 'humanEstimate': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}
submit_production_brief
Send production brief to objekts
Use this only after the user explicitly confirms that the prepared production brief, one reply channel (email or Telegram), and selected files should be sent to objekts for human production review. A contactless human-review submission is not allowed because the producer must be able to answer the user. When the host already has the files, pass them through the files field instead of making the user upload them again. Do not use it for local analysis, estimation, or when the user has said not to send anything.
可能执行破坏性操作 可访问外部资源
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirmed', 'contact', 'brief'], 'properties': {'brief': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, 'files': {'type': 'array', 'items': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'maxLength': 512}, 'file_name': {'type': 'string', 'maxLength': 255}, 'mime_type': {'type': 'string', 'maxLength': 200}, 'download_url': {'type': 'string', 'maxLength': 4096}}}, 'maxItems': 10}, 'contact': {'type': 'object', 'properties': {'name': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'email': {'anyOf': [{'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'maxLength': 320}, {'type': 'null'}]}, 'company': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'telegram': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}}}, 'confirmed': {'type': 'boolean', 'const': True}, 'selectedAssetIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['submissionId', 'status', 'message'], 'properties': {'status': {'type': 'string', 'const': 'RECEIVED'}, 'message': {'type': 'string'}, 'submissionId': {'type': 'string'}}, 'additionalProperties': False}
update_production_brief
Update submitted production brief
Use this only after the user explicitly confirms that clarifications, scope updates, newly supplied asset references or attached production files should be sent to an existing objekts human review. When ChatGPT already has a requested file, pass it through the files field rather than creating a second upload. Do not use it to change a brief that exists only in the current conversation.
可能执行破坏性操作 可访问外部资源
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirmed', 'submissionId'], 'properties': {'files': {'type': 'array', 'items': {'type': 'object', 'required': ['download_url', 'file_id'], 'properties': {'file_id': {'type': 'string', 'maxLength': 512}, 'file_name': {'type': 'string', 'maxLength': 255}, 'mime_type': {'type': 'string', 'maxLength': 200}, 'download_url': {'type': 'string', 'maxLength': 4096}}}, 'maxItems': 10}, 'answers': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 200}, 'additionalProperties': {'type': 'string', 'maxLength': 4000}}, 'confirmed': {'type': 'boolean', 'const': True}, 'briefPatch': {'type': 'object', 'propertyNames': {'type': 'string', 'maxLength': 200}, 'additionalProperties': {}}, 'submissionId': {'type': 'string', 'minLength': 8}, 'addedAssetIds': {'type': 'array', 'items': {'type': 'string', 'maxLength': 128}, 'maxItems': 50}}}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['submissionId', 'status', 'questions'], 'properties': {'status': {'enum': ['RECEIVED', 'REVIEWING', 'NEED_INFO', 'HUMAN_ESTIMATE_READY', 'CALL_PROPOSED', 'WON', 'LOST', 'CLOSED', 'DELETED'], 'type': 'string'}, 'message': {'type': ['string', 'null']}, 'questions': {'type': 'array', 'items': {'type': 'string'}}, 'submissionId': {'type': 'string'}, 'humanEstimate': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}]}}, 'additionalProperties': False}
已添加
delete_production_brief
2026年10月4日 02:40
已添加
update_production_brief
2026年10月4日 02:40
已添加
get_production_brief_status
2026年10月4日 02:40
已添加
submit_production_brief
2026年10月4日 02:40
已添加
create_upload_session
2026年10月4日 02:40
已添加
estimate_production
2026年10月4日 02:40
已添加
diagnose_production
2026年10月4日 02:40