catalog · git:20260908.9e6261b · 2026-09-08 · sha256 7ecbf1055f71e014
catalog git:20260908.9e6261bA
Immutable. This exact content is served forever at /api/v1/blob/7ecbf1055f71e014.
---
name: catalog
description: >-
Constructs catalog products (standard or limited), catalog orders, and
account-credit enrollment, including product-then-credit scenes.
Internal catalog slot of the parent pack; do not invoke independently.
license: Apache-2.0
---
# Catalog data-build slot
Vendor-neutral catalog-domain slot. Drop-in under pack `slots/` (already discovered; no extra `slot_roots` / marketplace path).
`slot.yaml` is the scene config. More specific entities (limited / credit) are listed before generic product.
Executors talk to `DATA_BUILD_API_BASE` (default local mock on port 8765). The case pipeline binds these executors from `slot.yaml` without an LLM when the match is unique.
## Single-step routing
| User intent | Executor |
|---|---|
| Standard catalog product | `scripts/executors/create_product.ts` |
| Limited catalog product | `scripts/executors/create_limited_product.ts` |
| Catalog order | `scripts/executors/create_order.ts` |
| Account credit on a product / user | `scripts/executors/setup_account_credit.ts` |
Do not invent `productId` / `userId` when the user already supplied them. Optional fields use executor defaults.
```bash
node scripts/executors/create_product.ts --json '{"name":"Northwind Standard","city":"demo-city"}'
```
## Scene orchestration
**credit-ready-product**
1. Create catalog product (or reuse `productId`)
2. Enroll the product and user in account credit
3. Return `productId`, enrollment result, `creditBalance`
**bookable-order**
1. Ensure a product exists
2. Create an order for `userId` + `productId`
3. Return `productId`, `orderId`, `status`
Pass upstream `data` fields into the next executor. Do not skip a later scene step.
## Guardrails
- Start `node ../mock_server.ts` if no enterprise gateway is configured
- Do not invent `productId` / `userId` / `orderId`
- Defaults: `city=demo-city`, `validHours=4`, `fulfillOn=today+2days`, `quantity=1`, `credits=1000`
- See [references/tools-guide.md](references/tools-guide.md) and [../SLOT_SPEC.md](../SLOT_SPEC.md)