JSON Schema 문서 다섯 개. 호스트가 실제로 검증에 쓰는 Zod 정의에서 생성되므로, 호스트가 구현하지 않는 프로토콜을 기술할 수 없습니다.
이 아래 설명 본문과, 카탈로그가 저장소에서 실어 오는 것들(요약·방법론·README·라이선스 고지)은 영어입니다. 저장소의 문서에서 생성되는 것이라, 한국어판을 두는 일은 웹에 번역을 붙이는 것이 아니라 원본 문서를 두 벌 유지하겠다는 약속이 됩니다 — 아직 하지 않은 약속입니다.
저장소에서 생성된 문서이고, Aumos 밖에서 프로토콜을 직접 구현할 때만 필요합니다. 패키지를 만드는 데에는 두 페이지 모두 필요하지 않습니다.
These files are generated, never authored. A test in the repository regenerates them and compares, so a hand-edit fails the build rather than quietly becoming the stale document an outside implementer reads.
manager-invocation.schema.jsonEverything an agent is sent. Note asOf, which is separate from clock.now and is the instant the judgement is about — every gateway call is pinned to it; and language, which governs the agent’s prose and nothing else.
manager-result.schema.jsonEverything an agent may send back. Strict at every level, except that a field this schema does not define is dropped from the judgement and named back to you rather than refusing it.
manager-error.schema.jsonWhat to return when you could not look, as opposed to when you looked and decided to do nothing. The two are never scored alike.
decision-proposal.schema.jsonThe judgement itself. It expresses portfolio intent — there is nowhere in it to put a quantity, a limit price, an order type or a venue, because turning intent into orders is the host’s and happens behind a person’s approval. One judgement may name a whole basket: target and targets are read as a single list and resolved together against one book.
manager-package-manifest.schema.jsonWhat a package declares about itself: identity, the capabilities it asks for, and — for a ported harness — whose work it is derived from. This is the whole of what Aumos reads before deciding to run something; agent code is never analysed.
asOf is not clock.nowasOf is the instant your judgement is about; clock.now is when the machine is running. In a replay they are months apart. There is no default for asOf — absent, null, empty, malformed and future are five separate refusals, and none of them reaches a data source. A default of "now" is exactly how a backtest becomes a leak without anyone noticing.
⚠️ What it is not, since the port layer was removed: a boundary. Every gateway call is pinned to it and every Evidence row records it, so what was asked, and as of when is always answerable. Whether the answer was confined to that instant is not — a data source relays a vendor's response unread, and the session reaches the open web on its own. It is the largest thing this project has given up on purpose, and it is written down rather than papered over.
language governs your prose and nothing elseField names and enum values are the wire format and are always English. A translated key or a translated enum value does not fail that field — it fails the whole payload, and the run is recorded as one that could not answer in the protocol. Evidence is never translated at all: a translated source is one no auditor can check against the original.
Nothing requires a manager to be TypeScript, in-process, or running now. The conformance suite judges an implementation from its manifest plus one response per canonical invocation — a Python harness, a hosted service, or a directory of recorded JSON all qualify.