MCP 서버

a2a2p — Agent-to-Agent-to-Physical

com.a2a2p/a2a2p
커머스 및 리테일 과학 및 엔지니어링 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Reviews physical product requirements, performs bounded beam engineering calculations and simulations, prepares supplier packages, and provides labeled supply estimates.

assess_supplier_fit
Compare one exact package projection with every lane in one evidence-bound supplier capability declaration. Returns explicit match, conflict, or unknown checks. Import evidence concerns the drawing associated with the package, not proof that its JSON was received or accepted. It never scores or selects a supplier and grants no contact, quote, purchase, or fabrication authority.
입력 스키마
{'$id': 'https://a2a2p.com/schema/supplier-fit', 'type': 'object', 'title': 'a2a2p supplier fit assessment input', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['package_projection', 'capability_declaration'], 'properties': {'import_observation': {'anyOf': [{'type': 'null'}, {'type': 'object'}]}, 'package_projection': {'type': 'object', 'required': ['package_sha256', 'process', 'material', 'stock_thickness_mm', 'quantity', 'size_x_mm', 'size_y_mm', 'design_file_format', 'tolerance_class', 'surface_finish', 'ship_to_country'], 'properties': {'process': {'anyOf': [{'type': 'null'}, {'type': 'string', 'pattern': '^[a-z][a-z0-9_-]{0,127}$'}]}, 'material': {'anyOf': [{'type': 'null'}, {'type': 'string', 'pattern': '^[a-z][a-z0-9_-]{0,127}$'}]}, 'quantity': {'anyOf': [{'type': 'null'}, {'type': 'integer', 'minimum': 1}]}, 'size_x_mm': {'anyOf': [{'type': 'null'}, {'type': 'number', 'exclusiveMinimum': 0}]}, 'size_y_mm': {'anyOf': [{'type': 'null'}, {'type': 'number', 'exclusiveMinimum': 0}]}, 'package_sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'surface_finish': {'anyOf': [{'type': 'null'}, {'type': 'string', 'pattern': '^[a-z][a-z0-9_-]{0,127}$'}]}, 'ship_to_country': {'anyOf': [{'type': 'null'}, {'type': 'string', 'pattern': '^[A-Z]{2}$'}]}, 'tolerance_class': {'anyOf': [{'type': 'null'}, {'type': 'string', 'pattern': '^[a-z][a-z0-9_-]{0,127}$'}]}, 'design_file_format': {'anyOf': [{'type': 'null'}, {'type': 'string', 'pattern': '^[a-z][a-z0-9_-]{0,127}$'}]}, 'stock_thickness_mm': {'anyOf': [{'type': 'null'}, {'type': 'number', 'exclusiveMinimum': 0}]}}, 'additionalProperties': False}, 'capability_declaration': {'type': 'object'}}, 'description': 'A deterministic comparison of caller-projected package facts with one evidence-bound supplier capability declaration. It does not select a supplier.', 'additionalProperties': False}
출력 스키마
{'type': 'object'}
build_supplier_request_package
PRECONDITION — CALL ONLY after the requester supplied what the physical object must accomplish at intent.purpose (or requirement). If absent, ask the requester first; never infer purpose and do not invoke this tool yet. Build a synchronous, deterministic supplier request package from the requirement the caller already holds. The package follows the open a2a2p supplier profile and its versioned output schema at https://a2a2p.com/schema/supplier-package, preserves provenance, carries quote-stage screening, and names every quote-critical gap instead of inventing values. Every emitted package carries a reproducible SHA-256 artifact_identity over the exact package content, excluding the identity field itself. The digest proves content identity only; it does not prove supplier receipt, a quote, payment, fabrication, or physical correctness. The package also returns a deterministic quote_stage_eligibility receipt. Quote-stage eligibility lane flat_laser_cut_5052_h32: aluminum_5052_h32, laser_cutting, quantity 1-5, 10-300 mm by 10-300 mm, verified HTTPS DXF, raw finish, no secondary or regulated requirements, US delivery, and total budget up to USD 500. Classification sets no fee and grants no payment, supplier-contact, quote-acceptance, order, or fabrication authority. If no package can be built, MCP and REST share the a2a2p.supplier-package-rejection contract: a closed reason_code, exact vocabulary version, and deterministic next_action only where repair is sufficient. A purpose_required rejection includes an a2a2p.argument-repair operation that preserves the caller's existing arguments, requires the caller's own purpose statement, and forbids inference. An explicit specification.assembly with two or more parts returns decomposition_required and no package; one package represents one fabricated part. This is a stateless data transformation only: it stores no requirement, contacts no supplier or provider, requests no external quote, and creates no order, payment, or fabrication authority.
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'examples': [{'intent': {'purpose': 'Hold an indoor sensor enclosure against a vertical rail without drilling.'}}], 'required': [], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'delivery': {'type': 'object', 'required': ['accountable_principal', 'principal_kind', 'reply_to'], 'properties': {'reply_to': {'type': 'string', 'maxLength': 500, 'description': 'A reachable business email or HTTPS reply route.'}, 'principal_kind': {'enum': ['organization', 'person'], 'type': 'string'}, 'registered_address': {'type': 'string', 'maxLength': 500, 'description': 'Required for an organization principal; its verifiable registered address.'}, 'accountable_principal': {'type': 'string', 'maxLength': 300, 'description': 'A named person or legal entity accountable for the request.'}}, 'description': 'Optional caller-declared routing context carried into the returned package. a2a2p does not send it anywhere.', 'additionalProperties': False}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}, 'description': 'PRECONDITION: provide a requester-supplied non-whitespace purpose at intent.purpose or requirement before invoking. If purpose is absent, ask what the physical object must accomplish; do not infer it and do not call this tool yet.'}
출력 스키마
{'$id': 'https://a2a2p.com/schema/supplier-package', 'type': 'object', 'title': 'a2a2p supplier request package', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['profile', 'profile_version', 'specification_url', 'request', 'geometry', 'commercial', 'provenance', 'gaps', 'already_checked', 'screening', 'what_is_requested', 'delivery', 'delivery_requirements', 'quote_stage_eligibility', 'artifact_identity'], 'properties': {'gaps': {'type': 'object', 'required': ['blocking_a_firm_quote', 'widens_the_range', 'quotable', 'open_questions', 'note'], 'properties': {'note': {'type': 'string'}, 'quotable': {'type': 'boolean'}, 'open_questions': {'type': 'array', 'items': {'type': 'object'}}, 'widens_the_range': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'why'], 'properties': {'why': {'type': 'string'}, 'field': {'type': 'string'}}, 'additionalProperties': True}}, 'blocking_a_firm_quote': {'type': 'array', 'items': {'type': 'object', 'required': ['field', 'why'], 'properties': {'why': {'type': 'string'}, 'field': {'type': 'string'}}, 'additionalProperties': True}}}, 'additionalProperties': True}, 'profile': {'const': 'a2a2p-supplier-request'}, 'request': {'type': 'object', 'required': ['purpose', 'quantity', 'timeline', 'environment', 'part_type', 'material', 'process', 'tolerance_class', 'dimensions', 'surface_finish', 'post_processing', 'compliance'], 'properties': {'process': {'type': ['string', 'null']}, 'purpose': {'type': ['string', 'null']}, 'material': {'type': ['string', 'null']}, 'quantity': {'type': ['integer', 'null'], 'minimum': 1}, 'timeline': {'type': ['string', 'null']}, 'part_type': {'type': ['string', 'null']}, 'compliance': {'type': 'array', 'items': {'type': 'string'}}, 'dimensions': {'type': ['object', 'null']}, 'environment': {'type': 'array', 'items': {'type': 'string'}}, 'surface_finish': {'type': ['string', 'null']}, 'post_processing': {'type': 'array', 'items': {'type': 'string'}}, 'tolerance_class': {'type': ['string', 'null']}}, 'additionalProperties': True}, 'delivery': {'type': ['object', 'null']}, 'geometry': {'type': 'object', 'required': ['files', 'preferred', 'note', 'dimension_consistency'], 'properties': {'note': {'type': 'string'}, 'files': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 8}, 'preferred': {'type': 'string'}, 'dimension_consistency': {'type': 'object', 'required': ['status', 'reason'], 'properties': {'reason': {'type': 'string'}, 'status': {'enum': ['match', 'conflict', 'not_evaluated']}}, 'additionalProperties': True}}, 'additionalProperties': True}, 'screening': {'type': 'object', 'required': ['verdict', 'stage', 'policy_version', 'policy_url'], 'properties': {'stage': {'const': 'quote'}, 'verdict': {'enum': ['allow', 'review', 'deny']}, 'policy_url': {'type': 'string', 'pattern': '^https://'}, 'policy_version': {'type': 'string'}}, 'additionalProperties': True}, 'commercial': {'type': 'object', 'required': ['price_scope', 'freight_included'], 'properties': {'price_scope': {'enum': ['manufacturing_only_freight_excluded', 'delivered_to_declared_region']}, 'freight_included': {'type': 'boolean'}}, 'additionalProperties': True}, 'provenance': {'type': 'object', 'required': ['originator', 'human_reviewed_before_sending', 'note'], 'properties': {'note': {'type': 'string'}, 'originator': {'const': 'automated_agent_via_a2a2p'}, 'human_reviewed_before_sending': {'type': 'boolean'}}, 'additionalProperties': True}, 'already_checked': {'type': ['object', 'null']}, 'profile_version': {'const': '1.4.0-draft'}, 'artifact_identity': {'type': 'object', 'required': ['contract', 'version', 'algorithm', 'canonicalization', 'digest_input', 'sha256', 'canonical_bytes', 'scope', 'proves', 'does_not_prove'], 'properties': {'scope': {'const': 'content_identity_only'}, 'proves': {'type': 'string'}, 'sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'version': {'const': '1.0.0'}, 'contract': {'const': 'a2a2p.supplier-package-artifact-identity'}, 'algorithm': {'const': 'sha256'}, 'digest_input': {'const': 'the complete supplier package excluding artifact_identity'}, 'does_not_prove': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 4}, 'canonical_bytes': {'type': 'integer', 'minimum': 1}, 'canonicalization': {'const': 'a2a2p.sorted-json-v1'}}, 'additionalProperties': False}, 'specification_url': {'type': 'string', 'pattern': '^https://'}, 'what_is_requested': {'type': 'object', 'required': ['action', 'not_an_order', 'note'], 'properties': {'note': {'type': 'string'}, 'action': {'const': 'price_and_lead_time'}, 'not_an_order': {'const': True}}, 'additionalProperties': True}, 'delivery_requirements': {'type': 'object', 'required': ['binding_must_supply', 'rationale', 'satisfied', 'note'], 'properties': {'satisfied': {'type': 'boolean'}}, 'additionalProperties': True}, 'quote_stage_eligibility': {'$id': 'https://a2a2p.com/schema/quote-stage-eligibility', 'type': 'object', 'title': 'a2a2p quote-stage eligibility receipt', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['contract', 'version', 'program', 'lane', 'status', 'checks', 'blocking_codes', 'supported_stock_thickness_mm', 'evidence', 'next_action', 'commercial_terms', 'authority'], 'properties': {'lane': {'const': 'flat_laser_cut_5052_h32'}, 'checks': {'type': 'array', 'items': {'type': 'object', 'required': ['code', 'result', 'message'], 'properties': {'code': {'type': 'string'}, 'result': {'enum': ['pass', 'needs_input', 'ineligible']}, 'message': {'type': 'string'}}, 'additionalProperties': False}, 'minItems': 1}, 'status': {'enum': ['eligible', 'needs_input', 'ineligible']}, 'program': {'const': 'a2a2p.reference-first-physical-exchange'}, 'version': {'const': '0.1.0-draft'}, 'contract': {'const': 'a2a2p.quote-stage-eligibility'}, 'evidence': {'type': 'array', 'items': {'type': 'string', 'pattern': '^https://'}}, 'authority': {'type': 'object', 'required': ['payment', 'supplier_contact', 'quote_acceptance', 'order', 'fabrication'], 'properties': {'order': {'const': False}, 'payment': {'const': False}, 'fabrication': {'const': False}, 'quote_acceptance': {'const': False}, 'supplier_contact': {'const': False}}, 'additionalProperties': False}, 'next_action': {'type': 'string'}, 'blocking_codes': {'type': 'array', 'items': {'type': 'string'}}, 'commercial_terms': {'type': 'object', 'required': ['active', 'commission_rate', 'note'], 'properties': {'note': {'type': 'string'}, 'active': {'const': False}, 'commission_rate': {'type': 'null'}}, 'additionalProperties': False}, 'supported_stock_thickness_mm': {'type': 'array', 'items': {'type': 'number'}}}, 'x-a2a2p-program': {'lane': 'flat_laser_cut_5052_h32', 'program': 'a2a2p.reference-first-physical-exchange', 'criteria': {'process': 'laser_cutting', 'size_mm': {'max_x': 300, 'max_y': 300, 'min_x': 10, 'min_y': 10}, 'material': 'aluminum_5052_h32', 'quantity': {'max': 5, 'min': 1}, 'total_budget': {'max': 500, 'currency': 'USD'}, 'surface_finish': 'raw', 'ship_to_country': 'US', 'tolerance_classes': ['coarse', 'medium'], 'stock_thickness_mm': [1.02, 1.6, 2.03, 2.29, 2.54, 3.18]}, 'evidence': ['https://sendcutsend.com/materials/5052-aluminum/', 'https://sendcutsend.com/services/sheet-cutting/', 'https://www.oshcut.com/materials', 'https://www.oshcut.com/capabilities', 'https://www.xometry.com/capabilities/sheet-cutting/metal-laser-cutting/']}, 'additionalProperties': False}}, 'description': 'Transport-neutral, screened request for supplier pricing. This schema conveys no order or fabrication authority.', 'x-a2a2p-projection': {'lifecycle': 'derived_at_read', 'field_origins': {'gaps': 'derived from absent or insufficient quote-critical requirement fields', 'request': 'declared requirement fields, projected without invention', 'geometry': 'derived description of declared design-file references', 'screening': 'derived by quote-stage screening of the same caller-held requirement', 'provenance': 'derived projection metadata plus caller-declared delivery context', 'artifact_identity': 'derived from canonical supplier-package bytes at read time', 'quote_stage_eligibility': 'derived from the complete caller-held requirement and package gates at read time'}, 'source_of_truth': 'caller-held a2a2p requirement plus the deterministic review produced from that requirement'}, 'additionalProperties': True}
check_quote_job
Check an asynchronous provider-estimate job created by request_provider_estimate, including its queued or terminal execution substate. Terminal statuses: completed, degraded, refused. An unknown read returns reason_code=unknown_or_not_yet_visible. Retry with backoff only when the id came from an authoritative admitted response; never infer an id after a rejected admission.
입력 스키마
{'type': 'object', 'required': ['quote_job_id'], 'properties': {'quote_job_id': {'type': 'string', 'description': 'The quote_job_id returned by request_provider_estimate, e.g. QJ-XEQBYMHK.'}}}
check_request_status
Check the status of a previously submitted physical-solution request. Returns a generated machine draft as soon as it exists, with a versioned delivery receipt that distinguishes pending_machine_draft, generation_failed, generation_expired, machine_draft, and operator_published. The receipt exposes privacy-minimized automatic-generation progress: observed attempt count, fixed maximum, current eligibility, and exact next automatic-attempt time, without model errors or request content. Professional engineering, supplier-quote, and physical-action claims remain false. generation_failed and generation_expired are terminal for that request id and permit only a caller-confirmed new request from caller-held input. For an immutable revision, it also returns its persisted deterministic readiness_progress comparison.
입력 스키마
{'type': 'object', 'required': ['request_id'], 'properties': {'request_id': {'type': 'string', 'description': 'The request_id returned by request_physical_solution, e.g. A2A2P-7K2M4X.'}}}
출력 스키마
{'type': 'object', 'required': ['request_id', 'status', 'submitted', 'report_delivery'], 'properties': {'quote': {'type': 'object'}, 'status': {'type': 'string'}, 'message': {'type': 'string'}, 'submitted': {'type': 'string'}, 'request_id': {'type': 'string'}, 'report_delivery': {'$id': 'https://a2a2p.com/schema/resolution-report-delivery', 'type': 'object', 'allOf': [{'if': {'required': ['state'], 'properties': {'state': {'const': 'pending_machine_draft'}}}, 'then': {'properties': {'retry': {'properties': {'allowed': {'const': False}, 'operation': {'const': None}, 'caller_confirmation_required': {'const': False}}}, 'available': {'const': False}, 'operator_published': {'const': False}}}}, {'if': {'required': ['state'], 'properties': {'state': {'const': 'generation_failed'}}}, 'then': {'properties': {'retry': {'properties': {'allowed': {'const': True}, 'operation': {'const': 'request_physical_solution'}, 'caller_confirmation_required': {'const': True}}}, 'available': {'const': False}, 'generation': {'properties': {'state': {'enum': ['attempts_exhausted', 'invalid_state']}}}, 'operator_published': {'const': False}}}}, {'if': {'required': ['state'], 'properties': {'state': {'const': 'generation_expired'}}}, 'then': {'properties': {'retry': {'properties': {'allowed': {'const': True}, 'operation': {'const': 'request_physical_solution'}, 'caller_confirmation_required': {'const': True}}}, 'available': {'const': False}, 'operator_published': {'const': False}}}}, {'if': {'required': ['state'], 'properties': {'state': {'const': 'machine_draft'}}}, 'then': {'properties': {'retry': {'properties': {'allowed': {'const': False}, 'operation': {'const': None}, 'caller_confirmation_required': {'const': False}}}, 'available': {'const': True}, 'operator_published': {'const': False}}}}, {'if': {'required': ['state'], 'properties': {'state': {'const': 'operator_published'}}}, 'then': {'properties': {'retry': {'properties': {'allowed': {'const': False}, 'operation': {'const': None}, 'caller_confirmation_required': {'const': False}}}, 'available': {'const': True}, 'operator_published': {'const': True}}}}], 'title': 'a2a2p resolution-report delivery receipt', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract', 'version', 'state', 'generation', 'available', 'operator_published', 'professional_engineering_review_claimed', 'supplier_quote', 'external_action', 'retry', 'authority', 'limitations'], 'properties': {'retry': {'type': 'object', 'required': ['allowed', 'same_request_id', 'operation', 'caller_confirmation_required'], 'properties': {'allowed': {'type': 'boolean'}, 'operation': {'enum': [None, 'request_physical_solution']}, 'same_request_id': {'type': 'boolean', 'const': False}, 'caller_confirmation_required': {'type': 'boolean'}}, 'additionalProperties': False}, 'state': {'enum': ['pending_machine_draft', 'generation_failed', 'generation_expired', 'machine_draft', 'operator_published'], 'type': 'string'}, 'version': {'const': '1.4.0'}, 'contract': {'const': 'a2a2p.resolution-report-delivery'}, 'authority': {'type': 'object', 'required': ['supplier_contact', 'purchase', 'payment', 'fabrication', 'shipment'], 'properties': {'payment': {'type': 'boolean', 'const': False}, 'purchase': {'type': 'boolean', 'const': False}, 'shipment': {'type': 'boolean', 'const': False}, 'fabrication': {'type': 'boolean', 'const': False}, 'supplier_contact': {'type': 'boolean', 'const': False}}, 'additionalProperties': False}, 'available': {'type': 'boolean'}, 'generation': {'type': 'object', 'allOf': [{'if': {'required': ['state'], 'properties': {'state': {'enum': ['not_observed', 'invalid_state']}}}, 'then': {'properties': {'history_complete': {'const': False}, 'attempt_count_observed': {'const': None}}}}, {'if': {'required': ['state'], 'properties': {'state': {'enum': ['attempting', 'retry_scheduled', 'succeeded', 'attempts_exhausted']}}}, 'then': {'properties': {'history_complete': {'const': True}, 'attempt_count_observed': {'type': 'integer', 'minimum': 1}}}}, {'if': {'required': ['state'], 'properties': {'state': {'enum': ['succeeded', 'attempts_exhausted', 'invalid_state']}}}, 'then': {'properties': {'automatic_retry_eligible': {'const': False}, 'next_automatic_attempt_not_before': {'const': None}}}}, {'if': {'required': ['state'], 'properties': {'state': {'const': 'attempts_exhausted'}}}, 'then': {'properties': {'attempt_count_observed': {'const': 3}}}}, {'if': {'required': ['state', 'automatic_retry_eligible'], 'properties': {'state': {'enum': ['attempting', 'retry_scheduled']}, 'automatic_retry_eligible': {'const': False}}}, 'then': {'properties': {'next_automatic_attempt_not_before': {'type': 'string', 'format': 'date-time'}}}}, {'if': {'required': ['state', 'automatic_retry_eligible'], 'properties': {'state': {'enum': ['attempting', 'retry_scheduled']}, 'automatic_retry_eligible': {'const': True}}}, 'then': {'properties': {'next_automatic_attempt_not_before': {'const': None}}}}], 'required': ['contract', 'version', 'state', 'attempt_count_observed', 'max_attempts', 'history_complete', 'automatic_retry_eligible', 'next_automatic_attempt_not_before'], 'properties': {'state': {'enum': ['not_observed', 'attempting', 'retry_scheduled', 'succeeded', 'attempts_exhausted', 'invalid_state'], 'type': 'string'}, 'version': {'const': '1.1.0'}, 'contract': {'const': 'a2a2p.draft-generation-policy'}, 'max_attempts': {'type': 'integer', 'const': 3}, 'history_complete': {'type': 'boolean'}, 'attempt_count_observed': {'type': ['integer', 'null'], 'maximum': 3, 'minimum': 0}, 'automatic_retry_eligible': {'type': 'boolean'}, 'next_automatic_attempt_not_before': {'type': ['string', 'null'], 'format': 'date-time'}}, 'additionalProperties': False}, 'limitations': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1}, 'supplier_quote': {'type': 'boolean', 'const': False}, 'external_action': {'type': 'boolean', 'const': False}, 'operator_published': {'type': 'boolean'}, 'professional_engineering_review_claimed': {'type': 'boolean', 'const': False}}, 'description': 'Distinguishes report availability and publication provenance from request lifecycle, supplier quoting, and physical authority.', 'additionalProperties': False}, 'resolution_report': {'type': 'object'}, 'readiness_progress': {'type': 'object'}}, 'additionalProperties': True}
derive_rectangular_beam_section
Derive one proposal-only prismatic rectangular beam height from a caller-declared purpose, supported idealized load model, fixed width, explicit elastic modulus, and at least one requester acceptance criterion. The operation solves closed-form equations, rounds upward to the caller's manufacturing increment, and re-runs the canonical bounded evaluator. It performs no general optimization, material selection, network call, supplier contact, persistence, purchase, or fabrication and grants no engineering or physical authority.
입력 스키마
{'$id': 'https://a2a2p.com/schema/beam-section-derivation', 'type': 'object', 'allOf': [{'anyOf': [{'required': ['max_deflection_mm'], 'properties': {'max_deflection_mm': {'type': 'number', 'exclusiveMinimum': 0}}}, {'required': ['allowable_stress_mpa'], 'properties': {'allowable_stress_mpa': {'type': 'number', 'exclusiveMinimum': 0}}}]}], 'title': 'a2a2p bounded rectangular beam-section derivation', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['purpose', 'model', 'load_n', 'span_mm', 'section_width_mm', 'elastic_modulus_gpa', 'max_deflection_mm', 'allowable_stress_mpa', 'manufacturing_increment_mm'], 'properties': {'model': {'enum': ['cantilever_end_load', 'simply_supported_center_load']}, 'load_n': {'type': 'number', 'exclusiveMinimum': 0}, 'purpose': {'type': 'string', 'maxLength': 2000, 'minLength': 12}, 'span_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'section_width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'elastic_modulus_gpa': {'type': 'number', 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'manufacturing_increment_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
explore_rectangular_beam_sections
Evaluate 2 to 12 caller-declared rectangular beam widths through the canonical bounded height derivation, then return every proposal and the exact non-dominated frontier for minimizing section height and idealized prismatic material volume. Width order is normalized; duplicates fail closed. The operation never invents a width, assigns an aggregate score, selects a candidate, estimates material cost, verifies manufacturing or omitted failure modes, calls an external system, or grants engineering, purchase, or fabrication authority.
입력 스키마
{'$id': 'https://a2a2p.com/schema/beam-section-design-space', 'type': 'object', 'allOf': [{'anyOf': [{'required': ['max_deflection_mm'], 'properties': {'max_deflection_mm': {'type': 'number', 'exclusiveMinimum': 0}}}, {'required': ['allowable_stress_mpa'], 'properties': {'allowable_stress_mpa': {'type': 'number', 'exclusiveMinimum': 0}}}]}], 'title': 'a2a2p bounded rectangular beam-section design space', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['purpose', 'model', 'load_n', 'span_mm', 'section_width_options_mm', 'elastic_modulus_gpa', 'max_deflection_mm', 'allowable_stress_mpa', 'manufacturing_increment_mm'], 'properties': {'model': {'enum': ['cantilever_end_load', 'simply_supported_center_load']}, 'load_n': {'type': 'number', 'exclusiveMinimum': 0}, 'purpose': {'type': 'string', 'maxLength': 2000, 'minLength': 12}, 'span_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'elastic_modulus_gpa': {'type': 'number', 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'section_width_options_mm': {'type': 'array', 'items': {'type': 'number', 'exclusiveMinimum': 0}, 'maxItems': 12, 'minItems': 2, 'description': 'Finite caller-owned width set. Input order has no decision meaning and is normalized ascending before evaluation.', 'uniqueItems': True}, 'manufacturing_increment_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
get_supply_options
Instant, synchronous pricing and lead time for a physical requirement — nothing is submitted or stored. Returns a deterministic parametric estimate (source="estimate", pricing_kind="model_estimate", clearly labeled, never presented as a quote). The protocol separately labels provider_estimate and provider_quote; public provider routing is not active. An explicit specification.assembly with two or more parts returns decomposition_required before file inspection or pricing; submit each fabricated part separately. Covers CNC machining, sheet metal, 3D printing, casting, injection molding, and extrusion. ATTACH AN STL in specification.design_files and a2a2p measures the mesh directly — true volume, surface area, bounding box — which replaces guesswork with measurement and returns manufacturability findings only geometry reveals. Otherwise supply intent.geometric_envelope (bounding box in mm), quantity, and material. Use this to answer "what will this cost and how long will it take?" inside a single session, before committing to a full resolution report.
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'required': [], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
normalize_stl_units
Create a genuinely millimetre-scaled derivative from an active temporary binary STL whose exporter is known to emit metre coordinates. The operation never guesses units from a filename or plausible size. It requires the exact source SHA-256, an exporter statement tied to a named system and revision, and a separate expected-envelope check. It preserves the source, stores the derivative under a new one-hour file_reference, and returns separate source and derivative hashes. Conversion only: no supplier selection, quote request, order, payment, fabrication, or external contact occurs.
입력 스키마
{'type': 'object', 'required': ['file_reference', 'source_sha256', 'source_units', 'target_units', 'unit_evidence', 'validation'], 'properties': {'validation': {'type': 'object', 'required': ['expected_bounding_box_mm', 'tolerance_mm'], 'properties': {'tolerance_mm': {'type': 'number', 'minimum': 0}, 'expected_bounding_box_mm': {'type': 'object', 'required': ['x', 'y', 'z'], 'properties': {'x': {'type': 'number', 'exclusiveMinimum': 0}, 'y': {'type': 'number', 'exclusiveMinimum': 0}, 'z': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'source_units': {'type': 'string', 'const': 'm'}, 'target_units': {'type': 'string', 'const': 'mm'}, 'source_sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$', 'description': 'SHA-256 of the exact uploaded source STL bytes.'}, 'unit_evidence': {'type': 'object', 'required': ['basis', 'source_system', 'source_revision', 'export_operation', 'statement'], 'properties': {'basis': {'enum': ['producer_declaration', 'exporter_contract', 'verified_export_run'], 'type': 'string'}, 'statement': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'source_system': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'source_revision': {'type': 'string', 'maxLength': 160, 'minLength': 1}, 'export_operation': {'type': 'string', 'maxLength': 160, 'minLength': 1}}, 'additionalProperties': False}, 'file_reference': {'type': 'object', 'required': ['url', 'format', 'role'], 'properties': {'url': {'type': 'string', 'pattern': '^https://(?:www\\.)?a2a2p\\.com/file/f-[a-z0-9]{8,16}$'}, 'role': {'type': 'string', 'const': 'geometry'}, 'format': {'type': 'string', 'const': 'stl'}}, 'additionalProperties': False}}, 'additionalProperties': False}
출력 스키마
{'type': 'object', 'additionalProperties': True}
plan_material_evidence_promotion
Plan the evidence needed to transform a validated material source observation into a future material-property-evidence input. Deterministic and stateless: it compares exact property, material-state, orientation, temperature, and process context; binds source, target, and planner digests; and names conflicts plus missing method, uncertainty, freshness, and excerpt evidence. It never promotes the observation, creates simulation input, calls a model or solver, contacts a supplier/provider, or grants engineering, order, payment, or fabrication authority.
입력 스키마
{'type': 'object', 'required': ['observation', 'target'], 'properties': {'target': {'type': 'object', 'required': ['property', 'material_state', 'applicability'], 'properties': {'property': {'type': 'object', 'required': ['quantity', 'value', 'unit'], 'properties': {'unit': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'value': {'type': 'number'}, 'quantity': {'type': 'string', 'pattern': '\\S', 'minLength': 1}}, 'additionalProperties': False}, 'applicability': {'type': 'object', 'required': ['temperature_c', 'orientation', 'manufacturing_process'], 'properties': {'orientation': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'temperature_c': {'type': 'number'}, 'manufacturing_process': {'type': 'string', 'pattern': '\\S', 'minLength': 1}}, 'additionalProperties': False}, 'material_state': {'type': 'object', 'required': ['name', 'grade', 'condition', 'product_form'], 'properties': {'name': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'grade': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'condition': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'product_form': {'type': 'string', 'pattern': '\\S', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'observation': {'$id': 'https://a2a2p.com/schema/material-source-observation', 'type': 'object', 'title': 'a2a2p material source observation', '$schema': 'https://json-schema.org/draft/2020-12/schema', '$comment': 'JSON Schema constrains the reusable envelope. Consumers must also run the semantic validator for digest/page binding, applicability consistency, verification support, and the non-authority boundary.', 'required': ['contract', 'contract_version', 'state', 'license', 'observation_id', 'source', 'reported_claim', 'applicability', 'claim_limits', 'source_caveat', 'authority'], 'properties': {'state': {'const': 'source_observed'}, 'source': {'type': 'object', 'required': ['publisher', 'document_id', 'title', 'landing_url', 'download_url', 'media_type', 'bytes', 'sha256', 'pdf_page', 'embedded_record', 'retrieval'], 'properties': {'bytes': {'type': 'integer', 'minimum': 1}, 'title': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'pdf_page': {'type': 'integer', 'minimum': 1}, 'publisher': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'retrieval': {'type': 'object', 'required': ['retrieved_at', 'file_signature_verified', 'document_bytes_verified', 'observed_page_text_extracted', 'runtime_retrieval'], 'properties': {'retrieved_at': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'runtime_retrieval': {'type': 'boolean'}, 'document_bytes_verified': {'type': 'boolean'}, 'file_signature_verified': {'type': 'boolean'}, 'observed_page_text_extracted': {'type': 'boolean'}}, 'additionalProperties': False}, 'media_type': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'document_id': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'landing_url': {'type': 'string', 'format': 'uri', 'pattern': '\\S', 'minLength': 1}, 'download_url': {'type': 'string', 'format': 'uri', 'pattern': '\\S', 'minLength': 1}, 'embedded_record': {'type': 'object', 'required': ['system', 'record', 'printed_on', 'source_figure', 'heading'], 'properties': {'record': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'system': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'heading': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'printed_on': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'source_figure': {'type': 'string', 'pattern': '\\S', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'license': {'const': 'CC0-1.0'}, 'contract': {'const': 'a2a2p.material-source-observation'}, 'authority': {'type': 'object', 'required': ['candidate_selection', 'engineering_validation', 'design_certification', 'safety_approval', 'supplier_contact', 'order', 'payment', 'fabrication'], 'properties': {'order': {'const': False}, 'payment': {'const': False}, 'fabrication': {'const': False}, 'safety_approval': {'const': False}, 'supplier_contact': {'const': False}, 'candidate_selection': {'const': False}, 'design_certification': {'const': False}, 'engineering_validation': {'const': False}}, 'additionalProperties': False}, 'claim_limits': {'type': 'object', 'required': ['source_document_identity_verified', 'reported_value_transcribed', 'source_claim_independently_reproduced', 'independent_physical_measurement', 'actual_material_identity_verified', 'temperature_applicability_established', 'design_allowable_claimed', 'engineering_validation', 'design_certification', 'physical_truth'], 'properties': {'physical_truth': {'const': False}, 'design_certification': {'const': False}, 'engineering_validation': {'const': False}, 'design_allowable_claimed': {'const': False}, 'reported_value_transcribed': {'type': 'boolean'}, 'independent_physical_measurement': {'const': False}, 'actual_material_identity_verified': {'const': False}, 'source_document_identity_verified': {'type': 'boolean'}, 'source_claim_independently_reproduced': {'const': False}, 'temperature_applicability_established': {'const': False}}, 'additionalProperties': False}, 'applicability': {'type': 'object', 'required': ['established', 'not_established', 'simulation_eligible', 'reason'], 'properties': {'reason': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'established': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'uniqueItems': True}, 'not_established': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'uniqueItems': True}, 'simulation_eligible': {'const': False}}, 'additionalProperties': False}, 'source_caveat': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'observation_id': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'reported_claim': {'type': 'object', 'required': ['quantity', 'value', 'unit', 'source_notation', 'orientation', 'material_state', 'value_present_on_observed_page'], 'properties': {'unit': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'value': {'type': 'number'}, 'quantity': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'orientation': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'material_state': {'type': 'object', 'required': ['common_name', 'condition', 'product_form', 'thickness_range', 'specifications', 'stated_basis'], 'properties': {'condition': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'common_name': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'product_form': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'stated_basis': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'specifications': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'uniqueItems': True}, 'thickness_range': {'type': 'object', 'required': ['min', 'max', 'unit'], 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}, 'unit': {'type': 'string', 'pattern': '\\S', 'minLength': 1}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'source_notation': {'type': 'object', 'required': ['value', 'unit'], 'properties': {'unit': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'value': {'type': 'number'}}, 'additionalProperties': False}, 'value_present_on_observed_page': {'type': 'boolean'}}, 'additionalProperties': False}, 'contract_version': {'const': '0.2.0-draft'}}, 'additionalProperties': False}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
prepare_derived_beam_simulation
Compile one exact replay-verified rectangular-beam derivation into a prepared bounded simulation study. The caller must supply the original derivation input and receipt, its exact validation receipt, simulation-eligible source-bound material evidence matching the modulus, an objective, source freshness, and a physical validation plan. The compiler replays first, derives a stable candidate ID, repeats deterministic review, preserves requester criteria as hard gates, and publishes omitted failure modes. It never chooses material or objective, verifies physical truth, runs a solver, stores data, contacts a supplier, or grants physical authority.
입력 스키마
{'type': 'object', 'required': ['derivation_input', 'derivation_receipt', 'derivation_validation', 'source_metadata', 'objectives', 'material_property_evidence', 'physical_validation_plan'], 'properties': {'objectives': {'type': 'array', 'items': {'type': 'object', 'required': ['objective_id', 'quantity', 'unit', 'direction', 'priority', 'proxy'], 'properties': {'unit': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'proxy': {'type': 'object', 'allOf': [{'if': {'required': ['is_proxy'], 'properties': {'is_proxy': {'const': True}}}, 'else': {'properties': {'validity_domain': {'type': 'null'}, 'divergence_regime': {'type': 'null'}, 'target_requirement_id': {'type': 'null'}}}, 'then': {'properties': {'validity_domain': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'divergence_regime': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'target_requirement_id': {'type': 'string', 'maxLength': 500, 'minLength': 1}}}}], 'required': ['is_proxy', 'target_requirement_id', 'validity_domain', 'divergence_regime'], 'properties': {'is_proxy': {'type': 'boolean'}, 'validity_domain': {'type': ['string', 'null'], 'maxLength': 1000}, 'divergence_regime': {'type': ['string', 'null'], 'maxLength': 1000}, 'target_requirement_id': {'type': ['string', 'null'], 'maxLength': 500}}, 'additionalProperties': False}, 'priority': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'quantity': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'direction': {'enum': ['minimize', 'maximize']}, 'objective_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 32, 'minItems': 1}, 'source_metadata': {'type': 'object', 'required': ['id', 'version', 'staleness'], 'properties': {'id': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'staleness': {'type': 'object', 'required': ['checked_at', 'refresh_after'], 'properties': {'checked_at': {'type': 'string', 'format': 'date-time'}, 'refresh_after': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'derivation_input': {'type': 'object', 'allOf': [{'anyOf': [{'required': ['max_deflection_mm'], 'properties': {'max_deflection_mm': {'type': 'number', 'exclusiveMinimum': 0}}}, {'required': ['allowable_stress_mpa'], 'properties': {'allowable_stress_mpa': {'type': 'number', 'exclusiveMinimum': 0}}}]}], 'required': ['purpose', 'model', 'load_n', 'span_mm', 'section_width_mm', 'elastic_modulus_gpa', 'max_deflection_mm', 'allowable_stress_mpa', 'manufacturing_increment_mm'], 'properties': {'model': {'enum': ['cantilever_end_load', 'simply_supported_center_load']}, 'load_n': {'type': 'number', 'exclusiveMinimum': 0}, 'purpose': {'type': 'string', 'maxLength': 2000, 'minLength': 12}, 'span_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'section_width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'elastic_modulus_gpa': {'type': 'number', 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'manufacturing_increment_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'derivation_receipt': {'type': 'object', 'required': ['contract', 'contract_version', 'state', 'purpose', 'binding', 'derivation', 'candidate', 'verification', 'assumptions', 'claim_limits', 'next', 'external_effects', 'authority'], 'properties': {'next': {'type': 'object'}, 'state': {'const': 'candidate_derived_and_conditionally_verified'}, 'binding': {'type': 'object'}, 'purpose': {'type': 'string'}, 'contract': {'const': 'a2a2p.rectangular-beam-section-derivation'}, 'authority': {'type': 'object'}, 'candidate': {'type': 'object'}, 'screening': {'type': 'object', 'required': ['verdict', 'stage', 'policy_version', 'categories', 'flags', 'requires_human_review_before_external_action'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 100}, 'stage': {'const': 'review'}, 'verdict': {'enum': ['allow', 'review']}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 100}, 'policy_version': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'requires_human_review_before_external_action': {'type': 'boolean'}}, 'additionalProperties': False}, 'derivation': {'type': 'object'}, 'assumptions': {'type': 'array'}, 'claim_limits': {'type': 'object'}, 'verification': {'type': 'object'}, 'contract_version': {'const': '0.1.0-draft'}, 'external_effects': {'type': 'object'}}, 'additionalProperties': False}, 'derivation_validation': {'type': 'object', 'description': 'Exact output returned by validate_rectangular_beam_section_derivation for the same input and receipt. Runtime replay and full canonical comparison are authoritative.'}, 'physical_validation_plan': {'type': 'array', 'items': {'type': 'object', 'required': ['test_id', 'measured_quantity', 'unit', 'acceptance_criterion', 'authority_required'], 'properties': {'unit': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'test_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'measured_quantity': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'authority_required': {'const': True}, 'acceptance_criterion': {'type': 'string', 'maxLength': 1000, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'material_property_evidence': {'type': 'object', 'required': ['property', 'material_state', 'applicability', 'basis', 'source'], 'properties': {'basis': {'type': 'object', 'required': ['class', 'method', 'uncertainty'], 'properties': {'class': {'enum': ['engineering_datasheet', 'experimental_measurement', 'computed_crystal']}, 'method': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'uncertainty': {'type': 'object', 'allOf': [{'if': {'required': ['kind'], 'properties': {'kind': {'const': 'not_reported'}}}, 'else': {'properties': {'value': {'type': 'number', 'minimum': 0}}}, 'then': {'properties': {'value': {'type': 'null'}}}}], 'required': ['kind', 'value'], 'properties': {'kind': {'enum': ['relative_percent', 'not_reported']}, 'value': {'type': ['number', 'null'], 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'source': {'type': 'object', 'required': ['kind', 'id', 'version', 'checked_at', 'refresh_after', 'excerpt'], 'properties': {'id': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'kind': {'enum': ['cited_reference', 'materials_database', 'plm_record']}, 'excerpt': {'type': 'string', 'maxLength': 20000, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'checked_at': {'type': 'string', 'format': 'date-time'}, 'refresh_after': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['quantity', 'value', 'unit'], 'properties': {'unit': {'const': 'GPa'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}, 'quantity': {'const': 'elastic_modulus'}}, 'additionalProperties': False}, 'applicability': {'type': 'object', 'required': ['temperature_c', 'orientation', 'manufacturing_process'], 'properties': {'orientation': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'temperature_c': {'type': ['number', 'null'], 'description': 'Celsius applicability. null is accepted only for computed_crystal evidence and keeps the result reference-only.'}, 'manufacturing_process': {'type': 'string', 'maxLength': 300, 'minLength': 1}}, 'additionalProperties': False}, 'material_state': {'type': 'object', 'required': ['name', 'grade', 'condition', 'product_form'], 'properties': {'name': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'grade': {'type': ['string', 'null'], 'maxLength': 300}, 'condition': {'type': ['string', 'null'], 'maxLength': 300}, 'product_form': {'type': ['string', 'null'], 'maxLength': 300}}, 'additionalProperties': False}}, 'description': 'Caller-supplied exact material-property source snapshot. Binding proves content identity and envelope validity only; it does not verify the source claim or create a design allowable.', 'additionalProperties': False, 'x-a2a2p-simulation-eligibility-fields': ['material_state.name', 'material_state.grade', 'material_state.condition', 'material_state.product_form', 'applicability.temperature_c', 'applicability.orientation', 'applicability.manufacturing_process'], 'x-a2a2p-simulation-ineligible-normalized-values': ['unknown', 'unspecified', 'not specified', 'not applicable', 'n/a', 'na', 'none', 'null', 'tbd', 'to be determined', 'pending']}}, 'description': 'Replay-gated compiler from one bounded rectangular-beam derivation into one prepared simulation study. Material evidence, objective, source freshness, and physical validation remain caller-owned and mandatory.', 'additionalProperties': False}
출력 스키마
{'type': 'object'}
prepare_domain_solutioning_case
Prepare a synchronous, deterministic, privacy-minimized engineering case for a compatible domain-intelligence system. Use it when intake_classification is capability_concept or assembly_or_system and mechanism selection or decomposition is required, or when a complete single-part intent has no specifications and review offers the design_brief continuation. The case preserves requester facts, deterministic evidence, screening state, unknowns, and a versioned candidate-output contract while removing design-file URLs, bytes, contact fields, and callback routes. This operation does not call deb8stack or any model, choose a mechanism, validate a proposal, store a request, contact a supplier, or grant quote, order, payment, or fabrication authority.
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'required': [], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
출력 스키마
{'$id': 'https://a2a2p.com/schema/domain-solutioning', 'type': 'object', '$defs': {'result': {'type': 'object', 'required': ['contract', 'contract_version', 'case_digest', 'framework', 'model_provenance', 'candidates', 'recommendation', 'dissent', 'authority'], 'properties': {'dissent': {'type': 'array', 'items': {'type': 'object', 'required': ['candidate_id', 'concern'], 'properties': {'concern': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'candidate_id': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100}, 'contract': {'const': 'a2a2p.domain-solutioning'}, 'authority': {'$ref': '#/$defs/authority'}, 'framework': {'type': 'object', 'required': ['id', 'version'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': True}, 'candidates': {'type': 'array', 'items': {'$ref': '#/$defs/candidate'}, 'maxItems': 5, 'minItems': 1}, 'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'recommendation': {'type': 'object', 'required': ['candidate_id', 'because', 'overturn_if'], 'properties': {'because': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'overturn_if': {'type': 'array', 'items': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'candidate_id': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': True}, 'contract_version': {'const': '0.3.0-draft'}, 'model_provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['provider', 'model', 'role'], 'properties': {'role': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'model': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'provider': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 32, 'minItems': 1}}, 'additionalProperties': False}, 'authority': {'type': 'object', 'required': ['requirement_fact_mutation', 'safety_override', 'engineering_validation', 'supplier_contact', 'provider_call', 'quote_request', 'order', 'payment', 'fabrication'], 'properties': {'order': {'const': False}, 'payment': {'const': False}, 'fabrication': {'const': False}, 'provider_call': {'const': False}, 'quote_request': {'const': False}, 'safety_override': {'const': False}, 'supplier_contact': {'const': False}, 'engineering_validation': {'const': False}, 'requirement_fact_mutation': {'const': False}}, 'additionalProperties': False}, 'candidate': {'type': 'object', 'required': ['candidate_id', 'mechanism', 'functional_decomposition', 'specification_patch', 'assumptions', 'unknowns', 'tradeoffs', 'evidence_refs', 'validation_plan', 'rejected_alternatives'], 'properties': {'unknowns': {'type': 'array', 'items': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'maxItems': 100}, 'mechanism': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'tradeoffs': {'type': 'array', 'items': {'type': 'object', 'required': ['choice', 'benefit', 'cost'], 'properties': {'cost': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'choice': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'benefit': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}, 'assumptions': {'type': 'array', 'items': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'maxItems': 100}, 'candidate_id': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'evidence_refs': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'path'], 'properties': {'kind': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'path': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}, 'validation_plan': {'type': 'array', 'items': {'type': 'object', 'required': ['test', 'criterion'], 'properties': {'test': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'criterion': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}, 'specification_patch': {'type': 'object', 'properties': {'process': {'not': {'type': 'null'}}, 'material': {'not': {'type': 'null'}}, 'part_type': {'not': {'type': 'null'}}, 'dimensions': {'not': {'type': 'null'}}, 'surface_finish': {'not': {'type': 'null'}}, 'post_processing': {'not': {'type': 'null'}}, 'tolerance_class': {'not': {'type': 'null'}}}, 'description': 'Proposal-only patch to current canonical specification fields. design_files and intent are excluded because intelligence receives neither file bytes nor authority to alter requester facts.', 'minProperties': 1, 'additionalProperties': False}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'required': ['mechanism', 'reason'], 'properties': {'reason': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'mechanism': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100}, 'functional_decomposition': {'type': 'array', 'items': {'type': 'object', 'required': ['function', 'part'], 'properties': {'part': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'function': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}}, 'additionalProperties': False}}, 'title': 'a2a2p domain-solutioning interoperability contract', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'contract': 'a2a2p.domain-solutioning', 'required': ['contract', 'contract_version', 'case_digest', 'requirement', 'deterministic_evidence', 'safety', 'requested_work', 'expected_result', 'activation', 'provenance', 'authority', 'next'], 'properties': {'next': {'type': 'object'}, 'safety': {'type': 'object', 'required': ['verdict', 'policy_version']}, 'contract': {'const': 'a2a2p.domain-solutioning'}, 'authority': {'$ref': '#/$defs/authority'}, 'activation': {'type': 'object'}, 'provenance': {'type': 'object'}, 'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'requirement': {'type': 'object'}, 'requested_work': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'expected_result': {'type': 'object'}, 'contract_version': {'const': '0.3.0-draft'}, 'deterministic_evidence': {'type': 'object'}}, 'description': 'Case handoff and candidate-return schema. Intelligence proposes; deterministic evidence, safety, and external authority remain outside model control.', 'contract_version': '0.3.0-draft', 'additionalProperties': False}
prepare_reviewed_beam_simulation
Compile one caller-selected domain-solutioning candidate into a prepared bounded beam simulation study after repeating deterministic engineering review. The requirement must explicitly state the supported load model, geometry, load, and elastic modulus; the caller must state the objective, source freshness, and physical validation plan. Optional material_property_evidence content-addresses an exact engineering datasheet or measurement with material state, applicability, method, and uncertainty; its value must match the requirement. Semantic placeholders such as unknown, unspecified, n/a, or tbd cannot make material state or applicability simulation-eligible. Computed-crystal evidence remains screening/reference-only because this scalar product model cannot preserve its tensor, orientation, grade, condition, or product-form boundary. Requester limits become hard constraints. It never verifies a source claim, selects a candidate, invents physics, runs a solver, stores data, contacts a supplier, or grants physical authority.
입력 스키마
{'type': 'object', 'required': ['simulation_handoff', 'candidate_id', 'requirement', 'source_metadata', 'objectives', 'physical_validation_plan'], 'properties': {'objectives': {'type': 'array', 'items': {'type': 'object', 'required': ['objective_id', 'quantity', 'unit', 'direction', 'priority', 'proxy'], 'properties': {'unit': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'proxy': {'type': 'object', 'allOf': [{'if': {'required': ['is_proxy'], 'properties': {'is_proxy': {'const': True}}}, 'else': {'properties': {'validity_domain': {'type': 'null'}, 'divergence_regime': {'type': 'null'}, 'target_requirement_id': {'type': 'null'}}}, 'then': {'properties': {'validity_domain': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'divergence_regime': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'target_requirement_id': {'type': 'string', 'maxLength': 500, 'minLength': 1}}}}], 'required': ['is_proxy', 'target_requirement_id', 'validity_domain', 'divergence_regime'], 'properties': {'is_proxy': {'type': 'boolean'}, 'validity_domain': {'type': ['string', 'null'], 'maxLength': 1000}, 'divergence_regime': {'type': ['string', 'null'], 'maxLength': 1000}, 'target_requirement_id': {'type': ['string', 'null'], 'maxLength': 500}}, 'additionalProperties': False}, 'priority': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'quantity': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'direction': {'enum': ['minimize', 'maximize']}, 'objective_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 32, 'minItems': 1}, 'requirement': {'type': 'object'}, 'candidate_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'source_metadata': {'type': 'object', 'required': ['id', 'version', 'staleness'], 'properties': {'id': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'staleness': {'type': 'object', 'required': ['checked_at', 'refresh_after'], 'properties': {'checked_at': {'type': 'string', 'format': 'date-time'}, 'refresh_after': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'simulation_handoff': {'type': 'object'}, 'physical_validation_plan': {'type': 'array', 'items': {'type': 'object', 'required': ['test_id', 'measured_quantity', 'unit', 'acceptance_criterion', 'authority_required'], 'properties': {'unit': {'type': 'string', 'maxLength': 80, 'minLength': 1}, 'test_id': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'measured_quantity': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'authority_required': {'const': True}, 'acceptance_criterion': {'type': 'string', 'maxLength': 1000, 'minLength': 1}}, 'additionalProperties': False}, 'maxItems': 100, 'minItems': 1}, 'material_property_evidence': {'type': 'object', 'required': ['property', 'material_state', 'applicability', 'basis', 'source'], 'properties': {'basis': {'type': 'object', 'required': ['class', 'method', 'uncertainty'], 'properties': {'class': {'enum': ['engineering_datasheet', 'experimental_measurement', 'computed_crystal']}, 'method': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'uncertainty': {'type': 'object', 'allOf': [{'if': {'required': ['kind'], 'properties': {'kind': {'const': 'not_reported'}}}, 'else': {'properties': {'value': {'type': 'number', 'minimum': 0}}}, 'then': {'properties': {'value': {'type': 'null'}}}}], 'required': ['kind', 'value'], 'properties': {'kind': {'enum': ['relative_percent', 'not_reported']}, 'value': {'type': ['number', 'null'], 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'source': {'type': 'object', 'required': ['kind', 'id', 'version', 'checked_at', 'refresh_after', 'excerpt'], 'properties': {'id': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'kind': {'enum': ['cited_reference', 'materials_database', 'plm_record']}, 'excerpt': {'type': 'string', 'maxLength': 20000, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'checked_at': {'type': 'string', 'format': 'date-time'}, 'refresh_after': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['quantity', 'value', 'unit'], 'properties': {'unit': {'const': 'GPa'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}, 'quantity': {'const': 'elastic_modulus'}}, 'additionalProperties': False}, 'applicability': {'type': 'object', 'required': ['temperature_c', 'orientation', 'manufacturing_process'], 'properties': {'orientation': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'temperature_c': {'type': ['number', 'null'], 'description': 'Celsius applicability. null is accepted only for computed_crystal evidence and keeps the result reference-only.'}, 'manufacturing_process': {'type': 'string', 'maxLength': 300, 'minLength': 1}}, 'additionalProperties': False}, 'material_state': {'type': 'object', 'required': ['name', 'grade', 'condition', 'product_form'], 'properties': {'name': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'grade': {'type': ['string', 'null'], 'maxLength': 300}, 'condition': {'type': ['string', 'null'], 'maxLength': 300}, 'product_form': {'type': ['string', 'null'], 'maxLength': 300}}, 'additionalProperties': False}}, 'description': 'Caller-supplied exact material-property source snapshot. Binding proves content identity and envelope validity only; it does not verify the source claim or create a design allowable.', 'additionalProperties': False, 'x-a2a2p-simulation-eligibility-fields': ['material_state.name', 'material_state.grade', 'material_state.condition', 'material_state.product_form', 'applicability.temperature_c', 'applicability.orientation', 'applicability.manufacturing_process'], 'x-a2a2p-simulation-ineligible-normalized-values': ['unknown', 'unspecified', 'not specified', 'not applicable', 'n/a', 'na', 'none', 'null', 'tbd', 'to be determined', 'pending']}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
prepare_simulation_study
Prepare a deterministic, side-effect-free simulation study for existing a2a2p domain-solutioning candidate IDs. It records exact quantities, units, closed-kind source snapshots with staleness intervals, hard constraints, solver/model/settings provenance, assumptions, validity domain, and a physical validation plan. It runs no solver, chooses no candidate, stores nothing, and grants no physical authority.
입력 스키마
{'type': 'object', 'required': ['source', 'candidate_ids', 'objectives', 'hard_constraints', 'experiments'], 'properties': {'source': {'oneOf': [{'$ref': '#/$defs/domainCandidateSource'}, {'$ref': '#/$defs/derivedBeamCandidateSource'}]}, 'objectives': {'type': 'array', 'items': {'$ref': '#/$defs/objective'}, 'maxItems': 32, 'minItems': 1}, 'experiments': {'type': 'array', 'items': {'$ref': '#/$defs/experiment'}, 'maxItems': 32, 'minItems': 1}, 'candidate_ids': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'maxItems': 32, 'minItems': 1, 'uniqueItems': True}, 'hard_constraints': {'type': 'array', 'items': {'$ref': '#/$defs/hardConstraint'}, 'maxItems': 64}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
qualify_specification_exchange_need
Submit one real, unaffiliated low-voltage outdoor sensor enclosure need to A2A2P's fixed ten-submission qualification cohort. Complete outside submissions are stored privately; public evidence remains content-free. This contacts no supplier, collects no payment, places no order, performs no engineering validation, and grants no fabrication authority.
입력 스키마
{'$id': 'https://a2a2p.com/schema/specification-exchange-demand-probe', 'type': 'object', 'title': 'A2A2P specification-to-manufacturing demand probe', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['buyer', 'need', 'scope', 'authority', 'commercial', 'contact', 'evidence'], 'properties': {'need': {'type': 'object', 'required': ['business_purpose', 'current_need', 'current_approach', 'why_catalog_is_not_enough', 'catalog_selection_is_sufficient', 'component_state', 'components', 'operating_environment', 'quantity', 'needed_by', 'manufacturing_budget_usd', 'measurable_use_test'], 'properties': {'quantity': {'type': 'integer', 'minimum': 1}, 'needed_by': {'type': 'string', 'minLength': 3}, 'components': {'type': 'array', 'items': {'type': 'object', 'anyOf': [{'required': ['part_number']}, {'required': ['dimensions']}], 'required': ['name'], 'properties': {'name': {'type': 'string', 'minLength': 3}, 'dimensions': {'type': 'string', 'minLength': 3}, 'part_number': {'type': 'string', 'minLength': 3}}, 'additionalProperties': False}, 'minItems': 1}, 'current_need': {'type': 'boolean'}, 'component_state': {'enum': ['selected', 'prototyped', 'physically_possessed']}, 'business_purpose': {'type': 'string', 'minLength': 3}, 'current_approach': {'type': 'string', 'minLength': 3}, 'measurable_use_test': {'type': 'string', 'minLength': 3}, 'operating_environment': {'type': 'string', 'minLength': 3}, 'manufacturing_budget_usd': {'type': 'number', 'exclusiveMinimum': 0}, 'why_catalog_is_not_enough': {'type': 'string', 'minLength': 3}, 'catalog_selection_is_sufficient': {'type': 'boolean'}}, 'additionalProperties': False}, 'buyer': {'type': 'object', 'required': ['organization', 'role'], 'properties': {'role': {'type': 'string', 'minLength': 3}, 'organization': {'type': 'string', 'minLength': 3}}, 'additionalProperties': False}, 'scope': {'type': 'object', 'required': ['low_voltage', 'life_safety', 'medical', 'hazardous_location', 'surveillance_of_people', 'certification_required_before_use'], 'properties': {'medical': {'type': 'boolean'}, 'life_safety': {'type': 'boolean'}, 'low_voltage': {'type': 'boolean'}, 'hazardous_location': {'type': 'boolean'}, 'surveillance_of_people': {'type': 'boolean'}, 'certification_required_before_use': {'type': 'boolean'}}, 'additionalProperties': False}, 'contact': {'type': 'object', 'required': ['permission_for_this_submission', 'return_channel'], 'properties': {'return_channel': {'type': 'string', 'minLength': 3}, 'permission_for_this_submission': {'type': 'boolean'}}, 'additionalProperties': False}, 'evidence': {'type': 'object', 'required': ['unaffiliated_outside_submission'], 'properties': {'unaffiliated_outside_submission': {'type': 'boolean'}}, 'additionalProperties': False}, 'authority': {'type': 'object', 'required': ['can_approve_specification', 'can_authorize_supplier_order', 'can_authorize_spending'], 'properties': {'can_authorize_spending': {'type': 'boolean'}, 'can_approve_specification': {'type': 'boolean'}, 'can_authorize_supplier_order': {'type': 'boolean'}}, 'additionalProperties': False}, 'commercial': {'type': 'object', 'required': ['accepts_5_percent_success_commission'], 'properties': {'accepts_5_percent_success_commission': {'type': 'boolean'}}, 'additionalProperties': False}}, 'description': 'Submits one real low-voltage outdoor sensor enclosure need to a private ten-submission qualification cohort. It contacts no supplier, charges nothing, places no order, and grants no authority.', 'additionalProperties': False}
출력 스키마
{'type': 'object'}
render_supplier_email_binding
Render the caller's requirement as a reviewable RFC 5322 supplier-email draft after rebuilding its canonical supplier package and repeating quote-stage screening. The plain-language draft offers optional Can quote / Need changes / Decline reply choices and asks for price basis, freight scope, and lead-time basis when quoting. Suppliers may still reply in normal prose. Only an allow verdict renders. The operation validates one explicit recipient and an accountable sender-domain envelope, but cannot verify SPF, DKIM, or DMARC and therefore returns sendable=false. An explicit specification.assembly with two or more parts returns decomposition_required before file inspection or rendering. It is a stateless artifact transformation only: it stores nothing, sends nothing, contacts no supplier or provider, and grants no quote, order, payment, or fabrication authority.
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'required': ['email_binding'], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'email_binding': {'type': 'object', 'allOf': [{'if': {'required': ['principal_kind'], 'properties': {'principal_kind': {'const': 'organization'}}}, 'then': {'required': ['principal_registered_address']}}], 'required': ['accountable_principal', 'principal_kind', 'principal_domain', 'from', 'reply_to', 'recipient', 'reply_to_is_monitored', 'reply_to_identifies_natural_person'], 'properties': {'from': {'type': 'string', 'maxLength': 254, 'minLength': 3}, 'reply_to': {'type': 'string', 'maxLength': 254, 'minLength': 3, 'description': "For an organization principal, this must be a recognized organizational role mailbox rather than a natural person's mailbox."}, 'recipient': {'type': 'string', 'maxLength': 254, 'minLength': 3}, 'principal_kind': {'enum': ['organization', 'person'], 'type': 'string'}, 'principal_domain': {'type': 'string', 'maxLength': 253, 'minLength': 4}, 'accountable_principal': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'reply_to_is_monitored': {'const': True}, 'principal_registered_address': {'type': 'string', 'maxLength': 500, 'minLength': 1, 'description': 'Required when principal_kind is organization.'}, 'reply_to_identifies_natural_person': {'type': 'boolean'}}, 'description': 'Explicit envelope for a reviewable, non-sending RFC 5322 draft. No address is looked up or inferred.', 'additionalProperties': False}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
출력 스키마
{'type': 'object', 'required': ['contract', 'version', 'status', 'sendable', 'provenance', 'binding_sha256', 'conformance', 'reply_route_verification', 'digest_semantics', 'artifact', 'sender_authentication', 'authority', 'requirements_before_sending'], 'properties': {'status': {'const': 'draft'}, 'version': {'const': '1.3.0'}, 'artifact': {'type': 'object', 'required': ['media_type', 'filename', 'content_utf8', 'sha256'], 'properties': {'sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'filename': {'type': 'string'}, 'media_type': {'const': 'message/rfc822'}, 'content_utf8': {'type': 'string'}}}, 'contract': {'const': 'a2a2p.supplier-email-artifact'}, 'sendable': {'const': False}, 'authority': {'type': 'object'}, 'provenance': {'type': 'object'}, 'conformance': {'type': 'object'}, 'binding_sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'digest_semantics': {'type': 'object'}, 'sender_authentication': {'type': 'object'}, 'reply_route_verification': {'type': 'object'}, 'requirements_before_sending': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': True}
request_physical_solution
Submit a physical-world requirement (a part, product, device, or capability that must exist in the physical world). a2a2p resolves it and returns a RESOLUTION REPORT: a recommended path (best existing commercial solution vs. custom fabrication), pricing, tradeoffs, a delivery plan with contingencies and expedite options, and a business case when business context is provided. Response is asynchronous: you receive a request_id immediately with an instant spec_review. Poll check_request_status; as soon as an automated draft exists it is returned with an a2a2p.resolution-report-delivery receipt that distinguishes machine_draft from operator_published. If the finite attempt budget is exhausted, status returns generation_failed; if the bounded automatic retry window expires first, it returns generation_expired. Either terminal state permits only a new caller-confirmed request from caller-held input. Operator review and publication are not guaranteed or subject to a service-level promise. No state is professional engineering certification or a supplier quote. ENTRY MODES — arrive with what you have: • fully_specified: provide 'specification' (part_type, material, process, dimensions, tolerance_class, design_files). Go straight to resolution report. • intent_only: provide 'intent' (purpose, environment, functional_requirements, quantity, timeline, priority). a2a2p recommends 2-3 specification options with tradeoffs. • partial: provide what you know in either layer; a2a2p fills the gaps. Layer 1 (intent) describes the PROBLEM. Layer 2 (specification) describes the SOLUTION. At minimum, provide 'requirement' (legacy) or 'intent.purpose' (structured) — one line describing what you need. Use 'rejected_alternatives' to record options already ruled out.
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'required': [], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
request_provider_estimate
Submit a requirement to the durably queued provider-estimate workflow without holding the connection open. Returns a quote_job_id in milliseconds; scheduled settlement runs outside request waitUntil. Scheduled provider contact is not active in this release and cannot be enabled by an environment flag, so admitted jobs currently terminate as degraded with a deterministic model estimate. Additive processes with an STL design file only, for now. The requirement is screened before storage; any future provider activation must also screen the exact file bytes before contact. Every admission result is machine-readable. Rejections carry a stable closed-set reason_code, retry boundary, required input, and deterministic next_action; admitted responses carry the same versioned admission contract. An explicit specification.assembly with two or more parts is rejected before job creation or provider contact and must be decomposed first. Estimate only — never a quote, order, payment, or fabrication commitment. Poll with check_quote_job until a terminal status: completed (provider figure), degraded (deterministic model estimate with the provider's absence explained), or refused (screening).
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'required': [], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
review_specification
Current file inspection governs geometry readiness: expired, unreadable, mismatched, unsuccessfully parsed or uninspected attachments prevent quote-ready status. Reattach the original file and review again. Instant, synchronous engineering review of a physical requirement — nothing is submitted or stored. Purpose prose is preserved as intent but is not silently converted into loads, geometry, environments, interfaces, or acceptance criteria. The versioned engineering_evaluation receipt lists canonical paths and exact checks run, reports not_evaluated when none ran, and denies engineering-validation, certification, physical-truth, supplier-acceptance, and fabrication authority. Its finding-penalty score is not engineering soundness. Deterministic checks: material identification with handbook-typical properties (density, stiffness, yield, service temperature), explicit rectangular beam deflection, nominal bending stress, and nominal transverse shear with requester-defined acceptance criteria, material/process compatibility, tolerance-vs-process reality, quantity economics (e.g. tooling amortization), environment fit (UV, saltwater, food contact, temperature, medical), flexibility fit, post-processing validity, design-file format fit, and specification completeness. Every matched material reference identifies the current table as an uncited compilation and explicitly denies source verification, exact-state verification, design-allowable use, and simulation eligibility. A criterion that depends on that reference remains not_evaluated; its numerical comparison is reference_only, never a pass, failure, or blocker. Every supplied limit or strength basis is labeled requester_assertion, and every criterion verdict is explicitly conditional on declared inputs and the bounded model—not engineering validation or design certification. Returns findings ranked blocker/warning/info, two readiness scores, and a deterministic clarification_plan: compact next_fields, visible remaining_fields, optional CAD accelerators, an intent-only resolution handoff, next_call with the recommended exact MCP/REST continuation, and continuation_options for explicitly eligible operations: design_brief for complete intent without specifications, or budgetary_pricing and supplier_handoff for a complete specification. Examples are shapes, never invented defaults. For a decomposed design, send specification.assembly with parts and interfaces: a2a2p then checks galvanic pairing and interface fit across parts, which a single-part review cannot, and prices each part separately. Two or more explicitly declared parts always classify as assembly_or_system and can never become quote_ready as one part, regardless of purpose wording or top-level part fields. Undeclared interfaces are unchecked — nothing is inferred. CHECK intake_classification first. a2a2p reviews one manufacturable part at a time; a request naming a behaviour rather than an object ("a device that detects and removes debris") is classified capability_concept and redirected to decomposition, because no material or tolerance can be derived from it. The classification is advisory, never blocks, and defers to any supplied specification. READ resolution_readiness, not quote_readiness, while you are still answering questions. quote_readiness is supplier-facing and stays capped by material/process/dimensions/tolerance that a2a2p derives for you, so it cannot reach quote_ready from intent alone however much you supply. resolution_readiness measures only what the requester owns and reaches ready_to_resolve once you have supplied enough to derive a specification — which is not a supplier quote. completeness.awaiting_requester and completeness.derivable_by_resolution say which fields are whose. Accepts the same input as request_physical_solution (structured intent/specification or legacy flat fields). Forward-compatible fields remain accepted, but uninterpreted_fields names every supplied path in the declared review scope whose value did not influence deterministic engineering checks, uses bounded and privacy-safe RFC 6901 JSON Pointers, caps unqualified ready grades, and provides non-inferential repair guidance; never read HTTP success alone as proof that every field was understood. For intent_only, complete requester context leads to submit_for_specification_resolution; for a supplied specification, apply only facts you know, re-review until quote_ready, then submit if a durable resolution is useful.
입력 스키마
{'type': 'object', 'anyOf': [{'required': ['requirement']}, {'required': ['intent'], 'properties': {'intent': {'required': ['purpose']}}}], 'required': [], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
출력 스키마
{'type': 'object', 'required': ['engineering_evaluation'], 'properties': {'engineering_evaluation': {'$id': 'https://a2a2p.com/schema/engineering-evaluation', 'type': 'object', 'title': 'a2a2p engineering-evaluation receipt', '$schema': 'https://json-schema.org/draft/2020-12/schema', '$comment': 'JSON Schema constrains the portable envelope. Consumers must also run the semantic validator for deterministic sorting, status/check consistency, exact finding-penalty arithmetic, and the non-authority boundary.', 'required': ['contract', 'version', 'status', 'canonical_input_paths_present', 'checks_run', 'purpose_constraints_extracted', 'finding_penalty_score', 'finding_counts', 'interpretation', 'authority'], 'properties': {'status': {'enum': ['not_evaluated', 'partial']}, 'version': {'const': '1.0.0'}, 'contract': {'const': 'a2a2p.engineering-evaluation'}, 'authority': {'type': 'object', 'required': ['engineering_validation', 'design_certification', 'physical_truth', 'supplier_acceptance', 'fabrication'], 'properties': {'fabrication': {'const': False}, 'physical_truth': {'const': False}, 'supplier_acceptance': {'const': False}, 'design_certification': {'const': False}, 'engineering_validation': {'const': False}}, 'additionalProperties': False}, 'checks_run': {'type': 'array', 'items': {'type': 'string', 'pattern': '^\\S', 'minLength': 1}, 'uniqueItems': True}, 'finding_counts': {'type': 'object', 'required': ['blocker', 'warning', 'info'], 'properties': {'info': {'type': 'integer', 'minimum': 0}, 'blocker': {'type': 'integer', 'minimum': 0}, 'warning': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'interpretation': {'type': 'string', 'pattern': '\\S', 'minLength': 1}, 'finding_penalty_score': {'type': 'integer', 'maximum': 100, 'minimum': 0}, 'canonical_input_paths_present': {'type': 'array', 'items': {'type': 'string', 'pattern': '^/', 'minLength': 1}, 'uniqueItems': True}, 'purpose_constraints_extracted': {'const': False}}, 'additionalProperties': False, 'x-a2a2p-semantic-invariants': {'profile': 'https://a2a2p.com/profile/engineering-evaluation', 'status_checks': 'not_evaluated requires zero checks_run entries; partial requires one or more.', 'authority_values': False, 'deterministic_arrays': 'canonical_input_paths_present and checks_run are unique and lexicographically sorted.', 'finding_penalty_formula': 'max(0, 100 - 25*blocker - 12*warning - 4*info)', 'purpose_constraints_extracted': False}}}, 'additionalProperties': True}
revise_requirement
Create a new, immutable revision of a prior request by applying only the fields you learned since the first submission. Use this after review_specification returns a clarification_plan: provide the original request_id plus the patch (for example intent.geometric_envelope or specification.material). The original is preserved; the revision receives a new request_id, a fresh spec_review, a revision_of link, and a deterministic readiness_progress comparison against its immediate predecessor. Provide idempotency_key when retrying the same patch so a network retry returns the same revision instead of creating another.
입력 스키마
{'type': 'object', 'required': ['request_id'], 'properties': {'intent': {'type': 'object', 'properties': {'purpose': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'What the physical matter needs to accomplish (one non-whitespace line minimum, required).'}, 'priority': {'enum': ['cost', 'speed', 'strength', 'precision', 'aesthetics'], 'type': 'string', 'description': 'What matters most when tradeoffs arise.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'How many units needed.'}, 'timeline': {'type': 'string', 'description': "When needed ('2 weeks', 'ASAP', 'by March')."}, 'compliance': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Required standards or certifications.'}, 'environment': {'type': 'array', 'items': {'enum': ['indoor', 'outdoor', 'saltwater', 'uv_exposure', 'high_temp', 'low_temp', 'vibration', 'food_contact', 'medical', 'aerospace', 'high_humidity', 'chemical_exposure'], 'type': 'string'}, 'description': 'Conditions the part must survive.'}, 'budget_envelope': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'type': {'enum': ['per_unit', 'total'], 'type': 'string'}}, 'description': 'Budget if known.'}, 'geometric_envelope': {'type': 'object', 'properties': {'max_x': {'type': 'number'}, 'max_y': {'type': 'number'}, 'max_z': {'type': 'number'}}, 'description': 'Max bounding box in mm if known.'}, 'functional_requirements': {'type': 'object', 'properties': {'max_load': {'oneOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'object', 'required': ['value'], 'properties': {'unit': {'type': 'string', 'description': 'Force unit; N is canonical.'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}}}], 'description': 'Maximum load magnitude. A Newton scalar is preferred; { value, unit: "N" } remains accepted.'}, 'load_case': {'type': 'object', 'required': ['model', 'load_n', 'span_mm', 'section'], 'properties': {'model': {'type': 'string', 'examples': ['cantilever_end_load', 'simply_supported_center_load'], 'description': 'Supported deterministic models: cantilever_end_load or simply_supported_center_load. Other values are preserved but reported as unsupported.'}, 'load_n': {'type': 'number', 'description': 'Static point-load magnitude in Newtons.', 'exclusiveMinimum': 0}, 'section': {'type': 'object', 'required': ['width_mm', 'height_mm'], 'properties': {'width_mm': {'type': 'number', 'description': 'Rectangular section width in millimetres.', 'exclusiveMinimum': 0}, 'height_mm': {'type': 'number', 'description': 'Rectangular section depth in the bending direction, millimetres.', 'exclusiveMinimum': 0}}}, 'span_mm': {'type': 'number', 'description': 'Beam span in millimetres.', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'type': 'number', 'description': 'Optional requester-supplied acceptance limit.', 'exclusiveMinimum': 0}, 'yield_strength_mpa': {'type': 'number', 'description': 'Optional exact grade/condition/product-form datasheet value supplied by the requester.', 'exclusiveMinimum': 0}, 'elastic_modulus_gpa': {'type': 'number', 'description': "Optional requester-supplied Young's modulus. Otherwise the matched material handbook reference is used and labeled.", 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied design allowable; never inferred from handbook yield.', 'exclusiveMinimum': 0}, 'minimum_factor_of_safety': {'type': 'number', 'description': 'Optional acceptance criterion; evaluated only with requester-supplied yield_strength_mpa.', 'exclusiveMinimum': 0}, 'allowable_shear_stress_mpa': {'type': 'number', 'description': 'Optional requester-supplied transverse-shear design allowable; evaluated independently and never inferred from handbook data.', 'exclusiveMinimum': 0}}, 'description': 'Optional bounded structural sanity check. State an explicit static point-load model and rectangular section; height_mm is the bending direction.'}, 'electrical': {'type': 'string', 'description': 'Electrical properties (conductive, insulating, etc.).'}, 'max_weight': {'type': 'number', 'description': 'Maximum weight of the part in kg.'}, 'flexibility': {'enum': ['rigid', 'semi_rigid', 'flexible'], 'type': 'string', 'description': 'Rigid, semi-rigid, or flexible.'}, 'thermal_range': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'Operating temperature range in Celsius.'}}, 'description': 'Structured physical constraints.'}}, 'description': 'Layer 1 — the problem. What the physical matter needs to DO. Use this for intent-driven requests where the agent describes purpose and a2a2p recommends solutions.'}, 'contact': {'type': 'string', 'description': 'Optional email or callback endpoint for quote delivery.'}, 'deadline': {'type': 'string', 'description': 'Required delivery date or timeframe. Maps to intent.timeline.'}, 'quantity': {'type': 'integer', 'minimum': 1, 'description': 'Number of units needed. Maps to intent.quantity.'}, 'budget_usd': {'type': 'number', 'description': 'Approximate budget in USD. Maps to intent.budget_envelope.'}, 'request_id': {'type': 'string', 'description': 'The prior request_id to revise.'}, 'constraints': {'type': 'string', 'description': 'Hard constraints: tolerances, certifications, materials to avoid, size/weight limits. Maps to intent.functional_requirements.'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'minLength': 1, 'description': 'Plain-language description of the physical need. Maps to intent.purpose. Include function, dimensions, materials, load/performance requirements, environment, and interfaces where known.'}, 'callback_url': {'type': 'string', 'description': 'Optional HTTPS URL. When the quote is ready, a2a2p POSTs it as JSON to this URL.'}, 'revision_note': {'type': 'string', 'description': 'Optional short explanation of what changed.'}, 'specification': {'type': 'object', 'properties': {'process': {'enum': ['cnc_milling', 'cnc_turning', 'fdm_3d_print', 'sla_3d_print', 'sls_3d_print', 'sheet_metal', 'laser_cutting', 'casting', 'injection_molding', 'extrusion'], 'type': 'string', 'description': 'Manufacturing process.'}, 'material': {'type': 'string', 'description': 'Material (controlled vocab preferred: aluminum_6061, steel_304, PLA, ...; open values accepted).'}, 'part_type': {'enum': ['bracket', 'housing', 'gear', 'shaft', 'enclosure', 'fixture', 'adapter', 'structural', 'custom'], 'type': 'string', 'description': 'Category of physical part.'}, 'dimensions': {'type': 'object', 'description': 'Critical dimensions with units, or bounding box.'}, 'design_files': {'type': 'array', 'items': {'type': 'object', 'required': ['url', 'format'], 'properties': {'url': {'type': 'string'}, 'role': {'enum': ['geometry', 'drawing', 'reference'], 'type': 'string'}, 'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string'}}}, 'description': 'Temporary or externally hosted manufacturing file references ({url, format, optional role}). Accepted upload aliases: stl, step, stp, dxf, pdf; shared downstream ceiling: 8388608 bytes.'}, 'surface_finish': {'enum': ['as_machined', 'polished', 'brushed', 'bead_blasted', 'raw'], 'type': 'string', 'description': 'Surface finish.'}, 'post_processing': {'type': 'array', 'items': {'enum': ['anodizing', 'powder_coat', 'painting', 'none'], 'type': 'string'}, 'description': 'Post-processing treatments.'}, 'tolerance_class': {'enum': ['coarse', 'medium', 'fine', 'precision'], 'type': 'string', 'description': 'Required precision: coarse, medium, fine, precision.'}}, 'description': 'Layer 2 — the solution. What the physical matter IS. Populate what is known. Precise specifications produce faster, tighter quotes. Controlled vocabularies are preferred but open values are accepted.'}, 'idempotency_key': {'type': 'string', 'description': 'Optional stable retry key (1–128 characters). Reusing it with the same patch returns the prior revision; reuse with a different patch is rejected.'}, 'business_context': {'type': 'string', 'description': 'Optional business requirements (expected volumes, cost targets, ROI constraints). If provided, the quote includes a business case.'}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'properties': {'field': {'type': 'string', 'description': 'Which spec field (material, process, part_type, etc.).'}, 'value': {'type': 'string', 'description': 'The rejected option.'}, 'reason': {'type': 'string', 'description': 'Why it was rejected.'}}}, 'description': 'Options already considered and ruled out. Prevents re-suggesting and builds the learning corpus.'}}}
run_bounded_simulation_study
Execute and validate a prepared simulation study through a2a2p's bounded closed-form rectangular-beam adapter. The adapter accepts only explicit load, span, section width/height, elastic modulus, exact support conditions, and supported output quantities; missing, extra, mismatched, or unsupported settings fail the affected experiment closed. It returns provenance-bound predictions and the existing hard-constraint/Pareto validation in one stateless call. It is not FEA, physical measurement, engineering validation, candidate selection, supplier contact, or fabrication authority.
입력 스키마
{'type': 'object', 'required': ['study'], 'properties': {'study': {'type': 'object'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
translate_materials_project_elasticity
Translate one bounded, caller-supplied Materials Project elasticity API response projection into source-bound computed-crystal reference evidence. Optional retrieval metadata binds the raw upstream bytes separately and records that an allowlisted projection changed the representation. The adapter verifies response shape, one exact material ID, non-deprecated successful state, modulus bounds, Poisson consistency, source versions, and record license; derives an isotropic VRH Young's modulus deterministically; and preserves warnings. It performs no network call, does not verify Materials Project origin, and grants no engineering-product, simulation-input, supplier, order, payment, or fabrication authority.
입력 스키마
{'$id': 'https://a2a2p.com/schema/materials-project-elasticity', 'type': 'object', 'title': 'a2a2p Materials Project elasticity adapter', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['material_id', 'response', 'retrieval', 'refresh_after'], 'properties': {'response': {'type': 'object', 'required': ['data', 'errors', 'meta'], 'properties': {'data': {'type': 'array', 'items': {'type': 'object', 'required': ['builder_meta', 'material_id', 'formula_pretty', 'deprecated', 'deprecation_reasons', 'last_updated', 'warnings', 'bulk_modulus', 'shear_modulus', 'universal_anisotropy', 'homogeneous_poisson', 'fitting_method', 'state'], 'properties': {'state': {'const': 'successful'}, 'warnings': {'type': 'array', 'items': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'maxItems': 100}, 'deprecated': {'const': False}, 'material_id': {'type': 'string', 'pattern': '^mp-[A-Za-z0-9]+$'}, 'builder_meta': {'type': 'object', 'required': ['emmet_version', 'pymatgen_version', 'run_id', 'batch_id', 'database_version', 'build_date', 'license'], 'properties': {'run_id': {'type': ['string', 'null'], 'maxLength': 200}, 'license': {'enum': ['BY-C', 'BY-NC']}, 'batch_id': {'type': ['string', 'null'], 'maxLength': 200}, 'build_date': {'type': ['string', 'null'], 'format': 'date-time'}, 'emmet_version': {'type': 'string', 'minLength': 1}, 'database_version': {'type': 'string', 'minLength': 1}, 'pymatgen_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}, 'bulk_modulus': {'type': 'object', 'required': ['voigt', 'reuss', 'vrh'], 'properties': {'vrh': {'type': 'number', 'exclusiveMinimum': 0}, 'reuss': {'type': 'number', 'exclusiveMinimum': 0}, 'voigt': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'last_updated': {'type': 'string', 'format': 'date-time'}, 'shear_modulus': {'type': 'object', 'required': ['voigt', 'reuss', 'vrh'], 'properties': {'vrh': {'type': 'number', 'exclusiveMinimum': 0}, 'reuss': {'type': 'number', 'exclusiveMinimum': 0}, 'voigt': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'fitting_method': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'formula_pretty': {'type': 'string', 'minLength': 1}, 'deprecation_reasons': {'type': ['array', 'null'], 'maxItems': 0}, 'homogeneous_poisson': {'type': 'number', 'exclusiveMaximum': 0.5, 'exclusiveMinimum': -1}, 'universal_anisotropy': {'type': 'number', 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 1, 'minItems': 1}, 'meta': {'type': 'object', 'required': ['api_version', 'time_stamp', 'total_doc'], 'properties': {'total_doc': {'const': 1}, 'time_stamp': {'type': 'string', 'format': 'date-time'}, 'api_version': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}, 'errors': {'oneOf': [{'type': 'null'}, {'type': 'array', 'maxItems': 0}]}}, 'additionalProperties': False}, 'retrieval': {'oneOf': [{'type': 'null'}, {'type': 'object', 'required': ['client_contract', 'source_url', 'raw_response_sha256', 'projection'], 'properties': {'projection': {'type': 'object', 'required': ['document_fields', 'response_meta_fields', 'changes_indicated'], 'properties': {'document_fields': {'const': ['builder_meta', 'material_id', 'formula_pretty', 'deprecated', 'deprecation_reasons', 'last_updated', 'warnings', 'bulk_modulus', 'shear_modulus', 'universal_anisotropy', 'homogeneous_poisson', 'fitting_method', 'state']}, 'changes_indicated': {'const': True}, 'response_meta_fields': {'const': ['api_version', 'time_stamp', 'total_doc']}}, 'additionalProperties': False}, 'source_url': {'type': 'string', 'format': 'uri', 'pattern': '^https://api\\.materialsproject\\.org/materials/elasticity/\\?'}, 'client_contract': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'raw_response_sha256': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}}, 'additionalProperties': False}]}, 'material_id': {'type': 'string', 'pattern': '^mp-[A-Za-z0-9]+$'}, 'refresh_after': {'type': 'string', 'format': 'date-time'}}, 'description': 'Translate one bounded caller-supplied Materials Project elasticity response projection into computed-crystal reference evidence. Optional caller retrieval metadata binds the raw upstream digest separately. The public adapter performs no upstream network request.', 'additionalProperties': False}
출력 스키마
{'type': 'object'}
upload_design_file
Turn local manufacturing file bytes into the temporary HTTPS reference used by specification.design_files. This is a bounded intake operation, not a request, provider call, quote, order, payment, or fabrication action. Common RFC 4648 transport forms are normalized, then decoded bytes are recognized by signature, checked against the declared format, screened before storage, retained for one hour, and never included in telemetry. Supported roles include geometry (STL/STEP) and drawings (DXF/PDF). The 2 MiB MCP ceiling is transport-specific; use POST /api/upload with purpose=manufacturing_design_file for files up to 8 MiB. Pass the returned file_reference object unchanged in specification.design_files on the next call.
입력 스키마
{'type': 'object', 'required': ['purpose', 'filename', 'format', 'content_base64'], 'properties': {'format': {'enum': ['stl', 'step', 'stp', 'dxf', 'pdf'], 'type': 'string', 'description': 'Declared manufacturing format. File bytes must match.'}, 'purpose': {'type': 'string', 'const': 'manufacturing_design_file', 'description': 'Must be manufacturing_design_file; general chat attachments use a separate intake.'}, 'filename': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Original filename, used only for bounded inspection and the temporary record.'}, 'content_base64': {'type': 'string', 'maxLength': 2870046, 'description': 'File bytes as RFC 4648 base64 or base64url; padding is optional, ASCII whitespace and a bounded data:*;base64, prefix are accepted. Do not pass a path or URL. Decoded maximum: 2097152 bytes.'}}, 'additionalProperties': False}
validate_actualization_plan
Re-run the exact Domain Solutioning case/result validation, then validate one caller-supplied Actualization Plan. Checks typed entity references, evidence references, decision cycles, source binding, and false authority. Success returns evidence linkage plus exact review_specification calls for unblocked fabricated parts, copied only from each caller-authored function and specification_patch. Rejection can append a tamper-evident correction entry to caller-held history. Stores, edits, and executes nothing; calls no model, provider, or supplier; grants no physical authority.
입력 스키마
{'type': 'object', 'required': ['case', 'result', 'plan'], 'properties': {'case': {'type': 'object'}, 'plan': {'$id': 'https://a2a2p.com/schema/actualization-plan', 'type': 'object', '$defs': {'source': {'type': 'object', 'required': ['validation_contract', 'validation_contract_version', 'case_digest', 'candidate_result_digest', 'candidate_id'], 'properties': {'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'candidate_id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'validation_contract': {'const': 'a2a2p.domain-solutioning-result-validation'}, 'candidate_result_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'validation_contract_version': {'const': '0.5.0-draft'}}, 'additionalProperties': False}, 'assembly': {'type': 'object', 'required': ['id', 'purpose', 'member_ids', 'requires_decision_ids', 'evidence_ids'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'purpose': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'member_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'requires_decision_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}, 'decision': {'type': 'object', 'required': ['id', 'question', 'disposition', 'requires_decision_ids', 'evidence_ids', 'overturn_if'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'question': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'disposition': {'enum': ['proposed', 'blocked']}, 'overturn_if': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 20}, 'evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'requires_decision_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}, 'evidence': {'type': 'object', 'required': ['evidence_id', 'kind', 'claim', 'locator', 'source_digest'], 'properties': {'kind': {'enum': ['requester_fact', 'deterministic_calculation', 'cited_source', 'supplier_statement', 'simulation_result', 'physical_measurement', 'model_claim', 'human_judgment']}, 'claim': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'locator': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'evidence_id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'source_digest': {'type': ['string', 'null'], 'pattern': '^[a-f0-9]{64}$'}}, 'additionalProperties': False}, 'interface': {'type': 'object', 'required': ['id', 'participant_ids', 'requirement', 'verification_step_ids', 'evidence_ids'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'requirement': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'participant_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 20, 'minItems': 2, 'uniqueItems': True}, 'verification_step_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}, 'fabricated_part': {'type': 'object', 'required': ['id', 'function', 'specification_patch', 'requires_decision_ids', 'evidence_ids', 'unknowns'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'function': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'unknowns': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 20}, 'evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'specification_patch': {'type': 'object'}, 'requires_decision_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}, 'bought_component': {'type': 'object', 'required': ['id', 'function', 'specification', 'requires_decision_ids', 'evidence_ids', 'unknowns'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'function': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'unknowns': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 20}, 'evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'specification': {'type': 'object'}, 'requires_decision_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}, 'supplier_handoff': {'type': 'object', 'required': ['id', 'subject_ids', 'requires_verification_step_ids', 'state', 'evidence_ids'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'state': {'const': 'proposed'}, 'subject_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'requires_verification_step_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}, 'verification_step': {'type': 'object', 'required': ['id', 'subject_ids', 'method', 'acceptance_criterion', 'requires_evidence_ids'], 'properties': {'id': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'method': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'subject_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}, 'acceptance_criterion': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'requires_evidence_ids': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[a-z0-9][a-z0-9._:-]{0,127}$'}, 'maxItems': 100, 'uniqueItems': True}}, 'additionalProperties': False}}, 'title': 'a2a2p Actualization Plan', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract', 'contract_version', 'source', 'outcome', 'decisions', 'bought_components', 'fabricated_parts', 'assemblies', 'interfaces', 'verification_steps', 'supplier_handoffs', 'evidence', 'assumptions', 'unknowns', 'authority'], 'properties': {'source': {'$ref': '#/$defs/source'}, 'outcome': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'contract': {'const': 'a2a2p.actualization-plan'}, 'evidence': {'type': 'array', 'items': {'$ref': '#/$defs/evidence'}, 'maxItems': 200}, 'unknowns': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 100}, 'authority': {'type': 'object', 'required': ['candidate_selection', 'requirement_mutation', 'engineering_validation', 'supplier_contact', 'provider_call', 'quote_request', 'order', 'payment', 'fabrication'], 'properties': {'order': {'const': False}, 'payment': {'const': False}, 'fabrication': {'const': False}, 'provider_call': {'const': False}, 'quote_request': {'const': False}, 'supplier_contact': {'const': False}, 'candidate_selection': {'const': False}, 'requirement_mutation': {'const': False}, 'engineering_validation': {'const': False}}, 'additionalProperties': False}, 'decisions': {'type': 'array', 'items': {'$ref': '#/$defs/decision'}, 'maxItems': 100}, 'assemblies': {'type': 'array', 'items': {'$ref': '#/$defs/assembly'}, 'maxItems': 100}, 'interfaces': {'type': 'array', 'items': {'$ref': '#/$defs/interface'}, 'maxItems': 100}, 'assumptions': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'maxItems': 100}, 'contract_version': {'const': '0.1.0-draft'}, 'fabricated_parts': {'type': 'array', 'items': {'$ref': '#/$defs/fabricated_part'}, 'maxItems': 100}, 'bought_components': {'type': 'array', 'items': {'$ref': '#/$defs/bought_component'}, 'maxItems': 100}, 'supplier_handoffs': {'type': 'array', 'items': {'$ref': '#/$defs/supplier_handoff'}, 'maxItems': 100}, 'verification_steps': {'type': 'array', 'items': {'$ref': '#/$defs/verification_step'}, 'maxItems': 100}}, 'description': 'A portable, non-authorizing projection of one validated domain-solutioning candidate into named physical-work entities. It is not a generic graph ontology.', 'x-a2a2p-boundary': {'persistence': False, 'relation_model': 'typed_foreign_keys_on_named_domain_entities', 'source_contract': 'a2a2p.domain-solutioning@0.3.0-draft', 'external_effects': False, 'generic_nodes_or_edges': False, 'evidence_vocabulary_owner': 'a2a2p.domain-scaffold'}, 'additionalProperties': False, 'x-a2a2p-rejection-reasons': ['authority_promotion', 'contract_mismatch', 'correction_history_invalid', 'dependency_cycle', 'duplicate_entity_id', 'evidence_kind_invalid', 'evidence_reference_missing', 'input_too_large', 'invalid_plan_shape', 'source_binding_mismatch', 'unknown_entity_reference', 'upstream_validation_failed']}, 'result': {'type': 'object'}, 'correction_history': {'type': 'array', 'items': {'type': 'object', 'required': ['contract', 'contract_version', 'sequence', 'reason_code', 'field', 'action', 'rejected_plan_digest', 'previous_entry_digest', 'entry_digest'], 'properties': {'field': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'action': {'type': 'string', 'pattern': '\\S', 'maxLength': 2000, 'minLength': 1}, 'contract': {'const': 'a2a2p.actualization-plan-recovery'}, 'sequence': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'reason_code': {'enum': ['authority_promotion', 'contract_mismatch', 'correction_history_invalid', 'dependency_cycle', 'duplicate_entity_id', 'evidence_kind_invalid', 'evidence_reference_missing', 'input_too_large', 'invalid_plan_shape', 'source_binding_mismatch', 'unknown_entity_reference', 'upstream_validation_failed']}, 'entry_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'contract_version': {'const': '0.1.0-draft'}, 'rejected_plan_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'previous_entry_digest': {'type': ['string', 'null'], 'pattern': '^[a-f0-9]{64}$'}}, 'additionalProperties': False}, 'maxItems': 100}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
validate_domain_solutioning_result
Validate a candidate result returned under the a2a2p domain-solutioning contract. The exact output of prepare_domain_solutioning_case is a prerequisite; malformed or non-prepared cases return a versioned machine-readable recovery workflow without weakening case-shape or digest checks. The operation verifies the source-case digest and provenance shape, rejects authority promotion and intent or design-file mutation, re-screens every candidate at quote stage, and runs the deterministic engineering review only after screening allows it. A successful response content-addresses the exact candidate result and returns a copy-ready, non-automatic source binding for prepare_simulation_study; every objective, constraint, physical input, setting, and validation plan remains caller-supplied. It stores nothing, runs no solver, calls no model or supplier, applies no patch, and grants no provider, quote, order, payment, or fabrication authority.
입력 스키마
{'type': 'object', '$defs': {'case': {'type': 'object', 'title': 'a2a2p domain-solutioning interoperability contract', 'contract': 'a2a2p.domain-solutioning', 'required': ['contract', 'contract_version', 'case_digest', 'requirement', 'deterministic_evidence', 'safety', 'requested_work', 'expected_result', 'activation', 'provenance', 'authority', 'next'], 'properties': {'next': {'type': 'object'}, 'safety': {'type': 'object', 'required': ['verdict', 'policy_version']}, 'contract': {'const': 'a2a2p.domain-solutioning'}, 'authority': {'$ref': '#/$defs/authority'}, 'activation': {'type': 'object'}, 'provenance': {'type': 'object'}, 'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'requirement': {'type': 'object'}, 'requested_work': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1}, 'expected_result': {'type': 'object'}, 'contract_version': {'const': '0.3.0-draft'}, 'deterministic_evidence': {'type': 'object'}}, 'description': 'Case handoff and candidate-return schema. Intelligence proposes; deterministic evidence, safety, and external authority remain outside model control.', 'contract_version': '0.3.0-draft', 'additionalProperties': False}, 'result': {'type': 'object', 'required': ['contract', 'contract_version', 'case_digest', 'framework', 'model_provenance', 'candidates', 'recommendation', 'dissent', 'authority'], 'properties': {'dissent': {'type': 'array', 'items': {'type': 'object', 'required': ['candidate_id', 'concern'], 'properties': {'concern': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'candidate_id': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100}, 'contract': {'const': 'a2a2p.domain-solutioning'}, 'authority': {'$ref': '#/$defs/authority'}, 'framework': {'type': 'object', 'required': ['id', 'version'], 'properties': {'id': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': True}, 'candidates': {'type': 'array', 'items': {'$ref': '#/$defs/candidate'}, 'maxItems': 5, 'minItems': 1}, 'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'recommendation': {'type': 'object', 'required': ['candidate_id', 'because', 'overturn_if'], 'properties': {'because': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'overturn_if': {'type': 'array', 'items': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'candidate_id': {'type': 'string', 'maxLength': 100, 'minLength': 1}}, 'additionalProperties': True}, 'contract_version': {'const': '0.3.0-draft'}, 'model_provenance': {'type': 'array', 'items': {'type': 'object', 'required': ['provider', 'model', 'role'], 'properties': {'role': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'model': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'provider': {'type': 'string', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 32, 'minItems': 1}}, 'additionalProperties': False}, 'authority': {'type': 'object', 'required': ['requirement_fact_mutation', 'safety_override', 'engineering_validation', 'supplier_contact', 'provider_call', 'quote_request', 'order', 'payment', 'fabrication'], 'properties': {'order': {'const': False}, 'payment': {'const': False}, 'fabrication': {'const': False}, 'provider_call': {'const': False}, 'quote_request': {'const': False}, 'safety_override': {'const': False}, 'supplier_contact': {'const': False}, 'engineering_validation': {'const': False}, 'requirement_fact_mutation': {'const': False}}, 'additionalProperties': False}, 'candidate': {'type': 'object', 'required': ['candidate_id', 'mechanism', 'functional_decomposition', 'specification_patch', 'assumptions', 'unknowns', 'tradeoffs', 'evidence_refs', 'validation_plan', 'rejected_alternatives'], 'properties': {'unknowns': {'type': 'array', 'items': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'maxItems': 100}, 'mechanism': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'tradeoffs': {'type': 'array', 'items': {'type': 'object', 'required': ['choice', 'benefit', 'cost'], 'properties': {'cost': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'choice': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'benefit': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}, 'assumptions': {'type': 'array', 'items': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'maxItems': 100}, 'candidate_id': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'evidence_refs': {'type': 'array', 'items': {'type': 'object', 'required': ['kind', 'path'], 'properties': {'kind': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'path': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}, 'validation_plan': {'type': 'array', 'items': {'type': 'object', 'required': ['test', 'criterion'], 'properties': {'test': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'criterion': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}, 'specification_patch': {'type': 'object', 'properties': {'process': {'not': {'type': 'null'}}, 'material': {'not': {'type': 'null'}}, 'part_type': {'not': {'type': 'null'}}, 'dimensions': {'not': {'type': 'null'}}, 'surface_finish': {'not': {'type': 'null'}}, 'post_processing': {'not': {'type': 'null'}}, 'tolerance_class': {'not': {'type': 'null'}}}, 'description': 'Proposal-only patch to current canonical specification fields. design_files and intent are excluded because intelligence receives neither file bytes nor authority to alter requester facts.', 'minProperties': 1, 'additionalProperties': False}, 'rejected_alternatives': {'type': 'array', 'items': {'type': 'object', 'required': ['mechanism', 'reason'], 'properties': {'reason': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'mechanism': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100}, 'functional_decomposition': {'type': 'array', 'items': {'type': 'object', 'required': ['function', 'part'], 'properties': {'part': {'type': 'string', 'maxLength': 5000, 'minLength': 1}, 'function': {'type': 'string', 'maxLength': 5000, 'minLength': 1}}, 'additionalProperties': True}, 'maxItems': 100, 'minItems': 1}}, 'additionalProperties': False}}, 'title': 'a2a2p domain-solutioning result validation input', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['case', 'result'], 'properties': {'case': {'$ref': '#/$defs/case'}, 'result': {'$ref': '#/$defs/result'}}, 'description': 'An exact prepared case plus one candidate result. Validation is stateless and creates no physical authority.', 'additionalProperties': False}
출력 스키마
{'type': 'object', 'title': 'a2a2p domain-solutioning deterministic revalidation result', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['contract', 'contract_version', 'source_contract', 'source_contract_version', 'case_digest', 'candidate_result_digest', 'digest_verified', 'digest_semantics', 'framework', 'model_provenance', 'recommendation', 'dissent', 'candidate_evaluations', 'governance', 'persistence', 'external_effects', 'authority', 'simulation_handoff', 'next'], 'properties': {'next': {'type': 'object'}, 'dissent': {'type': 'array'}, 'contract': {'const': 'a2a2p.domain-solutioning-result-validation'}, 'authority': {'type': 'object', 'required': ['requirement_fact_mutation', 'safety_override', 'engineering_validation', 'supplier_contact', 'provider_call', 'quote_request', 'order', 'payment', 'fabrication'], 'properties': {'order': {'const': False}, 'payment': {'const': False}, 'fabrication': {'const': False}, 'provider_call': {'const': False}, 'quote_request': {'const': False}, 'safety_override': {'const': False}, 'supplier_contact': {'const': False}, 'engineering_validation': {'const': False}, 'requirement_fact_mutation': {'const': False}}, 'additionalProperties': False}, 'framework': {'type': 'object'}, 'governance': {'type': 'object', 'required': ['contract', 'contract_version', 'state', 'gate_mode', 'required_gates', 'failed_gate', 'external_framework', 'candidate_gates', 'execution_authorized'], 'properties': {'state': {'const': 'deterministic_gates_applied'}, 'contract': {'const': 'a2a2p.domain-solutioning-governance'}, 'gate_mode': {'const': 'all_required_fail_closed'}, 'failed_gate': {'type': 'null'}, 'required_gates': {'type': 'array', 'maxItems': 8, 'minItems': 8, 'prefixItems': [{'const': 'input_bound'}, {'const': 'source_case_integrity'}, {'const': 'result_contract_shape'}, {'const': 'model_and_framework_provenance'}, {'const': 'false_physical_authority'}, {'const': 'candidate_screening'}, {'const': 'deterministic_review_after_allow'}, {'const': 'no_external_effect'}]}, 'candidate_gates': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 5, 'minItems': 1}, 'contract_version': {'const': '0.1.0-draft'}, 'external_framework': {'type': 'object', 'required': ['score_considered', 'verdict_considered', 'can_override_required_gate'], 'properties': {'score_considered': {'const': False}, 'verdict_considered': {'const': False}, 'can_override_required_gate': {'const': False}}, 'additionalProperties': False}, 'execution_authorized': {'const': False}}, 'additionalProperties': False}, 'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'persistence': {'type': 'object', 'required': ['stored', 'requirement_mutated'], 'properties': {'stored': {'const': False}, 'requirement_mutated': {'const': False}}, 'additionalProperties': False}, 'recommendation': {'type': 'object'}, 'digest_verified': {'const': True}, 'source_contract': {'const': 'a2a2p.domain-solutioning'}, 'contract_version': {'const': '0.5.0-draft'}, 'digest_semantics': {'type': 'string'}, 'external_effects': {'type': 'object', 'required': ['model_called', 'supplier_contacted', 'provider_called'], 'properties': {'model_called': {'const': False}, 'provider_called': {'const': False}, 'supplier_contacted': {'const': False}}, 'additionalProperties': False}, 'model_provenance': {'type': 'array'}, 'simulation_handoff': {'type': 'object', 'required': ['contract', 'contract_version', 'state', 'source', 'candidate_ids', 'next_operation', 'caller_must_supply', 'automatic', 'external_effects', 'authority'], 'properties': {'state': {'const': 'source_binding_ready'}, 'source': {'type': 'object', 'required': ['domain_contract', 'domain_contract_version', 'case_digest', 'candidate_result_digest'], 'properties': {'case_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'domain_contract': {'const': 'a2a2p.domain-solutioning'}, 'candidate_result_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'domain_contract_version': {'const': '0.3.0-draft'}}, 'additionalProperties': False}, 'contract': {'const': 'a2a2p.domain-solutioning-simulation-handoff'}, 'authority': {'type': 'object', 'required': ['candidate_selection', 'physical_truth', 'engineering_validation', 'safety_approval', 'fabrication'], 'properties': {'fabrication': {'const': False}, 'physical_truth': {'const': False}, 'safety_approval': {'const': False}, 'candidate_selection': {'const': False}, 'engineering_validation': {'const': False}}, 'additionalProperties': False}, 'automatic': {'const': False}, 'candidate_ids': {'type': 'array', 'items': {'type': 'string', 'maxLength': 100, 'minLength': 1}, 'maxItems': 5, 'minItems': 1, 'uniqueItems': True}, 'next_operation': {'type': 'object', 'required': ['mcp', 'rest'], 'properties': {'mcp': {'type': 'object', 'required': ['tool'], 'properties': {'tool': {'const': 'prepare_simulation_study'}}, 'additionalProperties': False}, 'rest': {'type': 'object', 'required': ['method', 'path'], 'properties': {'path': {'const': '/api/simulation-study/prepare'}, 'method': {'const': 'POST'}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'contract_version': {'const': '0.1.0-draft'}, 'external_effects': {'type': 'object', 'required': ['solver_called', 'model_called', 'persistence_created'], 'properties': {'model_called': {'const': False}, 'solver_called': {'const': False}, 'persistence_created': {'const': False}}, 'additionalProperties': False}, 'caller_must_supply': {'type': 'array', 'items': {'type': 'string', 'minLength': 1}, 'minItems': 1}}, 'additionalProperties': False}, 'candidate_evaluations': {'type': 'array', 'items': {'type': 'object'}, 'maxItems': 5, 'minItems': 1}, 'candidate_result_digest': {'type': 'string', 'pattern': '^[a-f0-9]{64}$'}, 'source_contract_version': {'const': '0.3.0-draft'}}, 'additionalProperties': False}
validate_material_property_evidence
Validate and content-bind one caller-supplied material-property evidence envelope before attaching it to a compatible preliminary simulation. The receipt separates shape/content identity from source truth, material identity, uncertainty verification, design allowable, engineering validation, and physical authority. Computed-crystal evidence remains valid reference data but ineligible for the scalar engineering-product beam path. The operation calls no model or solver, stores nothing, contacts nobody, and creates no physical evidence, order, payment, or fabrication authority.
입력 스키마
{'type': 'object', 'required': ['evidence'], 'properties': {'evidence': {'type': 'object', 'required': ['property', 'material_state', 'applicability', 'basis', 'source'], 'properties': {'basis': {'type': 'object', 'required': ['class', 'method', 'uncertainty'], 'properties': {'class': {'enum': ['engineering_datasheet', 'experimental_measurement', 'computed_crystal']}, 'method': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'uncertainty': {'type': 'object', 'allOf': [{'if': {'required': ['kind'], 'properties': {'kind': {'const': 'not_reported'}}}, 'else': {'properties': {'value': {'type': 'number', 'minimum': 0}}}, 'then': {'properties': {'value': {'type': 'null'}}}}], 'required': ['kind', 'value'], 'properties': {'kind': {'enum': ['relative_percent', 'not_reported']}, 'value': {'type': ['number', 'null'], 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}, 'source': {'type': 'object', 'required': ['kind', 'id', 'version', 'checked_at', 'refresh_after', 'excerpt'], 'properties': {'id': {'type': 'string', 'maxLength': 1000, 'minLength': 1}, 'kind': {'enum': ['cited_reference', 'materials_database', 'plm_record']}, 'excerpt': {'type': 'string', 'maxLength': 20000, 'minLength': 1}, 'version': {'type': 'string', 'maxLength': 200, 'minLength': 1}, 'checked_at': {'type': 'string', 'format': 'date-time'}, 'refresh_after': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}, 'property': {'type': 'object', 'required': ['quantity', 'value', 'unit'], 'properties': {'unit': {'const': 'GPa'}, 'value': {'type': 'number', 'exclusiveMinimum': 0}, 'quantity': {'const': 'elastic_modulus'}}, 'additionalProperties': False}, 'applicability': {'type': 'object', 'required': ['temperature_c', 'orientation', 'manufacturing_process'], 'properties': {'orientation': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'temperature_c': {'type': ['number', 'null'], 'description': 'Celsius applicability. null is accepted only for computed_crystal evidence and keeps the result reference-only.'}, 'manufacturing_process': {'type': 'string', 'maxLength': 300, 'minLength': 1}}, 'additionalProperties': False}, 'material_state': {'type': 'object', 'required': ['name', 'grade', 'condition', 'product_form'], 'properties': {'name': {'type': 'string', 'maxLength': 300, 'minLength': 1}, 'grade': {'type': ['string', 'null'], 'maxLength': 300}, 'condition': {'type': ['string', 'null'], 'maxLength': 300}, 'product_form': {'type': ['string', 'null'], 'maxLength': 300}}, 'additionalProperties': False}}, 'description': 'Caller-supplied exact material-property source snapshot. Binding proves content identity and envelope validity only; it does not verify the source claim or create a design allowable.', 'additionalProperties': False, 'x-a2a2p-simulation-eligibility-fields': ['material_state.name', 'material_state.grade', 'material_state.condition', 'material_state.product_form', 'applicability.temperature_c', 'applicability.orientation', 'applicability.manufacturing_process'], 'x-a2a2p-simulation-ineligible-normalized-values': ['unknown', 'unspecified', 'not specified', 'not applicable', 'n/a', 'na', 'none', 'null', 'tbd', 'to be determined', 'pending']}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
validate_rectangular_beam_section_derivation
Recompute a bounded rectangular beam-section derivation from the exact declared input and reject any mutation of the candidate, digests, assumptions, claim limits, external-effects boundary, authority boundary, or carried screening receipt. Success proves deterministic replay and content identity only; it does not make the candidate simulation-eligible, physically true, supplier-ready, approved, purchased, or fabrication-authorized.
입력 스키마
{'$id': 'https://a2a2p.com/schema/beam-section-derivation-validation', 'type': 'object', 'title': 'a2a2p bounded beam-section derivation replay validation', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['input', 'receipt'], 'properties': {'input': {'$id': 'https://a2a2p.com/schema/beam-section-derivation', 'type': 'object', 'allOf': [{'anyOf': [{'required': ['max_deflection_mm'], 'properties': {'max_deflection_mm': {'type': 'number', 'exclusiveMinimum': 0}}}, {'required': ['allowable_stress_mpa'], 'properties': {'allowable_stress_mpa': {'type': 'number', 'exclusiveMinimum': 0}}}]}], 'title': 'a2a2p bounded rectangular beam-section derivation', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['purpose', 'model', 'load_n', 'span_mm', 'section_width_mm', 'elastic_modulus_gpa', 'max_deflection_mm', 'allowable_stress_mpa', 'manufacturing_increment_mm'], 'properties': {'model': {'enum': ['cantilever_end_load', 'simply_supported_center_load']}, 'load_n': {'type': 'number', 'exclusiveMinimum': 0}, 'purpose': {'type': 'string', 'maxLength': 2000, 'minLength': 12}, 'span_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'section_width_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'elastic_modulus_gpa': {'type': 'number', 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'manufacturing_increment_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': ['contract', 'contract_version', 'state', 'purpose', 'binding', 'derivation', 'candidate', 'verification', 'assumptions', 'claim_limits', 'next', 'external_effects', 'authority'], 'properties': {'next': {'type': 'object'}, 'state': {'const': 'candidate_derived_and_conditionally_verified'}, 'binding': {'type': 'object'}, 'purpose': {'type': 'string'}, 'contract': {'const': 'a2a2p.rectangular-beam-section-derivation'}, 'authority': {'type': 'object'}, 'candidate': {'type': 'object'}, 'screening': {'type': 'object', 'required': ['verdict', 'stage', 'policy_version', 'categories', 'flags', 'requires_human_review_before_external_action'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 100}, 'stage': {'const': 'review'}, 'verdict': {'enum': ['allow', 'review']}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 100}, 'policy_version': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'requires_human_review_before_external_action': {'type': 'boolean'}}, 'additionalProperties': False}, 'derivation': {'type': 'object'}, 'assumptions': {'type': 'array'}, 'claim_limits': {'type': 'object'}, 'verification': {'type': 'object'}, 'contract_version': {'const': '0.1.0-draft'}, 'external_effects': {'type': 'object'}}, 'additionalProperties': False}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
validate_rectangular_beam_section_design_space
Recompute a bounded finite rectangular-beam design space from the exact caller-held input and reject any mutation of an embedded derivation, Pareto disposition, digest, claim limit, external-effect boundary, authority boundary, or carried screening receipt. Success proves deterministic replay and content identity only. It never selects or promotes a candidate, estimates cost, calls an external system, or grants simulation, supplier, purchase, or fabrication eligibility.
입력 스키마
{'$id': 'https://a2a2p.com/schema/beam-section-design-space-validation', 'type': 'object', 'title': 'a2a2p bounded beam-section design-space replay validation', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['input', 'receipt'], 'properties': {'input': {'$id': 'https://a2a2p.com/schema/beam-section-design-space', 'type': 'object', 'allOf': [{'anyOf': [{'required': ['max_deflection_mm'], 'properties': {'max_deflection_mm': {'type': 'number', 'exclusiveMinimum': 0}}}, {'required': ['allowable_stress_mpa'], 'properties': {'allowable_stress_mpa': {'type': 'number', 'exclusiveMinimum': 0}}}]}], 'title': 'a2a2p bounded rectangular beam-section design space', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['purpose', 'model', 'load_n', 'span_mm', 'section_width_options_mm', 'elastic_modulus_gpa', 'max_deflection_mm', 'allowable_stress_mpa', 'manufacturing_increment_mm'], 'properties': {'model': {'enum': ['cantilever_end_load', 'simply_supported_center_load']}, 'load_n': {'type': 'number', 'exclusiveMinimum': 0}, 'purpose': {'type': 'string', 'maxLength': 2000, 'minLength': 12}, 'span_mm': {'type': 'number', 'exclusiveMinimum': 0}, 'max_deflection_mm': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'elastic_modulus_gpa': {'type': 'number', 'exclusiveMinimum': 0}, 'allowable_stress_mpa': {'anyOf': [{'type': 'number', 'exclusiveMinimum': 0}, {'type': 'null'}]}, 'section_width_options_mm': {'type': 'array', 'items': {'type': 'number', 'exclusiveMinimum': 0}, 'maxItems': 12, 'minItems': 2, 'description': 'Finite caller-owned width set. Input order has no decision meaning and is normalized ascending before evaluation.', 'uniqueItems': True}, 'manufacturing_increment_mm': {'type': 'number', 'exclusiveMinimum': 0}}, 'additionalProperties': False}, 'receipt': {'type': 'object', 'required': ['contract', 'contract_version', 'state', 'purpose', 'binding', 'declared_design_space', 'candidates', 'comparison', 'decision', 'claim_limits', 'external_effects', 'authority'], 'properties': {'state': {'const': 'finite_design_space_evaluated'}, 'binding': {'type': 'object'}, 'purpose': {'type': 'string'}, 'contract': {'const': 'a2a2p.rectangular-beam-section-design-space'}, 'decision': {'type': 'object'}, 'authority': {'type': 'object'}, 'screening': {'type': 'object', 'required': ['verdict', 'stage', 'policy_version', 'categories', 'flags', 'requires_human_review_before_external_action'], 'properties': {'flags': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 100}, 'stage': {'const': 'review'}, 'verdict': {'enum': ['allow', 'review']}, 'categories': {'type': 'array', 'items': {'type': 'string', 'maxLength': 200}, 'maxItems': 100}, 'policy_version': {'type': 'string', 'maxLength': 120, 'minLength': 1}, 'requires_human_review_before_external_action': {'type': 'boolean'}}, 'additionalProperties': False}, 'candidates': {'type': 'array', 'maxItems': 12, 'minItems': 2}, 'comparison': {'type': 'object'}, 'claim_limits': {'type': 'object'}, 'contract_version': {'const': '0.1.0-draft'}, 'external_effects': {'type': 'object'}, 'declared_design_space': {'type': 'object'}}, 'additionalProperties': False}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
validate_simulation_study_result
Validate a prepared a2a2p simulation-study result. Masked timeout, non-convergence, boundary, unit, provenance, unsupported-model, and solver failures fail closed. Hard constraints gate eligibility; distinct objective values remain visible; Pareto dispositions are canonical and order-independent. It runs no solver, applies no candidate, stores nothing, and grants no physical authority.
입력 스키마
{'type': 'object', 'required': ['study', 'result'], 'properties': {'study': {'type': 'object'}, 'result': {'type': 'object'}}, 'additionalProperties': False}
출력 스키마
{'type': 'object'}
추가됨
qualify_specification_exchange_need
2026년 10월 1일 2:52 AM
변경됨
review_specification
2026년 10월 1일 2:52 AM
변경됨
review_specification
2026년 9월 29일 3:01 AM
추가됨
normalize_stl_units
2026년 9월 25일 3:01 AM
추가됨
revise_requirement
2026년 9월 17일 7:58 AM
추가됨
check_quote_job
2026년 9월 17일 7:58 AM
추가됨
request_provider_estimate
2026년 9월 17일 7:58 AM
추가됨
check_request_status
2026년 9월 17일 7:58 AM
추가됨
upload_design_file
2026년 9월 17일 7:58 AM
추가됨
render_supplier_email_binding
2026년 9월 17일 7:58 AM
추가됨
build_supplier_request_package
2026년 9월 17일 7:58 AM
추가됨
get_supply_options
2026년 9월 17일 7:58 AM
추가됨
run_bounded_simulation_study
2026년 9월 17일 7:58 AM
추가됨
validate_simulation_study_result
2026년 9월 17일 7:58 AM
추가됨
assess_supplier_fit
2026년 9월 17일 7:58 AM
추가됨
translate_materials_project_elasticity
2026년 9월 17일 7:58 AM
추가됨
validate_material_property_evidence
2026년 9월 17일 7:58 AM
추가됨
plan_material_evidence_promotion
2026년 9월 17일 7:58 AM
추가됨
validate_rectangular_beam_section_derivation
2026년 9월 17일 7:58 AM
추가됨
validate_rectangular_beam_section_design_space
2026년 9월 17일 7:58 AM
추가됨
explore_rectangular_beam_sections
2026년 9월 17일 7:58 AM
추가됨
derive_rectangular_beam_section
2026년 9월 17일 7:58 AM
추가됨
prepare_derived_beam_simulation
2026년 9월 17일 7:58 AM
추가됨
prepare_reviewed_beam_simulation
2026년 9월 17일 7:58 AM
추가됨
prepare_simulation_study
2026년 9월 17일 7:58 AM
추가됨
validate_actualization_plan
2026년 9월 17일 7:58 AM
추가됨
validate_domain_solutioning_result
2026년 9월 17일 7:58 AM
추가됨
prepare_domain_solutioning_case
2026년 9월 17일 7:58 AM
추가됨
review_specification
2026년 9월 17일 7:58 AM
추가됨
request_physical_solution
2026년 9월 17일 7:58 AM