search_by_project
- Category: knowledge
- Access: read
- Audience: ordinary (an ordinary user normally calls this directly)
Purpose
Searches the knowledge graph strictly inside one named project. A substring candidate pool is re-ranked with multi-signal scoring, so every hit is guaranteed in-project rather than merely boosted toward it.
Arguments
Required: query, project.
-
query. -
project.
Result
JSON object with entities (name, entityType, project echoing the request argument, observations, _score), the echoed query, and the echoed project. An out-of-scope project returns entities [] with the echoes intact.
Boundaries
The named project must be granted to the caller; anything else reads as an empty result, never a denial. Only live entities and live observations in that project are pooled and returned. Operates only inside the caller's profile boundary.
Lifecycle / side effects
Pure read of live content; ranking leaves no trace. Contrast search_nodes, whose project hint is affinity-only and currently unused on its path.
Errors
Missing or non-string query or project is rejected by validation. Unknown arguments are rejected (strict validator).
Example
{
"project": "shared-ops",
"query": "same-day print"
}
Result shape:
{
"entities": [
{
"_score": 0.8,
"entityType": "vendor",
"name": "Acme Print",
"observations": [
"Now offers same-day turnaround."
],
"project": "shared-ops"
}
],
"project": "shared-ops",
"query": "same-day print"
}