MCP-Server

objekts Production Desk

ai.objekts.mcp/production-desk
Design & Kreativ Medien & Inhalte Öffentlich und erreichbar MCP 2025-11-25

Was dieses MCP kann

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.
Eingabeschema
{'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}}}
Ausgabeschema
{'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.
Destruktiv
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirmed', 'submissionId'], 'properties': {'confirmed': {'type': 'boolean', 'const': True}, 'submissionId': {'type': 'string', 'minLength': 8}}}
Ausgabeschema
{'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.
Nur Lesen Idempotent
Eingabeschema
{'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}}}
Ausgabeschema
{'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.
Nur Lesen Idempotent
Eingabeschema
{'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.'}}}
Ausgabeschema
{'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.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['submissionId'], 'properties': {'submissionId': {'type': 'string', 'minLength': 8}}}
Ausgabeschema
{'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.
Destruktiv Externer Zugriff
Eingabeschema
{'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}}}
Ausgabeschema
{'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.
Destruktiv Externer Zugriff
Eingabeschema
{'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}}}
Ausgabeschema
{'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}
Hinzugefügt
delete_production_brief
4. October 2026 02:40
Hinzugefügt
update_production_brief
4. October 2026 02:40
Hinzugefügt
get_production_brief_status
4. October 2026 02:40
Hinzugefügt
submit_production_brief
4. October 2026 02:40
Hinzugefügt
create_upload_session
4. October 2026 02:40
Hinzugefügt
estimate_production
4. October 2026 02:40
Hinzugefügt
diagnose_production
4. October 2026 02:40