objects.search
Hledání podřetězce bez ohledu na velikost písmen v identitách, titulcích, popisech a obsahu.
Hledání podřetězce bez ohledu na velikost písmen v identitách, titulcích, popisech a obsahu.
- query
- behaviorally_verified
- module objects
- #objects
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_search |
| HTTP | GET /api/v1/search operationId objects.search |
| příkazová řádka | — |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
input · SearchInput
objects.search: co hledat, kde a kolik.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| druh | string | null | ne | Pouze objekty tohoto druhu; druh, který repozitář nemá, je neplatný vstup. výchozí null |
| limit | integer | null | ne | Nejvýše tolik zásahů (výchozí 20, nejvýše 200). výchozí null |
| query | string | ano | Podřetězec bez rozlišení velikosti písmen, porovnávaný s identitou, názvem, popisem a obsahem. |
JSON Schema
{
"additionalProperties": false,
"description": "The input of `objects.search`: what to look for, where, how much.",
"properties": {
"kind": {
"default": null,
"description": "Only objects of this kind; a kind the repository does not have is an invalid input.",
"type": [
"string",
"null"
]
},
"limit": {
"default": null,
"description": "At most this many hits (default 20, at most 200).",
"format": "uint64",
"maximum": 200,
"minimum": 1,
"type": [
"integer",
"null"
]
},
"query": {
"description": "Case-insensitive substring, matched against identity, title, description and content.",
"type": "string"
}
},
"required": [
"query"
],
"title": "SearchInput",
"type": "object"
}výstup · SearchResult
objects.search.| vlastnost | typ | povinné | popis |
|---|---|---|---|
| počet | integer | ano | Kolik zásahů bylo vráceno. |
| nálezy | array | ano | Nálezy v pořadí URI, nejvýše limit z nich. |
| limit | integer | ano | Limit, který platil. |
| query | string | ano | Dotaz tak, jak byl zadán. |
JSON Schema
{
"$defs": {
"SearchHit": {
"description": "One search hit: the object, summarised, and the first matching line of its content.",
"properties": {
"description": {
"description": "The one-line description, when the kind holds one.",
"type": [
"string",
"null"
]
},
"id": {
"description": "The capability id, `<kind>.<identity>`.",
"type": "string"
},
"identity": {
"description": "The identity within the kind.",
"type": "string"
},
"kind": {
"description": "The kind the object was read as.",
"type": "string"
},
"path": {
"description": "Repository-relative source path.",
"type": "string"
},
"snippet": {
"description": "The first line of content that matched, when one did.",
"type": [
"string",
"null"
]
},
"title": {
"description": "The title, when the kind's title rule found one.",
"type": [
"string",
"null"
]
},
"uri": {
"description": "`majordomus://<kind>/<identity>`.",
"type": "string"
}
},
"required": [
"uri",
"id",
"kind",
"identity",
"path"
],
"type": "object"
}
},
"description": "The answer of `objects.search`.",
"properties": {
"count": {
"description": "How many hits were returned.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"hits": {
"description": "The hits, in URI order, at most `limit` of them.",
"items": {
"$ref": "#/$defs/SearchHit"
},
"type": "array"
},
"limit": {
"description": "The limit that applied.",
"format": "uint64",
"minimum": 0,
"type": "integer"
},
"query": {
"description": "The query as given.",
"type": "string"
}
},
"required": [
"query",
"count",
"limit",
"hits"
],
"title": "SearchResult",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- process: až 64 záznamů v procesu, vymezených otiskem registru
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.
| transport | state | případy | targets |
|---|---|---|---|
| direct | pokryto | 2 | common-word studený+teplý no-hit studený+teplý |
| mcp | pokryto | 2 | common-word studený+teplý no-hit studený+teplý |
| http | pokryto | 2 | common-word studený+teplý no-hit studený+teplý |
Tvrzení implementovaná vedle ní
Připojeno souborem, který každé tvrzení implementuje; každé odkazuje na svou stránku s implementací a testem, který je dokazuje.
Okamžiky, na které to odpovídá
- znovu vysvětloval stejný kontext zbrusu nové relaci Znalosti o repozitáři, které kdy existovaly jen v konverzaci, je nutné ručně znovu předávat každému dalšímu workerovi.
- sledoval, jak relace zrušila rozhodnutí z minulého týdne právě z toho důvodu, pro který vzniklo Rozhodnutí, jehož důvod žil v konverzaci, nelze posoudit, jen znovu rozebírat — workerem s méně informacemi, než měl ten první.
- se zeptal, co pracovníci dělali včera v noci, a měl jen přepisy k prohledání Log konverzace zaznamenává, co bylo řečeno, ne co se stalo, takže na provozní otázku musí odpovědět člověk čtoucí prózu.
- strávil hodinu zjišťováním něčeho, co repozitář už věděl, a to dvakrát Worker zjistí něco nákladného o kódové bázi, jednou to použije a s relací to zaniká, protože to nikdo nepřevedl na trvalý záznam.
- hledal, proč jsme to zvolili, a našel chatový log Rozhodnutí učiněné v relaci je uloženo tam, kde ho přečte jen ta relace, takže ho nelze ani zrevidovat, ani objevit.
- přišel o selhání, které pracovník už reprodukoval, protože relace skončila Selhání pozorované uvnitř relace je popsáno v této relaci a nikde jinde, takže další začíná od hlášení, ne od důkazu.
- našel totéž vysvětlené třikrát, pokaždé trochu jinak Každá ručně udržovaná kopie faktu se rozchází podle vlastního rozvrhu a čtenář nepozná, která kopie je aktuální.
- sledoval workera, jak tráví den postupem, který už byl vyloučen Negativní výsledky tvoří většinu experimentálního výstupu a nikdo je nezaznamenává, takže se prostor hledání prochází znovu.
- se zeptal, kdo změnu provedl a podle jaké politiky, a měl jen commit Atribuce končí u commitu, takže to, co změnu schválilo, co ji ověřilo a co ji řídilo, nelze obnovit.