-
- 概览
-
- 概览
- std/build
- std/build/billing
- std/build/billing/rate-card
- std/build/collection
- std/build/collection/record-label
- std/build/collection/system-fields
- std/build/date
- std/build/error
- std/build/finance
- std/build/finance/currency
- std/build/i18n
- std/build/i18n/catalog
- std/build/i18n/locale
- std/build/json
- std/build/rate-limit
- std/build/reckon
- std/build/reckon/cel.server
- std/build/reckon/definition
- std/build/reckon/deps
- std/build/reckon/hash
- std/build/reckon/ops
- std/build/reckon/register.server
- std/build/reckon/replay
- std/build/reckon/runtime.server
- std/build/secret
- std/build/string
- std/build/tree
std/build/billing
std/build/billing
Type Aliases
BillingCatalogue
type BillingCatalogue = Schema.Schema.Type<typeof BillingCatalogueSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:150
BillingCatalogueInterval
type BillingCatalogueInterval = Schema.Schema.Type<typeof BillingCatalogueIntervalSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:12
BillingCataloguePlan
type BillingCataloguePlan = Schema.Schema.Type<typeof BillingCataloguePlanSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:83
BillingCataloguePrice
type BillingCataloguePrice = Schema.Schema.Type<typeof BillingCataloguePriceSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:71
BillingCataloguePriceModel
type BillingCataloguePriceModel = Schema.Schema.Type<typeof BillingCataloguePriceModelSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:14
BillingCatalogueProduct
type BillingCatalogueProduct = Schema.Schema.Type<typeof BillingCatalogueProductSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:115
BillingCatalogueProviderPriceIds
type BillingCatalogueProviderPriceIds = Schema.Schema.Type<typeof BillingCatalogueProviderPriceIdsSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:49
BillingCatalogueTier
type BillingCatalogueTier = Schema.Schema.Type<typeof BillingCatalogueTierSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:42
BillingProviderEnvironment
type BillingProviderEnvironment = Schema.Schema.Type<typeof BillingProviderEnvironmentSchema>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:44
Variables
AI_METERED_PRICES
const AI_METERED_PRICES: readonly [{
checkout: true;
description: "Provider-reported request cost converted from USD to micro-SGD at the published billing rate, which loads provider credit fees, FX, payment processing and margin onto the conversion. Token counts and model remain attached to every event for audit.";
id: "ai-provider-cost-micros-monthly";
interval: "month";
meterId: "bolt_ai_cost_sgd_micros_v1";
model: "metered";
name: "AI usage";
stripePriceIds: {
production: "price_1TyCvvLlQVSVzCBMS9rUyU0V";
sandbox: "price_1Ty8XqLvWjJB44nUyTvOAuYp";
};
unitAmountDecimal: "0.0001";
}];Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:155
AI_USAGE_METER_ID
const AI_USAGE_METER_ID: "bolt_ai_cost_sgd_micros_v1" = "bolt_ai_cost_sgd_micros_v1";Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:15
BILLING_CURRENCY
const BILLING_CURRENCY: "SGD";Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:2
BillingCatalogueIntervalSchema
const BillingCatalogueIntervalSchema: Schema.Literals<readonly ["month", "year"]>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:11
The Stripe catalogue surfaces (plans, prices, products) are declared here without a transport dependency, with the shape owned once by these schemas — a host that pushes the catalogue to Stripe decodes from the same source of truth the type is derived from.
BillingCataloguePlanSchema
const BillingCataloguePlanSchema: Schema.Struct<{
allowPromotionCodes: Schema.Boolean;
id: Schema.String;
trialDays: Schema.Number;
}>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:78
A plan is the base subscription: a flat fee plus the metered prices in the same product. The paywall checkout subscribes the plan plus every metered price as separate subscription items, so what a plan names is the trial, not seat licensing. There is no seat model: the base fee is stated once per workspace, whatever the headcount.
BillingCataloguePriceModelSchema
const BillingCataloguePriceModelSchema: Schema.Literals<readonly ["flat", "per_seat", "metered"]>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:13
BillingCataloguePriceSchema
const BillingCataloguePriceSchema: Schema.Struct<{
amount: Schema.optional<Schema.String>;
checkout: Schema.Boolean;
description: Schema.String;
dimensions: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
id: Schema.String;
interval: Schema.Literals<readonly ["month", "year"]>;
meterId: Schema.optional<Schema.String>;
model: Schema.Literals<readonly ["flat", "per_seat", "metered"]>;
name: Schema.String;
stripePriceIds: Schema.Struct<{
production: Schema.NullishOr<Schema.String>;
sandbox: Schema.NullishOr<Schema.String>;
}>;
tiers: Schema.optional<Schema.$Array<Schema.Struct<{
amount: Schema.String;
upTo: Schema.Union<readonly [Schema.Number, Schema.Literal<"inf">]>;
}>>>;
tiersMode: Schema.optional<Schema.Literals<readonly ["graduated", "volume"]>>;
unitAmountDecimal: Schema.optional<Schema.String>;
}>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:50
BillingCatalogueProductSchema
const BillingCatalogueProductSchema: Schema.Struct<{
description: Schema.String;
id: Schema.String;
name: Schema.String;
plans: Schema.$Array<Schema.Struct<{
allowPromotionCodes: Schema.Boolean;
id: Schema.String;
trialDays: Schema.Number;
}>>;
prices: Schema.$Array<Schema.Struct<{
amount: Schema.optional<Schema.String>;
checkout: Schema.Boolean;
description: Schema.String;
dimensions: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
id: Schema.String;
interval: Schema.Literals<readonly ["month", "year"]>;
meterId: Schema.optional<Schema.String>;
model: Schema.Literals<readonly ["flat", "per_seat", "metered"]>;
name: Schema.String;
stripePriceIds: Schema.Struct<{
production: Schema.NullishOr<Schema.String>;
sandbox: Schema.NullishOr<Schema.String>;
}>;
tiers: Schema.optional<Schema.$Array<Schema.Struct<{
amount: Schema.String;
upTo: Schema.Union<readonly ...>;
}>>>;
tiersMode: Schema.optional<Schema.Literals<readonly ["graduated", "volume"]>>;
unitAmountDecimal: Schema.optional<Schema.String>;
}>>;
}>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:84
BillingCatalogueProviderPriceIdsSchema
const BillingCatalogueProviderPriceIdsSchema: Schema.Struct<{
production: Schema.NullishOr<Schema.String>;
sandbox: Schema.NullishOr<Schema.String>;
}>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:45
BillingCatalogueSchema
const BillingCatalogueSchema: Schema.Struct<{
currency: Schema.Literal<"SGD">;
products: Schema.$Array<Schema.Struct<{
description: Schema.String;
id: Schema.String;
name: Schema.String;
plans: Schema.$Array<Schema.Struct<{
allowPromotionCodes: Schema.Boolean;
id: Schema.String;
trialDays: Schema.Number;
}>>;
prices: Schema.$Array<Schema.Struct<{
amount: Schema.optional<Schema.String>;
checkout: Schema.Boolean;
description: Schema.String;
dimensions: Schema.optional<Schema.$Record<Schema.String, Schema.String>>;
id: Schema.String;
interval: Schema.Literals<readonly [..., ...]>;
meterId: Schema.optional<Schema.String>;
model: Schema.Literals<readonly [..., ..., ...]>;
name: Schema.String;
stripePriceIds: Schema.Struct<{
production: Schema.NullishOr<...>;
sandbox: Schema.NullishOr<...>;
}>;
tiers: Schema.optional<Schema.$Array<Schema.Struct<...>>>;
tiersMode: Schema.optional<Schema.Literals<readonly ...>>;
unitAmountDecimal: Schema.optional<Schema.String>;
}>>;
}>>;
}>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:116
BillingCatalogueTierSchema
const BillingCatalogueTierSchema: Schema.Struct<{
amount: Schema.String;
upTo: Schema.Union<readonly [Schema.Number, Schema.Literal<"inf">]>;
}>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:38
BillingProviderEnvironmentSchema
const BillingProviderEnvironmentSchema: Schema.Literals<readonly ["sandbox", "production"]>;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:43
CURRENCY_MINOR_UNITS_PER_MAJOR_UNIT
const CURRENCY_MINOR_UNITS_PER_MAJOR_UNIT: 100 = 100;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:4
DEFAULT_BILLING_TRIAL_DAYS
const DEFAULT_BILLING_TRIAL_DAYS: 30 = 30;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:3
LATEST_CATALOGUE
const LATEST_CATALOGUE: object;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:235
Type Declaration
currency
readonly currency: "SGD";
products
readonly products: readonly [{
description: "A flat base fee per workspace, plus separately metered compute, disc, files, and AI usage.";
id: "platform";
name: "Norbital Platform";
plans: readonly [{
allowPromotionCodes: true;
id: "platform";
trialDays: 30;
}];
prices: readonly [{
checkout: true;
description: "SGD 0.0005 per worker-thread ELU active second. Memory infrastructure cost is included in the price; memory is not separately metered or hard-walled per worker. Stripe records milliseconds.";
id: "compute-second-monthly";
interval: "month";
meterId: "bolt_compute_seconds_v1";
model: "metered";
name: "Compute usage";
stripePriceIds: {
production: "price_1U5gPrLlQVSVzCBMefEfyUnM";
sandbox: "price_1U5gO4LvWjJB44nUCUzkwD61";
};
unitAmountDecimal: string;
}, {
checkout: true;
description: "SGD 3.00 per GB-month for tenant database storage, measured in GB-hours.";
id: "disc-gb-hour-monthly";
interval: "month";
meterId: "bolt_disc_gb_hours_v1";
model: "metered";
name: "Disc usage";
stripePriceIds: {
production: "price_1U5gPrLlQVSVzCBM3ctzic6b";
sandbox: "price_1U5gOQLvWjJB44nUkHqcqjGn";
};
unitAmountDecimal: string;
}, {
checkout: true;
description: "SGD 0.25 per GB-month for tenant object storage, measured in GB-hours.";
id: "files-gb-hour-monthly";
interval: "month";
meterId: "bolt_files_gb_hours_v1";
model: "metered";
name: "Files usage";
stripePriceIds: {
production: "price_1U5gPsLlQVSVzCBMHKfK5Ker";
sandbox: "price_1U5gORLvWjJB44nUzycz1ITJ";
};
unitAmountDecimal: string;
}, {
checkout: true;
description: "Provider-reported request cost converted from USD to micro-SGD at the published billing rate, which loads provider credit fees, FX, payment processing and margin onto the conversion. Token counts and model remain attached to every event for audit.";
id: "ai-provider-cost-micros-monthly";
interval: "month";
meterId: "bolt_ai_cost_sgd_micros_v1";
model: "metered";
name: "AI usage";
stripePriceIds: {
production: "price_1TyCvvLlQVSVzCBMS9rUyU0V";
sandbox: "price_1Ty8XqLvWjJB44nUyTvOAuYp";
};
unitAmountDecimal: "0.0001";
}];
}];LATEST_CATALOGUE_PLANS
const LATEST_CATALOGUE_PLANS: readonly BillingCataloguePlan[];Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:234
LATEST_CATALOGUE_PRICES
const LATEST_CATALOGUE_PRICES: readonly BillingCataloguePrice[];Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:232
LATEST_CATALOGUE_PRODUCTS
const LATEST_CATALOGUE_PRODUCTS: readonly [{
description: "A flat base fee per workspace, plus separately metered compute, disc, files, and AI usage.";
id: "platform";
name: "Norbital Platform";
plans: readonly [{
allowPromotionCodes: true;
id: "platform";
trialDays: 30;
}];
prices: readonly [{
checkout: true;
description: "SGD 0.0005 per worker-thread ELU active second. Memory infrastructure cost is included in the price; memory is not separately metered or hard-walled per worker. Stripe records milliseconds.";
id: "compute-second-monthly";
interval: "month";
meterId: "bolt_compute_seconds_v1";
model: "metered";
name: "Compute usage";
stripePriceIds: {
production: "price_1U5gPrLlQVSVzCBMefEfyUnM";
sandbox: "price_1U5gO4LvWjJB44nUCUzkwD61";
};
unitAmountDecimal: string;
}, {
checkout: true;
description: "SGD 3.00 per GB-month for tenant database storage, measured in GB-hours.";
id: "disc-gb-hour-monthly";
interval: "month";
meterId: "bolt_disc_gb_hours_v1";
model: "metered";
name: "Disc usage";
stripePriceIds: {
production: "price_1U5gPrLlQVSVzCBM3ctzic6b";
sandbox: "price_1U5gOQLvWjJB44nUkHqcqjGn";
};
unitAmountDecimal: string;
}, {
checkout: true;
description: "SGD 0.25 per GB-month for tenant object storage, measured in GB-hours.";
id: "files-gb-hour-monthly";
interval: "month";
meterId: "bolt_files_gb_hours_v1";
model: "metered";
name: "Files usage";
stripePriceIds: {
production: "price_1U5gPsLlQVSVzCBMHKfK5Ker";
sandbox: "price_1U5gORLvWjJB44nUzycz1ITJ";
};
unitAmountDecimal: string;
}, {
checkout: true;
description: "Provider-reported request cost converted from USD to micro-SGD at the published billing rate, which loads provider credit fees, FX, payment processing and margin onto the conversion. Token counts and model remain attached to every event for audit.";
id: "ai-provider-cost-micros-monthly";
interval: "month";
meterId: "bolt_ai_cost_sgd_micros_v1";
model: "metered";
name: "AI usage";
stripePriceIds: {
production: "price_1TyCvvLlQVSVzCBMS9rUyU0V";
sandbox: "price_1Ty8XqLvWjJB44nUyTvOAuYp";
};
unitAmountDecimal: "0.0001";
}];
}];Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:169
PLATFORM_PRODUCT_ID
const PLATFORM_PRODUCT_ID: "platform" = "platform";Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:5
USAGE_METER_IDS
const USAGE_METER_IDS: object;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:16
Type Declaration
ai
readonly ai: "bolt_ai_cost_sgd_micros_v1";
compute
readonly compute: "bolt_compute_seconds_v1";
disc
readonly disc: "bolt_disc_gb_hours_v1";
files
readonly files: "bolt_files_gb_hours_v1";USAGE_METER_UNITS
const USAGE_METER_UNITS: object;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:22
Type Declaration
ai
readonly ai: "micro-SGD";
compute
readonly compute: "millisecond";
disc
readonly disc: "micro-GB-hour";
files
readonly files: "micro-GB-hour";Functions
aiProviderCostSgdMicros()
function aiProviderCostSgdMicros(providerCostUsd): number;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:37
What a tenant owes for one turn, in micro-SGD, given what the provider charged for it in USD.
The single conversion for AI spend: the ledger prices an observation with it, the Stripe meter reports the quantity it returns, and the agent panel shows a conversation's total through it. There used to be three — a factored one here that nothing called, and the same literal written out twice more where the meter actually ran — so the published rate and the billed rate could differ with nothing in the code to say which one was the price.
Parameters
| Parameter | Type |
|---|---|
providerCostUsd |
number |
Returns
number
calculateCatalogueMeterCostSgdMicros()
function calculateCatalogueMeterCostSgdMicros(meterId, quantity): number;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:233
Parameters
| Parameter | Type |
|---|---|
meterId |
string |
quantity |
number |
Returns
number
formatBillingAmountFromMinorUnits()
function formatBillingAmountFromMinorUnits(amountMinorUnits, options?): string;Defined in: apps/website/.api-docs-entry/std/build/billing/index.d.ts:151
Parameters
| Parameter | Type |
|---|---|
amountMinorUnits |
string | number |
options? |
{ maximumFractionDigits?: number; minimumFractionDigits?: number; } |
options.maximumFractionDigits? |
number |
options.minimumFractionDigits? |
number |
Returns
string
References
AI_SGD_PER_PROVIDER_USD
Re-exports AI_SGD_PER_PROVIDER_USD
BILLING_ACCESS_TIERS
Re-exports BILLING_ACCESS_TIERS
BILLING_RATE_CARD_VERSION
Re-exports BILLING_RATE_CARD_VERSION
BillingAccessTier
Re-exports BillingAccessTier
COMPUTE_SGD_PER_SECOND
Re-exports COMPUTE_SGD_PER_SECOND
DISC_SGD_PER_GB_MONTH
Re-exports DISC_SGD_PER_GB_MONTH
EXTERNAL_CLOUD_RATE_CARD_USD
Re-exports EXTERNAL_CLOUD_RATE_CARD_USD
FILES_SGD_PER_GB_MONTH
Re-exports FILES_SGD_PER_GB_MONTH
HOURS_PER_BILLING_MONTH
Re-exports HOURS_PER_BILLING_MONTH
LOCAL_CLOUD_RATE_CARD
Re-exports LOCAL_CLOUD_RATE_CARD