{"name":"customer-integration-engineer","description":"Guides and validates customer integrations from requirements through a tested handoff while keeping credentials and production changes under customer control.","version":"0.1.6","skills":[{"id":"design_integration","name":"design_integration","description":"Capture requirements, produce architecture and field mapping artifacts","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":120.0,"idempotent":true,"max_retries":0,"cost_class":"deterministic","allow_scope_expansion":false,"grant_mode":"read_write_overlay","grant_allow_patterns":["outputs/integrations/**"],"grant_deny_patterns":[],"grant_outputs_prefix":"outputs/integrations/","grant_write_prefixes":["outputs/integrations/"],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","required":["request"],"additionalProperties":false,"properties":{"request":{"$defs":{"AuthMethod":{"additionalProperties":false,"properties":{"system_name":{"maxLength":80,"minLength":1,"title":"System Name","type":"string"},"auth_type":{"enum":["none","api_key","bearer_token","oauth2_client_credentials","hmac_signature","mtls","basic","oidc"],"title":"Auth Type","type":"string"},"secret_ref":{"anyOf":[{"pattern":"^[A-Z][A-Z0-9_]{2,127}$","type":"string"},{"type":"null"}],"default":null,"description":"Caller-managed secret reference name only; never a raw secret value.","title":"Secret Ref"},"header_name":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"title":"Header Name"},"token_url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Token Url"},"scopes":{"items":{"type":"string"},"maxItems":20,"title":"Scopes","type":"array"}},"required":["system_name","auth_type"],"title":"AuthMethod","type":"object"},"ComplianceConstraint":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"category":{"enum":["pii","phi","pci","soc2","gdpr","hipaa","data_residency","retention","audit","other"],"title":"Category","type":"string"},"requirement":{"maxLength":2000,"minLength":1,"title":"Requirement","type":"string"}},"required":["name","category","requirement"],"title":"ComplianceConstraint","type":"object"},"DataContract":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"direction":{"enum":["inbound","outbound","bidirectional"],"title":"Direction","type":"string"},"content_type":{"default":"application/json","maxLength":120,"title":"Content Type","type":"string"},"schema_ref":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Schema Ref"},"fields":{"items":{"$ref":"#/$defs/FieldMapping"},"maxItems":200,"title":"Fields","type":"array"},"example_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Example Payload"}},"required":["name","direction"],"title":"DataContract","type":"object"},"EnvironmentSpec":{"additionalProperties":false,"properties":{"name":{"maxLength":64,"minLength":1,"title":"Name","type":"string"},"purpose":{"enum":["dev","test","sandbox","staging","prod"],"title":"Purpose","type":"string"},"endpoint_refs":{"items":{"type":"string"},"maxItems":20,"title":"Endpoint Refs","type":"array"},"object_storage_ref":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Object Storage Ref"},"observability_ref":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Observability Ref"},"mutable":{"default":false,"title":"Mutable","type":"boolean"}},"required":["name","purpose"],"title":"EnvironmentSpec","type":"object"},"FieldMapping":{"additionalProperties":false,"properties":{"source":{"maxLength":160,"minLength":1,"title":"Source","type":"string"},"target":{"maxLength":160,"minLength":1,"title":"Target","type":"string"},"transform":{"default":"copy","maxLength":500,"title":"Transform","type":"string"},"required":{"default":true,"title":"Required","type":"boolean"},"pii":{"default":false,"title":"Pii","type":"boolean"}},"required":["source","target"],"title":"FieldMapping","type":"object"},"IntegrationRequirements":{"additionalProperties":false,"properties":{"integration_id":{"pattern":"^[a-z][a-z0-9-]{2,63}$","title":"Integration Id","type":"string"},"title":{"maxLength":160,"minLength":1,"title":"Title","type":"string"},"systems":{"items":{"$ref":"#/$defs/SystemSpec"},"maxItems":12,"minItems":1,"title":"Systems","type":"array"},"auth_methods":{"items":{"$ref":"#/$defs/AuthMethod"},"maxItems":12,"title":"Auth Methods","type":"array"},"data_contracts":{"items":{"$ref":"#/$defs/DataContract"},"maxItems":20,"title":"Data Contracts","type":"array"},"rate_limits":{"items":{"$ref":"#/$defs/RateLimitSpec"},"maxItems":20,"title":"Rate Limits","type":"array"},"environments":{"items":{"$ref":"#/$defs/EnvironmentSpec"},"maxItems":12,"title":"Environments","type":"array"},"compliance_constraints":{"items":{"$ref":"#/$defs/ComplianceConstraint"},"maxItems":30,"title":"Compliance Constraints","type":"array"},"success_criteria":{"items":{"$ref":"#/$defs/SuccessCriterion"},"maxItems":20,"minItems":1,"title":"Success Criteria","type":"array"},"external_host_allowlist":{"items":{"type":"string"},"maxItems":50,"title":"External Host Allowlist","type":"array"},"repository_write_allowlist":{"items":{"type":"string"},"maxItems":20,"title":"Repository Write Allowlist","type":"array"},"notes":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}],"default":null,"title":"Notes"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"}},"required":["integration_id","title","systems","success_criteria"],"title":"IntegrationRequirements","type":"object"},"RateLimitSpec":{"additionalProperties":false,"properties":{"system_name":{"maxLength":80,"minLength":1,"title":"System Name","type":"string"},"max_requests":{"maximum":1000000,"minimum":1,"title":"Max Requests","type":"integer"},"per_seconds":{"maximum":86400,"minimum":1,"title":"Per Seconds","type":"integer"},"burst":{"anyOf":[{"maximum":1000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Burst"},"retry_after_header":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":"Retry-After","title":"Retry After Header"}},"required":["system_name","max_requests","per_seconds"],"title":"RateLimitSpec","type":"object"},"SuccessCriterion":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"measurement":{"maxLength":500,"minLength":1,"title":"Measurement","type":"string"},"target":{"maxLength":200,"minLength":1,"title":"Target","type":"string"}},"required":["name","measurement","target"],"title":"SuccessCriterion","type":"object"},"SystemSpec":{"additionalProperties":false,"properties":{"name":{"maxLength":80,"minLength":1,"title":"Name","type":"string"},"kind":{"enum":["rest_api","webhook","database","object_storage","observability","gitea","kubernetes","argo_cd","queue","other"],"title":"Kind","type":"string"},"base_url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Base Url"},"environment":{"default":"sandbox","maxLength":64,"title":"Environment","type":"string"},"owner":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"title":"Owner"},"notes":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"title":"Notes"}},"required":["name","kind"],"title":"SystemSpec","type":"object"}},"additionalProperties":false,"properties":{"requirements":{"$ref":"#/$defs/IntegrationRequirements"},"create_artifacts":{"default":true,"title":"Create Artifacts","type":"boolean"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"}},"required":["requirements"],"title":"DesignIntegrationRequest","type":"object"}}},"output_schema":{"$defs":{"ArtifactRecord":{"additionalProperties":false,"properties":{"path":{"title":"Path","type":"string"},"sha256":{"title":"Sha256","type":"string"},"size_bytes":{"minimum":0,"title":"Size Bytes","type":"integer"},"mime_type":{"title":"Mime Type","type":"string"}},"required":["path","sha256","size_bytes","mime_type"],"title":"ArtifactRecord","type":"object"},"AuditEntry":{"additionalProperties":false,"properties":{"ts":{"title":"Ts","type":"string"},"action":{"title":"Action","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"details":{"additionalProperties":true,"title":"Details","type":"object"}},"required":["ts","action","integration_id"],"title":"AuditEntry","type":"object"}},"additionalProperties":false,"properties":{"status":{"enum":["ok","needs_setup","blocked","failed"],"title":"Status","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"dry_run":{"title":"Dry Run","type":"boolean"},"audit":{"items":{"$ref":"#/$defs/AuditEntry"},"title":"Audit","type":"array"},"warnings":{"items":{"type":"string"},"title":"Warnings","type":"array"},"residual_risks":{"items":{"type":"string"},"title":"Residual Risks","type":"array"},"architecture_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Architecture Path"},"mapping_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Mapping Path"},"plan_digest":{"title":"Plan Digest","type":"string"},"artifacts":{"items":{"$ref":"#/$defs/ArtifactRecord"},"title":"Artifacts","type":"array"},"architecture_summary":{"title":"Architecture Summary","type":"string"},"field_mapping_count":{"minimum":0,"title":"Field Mapping Count","type":"integer"},"required_setup":{"items":{"type":"string"},"title":"Required Setup","type":"array"}},"required":["status","integration_id","dry_run","plan_digest","architecture_summary","field_mapping_count"],"title":"DesignIntegrationResult","type":"object"}},{"id":"generate_connector","name":"generate_connector","description":"Generate a minimal workspace-contained connector scaffold with no deployment or repository mutation","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":120.0,"idempotent":true,"max_retries":0,"cost_class":"deterministic","allow_scope_expansion":false,"grant_mode":"read_write_overlay","grant_allow_patterns":["outputs/integrations/**"],"grant_deny_patterns":[],"grant_outputs_prefix":"outputs/integrations/","grant_write_prefixes":["outputs/integrations/"],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","required":["request"],"additionalProperties":false,"properties":{"request":{"$defs":{"AuthMethod":{"additionalProperties":false,"properties":{"system_name":{"maxLength":80,"minLength":1,"title":"System Name","type":"string"},"auth_type":{"enum":["none","api_key","bearer_token","oauth2_client_credentials","hmac_signature","mtls","basic","oidc"],"title":"Auth Type","type":"string"},"secret_ref":{"anyOf":[{"pattern":"^[A-Z][A-Z0-9_]{2,127}$","type":"string"},{"type":"null"}],"default":null,"description":"Caller-managed secret reference name only; never a raw secret value.","title":"Secret Ref"},"header_name":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"title":"Header Name"},"token_url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Token Url"},"scopes":{"items":{"type":"string"},"maxItems":20,"title":"Scopes","type":"array"}},"required":["system_name","auth_type"],"title":"AuthMethod","type":"object"},"ComplianceConstraint":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"category":{"enum":["pii","phi","pci","soc2","gdpr","hipaa","data_residency","retention","audit","other"],"title":"Category","type":"string"},"requirement":{"maxLength":2000,"minLength":1,"title":"Requirement","type":"string"}},"required":["name","category","requirement"],"title":"ComplianceConstraint","type":"object"},"DataContract":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"direction":{"enum":["inbound","outbound","bidirectional"],"title":"Direction","type":"string"},"content_type":{"default":"application/json","maxLength":120,"title":"Content Type","type":"string"},"schema_ref":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"title":"Schema Ref"},"fields":{"items":{"$ref":"#/$defs/FieldMapping"},"maxItems":200,"title":"Fields","type":"array"},"example_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Example Payload"}},"required":["name","direction"],"title":"DataContract","type":"object"},"EnvironmentSpec":{"additionalProperties":false,"properties":{"name":{"maxLength":64,"minLength":1,"title":"Name","type":"string"},"purpose":{"enum":["dev","test","sandbox","staging","prod"],"title":"Purpose","type":"string"},"endpoint_refs":{"items":{"type":"string"},"maxItems":20,"title":"Endpoint Refs","type":"array"},"object_storage_ref":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Object Storage Ref"},"observability_ref":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Observability Ref"},"mutable":{"default":false,"title":"Mutable","type":"boolean"}},"required":["name","purpose"],"title":"EnvironmentSpec","type":"object"},"FieldMapping":{"additionalProperties":false,"properties":{"source":{"maxLength":160,"minLength":1,"title":"Source","type":"string"},"target":{"maxLength":160,"minLength":1,"title":"Target","type":"string"},"transform":{"default":"copy","maxLength":500,"title":"Transform","type":"string"},"required":{"default":true,"title":"Required","type":"boolean"},"pii":{"default":false,"title":"Pii","type":"boolean"}},"required":["source","target"],"title":"FieldMapping","type":"object"},"IntegrationRequirements":{"additionalProperties":false,"properties":{"integration_id":{"pattern":"^[a-z][a-z0-9-]{2,63}$","title":"Integration Id","type":"string"},"title":{"maxLength":160,"minLength":1,"title":"Title","type":"string"},"systems":{"items":{"$ref":"#/$defs/SystemSpec"},"maxItems":12,"minItems":1,"title":"Systems","type":"array"},"auth_methods":{"items":{"$ref":"#/$defs/AuthMethod"},"maxItems":12,"title":"Auth Methods","type":"array"},"data_contracts":{"items":{"$ref":"#/$defs/DataContract"},"maxItems":20,"title":"Data Contracts","type":"array"},"rate_limits":{"items":{"$ref":"#/$defs/RateLimitSpec"},"maxItems":20,"title":"Rate Limits","type":"array"},"environments":{"items":{"$ref":"#/$defs/EnvironmentSpec"},"maxItems":12,"title":"Environments","type":"array"},"compliance_constraints":{"items":{"$ref":"#/$defs/ComplianceConstraint"},"maxItems":30,"title":"Compliance Constraints","type":"array"},"success_criteria":{"items":{"$ref":"#/$defs/SuccessCriterion"},"maxItems":20,"minItems":1,"title":"Success Criteria","type":"array"},"external_host_allowlist":{"items":{"type":"string"},"maxItems":50,"title":"External Host Allowlist","type":"array"},"repository_write_allowlist":{"items":{"type":"string"},"maxItems":20,"title":"Repository Write Allowlist","type":"array"},"notes":{"anyOf":[{"maxLength":4000,"type":"string"},{"type":"null"}],"default":null,"title":"Notes"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"}},"required":["integration_id","title","systems","success_criteria"],"title":"IntegrationRequirements","type":"object"},"RateLimitSpec":{"additionalProperties":false,"properties":{"system_name":{"maxLength":80,"minLength":1,"title":"System Name","type":"string"},"max_requests":{"maximum":1000000,"minimum":1,"title":"Max Requests","type":"integer"},"per_seconds":{"maximum":86400,"minimum":1,"title":"Per Seconds","type":"integer"},"burst":{"anyOf":[{"maximum":1000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"title":"Burst"},"retry_after_header":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":"Retry-After","title":"Retry After Header"}},"required":["system_name","max_requests","per_seconds"],"title":"RateLimitSpec","type":"object"},"SuccessCriterion":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"measurement":{"maxLength":500,"minLength":1,"title":"Measurement","type":"string"},"target":{"maxLength":200,"minLength":1,"title":"Target","type":"string"}},"required":["name","measurement","target"],"title":"SuccessCriterion","type":"object"},"SystemSpec":{"additionalProperties":false,"properties":{"name":{"maxLength":80,"minLength":1,"title":"Name","type":"string"},"kind":{"enum":["rest_api","webhook","database","object_storage","observability","gitea","kubernetes","argo_cd","queue","other"],"title":"Kind","type":"string"},"base_url":{"anyOf":[{"maxLength":2048,"type":"string"},{"type":"null"}],"default":null,"title":"Base Url"},"environment":{"default":"sandbox","maxLength":64,"title":"Environment","type":"string"},"owner":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"title":"Owner"},"notes":{"anyOf":[{"maxLength":2000,"type":"string"},{"type":"null"}],"default":null,"title":"Notes"}},"required":["name","kind"],"title":"SystemSpec","type":"object"}},"additionalProperties":false,"properties":{"requirements":{"$ref":"#/$defs/IntegrationRequirements"},"connector_language":{"default":"python","enum":["python","typescript"],"title":"Connector Language","type":"string"},"include_tests":{"default":true,"title":"Include Tests","type":"boolean"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"},"external_host_allowlist":{"items":{"type":"string"},"maxItems":50,"title":"External Host Allowlist","type":"array"},"repository_write_allowlist":{"items":{"type":"string"},"maxItems":20,"title":"Repository Write Allowlist","type":"array"}},"required":["requirements"],"title":"GenerateConnectorRequest","type":"object"}}},"output_schema":{"$defs":{"ArtifactRecord":{"additionalProperties":false,"properties":{"path":{"title":"Path","type":"string"},"sha256":{"title":"Sha256","type":"string"},"size_bytes":{"minimum":0,"title":"Size Bytes","type":"integer"},"mime_type":{"title":"Mime Type","type":"string"}},"required":["path","sha256","size_bytes","mime_type"],"title":"ArtifactRecord","type":"object"},"AuditEntry":{"additionalProperties":false,"properties":{"ts":{"title":"Ts","type":"string"},"action":{"title":"Action","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"details":{"additionalProperties":true,"title":"Details","type":"object"}},"required":["ts","action","integration_id"],"title":"AuditEntry","type":"object"}},"additionalProperties":false,"properties":{"status":{"enum":["ok","needs_setup","blocked","failed"],"title":"Status","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"dry_run":{"title":"Dry Run","type":"boolean"},"audit":{"items":{"$ref":"#/$defs/AuditEntry"},"title":"Audit","type":"array"},"warnings":{"items":{"type":"string"},"title":"Warnings","type":"array"},"residual_risks":{"items":{"type":"string"},"title":"Residual Risks","type":"array"},"connector_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Connector Path"},"test_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Test Path"},"plan_digest":{"title":"Plan Digest","type":"string"},"artifacts":{"items":{"$ref":"#/$defs/ArtifactRecord"},"title":"Artifacts","type":"array"},"generated_files":{"items":{"type":"string"},"title":"Generated Files","type":"array"},"blocked_actions":{"items":{"type":"string"},"title":"Blocked Actions","type":"array"}},"required":["status","integration_id","dry_run","plan_digest"],"title":"GenerateConnectorResult","type":"object"}},{"id":"validate_contract","name":"validate_contract","description":"Validate OpenAPI, JSON Schema, and webhook contracts with deterministic fixtures","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":120.0,"idempotent":true,"max_retries":0,"cost_class":"deterministic","allow_scope_expansion":false,"grant_mode":"read_write_overlay","grant_allow_patterns":["outputs/integrations/**"],"grant_deny_patterns":[],"grant_outputs_prefix":"outputs/integrations/","grant_write_prefixes":["outputs/integrations/"],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","required":["request"],"additionalProperties":false,"properties":{"request":{"$defs":{"ContractArtifact":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"kind":{"enum":["json_schema","openapi_3","webhook"],"title":"Kind","type":"string"},"schema_doc":{"additionalProperties":true,"title":"Schema Doc","type":"object"},"fixtures":{"items":{"$ref":"#/$defs/ContractFixture"},"maxItems":50,"title":"Fixtures","type":"array"},"signature_header":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"title":"Signature Header"},"secret_ref":{"anyOf":[{"pattern":"^[A-Z][A-Z0-9_]{2,127}$","type":"string"},{"type":"null"}],"default":null,"title":"Secret Ref"}},"required":["name","kind","schema_doc"],"title":"ContractArtifact","type":"object"},"ContractFixture":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"payload":{"additionalProperties":true,"title":"Payload","type":"object"},"should_pass":{"default":true,"title":"Should Pass","type":"boolean"}},"required":["name","payload"],"title":"ContractFixture","type":"object"}},"additionalProperties":false,"properties":{"integration_id":{"pattern":"^[a-z][a-z0-9-]{2,63}$","title":"Integration Id","type":"string"},"contracts":{"items":{"$ref":"#/$defs/ContractArtifact"},"maxItems":20,"minItems":1,"title":"Contracts","type":"array"},"fail_on_drift":{"default":true,"title":"Fail On Drift","type":"boolean"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"}},"required":["integration_id","contracts"],"title":"ValidateContractRequest","type":"object"}}},"output_schema":{"$defs":{"ArtifactRecord":{"additionalProperties":false,"properties":{"path":{"title":"Path","type":"string"},"sha256":{"title":"Sha256","type":"string"},"size_bytes":{"minimum":0,"title":"Size Bytes","type":"integer"},"mime_type":{"title":"Mime Type","type":"string"}},"required":["path","sha256","size_bytes","mime_type"],"title":"ArtifactRecord","type":"object"},"AuditEntry":{"additionalProperties":false,"properties":{"ts":{"title":"Ts","type":"string"},"action":{"title":"Action","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"details":{"additionalProperties":true,"title":"Details","type":"object"}},"required":["ts","action","integration_id"],"title":"AuditEntry","type":"object"},"ContractCheck":{"additionalProperties":false,"properties":{"name":{"title":"Name","type":"string"},"kind":{"title":"Kind","type":"string"},"status":{"enum":["pass","fail","warn"],"title":"Status","type":"string"},"findings":{"items":{"type":"string"},"title":"Findings","type":"array"},"fixture_results":{"items":{"additionalProperties":true,"type":"object"},"title":"Fixture Results","type":"array"}},"required":["name","kind","status"],"title":"ContractCheck","type":"object"}},"additionalProperties":false,"properties":{"status":{"enum":["ok","needs_setup","blocked","failed"],"title":"Status","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"dry_run":{"title":"Dry Run","type":"boolean"},"audit":{"items":{"$ref":"#/$defs/AuditEntry"},"title":"Audit","type":"array"},"warnings":{"items":{"type":"string"},"title":"Warnings","type":"array"},"residual_risks":{"items":{"type":"string"},"title":"Residual Risks","type":"array"},"contract_report_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Contract Report Path"},"artifacts":{"items":{"$ref":"#/$defs/ArtifactRecord"},"title":"Artifacts","type":"array"},"checks":{"items":{"$ref":"#/$defs/ContractCheck"},"title":"Checks","type":"array"},"drift_detected":{"default":false,"title":"Drift Detected","type":"boolean"}},"required":["status","integration_id","dry_run"],"title":"ValidateContractResult","type":"object"}},{"id":"run_acceptance","name":"run_acceptance","description":"Run dry-run or allowlisted acceptance checks using endpoint metadata and secret references","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":180.0,"idempotent":true,"max_retries":0,"cost_class":"deterministic","allow_scope_expansion":false,"grant_mode":"read_write_overlay","grant_allow_patterns":["outputs/integrations/**"],"grant_deny_patterns":[],"grant_outputs_prefix":"outputs/integrations/","grant_write_prefixes":["outputs/integrations/"],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","required":["request"],"additionalProperties":false,"properties":{"request":{"$defs":{"ContractArtifact":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"kind":{"enum":["json_schema","openapi_3","webhook"],"title":"Kind","type":"string"},"schema_doc":{"additionalProperties":true,"title":"Schema Doc","type":"object"},"fixtures":{"items":{"$ref":"#/$defs/ContractFixture"},"maxItems":50,"title":"Fixtures","type":"array"},"signature_header":{"anyOf":[{"maxLength":120,"type":"string"},{"type":"null"}],"default":null,"title":"Signature Header"},"secret_ref":{"anyOf":[{"pattern":"^[A-Z][A-Z0-9_]{2,127}$","type":"string"},{"type":"null"}],"default":null,"title":"Secret Ref"}},"required":["name","kind","schema_doc"],"title":"ContractArtifact","type":"object"},"ContractFixture":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"payload":{"additionalProperties":true,"title":"Payload","type":"object"},"should_pass":{"default":true,"title":"Should Pass","type":"boolean"}},"required":["name","payload"],"title":"ContractFixture","type":"object"},"EndpointTest":{"additionalProperties":false,"properties":{"name":{"maxLength":120,"minLength":1,"title":"Name","type":"string"},"method":{"default":"POST","enum":["GET","POST","PUT","PATCH","DELETE"],"title":"Method","type":"string"},"url":{"maxLength":2048,"title":"Url","type":"string"},"expected_status":{"default":200,"maximum":599,"minimum":100,"title":"Expected Status","type":"integer"},"request_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"default":null,"title":"Request Json"},"required_secret_refs":{"items":{"type":"string"},"maxItems":10,"title":"Required Secret Refs","type":"array"},"idempotency_key":{"anyOf":[{"maxLength":160,"type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"}},"required":["name","url"],"title":"EndpointTest","type":"object"}},"additionalProperties":false,"properties":{"integration_id":{"pattern":"^[a-z][a-z0-9-]{2,63}$","title":"Integration Id","type":"string"},"endpoint_tests":{"items":{"$ref":"#/$defs/EndpointTest"},"maxItems":20,"title":"Endpoint Tests","type":"array"},"contract_fixtures":{"items":{"$ref":"#/$defs/ContractArtifact"},"maxItems":20,"title":"Contract Fixtures","type":"array"},"external_host_allowlist":{"items":{"type":"string"},"maxItems":50,"title":"External Host Allowlist","type":"array"},"allow_network":{"default":false,"title":"Allow Network","type":"boolean"},"max_retries":{"default":1,"maximum":3,"minimum":0,"title":"Max Retries","type":"integer"},"timeout_seconds":{"default":8.0,"maximum":30.0,"minimum":1.0,"title":"Timeout Seconds","type":"number"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"}},"required":["integration_id"],"title":"RunAcceptanceRequest","type":"object"}}},"output_schema":{"$defs":{"AcceptanceStepResult":{"additionalProperties":false,"properties":{"name":{"title":"Name","type":"string"},"status":{"enum":["pass","fail","skipped","blocked"],"title":"Status","type":"string"},"attempts":{"minimum":0,"title":"Attempts","type":"integer"},"detail":{"title":"Detail","type":"string"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Idempotency Key"}},"required":["name","status","attempts","detail"],"title":"AcceptanceStepResult","type":"object"},"ArtifactRecord":{"additionalProperties":false,"properties":{"path":{"title":"Path","type":"string"},"sha256":{"title":"Sha256","type":"string"},"size_bytes":{"minimum":0,"title":"Size Bytes","type":"integer"},"mime_type":{"title":"Mime Type","type":"string"}},"required":["path","sha256","size_bytes","mime_type"],"title":"ArtifactRecord","type":"object"},"AuditEntry":{"additionalProperties":false,"properties":{"ts":{"title":"Ts","type":"string"},"action":{"title":"Action","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"details":{"additionalProperties":true,"title":"Details","type":"object"}},"required":["ts","action","integration_id"],"title":"AuditEntry","type":"object"},"ContractCheck":{"additionalProperties":false,"properties":{"name":{"title":"Name","type":"string"},"kind":{"title":"Kind","type":"string"},"status":{"enum":["pass","fail","warn"],"title":"Status","type":"string"},"findings":{"items":{"type":"string"},"title":"Findings","type":"array"},"fixture_results":{"items":{"additionalProperties":true,"type":"object"},"title":"Fixture Results","type":"array"}},"required":["name","kind","status"],"title":"ContractCheck","type":"object"}},"additionalProperties":false,"properties":{"status":{"enum":["ok","needs_setup","blocked","failed"],"title":"Status","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"dry_run":{"title":"Dry Run","type":"boolean"},"audit":{"items":{"$ref":"#/$defs/AuditEntry"},"title":"Audit","type":"array"},"warnings":{"items":{"type":"string"},"title":"Warnings","type":"array"},"residual_risks":{"items":{"type":"string"},"title":"Residual Risks","type":"array"},"acceptance_report_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Acceptance Report Path"},"artifacts":{"items":{"$ref":"#/$defs/ArtifactRecord"},"title":"Artifacts","type":"array"},"step_results":{"items":{"$ref":"#/$defs/AcceptanceStepResult"},"title":"Step Results","type":"array"},"contract_results":{"items":{"$ref":"#/$defs/ContractCheck"},"title":"Contract Results","type":"array"},"network_calls_made":{"minimum":0,"title":"Network Calls Made","type":"integer"}},"required":["status","integration_id","dry_run","network_calls_made"],"title":"RunAcceptanceResult","type":"object"}},{"id":"prepare_handoff","name":"prepare_handoff","description":"Prepare rollout, rollback, monitoring, and operator handoff documentation with approval-gated delivery planning","tags":[],"scopes":[],"stream":false,"policy":{"timeout_seconds":120.0,"idempotent":true,"max_retries":0,"cost_class":"deterministic","allow_scope_expansion":false,"grant_mode":"read_write_overlay","grant_allow_patterns":["outputs/integrations/**"],"grant_deny_patterns":[],"grant_outputs_prefix":"outputs/integrations/","grant_write_prefixes":["outputs/integrations/"],"grant_ttl_seconds":null,"grant_run_timeout_seconds":null,"grant_approval_timeout_seconds":null,"grant_scope_approval_timeout_seconds":null},"input_schema":{"type":"object","required":["request"],"additionalProperties":false,"properties":{"request":{"$defs":{"HandoffSection":{"additionalProperties":false,"properties":{"heading":{"maxLength":120,"minLength":1,"title":"Heading","type":"string"},"body":{"maxLength":8000,"minLength":1,"title":"Body","type":"string"}},"required":["heading","body"],"title":"HandoffSection","type":"object"}},"additionalProperties":false,"properties":{"integration_id":{"pattern":"^[a-z][a-z0-9-]{2,63}$","title":"Integration Id","type":"string"},"title":{"maxLength":160,"minLength":1,"title":"Title","type":"string"},"rollout_steps":{"items":{"type":"string"},"maxItems":30,"minItems":1,"title":"Rollout Steps","type":"array"},"rollback_steps":{"items":{"type":"string"},"maxItems":30,"minItems":1,"title":"Rollback Steps","type":"array"},"monitoring_checks":{"items":{"type":"string"},"maxItems":30,"minItems":1,"title":"Monitoring Checks","type":"array"},"operator_notes":{"items":{"$ref":"#/$defs/HandoffSection"},"maxItems":20,"title":"Operator Notes","type":"array"},"delivery_actions":{"items":{"type":"string"},"maxItems":20,"title":"Delivery Actions","type":"array"},"plan_digest":{"anyOf":[{"maxLength":128,"type":"string"},{"type":"null"}],"default":null,"title":"Plan Digest"},"approval_phrase":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"title":"Approval Phrase"},"approve_delivery":{"default":false,"title":"Approve Delivery","type":"boolean"},"dry_run":{"default":true,"title":"Dry Run","type":"boolean"}},"required":["integration_id","title","rollout_steps","rollback_steps","monitoring_checks"],"title":"PrepareHandoffRequest","type":"object"}}},"output_schema":{"$defs":{"ArtifactRecord":{"additionalProperties":false,"properties":{"path":{"title":"Path","type":"string"},"sha256":{"title":"Sha256","type":"string"},"size_bytes":{"minimum":0,"title":"Size Bytes","type":"integer"},"mime_type":{"title":"Mime Type","type":"string"}},"required":["path","sha256","size_bytes","mime_type"],"title":"ArtifactRecord","type":"object"},"AuditEntry":{"additionalProperties":false,"properties":{"ts":{"title":"Ts","type":"string"},"action":{"title":"Action","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"details":{"additionalProperties":true,"title":"Details","type":"object"}},"required":["ts","action","integration_id"],"title":"AuditEntry","type":"object"}},"additionalProperties":false,"properties":{"status":{"enum":["ok","needs_setup","blocked","failed"],"title":"Status","type":"string"},"integration_id":{"title":"Integration Id","type":"string"},"dry_run":{"title":"Dry Run","type":"boolean"},"audit":{"items":{"$ref":"#/$defs/AuditEntry"},"title":"Audit","type":"array"},"warnings":{"items":{"type":"string"},"title":"Warnings","type":"array"},"residual_risks":{"items":{"type":"string"},"title":"Residual Risks","type":"array"},"handoff_path":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"title":"Handoff Path"},"plan_digest":{"title":"Plan Digest","type":"string"},"artifacts":{"items":{"$ref":"#/$defs/ArtifactRecord"},"title":"Artifacts","type":"array"},"approval_required":{"title":"Approval Required","type":"boolean"},"approval_valid":{"title":"Approval Valid","type":"boolean"},"delivery_executed":{"default":false,"title":"Delivery Executed","type":"boolean"}},"required":["status","integration_id","dry_run","plan_digest","approval_required","approval_valid"],"title":"PrepareHandoffResult","type":"object"}}],"capabilities":{"a2a_pack":{"package":"a2a-pack","version":"0.1.111"},"mcp":{"standard":{"path":"/mcp","intended_for":"code_sdk_clients"},"connector":{"path":"/connector-mcp","intended_for":["chatgpt","claude","hosted_connectors"],"supports_async_jobs":true,"supports_structured_interrupts":true,"poll_tool":"job_result","resume_tool":"submit_interaction","instructions":"Use this URL for hosted connector UIs. Use /mcp for normal code or SDK MCP clients."}}},"input_modes":["application/json"],"output_modes":["application/json"],"required_secrets":[],"required_env":[],"consumer_setup":{"fields":[{"name":"GITEA_REPOSITORY","kind":"config","label":"Gitea repository","description":"Optional owner/repo target controlled by the caller.","required":false,"input_type":"text","options":[]},{"name":"GITEA_TOKEN","kind":"secret","label":"Gitea token","description":"Optional caller-managed token reference; never returned or stored.","required":false,"input_type":"password","options":[]},{"name":"API_BASE_URL","kind":"config","label":"API base URL","description":"Optional endpoint used only when allowlisted and dry_run=false.","required":false,"input_type":"url","options":[]},{"name":"API_AUTH_TOKEN","kind":"secret","label":"API auth token","description":"Optional caller-managed API credential reference.","required":false,"input_type":"password","options":[]},{"name":"OBJECT_STORAGE_REF","kind":"config","label":"Object storage reference","description":"Caller-owned object storage config reference.","required":false,"input_type":"text","options":[]},{"name":"OBSERVABILITY_REF","kind":"config","label":"Observability reference","description":"Caller-owned logs/metrics/traces reference.","required":false,"input_type":"text","options":[]},{"name":"KUBERNETES_CONTEXT_REF","kind":"config","label":"Kubernetes context reference","description":"Optional caller-owned Kubernetes context reference.","required":false,"input_type":"text","options":[]},{"name":"ARGOCD_APP_REF","kind":"config","label":"Argo CD app reference","description":"Optional caller-owned Argo CD app reference.","required":false,"input_type":"text","options":[]}]},"runtime":{"lifecycle":"ephemeral","availability":"on_demand","state":"none","sandbox":"microsandbox","resources":{"cpu":"500m","memory":"512Mi","gpu":0,"max_runtime_seconds":600},"concurrency":1,"egress":{"allow_hosts":[],"allow_internal_services":[],"deny_internet_by_default":true},"tools_used":["pydantic","jsonschema","httpx"],"llm_provisioning":"platform","pricing":{"price_per_call_usd":0.0,"caller_pays_llm":false,"notes":"Deterministic no-LLM integration engineering; callers keep credentials and production changes under their control."},"wants_cp_jwt":false,"platform_resources":{"memory":null,"databases":[],"mailbox":null},"endpoints":[],"apt_packages":[]},"state_schema":null,"workspace_access":{"enabled":true,"max_files":256,"allowed_modes":["read_only","read_write_overlay"],"require_reason":true,"deny_patterns":["**/.env","**/*secret*","**/*token*","**/id_rsa","**/.git/**"],"require_human_approval":false,"max_total_size_bytes":20971520},"mcp_endpoint":"/mcp","connector_mcp_endpoint":"/connector-mcp","mcp_endpoints":{"standard":{"path":"/mcp","intended_for":"code_sdk_clients"},"connector":{"path":"/connector-mcp","intended_for":["chatgpt","claude","hosted_connectors"],"supports_async_jobs":true,"supports_structured_interrupts":true,"poll_tool":"job_result","resume_tool":"submit_interaction","instructions":"Use this URL for hosted connector UIs. Use /mcp for normal code or SDK MCP clients."}}}