{"openapi":"3.1.0","info":{"title":"Camile World Model — Public API","version":"v0.10.6","description":"Contrato público da API do Camile World Model. O contrato só acrescenta: novos campos e endpoints são aditivos entre releases. Cada resposta carrega o custo da chamada em CWM Units via X-Cwm-Units.","x-price-per-unit-brl":0.0012},"servers":[{"url":"https://api.camileai.com/v1/cwm"}],"security":[{"bearerAuth":[]}],"paths":{"/worlds":{"post":{"summary":"Cria um mundo isolado para o seu client.","operationId":"createWorld","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["world_id"],"properties":{"world_id":{"type":"string","pattern":"^[a-z0-9-]{2,40}$"}}}}}},"responses":{"200":{"description":"Mundo criado.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/World"}}}},"409":{"description":"world_id já existe."}}},"get":{"summary":"Lista os mundos do client.","operationId":"listWorlds","responses":{"200":{"description":"Lista de mundos.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"worlds":{"type":"array","items":{"$ref":"#/components/schemas/World"}}}}}}}}}},"/worlds/{id}":{"delete":{"summary":"Remove um mundo do client (purge opcional).","operationId":"deleteWorld","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"purge","in":"query","schema":{"type":"string","enum":["1"]},"description":"1 remove também o estado persistido."}],"responses":{"200":{"description":"Mundo removido.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}},"404":{"description":"Mundo não existe."}}}},"/worlds/{id}/observations/{tipo}":{"post":{"summary":"Ingere um evento como observação (idempotente).","operationId":"ingestObservation","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"tipo","in":"path","required":true,"schema":{"type":"string"},"description":"Ex.: user-message, sensor-reading, transaction."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"description":"Reenvio com a mesma chave não cobra duas vezes."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["event_time"],"properties":{"user":{"type":"string"},"text":{"type":"string"},"payload":{"type":"object","additionalProperties":true},"event_time":{"type":"integer","description":"Unix epoch (segundos)."}}}}}},"responses":{"200":{"description":"Observação aceita.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"observation_id":{"type":"string"},"duplicate":{"type":"boolean"},"entities":{"type":"array","items":{"type":"string"}},"new_beliefs":{"type":"integer"}}}}}},"422":{"description":"Evento malformado."}}}},"/worlds/{id}/state":{"get":{"summary":"Estado consultável do mundo: entidades, relações e crenças com confiança.","operationId":"getWorldState","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Estado atual do mundo.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/state.compare":{"get":{"summary":"Compara o estado entre dois instantes do mundo.","operationId":"compareState","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","schema":{"type":"integer"}},{"name":"to","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"Diferencial de estado.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/forecasts":{"get":{"summary":"Previsões multi-horizonte com incerteza calibrada.","operationId":"getForecasts","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"horizon","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Conjunto de previsões.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/forecasts:verify":{"post":{"summary":"Verifica previsões pendentes contra eventos que chegaram.","operationId":"verifyForecasts","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Resultado da verificação.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/risk":{"get":{"summary":"Risco quantificado do estado atual do mundo.","operationId":"getRisk","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Métricas de risco.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/simulate":{"post":{"summary":"Roda cenários deliberativos (simulação/planejamento).","operationId":"simulate","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"horizon":{"type":"string"},"policy":{"type":"object","additionalProperties":true}}}}}},"responses":{"200":{"description":"Resultado da simulação.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/counterfactual-world":{"post":{"summary":"Cria mundo alternativo para comparação contrafactual.","operationId":"counterfactualWorld","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Mundo alternativo criado.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/World"}}}}}}},"/worlds/{id}/causal/discover":{"post":{"summary":"Descoberta causal sobre o fluxo do mundo.","operationId":"discoverCausal","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hipóteses causais ranqueadas.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/beliefs/{predicado}":{"get":{"summary":"Consulta crença específica com histórico e confiança.","operationId":"getBelief","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"predicado","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Crença e histórico de confiança.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/contradictions":{"get":{"summary":"Contradições detectadas entre crenças.","operationId":"getContradictions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Lista de contradições.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/needs-evidence":{"get":{"summary":"Lacunas explícitas: onde o mundo pede evidência.","operationId":"getNeedsEvidence","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Lacunas de evidência.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/worlds/{id}/health":{"get":{"summary":"Painel de saúde do mundo (alertas por regra literal).","operationId":"getWorldHealth","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Saúde do mundo.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}},"/usage":{"get":{"summary":"Consumo agregado em CWM Units por client/mundo/etapa.","operationId":"getUsage","parameters":[{"name":"world_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Consumo agregado.","headers":{"X-Cwm-Units":{"description":"Custo da chamada em CWM Units.","schema":{"type":"number"}},"X-Cwm-Cpu-Ms":{"description":"Tempo de CPU consumido pela chamada (ms).","schema":{"type":"number"}},"X-Cwm-Client-Id":{"description":"Identificador do client autenticado.","schema":{"type":"string"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key do client (cwm_live_… ou cwm_test_…)."}},"schemas":{"World":{"type":"object","properties":{"world_id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}}}}}