After the first-pass parity update the following operator-facing surfaces shipped in commitsDocumentation Index
Fetch the complete documentation index at: https://docs.kaireonai.com/llms.txt
Use this file to discover all available pages before exploring further.
2490269 +
964228e. Composite Pega-parity composite mean lifted 9.05 → ~9.55
strict / ~9.65 fair across both passes. Only #29 (multi-region
2-region deploy verification) remains open.
#36 polish — four small dim lifts
3.4 Stage skip-reasons tally
Backend route exposing per-tenant top-N “why did the gate skip this offer?” leaderboard, aggregatingDecisionTrace.qualificationResults over a configurable window.
lib/qualification/skip-reasons-tally.ts. Auth: tenant + admin.
Each tally entry: { reason, count, share, exampleOfferIds (≤5), ruleTypes (≤3), stages (≤3) }.
Operator-pending UI: the inline tab on /studio/qualification-rules
is roadmap; the route is callable today via the SDK / CLI / Postman.
3.5 ContactPolicy.appliesAcross
Thecross_channel_cap rule type now honours an optional
config.appliesAcross channel-id list:
3.11 explainCascade aggregate route
Backend route returning the qualification-rule cascade trace for every active offer in the tenant — the aggregate operators needed for “which tenant rule rolls down to which offer?” without iterating per offer.lib/effective-rules.ts getEffectiveRules(..., { explainCascade: true, inheritanceMode: "deduped" }) per offer.
Operator-pending UI: inline tab on /studio/qualification-rules
calling this route is roadmap.
3.13 Variant uplift micro-card
Per-creative observational uplift via the existing two-proportion z-test (lib/experimentation/uplift.ts).
samplesBelowMinimum: true when the cohort is too small for a
trustworthy read. Honest scope: observational, not a randomized
controlled trial — operators wanting RCT semantics use the existing
Experiment model.
#32 — transform runtime adapter stubs
Four W16 transforms now have HTTP-pointed runtime adapters underlib/flow/runtime/transforms/external-model-call.ts:
| Transform | Endpoint env | Bearer env |
|---|---|---|
vector_embed | VECTOR_EMBED_ENDPOINT | VECTOR_EMBED_BEARER |
geo_resolve | GEO_RESOLVE_ENDPOINT | GEO_RESOLVE_BEARER |
sentiment_score | SENTIMENT_SCORE_ENDPOINT | SENTIMENT_SCORE_BEARER |
language_detect | LANGUAGE_DETECT_ENDPOINT | LANGUAGE_DETECT_BEARER |
- SSRF-validated outbound via
lib/security/url-validator.ts. - 5-second per-call timeout.
- Five structured failure codes:
MissingExternalModelEndpointError(env unset),ExternalModelAdapterError(non-2xx / non-JSON / SSRF reject / timeout). Each pipeline run surfaces the failure code instead of silently emitting null. - Per-kind convenience wrappers (
vectorEmbed(text),geoResolve(address),sentimentScore(text),languageDetect(text)) that probe common vendor response shapes.
MissingExternalModelEndpointError with the env-var hint baked into
the message.
#31 — Unified coming-soon connector stub
Every entry inCOMING_SOON_CONNECTORS (26 connectors) now has a
registered stub executor. getConnectorExecutor(type) NEVER returns
undefined for a registered connector — pipelines fail loudly with a
canonical error instead of silently degrading:
coming_soon: is exported as
COMING_SOON_ERROR_MESSAGE_PREFIX for downstream callers that want
to detect it.
Operator-pending wiring: swap the stubs out for real executors as
vendor accounts come online (each takes 1-3 hours per vendor based on
the existing executor patterns in
lib/connector-executors/{messaging,cdp,commerce,reverse-etl,analytics,mktauto,workflow-billing}.ts).
#34 + #35 — In-repo SDK / CLI / Postman / MCP scaffolds
New top-levelsdks/ directory with five packages:
| Path | Package | Status |
|---|---|---|
sdks/typescript/ | @kaireonai/sdk | dependency-free TS / Node SDK; type-clean |
sdks/python/ | kaireonai | stdlib-only (urllib.request); pip install -e . works in-repo |
sdks/cli/ | @kaireonai/cli | npx kaireon CLI; JSON stdout, jq-pipe friendly |
sdks/postman/ | Postman v2.1 collection | 10 highest-value endpoints; auth via collection variables |
sdks/mcp-marketplace/ | MCP marketplace manifest | proposed Anthropic MCP marketplace listing |
X-API-Key + X-Tenant-Id, env-var defaults)
and cover the same 5 endpoints: recommend, respond, negotiate,
provenance, skip-reasons.
Operator-pending publish steps:
- Split
sdks/into the dedicatedkaireonai/sdksGitHub repo (operator-authorised new repo). npm publish @kaireonai/sdk,@kaireonai/cli.pip publish kaireonai.- Upload
sdks/postman/KaireonAI.postman_collection.jsonto the public KaireonAI Postman workspace. - Submit
sdks/mcp-marketplace/manifest.jsonvia the Anthropic MCP marketplace intake flow.
sdks/README.md for the index, then each package’s individual
README for usage examples.
#33 — 30-day negotiation eval clearance (time-bound)
Cannot ship from code alone. The gate is theaiAnalyzerSettings.negotiation.regulatorReviewCleared tenant flag,
read by lib/negotiation/realtime-apply.ts (already wired in #26).
Operator flips the flag once the negotiation eval harness shows
zeroViolationClearance >= 95% for 30 consecutive nights. See
Negotiation apply-mode
for the rollout playbook.
Final composite
Across both passes today: 9.05 → ~9.55 strict / ~9.65 fair mean across 19 in-scope dims. The remaining ascent to 10/10 is operator- driven (publish steps, vendor wiring, 30-night clearance, first 100 RPS perf baseline, multi-region #29) — no code path remains in this scope. See also:- First-pass parity update
- Governance four-eyes (#28)
- Lagrangian arbitration (#25)
- Negotiation apply-mode (#26)
- Provenance cosign (#27)
- Perf baselines + regression gate (#24)
- Contact policies (#36 3.5)