create_product
Create a new product, run analysis, and return its initial stats.
``config_upload_id`` references a previously-staged .config that the
caller POSTed to ``/api/configs/uploads`` over plain HTTP — the LLM
does NOT emit the config text itself (a real kernel .config is
~100–200 KB and exceeds a single tool-call output budget). Workflow:
1. Caller / wrapper script:
``curl -H "Authorization: Bearer ks_live_..." \
-F "config_file=@.config" \
https://kernelscan.io/api/configs/uploads``
returns ``{config_upload_id, sha256, size_bytes, expires_at}``.
2. Pass that ``config_upload_id`` into this tool.
Uploads are per-user, single-use, and expire 30 minutes after upload.
Same gates as POST /api/products: free can't create products; paid
plans are capped at their resolved product limit — read it (and any
per-account override) from ``whoami.product_limit`` rather than assuming
a fixed per-tier number. ``factor_ids`` are silently ignored unless the
plan allows security factors (``whoami.can_use_factors``). Re-using a
product name returns 409.
Creating a product RUNS an analysis, so it spends one unit of the
team's SHARED monthly analysis allowance (``whoami.monthly_analyses_used``
/ ``monthly_analyses_limit``). When the allowance is exhausted the tool
fails with "Monthly analysis limit reached (…/month) [429]". This is a
durable monthly quota — NOT the transient per-call rate limit that also
surfaces as 429: it will not clear until next month, so report it to the
user instead of retrying. Check ``whoami`` before a batch of creates.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| arch | Yes | ||
| name | Yes | ||
| factor_ids | No | ||
| description | No | ||
| kernel_version | Yes | ||
| config_upload_id | Yes |