Points
Work is quoted first and debited only after admission; unused or failed-work Points return.
TAIP/1 integration reference
Probe the token before an owner route. Store it as an environment secret, never in a Pack.
export TETREES_TOKEN="txk_..."
curl "https://ex.tetrees.ai/api/auth/api-token-status" \
-H "Authorization: Bearer $TETREES_TOKEN"
curl "https://ex.tetrees.ai/api/ai-packs/models" \
-H "Authorization: Bearer $TETREES_TOKEN"
curl "https://ex.tetrees.ai/api/ai-packs/catalog?q=research&limit=12" \
-H "Authorization: Bearer $TETREES_TOKEN"| Method | Path | Parameters | Guarantee |
|---|---|---|---|
| POST | /api/ai-packs/terms/accept | surface | Accept the current Pack seller/runtime terms. |
| GET | /api/ai-packs/catalog | q, limit, offset | Search published Agent AVCP Packs. |
| GET | /api/ai-packs/models | none | Model availability, provider, capabilities and Point sample quote. |
| GET | /api/ai-packs/workload/status | none | Authenticated active/queued workload snapshot and concurrency limits. |
| GET | /api/ai-packs/skills | none | Hosted-skill prices, ephemeral-file policy and client runtime boundary. |
| GET | /api/ai-packs/:id/runtime-profile | none | Version-bound tools and Agent-AVCP-auditioned client extensions. |
| GET | /api/ai-packs/owned | none | Purchased, free-acquired and seller-owned Packs. |
| POST | /api/ai-packs/:id/acquire-free | none | Create a free entitlement without Stripe. |
| GET | /api/ai-packs/:id/report | none | Read the buyer-safe Agent AVCP report. |
| POST | /api/ai-packs/runs/quote | productId, model, limits, skills, fundingMode, growthVersion | Bind a Point or BYOK ceiling, intelligence checkpoint and affordability result. |
| POST | /api/ai-packs/:id/runs | model, prompt, skills, fundingMode, growthVersion | Before acquisition: Point-funded stateless base preview. After acquisition: Points/BYOK and saved checkpoints. Partial output returns status=partial. |
| POST | /api/ai-packs/:id/runs-with-files | multipart run fields, growthVersion, attachments | Run with up to five request-scoped files and persist metadata only. |
| GET | /api/ai-packs/runs/:runId | none | Read the authenticated owner's usage and redacted result. |
| POST | /api/ai-packs/runs/:runId/growth | proposalIndex | Stage one proposal from a successful run. |
| POST | /api/ai-packs/:id/growth/:sequence/accept | optional normalization header | Owner-approve and gate a growth delta. |
| GET | /api/ai-packs/:id/growth | none | Read status/digest history, selectable checkpoints, active selection, usage and hosted quotas. |
| POST | /api/ai-packs/:id/growth/select | sequence | Select base sequence 0 or an accepted owner checkpoint for future runs. |
| POST | /api/seller/products | assetKind: agent_pack | Create a seller draft after terms acceptance. |
| PATCH | /api/seller/products/:id | mutable listing fields | Update seller-owned metadata without overwriting versions. |
| POST | /api/seller/products/:id/versions/upload-url | version, contentType | Mint owner/product/version-bound private storage upload. |
| POST | /api/seller/products/:id/versions | exactly one: s3Key or artifact | Commit and validate an immutable TAIP/1 version. |
| POST | /api/seller/products/:id/preview-images | multipart image | Sanitize and attach one catalogue image. |
| GET | /api/seller/products/:id/submission-readiness | none | Read missing manifest, listing and image requirements. |
| POST | /api/seller/products/:id/submit | none | Move a ready version into the Agent AVCP queue. |
| GET | /api/seller/products/:id/prep-quote | none | Quote Agent AVCP against the current immutable version. |
| POST | /api/seller/products/:id/prep | tier, version, Points, confirmation | Run quote-bound Agent AVCP. |
| GET | /api/seller/products/:id/report | none | Read owner-only failed-gate feedback. |
| POST | /api/seller/products/:id/publish | none | Publish only the signed, fully passing digest. |
Work is quoted first and debited only after admission; unused or failed-work Points return.
Provider keys are request-only and never persisted.
429 AI_WORKLOAD_BUSY includes Retry-After. Nothing was charged; retry after that delay.
Owner growth and rollback
Sequence 0 is the signed Pack without hosted memory. Accepted memory checkpoints stay private and reversible; a one-run override never changes the saved default.
Responses expose activeSequence, requested growthVersion, usage and limits—not private memory content.
# Inspect the saved default, selectable checkpoints and quota usage.
curl "https://ex.tetrees.ai/api/ai-packs/$PACK_ID/growth" \
-H "Authorization: Bearer $TETREES_TOKEN"
# Persist sequence 0 (the signed Pack without hosted owner memory).
curl -X POST "https://ex.tetrees.ai/api/ai-packs/$PACK_ID/growth/select" \
-H "Authorization: Bearer $TETREES_TOKEN" \
-H "Content-Type: application/json" \
--data '{"sequence":0}'
# Compare a checkpoint for one run without changing the saved default.
curl -X POST "https://ex.tetrees.ai/api/ai-packs/runs/quote" \
-H "Authorization: Bearer $TETREES_TOKEN" \
-H "Content-Type: application/json" \
--data '{"productId":"'$PACK_ID'","model":"openai:gpt-5.4-mini","fundingMode":"points","growthVersion":0}'400 malformed input; 401 invalid or revoked token; 402 insufficient Points; 403 outside scope or ownership; 404 hidden or absent resource; 409 stale version, quote or concurrent run; 410 retired route or expired capability; 429 rate limit or AI_WORKLOAD_BUSY with Retry-After; 503 provider, coordination or storage unavailable.