Search and matching
How a plain-language request becomes a catalog query, and the response envelope it expects.
A shopper describing a week of meals does not produce one query. It produces many, and each has to resolve against your catalog quickly enough that the whole cart still assembles in a couple of minutes.
The contract
A catalog connector is a single asynchronous search operation. It receives the query plus the session context, and returns a consistent envelope: a success flag and a list of products in the normalized shape.
Failures are values, not exceptions
Connectors do not raise. On failure they return the same envelope with the success flag false and an error string. This is deliberate: one failing domain degrades the session instead of ending it, so a pricing hiccup does not take down the storefront.
Catalog language
The language of your catalog data is a property of the catalog, not of the conversation. Neomi tracks the two separately, so a shopper can ask in one language while product names, categories, and units stay in whatever language your data is written in.
Timeouts
Connectors run under explicit connect and read timeouts, and slow responses are logged against a threshold so a degrading upstream is visible before shoppers feel it.
Note on this page
Described from the current implementation rather than from a published contract. Field names and shapes are what Neomi normalizes to today; our engineering team confirms the public naming when the reference is finalized.