{"openapi":"3.1.0","info":{"title":"MapApp Agent API","version":"1.0.0","description":"Generated from executable parameter and response definitions. Recommended path: one entrance response, one derived selector, one workload. Activity answers what happened during this window; Scout answers longer-lived occupied-root context; Search is for a supplied subject. For “this week”, use Activity with since=7d and follow its response-level aggregate Fetch action with content,profile,location,provenance,replies; follow returned Fetch/Replies actions; follow Replies only when replySummary.complete=false. precision 2–4 is a regional grouping heuristic, not a boundary guarantee. Operation cards and OpenAPI references are optional."},"servers":[{"url":"https://dev.town.space"}],"paths":{"/api/agent/v1":{"get":{"operationId":"getAgentPrimer","summary":"Agent API primer/capabilities","responses":{"200":{"description":"text/plain default; application/json for capabilities","content":{"text/plain":{"schema":{"type":"string"}},"application/json":{"schema":{"$ref":"#/components/schemas/Capabilities"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/openapi.json":{"get":{"operationId":"getAgentOpenApi","summary":"Generated OpenAPI document","responses":{"200":{"description":"OpenAPI 3.1 JSON","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/operations":{"get":{"operationId":"listAgentOperations","summary":"Compact public operation index","responses":{"200":{"description":"Contract response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationIndex"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/operations/{workload}":{"get":{"operationId":"getAgentOperationCard","summary":"Compact public operation card","parameters":[{"name":"workload","in":"path","required":true,"schema":{"type":"string","enum":["scout","activity","search","fetch","replies","health"]}}],"responses":{"200":{"description":"Contract response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperationCard"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/categories":{"get":{"operationId":"getAgentCategoryCatalog","summary":"Closed public category catalog","responses":{"200":{"description":"Contract response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CategoryCatalog"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/scout":{"get":{"operationId":"scoutMap","summary":"MapApp agent scout","description":"Strict public GET. agent-scout/v1; unknown parameters are rejected. No authentication scheme is advertised.","parameters":[{"name":"geohash","in":"query","required":false,"description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants.","schema":{"type":"array","items":{"type":"string","description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants."},"maxItems":8},"style":"form","explode":true},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude; requires lng and radiusKm.","schema":{"type":"number","description":"WGS84 latitude; requires lng and radiusKm.","minimum":-90,"maximum":90}},{"name":"lng","in":"query","required":false,"description":"WGS84 longitude; requires lat and radiusKm.","schema":{"type":"number","description":"WGS84 longitude; requires lat and radiusKm.","minimum":-180,"maximum":180}},{"name":"radiusKm","in":"query","required":false,"description":"Positive radius in km; requires lat and lng.","schema":{"type":"number","description":"Positive radius in km; requires lat and lng.","exclusiveMinimum":0}},{"name":"bbox","in":"query","required":false,"description":"west,south,east,north; west>east explicitly crosses the antimeridian.","schema":{"type":"string","description":"west,south,east,north; west>east explicitly crosses the antimeridian."}},{"name":"scope","in":"query","required":false,"description":"World selector where supported.","schema":{"type":"string","description":"World selector where supported.","enum":["world"]}},{"name":"precision","in":"query","required":false,"description":"Comparison precision.","schema":{"oneOf":[{"const":"auto"},{"type":"integer","minimum":1,"maximum":8}],"default":"auto"}},{"name":"category","in":"query","required":false,"description":"Repeated category values combine with OR.","schema":{"type":"array","items":{"type":"string","description":"Repeated category values combine with OR.","enum":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"]}},"style":"form","explode":true},{"name":"order","in":"query","required":false,"description":"Workload-specific order.","schema":{"type":"string","description":"Workload-specific order.","enum":["representativeGrow","livePosts","representativeReplies"],"default":"representativeGrow"}},{"name":"limit","in":"query","required":false,"description":"Maximum returned items.","schema":{"type":"integer","description":"Maximum returned items.","default":50,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque non-empty, normalized-request-bound cursor.","schema":{"type":"string","description":"Opaque non-empty, normalized-request-bound cursor."}}],"responses":{"200":{"description":"JSON is canonical; HTML and Markdown are deterministic text projections.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoutResponse"}},"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"406":{"description":"The requested success representation is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The cursor is stale or belongs to a different normalized request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"The cursor has expired and the request must be restarted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The request failed strict parameter or scope validation.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The anonymous request budget is temporarily exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The read workload is temporarily unavailable or exceeded its bounded response budget.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/activity":{"get":{"operationId":"getMapActivity","summary":"MapApp agent activity","description":"Strict public GET. agent-activity/v1; unknown parameters are rejected. No authentication scheme is advertised.","parameters":[{"name":"geohash","in":"query","required":false,"description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants.","schema":{"type":"array","items":{"type":"string","description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants."},"maxItems":8},"style":"form","explode":true},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude; requires lng and radiusKm.","schema":{"type":"number","description":"WGS84 latitude; requires lng and radiusKm.","minimum":-90,"maximum":90}},{"name":"lng","in":"query","required":false,"description":"WGS84 longitude; requires lat and radiusKm.","schema":{"type":"number","description":"WGS84 longitude; requires lat and radiusKm.","minimum":-180,"maximum":180}},{"name":"radiusKm","in":"query","required":false,"description":"Positive radius in km; requires lat and lng.","schema":{"type":"number","description":"Positive radius in km; requires lat and lng.","exclusiveMinimum":0}},{"name":"bbox","in":"query","required":false,"description":"west,south,east,north; west>east explicitly crosses the antimeridian.","schema":{"type":"string","description":"west,south,east,north; west>east explicitly crosses the antimeridian."}},{"name":"scope","in":"query","required":false,"description":"World selector where supported.","schema":{"type":"string","description":"World selector where supported.","enum":["world"]}},{"name":"since","in":"query","required":false,"description":"Activity enum or positive search duration; mutually exclusive with from/to.","schema":{"type":"string","description":"Activity enum or positive search duration; mutually exclusive with from/to.","enum":["1h","6h","24h","7d","31d"],"default":"24h"}},{"name":"precision","in":"query","required":false,"description":"Comparison precision.","schema":{"oneOf":[{"const":"auto"},{"type":"integer","minimum":1,"maximum":8}],"default":"auto"}},{"name":"category","in":"query","required":false,"description":"Repeated category values combine with OR.","schema":{"type":"array","items":{"type":"string","description":"Repeated category values combine with OR.","enum":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"]}},"style":"form","explode":true},{"name":"order","in":"query","required":false,"description":"Workload-specific order.","schema":{"type":"string","description":"Workload-specific order.","enum":["activity","activeThreads","newPosts","recentReplies","activeGrowsAdded"],"default":"activity"}},{"name":"limit","in":"query","required":false,"description":"Maximum returned items.","schema":{"type":"integer","description":"Maximum returned items.","default":25,"minimum":1,"maximum":100}},{"name":"highlights","in":"query","required":false,"description":"Compact highlights per activity area.","schema":{"type":"integer","description":"Compact highlights per activity area.","default":1,"minimum":0,"maximum":3}},{"name":"compare","in":"query","required":false,"description":"Compare current Activity with the immediately preceding equal window over the bounded top-current-and-previous-cell universe.","schema":{"type":"string","description":"Compare current Activity with the immediately preceding equal window over the bounded top-current-and-previous-cell universe.","enum":["previous"]}},{"name":"cursor","in":"query","required":false,"description":"Opaque non-empty, normalized-request-bound cursor.","schema":{"type":"string","description":"Opaque non-empty, normalized-request-bound cursor."}}],"responses":{"200":{"description":"JSON is canonical; HTML and Markdown are deterministic text projections.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityResponse"}},"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"406":{"description":"The requested success representation is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The cursor is stale or belongs to a different normalized request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"The cursor has expired and the request must be restarted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The request failed strict parameter or scope validation.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The anonymous request budget is temporarily exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The read workload is temporarily unavailable or exceeded its bounded response budget.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/search":{"get":{"operationId":"searchMap","summary":"MapApp agent search","description":"Strict public GET. agent-search/v1; unknown parameters are rejected. No authentication scheme is advertised.","parameters":[{"name":"geohash","in":"query","required":false,"description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants.","schema":{"type":"array","items":{"type":"string","description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants."},"maxItems":8},"style":"form","explode":true},{"name":"lat","in":"query","required":false,"description":"WGS84 latitude; requires lng and radiusKm.","schema":{"type":"number","description":"WGS84 latitude; requires lng and radiusKm.","minimum":-90,"maximum":90}},{"name":"lng","in":"query","required":false,"description":"WGS84 longitude; requires lat and radiusKm.","schema":{"type":"number","description":"WGS84 longitude; requires lat and radiusKm.","minimum":-180,"maximum":180}},{"name":"radiusKm","in":"query","required":false,"description":"Positive radius in km; requires lat and lng.","schema":{"type":"number","description":"Positive radius in km; requires lat and lng.","exclusiveMinimum":0}},{"name":"bbox","in":"query","required":false,"description":"west,south,east,north; west>east explicitly crosses the antimeridian.","schema":{"type":"string","description":"west,south,east,north; west>east explicitly crosses the antimeridian."}},{"name":"scope","in":"query","required":false,"description":"World selector where supported.","schema":{"type":"string","description":"World selector where supported.","enum":["world"]}},{"name":"q","in":"query","required":true,"description":"Subject query, 1-256 Unicode code points.","schema":{"type":"string","description":"Subject query, 1-256 Unicode code points.","minLength":1,"maxLength":256}},{"name":"term","in":"query","required":false,"description":"Additional bounded root-lexical term; grouped Search returns a count for every supplied term, including zero.","schema":{"type":"array","items":{"type":"string","description":"Additional bounded root-lexical term; grouped Search returns a count for every supplied term, including zero.","minLength":1,"maxLength":256},"maxItems":4},"style":"form","explode":true},{"name":"groupBy","in":"query","required":false,"description":"Return bounded root-post lexical counts grouped by geohash; grouped results are not reply counts.","schema":{"type":"string","description":"Return bounded root-post lexical counts grouped by geohash; grouped results are not reply counts.","enum":["geohash"]}},{"name":"groupPrecision","in":"query","required":false,"description":"Geohash precision for grouped lexical results; omitted values use selector precision plus one (capped at 8).","schema":{"oneOf":[{"const":"auto"},{"type":"integer","minimum":1,"maximum":8}]}},{"name":"since","in":"query","required":false,"description":"Activity enum or positive search duration; mutually exclusive with from/to.","schema":{"type":"string","description":"Activity enum or positive search duration; mutually exclusive with from/to."}},{"name":"from","in":"query","required":false,"description":"RFC3339 window start; requires to.","schema":{"type":"string","description":"RFC3339 window start; requires to."}},{"name":"to","in":"query","required":false,"description":"RFC3339 window end; requires from.","schema":{"type":"string","description":"RFC3339 window end; requires from."}},{"name":"timeBasis","in":"query","required":false,"description":"With a time window defaults to match; invalid without one.","schema":{"type":"string","description":"With a time window defaults to match; invalid without one.","enum":["match","thread"]}},{"name":"order","in":"query","required":false,"description":"Workload-specific order.","schema":{"type":"string","description":"Workload-specific order.","enum":["balanced","grow","recent","replies","activity","observed","block"],"default":"balanced"}},{"name":"category","in":"query","required":false,"description":"Repeated category values combine with OR.","schema":{"type":"array","items":{"type":"string","description":"Repeated category values combine with OR.","enum":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"]}},"style":"form","explode":true},{"name":"state","in":"query","required":false,"description":"Eligible root state.","schema":{"type":"string","description":"Eligible root state.","enum":["live","pending","confirmed"],"default":"live"}},{"name":"limit","in":"query","required":false,"description":"Maximum returned items.","schema":{"type":"integer","description":"Maximum returned items.","default":25,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque non-empty, normalized-request-bound cursor.","schema":{"type":"string","description":"Opaque non-empty, normalized-request-bound cursor."}}],"responses":{"200":{"description":"JSON is canonical; HTML and Markdown are deterministic text projections.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}},"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"406":{"description":"The requested success representation is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The cursor is stale or belongs to a different normalized request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"The cursor has expired and the request must be restarted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The request failed strict parameter or scope validation.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The anonymous request budget is temporarily exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The read workload is temporarily unavailable or exceeded its bounded response budget.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/fetch":{"get":{"operationId":"fetchMapPosts","summary":"MapApp agent fetch","description":"Strict public GET. agent-fetch/v1; unknown parameters are rejected. No authentication scheme is advertised.","parameters":[{"name":"txid","in":"query","required":false,"description":"64-hex root transaction id; repeat this query key 1-20 times to batch returned ids, preserving caller order; duplicates are rejected and values normalize lowercase. Use ids returned by a workload.","schema":{"type":"array","items":{"type":"string","description":"64-hex root transaction id; repeat this query key 1-20 times to batch returned ids, preserving caller order; duplicates are rejected and values normalize lowercase. Use ids returned by a workload."},"minItems":1,"maxItems":20},"style":"form","explode":true},{"name":"include","in":"query","required":false,"description":"One query value containing a unique comma-separated expansion list; do not repeat include. Combine content,location,provenance,replies when needed.","schema":{"type":"string","description":"One query value containing a unique comma-separated expansion list; do not repeat include. Combine content,location,provenance,replies when needed.","pattern":"^(?:content|profile|media|replies|location|provenance)(?:,(?:content|profile|media|replies|location|provenance))*$","example":"content,profile,location,provenance,replies"}}],"responses":{"200":{"description":"JSON is canonical; HTML and Markdown are deterministic text projections.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FetchResponse"}},"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"406":{"description":"The requested success representation is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The cursor is stale or belongs to a different normalized request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"The cursor has expired and the request must be restarted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The request failed strict parameter or scope validation.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The anonymous request budget is temporarily exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The read workload is temporarily unavailable or exceeded its bounded response budget.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/posts/{txid}/replies":{"get":{"operationId":"listPostReplies","summary":"MapApp agent replies","description":"Strict public GET. agent-replies/v1; unknown parameters are rejected. No authentication scheme is advertised.","parameters":[{"name":"txid","in":"path","required":true,"description":"64-hex root transaction id.","schema":{"type":"string","description":"64-hex root transaction id."}},{"name":"order","in":"query","required":false,"description":"Workload-specific order.","schema":{"type":"string","description":"Workload-specific order.","enum":["thread","grow","recent","observed","block"],"default":"thread"}},{"name":"limit","in":"query","required":false,"description":"Maximum returned items.","schema":{"type":"integer","description":"Maximum returned items.","default":25,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"Opaque non-empty, normalized-request-bound cursor.","schema":{"type":"string","description":"Opaque non-empty, normalized-request-bound cursor."}}],"responses":{"200":{"description":"JSON is canonical; HTML and Markdown are deterministic text projections.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepliesResponse"}},"text/html":{"schema":{"type":"string"}},"text/markdown":{"schema":{"type":"string"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"406":{"description":"The requested success representation is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The cursor is stale or belongs to a different normalized request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"The cursor has expired and the request must be restarted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The request failed strict parameter or scope validation.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The anonymous request budget is temporarily exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The read workload is temporarily unavailable or exceeded its bounded response budget.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}},"/api/agent/v1/health":{"get":{"operationId":"getAgentHealth","summary":"MapApp agent health","description":"Strict public GET. agent-health/v1; unknown parameters are rejected. No authentication scheme is advertised.","parameters":[],"responses":{"200":{"description":"Contract response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}},"404":{"description":"The API or workload is disabled or the requested resource is ineligible.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"406":{"description":"The requested success representation is not supported.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The cursor is stale or belongs to a different normalized request.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"410":{"description":"The cursor has expired and the request must be restarted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"The request failed strict parameter or scope validation.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"The anonymous request budget is temporarily exhausted.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"503":{"description":"The read workload is temporarily unavailable or exceeded its bounded response budget.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Capabilities":{"type":"object","const":{"version":"agent-contract/v1","openapi":"/openapi.json","operations":"/api/agent/v1/operations","health":"/api/agent/v1/health","public":true,"cors":{"allowOrigin":"*","credentials":false},"byteBudgets":{"ordinary":16384,"fetch":65536,"body":32768},"categories":{"values":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"],"combination":"OR","catalog":"/api/agent/v1/categories","closed":true},"windows":["1h","6h","24h","7d","31d"],"truthLabels":["exact","projection","estimated","bounded","stale","unavailable"],"actionRelations":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"],"includes":["content","profile","media","replies","location","provenance"],"limits":{"geohashHeads":8,"precisionMin":1,"precisionMax":8,"resultMin":1,"resultMax":100,"searchTermsMax":4,"fetchTxids":20,"highlightsMax":3,"searchQueryChars":256,"anonymousHorizonMs":2678400000,"cursorTtlMs":3600000},"rankingVersions":{"activity":"activity-v1","search":"balanced-v1"},"parameters":{"geohash":{"name":"geohash","location":"query","cardinality":"repeat","maximum":8,"description":"Lowercase geohash heads, precision 1-8; ancestors remove descendants."},"lat":{"name":"lat","location":"query","cardinality":"single","description":"WGS84 latitude; requires lng and radiusKm."},"lng":{"name":"lng","location":"query","cardinality":"single","description":"WGS84 longitude; requires lat and radiusKm."},"radiusKm":{"name":"radiusKm","location":"query","cardinality":"single","minimum":0,"description":"Positive radius in km; requires lat and lng."},"bbox":{"name":"bbox","location":"query","cardinality":"single","description":"west,south,east,north; west>east explicitly crosses the antimeridian."},"scope":{"name":"scope","location":"query","cardinality":"single","enum":["world"],"description":"World selector where supported."},"precision":{"name":"precision","location":"query","cardinality":"single","enum":["auto","1","2","3","4","5","6","7","8"],"default":"auto","description":"Comparison precision."},"category":{"name":"category","location":"query","cardinality":"repeat","enum":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"],"description":"Repeated category values combine with OR."},"order":{"name":"order","location":"query","cardinality":"single","description":"Workload-specific order."},"limit":{"name":"limit","location":"query","cardinality":"single","minimum":1,"maximum":100,"description":"Maximum returned items."},"cursor":{"name":"cursor","location":"query","cardinality":"single","description":"Opaque non-empty, normalized-request-bound cursor."},"since":{"name":"since","location":"query","cardinality":"single","description":"Activity enum or positive search duration; mutually exclusive with from/to."},"highlights":{"name":"highlights","location":"query","cardinality":"single","minimum":0,"maximum":3,"default":1,"description":"Compact highlights per activity area."},"q":{"name":"q","location":"query","cardinality":"single","required":true,"minimum":1,"maximum":256,"description":"Subject query, 1-256 Unicode code points."},"term":{"name":"term","location":"query","cardinality":"repeat","maximum":4,"description":"Additional bounded root-lexical term; grouped Search returns a count for every supplied term, including zero."},"groupBy":{"name":"groupBy","location":"query","cardinality":"single","enum":["geohash"],"description":"Return bounded root-post lexical counts grouped by geohash; grouped results are not reply counts."},"groupPrecision":{"name":"groupPrecision","location":"query","cardinality":"single","minimum":1,"maximum":8,"description":"Geohash precision for grouped lexical results; omitted values use selector precision plus one (capped at 8)."},"compare":{"name":"compare","location":"query","cardinality":"single","enum":["previous"],"description":"Compare current Activity with the immediately preceding equal window over the bounded top-current-and-previous-cell universe."},"from":{"name":"from","location":"query","cardinality":"single","description":"RFC3339 window start; requires to."},"to":{"name":"to","location":"query","cardinality":"single","description":"RFC3339 window end; requires from."},"timeBasis":{"name":"timeBasis","location":"query","cardinality":"single","enum":["match","thread"],"description":"With a time window defaults to match; invalid without one."},"state":{"name":"state","location":"query","cardinality":"single","enum":["live","pending","confirmed"],"default":"live","description":"Eligible root state."},"txid":{"name":"txid","location":"query","cardinality":"repeat","minimum":1,"maximum":20,"description":"64-hex root transaction id; repeat this query key 1-20 times to batch returned ids, preserving caller order; duplicates are rejected and values normalize lowercase. Use ids returned by a workload."},"include":{"name":"include","location":"query","cardinality":"single","enum":["content","profile","media","replies","location","provenance"],"description":"One query value containing a unique comma-separated expansion list; do not repeat include. Combine content,location,provenance,replies when needed."},"pathTxid":{"name":"txid","location":"path","cardinality":"single","required":true,"description":"64-hex root transaction id."}},"workloads":{"scout":{"path":"/api/agent/v1/scout","schemaVersion":"agent-scout/v1","selector":true,"world":true,"parameters":["geohash","lat","lng","radiusKm","bbox","scope","precision","category","order","limit","cursor"],"defaults":{"precision":"auto","order":"representativeGrow","limit":50},"orders":["representativeGrow","livePosts","representativeReplies"]},"activity":{"path":"/api/agent/v1/activity","schemaVersion":"agent-activity/v1","selector":true,"world":true,"parameters":["geohash","lat","lng","radiusKm","bbox","scope","since","precision","category","order","limit","highlights","compare","cursor"],"defaults":{"since":"24h","precision":"auto","order":"activity","limit":25,"highlights":1},"orders":["activity","activeThreads","newPosts","recentReplies","activeGrowsAdded"]},"search":{"path":"/api/agent/v1/search","schemaVersion":"agent-search/v1","selector":true,"world":false,"parameters":["geohash","lat","lng","radiusKm","bbox","scope","q","term","groupBy","groupPrecision","since","from","to","timeBasis","order","category","state","limit","cursor"],"defaults":{"order":"balanced","state":"live","limit":25},"orders":["balanced","grow","recent","replies","activity","observed","block"]},"fetch":{"path":"/api/agent/v1/fetch","schemaVersion":"agent-fetch/v1","selector":false,"world":false,"parameters":["txid","include"],"defaults":{},"orders":[]},"replies":{"path":"/api/agent/v1/posts/{txid}/replies","schemaVersion":"agent-replies/v1","selector":false,"world":false,"parameters":["pathTxid","order","limit","cursor"],"defaults":{"order":"thread","limit":25},"orders":["thread","grow","recent","observed","block"]},"health":{"path":"/api/agent/v1/health","schemaVersion":"agent-health/v1","selector":false,"world":false,"parameters":[],"defaults":{},"orders":[]}}}},"Problem":{"type":"object","required":["type","title","status","code","retryable","detail","actions"],"properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"code":{"type":"string"},"parameter":{"type":"string"},"limit":{},"retryable":{"type":"boolean"},"detail":{"type":"string"},"refinement":{"$ref":"#/components/schemas/SearchRefinement"},"searchEvidence":{"$ref":"#/components/schemas/SearchEvidence"},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}},"OperationIndex":{"type":"object","required":["schemaVersion","canonicalOpenApi","categoryCatalog","operations"],"properties":{"schemaVersion":{"const":"agent-operations/v1"},"canonicalOpenApi":{"const":"/openapi.json"},"categoryCatalog":{"const":"/api/agent/v1/categories"},"operations":{"type":"array","items":{"type":"object","required":["workload","method","path","card","purpose"]}}}},"OperationCard":{"type":"object","required":["schemaVersion","workload","purpose","method","path","requiredInputs","optionalInputs","examples","returns","followUpRelations","canonicalOpenApi"],"properties":{"schemaVersion":{"const":"agent-operation/v1"},"workload":{"enum":["scout","activity","search","fetch","replies","health"]},"purpose":{"type":"string"},"method":{"const":"GET"},"path":{"type":"string"},"requiredInputs":{"type":"array","items":{"type":"string"}},"selectorRule":{"type":"string"},"optionalInputs":{"type":"array","items":{"type":"object"}},"examples":{"type":"array","items":{"type":"string"}},"guidance":{"type":"string","description":"Additional workload-specific composition guidance; examples may use explicit placeholders for values returned by an earlier workload."},"returns":{"type":"string"},"followUpRelations":{"type":"array","items":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]}},"categoryCatalog":{"type":"string"},"canonicalOpenApi":{"const":"/openapi.json"}}},"CategoryCatalog":{"type":"object","required":["schemaVersion","values","count","closed","combinationRule","omissionRule","unsupportedRule","guidance","canonicalOpenApi"],"properties":{"schemaVersion":{"const":"agent-categories/v1"},"values":{"type":"array","minItems":32,"maxItems":32,"items":{"enum":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"]}},"count":{"const":32},"closed":{"const":true},"combination":{"const":"OR"},"combinationRule":{"type":"string"},"omissionRule":{"type":"string"},"unsupportedRule":{"type":"string"},"guidance":{"type":"string"},"canonicalOpenApi":{"const":"/openapi.json"}}},"ScoutCell":{"type":"object","required":["geohash","precision","canonicalBounds","liveRootCount","generation","freshness","actions"],"properties":{"geohash":{"type":"string"},"precision":{"type":"integer"},"canonicalBounds":{"type":"array","items":{"type":"number"}},"occupiedBounds":{"type":"array","items":{"type":"number"}},"liveRootCount":{"type":"integer"},"representative":{"type":"object","required":["txid","createdAt","growCount","replyCount","replyCountBasis","ageMs","content"],"properties":{"txid":{"type":"string","pattern":"^[0-9a-f]{64}$"},"createdAt":{"type":"string","format":"date-time"},"growCount":{"type":"integer","minimum":0},"replyCount":{"type":"integer","minimum":0,"description":"Projected direct replies only; not the full visible descendant count."},"replyCountBasis":{"const":"projected_top_level"},"ageMs":{"type":"integer","minimum":0},"content":{"const":"untrusted"}}},"generation":{"type":"string"},"projectionUpdatedAt":{"type":"string","format":"date-time","description":"Optional source cell mutation timestamp; not an ingestion watermark."},"freshness":{"enum":["exact","projection","estimated","bounded","stale","unavailable"],"description":"unavailable until a maintained indexing watermark exists; projectionUpdatedAt is informational cell metadata only."},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}},"ActivityArea":{"type":"object","required":["geohash","precision","canonicalBounds","approximateAreaKm2","signals","highlights","actions"],"properties":{"geohash":{"type":"string"},"precision":{"type":"integer"},"canonicalBounds":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"number"}},"approximateAreaKm2":{"type":"number"},"signals":{"type":"object","required":["activeThreads","newRoots","recentReplies","activeGrowsAdded","activityScore","lastActivityAt"],"properties":{"activeThreads":{"type":"integer"},"newRoots":{"type":"integer"},"recentReplies":{"type":"integer"},"activeGrowsAdded":{"type":"integer"},"activityScore":{"type":"integer"},"lastActivityAt":{"type":["string","null"],"format":"date-time"}}},"comparison":{"type":"object","required":["activityScore","delta","direction"],"properties":{"activityScore":{"type":"integer"},"delta":{"type":"integer"},"direction":{"enum":["up","down","flat"]}}},"highlights":{"type":"array","maxItems":3,"items":{"type":"object","required":["txid","lastActivityAt","content"],"properties":{"txid":{"type":"string"},"lastActivityAt":{"type":"string","format":"date-time"},"content":{"const":"untrusted"}}}},"longHorizonRepresentative":{"type":"object","required":["context","txid","createdAt","content"],"properties":{"context":{"const":"long_horizon"},"txid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"content":{"const":"untrusted"}}},"omitted":{"type":"array","uniqueItems":true,"items":{"enum":["highlights","longHorizonRepresentative"]}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}},"ReplyAuthor":{"type":"object","description":"Stable author binding plus accepted-profile presentation. A fallback profile contains no unaccepted profile fields.","minProperties":1,"properties":{"bapId":{"type":"string"},"identity":{"type":"string","maxLength":256},"profile":{"type":"object"}}},"ReplySummary":{"type":"object","required":["txid","rootTxid","parentTxid","depth","createdAt","body","truncated","content"],"properties":{"txid":{"type":"string","pattern":"^[0-9a-f]{64}$"},"rootTxid":{"type":"string","pattern":"^[0-9a-f]{64}$"},"parentTxid":{"type":"string","pattern":"^[0-9a-f]{64}$"},"depth":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"body":{"type":"string"},"truncated":{"type":"boolean"},"chainState":{"enum":["pending","confirmed"]},"author":{"$ref":"#/components/schemas/ReplyAuthor"},"growCount":{"type":"integer","minimum":0},"content":{"const":"untrusted"}}},"SearchRoot":{"type":"object","required":["txid","excerpt","geohash","category","state","matches","lastActivityAt","growCount","visibleReplyCount","ranking","content","actions"],"properties":{"txid":{"type":"string"},"excerpt":{"type":"string","maxLength":240},"geohash":{"type":"string"},"category":{"enum":["🌱","📍","🧭","🎨","🎵","🍽️","☕","🛒","🏀","🎮","📰","💬","📸","🎬","💻","🛠️","🏠","🚗","🌊","⛰️","🌳","🐾","🎓","🏥","⚠️","🎉","💼","🔬","✈️","🧘","🪙","❤️"]},"state":{"enum":["live","pending","confirmed"]},"matches":{"type":"array","maxItems":3,"items":{"type":"object","required":["kind","txid","matchTime","snippets","content"],"properties":{"kind":{"enum":["root","reply"]},"txid":{"type":"string"},"matchTime":{"type":"string","format":"date-time"},"snippets":{"type":"array","maxItems":1,"items":{"type":"string","maxLength":240}},"rootTxid":{"type":"string","pattern":"^[0-9a-f]{64}$"},"parentTxid":{"type":"string","pattern":"^[0-9a-f]{64}$"},"depth":{"type":"integer","minimum":0},"chainState":{"enum":["pending","confirmed"]},"author":{"$ref":"#/components/schemas/ReplyAuthor"},"content":{"const":"untrusted"}}}},"lastActivityAt":{"type":["string","null"],"format":"date-time"},"growCount":{"type":"integer","minimum":0},"visibleReplyCount":{"type":"integer","minimum":0},"ranking":{"type":"object","required":["profile","components","weights","score","tie"]},"profile":{"type":"object"},"media":{"type":"object"},"content":{"const":"untrusted"},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}},"FetchRecord":{"type":"object","required":["txid","eligibility","actions"],"properties":{"txid":{"type":"string"},"eligibility":{"enum":["eligible","hidden","not_found","invalidated","deleted"]},"content":{"type":"object"},"profile":{"type":"object"},"media":{"type":"array"},"replies":{"type":"array","maxItems":32,"items":{"$ref":"#/components/schemas/ReplySummary"}},"replySummary":{"type":"object","required":["returned","complete"],"properties":{"returned":{"type":"integer","minimum":0},"totalVisible":{"type":"integer","minimum":0},"atLeast":{"type":"integer","minimum":0},"complete":{"type":"boolean"}}},"location":{"type":"object","required":["geohash","lat","lng"],"properties":{"geohash":{"type":"string"},"lat":{"type":"number","minimum":-90,"maximum":90},"lng":{"type":"number","minimum":-180,"maximum":180}}},"provenance":{"type":"object"},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}},"SearchContext":{"type":"object","description":"Shared bounded accounting. searchedGeohashes are geographies examined; returnedGeohashes are geographies represented in the reply. complete reports execution/enumeration completeness, while coverage.method and truth report spatial exactness. A completed bbox/radius Scout may therefore have estimated counts and bounded ranking. For paginated Scout, accumulate pages and treat traversal as exhausted only when the final page reports complete=true; incomplete responses carry truncationReason and a changing next/recovery action when one exists. complete=false means absence must not be inferred.","required":["selector","requestedGeohashes","searchedGeohashes","returnedGeohashes","omittedGeohashes","precision","cellsConsidered","cellsReturned","candidatesExamined","candidateLimit","complete","truncated"],"properties":{"selector":{"enum":["geohash","radius","bbox","world"]},"requestedGeohashes":{"type":"array","items":{"type":"string"}},"searchedGeohashes":{"type":"array","items":{"type":"string"},"description":"Geographies actually examined by the bounded workload."},"returnedGeohashes":{"type":"array","items":{"type":"string"},"description":"Geographies represented by returned cells, groups, or roots."},"omittedGeohashes":{"type":"array","items":{"type":"string"}},"precision":{"type":["integer","null"]},"groupingPrecision":{"type":["integer","null"],"description":"Grouped Search precision; omitted requests resolve to selector precision plus one, capped at 8."},"cellsConsidered":{"type":"integer","minimum":0},"cellsReturned":{"type":"integer","minimum":0},"candidatesExamined":{"type":"integer","minimum":0},"candidateLimit":{"type":"integer","minimum":0},"complete":{"type":"boolean"},"truncated":{"type":"boolean"},"truncationReason":{"enum":["query_limit","candidate_cap","response_byte_limit","beam","not_enumerated"],"description":"Why the bounded universe or serialized reply is incomplete. Follow a changing next/recovery action when present; a terminal bounded result has no fabricated self-link."},"terms":{"type":"array","items":{"type":"string"}},"window":{"type":"object"}}},"SearchEvidence":{"type":"object","description":"Search discovery and final-ranking budgets. Incomplete probes report a sentinel observation and never imply exhaustive ranking.","required":["eligibility","windowApplied","timeBasis","discovery","ranking"],"properties":{"eligibility":{"const":"current_projection"},"windowApplied":{"type":"boolean"},"timeBasis":{"enum":["match","thread","long_horizon"]},"discovery":{"type":"object","required":["candidateLimit","seed","spatial","lexical"],"properties":{"candidateLimit":{"type":"integer","minimum":1},"seed":{"enum":["spatial","lexical","combined",null],"description":"\"combined\" marks the bounded exact spatial+lexical intersection used only when both marginal probes overflow."},"spatial":{"type":"object","required":["candidatesObserved","complete"],"properties":{"candidatesObserved":{"type":"integer","minimum":0},"complete":{"type":"boolean"}}},"lexical":{"type":"object","required":["candidatesObserved","complete"],"properties":{"candidatesObserved":{"type":"integer","minimum":0},"complete":{"type":"boolean"}}},"combined":{"type":"object","description":"Present only when the combined exact intersection statement ran.","required":["candidatesObserved","complete"],"properties":{"candidatesObserved":{"type":"integer","minimum":0},"complete":{"type":"boolean"}}}}},"ranking":{"type":"object","required":["candidateLimit","candidatesExamined","performed","complete"],"properties":{"candidateLimit":{"type":"integer","minimum":1},"candidatesExamined":{"type":"integer","minimum":0},"performed":{"type":"boolean"},"complete":{"type":"boolean"}}}}},"ActivityComparison":{"type":"object","description":"Activity compare=previous over the bounded top-current-and-previous-cell universe; it is not a global historical comparison.","required":["mode","windowStart","windowEnd","universe","candidateCells","complete"],"properties":{"mode":{"const":"previous"},"windowStart":{"type":"string","format":"date-time"},"windowEnd":{"type":"string","format":"date-time"},"universe":{"const":"top_current_and_previous_cells"},"candidateCells":{"type":"integer","minimum":0},"complete":{"type":"boolean"}}},"SearchGroup":{"type":"object","description":"Bounded root-post lexical evidence grouped by geohash; replies are not aggregated here.","required":["geohash","matchCount","termCounts","representatives","actions"],"properties":{"geohash":{"type":"string"},"matchCount":{"type":"integer","minimum":0},"termCounts":{"type":"object","description":"Per-supplied-term root counts; zero-valued terms are included.","additionalProperties":{"type":"integer","minimum":0}},"representatives":{"type":"array","description":"Up to three geographically distributed untrusted root representatives.","maxItems":3,"items":{"type":"object","required":["txid","createdAt","excerpt","content","actions"],"properties":{"txid":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"excerpt":{"type":"string","maxLength":240},"content":{"const":"untrusted"},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}}}},"SearchRefinement":{"type":"object","required":["strategy","reason","probeLimit","suggestedPrecision","candidateCells","candidateCellCount","candidateCellLimit"],"properties":{"strategy":{"const":"geohash"},"reason":{"enum":["both_probes_overflowed","no_occupied_candidate_cells"]},"probeLimit":{"type":"integer","minimum":1},"suggestedPrecision":{"type":"integer","minimum":1,"maximum":8},"candidateCells":{"type":"array","maxItems":32,"items":{"type":"string"}},"candidateCellCount":{"type":"integer","minimum":0,"maximum":32},"candidateCellLimit":{"const":32}}},"ScoutResponse":{"allOf":[{"type":"object","required":["schemaVersion","workload","context","coverage","truth","actions","quota"],"properties":{"schemaVersion":{"type":"string"},"workload":{"type":"string"},"context":{"type":"object"},"coverage":{"type":"object"},"truth":{"type":"object","properties":{"counts":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"ranking":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"projection":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"content":{"const":"untrusted"}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}},"quota":{"type":"object"}}},{"type":"object","properties":{"schemaVersion":{"const":"agent-scout/v1"},"workload":{"const":"scout"},"searchContext":{"$ref":"#/components/schemas/SearchContext"},"cells":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/ScoutCell"}}},"required":["searchContext","cells"]}]},"ActivityResponse":{"allOf":[{"type":"object","required":["schemaVersion","workload","context","coverage","truth","actions","quota"],"properties":{"schemaVersion":{"type":"string"},"workload":{"type":"string"},"context":{"type":"object"},"coverage":{"type":"object"},"truth":{"type":"object","properties":{"counts":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"ranking":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"projection":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"content":{"const":"untrusted"}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}},"quota":{"type":"object"}}},{"type":"object","properties":{"schemaVersion":{"const":"agent-activity/v1"},"workload":{"const":"activity"},"searchContext":{"$ref":"#/components/schemas/SearchContext"},"areas":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/ActivityArea"}},"windowStart":{"type":"string"},"windowEnd":{"type":"string"},"asOf":{"type":"string"},"rankingVersion":{"const":"activity-v1"},"comparison":{"$ref":"#/components/schemas/ActivityComparison"}},"required":["searchContext","areas","windowStart","windowEnd","asOf","rankingVersion"]}]},"SearchResponse":{"allOf":[{"type":"object","required":["schemaVersion","workload","context","coverage","truth","actions","quota"],"properties":{"schemaVersion":{"type":"string"},"workload":{"type":"string"},"context":{"type":"object"},"coverage":{"type":"object"},"truth":{"type":"object","properties":{"counts":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"ranking":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"projection":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"content":{"const":"untrusted"}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}},"quota":{"type":"object"}}},{"type":"object","properties":{"schemaVersion":{"const":"agent-search/v1"},"workload":{"const":"search"},"searchContext":{"$ref":"#/components/schemas/SearchContext"},"searchEvidence":{"$ref":"#/components/schemas/SearchEvidence"},"results":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/SearchRoot"}},"groups":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/SearchGroup"}},"rankingVersion":{"const":"balanced-v1"},"timeBasis":{"enum":["match","thread","long_horizon"]},"observedAtBasis":{"const":"root_created_at"},"snapshot":{"type":"string","format":"date-time"},"windowStart":{"type":"string","format":"date-time"},"windowEnd":{"type":"string","format":"date-time"},"nextCursor":{"type":"string"},"truncated":{"type":"boolean"},"byteLimit":{"const":16384}},"required":["searchContext","results","rankingVersion","timeBasis","observedAtBasis","snapshot","windowStart","windowEnd","truncated","byteLimit"]}]},"FetchResponse":{"allOf":[{"type":"object","required":["schemaVersion","workload","context","coverage","truth","actions","quota"],"properties":{"schemaVersion":{"type":"string"},"workload":{"type":"string"},"context":{"type":"object"},"coverage":{"type":"object"},"truth":{"type":"object","properties":{"counts":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"ranking":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"projection":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"content":{"const":"untrusted"}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}},"quota":{"type":"object"}}},{"type":"object","properties":{"schemaVersion":{"const":"agent-fetch/v1"},"workload":{"const":"fetch"},"results":{"type":"array","maxItems":20,"items":{"$ref":"#/components/schemas/FetchRecord"}},"truncated":{"type":"boolean"},"byteLimit":{"const":65536}},"required":["results","truncated","byteLimit"]}]},"RepliesResponse":{"allOf":[{"type":"object","required":["schemaVersion","workload","context","coverage","truth","actions","quota"],"properties":{"schemaVersion":{"type":"string"},"workload":{"type":"string"},"context":{"type":"object"},"coverage":{"type":"object"},"truth":{"type":"object","properties":{"counts":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"ranking":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"projection":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"content":{"const":"untrusted"}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}},"quota":{"type":"object"}}},{"type":"object","properties":{"schemaVersion":{"const":"agent-replies/v1"},"workload":{"const":"replies"},"rootTxid":{"type":"string"},"summary":{"type":"object","required":["totalVisible","returned"],"properties":{"totalVisible":{"type":"integer","minimum":0},"returned":{"type":"integer","minimum":0}}},"replies":{"type":"array","maxItems":100,"items":{"$ref":"#/components/schemas/ReplySummary"}},"nextCursor":{"type":"string"}},"required":["rootTxid","summary","replies"]}]},"HealthResponse":{"allOf":[{"type":"object","required":["schemaVersion","workload","context","coverage","truth","actions","quota"],"properties":{"schemaVersion":{"type":"string"},"workload":{"type":"string"},"context":{"type":"object"},"coverage":{"type":"object"},"truth":{"type":"object","properties":{"counts":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"ranking":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"projection":{"enum":["exact","projection","estimated","bounded","stale","unavailable"]},"content":{"const":"untrusted"}}},"actions":{"type":"array","items":{"type":"object","required":["relation","url","reasonCode"],"properties":{"relation":{"enum":["scout","activity","search","refine","parent","fetch","replies","next","retry","describedby"]},"url":{"type":"string"},"reasonCode":{"type":"string"},"scope":{"type":"object"}}}},"quota":{"type":"object"}}},{"type":"object","properties":{"schemaVersion":{"const":"agent-health/v1"},"workload":{"const":"health"},"status":{"enum":["enabled","degraded"]},"capabilities":{"type":"object"}},"required":["status","capabilities"]}]}}}}